govuk_publishing_components 34.11.0 → 34.12.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 934271a78157ee0a0bb1cf67c27e26479cc353bfbd4199e67c2f8e0bbd49ccea
4
- data.tar.gz: 0236a04b735e8760f829fb4e40b9d3f563723f4f1fbd611a21e4ff0b43ebd9b3
3
+ metadata.gz: fd36433fa99aed8ea4144f791e7e78f72ae786e1148b7826758d65e271f98e5e
4
+ data.tar.gz: ce9e9975edbf99d74771088e9dadcd610ffacc345358afc25e85640a110d4035
5
5
  SHA512:
6
- metadata.gz: 8063218c1329d2fd1b471dd966be393c46a330586d5707d575ec9f1d505d5d00027eaf95b33b5d8a6b38e32d5c745ef0c0907eb02dea5716a85e8d9dafb289a9
7
- data.tar.gz: 98eb64a82d50e1869e28f0148965de3cba56061232c67b4fadef488b616a0ee398860bc9e726d0972ccce38ff8afcc215afe6233768f639c452fb6f475fe36f7
6
+ metadata.gz: bbb41c9f45ecf8ae1e4f12d80f871392b08e97bf8c7074e22a2a1d265cb67d317bc1350cb1eb855270e1a48945c1e0a0b156e8e0c50eed2ed17998cb921ad640
7
+ data.tar.gz: bce8a83d09679a2e20a5bc5e05f112a207e455ed8eae2b726ad670c19c84348868a918ec82abd30119196332b6dc5a3f5443697622008eadee028f9d2ca2f974
@@ -7,6 +7,7 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
7
7
  function Ga4FormTracker (module) {
8
8
  this.module = module
9
9
  this.trackingTrigger = 'data-ga4-form' // elements with this attribute get tracked
10
+ this.includeTextInputValues = this.module.hasAttribute('data-ga4-form-include-text')
10
11
  }
11
12
 
