govuk_publishing_components 24.13.3 → 24.13.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8a35a738afbd13284b90e5ca985cb1be689e1a4fec384d36cf3618c3c9b6562c
4
- data.tar.gz: f330967e05f6c5c5d41f47fb7b5205685197e483b67b0db08d27ad4efd60a796
3
+ metadata.gz: 48d13ec5bd03475381c42cb9e3fbdb32118e851c82a2021462994e0af0cbe042
4
+ data.tar.gz: 30b3eaa8d62c9fe6eab0c48b65667329e9ae99d955f584cd37009dc59daeb254
5
5
  SHA512:
6
- metadata.gz: 3a3c2ab786bc602c21b2ecd225c9fe297e6dca33a146c0a135ae7f3bca839a8aecc988d061cf83d2ae607ed904c2827921fc7ecbe72a53c1a83f9660af6f1762
7
- data.tar.gz: 925f4e55851084894c74b27bfd58a502e411bdbb552f0a44567724c4789bc05691d15b9c0dfd72878b62465f52dffcd0582664b844cd2c56fdae2a9d135e4de6
6
+ metadata.gz: 83f0878e78d24711ed4fa7694d4becac691474370c29b33b355faed6dc98b98619af4f22bb6d3bdd70a787c510d93ac3cf8659d78ff7b009a3a46bbce93a9a50
7
+ data.tar.gz: 919f5697fbba2e55d2709e24750af0f3d3d07836958c0a09ece0cba6a5ee8e4634e58b99230303eb6ce88f467e5a4e99ced6a3bf3de527fb7ef1b4c2e7fd344a
@@ -41,7 +41,9 @@
41
41
  // we ignore the possibility of there being campaign variables in the
42
42
  // anchor because we wouldn't know how to detect and parse them if they
43
43
  // were present
44
- return this.pii.stripPIIFromString(location.href.substring(location.origin.length).split('#')[0])
44
+ // IE can't access window.location.origin, so we have to do this slightly complex thing
45
+ var root = location.protocol + '//' + location.hostname + (location.port ? ':' + location.port : '')
46
+ return this.pii.stripPIIFromString(location.href.substring(root.length).split('#')[0])
45
47
  }
46
48
 
