govuk_publishing_components 29.13.0 → 29.14.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/images/govuk_publishing_components/action-link-arrow--white.png +0 -0
- data/app/assets/images/govuk_publishing_components/action-link-arrow--white.svg +1 -0
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/gtm-page-views.js +5 -3
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/pii-remover.js +135 -0
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4.js +2 -0
- data/app/assets/javascripts/govuk_publishing_components/components/accordion.js +10 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/_action-link.scss +7 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/_previous-and-next-navigation.scss +1 -92
- data/app/views/govuk_publishing_components/components/_action_link.html.erb +2 -0
- data/app/views/govuk_publishing_components/components/_previous_and_next_navigation.html.erb +33 -36
- data/app/views/govuk_publishing_components/components/docs/accordion.yml +2 -1
- data/app/views/govuk_publishing_components/components/docs/action_link.yml +8 -0
- data/app/views/govuk_publishing_components/components/docs/previous_and_next_navigation.yml +1 -1
- data/config/locales/ar.yml +2 -0
- data/config/locales/az.yml +2 -0
- data/config/locales/be.yml +2 -0
- data/config/locales/bg.yml +2 -0
- data/config/locales/bn.yml +2 -0
- data/config/locales/cs.yml +2 -0
- data/config/locales/cy.yml +2 -0
- data/config/locales/da.yml +2 -0
- data/config/locales/de.yml +2 -0
- data/config/locales/dr.yml +2 -0
- data/config/locales/el.yml +2 -0
- data/config/locales/en.yml +2 -0
- data/config/locales/es-419.yml +2 -0
- data/config/locales/es.yml +2 -0
- data/config/locales/et.yml +2 -0
- data/config/locales/fa.yml +2 -0
- data/config/locales/fi.yml +2 -0
- data/config/locales/fr.yml +2 -0
- data/config/locales/gd.yml +2 -0
- data/config/locales/gu.yml +2 -0
- data/config/locales/he.yml +2 -0
- data/config/locales/hi.yml +2 -0
- data/config/locales/hr.yml +2 -0
- data/config/locales/hu.yml +2 -0
- data/config/locales/hy.yml +2 -0
- data/config/locales/id.yml +2 -0
- data/config/locales/is.yml +2 -0
- data/config/locales/it.yml +2 -0
- data/config/locales/ja.yml +2 -0
- data/config/locales/ka.yml +2 -0
- data/config/locales/kk.yml +2 -0
- data/config/locales/ko.yml +2 -0
- data/config/locales/lt.yml +2 -0
- data/config/locales/lv.yml +2 -0
- data/config/locales/ms.yml +2 -0
- data/config/locales/mt.yml +2 -0
- data/config/locales/nl.yml +2 -0
- data/config/locales/no.yml +2 -0
- data/config/locales/pa-pk.yml +2 -0
- data/config/locales/pa.yml +2 -0
- data/config/locales/pl.yml +2 -0
- data/config/locales/ps.yml +2 -0
- data/config/locales/pt.yml +2 -0
- data/config/locales/ro.yml +2 -0
- data/config/locales/ru.yml +2 -0
- data/config/locales/si.yml +2 -0
- data/config/locales/sk.yml +2 -0
- data/config/locales/sl.yml +2 -0
- data/config/locales/so.yml +2 -0
- data/config/locales/sq.yml +2 -0
- data/config/locales/sr.yml +2 -0
- data/config/locales/sv.yml +2 -0
- data/config/locales/sw.yml +2 -0
- data/config/locales/ta.yml +2 -0
- data/config/locales/th.yml +2 -0
- data/config/locales/tk.yml +2 -0
- data/config/locales/tr.yml +2 -0
- data/config/locales/uk.yml +2 -0
- data/config/locales/ur.yml +2 -0
- data/config/locales/uz.yml +2 -0
- data/config/locales/vi.yml +2 -0
- data/config/locales/zh-hk.yml +2 -0
- data/config/locales/zh-tw.yml +2 -0
- data/config/locales/zh.yml +2 -0
- data/lib/govuk_publishing_components/version.rb +1 -1
- data/node_modules/govuk-frontend/govuk/components/_all.scss +1 -0
- data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +1 -0
- data/node_modules/govuk-frontend/govuk/components/character-count/fixtures.json +2 -1
- data/node_modules/govuk-frontend/govuk/components/checkboxes/fixtures.json +102 -44
- data/node_modules/govuk-frontend/govuk/components/checkboxes/macro-options.json +7 -1
- data/node_modules/govuk-frontend/govuk/components/checkboxes/template.njk +3 -2
- data/node_modules/govuk-frontend/govuk/components/cookie-banner/fixtures.json +10 -10
- data/node_modules/govuk-frontend/govuk/components/fieldset/fixtures.json +92 -1
- data/node_modules/govuk-frontend/govuk/components/file-upload/fixtures.json +2 -1
- data/node_modules/govuk-frontend/govuk/components/header/_index.scss +3 -0
- data/node_modules/govuk-frontend/govuk/components/header/fixtures.json +14 -6
- data/node_modules/govuk-frontend/govuk/components/header/template.njk +9 -3
- data/node_modules/govuk-frontend/govuk/components/input/fixtures.json +2 -1
- data/node_modules/govuk-frontend/govuk/components/input/macro-options.json +1 -1
- data/node_modules/govuk-frontend/govuk/components/label/fixtures.json +76 -1
- data/node_modules/govuk-frontend/govuk/components/pagination/README.md +15 -0
- data/node_modules/govuk-frontend/govuk/components/pagination/_index.scss +244 -0
- data/node_modules/govuk-frontend/govuk/components/pagination/_pagination.scss +2 -0
- data/node_modules/govuk-frontend/govuk/components/pagination/fixtures.json +300 -0
- data/node_modules/govuk-frontend/govuk/components/pagination/macro-options.json +128 -0
- data/node_modules/govuk-frontend/govuk/components/pagination/macro.njk +3 -0
- data/node_modules/govuk-frontend/govuk/components/pagination/template.njk +62 -0
- data/node_modules/govuk-frontend/govuk/components/radios/fixtures.json +147 -43
- data/node_modules/govuk-frontend/govuk/components/radios/macro-options.json +7 -1
- data/node_modules/govuk-frontend/govuk/components/radios/template.njk +3 -2
- data/node_modules/govuk-frontend/govuk/components/select/fixtures.json +56 -2
- data/node_modules/govuk-frontend/govuk/components/select/macro-options.json +7 -1
- data/node_modules/govuk-frontend/govuk/components/select/template.njk +1 -1
- data/node_modules/govuk-frontend/govuk/components/textarea/fixtures.json +2 -1
- data/node_modules/govuk-frontend/govuk-esm/all.mjs +12 -12
- data/node_modules/govuk-frontend/govuk-esm/components/accordion/accordion.mjs +3 -3
- data/node_modules/govuk-frontend/govuk-esm/components/button/button.mjs +2 -2
- data/node_modules/govuk-frontend/govuk-esm/components/character-count/character-count.mjs +3 -3
- data/node_modules/govuk-frontend/govuk-esm/components/checkboxes/checkboxes.mjs +4 -4
- data/node_modules/govuk-frontend/govuk-esm/components/details/details.mjs +3 -3
- data/node_modules/govuk-frontend/govuk-esm/components/error-summary/error-summary.mjs +3 -3
- data/node_modules/govuk-frontend/govuk-esm/components/header/header.mjs +3 -3
- data/node_modules/govuk-frontend/govuk-esm/components/notification-banner/notification-banner.mjs +1 -1
- data/node_modules/govuk-frontend/govuk-esm/components/radios/radios.mjs +4 -4
- data/node_modules/govuk-frontend/govuk-esm/components/skip-link/skip-link.mjs +3 -3
- data/node_modules/govuk-frontend/govuk-esm/components/tabs/tabs.mjs +6 -6
- data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/{DOMTokenList.js → DOMTokenList.mjs} +0 -0
- data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/{Document.js → Document.mjs} +0 -0
- data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element/prototype/{classList.js → classList.mjs} +4 -4
- data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element/prototype/{closest.js → closest.mjs} +1 -1
- data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element/prototype/{matches.js → matches.mjs} +0 -0
- data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element/prototype/{nextElementSibling.js → nextElementSibling.mjs} +2 -2
- data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Element/prototype/{previousElementSibling.js → previousElementSibling.mjs} +2 -2
- data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/{Element.js → Element.mjs} +1 -1
- data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/{Event.js → Event.mjs} +3 -3
- data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Function/prototype/{bind.js → bind.mjs} +1 -1
- data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/Object/{defineProperty.js → defineProperty.mjs} +0 -0
- data/node_modules/govuk-frontend/govuk-esm/vendor/polyfills/{Window.js → Window.mjs} +0 -0
- data/node_modules/govuk-frontend/package.json +8 -2
- metadata +24 -14
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: ea69ac62517f1d199c528b86f901ea00cf09b7d09b9c4b7c6550af866ad67cea
|
|
4
|
+
data.tar.gz: f92c94a1bad3f1516e4cdc4e415202c72e027b42990ed3e1c9c5eacebe389d14
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: e4a5fa8f083422f90461f0473ebe979d1240a5b0a0f4a0a56f19a24936eb33c70f18216b4e29bb43140f945c9985e5da738299563b0ceab1a40932c2cb85b138
|
|
7
|
+
data.tar.gz: 3ab97ddb79f5ed2a1494c9fa63868573b4bc18d8ba067343d4acc035b5602f90ab6a47b089a36b8590f77b5d45e9cc70084001b355cc458dbe2326346ec63073
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
<svg width="39" height="39" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M17.01 6.818l-2.828 2.828 7.853 7.854-22 .066L0 21.5h22.035l-7.853 7.854 2.828 2.828L29.69 19.5zM39 19.5C39 30.27 30.27 39 19.5 39 9.373 39 1.05 31.28.092 21.405A19.737 19.737 0 010 19.5C0 8.73 8.73 0 19.5 0S39 8.73 39 19.5z" fill="#fff"/></svg>
|
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
var GOVUK = global.GOVUK || {}
|
|
5
5
|
|
|
6
6
|
GOVUK.Gtm = {
|
|
7
|
+
PIIRemover: new GOVUK.analyticsGA4.PIIRemover(), // imported in analytics-ga4.js
|
|
8
|
+
|
|
7
9
|
sendPageView: function () {
|
|
8
10
|
if (window.dataLayer) {
|
|
9
11
|
var data = {
|
|
@@ -48,15 +50,15 @@
|
|
|
48
50
|
},
|
|
49
51
|
|
|
50
52
|
getLocation: function () {
|
|
51
|
-
return document.location.href
|
|
53
|
+
return this.PIIRemover.stripPII(document.location.href)
|
|
52
54
|
},
|
|
53
55
|
|
|
54
56
|
getReferrer: function () {
|
|
55
|
-
return document.referrer
|
|
57
|
+
return this.PIIRemover.stripPIIWithOverride(document.referrer, true, true)
|
|
56
58
|
},
|
|
57
59
|
|
|
58
60
|
getTitle: function () {
|
|
59
|
-
return document.title
|
|
61
|
+
return this.PIIRemover.stripPII(document.title)
|
|
60
62
|
},
|
|
61
63
|
|
|
62
64
|
// window.httpStatusCode is set in the source of the error page in static
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
;(function (global) {
|
|
2
|
+
'use strict'
|
|
3
|
+
|
|
4
|
+
var GOVUK = global.GOVUK || {}
|
|
5
|
+
var EMAIL_PATTERN = /[^\s=/?&#]+(?:@|%40)[^\s=/?&]+/g
|
|
6
|
+
var POSTCODE_PATTERN = /\b[A-PR-UWYZ][A-HJ-Z]?[0-9][0-9A-HJKMNPR-Y]?(?:[\s+]|%20)*[0-9](?!refund)[ABD-HJLNPQ-Z]{2,3}\b/gi
|
|
7
|
+
var DATE_PATTERN = /\d{4}(-?)\d{2}(-?)\d{2}/g
|
|
8
|
+
var ESCAPE_REGEX_PATTERN = /[|\\{}()[\]^$+*?.]/g
|
|
9
|
+
|
|
10
|
+
// specific URL parameters to be redacted from accounts URLs
|
|
11
|
+
var RESET_PASSWORD_TOKEN_PATTERN = /reset_password_token=[a-zA-Z0-9-]+/g
|
|
12
|
+
var UNLOCK_TOKEN_PATTERN = /unlock_token=[a-zA-Z0-9-]+/g
|
|
13
|
+
var STATE_PATTERN = /state=.[^&]+/g
|
|
14
|
+
|
|
15
|
+
function shouldStripDates () {
|
|
16
|
+
var metas = document.querySelectorAll('meta[name="govuk:static-analytics:strip-dates"]')
|
|
17
|
+
return metas.length > 0
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
function shouldStripPostcodes () {
|
|
21
|
+
var metas = document.querySelectorAll('meta[name="govuk:static-analytics:strip-postcodes"]')
|
|
22
|
+
return metas.length > 0
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function queryStringParametersToStrip () {
|
|
26
|
+
var meta = document.querySelector('meta[name="govuk:static-analytics:strip-query-string-parameters"]')
|
|
27
|
+
var value = false
|
|
28
|
+
if (meta) {
|
|
29
|
+
value = meta.getAttribute('content')
|
|
30
|
+
}
|
|
31
|
+
var parameters = []
|
|
32
|
+
|
|
33
|
+
if (value) {
|
|
34
|
+
var split = value.split(',')
|
|
35
|
+
for (var i = 0; i < split.length; i++) {
|
|
36
|
+
parameters.push(split[i].trim())
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return parameters
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
var PIIRemover = function () {
|
|
44
|
+
this.stripDatePII = shouldStripDates()
|
|
45
|
+
this.stripPostcodePII = shouldStripPostcodes()
|
|
46
|
+
this.queryStringParametersToStrip = queryStringParametersToStrip()
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
PIIRemover.prototype.PIISafe = function (value) {
|
|
50
|
+
this.value = value
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
PIIRemover.prototype.stripPII = function (value) {
|
|
54
|
+
if (typeof value === 'string') {
|
|
55
|
+
return this.stripPIIFromString(value)
|
|
56
|
+
} else if (Object.prototype.toString.call(value) === '[object Array]' || Object.prototype.toString.call(value) === '[object Arguments]') {
|
|
57
|
+
return this.stripPIIFromArray(value)
|
|
58
|
+
} else if (typeof value === 'object') {
|
|
59
|
+
return this.stripPIIFromObject(value)
|
|
60
|
+
} else {
|
|
61
|
+
return value
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
PIIRemover.prototype.stripPIIWithOverride = function (value, enableDateStripping, enablePostcodeStripping) {
|
|
66
|
+
var oldStripDatePII = this.stripDatePII
|
|
67
|
+
var oldPostcodePII = this.stripPostcodePII
|
|
68
|
+
|
|
69
|
+
this.stripDatePII = enableDateStripping
|
|
70
|
+
this.stripPostcodePII = enablePostcodeStripping
|
|
71
|
+
|
|
72
|
+
var strippedValue = this.stripPII(value)
|
|
73
|
+
|
|
74
|
+
this.stripDatePII = oldStripDatePII
|
|
75
|
+
this.stripPostcodePII = oldPostcodePII
|
|
76
|
+
|
|
77
|
+
return strippedValue
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
PIIRemover.prototype.stripPIIFromString = function (string) {
|
|
81
|
+
var stripped = string.replace(EMAIL_PATTERN, '[email]')
|
|
82
|
+
stripped = stripped.replace(RESET_PASSWORD_TOKEN_PATTERN, 'reset_password_token=[reset_password_token]')
|
|
83
|
+
stripped = stripped.replace(UNLOCK_TOKEN_PATTERN, 'unlock_token=[unlock_token]')
|
|
84
|
+
stripped = stripped.replace(STATE_PATTERN, 'state=[state]')
|
|
85
|
+
stripped = this.stripQueryStringParameters(stripped)
|
|
86
|
+
|
|
87
|
+
if (this.stripDatePII === true) {
|
|
88
|
+
stripped = stripped.replace(DATE_PATTERN, '[date]')
|
|
89
|
+
}
|
|
90
|
+
if (this.stripPostcodePII === true) {
|
|
91
|
+
stripped = stripped.replace(POSTCODE_PATTERN, '[postcode]')
|
|
92
|
+
}
|
|
93
|
+
return stripped
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
PIIRemover.prototype.stripPIIFromObject = function (object) {
|
|
97
|
+
if (object) {
|
|
98
|
+
if (object instanceof this.PIISafe) {
|
|
99
|
+
return object.value
|
|
100
|
+
} else {
|
|
101
|
+
for (var property in object) {
|
|
102
|
+
var value = object[property]
|
|
103
|
+
|
|
104
|
+
object[property] = this.stripPII(value)
|
|
105
|
+
}
|
|
106
|
+
return object
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
PIIRemover.prototype.stripPIIFromArray = function (array) {
|
|
112
|
+
for (var i = 0, l = array.length; i < l; i++) {
|
|
113
|
+
var elem = array[i]
|
|
114
|
+
|
|
115
|
+
array[i] = this.stripPII(elem)
|
|
116
|
+
}
|
|
117
|
+
return array
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
PIIRemover.prototype.stripQueryStringParameters = function (string) {
|
|
121
|
+
for (var i = 0; i < this.queryStringParametersToStrip.length; i++) {
|
|
122
|
+
var parameter = this.queryStringParametersToStrip[i]
|
|
123
|
+
var escaped = parameter.replace(ESCAPE_REGEX_PATTERN, '\\$&')
|
|
124
|
+
var regexp = new RegExp('((?:\\?|&)' + escaped + '=)(?:[^&#\\s]*)', 'g')
|
|
125
|
+
string = string.replace(regexp, '$1[' + parameter + ']')
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return string
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
GOVUK.analyticsGA4 = GOVUK.analyticsGA4 || {}
|
|
132
|
+
GOVUK.analyticsGA4.PIIRemover = PIIRemover
|
|
133
|
+
|
|
134
|
+
global.GOVUK = GOVUK
|
|
135
|
+
})(window)
|
|
@@ -124,6 +124,16 @@ window.GOVUK.Modules.GovukAccordion = window.GOVUKFrontend.Accordion;
|
|
|
124
124
|
var label = expanded ? 'Show all sections' : 'Hide all sections'
|
|
125
125
|
var action = expanded ? 'accordionOpened' : 'accordionClosed'
|
|
126
126
|
var options = { transport: 'beacon', label: label }
|
|
127
|
+
|
|
128
|
+
var extraOptions = event.target && event.target.getAttribute('data-track-options')
|
|
129
|
+
|
|
130
|
+
// this uses the same logic as track-click.js handleClick
|
|
131
|
+
// means we can add a custom dimensions on click
|
|
132
|
+
if (extraOptions) {
|
|
133
|
+
extraOptions = JSON.parse(extraOptions)
|
|
134
|
+
for (var k in extraOptions) options[k] = extraOptions[k]
|
|
135
|
+
}
|
|
136
|
+
|
|
127
137
|
if (window.GOVUK.analytics && window.GOVUK.analytics.trackEvent) {
|
|
128
138
|
window.GOVUK.analytics.trackEvent('pageElementInteraction', action, options)
|
|
129
139
|
}
|
|
@@ -92,6 +92,13 @@
|
|
|
92
92
|
}
|
|
93
93
|
}
|
|
94
94
|
|
|
95
|
+
.gem-c-action-link--white-arrow {
|
|
96
|
+
&:before {
|
|
97
|
+
background-image: image-url("govuk_publishing_components/action-link-arrow--white.png");
|
|
98
|
+
background-image: image-url("govuk_publishing_components/action-link-arrow--white.svg"), linear-gradient(transparent, transparent);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
95
102
|
.gem-c-action-link--blue-arrow {
|
|
96
103
|
&:before {
|
|
97
104
|
width: 36px;
|
|
@@ -1,92 +1 @@
|
|
|
1
|
-
|
|
2
|
-
display: block;
|
|
3
|
-
margin: govuk-spacing(8) 0;
|
|
4
|
-
}
|
|
5
|
-
|
|
6
|
-
.gem-c-pagination__list {
|
|
7
|
-
margin: 0;
|
|
8
|
-
padding: 0;
|
|
9
|
-
}
|
|
10
|
-
|
|
11
|
-
.gem-c-pagination__item {
|
|
12
|
-
@include govuk-font($size: 19);
|
|
13
|
-
list-style: none;
|
|
14
|
-
|
|
15
|
-
&:first-child {
|
|
16
|
-
margin-bottom: govuk-spacing(4);
|
|
17
|
-
}
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
.gem-c-pagination__link {
|
|
21
|
-
display: block;
|
|
22
|
-
text-decoration: none;
|
|
23
|
-
padding-bottom: govuk-spacing(4);
|
|
24
|
-
|
|
25
|
-
&:hover,
|
|
26
|
-
&:active,
|
|
27
|
-
&:visited {
|
|
28
|
-
color: $govuk-link-colour;
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
&:hover,
|
|
32
|
-
&:active {
|
|
33
|
-
background-color: govuk-colour("light-grey", $legacy: "grey-4");
|
|
34
|
-
|
|
35
|
-
// Add govuk-link hover decoration to title if no label present
|
|
36
|
-
.gem-c-pagination__link-text--decorated {
|
|
37
|
-
@include govuk-link-decoration;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
.gem-c-pagination__link-label,
|
|
41
|
-
.gem-c-pagination__link-text--decorated {
|
|
42
|
-
@include govuk-link-hover-decoration;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
&:focus {
|
|
47
|
-
@include govuk-focused-text;
|
|
48
|
-
|
|
49
|
-
.gem-c-pagination__link-title {
|
|
50
|
-
border-top-color: transparent;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
.gem-c-pagination__link-icon {
|
|
54
|
-
fill: $govuk-text-colour;
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
.gem-c-pagination__link-title {
|
|
60
|
-
display: block;
|
|
61
|
-
border-top: 1px solid $govuk-border-colour;
|
|
62
|
-
padding-top: govuk-spacing(3);
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
.gem-c-pagination__link-divider {
|
|
66
|
-
@include govuk-visually-hidden;
|
|
67
|
-
}
|
|
68
|
-
|
|
69
|
-
.gem-c-pagination__link-text {
|
|
70
|
-
@include govuk-font(19, $weight: bold);
|
|
71
|
-
margin-left: govuk-spacing(2);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
.gem-c-pagination__link-icon {
|
|
75
|
-
@include govuk-font($size: 24, $line-height: (33.75 / 27));
|
|
76
|
-
display: inline-block;
|
|
77
|
-
margin-bottom: 1px;
|
|
78
|
-
height: .482em;
|
|
79
|
-
width: .63em;
|
|
80
|
-
fill: govuk-colour("dark-grey", $legacy: "grey-1");
|
|
81
|
-
}
|
|
82
|
-
|
|
83
|
-
.gem-c-pagination__link-label {
|
|
84
|
-
display: inline-block;
|
|
85
|
-
margin-top: .1em;
|
|
86
|
-
margin-left: govuk-spacing(5);
|
|
87
|
-
@include govuk-link-decoration;
|
|
88
|
-
|
|
89
|
-
@include govuk-media-query($from: tablet) {
|
|
90
|
-
margin-left: govuk-spacing(6);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
1
|
+
@import "govuk/components/pagination/pagination";
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
mobile_subtext ||= false
|
|
11
11
|
light_text ||= false
|
|
12
12
|
blue_arrow ||= false
|
|
13
|
+
white_arrow ||= false
|
|
13
14
|
simple ||= false
|
|
14
15
|
simple_light ||= false
|
|
15
16
|
dark_icon ||= false
|
|
@@ -29,6 +30,7 @@
|
|
|
29
30
|
css_classes << "gem-c-action-link--nhs" if nhs_icon
|
|
30
31
|
css_classes << "gem-c-action-link--brexit" if brexit_icon
|
|
31
32
|
css_classes << "gem-c-action-link--blue-arrow" if blue_arrow
|
|
33
|
+
css_classes << "gem-c-action-link--white-arrow" if white_arrow
|
|
32
34
|
css_classes << "gem-c-action-link--simple" if simple
|
|
33
35
|
css_classes << "gem-c-action-link--simple-light" if simple_light
|
|
34
36
|
css_classes << "gem-c-action-link--with-subtext" if subtext
|
data/app/views/govuk_publishing_components/components/_previous_and_next_navigation.html.erb
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
<% if local_assigns.include?(:next_page) || local_assigns.include?(:previous_page) %>
|
|
2
|
-
<nav
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
>
|
|
7
|
-
<ul class="gem-c-pagination__list" data-module="gem-track-click">
|
|
2
|
+
<nav
|
|
3
|
+
class="govuk-pagination govuk-pagination--block"
|
|
4
|
+
role="navigation"
|
|
5
|
+
aria-label="<%= t("components.previous_and_next_navigation.pagination") %>"
|
|
6
|
+
>
|
|
8
7
|
<% if local_assigns.include?(:previous_page) %>
|
|
9
8
|
<%
|
|
10
|
-
|
|
11
|
-
link_text_classes
|
|
9
|
+
title = previous_page[:title] || t("components.previous_and_next_navigation.previous")
|
|
10
|
+
link_text_classes = %w[govuk-pagination__link-title]
|
|
11
|
+
link_text_classes << "govuk-pagination__link-title--decorated" unless previous_page[:label].present?
|
|
12
12
|
%>
|
|
13
|
-
<
|
|
14
|
-
<a
|
|
15
|
-
|
|
13
|
+
<div class="govuk-pagination__prev">
|
|
14
|
+
<a class="govuk-link govuk-pagination__link"
|
|
15
|
+
href="<%= previous_page[:url] %>"
|
|
16
16
|
rel="prev"
|
|
17
17
|
data-track-category="contentsClicked"
|
|
18
18
|
data-track-action="previous"
|
|
@@ -20,27 +20,27 @@
|
|
|
20
20
|
data-track-dimension="previous"
|
|
21
21
|
data-track-dimension-index="29"
|
|
22
22
|
>
|
|
23
|
-
<
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
<%= tag.span(previous_page[:title], class: link_text_classes) %>
|
|
28
|
-
</span>
|
|
23
|
+
<svg class="govuk-pagination__icon govuk-pagination__icon--prev" xmlns="http://www.w3.org/2000/svg" height="13" width="15" aria-hidden="true" focusable="false" viewBox="0 0 15 13">
|
|
24
|
+
<path d="m6.5938-0.0078125-6.7266 6.7266 6.7441 6.4062 1.377-1.449-4.1856-3.9768h12.896v-2h-12.984l4.2931-4.293-1.414-1.414z"></path>
|
|
25
|
+
</svg>
|
|
26
|
+
<%= tag.span(title, class: link_text_classes) %>
|
|
29
27
|
<% if previous_page[:label].present? %>
|
|
30
|
-
<span class="
|
|
31
|
-
<span class="
|
|
28
|
+
<span class="govuk-visually-hidden">:</span>
|
|
29
|
+
<span class="govuk-pagination__link-label"><%= previous_page[:label] %></span>
|
|
32
30
|
<% end %>
|
|
33
31
|
</a>
|
|
34
|
-
</
|
|
32
|
+
</div>
|
|
35
33
|
<% end %>
|
|
34
|
+
|
|
36
35
|
<% if local_assigns.include?(:next_page) %>
|
|
37
36
|
<%
|
|
38
|
-
|
|
39
|
-
link_text_classes
|
|
37
|
+
title = next_page[:title] || t("components.previous_and_next_navigation.next")
|
|
38
|
+
link_text_classes = %w[govuk-pagination__link-title]
|
|
39
|
+
link_text_classes << "govuk-pagination__link-title--decorated" unless next_page[:label].present?
|
|
40
40
|
%>
|
|
41
|
-
<
|
|
42
|
-
<a
|
|
43
|
-
|
|
41
|
+
<div class="govuk-pagination__next">
|
|
42
|
+
<a class="govuk-link govuk-pagination__link"
|
|
43
|
+
href="<%= next_page[:url] %>"
|
|
44
44
|
rel="next"
|
|
45
45
|
data-track-category="contentsClicked"
|
|
46
46
|
data-track-action="next"
|
|
@@ -48,19 +48,16 @@
|
|
|
48
48
|
data-track-dimension="next"
|
|
49
49
|
data-track-dimension-index="29"
|
|
50
50
|
>
|
|
51
|
-
<
|
|
52
|
-
<
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
<%= tag.span(next_page[:title], class: link_text_classes) %>
|
|
56
|
-
</span>
|
|
51
|
+
<svg class="govuk-pagination__icon govuk-pagination__icon--next" xmlns="http://www.w3.org/2000/svg" height="13" width="15" aria-hidden="true" focusable="false" viewBox="0 0 15 13">
|
|
52
|
+
<path d="m8.107-0.0078125-1.4136 1.414 4.2926 4.293h-12.986v2h12.896l-4.1855 3.9766 1.377 1.4492 6.7441-6.4062-6.7246-6.7266z"></path>
|
|
53
|
+
</svg>
|
|
54
|
+
<%= tag.span(title, class: link_text_classes) %>
|
|
57
55
|
<% if next_page[:label].present? %>
|
|
58
|
-
<span class="
|
|
59
|
-
<span class="
|
|
56
|
+
<span class="govuk-visually-hidden">:</span>
|
|
57
|
+
<span class="govuk-pagination__link-label"><%= next_page[:label] %></span>
|
|
60
58
|
<% end %>
|
|
61
59
|
</a>
|
|
62
|
-
</
|
|
60
|
+
</div>
|
|
63
61
|
<% end %>
|
|
64
|
-
</
|
|
65
|
-
</nav>
|
|
62
|
+
</nav>
|
|
66
63
|
<% end %>
|
|
@@ -189,7 +189,7 @@ examples:
|
|
|
189
189
|
|
|
190
190
|
Each item can also have a `data_attributes` hash. These `data_attributes` are placed on the `button` that triggers the opening and closing - useful for differentiating between each section of the accordion.
|
|
191
191
|
|
|
192
|
-
Data attributes can also be added to the 'Show/hide all' link using the `data_attributes_show_all` option, primarily where custom tracking is required. These attributes are read from the accordion markup and then added to the link by JavaScript (which is how the link is created).
|
|
192
|
+
Data attributes can also be added to the 'Show/hide all' link using the `data_attributes_show_all` option, primarily where custom tracking is required. These attributes are read from the accordion markup and then added to the link by JavaScript (which is how the link is created). If `track_options` within `data_attributes_show_all` is set, then it is possible to pass a custom dimension when 'Show/Hide all' is clicked.
|
|
193
193
|
data:
|
|
194
194
|
data_attributes:
|
|
195
195
|
gtm: gtm-accordion
|
|
@@ -197,6 +197,7 @@ examples:
|
|
|
197
197
|
data_attributes_show_all:
|
|
198
198
|
gtm-event-name: example
|
|
199
199
|
gtm-attributes: "{ 'ui': { 'type': 'type value', 'section': 'section value' } }"
|
|
200
|
+
tracking-options: "{ 'dimension114': 1 }"
|
|
200
201
|
items:
|
|
201
202
|
- heading:
|
|
202
203
|
text: Writing well for the web
|
|
@@ -78,6 +78,14 @@ examples:
|
|
|
78
78
|
light_text: true
|
|
79
79
|
context:
|
|
80
80
|
dark_background: true
|
|
81
|
+
white_arrow:
|
|
82
|
+
data:
|
|
83
|
+
text: Find out how to stay safe and help prevent the spread
|
|
84
|
+
href: "/something"
|
|
85
|
+
white_arrow: true
|
|
86
|
+
light_text: true
|
|
87
|
+
context:
|
|
88
|
+
dark_background: true
|
|
81
89
|
blue_arrow:
|
|
82
90
|
data:
|
|
83
91
|
text: Find out how to stay safe and help prevent the spread
|
data/config/locales/ar.yml
CHANGED
data/config/locales/az.yml
CHANGED
|
@@ -131,7 +131,9 @@ az:
|
|
|
131
131
|
organisation_schema:
|
|
132
132
|
all_content_search_description: "%{organisation}-dan bütün məzmunu tap"
|
|
133
133
|
previous_and_next_navigation:
|
|
134
|
+
next:
|
|
134
135
|
pagination: Səhifələrə bölmə
|
|
136
|
+
previous:
|
|
135
137
|
print_link:
|
|
136
138
|
text: Bu səhifəni çap et
|
|
137
139
|
radio:
|
data/config/locales/be.yml
CHANGED
|
@@ -138,7 +138,9 @@ be:
|
|
|
138
138
|
organisation_schema:
|
|
139
139
|
all_content_search_description: Шукаць увесь змест з %{organisation}
|
|
140
140
|
previous_and_next_navigation:
|
|
141
|
+
next:
|
|
141
142
|
pagination: Месцаванне старонак
|
|
143
|
+
previous:
|
|
142
144
|
print_link:
|
|
143
145
|
text: Надрукаваць гэтую странiцу
|
|
144
146
|
radio:
|
data/config/locales/bg.yml
CHANGED
|
@@ -136,7 +136,9 @@ bg:
|
|
|
136
136
|
organisation_schema:
|
|
137
137
|
all_content_search_description: Намиране на цялото съдържание от %{organisation}
|
|
138
138
|
previous_and_next_navigation:
|
|
139
|
+
next:
|
|
139
140
|
pagination: Страниране
|
|
141
|
+
previous:
|
|
140
142
|
print_link:
|
|
141
143
|
text: Отпечатване на страницата
|
|
142
144
|
radio:
|
data/config/locales/bn.yml
CHANGED
|
@@ -133,7 +133,9 @@ bn:
|
|
|
133
133
|
organisation_schema:
|
|
134
134
|
all_content_search_description: "%{organisation}-এর সকল বিষয়বস্তু খুঁজে বের করুন"
|
|
135
135
|
previous_and_next_navigation:
|
|
136
|
+
next:
|
|
136
137
|
pagination: পেজিনেশন
|
|
138
|
+
previous:
|
|
137
139
|
print_link:
|
|
138
140
|
text: এই পৃষ্ঠাটি প্রিন্ট করুন
|
|
139
141
|
radio:
|
data/config/locales/cs.yml
CHANGED
|
@@ -137,7 +137,9 @@ cs:
|
|
|
137
137
|
organisation_schema:
|
|
138
138
|
all_content_search_description: Najít veškerý obsah z %{organisation}
|
|
139
139
|
previous_and_next_navigation:
|
|
140
|
+
next:
|
|
140
141
|
pagination: Stránkování
|
|
142
|
+
previous:
|
|
141
143
|
print_link:
|
|
142
144
|
text: Vytisknout tuto stránku
|
|
143
145
|
radio:
|
data/config/locales/cy.yml
CHANGED
|
@@ -136,7 +136,9 @@ cy:
|
|
|
136
136
|
organisation_schema:
|
|
137
137
|
all_content_search_description: Dod o hyd i'r holl gynnwys gan %{organisation}
|
|
138
138
|
previous_and_next_navigation:
|
|
139
|
+
next:
|
|
139
140
|
pagination: Tudalennu
|
|
141
|
+
previous:
|
|
140
142
|
print_link:
|
|
141
143
|
text: Argraffu'r dudalen hon
|
|
142
144
|
radio:
|
data/config/locales/da.yml
CHANGED
data/config/locales/de.yml
CHANGED
|
@@ -136,7 +136,9 @@ de:
|
|
|
136
136
|
organisation_schema:
|
|
137
137
|
all_content_search_description: Alle Inhalte von %{organisation} finden
|
|
138
138
|
previous_and_next_navigation:
|
|
139
|
+
next:
|
|
139
140
|
pagination: Seitenzahlen
|
|
141
|
+
previous:
|
|
140
142
|
print_link:
|
|
141
143
|
text: Diese Seite drucken
|
|
142
144
|
radio:
|
data/config/locales/dr.yml
CHANGED
|
@@ -134,7 +134,9 @@ dr:
|
|
|
134
134
|
organisation_schema:
|
|
135
135
|
all_content_search_description: تمام محتویات را از اینجا بدست بیاورید %{organisation}
|
|
136
136
|
previous_and_next_navigation:
|
|
137
|
+
next:
|
|
137
138
|
pagination: صفحه گذاری
|
|
139
|
+
previous:
|
|
138
140
|
print_link:
|
|
139
141
|
text: این صفحه را پرنت نمایید
|
|
140
142
|
radio:
|
data/config/locales/el.yml
CHANGED
|
@@ -132,7 +132,9 @@ el:
|
|
|
132
132
|
organisation_schema:
|
|
133
133
|
all_content_search_description: Εύρεση όλου του περιεχομένου από τον οργανισμό %{Organization}
|
|
134
134
|
previous_and_next_navigation:
|
|
135
|
+
next:
|
|
135
136
|
pagination: Σελιδοποίηση
|
|
137
|
+
previous:
|
|
136
138
|
print_link:
|
|
137
139
|
text: Εκτύπωση αυτής της σελίδας
|
|
138
140
|
radio:
|
data/config/locales/en.yml
CHANGED
|
@@ -256,7 +256,9 @@ en:
|
|
|
256
256
|
organisation_schema:
|
|
257
257
|
all_content_search_description: Find all content from %{organisation}
|
|
258
258
|
previous_and_next_navigation:
|
|
259
|
+
next: Next
|
|
259
260
|
pagination: Pagination
|
|
261
|
+
previous: Previous
|
|
260
262
|
print_link:
|
|
261
263
|
text: Print this page
|
|
262
264
|
radio:
|
data/config/locales/es-419.yml
CHANGED
|
@@ -132,7 +132,9 @@ es-419:
|
|
|
132
132
|
organisation_schema:
|
|
133
133
|
all_content_search_description: Buscar todo el contenido de %{organisation}
|
|
134
134
|
previous_and_next_navigation:
|
|
135
|
+
next:
|
|
135
136
|
pagination: Paginación
|
|
137
|
+
previous:
|
|
136
138
|
print_link:
|
|
137
139
|
text: Imprimir esta página
|
|
138
140
|
radio:
|
data/config/locales/es.yml
CHANGED
|
@@ -132,7 +132,9 @@ es:
|
|
|
132
132
|
organisation_schema:
|
|
133
133
|
all_content_search_description: Buscar todo el contenido de %{organization}
|
|
134
134
|
previous_and_next_navigation:
|
|
135
|
+
next:
|
|
135
136
|
pagination: Paginación
|
|
137
|
+
previous:
|
|
136
138
|
print_link:
|
|
137
139
|
text: Imprimir esta página
|
|
138
140
|
radio:
|
data/config/locales/et.yml
CHANGED
|
@@ -135,7 +135,9 @@ et:
|
|
|
135
135
|
organisation_schema:
|
|
136
136
|
all_content_search_description: Leidke kogu ettevõtte %{organization} sisu
|
|
137
137
|
previous_and_next_navigation:
|
|
138
|
+
next:
|
|
138
139
|
pagination: Lehekülgede jaotus
|
|
140
|
+
previous:
|
|
139
141
|
print_link:
|
|
140
142
|
text: Prindi see leht
|
|
141
143
|
radio:
|
data/config/locales/fa.yml
CHANGED