govuk_publishing_components 64.0.0 → 64.1.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: 16c3c262e09722b90a73a068ab44323e447d40e7c833b0ef9e060bf113f776f2
4
- data.tar.gz: 38303d6dd5e90633a3b7a75126f0b1fcfc51c522417f9efc4f365992cc878171
3
+ metadata.gz: 5a36e502c34c34ff4f3d4f3c68b2bdc3c73d2e0063e0681113d6fa86419256a1
4
+ data.tar.gz: e7687186a40332b5fd8466c08bc37eaf061383053d571873b32efb1b19fe2140
5
5
  SHA512:
6
- metadata.gz: b590dce6cb9e0f0d0b53a0921579325699c0f6911c0bc3aa619293fedaa455bce9b41769c1fb95a662c7210ecb059faff660f50a0f0ac3620124f6151e4fcc7b
7
- data.tar.gz: 0b1fbb803c88a2147aa091c46453d44c51ed35612a76f1d7815544a8858fd3f15bf432240ed7766d8831e2111e85597635b51d0157961aaba79eaedefd15ddbb
6
+ metadata.gz: 4e0e05ae52393e75403160be9fe4243b498d47f9241ef4245d75aad760093c614a9a6c636fa7b256deb1fb785a020f020142df49a06eb79710955689a71ec981
7
+ data.tar.gz: 0146075f678ac78ee120d4bc495dc7a2251f93b93fd8c0a04478654f29d185151a97fe906db961ee0e46629cd43186031a4474ab95387fe211beca4432c9d2f4
@@ -110,13 +110,19 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
110
110
  let text
111
111
 
