govuk_publishing_components 30.2.1 → 30.3.0

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: f402d935fbe75f4dde432aab1dd5f525388d478b99a960c57cedc2b73034ea0d
4
- data.tar.gz: e6cf9788314e58be8a0f13158e7262a31dec5ff4adece4ee2daf117ebb5252f8
3
+ metadata.gz: e3e967d80364c5bc79a3d6ae1338e28e4713dfbb9d4e07a6b6fda984e177e8db
4
+ data.tar.gz: 80a99542db952464b49e1b1468fb320ae5c5a997d62bd2fad49d1dd880591568
5
5
  SHA512:
6
- metadata.gz: 76b3d647997d9248dc930d224037a2d31d54aebee66879668743e7a962b85a199aff66cfc95dcb200577de4292f8dcd769ea105497df3ea71206746d798e112e
7
- data.tar.gz: c29eaaf88f004b23c2412b3db5667533e2ed76e69b9a59679875e1dd68c2522ab15f935f6ed66ee0df3bbfd8c619aa604359afebf4e2369ff481959d4f7f535f
6
+ metadata.gz: 973d005a28142f232b29ed9cb4669e57a39bbfe45403ae69ff56a94bfe8f263571ee1e51143f4dcdf75fb9fd0dc4d978fe5b957853c046ec6c1450cf0d2dd174
7
+ data.tar.gz: 1cbdfbba36fa2a140c33fb4aadbd5797d9dd4fff255b8f2d3d77ade1962dae343d322f34ff4b55001d79b914b7d1a954d800f2697e01c02fd6700d74648c0dc2
@@ -17,6 +17,8 @@
17
17
  // if there are no accordion sections on the browse level 2 page
18
18
  // then it is a default page with one or two lists
19
19
  return document.querySelectorAll('[data-track-count="accordionSection"]').length || document.querySelectorAll('main .govuk-list').length
20
+ case isCostOfLivingHub():
21
+ return document.querySelectorAll('[data-track-count="accordionSection"]').length
20
22
  case isNewBrowsePage():
21
23
  return document.querySelectorAll('[data-track-count="cardList"]').length
22
24
  case isMainstreamBrowsePage():
@@ -51,6 +53,7 @@
51
53
  case isDocumentCollectionPage():
52
54
  return document.querySelectorAll('.document-collection .group-document-list li a').length
53
55
  case isNewBrowsePageLevelTwo():
56
+ case isCostOfLivingHub():
54
57
  return document.querySelectorAll('[data-track-count="contentLink"]').length
55
58
  case isNewBrowsePage():
56
59
  return document.querySelectorAll('[data-track-count="cardLink"]').length
@@ -108,6 +111,11 @@
108
111
  getMetaAttribute(metaNavigationTypeSelector) === 'browse level 2'
109
112
  }
110
113
 
114
+ function isCostOfLivingHub () {
115
+ return getMetaAttribute(metaApplicationSelector) === 'collections' &&
116
+ getMetaAttribute(metaNavigationTypeSelector) === 'cost of living hub'
117
+ }
118
+
111
119
  function isNewBrowsePage () {
112
120
  return getMetaAttribute(metaApplicationSelector) === 'collections' &&
113
121
  (getMetaAttribute(metaNavigationTypeSelector) === 'browse level 0' ||
@@ -61,7 +61,7 @@
61
61
  clickData.link_method = this.getClickType(event)
62
62
 
63
63
  var schema = new window.GOVUK.analyticsGA4.Schemas().eventSchema()
64
- schema.event = 'analytics'
64
+ schema.event = 'event_data'
65
65
 
66
66
  // get attributes from the clickData object to send to GA
67
67
  // only allow it if it already exists in the schema
@@ -124,7 +124,7 @@
124
124
 
125
125
  isExternalLink: function (href) {
126
126
  var isInternalLink = this.hrefPointsToDomain(href, this.internalLinksDomain) || this.hrefPointsToDomain(href, this.internalLinksDomainWithoutWww)
127
- if (!isInternalLink && !this.hrefIsRelative(href)) {
127
+ if (!isInternalLink && !this.hrefIsRelative(href) && !this.hrefIsAnchor(href)) {
128
128
  return true
129
129
  }
130
130
  },
@@ -146,6 +146,10 @@
146
146
  hrefIsRelative: function (href) {
147
147
  // Checks that a link is relative, but is not a protocol relative url
148
148
  return href[0] === '/' && href[1] !== '/'
149
+ },
150
+
151
+ hrefIsAnchor: function (href) {
152
+ return href[0] === '#'
149
153
  }
150
154
  }
151
155
 
@@ -9,7 +9,6 @@ window.GOVUK.Modules.GovukCheckboxes = window.GOVUKFrontend.Checkboxes;
9
9
  this.$module = $module
10
10
  this.$checkboxes = this.$module.querySelectorAll('input[type=checkbox]')
11
11
  this.$nestedCheckboxes = this.$module.querySelectorAll('[data-nested=true] input[type=checkbox]')
12
- this.$exclusiveCheckboxes = this.$module.querySelectorAll('[data-exclusive=true] input[type=checkbox]')
13
12
  }
14
13
 
15
14
  GemCheckboxes.prototype.init = function () {
@@ -22,10 +21,6 @@ window.GOVUK.Modules.GovukCheckboxes = window.GOVUKFrontend.Checkboxes;
22
21
  for (i = 0; i < this.$nestedCheckboxes.length; i++) {
23
22
  this.$nestedCheckboxes[i].addEventListener('change', this.handleNestedCheckboxChange.bind(this))
24
23
  }
25
-
26
- for (i = 0; i < this.$exclusiveCheckboxes.length; i++) {
27
- this.$exclusiveCheckboxes[i].addEventListener('change', this.handleExclusiveCheckboxChange)
28
- }
29
24
  }
30
25
 
31
26
  GemCheckboxes.prototype.handleCheckboxChange = function (event) {
@@ -95,23 +90,6 @@ window.GOVUK.Modules.GovukCheckboxes = window.GOVUKFrontend.Checkboxes;
95
90
  }
96
91
  }