47
49
  Analytics.prototype.trackPageview = function (path, title, options) {
@@ -33,6 +33,8 @@
33
33
 
34
34
  if (window.devicePixelRatio) {
35
35
  customDimensions.dimension11 = window.devicePixelRatio
36
+ } else {
37
+ customDimensions.dimension11 = window.screen.deviceXDPI / window.screen.logicalXDPI
36
38
  }
37
39
 
38
40
  return customDimensions
@@ -33,7 +33,9 @@ window.GOVUK.Modules.Checkboxes = window.GOVUKFrontend;
33
33
  if (window.GOVUK.analytics && window.GOVUK.analytics.trackEvent) {
34
34
  // Where checkboxes are manipulated externally in finders, `suppressAnalytics`
35
35
  // is passed to prevent duplicate GA events.
36
- if (!event.detail || (event.detail && event.detail.suppressAnalytics !== true)) {
36
+ // use Oliver Steele's Nested Object Access Pattern https://hackernoon.com/accessing-nested-objects-in-javascript-f02f1bd6387f
37
+ var allowAnalytics = ((event || {}).detail || {}).suppressAnalytics !== true
38
+ if (allowAnalytics) {
37
39
  var $checkbox = event.target
38
40
  var category = $checkbox.getAttribute('data-track-category')
39
41
  if (category) {
@@ -100,11 +102,11 @@ window.GOVUK.Modules.Checkboxes = window.GOVUKFrontend;
100
102
  var $exclusiveOption = $checkboxes.querySelector('input[type=checkbox][data-exclusive]')
101
103
  var $nonExclusiveOptions = $checkboxes.querySelectorAll('input[type=checkbox]:not([data-exclusive])')
102
104
 
103
- if ($currentCheckbox.dataset.exclusive === 'true' && $currentCheckbox.checked === true) {
105
+ if ($currentCheckbox.getAttribute('data-exclusive') === 'true' && $currentCheckbox.checked === true) {
104
106
  for (var i = 0; i < $nonExclusiveOptions.length; i++) {
105
107
  $nonExclusiveOptions[i].checked = false
106
108
  }
107
- } else if ($currentCheckbox.dataset.exclusive !== 'true' && $currentCheckbox.checked === true) {
109
+ } else if ($currentCheckbox.getAttribute('data-exclusive') !== 'true' && $currentCheckbox.checked === true) {
108
110
  if ($exclusiveOption) {
109
111
  $exclusiveOption.checked = false
110
112
  }
@@ -15,7 +15,7 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
15
15
 
16
16
  ContextualGuidance.prototype.handleFocus = function (event) {
17
17
  this.hideAllGuidance()
18
- if (!event.target.dataset.contextualGuidanceHideOnly) {
18
+ if (!event.target.getAttribute('data-contextual-guidance-hide-only')) {
19
19
  this.$guidance.style.display = 'block'
20
20
  }
21
21
  }
@@ -26,14 +26,14 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
26
26
  }
27
27
 
28
28
  var boundOnClickUpButton = this.onClickUpButton.bind(this)
29
- this.$upButtons.forEach(function (button) {
30
- button.addEventListener('click', boundOnClickUpButton)
31
- })
29
+ for (var u = 0; u < this.$upButtons.length; u++) {
30
+ this.$upButtons[u].addEventListener('click', boundOnClickUpButton)
31
+ }
32
32
 
33
33
  var boundOnClickDownButton = this.onClickDownButton.bind(this)
34
- this.$downButtons.forEach(function (button) {
35
- button.addEventListener('click', boundOnClickDownButton)
36
- })
34
+ for (var d = 0; d < this.$downButtons.length; d++) {
35
+ this.$downButtons[d].addEventListener('click', boundOnClickDownButton)
36
+ }
37
37
  }
38
38
 
39
39
  ReorderableList.prototype.setupResponsiveChecks = function () {
@@ -85,9 +85,9 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
85
85
 
86
86
  ReorderableList.prototype.updateOrderIndexes = function () {
87
87
  var $orderInputs = this.$module.querySelectorAll('.gem-c-reorderable-list__actions input')
88
- $orderInputs.forEach(function (input, index) {
89
- input.setAttribute('value', index + 1)
90
- })
88
+ for (var i = 0; i < $orderInputs.length; i++) {
89
+ $orderInputs[i].setAttribute('value', i + 1)
90
+ }
91
91
  }
92
92
 
93
93
  ReorderableList.prototype.triggerEvent = function (element, eventName) {
@@ -462,11 +462,11 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
462
462
  var allCharts = document.querySelectorAll('table.js-barchart-table')
463
463
  var id = null
464
464
 
465
- allCharts.forEach(function (chart, i) {
466
- if (chart === module) {
465
+ for (var i = 0; i < allCharts.length; i++) {
466
+ if (allCharts[i] === module) {
467
467
  id = i
468
468
  }
469
- })
469
+ }
470
470
 
471
471
  return id
472
472
  }
@@ -2,15 +2,17 @@
2
2
  'use strict'
3
3
  window.GOVUK = window.GOVUK || {}
4
4
 
5
- window.GOVUK.triggerEvent = function (element, eventName) {
6
- var params = { bubbles: true, cancelable: true }
5
+ window.GOVUK.triggerEvent = function (element, eventName, parameters) {
6
+ var params = parameters || {}
7
+ params.bubbles = true
8
+ params.cancelable = true
7
9
  var event
8
10
 
9
11
  if (typeof window.CustomEvent === 'function') {
10
12
  event = new window.CustomEvent(eventName, params)
11
13
  } else {
12
14
  event = document.createEvent('CustomEvent')
13
- event.initCustomEvent(eventName, params.bubbles, params.cancelable, null)
15
+ event.initCustomEvent(eventName, params.bubbles, params.cancelable, params.detail)
14
16
  }
15
17
 
16
18
  element.dispatchEvent(event)
@@ -5,37 +5,79 @@
5
5
  <nav id="proposition-menu" class="no-proposition-name gem-c-government-navigation" aria-label="Departments and policy navigation">
6
6
  <ul id="proposition-links">
7
7
  <li>
8
- <a class="<%= 'active' if active == 'departments' %> govuk-link govuk-link--no-underline govuk-link--inverse" href="/government/organisations">
8
+ <a class="<%= 'active' if active == 'departments' %> govuk-link govuk-link--no-underline govuk-link--inverse"
9
+ data-track-category="headerClicked"
10
+ data-track-action="departmentsLink"
11
+ data-track-label="/government/organisations"
12
+ data-track-dimension="<%= t("components.government_navigation.departments") %>"
13
+ data-track-dimension-index="29"
14
+ href="/government/organisations">
9
15
  <%= t("components.government_navigation.departments") %>
10
16
  </a>
11
17
  </li>
12
18
  <li>
13
- <a class="<%= 'active' if active == 'worldwide' %> govuk-link govuk-link--no-underline govuk-link--inverse" href="/government/world">
19
+ <a class="<%= 'active' if active == 'worldwide' %> govuk-link govuk-link--no-underline govuk-link--inverse"
20
+ data-track-category="headerClicked"
21
+ data-track-action="worldwideLink"
22
+ data-track-label="/world"
23
+ data-track-dimension="<%= t("components.government_navigation.worldwide") %>"
24
+ data-track-dimension-index="29"
25
+ href="/world">
14
26
  <%= t("components.government_navigation.worldwide") %>
15
27
  </a>
16
28
  </li>
17
29
  <li>
18
- <a class="<%= 'active' if active == 'how-government-works' %> govuk-link govuk-link--no-underline govuk-link--inverse" href="/government/how-government-works">
30
+ <a class="<%= 'active' if active == 'how-government-works' %> govuk-link govuk-link--no-underline govuk-link--inverse"
31
+ data-track-category="headerClicked"
32
+ data-track-action="governmentactivityLink"
33
+ data-track-label="/government/how-government-works"
34
+ data-track-dimension="<%= t("components.government_navigation.how-government-works") %>"
35
+ data-track-dimension-index="29"
36
+ href="/government/how-government-works">
19
37
  <%= t("components.government_navigation.how-government-works") %>
20
38
  </a>
21
39
  </li>
22
40
  <li>
23
- <a class="<%= 'active' if active == 'get-involved' %> govuk-link govuk-link--no-underline govuk-link--inverse" href="/government/get-involved">
41
+ <a class="<%= 'active' if active == 'get-involved' %> govuk-link govuk-link--no-underline govuk-link--inverse"
42
+ data-track-category="headerClicked"
43
+ data-track-action="governmentactivityLink"
44
+ data-track-label="/government/get-involved"
45
+ data-track-dimension="<%= t("components.government_navigation.get-involved") %>"
46
+ data-track-dimension-index="29"
47
+ href="/government/get-involved">
24
48
  <%= t("components.government_navigation.get-involved") %>
25
49
  </a>
26
50
  </li>
27
51
  <li class="clear-child">
28
- <a class="<%= 'active' if active == 'consultations' %> govuk-link govuk-link--no-underline govuk-link--inverse" href="<%= CGI::escapeHTML('/search/policy-papers-and-consultations?content_store_document_type[]=open_consultations&content_store_document_type[]=closed_consultations') %>">
52
+ <a class="<%= 'active' if active == 'consultations' %> govuk-link govuk-link--no-underline govuk-link--inverse"
53
+ data-track-category="headerClicked"
54
+ data-track-action="governmentactivityLink"
55
+ data-track-label="/government/get-involved"
56
+ data-track-dimension="<%= t("components.government_navigation.consultations") %>"
57
+ data-track-dimension-index="29"
58
+ href="<%= CGI::escapeHTML('/search/policy-papers-and-consultations?content_store_document_type[]=open_consultations&content_store_document_type[]=closed_consultations') %>">
29
59
  <%= t("components.government_navigation.consultations") %>
30
60
  </a>
31
61
  </li>
32
62
  <li>
33
- <a class="<%= 'active' if active == 'statistics' %> govuk-link govuk-link--no-underline govuk-link--inverse" href="/search/research-and-statistics">
63
+ <a class="<%= 'active' if active == 'statistics' %> govuk-link govuk-link--no-underline govuk-link--inverse"
64
+ data-track-category="headerClicked"
65
+ data-track-action="governmentactivityLink"
66
+ data-track-label="/government/research-and-statistics"
67
+ data-track-dimension="<%= t("components.government_navigation.statistics") %>"
68
+ data-track-dimension-index="29"
69
+ href="/search/research-and-statistics">
34
70
  <%= t("components.government_navigation.statistics") %>
35
71
  </a>
36
72
  </li>
37
73
  <li>
38
- <a class="<%= 'active' if active == 'announcements' %> govuk-link govuk-link--no-underline govuk-link--inverse" href="/news-and-communications">
74
+ <a class="<%= 'active' if active == 'announcements' %> govuk-link govuk-link--no-underline govuk-link--inverse"
75
+ data-track-category="headerClicked"
76
+ data-track-action="governmentactivityLink"
77
+ data-track-label="/search/news-and-communications"
78
+ data-track-dimension="<%= t("components.government_navigation.news_and_communications") %>"
79
+ data-track-dimension-index="29"
80
+ href="/search/news-and-communications">
39
81
  <%= t("components.government_navigation.news_and_communications") %>
40
82
  </a>
41
83
  </li>
@@ -11,6 +11,12 @@ module GovukPublishingComponents
11
11
  transition_period: "d6c2de5d-ef90-45d1-82d4-5f2438369eea",
12
12
  }.freeze
13
13
 
14
+ BREXIT_TAXONS = {
15
+ brexit: "d6c2de5d-ef90-45d1-82d4-5f2438369eea",
16
+ brexit_business: "634fd193-8039-4a70-a059-919c34ff4bfc",
17
+ brexit_citizen: "614b2e65-56ac-4f8d-bb9c-d1a14167ba25",
18
+ }.freeze
19
+
14
20
  # Returns the highest priority taxon that has a content_id matching those in PRIORITY_TAXONS
15
21
  def self.call(content_item, query_parameters = nil)
16
22
  new(content_item, query_parameters).breadcrumbs
@@ -35,7 +41,7 @@ module GovukPublishingComponents
35
41
  title: taxon["title"],
36
42
  path: taxon["base_path"],
37
43
  tracking_category: "breadcrumbClicked",
38
- tracking_action: "superBreadcrumb",
44
+ tracking_action: tracking_action,
39
45
  tracking_label: content_item["base_path"],
40
46
  tracking_dimension_enabled: false,
41
47
  }
@@ -71,6 +77,14 @@ module GovukPublishingComponents
71
77
  def preferred_priority_taxon
72
78
  query_parameters["priority-taxon"] if query_parameters
73
79
  end
80
+
81
+ def tracking_action
82
+ action = %w[superBreadcrumb]
83
+ action << "Brexitbusiness" if taxon["content_id"] == BREXIT_TAXONS[:brexit_business]
84
+ action << "Brexitcitizen" if taxon["content_id"] == BREXIT_TAXONS[:brexit_business]
85
+ action << "Brexitbusinessandcitizen" if taxon["content_id"] == BREXIT_TAXONS[:brexit]
86
+ action.join(" ")
87
+ end
74
88
  end
75
89
  end
76
90
  end
@@ -1,3 +1,3 @@
1
1
  module GovukPublishingComponents
2
- VERSION = "24.13.3".freeze
2
+ VERSION = "24.13.4".freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_publishing_components
3
3
  version: !ruby/object:Gem::Version
4
- version: 24.13.3
4
+ version: 24.13.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - GOV.UK Dev
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-06-08 00:00:00.000000000 Z
11
+ date: 2021-06-09 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: govuk_app_config