govuk_publishing_components 29.11.0 → 29.12.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: 4908ab95bb70e9f55096b46cae08b0ea6fff5f168da24aa427c810a39de96e4a
4
- data.tar.gz: 99873d158278fbbf30eb341558a5424b9957054b0711486312bd4e18b9c45b35
3
+ metadata.gz: 3dd3c468990ad57344b60f3268db6600fc77389ec57fa53688699284bef86502
4
+ data.tar.gz: 2dc30bfb1f489e894134032e8d055e694b4ac45e5eb49e3055ceae8ac0f2b0b7
5
5
  SHA512:
6
- metadata.gz: 7c6a51b33e3f4fccb750bdc8ab05171bb7d3e877f5ee8e9f0a601be977baa390162cfbab07a94facf2905d7eadd5f504640e25e86260d5b756e82959a8532522
7
- data.tar.gz: 5531061592b4e1db78a34d8ecf15f613f05140585df1d5edb76224e82b317a62be16fb7ae4345d75c075297f164b3eb1569c794a7337a09d7345fee4061e0daf
6
+ metadata.gz: 1d147c794de4cd0cb8210584db07fe0e32a3036d68bded430d2c8d9b45a00b50f78a931d21b48be269f971099f8b054881f3b707694b4f52c3dfa7d00aef7ea2
7
+ data.tar.gz: 786de6478e56d31089cb7745914bc5e38e5e8e63043d2b862777a69a5622b19f7f678c2d43559e179eb1701b3222fd1f384d05530c7f403abcccf1f025a005ef
data/README.md CHANGED
@@ -35,19 +35,30 @@ yarn run jasmine:browser
35
35
  yarn run jasmine:ci
