govuk_publishing_components 32.0.0 → 33.0.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 +4 -4
- data/app/assets/javascripts/component_guide/accessibility-test.js +0 -1
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-core.js +175 -0
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-ecommerce-tracker.js +1 -1
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-event-tracker.js +5 -13
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-link-tracker.js +80 -309
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-page-views.js +2 -2
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-specialist-link-tracker.js +140 -0
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/init-ga4.js +3 -0
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4.js +1 -0
- data/app/assets/javascripts/govuk_publishing_components/components/accordion.js +12 -1
- data/app/assets/javascripts/govuk_publishing_components/components/layout-super-navigation-header.js +13 -4
- data/app/assets/javascripts/govuk_publishing_components/components/single-page-notification-button.js +24 -8
- data/app/assets/javascripts/govuk_publishing_components/vendor/lux/lux-reporter.js +83 -86
- data/app/assets/stylesheets/govuk_publishing_components/components/_big-number.scss +2 -5
- data/app/assets/stylesheets/govuk_publishing_components/components/_image-card.scss +1 -5
- data/app/assets/stylesheets/govuk_publishing_components/components/_input.scss +3 -5
- data/app/assets/stylesheets/govuk_publishing_components/components/_layout-super-navigation-header.scss +10 -30
- data/app/assets/stylesheets/govuk_publishing_components/components/_search.scss +0 -7
- data/app/assets/stylesheets/govuk_publishing_components/components/_share-links.scss +0 -6
- data/app/views/govuk_publishing_components/components/_accordion.html.erb +14 -1
- data/app/views/govuk_publishing_components/components/_error_summary.html.erb +27 -26
- data/app/views/govuk_publishing_components/components/_layout_super_navigation_header.html.erb +2 -2
- data/app/views/govuk_publishing_components/components/_phase_banner.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/_share_links.html.erb +18 -15
- data/app/views/govuk_publishing_components/components/_single_page_notification_button.html.erb +1 -1
- data/app/views/govuk_publishing_components/components/docs/accordion.yml +15 -3
- data/app/views/govuk_publishing_components/components/docs/button.yml +10 -0
- data/app/views/govuk_publishing_components/components/docs/share_links.yml +59 -30
- data/app/views/govuk_publishing_components/components/docs/single_page_notification_button.yml +10 -1
- data/app/views/govuk_publishing_components/components/feedback/_yes_no_banner.html.erb +3 -3
- data/config/locales/ar.yml +4 -1
- data/config/locales/az.yml +4 -1
- data/config/locales/be.yml +4 -1
- data/config/locales/bg.yml +4 -1
- data/config/locales/bn.yml +4 -1
- data/config/locales/cs.yml +4 -1
- data/config/locales/cy.yml +4 -1
- data/config/locales/da.yml +4 -1
- data/config/locales/de.yml +4 -1
- data/config/locales/dr.yml +4 -1
- data/config/locales/el.yml +4 -1
- data/config/locales/en.yml +20 -17
- data/config/locales/es-419.yml +4 -1
- data/config/locales/es.yml +4 -1
- data/config/locales/et.yml +4 -1
- data/config/locales/fa.yml +4 -1
- data/config/locales/fi.yml +4 -1
- data/config/locales/fr.yml +4 -1
- data/config/locales/gd.yml +4 -1
- data/config/locales/gu.yml +4 -1
- data/config/locales/he.yml +4 -1
- data/config/locales/hi.yml +4 -1
- data/config/locales/hr.yml +4 -1
- data/config/locales/hu.yml +4 -1
- data/config/locales/hy.yml +4 -1
- data/config/locales/id.yml +4 -1
- data/config/locales/is.yml +4 -1
- data/config/locales/it.yml +4 -1
- data/config/locales/ja.yml +4 -1
- data/config/locales/ka.yml +4 -1
- data/config/locales/kk.yml +4 -1
- data/config/locales/ko.yml +4 -1
- data/config/locales/lt.yml +4 -1
- data/config/locales/lv.yml +4 -1
- data/config/locales/ms.yml +4 -1
- data/config/locales/mt.yml +4 -1
- data/config/locales/nl.yml +4 -1
- data/config/locales/no.yml +4 -1
- data/config/locales/pa-pk.yml +4 -1
- data/config/locales/pa.yml +4 -1
- data/config/locales/pl.yml +4 -1
- data/config/locales/ps.yml +4 -1
- data/config/locales/pt.yml +4 -1
- data/config/locales/ro.yml +4 -1
- data/config/locales/ru.yml +4 -1
- data/config/locales/si.yml +4 -1
- data/config/locales/sk.yml +4 -1
- data/config/locales/sl.yml +4 -1
- data/config/locales/so.yml +4 -1
- data/config/locales/sq.yml +4 -1
- data/config/locales/sr.yml +4 -1
- data/config/locales/sv.yml +4 -1
- data/config/locales/sw.yml +4 -1
- data/config/locales/ta.yml +4 -1
- data/config/locales/th.yml +4 -1
- data/config/locales/tk.yml +4 -1
- data/config/locales/tr.yml +4 -1
- data/config/locales/uk.yml +4 -1
- data/config/locales/ur.yml +4 -1
- data/config/locales/uz.yml +4 -1
- data/config/locales/vi.yml +4 -1
- data/config/locales/zh-hk.yml +4 -1
- data/config/locales/zh-tw.yml +4 -1
- data/config/locales/zh.yml +4 -1
- data/lib/govuk_publishing_components/presenters/button_helper.rb +7 -1
- data/lib/govuk_publishing_components/presenters/single_page_notification_button_helper.rb +25 -1
- data/lib/govuk_publishing_components/version.rb +1 -1
- data/node_modules/axe-core/axe.js +4567 -4678
- data/node_modules/axe-core/axe.min.js +2 -2
- data/node_modules/axe-core/package.json +2 -2
- data/node_modules/axe-core/sri-history.json +8 -0
- data/node_modules/govuk-frontend/README.md +1 -2
- data/node_modules/govuk-frontend/govuk/all.js +1398 -273
- data/node_modules/govuk-frontend/govuk/common/closest-attribute-value.js +70 -0
- data/node_modules/govuk-frontend/govuk/common/index.js +172 -0
- data/node_modules/govuk-frontend/govuk/common/normalise-dataset.js +373 -0
- data/node_modules/govuk-frontend/govuk/common.js +138 -3
- data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +753 -25
- data/node_modules/govuk-frontend/govuk/components/accordion/fixtures.json +54 -22
- data/node_modules/govuk-frontend/govuk/components/accordion/macro-options.json +36 -0
- data/node_modules/govuk-frontend/govuk/components/accordion/template.njk +7 -1
- data/node_modules/govuk-frontend/govuk/components/back-link/fixtures.json +12 -12
- data/node_modules/govuk-frontend/govuk/components/breadcrumbs/fixtures.json +22 -22
- data/node_modules/govuk-frontend/govuk/components/button/_index.scss +23 -5
- data/node_modules/govuk-frontend/govuk/components/button/button.js +365 -107
- data/node_modules/govuk-frontend/govuk/components/button/fixtures.json +85 -66
- data/node_modules/govuk-frontend/govuk/components/button/template.njk +1 -1
- data/node_modules/govuk-frontend/govuk/components/character-count/_index.scss +9 -0
- data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js +1033 -121
- data/node_modules/govuk-frontend/govuk/components/character-count/fixtures.json +112 -36
- data/node_modules/govuk-frontend/govuk/components/character-count/macro-options.json +42 -0
- data/node_modules/govuk-frontend/govuk/components/character-count/template.njk +27 -3
- data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js +30 -2
- data/node_modules/govuk-frontend/govuk/components/checkboxes/fixtures.json +96 -93
- data/node_modules/govuk-frontend/govuk/components/cookie-banner/fixtures.json +46 -46
- data/node_modules/govuk-frontend/govuk/components/date-input/fixtures.json +50 -50
- data/node_modules/govuk-frontend/govuk/components/details/details.js +43 -13
- data/node_modules/govuk-frontend/govuk/components/details/fixtures.json +20 -20
- data/node_modules/govuk-frontend/govuk/components/error-message/fixtures.json +20 -20
- data/node_modules/govuk-frontend/govuk/components/error-summary/error-summary.js +268 -6
- data/node_modules/govuk-frontend/govuk/components/error-summary/fixtures.json +44 -35
- data/node_modules/govuk-frontend/govuk/components/error-summary/template.njk +25 -21
- data/node_modules/govuk-frontend/govuk/components/fieldset/fixtures.json +51 -39
- data/node_modules/govuk-frontend/govuk/components/file-upload/fixtures.json +26 -26
- data/node_modules/govuk-frontend/govuk/components/footer/_index.scss +1 -1
- data/node_modules/govuk-frontend/govuk/components/footer/fixtures.json +46 -46
- data/node_modules/govuk-frontend/govuk/components/footer/macro-options.json +2 -2
- data/node_modules/govuk-frontend/govuk/components/header/fixtures.json +93 -38
- data/node_modules/govuk-frontend/govuk/components/header/header.js +6 -0
- data/node_modules/govuk-frontend/govuk/components/header/macro-options.json +8 -2
- data/node_modules/govuk-frontend/govuk/components/header/template.njk +4 -2
- data/node_modules/govuk-frontend/govuk/components/hint/fixtures.json +12 -12
- data/node_modules/govuk-frontend/govuk/components/input/fixtures.json +80 -80
- data/node_modules/govuk-frontend/govuk/components/inset-text/fixtures.json +12 -12
- data/node_modules/govuk-frontend/govuk/components/label/fixtures.json +34 -34
- data/node_modules/govuk-frontend/govuk/components/notification-banner/fixtures.json +56 -46
- data/node_modules/govuk-frontend/govuk/components/notification-banner/notification-banner.js +252 -2
- data/node_modules/govuk-frontend/govuk/components/notification-banner/template.njk +1 -1
- data/node_modules/govuk-frontend/govuk/components/pagination/_index.scss +10 -7
- data/node_modules/govuk-frontend/govuk/components/pagination/fixtures.json +33 -26
- data/node_modules/govuk-frontend/govuk/components/panel/fixtures.json +18 -18
- data/node_modules/govuk-frontend/govuk/components/phase-banner/fixtures.json +14 -14
- data/node_modules/govuk-frontend/govuk/components/radios/fixtures.json +94 -91
- data/node_modules/govuk-frontend/govuk/components/radios/radios.js +30 -2
- data/node_modules/govuk-frontend/govuk/components/select/fixtures.json +32 -32
- data/node_modules/govuk-frontend/govuk/components/skip-link/fixtures.json +22 -20
- data/node_modules/govuk-frontend/govuk/components/skip-link/skip-link.js +10 -4
- data/node_modules/govuk-frontend/govuk/components/summary-list/fixtures.json +50 -50
- data/node_modules/govuk-frontend/govuk/components/table/_index.scss +1 -1
- data/node_modules/govuk-frontend/govuk/components/table/fixtures.json +40 -40
- data/node_modules/govuk-frontend/govuk/components/tabs/fixtures.json +29 -29
- data/node_modules/govuk-frontend/govuk/components/tabs/tabs.js +28 -0
- data/node_modules/govuk-frontend/govuk/components/tag/fixtures.json +28 -28
- data/node_modules/govuk-frontend/govuk/components/textarea/fixtures.json +34 -34
- data/node_modules/govuk-frontend/govuk/components/warning-text/fixtures.json +14 -14
- data/node_modules/govuk-frontend/govuk/core/_section-break.scss +1 -1
- data/node_modules/govuk-frontend/govuk/helpers/_colour.scss +2 -2
- data/node_modules/govuk-frontend/govuk/helpers/_links.scss +6 -6
- data/node_modules/govuk-frontend/govuk/i18n.js +390 -0
- data/node_modules/govuk-frontend/govuk/macros/i18n.njk +15 -0
- data/node_modules/govuk-frontend/govuk/settings/_all.scss +1 -0
- data/node_modules/govuk-frontend/govuk/settings/_colours-palette.scss +12 -0
- data/node_modules/govuk-frontend/govuk/settings/_compatibility.scss +26 -0
- data/node_modules/govuk-frontend/govuk/settings/_typography-font.scss +23 -0
- data/node_modules/govuk-frontend/govuk/settings/_typography-responsive.scss +12 -0
- data/node_modules/govuk-frontend/govuk/settings/_warnings.scss +53 -0
- data/node_modules/govuk-frontend/govuk/tools/_compatibility.scss +20 -6
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Date/now.js +21 -0
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/dataset.js +300 -0
- data/node_modules/govuk-frontend/govuk/vendor/polyfills/String/prototype/trim.js +21 -0
- data/node_modules/govuk-frontend/govuk-esm/all.mjs +50 -27
- data/node_modules/govuk-frontend/govuk-esm/common/closest-attribute-value.mjs +15 -0
- data/node_modules/govuk-frontend/govuk-esm/common/index.mjs +159 -0
- data/node_modules/govuk-frontend/govuk-esm/common/normalise-dataset.mjs +58 -0
- data/node_modules/govuk-frontend/govuk-esm/common.mjs +6 -28
- data/node_modules/govuk-frontend/govuk-esm/components/accordion/accordion.mjs +113 -43
- data/node_modules/govuk-frontend/govuk-esm/components/button/button.mjs +67 -30
- data/node_modules/govuk-frontend/govuk-esm/components/character-count/character-count.mjs +325 -123
- data/node_modules/govuk-frontend/govuk-esm/components/checkboxes/checkboxes.mjs +9 -3
- data/node_modules/govuk-frontend/govuk-esm/components/details/details.mjs +22 -8
- data/node_modules/govuk-frontend/govuk-esm/components/error-summary/error-summary.mjs +48 -6
- data/node_modules/govuk-frontend/govuk-esm/components/header/header.mjs +6 -0
- data/node_modules/govuk-frontend/govuk-esm/components/notification-banner/notification-banner.mjs +32 -2
- data/node_modules/govuk-frontend/govuk-esm/components/radios/radios.mjs +9 -3
- data/node_modules/govuk-frontend/govuk-esm/components/skip-link/skip-link.mjs +10 -4
- data/node_modules/govuk-frontend/govuk-esm/components/tabs/tabs.mjs +8 -2
- data/node_modules/govuk-frontend/govuk-esm/i18n.mjs +380 -0
- data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Date/now.mjs +13 -0
- data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element/prototype/dataset.mjs +68 -0
- data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/String/prototype/trim.mjs +13 -0
- data/node_modules/govuk-frontend/govuk-prototype-kit/init.js +7 -0
- data/node_modules/govuk-frontend/govuk-prototype-kit/init.scss +12 -0
- data/node_modules/govuk-frontend/govuk-prototype-kit.config.json +138 -7
- data/node_modules/govuk-frontend/package.json +1 -1
- metadata +22 -3
@@ -27,10 +27,10 @@ window.GOVUK.analyticsGa4.analyticsModules = window.GOVUK.analyticsGa4.analytics
|
|
27
27
|
schema_name: this.getMetaContent('schema-name'),
|
28
28
|
content_id: this.getMetaContent('content-id'),
|
29
29
|
|
30
|
-
|
30
|
+
browse_topic: this.getMetaContent('section'),
|
31
31
|
taxon_slug: this.getMetaContent('taxon-slug'),
|
32
32
|
taxon_id: this.getMetaContent('taxon-id'),
|
33
|
-
|
33
|
+
taxonomy_level1: this.getMetaContent('themes'),
|
34
34
|
taxon_slugs: this.getMetaContent('taxon-slugs'),
|
35
35
|
taxon_ids: this.getMetaContent('taxon-ids'),
|
36
36
|
|
data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-specialist-link-tracker.js
ADDED
@@ -0,0 +1,140 @@
|
|
1
|
+
// = require govuk/vendor/polyfills/Element/prototype/closest.js
|
2
|
+
window.GOVUK = window.GOVUK || {}
|
3
|
+
window.GOVUK.analyticsGa4 = window.GOVUK.analyticsGa4 || {}
|
4
|
+
window.GOVUK.analyticsGa4.analyticsModules = window.GOVUK.analyticsGa4.analyticsModules || {};
|
5
|
+
|
6
|
+
(function (analyticsModules) {
|
7
|
+
'use strict'
|
8
|
+
|
9
|
+
var Ga4SpecialistLinkTracker = {
|
10
|
+
init: function (config) {
|
11
|
+
if (window.dataLayer) {
|
12
|
+
config = config || {}
|
13
|
+
this.internalDownloadPaths = config.internalDownloadPaths || ['/government/uploads/']
|
14
|
+
this.dedicatedDownloadDomains = config.dedicatedDownloadDomains || ['assets.publishing.service.gov.uk']
|
15
|
+
window.GOVUK.analyticsGa4.core.trackFunctions.appendDomainsWithoutWWW(this.dedicatedDownloadDomains)
|
16
|
+
this.handleClick = this.handleClick.bind(this)
|
17
|
+
this.handleMousedown = this.handleMousedown.bind(this)
|
18
|
+
|
19
|
+
document.querySelector('body').addEventListener('click', this.handleClick)
|
20
|
+
document.querySelector('body').addEventListener('contextmenu', this.handleClick)
|
21
|
+
document.querySelector('body').addEventListener('mousedown', this.handleMousedown)
|
22
|
+
}
|
23
|
+
},
|
24
|
+
|
25
|
+
stopTracking: function () {
|
26
|
+
document.querySelector('body').removeEventListener('click', this.handleClick)
|
27
|
+
document.querySelector('body').removeEventListener('contextmenu', this.handleClick)
|
28
|
+
document.querySelector('body').removeEventListener('mousedown', this.handleMousedown)
|
29
|
+
},
|
30
|
+
|
31
|
+
handleClick: function (event) {
|
32
|
+
var element = event.target
|
33
|
+
|
34
|
+
if (element.tagName !== 'A') {
|
35
|
+
element = element.closest('a')
|
36
|
+
}
|
37
|
+
|
38
|
+
if (!element) {
|
39
|
+
return
|
40
|
+
}
|
41
|
+
|
42
|
+
// don't track this link if it's already being tracked by the other link tracker
|
43
|
+
if (element.closest('[data-ga4-link]')) {
|
44
|
+
return
|
45
|
+
}
|
46
|
+
|
47
|
+
var href = element.getAttribute('href')
|
48
|
+
|
49
|
+
if (!href) {
|
50
|
+
return
|
51
|
+
}
|
52
|
+
var clickData = {}
|
53
|
+
if (window.GOVUK.analyticsGa4.core.trackFunctions.isMailToLink(href)) {
|
54
|
+
clickData.event_name = 'navigation'
|
55
|
+
clickData.type = 'email'
|
56
|
+
clickData.external = 'true'
|
57
|
+
} else if (this.isDownloadLink(href)) {
|
58
|
+
clickData.event_name = 'file_download'
|
59
|
+
clickData.type = this.isPreviewLink(href) ? 'preview' : 'generic download'
|
60
|
+
clickData.external = window.GOVUK.analyticsGa4.core.trackFunctions.isExternalLink(href) ? 'true' : 'false'
|
61
|
+
} else if (window.GOVUK.analyticsGa4.core.trackFunctions.isExternalLink(href)) {
|
62
|
+
clickData.event_name = 'navigation'
|
63
|
+
clickData.type = 'generic link'
|
64
|
+
clickData.external = 'true'
|
65
|
+
}
|
66
|
+
|
67
|
+
if (Object.keys(clickData).length > 0) {
|
68
|
+
clickData.url = href
|
69
|
+
if (clickData.url) {
|
70
|
+
clickData.url = window.GOVUK.analyticsGa4.core.trackFunctions.removeCrossDomainParams(clickData.url)
|
71
|
+
clickData.link_domain = window.GOVUK.analyticsGa4.core.trackFunctions.populateLinkDomain(clickData.url)
|
72
|
+
clickData.link_path_parts = window.GOVUK.analyticsGa4.core.trackFunctions.populateLinkPathParts(clickData.url)
|
73
|
+
}
|
74
|
+
|
75
|
+
clickData.text = window.GOVUK.analyticsGa4.core.trackFunctions.removeLinesAndExtraSpaces(element.textContent)
|
76
|
+
clickData.method = window.GOVUK.analyticsGa4.core.trackFunctions.getClickType(event)
|
77
|
+
|
78
|
+
var schema = new window.GOVUK.analyticsGa4.Schemas().eventSchema()
|
79
|
+
schema.event = 'event_data'
|
80
|
+
|
81
|
+
// get attributes from the clickData object to send to GA
|
82
|
+
// only allow it if it already exists in the schema
|
83
|
+
for (var property in clickData) {
|
84
|
+
if (property in schema.event_data) {
|
85
|
+
schema.event_data[property] = clickData[property]
|
86
|
+
}
|
87
|
+
}
|
88
|
+
|
89
|
+
window.GOVUK.analyticsGa4.core.sendData(schema)
|
90
|
+
}
|
91
|
+
},
|
92
|
+
|
93
|
+
handleMousedown: function (event) {
|
94
|
+
// 1 = middle mouse button
|
95
|
+
if (event.button === 1) {
|
96
|
+
this.handleClick(event)
|
97
|
+
}
|
98
|
+
},
|
99
|
+
|
100
|
+
isDownloadLink: function (href) {
|
101
|
+
if (window.GOVUK.analyticsGa4.core.trackFunctions.isInternalLink(href) && this.hrefPointsToDownloadPath(href)) {
|
102
|
+
return true
|
103
|
+
}
|
104
|
+
|
105
|
+
var result = false
|
106
|
+
for (var i = 0; i < this.dedicatedDownloadDomains.length; i++) {
|
107
|
+
var downloadDomain = this.dedicatedDownloadDomains[i]
|
108
|
+
if (window.GOVUK.analyticsGa4.core.trackFunctions.hrefPointsToDomain(href, downloadDomain)) {
|
109
|
+
result = true
|
110
|
+
}
|
111
|
+
}
|
112
|
+
return result
|
113
|
+
},
|
114
|
+
|
115
|
+
isPreviewLink: function (href) {
|
116
|
+
/* Regex looks for:
|
117
|
+
1. The file extension period (the character '.')
|
118
|
+
2. any alphanumeric characters (so we can match any file type such as jpg, pdf, mp4.)
|
119
|
+
3. the presence of '/preview'.
|
120
|
+
For example, .csv/preview or .mp4/preview will be matched.
|
121
|
+
Regex is used over JS string methods as this should work with anchor links, query string parameters and files that may have 'preview' in their name.
|
122
|
+
*/
|
123
|
+
var previewRegex = /\.\w+\/preview/i
|
124
|
+
return previewRegex.test(href)
|
125
|
+
},
|
126
|
+
|
127
|
+
hrefPointsToDownloadPath: function (href) {
|
128
|
+
var result = false
|
129
|
+
for (var i = 0; i < this.internalDownloadPaths.length; i++) {
|
130
|
+
var internalDownloadPath = this.internalDownloadPaths[i]
|
131
|
+
if (href.indexOf(internalDownloadPath) !== -1) {
|
132
|
+
result = true
|
133
|
+
}
|
134
|
+
}
|
135
|
+
return result
|
136
|
+
}
|
137
|
+
}
|
138
|
+
|
139
|
+
analyticsModules.Ga4SpecialistLinkTracker = Ga4SpecialistLinkTracker
|
140
|
+
})(window.GOVUK.analyticsGa4.analyticsModules)
|
@@ -7,6 +7,9 @@ var initFunction = function () {
|
|
7
7
|
var consentCookie = window.GOVUK.getConsentCookie()
|
8
8
|
|
9
9
|
if (consentCookie && consentCookie.usage) {
|
10
|
+
window.GOVUK.analyticsGa4.vars.internalDomains = []
|
11
|
+
window.GOVUK.analyticsGa4.vars.internalDomains.push(window.GOVUK.analyticsGa4.core.trackFunctions.getHostname())
|
12
|
+
window.GOVUK.analyticsGa4.core.trackFunctions.appendDomainsWithoutWWW(window.GOVUK.analyticsGa4.vars.internalDomains)
|
10
13
|
window.GOVUK.analyticsGa4.core.load()
|
11
14
|
|
12
15
|
var analyticsModules = window.GOVUK.analyticsGa4.analyticsModules
|
@@ -3,6 +3,7 @@
|
|
3
3
|
//= require ./analytics-ga4/ga4-schemas
|
4
4
|
//= require ./analytics-ga4/pii-remover
|
5
5
|
//= require ./analytics-ga4/ga4-page-views
|
6
|
+
//= require ./analytics-ga4/ga4-specialist-link-tracker
|
6
7
|
//= require ./analytics-ga4/ga4-link-tracker
|
7
8
|
//= require ./analytics-ga4/ga4-event-tracker
|
8
9
|
//= require ./analytics-ga4/ga4-ecommerce-tracker
|
@@ -43,9 +43,10 @@ window.GOVUK.Modules.GovukAccordion = window.GOVUKFrontend.Accordion;
|
|
43
43
|
|
44
44
|
// look for data attributes to put onto the 'show/hide all' link
|
45
45
|
var showAllAttributes = this.$module.getAttribute('data-show-all-attributes')
|
46
|
+
var showAll
|
46
47
|
if (showAllAttributes) {
|
47
48
|
try {
|
48
|
-
|
49
|
+
showAll = this.$module.querySelector(this.showAllControls)
|
49
50
|
var values = JSON.parse(showAllAttributes)
|
50
51
|
var keys = Object.keys(values)
|
51
52
|
for (var i = 0; i < keys.length; i++) {
|
@@ -55,6 +56,16 @@ window.GOVUK.Modules.GovukAccordion = window.GOVUKFrontend.Accordion;
|
|
55
56
|
console.error('Could not read accordion data attributes error: ' + e.message, window.location)
|
56
57
|
}
|
57
58
|
}
|
59
|
+
|
60
|
+
// if GA4 is enabled, set attributes on 'show all sections' for tracking using ga4-event-tracker
|
61
|
+
var dataModule = this.$module.getAttribute('data-module')
|
62
|
+
var isGa4Enabled = dataModule ? dataModule.indexOf('ga4-event-tracker') !== -1 : false
|
63
|
+
if (isGa4Enabled) {
|
64
|
+
var indexTotal = this.$module.querySelectorAll('.govuk-accordion__section').length
|
65
|
+
var showAllAttributesGa4 = { event_name: 'select_content', type: 'accordion', index: 0, index_total: indexTotal }
|
66
|
+
showAll = this.$module.querySelector(this.showAllControls)
|
67
|
+
showAll.setAttribute('data-ga4-event', JSON.stringify(showAllAttributesGa4))
|
68
|
+
}
|
58
69
|
}
|
59
70
|
|
60
71
|
// Navigate to and open accordions with anchored content on page load if a hash is present
|
data/app/assets/javascripts/govuk_publishing_components/components/layout-super-navigation-header.js
CHANGED
@@ -98,13 +98,22 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
98
98
|
return $menu.querySelectorAll('button[aria-expanded="true"]').length > 0
|
99
99
|
}
|
100
100
|
|
101
|
-
//
|
102
|
-
// either `desktop` or `mobile` so it can be interpolated to access the
|
101
|
+
// Detect the current viewport width. Return the string `desktop` or `mobile` so it can be interpolated to access the
|
103
102
|
// `data-toggle-{desktop|mobile}-group` attribute.
|
103
|
+
//
|
104
|
+
// Use `matchedia` which mitigates issues in modern browsers when scrollbars are forced in MacOS (using `document.documentElement.clientWidth`
|
105
|
+
// for viewport width detection has issues in Chrome and Firefox, and `window.innerWidth` has issues in Safari).
|
106
|
+
//
|
107
|
+
// Fall back to `document.documentElement.clientWidth` for legacy browsers.
|
104
108
|
var windowSize = function () {
|
105
|
-
|
109
|
+
var viewport = false
|
110
|
+
if (typeof window.matchMedia === 'function') {
|
111
|
+
viewport = window.matchMedia('(min-width:' + SETTINGS.breakpoint.desktop + 'px)').matches
|
112
|
+
} else {
|
113
|
+
viewport = document.documentElement.clientWidth >= SETTINGS.breakpoint.desktop
|
114
|
+
}
|
115
|
+
return viewport ? 'desktop' : 'mobile'
|
106
116
|
}
|
107
|
-
|
108
117
|
function SuperNavigationMegaMenu ($module) {
|
109
118
|
this.$module = $module
|
110
119
|
this.$navigationToggle = this.$module.querySelector('#super-navigation-menu-toggle')
|
@@ -28,15 +28,31 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
28
28
|
if (xhr.readyState === 4) {
|
29
29
|
if (xhr.status === 200) {
|
30
30
|
var responseText = xhr.responseText
|
31
|
-
// if response text exists and is JSON parse-able, parse the response and
|
31
|
+
// if response text exists and is JSON parse-able, parse the response and update the button html
|
32
32
|
if (responseText && this.responseIsJSON(responseText)) {
|
33
|
-
var
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
33
|
+
var active = JSON.parse(responseText).active
|
34
|
+
|
35
|
+
var customSubscribeText = this.$module.getAttribute('data-button-text-subscribe')
|
36
|
+
var customUnsubscribeText = this.$module.getAttribute('data-button-text-unsubscribe')
|
37
|
+
// Only set custom button text if both text items are provided
|
38
|
+
var customText = customSubscribeText && customUnsubscribeText
|
39
|
+
|
40
|
+
// Append '-[button-location]' to the tracking data attribute value if data-button-location is set
|
41
|
+
var optionalButtonLocation = this.$module.getAttribute('data-button-location') ? '-' + this.$module.getAttribute('data-button-location') : ''
|
42
|
+
|
43
|
+
// If response returns active, user has subscribed to notifications
|
44
|
+
if (active === true) {
|
45
|
+
this.$module.setAttribute('data-track-action', 'Unsubscribe-button' + optionalButtonLocation)
|
46
|
+
|
47
|
+
if (customText) {
|
48
|
+
this.$module.querySelector('.gem-c-single-page-notication-button__text').textContent = customUnsubscribeText
|
49
|
+
}
|
50
|
+
} else {
|
51
|
+
this.$module.setAttribute('data-track-action', 'Subscribe-button' + optionalButtonLocation)
|
52
|
+
|
53
|
+
if (customText) {
|
54
|
+
this.$module.querySelector('.gem-c-single-page-notication-button__text').textContent = customSubscribeText
|
55
|
+
}
|
40
56
|
}
|
41
57
|
}
|
42
58
|
}
|
@@ -133,11 +133,8 @@
|
|
133
133
|
}
|
134
134
|
|
135
135
|
/**
|
136
|
-
|
137
|
-
|
138
|
-
* @param {HTMLElement} el
|
139
|
-
* @returns string
|
140
|
-
*/
|
136
|
+
* Get the interaction attribution name for an element
|
137
|
+
*/
|
141
138
|
function interactionAttributionForElement(el) {
|
142
139
|
// Our first preference is to use the data-sctrack attribute from anywhere in the tree
|
143
140
|
var trackId = getClosestScTrackAttribute(el);
|
@@ -183,10 +180,10 @@
|
|
183
180
|
// prevent having to make regular typeof checks.
|
184
181
|
var performance = window.performance || {};
|
185
182
|
var timing = performance.timing || {
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
183
|
+
// If performance.timing isn't available, we attempt to polyfill the navigationStart value.
|
184
|
+
// Our first attempt is from LUX.ns, which is the time that the snippet execution began. If this
|
185
|
+
// is not available, we fall back to the time that the current script execution began.
|
186
|
+
navigationStart: ((_a = window.LUX) === null || _a === void 0 ? void 0 : _a.ns) || scriptStartTime,
|
190
187
|
};
|
191
188
|
function msSinceNavigationStart() {
|
192
189
|
if (performance.now) {
|
@@ -195,10 +192,10 @@
|
|
195
192
|
return now() - timing.navigationStart;
|
196
193
|
}
|
197
194
|
/**
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
195
|
+
* Simple wrapper around performance.getEntriesByType to provide fallbacks for
|
196
|
+
* legacy browsers, and work around edge cases where undefined is returned instead
|
197
|
+
* of an empty PerformanceEntryList.
|
198
|
+
*/
|
202
199
|
function getEntriesByType(type) {
|
203
200
|
if (typeof performance.getEntriesByType === "function") {
|
204
201
|
var entries = performance.getEntriesByType(type);
|
@@ -210,72 +207,73 @@
|
|
210
207
|
}
|
211
208
|
|
212
209
|
var Matching = /** @class */ (function () {
|
213
|
-
|
210
|
+
function Matching() {
|
211
|
+
}
|
212
|
+
Matching.isMatching = function (pattern, url) {
|
213
|
+
var regexp = Matching.createRegexpFromPattern(pattern);
|
214
|
+
return url.match(regexp) ? true : false;
|
215
|
+
};
|
216
|
+
/**
|
217
|
+
* Converts string pattern to RegExp object
|
218
|
+
* @return RegExp
|
219
|
+
*/
|
220
|
+
Matching.createRegexpFromPattern = function (pattern) {
|
221
|
+
var regexp;
|
222
|
+
if (pattern == "/") {
|
223
|
+
regexp = this.getRegexpForHostnameRoot();
|
214
224
|
}
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
};
|
268
|
-
/**
|
269
|
-
* Escape special symbols in regexp string
|
270
|
-
* @param string
|
271
|
-
*/
|
272
|
-
Matching.escapeStringForRegexp = function (string) {
|
273
|
-
// we don't escape * because it's our own special symbol!
|
274
|
-
return string.replace(/[-/\\^$+?.()|[\]{}]/g, "\\$&");
|
275
|
-
};
|
276
|
-
Matching.wildcard = "*";
|
277
|
-
Matching.domainExpression = "[a-zA-Z0-9-.]{1,61}[a-zA-Z0-9]\\.[a-zA-Z]{2,}";
|
278
|
-
return Matching;
|
225
|
+
else if (!pattern.includes(Matching.wildcard)) {
|
226
|
+
regexp = this.getRegexpForExactString(pattern);
|
227
|
+
}
|
228
|
+
else {
|
229
|
+
regexp = this.createRegexpFromPathname(pattern);
|
230
|
+
}
|
231
|
+
return regexp;
|
232
|
+
};
|
233
|
+
/**
|
234
|
+
* Converts URL pathname string pattern to RegExp object
|
235
|
+
* Multile wildcards (*) are supported
|
236
|
+
* @return RegExp
|
237
|
+
*/
|
238
|
+
Matching.createRegexpFromPathname = function (pattern) {
|
239
|
+
var anyDomain = pattern.charAt(0) == "/";
|
240
|
+
pattern = this.escapeStringForRegexp(pattern);
|
241
|
+
var expression = "^" +
|
242
|
+
(anyDomain ? Matching.domainExpression : "") +
|
243
|
+
pattern.replaceAll(Matching.wildcard, ".*?") +
|
244
|
+
"$";
|
245
|
+
return new RegExp(expression, "i");
|
246
|
+
};
|
247
|
+
/**
|
248
|
+
* Matches hostname root (e.g. "/", "somedomain.com/", "www.somedomain.co.nz/")
|
249
|
+
* Trailing slash is mandatory
|
250
|
+
* @return RegExp
|
251
|
+
*/
|
252
|
+
Matching.getRegexpForHostnameRoot = function () {
|
253
|
+
return new RegExp("^" + Matching.domainExpression + "/$", "i");
|
254
|
+
};
|
255
|
+
/**
|
256
|
+
* Matches exact string (no wildcard provided)
|
257
|
+
* @return RegExp
|
258
|
+
*/
|
259
|
+
Matching.getRegexpForExactString = function (string) {
|
260
|
+
var anyDomain = string.charAt(0) == "/";
|
261
|
+
return new RegExp("^" +
|
262
|
+
(anyDomain ? Matching.domainExpression : "") +
|
263
|
+
this.escapeStringForRegexp(string) +
|
264
|
+
"/?$", "i");
|
265
|
+
};
|
266
|
+
/**
|
267
|
+
* Escape special symbols in regexp string
|
268
|
+
* @param string
|
269
|
+
*/
|
270
|
+
Matching.escapeStringForRegexp = function (string) {
|
271
|
+
// we don't escape * because it's our own special symbol!
|
272
|
+
return string.replace(/[-/\\^$+?.()|[\]{}]/g, "\\$&");
|
273
|
+
};
|
274
|
+
Matching.wildcard = "*";
|
275
|
+
Matching.domainExpression = "[a-zA-Z0-9-.]{1,61}[a-zA-Z0-9]\\.[a-zA-Z]{2,}";
|
276
|
+
return Matching;
|
279
277
|
}());
|
280
278
|
|
281
279
|
var LUX = window.LUX || {};
|
@@ -290,7 +288,7 @@
|
|
290
288
|
/// End
|
291
289
|
// -------------------------------------------------------------------------
|
292
290
|
|
293
|
-
var SCRIPT_VERSION = "
|
291
|
+
var SCRIPT_VERSION = "304";
|
294
292
|
var logger = new Logger();
|
295
293
|
var globalConfig = fromObject(LUX);
|
296
294
|
logger.logEvent(LogEvent.EvaluationStart, [SCRIPT_VERSION]);
|
@@ -787,8 +785,8 @@
|
|
787
785
|
",x|" +
|
788
786
|
hStats["max"] +
|
789
787
|
(0 === hStats["fci"] ? "" : ",i|" + hStats["fci"]); // only add FCI if it is non-zero
|
790
|
-
|
791
|
-
|
788
|
+
sCPU += "s|" + hCPU[jsType] + sStats + hCPUDetails[jsType];
|
789
|
+
return sCPU;
|
792
790
|
}
|
793
791
|
// Return a hash of "stats" about the CPU details incl. count, max, and median.
|
794
792
|
function cpuStats(sDetails) {
|
@@ -1657,7 +1655,7 @@
|
|
1657
1655
|
_removeIxHandlers();
|
1658
1656
|
if (typeof ghIx["k"] === "undefined") {
|
1659
1657
|
ghIx["k"] = Math.round(_now());
|
1660
|
-
if (e && e.target) {
|
1658
|
+
if (e && e.target instanceof Element) {
|
1661
1659
|
var trackId = interactionAttributionForElement(e.target);
|
1662
1660
|
if (trackId) {
|
1663
1661
|
ghIx["ki"] = trackId;
|
@@ -1670,16 +1668,15 @@
|
|
1670
1668
|
_removeIxHandlers();
|
1671
1669
|
if (typeof ghIx["c"] === "undefined") {
|
1672
1670
|
ghIx["c"] = Math.round(_now());
|
1673
|
-
var target =
|
1671
|
+
var target = void 0;
|
1674
1672
|
try {
|
1675
1673
|
// Seeing "Permission denied" errors, so do a simple try-catch.
|
1676
|
-
if (e && e.target) {
|
1674
|
+
if (e && e.target instanceof Element) {
|
1677
1675
|
target = e.target;
|
1678
1676
|
}
|
1679
1677
|
}
|
1680
1678
|
catch (e) {
|
1681
1679
|
logger.logEvent(LogEvent.EventTargetAccessError);
|
1682
|
-
target = null;
|
1683
1680
|
}
|
1684
1681
|
if (target) {
|
1685
1682
|
if (e.clientX) {
|
@@ -1687,7 +1684,7 @@
|
|
1687
1684
|
ghIx["cx"] = e.clientX;
|
1688
1685
|
ghIx["cy"] = e.clientY;
|
1689
1686
|
}
|
1690
|
-
var trackId = interactionAttributionForElement(
|
1687
|
+
var trackId = interactionAttributionForElement(target);
|
1691
1688
|
if (trackId) {
|
1692
1689
|
ghIx["ci"] = trackId;
|
1693
1690
|
}
|
@@ -5,12 +5,9 @@
|
|
5
5
|
|
6
6
|
.gem-c-big-number__value {
|
7
7
|
@include govuk-font($size: false, $weight: bold);
|
8
|
-
font-size: 80px;
|
9
8
|
line-height: 1;
|
10
|
-
|
11
|
-
|
12
|
-
font-size: govuk-px-to-rem(80px);
|
13
|
-
}
|
9
|
+
font-size: 80px;
|
10
|
+
font-size: govuk-px-to-rem(80px);
|
14
11
|
}
|
15
12
|
|
16
13
|
.gem-c-big-number__label {
|
@@ -107,11 +107,7 @@
|
|
107
107
|
.gem-c-image-card__metadata {
|
108
108
|
@include govuk-font($size: false);
|
109
109
|
font-size: 16px;
|
110
|
-
|
111
|
-
@if $govuk-typography-use-rem {
|
112
|
-
font-size: govuk-px-to-rem(16px);
|
113
|
-
}
|
114
|
-
|
110
|
+
font-size: govuk-px-to-rem(16px);
|
115
111
|
margin: 0 0 (govuk-spacing(3) / 2);
|
116
112
|
color: govuk-colour("dark-grey", $legacy: "grey-1");
|
117
113
|
|
@@ -4,14 +4,12 @@ $search-icon-size: 40px;
|
|
4
4
|
.gem-c-input__search-icon {
|
5
5
|
display: block;
|
6
6
|
position: relative;
|
7
|
-
margin-bottom: -$search-icon-size;
|
8
7
|
z-index: 1;
|
8
|
+
margin-bottom: -$search-icon-size;
|
9
|
+
margin-bottom: -(govuk-px-to-rem($search-icon-size));
|
9
10
|
width: $search-icon-size;
|
10
11
|
height: $search-icon-size;
|
11
|
-
|
12
|
-
margin-bottom: -(govuk-px-to-rem($search-icon-size));
|
13
|
-
height: govuk-px-to-rem($search-icon-size);
|
14
|
-
}
|
12
|
+
height: govuk-px-to-rem($search-icon-size);
|
15
13
|
background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 36 36' width='40' height='40'%3E%3Cpath d='M25.7 24.8L21.9 21c.7-1 1.1-2.2 1.1-3.5 0-3.6-2.9-6.5-6.5-6.5S10 13.9 10 17.5s2.9 6.5 6.5 6.5c1.6 0 3-.6 4.1-1.5l3.7 3.7 1.4-1.4zM12 17.5c0-2.5 2-4.5 4.5-4.5s4.5 2 4.5 4.5-2 4.5-4.5 4.5-4.5-2-4.5-4.5z' fill='currentColor'%3E%3C/path%3E%3C/svg%3E") no-repeat -3px center;
|
16
14
|
}
|
17
15
|
|
@@ -201,9 +201,7 @@ $after-button-padding-left: govuk-spacing(5);
|
|
201
201
|
|
202
202
|
display: inline-block;
|
203
203
|
font-size: 19px;
|
204
|
-
|
205
|
-
font-size: govuk-px-to-rem(19px);
|
206
|
-
}
|
204
|
+
font-size: govuk-px-to-rem(19px);
|
207
205
|
font-weight: bold;
|
208
206
|
margin: govuk-spacing(3) 0;
|
209
207
|
|
@@ -242,14 +240,10 @@ $after-button-padding-left: govuk-spacing(5);
|
|
242
240
|
}
|
243
241
|
|
244
242
|
@include govuk-media-query($from: "desktop") {
|
243
|
+
// stylelint-disable max-nesting-depth
|
245
244
|
float: left;
|
246
245
|
font-size: 16px;
|
247
|
-
|
248
|
-
// stylelint-disable max-nesting-depth
|
249
|
-
@if $govuk-typography-use-rem {
|
250
|
-
font-size: govuk-px-to-rem(16px);
|
251
|
-
}
|
252
|
-
|
246
|
+
font-size: govuk-px-to-rem(16px);
|
253
247
|
height: govuk-spacing(4);
|
254
248
|
position: relative;
|
255
249
|
|
@@ -394,9 +388,7 @@ $after-button-padding-left: govuk-spacing(5);
|
|
394
388
|
color: govuk-colour("white");
|
395
389
|
float: left;
|
396
390
|
font-size: 16px;
|
397
|
-
|
398
|
-
font-size: govuk-px-to-rem(16px);
|
399
|
-
}
|
391
|
+
font-size: govuk-px-to-rem(16px);
|
400
392
|
height: $black-bar-height;
|
401
393
|
position: relative;
|
402
394
|
text-decoration: none;
|
@@ -604,9 +596,7 @@ $after-button-padding-left: govuk-spacing(5);
|
|
604
596
|
@include govuk-link-style-no-underline;
|
605
597
|
|
606
598
|
font-size: 16px;
|
607
|
-
|
608
|
-
font-size: govuk-px-to-rem(16px);
|
609
|
-
}
|
599
|
+
font-size: govuk-px-to-rem(16px);
|
610
600
|
font-weight: 700;
|
611
601
|
background: govuk-colour("black");
|
612
602
|
border: 0;
|
@@ -878,9 +868,7 @@ $after-button-padding-left: govuk-spacing(5);
|
|
878
868
|
|
879
869
|
.gem-c-layout-super-navigation-header__navigation-second-item-link {
|
880
870
|
font-size: 16px;
|
881
|
-
|
882
|
-
font-size: govuk-px-to-rem(16px);
|
883
|
-
}
|
871
|
+
font-size: govuk-px-to-rem(16px);
|
884
872
|
|
885
873
|
&:after {
|
886
874
|
@include make-selectable-area-bigger;
|
@@ -898,9 +886,7 @@ $after-button-padding-left: govuk-spacing(5);
|
|
898
886
|
|
899
887
|
.gem-c-layout-super-navigation-header__navigation-second-item-link--with-description {
|
900
888
|
font-size: 16px;
|
901
|
-
|
902
|
-
font-size: govuk-px-to-rem(16px);
|
903
|
-
}
|
889
|
+
font-size: govuk-px-to-rem(16px);
|
904
890
|
font-weight: bold;
|
905
891
|
}
|
906
892
|
|
@@ -934,9 +920,7 @@ $after-button-padding-left: govuk-spacing(5);
|
|
934
920
|
.gem-c-layout-super-navigation-header__navigation-second-footer-link {
|
935
921
|
display: inline-block;
|
936
922
|
font-size: 16px;
|
937
|
-
|
938
|
-
font-size: govuk-px-to-rem(16px);
|
939
|
-
}
|
923
|
+
font-size: govuk-px-to-rem(16px);
|
940
924
|
margin: govuk-spacing(1) 0;
|
941
925
|
|
942
926
|
&:after {
|
@@ -956,9 +940,7 @@ $after-button-padding-left: govuk-spacing(5);
|
|
956
940
|
.gem-c-layout-super-navigation-header__navigation-second-item-description {
|
957
941
|
@include govuk-typography-common;
|
958
942
|
font-size: 16px;
|
959
|
-
|
960
|
-
font-size: govuk-px-to-rem(16px);
|
961
|
-
}
|
943
|
+
font-size: govuk-px-to-rem(16px);
|
962
944
|
font-weight: normal;
|
963
945
|
margin: govuk-spacing(1) 0 0 0;
|
964
946
|
}
|
@@ -996,9 +978,7 @@ $after-button-padding-left: govuk-spacing(5);
|
|
996
978
|
.gem-c-layout-super-navigation-header__popular-link {
|
997
979
|
display: inline-block;
|
998
980
|
font-size: 16px;
|
999
|
-
|
1000
|
-
font-size: govuk-px-to-rem(16px);
|
1001
|
-
}
|
981
|
+
font-size: govuk-px-to-rem(16px);
|
1002
982
|
padding: 0;
|
1003
983
|
|
1004
984
|
&:after {
|