govuk_publishing_components 29.15.1 → 29.15.2
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/govuk_publishing_components/analytics-ga4/gtm-click-tracking.js +24 -13
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/gtm-page-views.js +9 -12
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/gtm-schemas.js +32 -0
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4.js +1 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/govspeak/_charts.scss +13 -2
- data/app/views/govuk_publishing_components/components/docs/govspeak.yml +6 -7
- data/app/views/govuk_publishing_components/components/docs/image_card.yml +1 -1
- data/lib/govuk_publishing_components/version.rb +1 -1
- metadata +3 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dc8afcd723e5dd4096349ddfbce6a967b852d9525f46bb3a1b078c11ab0b5b41
|
|
4
|
+
data.tar.gz: b2c550b431ad6892bdee23afa7f2e83315e52725007d16149f20ce9a0ef29e7a
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 0bd443616d7ab532ec0f2fe36549782986c3cb5bdbab636bdeec40ff595b7873b006d432f75c16f33311dda1c78b7e4533a4376ad52f19a8d1bf07b882dc03cd
|
|
7
|
+
data.tar.gz: 3f64655cddd38bf346a6ab3dd8c69917a70b3de614ad0d4f73b16b28f777b3c7901b466fe8479d0c7abc8205f0b123469f35c3f97f44ab3fdb6456cde97883f1
|
|
@@ -7,7 +7,7 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
|
7
7
|
|
|
8
8
|
function GtmClickTracking (module) {
|
|
9
9
|
this.module = module
|
|
10
|
-
this.trackingTrigger = 'data-
|
|
10
|
+
this.trackingTrigger = 'data-ga4' // elements with this attribute get tracked
|
|
11
11
|
}
|
|
12
12
|
|
|
13
13
|
GtmClickTracking.prototype.init = function () {
|
|
@@ -18,12 +18,24 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
|
18
18
|
if (window.dataLayer) {
|
|
19
19
|
var target = this.findTrackingAttributes(event.target)
|
|
20
20
|
if (target) {
|
|
21
|
-
var
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
21
|
+
var schema = new window.GOVUK.analyticsGA4.Schemas().eventSchema()
|
|
22
|
+
|
|
23
|
+
try {
|
|
24
|
+
var data = target.getAttribute(this.trackingTrigger)
|
|
25
|
+
data = JSON.parse(data)
|
|
26
|
+
} catch (e) {
|
|
27
|
+
// if there's a problem with the config, don't start the tracker
|
|
28
|
+
console.error('GA4 configuration error: ' + e.message, window.location)
|
|
29
|
+
return
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
schema.event = 'event_data'
|
|
33
|
+
// get attributes from the data attribute to send to GA
|
|
34
|
+
// only allow it if it already exists in the schema
|
|
35
|
+
for (var property in data) {
|
|
36
|
+
if (schema.event_data[property]) {
|
|
37
|
+
schema.event_data[property] = data[property]
|
|
38
|
+
}
|
|
27
39
|
}
|
|
28
40
|
|
|
29
41
|
// Ensure it only tracks aria-expanded in an accordion element, instead of in any child of the clicked element
|
|
@@ -39,15 +51,14 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
|
39
51
|
var detailsElement = target.closest('details')
|
|
40
52
|
|
|
41
53
|
if (ariaExpanded) {
|
|
42
|
-
|
|
43
|
-
|
|
54
|
+
schema.event_data.text = data.text || target.innerText
|
|
55
|
+
schema.event_data.action = (ariaExpanded === 'false') ? 'opened' : 'closed'
|
|
44
56
|
} else if (detailsElement) {
|
|
45
|
-
|
|
57
|
+
schema.event_data.text = data.text || detailsElement.textContent
|
|
46
58
|
var openAttribute = detailsElement.getAttribute('open')
|
|
47
|
-
|
|
59
|
+
schema.event_data.action = (openAttribute == null) ? 'opened' : 'closed'
|
|
48
60
|
}
|
|
49
|
-
|
|
50
|
-
window.dataLayer.push(data)
|
|
61
|
+
window.dataLayer.push(schema)
|
|
51
62
|
}
|
|
52
63
|
}
|
|
53
64
|
}
|
|
@@ -9,29 +9,26 @@
|
|
|
9
9
|
sendPageView: function () {
|
|
10
10
|
if (window.dataLayer) {
|
|
11
11
|
var data = {
|
|
12
|
-
event: '
|
|
12
|
+
event: 'page_view',
|
|
13
13
|
page: {
|
|
14
14
|
location: this.getLocation(),
|
|
15
15
|
referrer: this.getReferrer(),
|
|
16
16
|
title: this.getTitle(),
|
|
17
|
-
status_code: this.getStatusCode()
|
|
18
|
-
|
|
19
|
-
publishing: {
|
|
17
|
+
status_code: this.getStatusCode(),
|
|
18
|
+
|
|
20
19
|
document_type: this.getMetaContent('format'),
|
|
21
20
|
publishing_app: this.getMetaContent('publishing-app'),
|
|
22
21
|
rendering_app: this.getMetaContent('rendering-app'),
|
|
23
22
|
schema_name: this.getMetaContent('schema-name'),
|
|
24
|
-
content_id: this.getMetaContent('content-id')
|
|
25
|
-
|
|
26
|
-
taxonomy: {
|
|
23
|
+
content_id: this.getMetaContent('content-id'),
|
|
24
|
+
|
|
27
25
|
section: this.getMetaContent('section'),
|
|
28
26
|
taxon_slug: this.getMetaContent('taxon-slug'),
|
|
29
27
|
taxon_id: this.getMetaContent('taxon-id'),
|
|
30
28
|
themes: this.getMetaContent('themes'),
|
|
31
29
|
taxon_slugs: this.getMetaContent('taxon-slugs'),
|
|
32
|
-
taxon_ids: this.getMetaContent('taxon-ids')
|
|
33
|
-
|
|
34
|
-
content: {
|
|
30
|
+
taxon_ids: this.getMetaContent('taxon-ids'),
|
|
31
|
+
|
|
35
32
|
language: this.getLanguage(),
|
|
36
33
|
history: this.getHistory(),
|
|
37
34
|
withdrawn: this.getWithDrawn(),
|
|
@@ -65,9 +62,9 @@
|
|
|
65
62
|
// https://github.com/alphagov/static/blob/main/app/views/root/_error_page.html.erb#L32
|
|
66
63
|
getStatusCode: function () {
|
|
67
64
|
if (window.httpStatusCode) {
|
|
68
|
-
return window.httpStatusCode
|
|
65
|
+
return window.httpStatusCode.toString()
|
|
69
66
|
} else {
|
|
70
|
-
return 200
|
|
67
|
+
return '200'
|
|
71
68
|
}
|
|
72
69
|
},
|
|
73
70
|
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
;(function (global) {
|
|
2
|
+
'use strict'
|
|
3
|
+
|
|
4
|
+
var GOVUK = global.GOVUK || {}
|
|
5
|
+
|
|
6
|
+
var Schemas = function () {
|
|
7
|
+
this.null = 'n/a'
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
Schemas.prototype.eventSchema = function () {
|
|
11
|
+
return {
|
|
12
|
+
event: this.null,
|
|
13
|
+
|
|
14
|
+
event_data: {
|
|
15
|
+
event_name: this.null,
|
|
16
|
+
type: this.null,
|
|
17
|
+
url: this.null,
|
|
18
|
+
text: this.null,
|
|
19
|
+
index: this.null,
|
|
20
|
+
index_total: this.null,
|
|
21
|
+
section: this.null,
|
|
22
|
+
action: this.null,
|
|
23
|
+
external: this.null
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
GOVUK.analyticsGA4 = GOVUK.analyticsGA4 || {}
|
|
29
|
+
GOVUK.analyticsGA4.Schemas = Schemas
|
|
30
|
+
|
|
31
|
+
global.GOVUK = GOVUK
|
|
32
|
+
})(window)
|
|
@@ -25,12 +25,23 @@
|
|
|
25
25
|
$caption-side: top; // Caption alignment. Top or bottom.
|
|
26
26
|
$key-width: 160px; // Only used by IE. Other browsers get smallest width that fits content
|
|
27
27
|
|
|
28
|
+
// The following accessible colour palette has been developed to meet the colour contrast requirements for adjacent colours (as set out in WCAG 2.1)
|
|
29
|
+
// For charts, the palette should be used instead of the GOV.UK colour palette - https://design-system.service.gov.uk/styles/colour/
|
|
30
|
+
// https://gss.civilservice.gov.uk/policy-store/data-visualisation-colours-in-charts/#section-5
|
|
31
|
+
|
|
32
|
+
$gss-colour-dark-blue: #12436d;
|
|
33
|
+
$gss-colour-turquoise: #28a197;
|
|
34
|
+
$gss-colour-dark-pink: #801650;
|
|
35
|
+
$gss-colour-orange: #f46a25;
|
|
36
|
+
$gss-colour-dark-grey: #3d3d3d;
|
|
37
|
+
$gss-colour-plum: #a285d1;
|
|
38
|
+
|
|
28
39
|
// CHART COLOUR SCHEME
|
|
29
40
|
|
|
30
41
|
$chart-border: govuk-colour("white"); // Chart border colour
|
|
31
42
|
$key-border: govuk-colour("white"); // Key border colour
|
|
32
|
-
$bar-colours:
|
|
33
|
-
$bar-text-colours: govuk-colour("white"), govuk-colour("
|
|
43
|
+
$bar-colours: $gss-colour-dark-blue, $gss-colour-turquoise, $gss-colour-dark-pink, $gss-colour-orange, $gss-colour-dark-grey, $gss-colour-plum;
|
|
44
|
+
$bar-text-colours: govuk-colour("white"), govuk-colour("white"), govuk-colour("white"), govuk-colour("black"), govuk-colour("white"), govuk-colour("black");
|
|
34
45
|
$bar-cell-colour: govuk-colour("black");
|
|
35
46
|
$bar-outdented-colour: govuk-colour("black");
|
|
36
47
|
|
|
@@ -181,6 +181,11 @@ examples:
|
|
|
181
181
|
</tbody>
|
|
182
182
|
</table>
|
|
183
183
|
charts:
|
|
184
|
+
description: |
|
|
185
|
+
The Government Statistical Service (GSS) guidance recommends [a limit of four categories as best practice for basic data visualisations](https://gss.civilservice.gov.uk/policy-store/data-visualisation-colours-in-charts/#section-5).
|
|
186
|
+
|
|
187
|
+
Note that charts which have up to 7 categories, [chart with colours](http://govuk-publishing-components.dev.gov.uk/component-guide/govspeak/chart_with_colours/preview), for example, will display subsequent bars in `#3d3d3d`, `#a285d1` and the 7th bar in the default colour of `#0b0c0c` and will still meet the colour contrast requirements for adjacent colours.
|
|
188
|
+
Charts that have 8 or more categories will display additional bars in the default colour and will not meet colour contrast requirements for adjacent colours.
|
|
184
189
|
data:
|
|
185
190
|
block: |
|
|
186
191
|
<table class='js-barchart-table mc-auto-outdent'>
|
|
@@ -214,8 +219,6 @@ examples:
|
|
|
214
219
|
<th scope="col">Grapes</th>
|
|
215
220
|
<th scope="col">Strawberries</th>
|
|
216
221
|
<th scope="col">Plums</th>
|
|
217
|
-
<th scope="col">Apricots</th>
|
|
218
|
-
<th scope="col">Pineapples</th>
|
|
219
222
|
</tr>
|
|
220
223
|
</thead>
|
|
221
224
|
<tbody>
|
|
@@ -228,8 +231,6 @@ examples:
|
|
|
228
231
|
<td>24</td>
|
|
229
232
|
<td>10</td>
|
|
230
233
|
<td>62</td>
|
|
231
|
-
<td>29</td>
|
|
232
|
-
<td>81</td>
|
|
233
234
|
</tr>
|
|
234
235
|
<tr>
|
|
235
236
|
<td>Numbers outside bar</td>
|
|
@@ -238,10 +239,8 @@ examples:
|
|
|
238
239
|
<td>2</td>
|
|
239
240
|
<td>1</td>
|
|
240
241
|
<td>1</td>
|
|
241
|
-
<td>3</td>
|
|
242
|
-
<td>3</td>
|
|
243
|
-
<td>1</td>
|
|
244
242
|
<td>2</td>
|
|
243
|
+
<td>1</td>
|
|
245
244
|
</tr>
|
|
246
245
|
</tbody>
|
|
247
246
|
</table>
|
|
@@ -188,7 +188,7 @@ examples:
|
|
|
188
188
|
data:
|
|
189
189
|
large: true
|
|
190
190
|
href: "/still-not-a-page"
|
|
191
|
-
image_src: "https://assets.publishing.service.gov.uk/government/uploads/system/uploads/feature/image/
|
|
191
|
+
image_src: "https://assets.publishing.service.gov.uk/government/uploads/system/uploads/feature/image/91397/s712_SG_Swear_in_1_.jpg"
|
|
192
192
|
image_alt: "some meaningful alt text please"
|
|
193
193
|
context:
|
|
194
194
|
date: 2017-06-14 11:30:00
|
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.15.
|
|
4
|
+
version: 29.15.2
|
|
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-07-
|
|
11
|
+
date: 2022-07-26 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: govuk_app_config
|
|
@@ -438,6 +438,7 @@ files:
|
|
|
438
438
|
- app/assets/javascripts/govuk_publishing_components/analytics-ga4.js
|
|
439
439
|
- app/assets/javascripts/govuk_publishing_components/analytics-ga4/gtm-click-tracking.js
|
|
440
440
|
- app/assets/javascripts/govuk_publishing_components/analytics-ga4/gtm-page-views.js
|
|
441
|
+
- app/assets/javascripts/govuk_publishing_components/analytics-ga4/gtm-schemas.js
|
|
441
442
|
- app/assets/javascripts/govuk_publishing_components/analytics-ga4/pii-remover.js
|
|
442
443
|
- app/assets/javascripts/govuk_publishing_components/analytics.js
|
|
443
444
|
- app/assets/javascripts/govuk_publishing_components/analytics/analytics.js
|