govuk_publishing_components 36.0.2 → 36.1.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/govuk_publishing_components/analytics-ga4/ga4-core.js +14 -2
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-form-tracker.js +1 -2
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-link-tracker.js +7 -1
- data/app/assets/javascripts/govuk_publishing_components/analytics-ga4/ga4-page-views.js +2 -3
- data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/youtube-link-enhancement.js +1 -1
- data/app/models/govuk_publishing_components/audit_applications.rb +1 -1
- data/app/views/govuk_publishing_components/components/_file_upload.html.erb +18 -1
- data/app/views/govuk_publishing_components/components/docs/file_upload.yml +11 -0
- data/lib/govuk_publishing_components/presenters/attachment_helper.rb +1 -0
- data/lib/govuk_publishing_components/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2a1b48c8e40b95414bf80c8315e867f24d29686de682e051b3f85cd7ab0a88b2
|
4
|
+
data.tar.gz: dcfa431c373237617dbed7ef353377047874cb3ec7778126db4d5000393fdfb6
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: b35385b4123f674488ea177d7e2761d6f0c8847af76a3e00d932ee0c8bdbb3536c788fd77db99a31a736982204f4140ba1f2667ca957cc73603f6f132846dfc5
|
7
|
+
data.tar.gz: f941bbaebaca0c3ed5a91955a1befe12637861b1bde2a65a6c0ef8f65072f27c8d85755452960df8d8913041fef037081faf15fc07780b0eb3c6c644032e3d74
|
@@ -275,6 +275,19 @@ window.GOVUK.analyticsGa4 = window.GOVUK.analyticsGa4 || {};
|
|
275
275
|
return url
|
276
276
|
}
|
277
277
|
return this.getPathname() + url
|
278
|
+
},
|
279
|
+
|
280
|
+
standardiseSearchTerm: function (searchTerm) {
|
281
|
+
if (!searchTerm) {
|
282
|
+
return undefined // Prevents conversion of undefined to a string by this function.
|
283
|
+
}
|
284
|
+
|
285
|
+
var PIIRemover = new window.GOVUK.analyticsGa4.PIIRemover()
|
286
|
+
searchTerm = searchTerm.replace(/\++|(%2B)+/gm, ' ') // Turn + characters or unicode + characters (%2B) into a space.
|
287
|
+
searchTerm = window.GOVUK.analyticsGa4.core.trackFunctions.removeLinesAndExtraSpaces(searchTerm)
|
288
|
+
searchTerm = PIIRemover.stripPIIWithOverride(searchTerm, true, true)
|
289
|
+
searchTerm = searchTerm.toLowerCase()
|
290
|
+
return searchTerm
|
278
291
|
}
|
279
292
|
},
|
280
293
|
|
@@ -313,12 +326,11 @@ window.GOVUK.analyticsGa4 = window.GOVUK.analyticsGa4 || {};
|
|
313
326
|
var isSearchResult = element.getAttribute('data-ga4-search-query')
|
314
327
|
|
315
328
|
var ecommerceSchema = new window.GOVUK.analyticsGa4.Schemas().ecommerceSchema()
|
316
|
-
var PIIRemover = new window.GOVUK.analyticsGa4.PIIRemover()
|
317
329
|
var DEFAULT_LIST_TITLE = 'Smart answer results'
|
318
330
|
|
319
331
|
if (isSearchResult) {
|
320
332
|
// Limiting to 100 characters to avoid noise from extra long search queries and to stop the size of the payload going over 8k limit.
|
321
|
-
var searchQuery =
|
333
|
+
var searchQuery = window.GOVUK.analyticsGa4.core.trackFunctions.standardiseSearchTerm(element.getAttribute('data-ga4-search-query')).substring(0, 100)
|
322
334
|
var variant = element.getAttribute('data-ga4-ecommerce-variant')
|
323
335
|
DEFAULT_LIST_TITLE = 'Site search results'
|
324
336
|
}
|
@@ -47,8 +47,7 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
47
47
|
data.text = data.text || this.combineGivenAnswers(formData) || this.useFallbackValue
|
48
48
|
|
49
49
|
if (data.action === 'search' && data.text) {
|
50
|
-
data.text = data.text
|
51
|
-
data.text = window.GOVUK.analyticsGa4.core.trackFunctions.removeLinesAndExtraSpaces(data.text)
|
50
|
+
data.text = window.GOVUK.analyticsGa4.core.trackFunctions.standardiseSearchTerm(data.text)
|
52
51
|
}
|
53
52
|
window.GOVUK.analyticsGa4.core.applySchemaAndSendData(data, 'event_data')
|
54
53
|
}
|
@@ -85,7 +85,13 @@ window.GOVUK.Modules = window.GOVUK.Modules || {};
|
|
85
85
|
if (!data.text && (element.querySelector('img') || element.querySelector('svg') || element.tagName === 'IMG' || element.closest('svg'))) {
|
86
86
|
data.text = 'image'
|
87
87
|
}
|
88
|
-
|
88
|
+
try {
|
89
|
+
var url = data.url || this.findLink(event.target).getAttribute('href')
|
90
|
+
} catch (e) {
|
91
|
+
// no href found, so abort
|
92
|
+
return
|
93
|
+
}
|
94
|
+
|
89
95
|
data.url = trackFunctions.removeCrossDomainParams(url)
|
90
96
|
data.url = trackFunctions.applyRedactionIfRequired(this.PIIRemover, element, data.url)
|
91
97
|
data.url = trackFunctions.appendPathToAnchorLinks(data.url)
|
@@ -86,9 +86,8 @@ window.GOVUK.analyticsGa4.analyticsModules = window.GOVUK.analyticsGa4.analytics
|
|
86
86
|
}
|
87
87
|
|
88
88
|
searchTerm = searchTerm[0].replace('keywords=', '')
|
89
|
-
searchTerm =
|
90
|
-
|
91
|
-
searchTerm = this.PIIRemover.stripPIIWithOverride(searchTerm, true, true)
|
89
|
+
searchTerm = window.GOVUK.analyticsGa4.core.trackFunctions.standardiseSearchTerm(searchTerm)
|
90
|
+
|
92
91
|
return searchTerm
|
93
92
|
},
|
94
93
|
|
data/app/assets/javascripts/govuk_publishing_components/lib/govspeak/youtube-link-enhancement.js
CHANGED
@@ -116,7 +116,7 @@
|
|
116
116
|
// https://github.com/alphagov/govuk_publishing_components/pull/908#discussion_r302913995
|
117
117
|
var videoTitle = options.title
|
118
118
|
event.target.getIframe().title = videoTitle + ' (video)'
|
119
|
-
if (window.GOVUK.analyticsGa4.analyticsModules.VideoTracker) {
|
119
|
+
if (window.GOVUK.analyticsGa4.analyticsModules && window.GOVUK.analyticsGa4.analyticsModules.VideoTracker) {
|
120
120
|
window.GOVUK.analyticsGa4.analyticsModules.VideoTracker.configureVideo(event)
|
121
121
|
}
|
122
122
|
},
|
@@ -161,7 +161,7 @@ module GovukPublishingComponents
|
|
161
161
|
end
|
162
162
|
|
163
163
|
def clean_file_path(file)
|
164
|
-
file[/(?<=#{Regexp.escape(@path.to_s)}\/)[\/
|
164
|
+
file[/(?<=#{Regexp.escape(@path.to_s)}\/)[\/0-9a-zA-Z_-]+.[0-9a-zA-Z+.]+/]
|
165
165
|
end
|
166
166
|
|
167
167
|
def clean_file_name(name)
|
@@ -1,6 +1,8 @@
|
|
1
1
|
<%
|
2
2
|
add_gem_component_stylesheet("file-upload")
|
3
3
|
|
4
|
+
shared_helper = GovukPublishingComponents::Presenters::SharedHelper.new(local_assigns)
|
5
|
+
|
4
6
|
id ||= "file-upload-#{SecureRandom.hex(4)}"
|
5
7
|
value ||= nil
|
6
8
|
accept ||= nil
|
@@ -13,6 +15,8 @@
|
|
13
15
|
has_error = error_message || error_items.any?
|
14
16
|
hint_id = "hint-#{SecureRandom.hex(4)}"
|
15
17
|
error_id = "error-#{SecureRandom.hex(4)}"
|
18
|
+
heading_size = false unless shared_helper.valid_heading_size?(heading_size)
|
19
|
+
heading_level ||= nil
|
16
20
|
|
17
21
|
css_classes = %w(gem-c-file-upload govuk-file-upload)
|
18
22
|
css_classes << "govuk-file-upload--error" if has_error
|
@@ -30,7 +34,20 @@
|
|
30
34
|
|
31
35
|
<%= content_tag :div, class: form_group_css_classes do %>
|
32
36
|
<% if label %>
|
33
|
-
|
37
|
+
<% label_markup = capture do %>
|
38
|
+
<%= render "govuk_publishing_components/components/label", {
|
39
|
+
html_for: id,
|
40
|
+
heading_size: heading_size
|
41
|
+
}.merge(label.symbolize_keys) %>
|
42
|
+
<% end %>
|
43
|
+
|
44
|
+
<% if heading_level %>
|
45
|
+
<%= content_tag(shared_helper.get_heading_level, class: "govuk-label-wrapper") do %>
|
46
|
+
<%= label_markup %>
|
47
|
+
<% end %>
|
48
|
+
<% else %>
|
49
|
+
<%= label_markup %>
|
50
|
+
<% end %>
|
34
51
|
<% end %>
|
35
52
|
|
36
53
|
<% if hint %>
|
@@ -48,3 +48,14 @@ examples:
|
|
48
48
|
text: "Upload an image"
|
49
49
|
name: "file-upload-specific"
|
50
50
|
accept: "image/*"
|
51
|
+
with_label_as_heading:
|
52
|
+
description: |
|
53
|
+
Wraps the label in a heading tag. Valid options are `1` to `6`. To adjust the size of the label/heading, use the `heading_size` option. Valid options are `s`, `m`, `l` and `xl`.
|
54
|
+
|
55
|
+
Based on the [heading/label pattern](https://design-system.service.gov.uk/patterns/question-pages/) in the GOV.UK Design System.
|
56
|
+
data:
|
57
|
+
label:
|
58
|
+
text: "This is a heading 1 and a label"
|
59
|
+
name: "name"
|
60
|
+
heading_level: 1
|
61
|
+
heading_size: "l"
|
@@ -105,6 +105,7 @@ module GovukPublishingComponents
|
|
105
105
|
{ content_type: "application/vnd.openxmlformats-officedocument.presentationml.presentation", name: "MS PowerPoint Presentation" }.freeze, # pptx
|
106
106
|
{ content_type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet", name: "MS Excel Spreadsheet", spreadsheet: true }.freeze, # xlsx
|
107
107
|
{ content_type: "application/vnd.openxmlformats-officedocument.wordprocessingml.document", name: "MS Word Document", document: true }.freeze, # docx
|
108
|
+
{ content_type: "application/zip", abbr: "ZIP", name: "Zip archive" }.freeze,
|
108
109
|
{ content_type: "application/xml", abbr: "XML", name: "XML Document" }.freeze,
|
109
110
|
{ content_type: "image/gif", abbr: "GIF", name: "Graphics Interchange Format" }.freeze,
|
110
111
|
{ content_type: "image/jpeg", name: "JPEG" }.freeze,
|
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: 36.0
|
4
|
+
version: 36.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- GOV.UK Dev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-12-
|
11
|
+
date: 2023-12-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: govuk_app_config
|