govuk_tech_docs 3.4.0 → 3.4.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (75) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +9 -1
  3. data/lib/assets/stylesheets/_govuk_tech_docs.scss +13 -0
  4. data/lib/govuk_tech_docs/version.rb +1 -1
  5. data/lib/source/favicon.ico +0 -0
  6. data/lib/source/layouts/_header.erb +13 -15
  7. data/node_modules/govuk-frontend/govuk/all-ie8.scss +8 -0
  8. data/node_modules/govuk-frontend/govuk/all.js +4918 -3796
  9. data/node_modules/govuk-frontend/govuk/common/closest-attribute-value.js +54 -49
  10. data/node_modules/govuk-frontend/govuk/common/govuk-frontend-version.js +17 -0
  11. data/node_modules/govuk-frontend/govuk/common/index.js +172 -152
  12. data/node_modules/govuk-frontend/govuk/common/normalise-dataset.js +334 -321
  13. data/node_modules/govuk-frontend/govuk/common.js +171 -151
  14. data/node_modules/govuk-frontend/govuk/components/_all.scss +3 -2
  15. data/node_modules/govuk-frontend/govuk/components/accordion/_index.scss +26 -7
  16. data/node_modules/govuk-frontend/govuk/components/accordion/accordion.js +2203 -1650
  17. data/node_modules/govuk-frontend/govuk/components/back-link/_index.scss +24 -16
  18. data/node_modules/govuk-frontend/govuk/components/breadcrumbs/_index.scss +34 -11
  19. data/node_modules/govuk-frontend/govuk/components/button/_index.scss +49 -9
  20. data/node_modules/govuk-frontend/govuk/components/button/button.js +961 -916
  21. data/node_modules/govuk-frontend/govuk/components/character-count/character-count.js +2142 -2038
  22. data/node_modules/govuk-frontend/govuk/components/checkboxes/_index.scss +6 -6
  23. data/node_modules/govuk-frontend/govuk/components/checkboxes/checkboxes.js +1204 -1145
  24. data/node_modules/govuk-frontend/govuk/components/details/details.js +826 -799
  25. data/node_modules/govuk-frontend/govuk/components/error-summary/error-summary.js +1097 -1044
  26. data/node_modules/govuk-frontend/govuk/components/exit-this-page/_exit-this-page.scss +2 -0
  27. data/node_modules/govuk-frontend/govuk/components/exit-this-page/_index.scss +97 -0
  28. data/node_modules/govuk-frontend/govuk/components/exit-this-page/exit-this-page.js +2120 -0
  29. data/node_modules/govuk-frontend/govuk/components/file-upload/_index.scss +6 -1
  30. data/node_modules/govuk-frontend/govuk/components/footer/_index.scss +0 -7
  31. data/node_modules/govuk-frontend/govuk/components/header/_index.scss +6 -0
  32. data/node_modules/govuk-frontend/govuk/components/header/header.js +683 -1003
  33. data/node_modules/govuk-frontend/govuk/components/input/_index.scss +15 -3
  34. data/node_modules/govuk-frontend/govuk/components/notification-banner/notification-banner.js +786 -751
  35. data/node_modules/govuk-frontend/govuk/components/radios/_index.scss +5 -5
  36. data/node_modules/govuk-frontend/govuk/components/radios/radios.js +1151 -1105
  37. data/node_modules/govuk-frontend/govuk/components/select/_index.scss +7 -1
  38. data/node_modules/govuk-frontend/govuk/components/skip-link/skip-link.js +1045 -1014
  39. data/node_modules/govuk-frontend/govuk/components/summary-list/_index.scss +107 -0
  40. data/node_modules/govuk-frontend/govuk/components/tabs/tabs.js +1514 -1268
  41. data/node_modules/govuk-frontend/govuk/components/tag/_index.scss +18 -18
  42. data/node_modules/govuk-frontend/govuk/components/textarea/_index.scss +8 -1
  43. data/node_modules/govuk-frontend/govuk/core/_all.scss +1 -0
  44. data/node_modules/govuk-frontend/govuk/core/_govuk-frontend-version.scss +5 -0
  45. data/node_modules/govuk-frontend/govuk/helpers/_colour.scss +5 -2
  46. data/node_modules/govuk-frontend/govuk/helpers/_focused.scss +1 -1
  47. data/node_modules/govuk-frontend/govuk/helpers/_font-faces.scss +1 -1
  48. data/node_modules/govuk-frontend/govuk/helpers/_visually-hidden.scss +12 -0
  49. data/node_modules/govuk-frontend/govuk/i18n.js +371 -364
  50. data/node_modules/govuk-frontend/govuk/objects/_template.scss +20 -0
  51. data/node_modules/govuk-frontend/govuk/objects/_width-container.scss +1 -1
  52. data/node_modules/govuk-frontend/govuk/settings/_colours-organisations.scss +4 -0
  53. data/node_modules/govuk-frontend/govuk/settings/_ie8.scss +16 -0
  54. data/node_modules/govuk-frontend/govuk/settings/_links.scss +5 -1
  55. data/node_modules/govuk-frontend/govuk/settings/_measurements.scss +5 -5
  56. data/node_modules/govuk-frontend/govuk/tools/_ie8.scss +38 -2
  57. data/node_modules/govuk-frontend/govuk/vendor/polyfills/DOMTokenList.js +243 -241
  58. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Date/now.js +14 -12
  59. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Document.js +18 -16
  60. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/classList.js +553 -545
  61. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/closest.js +40 -36
  62. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/dataset.js +257 -250
  63. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/matches.js +22 -20
  64. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/nextElementSibling.js +204 -197
  65. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element/prototype/previousElementSibling.js +204 -197
  66. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Element.js +109 -105
  67. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Event.js +407 -399
  68. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Function/prototype/bind.js +242 -238
  69. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Object/defineProperty.js +73 -71
  70. data/node_modules/govuk-frontend/govuk/vendor/polyfills/String/prototype/trim.js +15 -13
  71. data/node_modules/govuk-frontend/govuk/vendor/polyfills/Window.js +18 -16
  72. data/node_modules/govuk-frontend/govuk-prototype-kit/init.js +1 -0
  73. data/package-lock.json +7 -7
  74. data/package.json +1 -1
  75. metadata +8 -3