112
112
  if (checkableValue) {
113
+ const fieldset = checkableValue.closest('fieldset') || null
114
+ const redactedFieldset = fieldset && fieldset.dataset.ga4Redact
115
+
113
116
  // radio, check, option can have `:checked` pseudo-class
114
117
  if (!checkableValue.matches(':checked')) {
115
118
  action = 'remove'
116
119
  }
117
120
 
118
- text = checkableValue.innerText ||
119
- this.module.querySelector(`label[for='${window.CSS.escape(id)}']`).innerText
121
+ if (redactedFieldset && !checkableValue.dataset.ga4RedactPermit) {
122
+ text = '[REDACTED]'
123
+ } else {
124
+ text = checkableValue.innerText || this.module.querySelector(`label[for='${window.CSS.escape(id)}']`).innerText
125
+ }
120
126
 
121
127
  if (text) {
122
128
  text = text.replace(/\r?\n|\r/g, ' ')
@@ -83,12 +83,17 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
83
83
  for (var i = 0; i < labels.length; i++) {
84
84
  var label = labels[i]
85
85
  var labelFor = label.getAttribute('for')
86
+ var hiddenInput = label.getAttribute('data-ga4-hidden-input')
86
87
  var input = false
87
- if (labelFor) {
88
+
89
+ if (hiddenInput) {
90
+ input = this.module.querySelector('[id="' + hiddenInput + '"]')
91
+ } else if (labelFor) {
88
92
  input = this.module.querySelector('[id="' + labelFor + '"]')
89
93
  } else {
90
94
  input = label.querySelector('input')
91
95
  }
96
+
92
97
  inputs.push({
93
98
  input: input,
94
99
  label: label
@@ -122,9 +127,13 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
122
127
  // don't include conditional field control in text
123
128
  inputs.splice(i, 1)
124
129
  } else if (elem.checked) {
125
- input.answer = labelText
130
+ var fieldset = elem.closest('fieldset') || null
126
131
 
127
- var fieldset = elem.closest('fieldset')
132
+ if (fieldset.dataset.ga4Redact && !elem.dataset.ga4RedactPermit) {
133
+ input.answer = '[REDACTED]'
134
+ } else {
135
+ input.answer = labelText
136
+ }
128
137
 
129
138
  if (fieldset) {
130
139
  var legend = fieldset.querySelector('legend')
@@ -40,6 +40,7 @@ module GovukPublishingComponents
40
40
  gem_version: app.gem_version,
41
41
  gem_version_status: app.gem_version == GovukPublishingComponents::VERSION ? "green" : "red",
42
42
  sass_version: app.sass_version,
43
+ ruby_version: app.ruby_version,
43
44
  }
44
45
  end
45
46
  end
@@ -5,7 +5,8 @@ module GovukPublishingComponents
5
5
  def initialize(application)
6
6
  @application = application
7
7
  @dir = get_directory
8
- @gemfilelock = get_gemfile
8
+ @gemfilelock = get_file("Gemfile.lock")
9
+ @rubyfile = get_file(".ruby-version")
9
10
  end
10
11
 
11
12
  def readable_name
@@ -20,6 +21,10 @@ module GovukPublishingComponents
20
21
  parse_file(@gemfilelock, /sass-embedded \(([^)>=~ ]+)\)/)
21
22
  end
22
23
 
24
+ def ruby_version
25
+ @rubyfile.strip if @rubyfile
26
+ end
27
+
23
28
  private
24
29
 
25
30
  def get_directory
@@ -27,20 +32,20 @@ module GovukPublishingComponents
27
32
  Dir.exist?(app_dir) ? app_dir : false
28
33
  end
29
34
 
30
- def get_gemfile
31
- @dir ? get_gemfile_local : get_gemfile_remote
35
+ def get_file(name)
36
+ @dir ? get_local_file(name) : get_remote_file(name)
32
37
  end
33
38
 
34
- def get_gemfile_local
35
- lockfile = "#{@dir}/Gemfile.lock"
39
+ def get_local_file(name)
40
+ lockfile = "#{@dir}/#{name}"
36
41
  return unless File.file?(lockfile)
37
42
 
38
43
  @source = "local"
39
44
  File.read(lockfile)
40
45
  end
41
46
 
42
- def get_gemfile_remote
43
- uri = URI("https://raw.githubusercontent.com/alphagov/#{@application}/main/Gemfile.lock")
47
+ def get_remote_file(name)
48
+ uri = URI("https://raw.githubusercontent.com/alphagov/#{@application}/main/#{name}")
44
49
  result = Net::HTTP.get_response(uri)
45
50
  if result.is_a?(Net::HTTPSuccess)
46
51
  @source = "remote"
@@ -28,5 +28,12 @@
28
28
  } %>
29
29
  <% end %>
30
30
  </td>
31
+ <td class="govuk-table__cell">
32
+ <% if app[:ruby_version] %>
33
+ <%= render "govuk_publishing_components/components/tag", {
34
+ text: app[:ruby_version],
35
+ } %>
36
+ <% end %>
37
+ </td>
31
38
  </tr>
32
39
  <% end %>
@@ -24,6 +24,7 @@
24
24
  <th scope="col" class="govuk-table__header sticky-table-header">Source</th>
25
25
  <th scope="col" class="govuk-table__header sticky-table-header">Gem version</th>
26
26
  <th scope="col" class="govuk-table__header sticky-table-header">Sass version</th>
27
+ <th scope="col" class="govuk-table__header sticky-table-header">Ruby version</th>
27
28
  </tr>
28
29
  </thead>
29
30
  <tbody class="govuk-table__body">
@@ -18,6 +18,10 @@
18
18
  heading_level ||= nil
19
19
  javascript ||= false
20
20
 
21
+ if javascript
22
+ label[:data_attributes] = { ga4_hidden_input: "#{id}-input" }
23
+ end
24
+
21
25
  css_classes = %w(gem-c-file-upload govuk-file-upload)
22
26
  css_classes << "govuk-file-upload--error" if has_error
23
27
  form_group_css_classes = %w(govuk-form-group)
@@ -24,8 +24,7 @@ module GovukPublishingComponents
24
24
  end
25
25
 
26
26
  def questions_and_answers_markup
27
- question_and_answers.select { |_, value| value[:answer].present? }
28
- .map do |question, value|
27
+ question_and_answers.select { |_, value| value[:answer].present? }.map do |question, value|
29
28
  q_and_a_url = section_url(value[:anchor])
30
29
 
31
30
  {
@@ -1,3 +1,3 @@
1
1
  module GovukPublishingComponents
2
- VERSION = "64.0.0".freeze
2
+ VERSION = "64.1.0".freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: govuk_publishing_components
3
3
  version: !ruby/object:Gem::Version
4
- version: 64.0.0
4
+ version: 64.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - GOV.UK Dev
@@ -2115,7 +2115,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
2115
2115
  - !ruby/object:Gem::Version
2116
2116
  version: '0'
2117
2117
  requirements: []
2118
- rubygems_version: 4.0.4
2118
+ rubygems_version: 4.0.6
2119
2119
  specification_version: 4
2120
2120
  summary: A gem to document components in GOV.UK frontend applications
2121
2121
  test_files: []