12
13
  Ga4FormTracker.prototype.init = function () {
@@ -82,8 +83,13 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
82
83
  input.answer = labelText
83
84
  } else if (inputNodename === 'SELECT' && elem.options[elem.selectedIndex].value) {
84
85
  input.answer = elem.options[elem.selectedIndex].text
85
- } else if (inputType === 'text' && elem.value) {
86
- input.answer = '[REDACTED]'
86
+ } else if ((inputType === 'text' || inputType === 'search') && elem.value) {
87
+ if (this.includeTextInputValues) {
88
+ var PIIRemover = new window.GOVUK.analyticsGa4.PIIRemover()
89
+ input.answer = PIIRemover.stripPIIWithOverride(elem.value, true, true)
90
+ } else {
91
+ input.answer = '[REDACTED]'
92
+ }
87
93
  } else if (inputType === 'radio' && elem.checked) {
88
94
  input.answer = labelText
89
95
  } else {
@@ -34,12 +34,19 @@ module GovukPublishingComponents
34
34
  private
35
35
 
36
36
  def compile_data(path)
37
+ component_file_details = get_component_file_details(path)
38
+ helper_usage = get_helper_usage(component_file_details)
39
+
40
+ # remove the template file reference as not needed
41
+ component_file_details.map { |detail| detail.delete(:template_file) }
42
+
37
43
  {
38
44
  gem_found: true,
39
45
  component_code: clean_files(@all_templates, @templates_full_path).sort,
40
46
  components_containing_components: find_all_partials_in(@all_templates),
41
- component_file_details: get_component_file_details(path),
47
+ component_file_details: component_file_details,
42
48
  component_numbers: @component_numbers,
49
+ helper_usage: helper_usage,
43
50
  }
44
51
  end
45
52
 
@@ -96,6 +103,8 @@ module GovukPublishingComponents
96
103
  type = detail[:type]
97
104
  file = detail[:file]
98
105
  details["#{type}_exists".to_sym] = false
106
+ # save the location of the template to later grep for helper use
107
+ details["#{type}_file".to_sym] = file if type == "template"
99
108
  if File.file?(file)
100
109
  # we don't have separate print stylesheets anymore
101
110
  # so check the main stylesheet for print styles
@@ -215,5 +224,50 @@ module GovukPublishingComponents
215
224
 
216
225
  link
217
226
  end
227
+
228
+ def get_helper_usage(components)
229
+ helpers = [
230
+ {
231
+ name: "Brand helper",
232
+ link: "lib/govuk_publishing_components/app_helpers/brand_helper.rb",
233
+ match: /(GovukPublishingComponents::AppHelpers::BrandHelper.new)/,
234
+ used_by: [],
235
+ },
236
+ {
237
+ name: "Component wrapper helper",
238
+ link: "lib/govuk_publishing_components/presenters/component_wrapper_helper.rb",
239
+ match: /(GovukPublishingComponents::Presenters::ComponentWrapperHelper.new)/,
240
+ used_by: [],
241
+ },
242
+ {
243
+ name: "Heading helper",
244
+ link: "lib/govuk_publishing_components/presenters/heading_helper.rb",
245
+ match: /(GovukPublishingComponents::Presenters::HeadingHelper.new)/,
246
+ used_by: [],
247
+ },
248
+ {
249
+ name: "Shared helper",
250
+ link: "lib/govuk_publishing_components/presenters/shared_helper.rb",
251
+ match: /(GovukPublishingComponents::Presenters::SharedHelper.new)/,
252
+ used_by: [],
253
+ },
254
+ ]
255
+
256
+ components.each do |component|
257
+ file = component[:template_file]
258
+ next unless File.file?(file)
259
+
260
+ helpers.each do |helper|
261
+ next unless File.foreach(file).grep(helper[:match]).present?
262
+
263
+ helper[:used_by] << {
264
+ name: component[:name],
265
+ link: component[:template_file].split("/components/")[1],
266
+ }
267
+ end
268
+ end
269
+
270
+ helpers
271
+ end
218
272
  end
219
273
  end
@@ -63,9 +63,54 @@
63
63
  items: component_items
64
64
  %>
65
65
 
66
+ <% helpers_by_component = capture do %>
67
+ <dl class="govuk-summary-list">
68
+ <% @components[:helper_usage].each do |helper| %>
69
+ <div class="govuk-summary-list__row">
70
+ <dt class="govuk-summary-list__key">
71
+ <a href="https://github.com/alphagov/govuk_publishing_components/blob/main/<%= helper[:link] %>" class="govuk-link"><%= helper[:name] %></a>
72
+ </dt>
73
+ <dd class="govuk-summary-list__value">
74
+ <details class="govuk-details" data-module="govuk-details">
75
+ <summary class="govuk-details__summary">
76
+ <span class="govuk-details__summary-text">
77
+ Used by <%= helper[:used_by].length %> components
78
+ </span>
79
+ </summary>
80
+ <div class="govuk-details__text">
81
+ <ul class="govuk-list govuk-list--bullet">
82
+ <% helper[:used_by].each do |component| %>
83
+ <% github_link = 'https://github.com/alphagov/govuk_publishing_components/tree/main/app/views/govuk_publishing_components/components/' %>
84
+ <li>
85
+ <a href="<%= github_link %><%= component[:link] %>" class="govuk-link"><%= component[:name] %></a>
86
+ </li>
87
+ <% end %>
88
+ </ul>
89
+ </div>
90
+ </details>
91
+ </dd>
92
+ </div>
93
+ <% end %>
94
+ </dl>
95
+ <% end %>
96
+
97
+ <%
98
+ component_items << {
99
+ heading: {
100
+ text: "Helpers by component",
101
+ },
102
+ summary: {
103
+ text: "Shows which components use common helpers",
104
+ },
105
+ content: {
106
+ html: helpers_by_component
107
+ },
108
+ }
109
+ %>
110
+
66
111
  <%= render 'items_in_applications',
67
112
  heading: 'Helpers by application',
68
- summary: 'Shows any applications that use helper classes from the components gem',
113
+ summary: 'Shows any applications that use helpers from the components gem',
69
114
  content: @components[:helpers_used_by_applications],
70
115
  items: component_items
71
116
  %>
@@ -262,6 +262,9 @@
262
262
  <form
263
263
  class="gem-c-layout-super-navigation-header__search-form"
264
264
  id="search"
265
+ data-module="ga4-form-tracker"
266
+ data-ga4-form='{ "event_name": "search", "type": "header menu bar", "section": "Search GOV.UK", "action": "Search", "url": "/search/all" }'
267
+ data-ga4-form-include-text
265
268
  action="/search"
266
269
  method="get"
267
270
  role="search"
@@ -333,3 +333,23 @@ examples:
333
333
  - title: UK-China High-Level People to People Dialogue 2017
334
334
  base_path: /government/topical-events/uk-china-high-level-people-to-people-dialogue-2017
335
335
  document_type: topical_event
336
+ world_locations:
337
+ - title: Algeria
338
+ base_path: /world/algeria/news
339
+ - title: Austria
340
+ base_path: /world/austria/news
341
+ - title: Belarus
342
+ base_path: /world/belarus/news
343
+ - title: Belgium
344
+ base_path: /world/belgium/news
345
+ - title: Bolivia
346
+ base_path: /world/bolivia/news
347
+ - title: Brazil
348
+ base_path: /world/brazil/news
349
+ - title: Canada
350
+ base_path: /world/canada/news
351
+ - title: Chile
352
+ base_path: /world/chile/news
353
+ - title: China
354
+ base_path: /world/China/news
355
+
@@ -63,17 +63,23 @@
63
63
  <% end %>
64
64
 
65
65
  <% if links.length > section_link_limit %>
66
- <li class="gem-c-related-navigation__link toggle-wrap">
67
- <a href="#"
68
- class="gem-c-related-navigation__toggle"
69
- data-controls="toggle_<%= section_title %>"
70
- data-expanded="false"
71
- data-toggled-text="<%= t("common.toggle_less") %>">
66
+ <%
67
+ classes = "gem-c-related-navigation__link toggle-wrap"
68
+ data_attributes_li = { module: "ga4-event-tracker" } if ga4_tracking
69
+ data_attributes_link = {
70
+ controls: "toggle_#{section_title}",
71
+ expanded: "false",
72
+ toggled_text: t("common.toggle_less")
73
+ }
74
+ data_attributes_link[:ga4_event] = { "event_name": "select_content", "type": "related content" } if ga4_tracking
75
+ %>
76
+ <%= tag.li(class: classes, data: data_attributes_li) do %>
77
+ <%= link_to("#", class: "gem-c-related-navigation__toggle", data: data_attributes_link) do %>
72
78
  <%= t("common.toggle_more",
73
79
  show: t('common.show'),
74
- number: related_nav_helper.remaining_link_count(links)) %>
75
- </a>
76
- </li>
80
+ number: related_nav_helper.remaining_link_count(links)) %>
81
+ <% end %>
82
+ <% end %>
77
83
 
78
84
  <li class="gem-c-related-navigation__link gem-c-related-navigation__link--truncated-links">
79
85
  <span id="toggle_<%= section_title %>" class="gem-c-related-navigation__toggle-more js-hidden">
@@ -293,7 +293,7 @@ en:
293
293
  - label: 'Homes for Ukraine: record your interest'
294
294
  href: https://www.gov.uk/register-interest-homes-ukraine
295
295
  - label: Find out about the UK’s response
296
- href: https://ukstandswithukraine.campaign.gov.uk/
296
+ href: https://www.gov.uk/government/topical-events/russian-invasion-of-ukraine-uk-government-response
297
297
  title: Invasion of Ukraine
298
298
  world_locations: World locations
299
299
  search_box:
@@ -1,3 +1,3 @@
1
1
  module GovukPublishingComponents
2
- VERSION = "34.11.0".freeze
2
+ VERSION = "34.12.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: 34.11.0
4
+ version: 34.12.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: 2023-02-21 00:00:00.000000000 Z
11
+ date: 2023-02-23 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: govuk_app_config