36
36
  ```
37
37
 
38
- ### Further documentation
38
+ ### Using the gem
39
39
 
40
40
  - [Install and use this gem](docs/install-and-use.md)
41
41
  - [Use a component in your application](docs/use-components.md)
42
- - [Generate a new component](docs/generate-a-new-component.md)
43
- - [Testing a component](docs/testing-components.md)
44
- - [Move a component from an application to the gem](docs/moving-components-upstream-into-this-gem.md)
42
+
43
+ ### Managing the gem
44
+
45
45
  - [Publish/release a new version of the gem](docs/publishing-to-rubygems.md)
46
46
  - [Keep this gem in sync with the Design System](docs/upgrade-govuk-frontend.md)
47
- - [Code documentation on rubydoc.info](http://www.rubydoc.info/gems/govuk_publishing_components)
47
+ - [Move a component from an application to the gem](docs/moving-components-upstream-into-this-gem.md)
48
+
49
+ ### Making components
50
+
51
+ - [Generate a new component](docs/generate-a-new-component.md)
48
52
  - [Component conventions](docs/component_conventions.md)
49
53
  - [Component principles](docs/component_principles.md)
54
+
55
+ ### Further documentation
56
+
57
+ - [Testing a component](docs/testing-components.md)
50
58
  - [Component auditing](docs/auditing.md)
59
+ - [Code documentation on rubydoc.info](http://www.rubydoc.info/gems/govuk_publishing_components)
60
+
61
+ More documentation can be found in the [docs directory](docs/).
51
62
 
52
63
  ## Licence
53
64
 
@@ -25,11 +25,23 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
25
25
  link_url: window.location.href.substring(window.location.origin.length),
26
26
  ui: JSON.parse(target.getAttribute('data-gtm-attributes')) || {}
27
27
  }
28
- var ariaExpanded = this.checkExpandedState(target)
28
+ var ariaExpanded = this.getClosestAttribute(target, 'aria-expanded')
29
+ /*
30
+ the details component uses an 'open' attribute instead of aria-expanded, so we need to check if we're on a details component.
31
+ since details deletes the 'open' attribute when closed, we need this boolean, otherwise every element which
32
+ doesn't contain an 'open' attr would be pushed to gtm as a closed element.
33
+ */
34
+ var detailsElement = target.closest('details')
35
+
29
36
  if (ariaExpanded) {
30
- data.ui.state = ariaExpanded === 'false' ? 'opened' : 'closed'
31
37
  data.ui.text = data.ui.text || target.innerText
38
+ data.ui.state = (ariaExpanded === 'false') ? 'opened' : 'closed'
39
+ } else if (detailsElement) {
40
+ data.ui.text = data.ui.text || detailsElement.textContent
41
+ var openAttribute = detailsElement.getAttribute('open')
42
+ data.ui.state = (openAttribute == null) ? 'opened' : 'closed'
32
43
  }
44
+
33
45
  window.dataLayer.push(data)
34
46
  }
35
47
  }
@@ -43,15 +55,15 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
43
55
  }
44
56
  }
45
57
 
46
- // check either element is expandable or contains expandable element
47
- GtmClickTracking.prototype.checkExpandedState = function (clicked) {
48
- var isExpandable = clicked.getAttribute('aria-expanded')
49
- var containsExpandable = clicked.querySelector('[aria-expanded]')
58
+ // check if an attribute exists or contains the attribute
59
+ GtmClickTracking.prototype.getClosestAttribute = function (clicked, attribute) {
60
+ var isAttributeOnElement = clicked.getAttribute(attribute)
61
+ var containsAttribute = clicked.querySelector('[' + attribute + ']')
50
62
 
51
- if (isExpandable) {
52
- return isExpandable
53
- } else if (containsExpandable) {
54
- return containsExpandable.getAttribute('aria-expanded')
63
+ if (isAttributeOnElement || isAttributeOnElement === '') { // checks for "" as some attribute names can contain no value making them falsy
64
+ return isAttributeOnElement
65
+ } else if (containsAttribute) {
66
+ return containsAttribute.getAttribute(attribute)
55
67
  }
56
68
  }
57
69
 
@@ -0,0 +1,98 @@
1
+ ;(function (global) {
2
+ 'use strict'
3
+
4
+ var GOVUK = global.GOVUK || {}
5
+
6
+ GOVUK.Gtm = {
7
+ sendPageView: function () {
8
+ if (window.dataLayer) {
9
+ var data = {
10
+ event: 'config_ready',
11
+ page: {
12
+ location: this.getLocation(),
13
+ referrer: this.getReferrer(),
14
+ title: this.getTitle(),
15
+ status_code: this.getStatusCode()
16
+ },
17
+ publishing: {
18
+ document_type: this.getMetaContent('format'),
19
+ publishing_application: this.getMetaContent('publishing-application'),
20
+ rendering_application: this.getMetaContent('rendering-application'),
21
+ schema_name: this.getMetaContent('schema-name'),
22
+ content_id: this.getMetaContent('content-id')
23
+ },
24
+ taxonomy: {
25
+ section: this.getMetaContent('section'),
26
+ taxon_slug: this.getMetaContent('taxon-slug'),
27
+ taxon_id: this.getMetaContent('taxon-id'),
28
+ themes: this.getMetaContent('themes'),
29
+ taxon_slugs: this.getMetaContent('taxon-slugs'),
30
+ taxon_ids: this.getMetaContent('taxon-ids')
31
+ },
32
+ content: {
33
+ language: this.getLanguage(),
34
+ history: this.getHistory(),
35
+ withdrawn: this.getWithDrawn(),
36
+ first_published_at: this.getMetaContent('first-published-at'),
37
+ updated_at: this.getMetaContent('updated-at'),
38
+ public_updated_at: this.getMetaContent('public-updated-at'),
39
+ publishing_government: this.getMetaContent('publishing-government'),
40
+ political_status: this.getMetaContent('political-status'),
41
+ primary_publishing_organisation: this.getMetaContent('primary-publishing-organisation'),
42
+ organisations: this.getMetaContent('analytics:organisations'),
43
+ world_locations: this.getMetaContent('analytics:world-locations')
44
+ }
45
+ }
46
+ window.dataLayer.push(data)
47
+ }
48
+ },
49
+
50
+ getLocation: function () {
51
+ return document.location.href
52
+ },
53
+
54
+ getReferrer: function () {
55
+ return document.referrer
56
+ },
57
+
58
+ getTitle: function () {
59
+ return document.title
60
+ },
61
+
62
+ // window.httpStatusCode is set in the source of the error page in static
63
+ // https://github.com/alphagov/static/blob/main/app/views/root/_error_page.html.erb#L32
64
+ getStatusCode: function () {
65
+ if (window.httpStatusCode) {
66
+ return window.httpStatusCode
67
+ } else {
68
+ return 200
69
+ }
70
+ },
71
+
72
+ getMetaContent: function (name) {
73
+ var tag = document.querySelector('meta[name="govuk:' + name + '"]')
74
+ if (tag) {
75
+ return tag.getAttribute('content')
76
+ } else {
77
+ return 'n/a'
78
+ }
79
+ },
80
+
81
+ getLanguage: function () {
82
+ var html = document.querySelector('html')
83
+ return html.getAttribute('lang') || 'n/a'
84
+ },
85
+
86
+ getHistory: function () {
87
+ var history = this.getMetaContent('content-has-history')
88
+ return (history === 'true') ? 'true' : 'false'
89
+ },
90
+
91
+ getWithDrawn: function () {
92
+ var withdrawn = this.getMetaContent('withdrawn')
93
+ return (withdrawn === 'withdrawn') ? 'true' : 'false'
94
+ }
95
+ }
96
+
97
+ global.GOVUK = GOVUK
98
+ })(window)
@@ -1 +1,4 @@
1
+ //= require ./analytics-ga4/gtm-page-views
1
2
  //= require ./analytics-ga4/gtm-click-tracking
3
+
4
+ window.GOVUK.Gtm.sendPageView() // this will need integrating with cookie consent before production
@@ -91,7 +91,7 @@ window.GOVUK.Modules.GovukAccordion = window.GOVUKFrontend.Accordion;
91
91
  var $expanded = this.getContainingSection($section)
92
92
  var $parent = $header.parentElement
93
93
 
94
- // manuals-frontend features:
94
+ // government-frontend features (inherited from manuals-frontend):
95
95
  // Should the target anchor link be within the same page, open section - navigate normally
96
96
  // Should the target anchor link be within a different, closed section, open this section
97
97
  // Should the target anchor link be within a different page and different, closed section open this section
@@ -144,6 +144,18 @@ window.GOVUK.Modules.GovukAccordion = window.GOVUKFrontend.Accordion;
144
144
  var action = expanded ? 'accordionOpened' : 'accordionClosed'
145
145
  var options = { transport: 'beacon', label: label }
146
146
 
147
+ // optional parameters are added to the parent
148
+ // heading not the button that is clicked
149
+ var extraOptions = section.parentElement && section.parentElement.getAttribute('data-track-options')
150
+
151
+ // this uses the same logic as track-click.js handleClick
152
+ // means we can add a custom dimensions on click
153
+ // (such as the index of the accordion on the page)
154
+ if (extraOptions) {
155
+ extraOptions = JSON.parse(extraOptions)
156
+ for (var k in extraOptions) options[k] = extraOptions[k]
157
+ }
158
+
147
159
  if (window.GOVUK.analytics && window.GOVUK.analytics.trackEvent) {
148
160
  window.GOVUK.analytics.trackEvent('pageElementInteraction', action, options)
149
161
  }
@@ -175,8 +175,8 @@ if (
175
175
  var measureHTTPProtocol = function () {
176
176
  var getEntriesByType = performance.getEntriesByType('navigation')
177
177
 
178
- if (getEntriesByType.length > 0) {
179
- var httpProtocol = JSON.parse(JSON.stringify(performance.getEntriesByType('navigation')[0].nextHopProtocol))
178
+ if (typeof getEntriesByType !== 'undefined' && getEntriesByType.length > 0) {
179
+ var httpProtocol = getEntriesByType[0].nextHopProtocol
180
180
  LUX.addData("http-protocol", httpProtocol)
181
181
  }
182
182
  }
@@ -15,7 +15,6 @@ module GovukPublishingComponents
15
15
  govspeak-preview
16
16
  info-frontend
17
17
  licence-finder
18
- manuals-frontend
19
18
  release
20
19
  search-admin
21
20
  service-manual-frontend
@@ -13,7 +13,6 @@ module GovukPublishingComponents
13
13
  government-frontend
14
14
  info-frontend
15
15
  licence-finder
16
- manuals-frontend
17
16
  service-manual-frontend
18
17
  smart-answers
19
18
  whitehall
@@ -83,9 +83,7 @@
83
83
  <% end %>
84
84
  <% end %>
85
85
 
86
- <% if attachment.display_accessible_format_request_form_link? %>
87
- <%= link_to "Request an accessible format of this document", "/contact/govuk/request-accessible-format?content_id=#{attachment.owning_document_content_id}&attachment_id=#{attachment.attachment_id}", class: "govuk-link" %>
88
- <% elsif attachment.alternative_format_contact_email %>
86
+ <% if attachment.alternative_format_contact_email %>
89
87
  <%= tag.p t("components.attachment.request_format_text"), class: "gem-c-attachment__metadata" %>
90
88
  <%= render "govuk_publishing_components/components/details", {
91
89
  title: t("components.attachment.request_format_cta")
@@ -1,7 +1,10 @@
1
- <% description ||= nil %>
2
- <% data_attributes ||= {} %>
1
+ <%
2
+ id ||= nil
3
+ description ||= nil
4
+ data_attributes ||= {}
5
+ %>
3
6
 
4
- <%= tag.div class: "gem-c-error-alert", data: { module: "initial-focus" }.merge(data_attributes), role: "alert", tabindex: "-1" do %>
7
+ <%= tag.div id: id, class: "gem-c-error-alert", data: { module: "initial-focus" }.merge(data_attributes), role: "alert", tabindex: "-1" do %>
5
8
  <% if description.present? %>
6
9
  <%= tag.h2 message, class: "gem-c-error-summary__title" %>
7
10
  <%= tag.div description, class: "gem-c-error-summary__body" %>
@@ -6,9 +6,9 @@
6
6
  classes << "gem-c-layout-footer--border" if with_border
7
7
  %>
8
8
  <%= tag.footer class: classes, role: "contentinfo" do %>
9
- <div class="govuk-width-container" data-module="gem-track-click">
9
+ <div class="govuk-width-container">
10
10
  <% if navigation.any? %>
11
- <div class="govuk-footer__navigation">
11
+ <div class="govuk-footer__navigation" data-module="gem-track-click" data-track-links-only>
12
12
  <% navigation.each do |item| %>
13
13
  <% if item[:items] %>
14
14
  <%
@@ -60,7 +60,7 @@
60
60
  <div class="govuk-footer__meta-item govuk-footer__meta-item--grow">
61
61
  <% if meta.any? %>
62
62
  <h2 class="govuk-visually-hidden"><%= t("components.layout_footer.support_links") %></h2>
63
- <ul class="govuk-footer__inline-list govuk-!-display-none-print">
63
+ <ul class="govuk-footer__inline-list govuk-!-display-none-print" data-module="gem-track-click" data-track-links-only>
64
64
  <% meta[:items].each do |item| %>
65
65
  <li class="govuk-footer__inline-list-item">
66
66
  <%
@@ -15,12 +15,11 @@
15
15
  hide_navigation_menu_text = t("components.layout_super_navigation_header.menu_toggle_label.hide", :label => "navigation")
16
16
  show_navigation_menu_text = t("components.layout_super_navigation_header.menu_toggle_label.show", :label => "navigation")
17
17
  %>
18
- <header role="banner" class="gem-c-layout-super-navigation-header">
18
+ <header role="banner" class="gem-c-layout-super-navigation-header" data-module="gem-track-click" data-track-links-only>
19
19
  <div class="gem-c-layout-super-navigation-header__container govuk-width-container govuk-clearfix">
20
20
  <div class="gem-c-layout-super-navigation-header__header-logo">
21
21
  <a
22
22
  class="govuk-header__link govuk-header__link--homepage"
23
- data-module="gem-track-click"
24
23
  data-track-action="logoLink"
25
24
  data-track-category="headerClicked"
26
25
  data-track-label="<%= logo_link %>"
@@ -100,7 +99,6 @@
100
99
  <%= link_to link[:label], link[:href], {
101
100
  class: "gem-c-layout-super-navigation-header__navigation-item-link",
102
101
  data: {
103
- module: "gem-track-click",
104
102
  track_action: "#{tracking_label}Link",
105
103
  track_category: "headerClicked",
106
104
  track_label: link[:href],
@@ -141,9 +139,9 @@
141
139
  <div class="govuk-grid-row">
142
140
  <div class="govuk-grid-column-one-third-from-desktop">
143
141
  <% if link[:description].present? %>
144
- <p class="govuk-body-l gem-c-layout-super-navigation-header__menu-description">
142
+ <h3 class="govuk-body-l gem-c-layout-super-navigation-header__menu-description">
145
143
  <%= link[:description] %>
146
- </p>
144
+ </h3>
147
145
  <% end %>
148
146
  </div>
149
147
  <div class="govuk-grid-column-two-thirds-from-desktop">
@@ -159,7 +157,6 @@
159
157
  <%= link_to item[:label], item[:href], {
160
158
  class: link_classes,
161
159
  data: {
162
- module: "gem-track-click",
163
160
  track_action: "#{tracking_label}Link",
164
161
  track_category: "headerClicked",
165
162
  track_label: item[:href],
@@ -183,7 +180,6 @@
183
180
  "gem-c-layout-super-navigation-header__navigation-second-footer-link",
184
181
  ],
185
182
  data: {
186
- module: "gem-track-click",
187
183
  track_action: "#{tracking_label}Link",
188
184
  track_category: "headerClicked",
189
185
  track_label: item[:href],
@@ -312,7 +308,6 @@
312
308
  "gem-c-layout-super-navigation-header__popular-link",
313
309
  ],
314
310
  data: {
315
- module: "gem-track-click",
316
311
  track_action: "popularLink",
317
312
  track_category: "headerClicked",
318
313
  track_label: popular_link[:href],
@@ -195,11 +195,8 @@ examples:
195
195
  gtm: gtm-accordion
196
196
  ga: ga-accordion
197
197
  data_attributes_show_all:
198
- module: example
199
- track-action: click
200
- ui:
201
- type: test
202
- text: something
198
+ gtm-event-name: example
199
+ gtm-attributes: "{ 'ui': { 'type': 'type value', 'section': 'section value' } }"
203
200
  items:
204
201
  - heading:
205
202
  text: Writing well for the web
@@ -337,6 +334,8 @@ examples:
337
334
  To switch on Google Analytics for each section, on click, pass `track_sections: true` the values passed on open will be
338
335
  `Event Action: accordionOpened` / `accordionClosed` `Event Category: pageElementInteraction` and the `Event Label` being the heading text.
339
336
 
337
+ If `track_options` in an item is set, then it is possible to pass a custom dimension when the section is clicked.
338
+
340
339
  (`track_show_all_clicks: true` can be added to track the "Show all sections" button as well, if required)
341
340
  data:
342
341
  track_sections: true
@@ -346,6 +345,9 @@ examples:
346
345
  id: writing-well-for-the-web-3
347
346
  content:
348
347
  html: <p class="govuk-body">This is content for accordion 1 of 2</p><p class="govuk-body">This content contains a <a href="#anchor-nav-test" class="govuk-link">link</a></p>
348
+ data_attributes:
349
+ track_options:
350
+ dimension114: 1
349
351
  - heading:
350
352
  text: Writing well for specialists
351
353
  content:
@@ -76,17 +76,6 @@ examples:
76
76
  content_type: application/pdf
77
77
  file_size: 20000
78
78
  alternative_format_contact_email: defra.helpline@defra.gsi.gov.uk
79
- with_link_to_request_accessible_format_form:
80
- data:
81
- attachment:
82
- title: "Department for Transport information asset register"
83
- url: https://assets.publishing.service.gov.uk/government/uploads/system/uploads/attachment_data/file/747661/department-for-transport-information-asset-register.csv
84
- filename: department-for-transport-information-asset-register.csv
85
- content_type: application/pdf
86
- file_size: 20000
87
- owning_document_content_id: 456_abc
88
- attachment_id: 123
89
- alternative_format_contact_email: govuk_publishing_components@example.com
90
79
  with_data_attributes:
91
80
  data:
92
81
  attachment:
@@ -27,3 +27,7 @@ examples:
27
27
  description: A further description
28
28
  data_attributes:
29
29
  tracking: GTM-123AB
30
+ with_specified_id_attribute:
31
+ data:
32
+ id: test-id
33
+ message: Message to alert the user to a unsuccessful action goes here
@@ -1,13 +1,6 @@
1
1
  module GovukPublishingComponents
2
2
  module Presenters
3
3
  class AttachmentHelper
4
- # Various departments are taking part in a pilot to use a form
5
- # rather than direct email for users to request accessible formats. When the pilot
6
- # scheme is rolled out further this can be removed.
7
- # Currently DfE, DWP and DVSA are participating in the pilot.
8
- EMAILS_IN_ACCESSIBLE_FORMAT_REQUEST_PILOT = %w[govuk_publishing_components@example.com
9
- alternative.formats@education.gov.uk].freeze
10
-
11
4
  delegate :opendocument?, :document?, :spreadsheet?, to: :content_type
12
5
 
13
6
  attr_reader :attachment_data
@@ -15,7 +8,6 @@ module GovukPublishingComponents
15
8
  # Expects a hash of attachment data
16
9
  # * title and url are required
17
10
  # * content_type, filename, file_size, number of pages, alternative_format_contact_email can be provided
18
- # * attachment_id and owning_document_content_id are required to use the accessible format request form
19
11
  def initialize(attachment_data)
20
12
  @attachment_data = attachment_data.with_indifferent_access
21
13
  end
@@ -55,14 +47,6 @@ module GovukPublishingComponents
55
47
  attachment_data[:alternative_format_contact_email]
56
48
  end
57
49
 
58
- def attachment_id
59
- attachment_data[:attachment_id]
60
- end
61
-
62
- def owning_document_content_id
63
- attachment_data[:owning_document_content_id]
64
- end
65
-
66
50
  def reference
67
51
  reference = []
68
52
  reference << "ISBN #{attachment_data[:isbn]}" if attachment_data[:isbn].present?
@@ -87,10 +71,6 @@ module GovukPublishingComponents
87
71
  attachment_data[:command_paper_number].present? || attachment_data[:hoc_paper_number].present? || attachment_data[:unnumbered_command_paper].eql?(true) || attachment_data[:unnumbered_hoc_paper].eql?(true)
88
72
  end
89
73
 
90
- def display_accessible_format_request_form_link?
91
- EMAILS_IN_ACCESSIBLE_FORMAT_REQUEST_PILOT.include?(alternative_format_contact_email) && owning_document_content_id.present? && attachment_id.present?
92
- end
93
-
94
74
  class SupportedContentType
95
75
  attr_reader :content_type_data
96
76
 
@@ -39,6 +39,12 @@ module GovukPublishingComponents
39
39
  meta_tags["govuk:content-has-history"] = "true" if has_content_history?
40
40
  meta_tags["govuk:static-analytics:strip-dates"] = "true" if should_strip_dates_pii?(content_item, local_assigns)
41
41
  meta_tags["govuk:static-analytics:strip-postcodes"] = "true" if should_strip_postcode_pii?(content_item, local_assigns)
42
+ meta_tags["govuk:first-published-at"] = content_item[:first_published_at] if content_item[:first_published_at]
43
+ meta_tags["govuk:updated-at"] = content_item[:updated_at] if content_item[:updated_at]
44
+ meta_tags["govuk:public-updated-at"] = content_item[:public_updated_at] if content_item[:public_updated_at]
45
+ primary_publisher = content_item.dig(:links, :primary_publishing_organisation)
46
+ primary_publisher = primary_publisher.first[:title] if primary_publisher
47
+ meta_tags["govuk:primary-publishing-organisation"] = primary_publisher if primary_publisher
42
48
 
43
49
  meta_tags
44
50
  end
@@ -1,3 +1,3 @@
1
1
  module GovukPublishingComponents
2
- VERSION = "29.11.0".freeze
2
+ VERSION = "29.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: 29.11.0
4
+ version: 29.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: 2022-05-26 00:00:00.000000000 Z
11
+ date: 2022-06-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: govuk_app_config
@@ -435,6 +435,7 @@ files:
435
435
  - app/assets/javascripts/govuk_publishing_components/all_components.js
436
436
  - app/assets/javascripts/govuk_publishing_components/analytics-ga4.js
437
437
  - app/assets/javascripts/govuk_publishing_components/analytics-ga4/gtm-click-tracking.js
438
+ - app/assets/javascripts/govuk_publishing_components/analytics-ga4/gtm-page-views.js
438
439
  - app/assets/javascripts/govuk_publishing_components/analytics.js
439
440
  - app/assets/javascripts/govuk_publishing_components/analytics/analytics.js
440
441
  - app/assets/javascripts/govuk_publishing_components/analytics/auto-scroll-tracker.js
@@ -1918,7 +1919,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
1918
1919
  - !ruby/object:Gem::Version
1919
1920
  version: '0'
1920
1921
  requirements: []
1921
- rubygems_version: 3.3.14
1922
+ rubygems_version: 3.3.16
1922
1923
  signing_key:
1923
1924
  specification_version: 4
1924
1925
  summary: A gem to document components in GOV.UK frontend applications