@@ -4,297 +4,304 @@
4
4
  (factory());
5
5
  }(this, (function () { 'use strict';
6
6
 
7
- (function(undefined) {
8
-
9
- // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Object/defineProperty/detect.js
10
- var detect = (
11
- // In IE8, defineProperty could only act on DOM elements, so full support
12
- // for the feature requires the ability to set a property on an arbitrary object
13
- 'defineProperty' in Object && (function() {
14
- try {
15
- var a = {};
16
- Object.defineProperty(a, 'test', {value:42});
17
- return true;
18
- } catch(e) {
19
- return false
20
- }
21
- }())
22
- );
23
-
24
- if (detect) return
25
-
26
- // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Object.defineProperty&flags=always
27
- (function (nativeDefineProperty) {
28
-
29
- var supportsAccessors = Object.prototype.hasOwnProperty('__defineGetter__');
30
- var ERR_ACCESSORS_NOT_SUPPORTED = 'Getters & setters cannot be defined on this javascript engine';
31
- var ERR_VALUE_ACCESSORS = 'A property cannot both have accessors and be writable or have a value';
32
-
33
- Object.defineProperty = function defineProperty(object, property, descriptor) {
34
-
35
- // Where native support exists, assume it
36
- if (nativeDefineProperty && (object === window || object === document || object === Element.prototype || object instanceof Element)) {
37
- return nativeDefineProperty(object, property, descriptor);
38
- }
7
+ // @ts-nocheck
8
+ (function (undefined) {
9
+
10
+ // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Object/defineProperty/detect.js
11
+ var detect = (
12
+ // In IE8, defineProperty could only act on DOM elements, so full support
13
+ // for the feature requires the ability to set a property on an arbitrary object
14
+ 'defineProperty' in Object && (function() {
15
+ try {
16
+ var a = {};
17
+ Object.defineProperty(a, 'test', {value:42});
18
+ return true;
19
+ } catch(e) {
20
+ return false
21
+ }
22
+ }())
23
+ );
24
+
25
+ if (detect) return
26
+
27
+ // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Object.defineProperty&flags=always
28
+ (function (nativeDefineProperty) {
29
+
30
+ var supportsAccessors = Object.prototype.hasOwnProperty('__defineGetter__');
31
+ var ERR_ACCESSORS_NOT_SUPPORTED = 'Getters & setters cannot be defined on this javascript engine';
32
+ var ERR_VALUE_ACCESSORS = 'A property cannot both have accessors and be writable or have a value';
33
+
34
+ Object.defineProperty = function defineProperty(object, property, descriptor) {
35
+
36
+ // Where native support exists, assume it
37
+ if (nativeDefineProperty && (object === window || object === document || object === Element.prototype || object instanceof Element)) {
38
+ return nativeDefineProperty(object, property, descriptor);
39
+ }
39
40
 
40
- if (object === null || !(object instanceof Object || typeof object === 'object')) {
41
- throw new TypeError('Object.defineProperty called on non-object');
42
- }
41
+ if (object === null || !(object instanceof Object || typeof object === 'object')) {
42
+ throw new TypeError('Object.defineProperty called on non-object');
43
+ }
43
44
 
44
- if (!(descriptor instanceof Object)) {
45
- throw new TypeError('Property description must be an object');
46
- }
45
+ if (!(descriptor instanceof Object)) {
46
+ throw new TypeError('Property description must be an object');
47
+ }
47
48
 
48
- var propertyString = String(property);
49
- var hasValueOrWritable = 'value' in descriptor || 'writable' in descriptor;
50
- var getterType = 'get' in descriptor && typeof descriptor.get;
51
- var setterType = 'set' in descriptor && typeof descriptor.set;
49
+ var propertyString = String(property);
50
+ var hasValueOrWritable = 'value' in descriptor || 'writable' in descriptor;
51
+ var getterType = 'get' in descriptor && typeof descriptor.get;
52
+ var setterType = 'set' in descriptor && typeof descriptor.set;
52
53
 
53
- // handle descriptor.get
54
- if (getterType) {
55
- if (getterType !== 'function') {
56
- throw new TypeError('Getter must be a function');
57
- }
58
- if (!supportsAccessors) {
59
- throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
60
- }
61
- if (hasValueOrWritable) {
62
- throw new TypeError(ERR_VALUE_ACCESSORS);
54
+ // handle descriptor.get
55
+ if (getterType) {
56
+ if (getterType !== 'function') {
57
+ throw new TypeError('Getter must be a function');
58
+ }
59
+ if (!supportsAccessors) {
60
+ throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
61
+ }
62
+ if (hasValueOrWritable) {
63
+ throw new TypeError(ERR_VALUE_ACCESSORS);
64
+ }
65
+ Object.__defineGetter__.call(object, propertyString, descriptor.get);
66
+ } else {
67
+ object[propertyString] = descriptor.value;
63
68
  }
64
- Object.__defineGetter__.call(object, propertyString, descriptor.get);
65
- } else {
66
- object[propertyString] = descriptor.value;
67
- }
68
69
 
69
- // handle descriptor.set
70
- if (setterType) {
71
- if (setterType !== 'function') {
72
- throw new TypeError('Setter must be a function');
73
- }
74
- if (!supportsAccessors) {
75
- throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
76
- }
77
- if (hasValueOrWritable) {
78
- throw new TypeError(ERR_VALUE_ACCESSORS);
70
+ // handle descriptor.set
71
+ if (setterType) {
72
+ if (setterType !== 'function') {
73
+ throw new TypeError('Setter must be a function');
74
+ }
75
+ if (!supportsAccessors) {
76
+ throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
77
+ }
78
+ if (hasValueOrWritable) {
79
+ throw new TypeError(ERR_VALUE_ACCESSORS);
80
+ }
81
+ Object.__defineSetter__.call(object, propertyString, descriptor.set);
79
82
  }
80
- Object.__defineSetter__.call(object, propertyString, descriptor.set);
81
- }
82
83
 
83
- // OK to define value unconditionally - if a getter has been specified as well, an error would be thrown above
84
- if ('value' in descriptor) {
85
- object[propertyString] = descriptor.value;
86
- }
84
+ // OK to define value unconditionally - if a getter has been specified as well, an error would be thrown above
85
+ if ('value' in descriptor) {
86
+ object[propertyString] = descriptor.value;
87
+ }
87
88
 
88
- return object;
89
- };
90
- }(Object.defineProperty));
91
- })
92
- .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
89
+ return object;
90
+ };
91
+ }(Object.defineProperty));
92
+ })
93
+ .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
93
94
 
94
- (function(undefined) {
95
+ // @ts-nocheck
96
+ (function (undefined) {
95
97
 
96
- // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Document/detect.js
97
- var detect = ("Document" in this);
98
+ // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Document/detect.js
99
+ var detect = ("Document" in this);
98
100
 
99
- if (detect) return
101
+ if (detect) return
100
102
 
101
- // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Document&flags=always
102
- if ((typeof WorkerGlobalScope === "undefined") && (typeof importScripts !== "function")) {
103
+ // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Document&flags=always
104
+ if ((typeof WorkerGlobalScope === "undefined") && (typeof importScripts !== "function")) {
103
105
 
104
- if (this.HTMLDocument) { // IE8
106
+ if (this.HTMLDocument) { // IE8
105
107
 
106
- // HTMLDocument is an extension of Document. If the browser has HTMLDocument but not Document, the former will suffice as an alias for the latter.
107
- this.Document = this.HTMLDocument;
108
+ // HTMLDocument is an extension of Document. If the browser has HTMLDocument but not Document, the former will suffice as an alias for the latter.
109
+ this.Document = this.HTMLDocument;
108
110
 
109
- } else {
111
+ } else {
110
112
 
111
- // Create an empty function to act as the missing constructor for the document object, attach the document object as its prototype. The function needs to be anonymous else it is hoisted and causes the feature detect to prematurely pass, preventing the assignments below being made.
112
- this.Document = this.HTMLDocument = document.constructor = (new Function('return function Document() {}')());
113
- this.Document.prototype = document;
113
+ // Create an empty function to act as the missing constructor for the document object, attach the document object as its prototype. The function needs to be anonymous else it is hoisted and causes the feature detect to prematurely pass, preventing the assignments below being made.
114
+ this.Document = this.HTMLDocument = document.constructor = (new Function('return function Document() {}')());
115
+ this.Document.prototype = document;
116
+ }
114
117
  }
115
- }
116
118
 
117
119
 
118
- })
119
- .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
120
+ })
121
+ .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
120
122
 
121
- (function(undefined) {
123
+ // @ts-nocheck
122
124
 
123
- // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Element/detect.js
124
- var detect = ('Element' in this && 'HTMLElement' in this);
125
+ (function(undefined) {
125
126
 
126
- if (detect) return
127
+ // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Element/detect.js
128
+ var detect = ('Element' in this && 'HTMLElement' in this);
127
129
 
128
- // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Element&flags=always
129
- (function () {
130
+ if (detect) return
130
131
 
131
- // IE8
132
- if (window.Element && !window.HTMLElement) {
133
- window.HTMLElement = window.Element;
134
- return;
135
- }
132
+ // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Element&flags=always
133
+ (function () {
136
134
 
137
- // create Element constructor
138
- window.Element = window.HTMLElement = new Function('return function Element() {}')();
135
+ // IE8
136
+ if (window.Element && !window.HTMLElement) {
137
+ window.HTMLElement = window.Element;
138
+ return;
139
+ }
140
+
141
+ // create Element constructor
142
+ window.Element = window.HTMLElement = new Function('return function Element() {}')();
139
143
 
140
- // generate sandboxed iframe
141
- var vbody = document.appendChild(document.createElement('body'));
142
- var frame = vbody.appendChild(document.createElement('iframe'));
144
+ // generate sandboxed iframe
145
+ var vbody = document.appendChild(document.createElement('body'));
146
+ var frame = vbody.appendChild(document.createElement('iframe'));
143
147
 
144
- // use sandboxed iframe to replicate Element functionality
145
- var frameDocument = frame.contentWindow.document;
146
- var prototype = Element.prototype = frameDocument.appendChild(frameDocument.createElement('*'));
147
- var cache = {};
148
+ // use sandboxed iframe to replicate Element functionality
149
+ var frameDocument = frame.contentWindow.document;
150
+ var prototype = Element.prototype = frameDocument.appendChild(frameDocument.createElement('*'));
151
+ var cache = {};
148
152
 
149
- // polyfill Element.prototype on an element
150
- var shiv = function (element, deep) {
151
- var
152
- childNodes = element.childNodes || [],
153
- index = -1,
154
- key, value, childNode;
153
+ // polyfill Element.prototype on an element
154
+ var shiv = function (element, deep) {
155
+ var
156
+ childNodes = element.childNodes || [],
157
+ index = -1,
158
+ key, value, childNode;
155
159
 
156
- if (element.nodeType === 1 && element.constructor !== Element) {
157
- element.constructor = Element;
160
+ if (element.nodeType === 1 && element.constructor !== Element) {
161
+ element.constructor = Element;
158
162
 
159
- for (key in cache) {
160
- value = cache[key];
161
- element[key] = value;
163
+ for (key in cache) {
164
+ value = cache[key];
165
+ element[key] = value;
166
+ }
162
167
  }
163
- }
164
168
 
165
- while (childNode = deep && childNodes[++index]) {
166
- shiv(childNode, deep);
167
- }
169
+ while (childNode = deep && childNodes[++index]) {
170
+ shiv(childNode, deep);
171
+ }
172
+
173
+ return element;
174
+ };
168
175
 
169
- return element;
170
- };
171
-
172
- var elements = document.getElementsByTagName('*');
173
- var nativeCreateElement = document.createElement;
174
- var interval;
175
- var loopLimit = 100;
176
-
177
- prototype.attachEvent('onpropertychange', function (event) {
178
- var
179
- propertyName = event.propertyName,
180
- nonValue = !cache.hasOwnProperty(propertyName),
181
- newValue = prototype[propertyName],
182
- oldValue = cache[propertyName],
183
- index = -1,
184
- element;
185
-
186
- while (element = elements[++index]) {
187
- if (element.nodeType === 1) {
188
- if (nonValue || element[propertyName] === oldValue) {
189
- element[propertyName] = newValue;
176
+ var elements = document.getElementsByTagName('*');
177
+ var nativeCreateElement = document.createElement;
178
+ var interval;
179
+ var loopLimit = 100;
180
+
181
+ prototype.attachEvent('onpropertychange', function (event) {
182
+ var
183
+ propertyName = event.propertyName,
184
+ nonValue = !cache.hasOwnProperty(propertyName),
185
+ newValue = prototype[propertyName],
186
+ oldValue = cache[propertyName],
187
+ index = -1,
188
+ element;
189
+
190
+ while (element = elements[++index]) {
191
+ if (element.nodeType === 1) {
192
+ if (nonValue || element[propertyName] === oldValue) {
193
+ element[propertyName] = newValue;
194
+ }
190
195
  }
191
196
  }
192
- }
193
197
 
194
- cache[propertyName] = newValue;
195
- });
198
+ cache[propertyName] = newValue;
199
+ });
196
200
 
197
- prototype.constructor = Element;
201
+ prototype.constructor = Element;
198
202
 
199
- if (!prototype.hasAttribute) {
200
- // <Element>.hasAttribute
201
- prototype.hasAttribute = function hasAttribute(name) {
202
- return this.getAttribute(name) !== null;
203
- };
204
- }
203
+ if (!prototype.hasAttribute) {
204
+ // <Element>.hasAttribute
205
+ prototype.hasAttribute = function hasAttribute(name) {
206
+ return this.getAttribute(name) !== null;
207
+ };
208
+ }
205
209
 
206
- // Apply Element prototype to the pre-existing DOM as soon as the body element appears.
207
- function bodyCheck() {
208
- if (!(loopLimit--)) clearTimeout(interval);
209
- if (document.body && !document.body.prototype && /(complete|interactive)/.test(document.readyState)) {
210
- shiv(document, true);
211
- if (interval && document.body.prototype) clearTimeout(interval);
212
- return (!!document.body.prototype);
210
+ // Apply Element prototype to the pre-existing DOM as soon as the body element appears.
211
+ function bodyCheck() {
212
+ if (!(loopLimit--)) clearTimeout(interval);
213
+ if (document.body && !document.body.prototype && /(complete|interactive)/.test(document.readyState)) {
214
+ shiv(document, true);
215
+ if (interval && document.body.prototype) clearTimeout(interval);
216
+ return (!!document.body.prototype);
217
+ }
218
+ return false;
213
219
  }
214
- return false;
215
- }
216
- if (!bodyCheck()) {
217
- document.onreadystatechange = bodyCheck;
218
- interval = setInterval(bodyCheck, 25);
219
- }
220
+ if (!bodyCheck()) {
221
+ document.onreadystatechange = bodyCheck;
222
+ interval = setInterval(bodyCheck, 25);
223
+ }
224
+
225
+ // Apply to any new elements created after load
226
+ document.createElement = function createElement(nodeName) {
227
+ var element = nativeCreateElement(String(nodeName).toLowerCase());
228
+ return shiv(element);
229
+ };
220
230
 
221
- // Apply to any new elements created after load
222
- document.createElement = function createElement(nodeName) {
223
- var element = nativeCreateElement(String(nodeName).toLowerCase());
224
- return shiv(element);
225
- };
226
-
227
- // remove sandboxed iframe
228
- document.removeChild(vbody);
229
- }());
230
-
231
- })
232
- .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
233
-
234
- (function(undefined) {
235
-
236
- // Detection from https://raw.githubusercontent.com/Financial-Times/polyfill-library/13cf7c340974d128d557580b5e2dafcd1b1192d1/polyfills/Element/prototype/dataset/detect.js
237
- var detect = (function(){
238
- if (!document.documentElement.dataset) {
239
- return false;
240
- }
241
- var el = document.createElement('div');
242
- el.setAttribute("data-a-b", "c");
243
- return el.dataset && el.dataset.aB == "c";
244
- }());
245
-
246
- if (detect) return
247
-
248
- // Polyfill derived from https://raw.githubusercontent.com/Financial-Times/polyfill-library/13cf7c340974d128d557580b5e2dafcd1b1192d1/polyfills/Element/prototype/dataset/polyfill.js
249
- Object.defineProperty(Element.prototype, 'dataset', {
250
- get: function() {
251
- var element = this;
252
- var attributes = this.attributes;
253
- var map = {};
254
-
255
- for (var i = 0; i < attributes.length; i++) {
256
- var attribute = attributes[i];
257
-
258
- // This regex has been edited from the original polyfill, to add
259
- // support for period (.) separators in data-* attribute names. These
260
- // are allowed in the HTML spec, but were not covered by the original
261
- // polyfill's regex. We use periods in our i18n implementation.
262
- if (attribute && attribute.name && (/^data-\w[.\w-]*$/).test(attribute.name)) {
263
- var name = attribute.name;
264
- var value = attribute.value;
265
-
266
- var propName = name.substr(5).replace(/-./g, function (prop) {
267
- return prop.charAt(1).toUpperCase();
268
- });
269
-
270
- // If this browser supports __defineGetter__ and __defineSetter__,
271
- // continue using defineProperty. If not (like IE 8 and below), we use
272
- // a hacky fallback which at least gives an object in the right format
273
- if ('__defineGetter__' in Object.prototype && '__defineSetter__' in Object.prototype) {
274
- Object.defineProperty(map, propName, {
275
- enumerable: true,
276
- get: function() {
277
- return this.value;
278
- }.bind({value: value || ''}),
279
- set: function setter(name, value) {
280
- if (typeof value !== 'undefined') {
281
- this.setAttribute(name, value);
282
- } else {
283
- this.removeAttribute(name);
284
- }
285
- }.bind(element, name)
286
- });
287
- } else {
288
- map[propName] = value;
289
- }
290
-
291
- }
292
- }
293
-
294
- return map;
295
- }
296
- });
297
-
298
- }).call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
231
+ // remove sandboxed iframe
232
+ document.removeChild(vbody);
233
+ }());
234
+
235
+ })
236
+ .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
237
+
238
+ // @ts-nocheck
239
+
240
+ (function(undefined) {
241
+
242
+ // Detection from https://raw.githubusercontent.com/Financial-Times/polyfill-library/13cf7c340974d128d557580b5e2dafcd1b1192d1/polyfills/Element/prototype/dataset/detect.js
243
+ var detect = (function(){
244
+ if (!document.documentElement.dataset) {
245
+ return false;
246
+ }
247
+ var el = document.createElement('div');
248
+ el.setAttribute("data-a-b", "c");
249
+ return el.dataset && el.dataset.aB == "c";
250
+ }());
251
+
252
+ if (detect) return
253
+
254
+ // Polyfill derived from https://raw.githubusercontent.com/Financial-Times/polyfill-library/13cf7c340974d128d557580b5e2dafcd1b1192d1/polyfills/Element/prototype/dataset/polyfill.js
255
+ Object.defineProperty(Element.prototype, 'dataset', {
256
+ get: function() {
257
+ var element = this;
258
+ var attributes = this.attributes;
259
+ var map = {};
260
+
261
+ for (var i = 0; i < attributes.length; i++) {
262
+ var attribute = attributes[i];
263
+
264
+ // This regex has been edited from the original polyfill, to add
265
+ // support for period (.) separators in data-* attribute names. These
266
+ // are allowed in the HTML spec, but were not covered by the original
267
+ // polyfill's regex. We use periods in our i18n implementation.
268
+ if (attribute && attribute.name && (/^data-\w[.\w-]*$/).test(attribute.name)) {
269
+ var name = attribute.name;
270
+ var value = attribute.value;
271
+
272
+ var propName = name.substr(5).replace(/-./g, function (prop) {
273
+ return prop.charAt(1).toUpperCase();
274
+ });
275
+
276
+ // If this browser supports __defineGetter__ and __defineSetter__,
277
+ // continue using defineProperty. If not (like IE 8 and below), we use
278
+ // a hacky fallback which at least gives an object in the right format
279
+ if ('__defineGetter__' in Object.prototype && '__defineSetter__' in Object.prototype) {
280
+ Object.defineProperty(map, propName, {
281
+ enumerable: true,
282
+ get: function() {
283
+ return this.value;
284
+ }.bind({value: value || ''}),
285
+ set: function setter(name, value) {
286
+ if (typeof value !== 'undefined') {
287
+ this.setAttribute(name, value);
288
+ } else {
289
+ this.removeAttribute(name);
290
+ }
291
+ }.bind(element, name)
292
+ });
293
+ } else {
294
+ map[propName] = value;
295
+ }
296
+
297
+ }
298
+ }
299
+
300
+ return map;
301
+ }
302
+ });
303
+
304
+ }).call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
299
305
 
300
306
  })));
307
+ //# sourceMappingURL=dataset.js.map
@@ -1,31 +1,33 @@
1
1
  (function (global, factory) {
2
- typeof exports === 'object' && typeof module !== 'undefined' ? factory() :
3
- typeof define === 'function' && define.amd ? define('GOVUKFrontend', factory) :
4
- (factory());
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? factory() :
3
+ typeof define === 'function' && define.amd ? define('GOVUKFrontend', factory) :
4
+ (factory());
5
5
  }(this, (function () { 'use strict';
6
6
 
7
- (function(undefined) {
7
+ // @ts-nocheck
8
+ (function (undefined) {
8
9
 
9
- // Detection from https://raw.githubusercontent.com/Financial-Times/polyfill-service/1f3c09b402f65bf6e393f933a15ba63f1b86ef1f/packages/polyfill-library/polyfills/Element/prototype/matches/detect.js
10
- var detect = (
11
- 'document' in this && "matches" in document.documentElement
12
- );
10
+ // Detection from https://raw.githubusercontent.com/Financial-Times/polyfill-service/1f3c09b402f65bf6e393f933a15ba63f1b86ef1f/packages/polyfill-library/polyfills/Element/prototype/matches/detect.js
11
+ var detect = (
12
+ 'document' in this && "matches" in document.documentElement
13
+ );
13
14
 
14
- if (detect) return
15
+ if (detect) return
15
16
 
16
- // Polyfill from https://raw.githubusercontent.com/Financial-Times/polyfill-service/1f3c09b402f65bf6e393f933a15ba63f1b86ef1f/packages/polyfill-library/polyfills/Element/prototype/matches/polyfill.js
17
- Element.prototype.matches = Element.prototype.webkitMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.mozMatchesSelector || function matches(selector) {
18
- var element = this;
19
- var elements = (element.document || element.ownerDocument).querySelectorAll(selector);
20
- var index = 0;
17
+ // Polyfill from https://raw.githubusercontent.com/Financial-Times/polyfill-service/1f3c09b402f65bf6e393f933a15ba63f1b86ef1f/packages/polyfill-library/polyfills/Element/prototype/matches/polyfill.js
18
+ Element.prototype.matches = Element.prototype.webkitMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.mozMatchesSelector || function matches(selector) {
19
+ var element = this;
20
+ var elements = (element.document || element.ownerDocument).querySelectorAll(selector);
21
+ var index = 0;
21
22
 
22
- while (elements[index] && elements[index] !== element) {
23
- ++index;
24
- }
23
+ while (elements[index] && elements[index] !== element) {
24
+ ++index;
25
+ }
25
26
 
26
- return !!elements[index];
27
- };
27
+ return !!elements[index];
28
+ };
28
29
 
29
- }).call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
30
+ }).call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
30
31
 
31
32
  })));
33
+ //# sourceMappingURL=matches.js.map