97
92
 
98
- GemCheckboxes.prototype.handleExclusiveCheckboxChange = function (event) {
99
- var $currentCheckbox = event.target
100
- var $checkboxes = $currentCheckbox.closest('.govuk-checkboxes')
101
- var $exclusiveOption = $checkboxes.querySelector('input[type=checkbox][data-exclusive]')
102
- var $nonExclusiveOptions = $checkboxes.querySelectorAll('input[type=checkbox]:not([data-exclusive])')
103
-
104
- if ($currentCheckbox.getAttribute('data-exclusive') === 'true' && $currentCheckbox.checked === true) {
105
- for (var i = 0; i < $nonExclusiveOptions.length; i++) {
106
- $nonExclusiveOptions[i].checked = false
107
- }
108
- } else if ($currentCheckbox.getAttribute('data-exclusive') !== 'true' && $currentCheckbox.checked === true) {
109
- if ($exclusiveOption) {
110
- $exclusiveOption.checked = false
111
- }
112
- }
113
- }
114
-
115
93
  GemCheckboxes.prototype.applyAriaControlsAttributes = function ($scope) {
116
94
  var $inputs = $scope.querySelectorAll('[data-controls]')
117
95
 
@@ -4,7 +4,7 @@
4
4
  id = cb_helper.id
5
5
  %>
6
6
 
7
- <%= tag.div id: id, class: cb_helper.css_classes, data: { module: "gem-checkboxes" } do %>
7
+ <%= tag.div id: id, class: cb_helper.css_classes, data: { module: "gem-checkboxes govuk-checkboxes" } do %>
8
8
  <% if cb_helper.should_have_fieldset %>
9
9
  <% if cb_helper.heading_markup %>
10
10
  <%= tag.fieldset class: "govuk-fieldset", "aria-describedby": cb_helper.fieldset_describedby do %>
@@ -24,8 +24,7 @@
24
24
 
25
25
  <%= tag.ul class: cb_helper.list_classes, data: {
26
26
  module: ('govuk-checkboxes' if cb_helper.has_conditional),
27
- nested: ('true' if cb_helper.has_nested),
28
- exclusive: ('true' if cb_helper.has_exclusive)
27
+ nested: ('true' if cb_helper.has_nested)
29
28
  } do %>
30
29
  <% cb_helper.items.each_with_index do |item, index| %>
31
30
  <% if item === :or %>
@@ -103,3 +103,10 @@ examples:
103
103
  name: "described"
104
104
  rows: 2
105
105
  describedby: "contextual-guidance"
106
+ with_data_attributes:
107
+ data:
108
+ label:
109
+ text: "This textarea has a data attribute"
110
+ name: "with_data_attrbutes"
111
+ data:
112
+ module: "some-awesome-module-here"
@@ -14,8 +14,7 @@ module GovukPublishingComponents
14
14
  :id,
15
15
  :hint_text,
16
16
  :description,
17
- :heading_caption,
18
- :has_exclusive
17
+ :heading_caption
19
18
 
20
19
  def initialize(options)
21
20
  @items = options[:items] || []
@@ -29,7 +28,6 @@ module GovukPublishingComponents
29
28
 
30
29
  # check if any item is set as being conditional
31
30
  @has_conditional = options[:items].any? { |item| item.is_a?(Hash) && item[:conditional] }
32
- @has_exclusive = options[:items].any? { |item| item.is_a?(Hash) && item[:exclusive] }
33
31
  @has_nested = options[:items].any? { |item| item.is_a?(Hash) && item[:items] }
34
32
 
35
33
  @id = options[:id] || "checkboxes-#{SecureRandom.hex(4)}"
@@ -97,7 +95,7 @@ module GovukPublishingComponents
97
95
  data = checkbox[:data_attributes] || {}
98
96
  data[:controls] = controls
99
97
  data["aria-controls"] = aria_controls
100
- data[:exclusive] = checkbox[:exclusive]
98
+ data[:behaviour] = "exclusive" if checkbox[:exclusive]
101
99
 
102
100
  capture do
103
101
  concat check_box_tag checkbox_name, checkbox[:value], checked, class: "govuk-checkboxes__input", id: checkbox_id, data: data
@@ -1,3 +1,3 @@
1
1
  module GovukPublishingComponents
2
- VERSION = "30.2.1".freeze
2
+ VERSION = "30.3.0".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: 30.2.1
4
+ version: 30.3.0
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: 2022-08-19 00:00:00.000000000 Z
11
+ date: 2022-08-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: govuk_app_config
@@ -1937,7 +1937,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1937
1937
  - !ruby/object:Gem::Version
1938
1938
  version: '0'
1939
1939
  requirements: []
1940
- rubygems_version: 3.3.20
1940
+ rubygems_version: 3.3.21
1941
1941
  signing_key:
1942
1942
  specification_version: 4
1943
1943
  summary: A gem to document components in GOV.UK frontend applications