Sha256: 6588daa8197199a4b6d9b1b8b495c887604eee902191c823a121596dc80bf486

Contents?: true

Size: 1.71 KB

Versions: 31

Compression:

Stored size: 1.71 KB

Contents

/* eslint-env jquery */
// = require govuk/components/details/details.js
window.GOVUK = window.GOVUK || {}
window.GOVUK.Modules = window.GOVUK.Modules || {};

(function (Modules) {
  'use strict'

  Modules.GovukDetails = function () {
    this.start = function (element) {
      var customTrackLabel = element[0].getAttribute('data-track-label')

      // If a custom label has been provided, we can simply call the tracking module
      if (customTrackLabel) {
        var trackDetails = new window.GOVUK.Modules.TrackClick()
        trackDetails.start(element)
      } else {
        // If no custom label is set, we use the open/close status as the label
        var detailsComponent = element[0]
        var detailsClick = detailsComponent.querySelector('[data-details-track-click]')
        var that = this

        if (detailsClick) {
          detailsClick.addEventListener('click', function (event) {
            that.trackDefault(detailsComponent)
          })
        }
      }
    }

    this.trackDefault = function (element) {
      if (window.GOVUK.analytics && window.GOVUK.analytics.trackEvent) {
        var componentStatus = (element.getAttribute('open') == null) ? 'open' : 'closed'
        var trackCategory = element.getAttribute('data-track-category')
        var trackAction = element.getAttribute('data-track-action')
        var trackOptions = element.getAttribute('data-track-options')

        if (typeof trackOptions !== 'object' || trackOptions === null) {
          trackOptions = {}
        }

        trackOptions.label = componentStatus

        if (trackAction && trackCategory) {
          window.GOVUK.analytics.trackEvent(trackCategory, trackAction, trackOptions)
        }
      }
    }
  }
})(window.GOVUK.Modules)

Version data entries

31 entries across 31 versions & 1 rubygems

Version Path
govuk_publishing_components-23.4.0 app/assets/javascripts/govuk_publishing_components/components/details.js
govuk_publishing_components-23.3.0 app/assets/javascripts/govuk_publishing_components/components/details.js
govuk_publishing_components-23.2.1 app/assets/javascripts/govuk_publishing_components/components/details.js
govuk_publishing_components-23.2.0 app/assets/javascripts/govuk_publishing_components/components/details.js
govuk_publishing_components-23.1.0 app/assets/javascripts/govuk_publishing_components/components/details.js
govuk_publishing_components-23.0.0 app/assets/javascripts/govuk_publishing_components/components/details.js
govuk_publishing_components-21.69.0 app/assets/javascripts/govuk_publishing_components/components/details.js
govuk_publishing_components-21.68.1 app/assets/javascripts/govuk_publishing_components/components/details.js
govuk_publishing_components-21.68.0 app/assets/javascripts/govuk_publishing_components/components/details.js
govuk_publishing_components-21.67.2 app/assets/javascripts/govuk_publishing_components/components/details.js
govuk_publishing_components-21.67.1 app/assets/javascripts/govuk_publishing_components/components/details.js
govuk_publishing_components-21.67.0 app/assets/javascripts/govuk_publishing_components/components/details.js
govuk_publishing_components-21.66.4 app/assets/javascripts/govuk_publishing_components/components/details.js
govuk_publishing_components-21.66.3 app/assets/javascripts/govuk_publishing_components/components/details.js
govuk_publishing_components-21.66.2 app/assets/javascripts/govuk_publishing_components/components/details.js
govuk_publishing_components-21.66.1 app/assets/javascripts/govuk_publishing_components/components/details.js
govuk_publishing_components-21.66.0 app/assets/javascripts/govuk_publishing_components/components/details.js
govuk_publishing_components-21.65.1 app/assets/javascripts/govuk_publishing_components/components/details.js
govuk_publishing_components-21.65.0 app/assets/javascripts/govuk_publishing_components/components/details.js
govuk_publishing_components-21.64.0 app/assets/javascripts/govuk_publishing_components/components/details.js