Sha256: 3b8574f4ec0bd6d5fabd5eb18494b875254df7583a875f8423ece27691db2102

Contents?: true

Size: 1.51 KB

Versions: 185

Compression:

Stored size: 1.51 KB

Contents

/* eslint-env jquery */

window.GOVUK = window.GOVUK || {}
window.GOVUK.Modules = window.GOVUK.Modules || {};

(function (Modules) {
  'use strict'

  Modules.TrackSelectChange = function () {
    this.start = function (element) {
      element.change(function (e) {
        var selectedOption = $(this).find(':selected')
        var trackable = '[data-track-category][data-track-action]'

        if (selectedOption.is(trackable)) {
          fireTrackingChange(selectedOption)
        }
      })

      function fireTrackingChange (element) {
        var options = { transport: 'beacon' }
        var category = element.attr('data-track-category')
        var action = element.attr('data-track-action')
        var label = element.attr('data-track-label')
        var value = element.attr('data-track-value')
        var dimension = element.attr('data-track-dimension')
        var dimensionIndex = element.attr('data-track-dimension-index')
        var extraOptions = element.attr('data-track-options')

        if (label) {
          options.label = label
        }

        if (value) {
          options.value = value
        }

        if (dimension && dimensionIndex) {
          options['dimension' + dimensionIndex] = dimension
        }

        if (extraOptions) {
          $.extend(options, JSON.parse(extraOptions))
        }

        if (window.GOVUK.analytics && window.GOVUK.analytics.trackEvent) {
          window.GOVUK.analytics.trackEvent(category, action, options)
        }
      };
    }
  }
})(window.GOVUK.Modules)

Version data entries

185 entries across 185 versions & 1 rubygems

Version Path
govuk_publishing_components-21.66.4 app/assets/javascripts/govuk_publishing_components/lib/select.js
govuk_publishing_components-21.66.3 app/assets/javascripts/govuk_publishing_components/lib/select.js
govuk_publishing_components-21.66.2 app/assets/javascripts/govuk_publishing_components/lib/select.js
govuk_publishing_components-21.66.1 app/assets/javascripts/govuk_publishing_components/lib/select.js
govuk_publishing_components-21.66.0 app/assets/javascripts/govuk_publishing_components/lib/select.js
govuk_publishing_components-21.65.1 app/assets/javascripts/govuk_publishing_components/lib/select.js
govuk_publishing_components-21.65.0 app/assets/javascripts/govuk_publishing_components/lib/select.js
govuk_publishing_components-21.64.0 app/assets/javascripts/govuk_publishing_components/lib/select.js
govuk_publishing_components-21.63.3 app/assets/javascripts/govuk_publishing_components/lib/select.js
govuk_publishing_components-21.63.2 app/assets/javascripts/govuk_publishing_components/lib/select.js
govuk_publishing_components-21.63.1 app/assets/javascripts/govuk_publishing_components/lib/select.js
govuk_publishing_components-21.63.0 app/assets/javascripts/govuk_publishing_components/lib/select.js
govuk_publishing_components-21.62.0 app/assets/javascripts/govuk_publishing_components/lib/select.js
govuk_publishing_components-21.61.0 app/assets/javascripts/govuk_publishing_components/lib/select.js
govuk_publishing_components-21.60.3 app/assets/javascripts/govuk_publishing_components/lib/select.js
govuk_publishing_components-21.60.2 app/assets/javascripts/govuk_publishing_components/lib/select.js
govuk_publishing_components-21.60.1 app/assets/javascripts/govuk_publishing_components/lib/select.js
govuk_publishing_components-21.60.0 app/assets/javascripts/govuk_publishing_components/lib/select.js
govuk_publishing_components-21.59.0 app/assets/javascripts/govuk_publishing_components/lib/select.js
govuk_publishing_components-21.58.0 app/assets/javascripts/govuk_publishing_components/lib/select.js