govuk_tech_docs 3.4.0 → 3.5.0

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 +10 -0
  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,501 +4,509 @@
4
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://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Window/detect.js
10
- var detect = ('Window' in this);
10
+ // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Window/detect.js
11
+ var detect = ('Window' in this);
11
12
 
12
- if (detect) return
13
+ if (detect) return
13
14
 
14
- // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Window&flags=always
15
- if ((typeof WorkerGlobalScope === "undefined") && (typeof importScripts !== "function")) {
16
- (function (global) {
17
- if (global.constructor) {
18
- global.Window = global.constructor;
19
- } else {
20
- (global.Window = global.constructor = new Function('return function Window() {}')()).prototype = this;
21
- }
22
- }(this));
23
- }
15
+ // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Window&flags=always
16
+ if ((typeof WorkerGlobalScope === "undefined") && (typeof importScripts !== "function")) {
17
+ (function (global) {
18
+ if (global.constructor) {
19
+ global.Window = global.constructor;
20
+ } else {
21
+ (global.Window = global.constructor = new Function('return function Window() {}')()).prototype = this;
22
+ }
23
+ }(this));
24
+ }
24
25
 
25
- })
26
- .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
26
+ })
27
+ .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
27
28
 
28
- (function(undefined) {
29
+ // @ts-nocheck
30
+ (function (undefined) {
29
31
 
30
- // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Document/detect.js
31
- var detect = ("Document" in this);
32
+ // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Document/detect.js
33
+ var detect = ("Document" in this);
32
34
 
33
- if (detect) return
35
+ if (detect) return
34
36
 
35
- // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Document&flags=always
36
- if ((typeof WorkerGlobalScope === "undefined") && (typeof importScripts !== "function")) {
37
+ // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Document&flags=always
38
+ if ((typeof WorkerGlobalScope === "undefined") && (typeof importScripts !== "function")) {
37
39
 
38
- if (this.HTMLDocument) { // IE8
40
+ if (this.HTMLDocument) { // IE8
39
41
 
40
- // HTMLDocument is an extension of Document. If the browser has HTMLDocument but not Document, the former will suffice as an alias for the latter.
41
- this.Document = this.HTMLDocument;
42
+ // HTMLDocument is an extension of Document. If the browser has HTMLDocument but not Document, the former will suffice as an alias for the latter.
43
+ this.Document = this.HTMLDocument;
42
44
 
43
- } else {
45
+ } else {
44
46
 
45
- // 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.
46
- this.Document = this.HTMLDocument = document.constructor = (new Function('return function Document() {}')());
47
- this.Document.prototype = document;
47
+ // 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.
48
+ this.Document = this.HTMLDocument = document.constructor = (new Function('return function Document() {}')());
49
+ this.Document.prototype = document;
50
+ }
48
51
  }
49
- }
50
52
 
51
53
 
52
- })
53
- .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
54
+ })
55
+ .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
54
56
 
55
- (function(undefined) {
57
+ // @ts-nocheck
56
58
 
57
- // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Element/detect.js
58
- var detect = ('Element' in this && 'HTMLElement' in this);
59
+ (function(undefined) {
59
60
 
60
- if (detect) return
61
+ // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Element/detect.js
62
+ var detect = ('Element' in this && 'HTMLElement' in this);
61
63
 
62
- // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Element&flags=always
63
- (function () {
64
+ if (detect) return
64
65
 
65
- // IE8
66
- if (window.Element && !window.HTMLElement) {
67
- window.HTMLElement = window.Element;
68
- return;
69
- }
66
+ // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Element&flags=always
67
+ (function () {
70
68
 
71
- // create Element constructor
72
- window.Element = window.HTMLElement = new Function('return function Element() {}')();
69
+ // IE8
70
+ if (window.Element && !window.HTMLElement) {
71
+ window.HTMLElement = window.Element;
72
+ return;
73
+ }
74
+
75
+ // create Element constructor
76
+ window.Element = window.HTMLElement = new Function('return function Element() {}')();
73
77
 
74
- // generate sandboxed iframe
75
- var vbody = document.appendChild(document.createElement('body'));
76
- var frame = vbody.appendChild(document.createElement('iframe'));
78
+ // generate sandboxed iframe
79
+ var vbody = document.appendChild(document.createElement('body'));
80
+ var frame = vbody.appendChild(document.createElement('iframe'));
77
81
 
78
- // use sandboxed iframe to replicate Element functionality
79
- var frameDocument = frame.contentWindow.document;
80
- var prototype = Element.prototype = frameDocument.appendChild(frameDocument.createElement('*'));
81
- var cache = {};
82
+ // use sandboxed iframe to replicate Element functionality
83
+ var frameDocument = frame.contentWindow.document;
84
+ var prototype = Element.prototype = frameDocument.appendChild(frameDocument.createElement('*'));
85
+ var cache = {};
82
86
 
83
- // polyfill Element.prototype on an element
84
- var shiv = function (element, deep) {
85
- var
86
- childNodes = element.childNodes || [],
87
- index = -1,
88
- key, value, childNode;
87
+ // polyfill Element.prototype on an element
88
+ var shiv = function (element, deep) {
89
+ var
90
+ childNodes = element.childNodes || [],
91
+ index = -1,
92
+ key, value, childNode;
89
93
 
90
- if (element.nodeType === 1 && element.constructor !== Element) {
91
- element.constructor = Element;
94
+ if (element.nodeType === 1 && element.constructor !== Element) {
95
+ element.constructor = Element;
92
96
 
93
- for (key in cache) {
94
- value = cache[key];
95
- element[key] = value;
97
+ for (key in cache) {
98
+ value = cache[key];
99
+ element[key] = value;
100
+ }
96
101
  }
97
- }
98
102
 
99
- while (childNode = deep && childNodes[++index]) {
100
- shiv(childNode, deep);
101
- }
103
+ while (childNode = deep && childNodes[++index]) {
104
+ shiv(childNode, deep);
105
+ }
102
106
 
103
- return element;
104
- };
105
-
106
- var elements = document.getElementsByTagName('*');
107
- var nativeCreateElement = document.createElement;
108
- var interval;
109
- var loopLimit = 100;
110
-
111
- prototype.attachEvent('onpropertychange', function (event) {
112
- var
113
- propertyName = event.propertyName,
114
- nonValue = !cache.hasOwnProperty(propertyName),
115
- newValue = prototype[propertyName],
116
- oldValue = cache[propertyName],
117
- index = -1,
118
- element;
119
-
120
- while (element = elements[++index]) {
121
- if (element.nodeType === 1) {
122
- if (nonValue || element[propertyName] === oldValue) {
123
- element[propertyName] = newValue;
107
+ return element;
108
+ };
109
+
110
+ var elements = document.getElementsByTagName('*');
111
+ var nativeCreateElement = document.createElement;
112
+ var interval;
113
+ var loopLimit = 100;
114
+
115
+ prototype.attachEvent('onpropertychange', function (event) {
116
+ var
117
+ propertyName = event.propertyName,
118
+ nonValue = !cache.hasOwnProperty(propertyName),
119
+ newValue = prototype[propertyName],
120
+ oldValue = cache[propertyName],
121
+ index = -1,
122
+ element;
123
+
124
+ while (element = elements[++index]) {
125
+ if (element.nodeType === 1) {
126
+ if (nonValue || element[propertyName] === oldValue) {
127
+ element[propertyName] = newValue;
128
+ }
124
129
  }
125
130
  }
126
- }
127
-
128
- cache[propertyName] = newValue;
129
- });
130
131
 
131
- prototype.constructor = Element;
132
+ cache[propertyName] = newValue;
133
+ });
132
134
 
133
- if (!prototype.hasAttribute) {
134
- // <Element>.hasAttribute
135
- prototype.hasAttribute = function hasAttribute(name) {
136
- return this.getAttribute(name) !== null;
137
- };
138
- }
135
+ prototype.constructor = Element;
139
136
 
140
- // Apply Element prototype to the pre-existing DOM as soon as the body element appears.
141
- function bodyCheck() {
142
- if (!(loopLimit--)) clearTimeout(interval);
143
- if (document.body && !document.body.prototype && /(complete|interactive)/.test(document.readyState)) {
144
- shiv(document, true);
145
- if (interval && document.body.prototype) clearTimeout(interval);
146
- return (!!document.body.prototype);
137
+ if (!prototype.hasAttribute) {
138
+ // <Element>.hasAttribute
139
+ prototype.hasAttribute = function hasAttribute(name) {
140
+ return this.getAttribute(name) !== null;
141
+ };
147
142
  }
148
- return false;
149
- }
150
- if (!bodyCheck()) {
151
- document.onreadystatechange = bodyCheck;
152
- interval = setInterval(bodyCheck, 25);
153
- }
154
143
 
155
- // Apply to any new elements created after load
156
- document.createElement = function createElement(nodeName) {
157
- var element = nativeCreateElement(String(nodeName).toLowerCase());
158
- return shiv(element);
159
- };
160
-
161
- // remove sandboxed iframe
162
- document.removeChild(vbody);
163
- }());
164
-
165
- })
166
- .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
167
-
168
- (function(undefined) {
169
-
170
- // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Object/defineProperty/detect.js
171
- var detect = (
172
- // In IE8, defineProperty could only act on DOM elements, so full support
173
- // for the feature requires the ability to set a property on an arbitrary object
174
- 'defineProperty' in Object && (function() {
175
- try {
176
- var a = {};
177
- Object.defineProperty(a, 'test', {value:42});
178
- return true;
179
- } catch(e) {
180
- return false
181
- }
182
- }())
183
- );
184
-
185
- if (detect) return
186
-
187
- // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Object.defineProperty&flags=always
188
- (function (nativeDefineProperty) {
189
-
190
- var supportsAccessors = Object.prototype.hasOwnProperty('__defineGetter__');
191
- var ERR_ACCESSORS_NOT_SUPPORTED = 'Getters & setters cannot be defined on this javascript engine';
192
- var ERR_VALUE_ACCESSORS = 'A property cannot both have accessors and be writable or have a value';
193
-
194
- Object.defineProperty = function defineProperty(object, property, descriptor) {
195
-
196
- // Where native support exists, assume it
197
- if (nativeDefineProperty && (object === window || object === document || object === Element.prototype || object instanceof Element)) {
198
- return nativeDefineProperty(object, property, descriptor);
144
+ // Apply Element prototype to the pre-existing DOM as soon as the body element appears.
145
+ function bodyCheck() {
146
+ if (!(loopLimit--)) clearTimeout(interval);
147
+ if (document.body && !document.body.prototype && /(complete|interactive)/.test(document.readyState)) {
148
+ shiv(document, true);
149
+ if (interval && document.body.prototype) clearTimeout(interval);
150
+ return (!!document.body.prototype);
151
+ }
152
+ return false;
199
153
  }
200
-
201
- if (object === null || !(object instanceof Object || typeof object === 'object')) {
202
- throw new TypeError('Object.defineProperty called on non-object');
154
+ if (!bodyCheck()) {
155
+ document.onreadystatechange = bodyCheck;
156
+ interval = setInterval(bodyCheck, 25);
203
157
  }
204
158
 
205
- if (!(descriptor instanceof Object)) {
206
- throw new TypeError('Property description must be an object');
207
- }
159
+ // Apply to any new elements created after load
160
+ document.createElement = function createElement(nodeName) {
161
+ var element = nativeCreateElement(String(nodeName).toLowerCase());
162
+ return shiv(element);
163
+ };
208
164
 
209
- var propertyString = String(property);
210
- var hasValueOrWritable = 'value' in descriptor || 'writable' in descriptor;
211
- var getterType = 'get' in descriptor && typeof descriptor.get;
212
- var setterType = 'set' in descriptor && typeof descriptor.set;
165
+ // remove sandboxed iframe
166
+ document.removeChild(vbody);
167
+ }());
168
+
169
+ })
170
+ .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
171
+
172
+ // @ts-nocheck
173
+ (function (undefined) {
174
+
175
+ // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Object/defineProperty/detect.js
176
+ var detect = (
177
+ // In IE8, defineProperty could only act on DOM elements, so full support
178
+ // for the feature requires the ability to set a property on an arbitrary object
179
+ 'defineProperty' in Object && (function() {
180
+ try {
181
+ var a = {};
182
+ Object.defineProperty(a, 'test', {value:42});
183
+ return true;
184
+ } catch(e) {
185
+ return false
186
+ }
187
+ }())
188
+ );
189
+
190
+ if (detect) return
191
+
192
+ // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Object.defineProperty&flags=always
193
+ (function (nativeDefineProperty) {
194
+
195
+ var supportsAccessors = Object.prototype.hasOwnProperty('__defineGetter__');
196
+ var ERR_ACCESSORS_NOT_SUPPORTED = 'Getters & setters cannot be defined on this javascript engine';
197
+ var ERR_VALUE_ACCESSORS = 'A property cannot both have accessors and be writable or have a value';
198
+
199
+ Object.defineProperty = function defineProperty(object, property, descriptor) {
200
+
201
+ // Where native support exists, assume it
202
+ if (nativeDefineProperty && (object === window || object === document || object === Element.prototype || object instanceof Element)) {
203
+ return nativeDefineProperty(object, property, descriptor);
204
+ }
213
205
 
214
- // handle descriptor.get
215
- if (getterType) {
216
- if (getterType !== 'function') {
217
- throw new TypeError('Getter must be a function');
206
+ if (object === null || !(object instanceof Object || typeof object === 'object')) {
207
+ throw new TypeError('Object.defineProperty called on non-object');
218
208
  }
219
- if (!supportsAccessors) {
220
- throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
209
+
210
+ if (!(descriptor instanceof Object)) {
211
+ throw new TypeError('Property description must be an object');
221
212
  }
222
- if (hasValueOrWritable) {
223
- throw new TypeError(ERR_VALUE_ACCESSORS);
213
+
214
+ var propertyString = String(property);
215
+ var hasValueOrWritable = 'value' in descriptor || 'writable' in descriptor;
216
+ var getterType = 'get' in descriptor && typeof descriptor.get;
217
+ var setterType = 'set' in descriptor && typeof descriptor.set;
218
+
219
+ // handle descriptor.get
220
+ if (getterType) {
221
+ if (getterType !== 'function') {
222
+ throw new TypeError('Getter must be a function');
223
+ }
224
+ if (!supportsAccessors) {
225
+ throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
226
+ }
227
+ if (hasValueOrWritable) {
228
+ throw new TypeError(ERR_VALUE_ACCESSORS);
229
+ }
230
+ Object.__defineGetter__.call(object, propertyString, descriptor.get);
231
+ } else {
232
+ object[propertyString] = descriptor.value;
224
233
  }
225
- Object.__defineGetter__.call(object, propertyString, descriptor.get);
226
- } else {
227
- object[propertyString] = descriptor.value;
228
- }
229
234
 
230
- // handle descriptor.set
231
- if (setterType) {
232
- if (setterType !== 'function') {
233
- throw new TypeError('Setter must be a function');
235
+ // handle descriptor.set
236
+ if (setterType) {
237
+ if (setterType !== 'function') {
238
+ throw new TypeError('Setter must be a function');
239
+ }
240
+ if (!supportsAccessors) {
241
+ throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
242
+ }
243
+ if (hasValueOrWritable) {
244
+ throw new TypeError(ERR_VALUE_ACCESSORS);
245
+ }
246
+ Object.__defineSetter__.call(object, propertyString, descriptor.set);
234
247
  }
235
- if (!supportsAccessors) {
236
- throw new TypeError(ERR_ACCESSORS_NOT_SUPPORTED);
248
+
249
+ // OK to define value unconditionally - if a getter has been specified as well, an error would be thrown above
250
+ if ('value' in descriptor) {
251
+ object[propertyString] = descriptor.value;
237
252
  }
238
- if (hasValueOrWritable) {
239
- throw new TypeError(ERR_VALUE_ACCESSORS);
253
+
254
+ return object;
255
+ };
256
+ }(Object.defineProperty));
257
+ })
258
+ .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
259
+
260
+ // @ts-nocheck
261
+
262
+ (function(undefined) {
263
+
264
+ // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Event/detect.js
265
+ var detect = (
266
+ (function(global) {
267
+
268
+ if (!('Event' in global)) return false;
269
+ if (typeof global.Event === 'function') return true;
270
+
271
+ try {
272
+
273
+ // In IE 9-11, the Event object exists but cannot be instantiated
274
+ new Event('click');
275
+ return true;
276
+ } catch(e) {
277
+ return false;
278
+ }
279
+ }(this))
280
+ );
281
+
282
+ if (detect) return
283
+
284
+ // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Event&flags=always
285
+ (function () {
286
+ var unlistenableWindowEvents = {
287
+ click: 1,
288
+ dblclick: 1,
289
+ keyup: 1,
290
+ keypress: 1,
291
+ keydown: 1,
292
+ mousedown: 1,
293
+ mouseup: 1,
294
+ mousemove: 1,
295
+ mouseover: 1,
296
+ mouseenter: 1,
297
+ mouseleave: 1,
298
+ mouseout: 1,
299
+ storage: 1,
300
+ storagecommit: 1,
301
+ textinput: 1
302
+ };
303
+
304
+ // This polyfill depends on availability of `document` so will not run in a worker
305
+ // However, we asssume there are no browsers with worker support that lack proper
306
+ // support for `Event` within the worker
307
+ if (typeof document === 'undefined' || typeof window === 'undefined') return;
308
+
309
+ function indexOf(array, element) {
310
+ var
311
+ index = -1,
312
+ length = array.length;
313
+
314
+ while (++index < length) {
315
+ if (index in array && array[index] === element) {
316
+ return index;
317
+ }
240
318
  }
241
- Object.__defineSetter__.call(object, propertyString, descriptor.set);
242
- }
243
319
 
244
- // OK to define value unconditionally - if a getter has been specified as well, an error would be thrown above
245
- if ('value' in descriptor) {
246
- object[propertyString] = descriptor.value;
320
+ return -1;
247
321
  }
248
322
 
249
- return object;
250
- };
251
- }(Object.defineProperty));
252
- })
253
- .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
254
-
255
- (function(undefined) {
256
-
257
- // Detection from https://github.com/Financial-Times/polyfill-service/blob/master/packages/polyfill-library/polyfills/Event/detect.js
258
- var detect = (
259
- (function(global) {
260
-
261
- if (!('Event' in global)) return false;
262
- if (typeof global.Event === 'function') return true;
263
-
264
- try {
265
-
266
- // In IE 9-11, the Event object exists but cannot be instantiated
267
- new Event('click');
268
- return true;
269
- } catch(e) {
270
- return false;
271
- }
272
- }(this))
273
- );
274
-
275
- if (detect) return
276
-
277
- // Polyfill from https://cdn.polyfill.io/v2/polyfill.js?features=Event&flags=always
278
- (function () {
279
- var unlistenableWindowEvents = {
280
- click: 1,
281
- dblclick: 1,
282
- keyup: 1,
283
- keypress: 1,
284
- keydown: 1,
285
- mousedown: 1,
286
- mouseup: 1,
287
- mousemove: 1,
288
- mouseover: 1,
289
- mouseenter: 1,
290
- mouseleave: 1,
291
- mouseout: 1,
292
- storage: 1,
293
- storagecommit: 1,
294
- textinput: 1
295
- };
296
-
297
- // This polyfill depends on availability of `document` so will not run in a worker
298
- // However, we asssume there are no browsers with worker support that lack proper
299
- // support for `Event` within the worker
300
- if (typeof document === 'undefined' || typeof window === 'undefined') return;
301
-
302
- function indexOf(array, element) {
303
- var
304
- index = -1,
305
- length = array.length;
306
-
307
- while (++index < length) {
308
- if (index in array && array[index] === element) {
309
- return index;
323
+ var existingProto = (window.Event && window.Event.prototype) || null;
324
+ window.Event = Window.prototype.Event = function Event(type, eventInitDict) {
325
+ if (!type) {
326
+ throw new Error('Not enough arguments');
310
327
  }
311
- }
312
328
 
313
- return -1;
314
- }
329
+ var event;
330
+ // Shortcut if browser supports createEvent
331
+ if ('createEvent' in document) {
332
+ event = document.createEvent('Event');
333
+ var bubbles = eventInitDict && eventInitDict.bubbles !== undefined ? eventInitDict.bubbles : false;
334
+ var cancelable = eventInitDict && eventInitDict.cancelable !== undefined ? eventInitDict.cancelable : false;
315
335
 
316
- var existingProto = (window.Event && window.Event.prototype) || null;
317
- window.Event = Window.prototype.Event = function Event(type, eventInitDict) {
318
- if (!type) {
319
- throw new Error('Not enough arguments');
320
- }
336
+ event.initEvent(type, bubbles, cancelable);
337
+
338
+ return event;
339
+ }
321
340
 
322
- var event;
323
- // Shortcut if browser supports createEvent
324
- if ('createEvent' in document) {
325
- event = document.createEvent('Event');
326
- var bubbles = eventInitDict && eventInitDict.bubbles !== undefined ? eventInitDict.bubbles : false;
327
- var cancelable = eventInitDict && eventInitDict.cancelable !== undefined ? eventInitDict.cancelable : false;
341
+ event = document.createEventObject();
328
342
 
329
- event.initEvent(type, bubbles, cancelable);
343
+ event.type = type;
344
+ event.bubbles = eventInitDict && eventInitDict.bubbles !== undefined ? eventInitDict.bubbles : false;
345
+ event.cancelable = eventInitDict && eventInitDict.cancelable !== undefined ? eventInitDict.cancelable : false;
330
346
 
331
347
  return event;
348
+ };
349
+ if (existingProto) {
350
+ Object.defineProperty(window.Event, 'prototype', {
351
+ configurable: false,
352
+ enumerable: false,
353
+ writable: true,
354
+ value: existingProto
355
+ });
332
356
  }
333
357
 
334
- event = document.createEventObject();
335
-
336
- event.type = type;
337
- event.bubbles = eventInitDict && eventInitDict.bubbles !== undefined ? eventInitDict.bubbles : false;
338
- event.cancelable = eventInitDict && eventInitDict.cancelable !== undefined ? eventInitDict.cancelable : false;
339
-
340
- return event;
341
- };
342
- if (existingProto) {
343
- Object.defineProperty(window.Event, 'prototype', {
344
- configurable: false,
345
- enumerable: false,
346
- writable: true,
347
- value: existingProto
348
- });
349
- }
350
-
351
- if (!('createEvent' in document)) {
352
- window.addEventListener = Window.prototype.addEventListener = Document.prototype.addEventListener = Element.prototype.addEventListener = function addEventListener() {
353
- var
354
- element = this,
355
- type = arguments[0],
356
- listener = arguments[1];
358
+ if (!('createEvent' in document)) {
359
+ window.addEventListener = Window.prototype.addEventListener = Document.prototype.addEventListener = Element.prototype.addEventListener = function addEventListener() {
360
+ var
361
+ element = this,
362
+ type = arguments[0],
363
+ listener = arguments[1];
357
364
 
358
- if (element === window && type in unlistenableWindowEvents) {
359
- throw new Error('In IE8 the event: ' + type + ' is not available on the window object. Please see https://github.com/Financial-Times/polyfill-service/issues/317 for more information.');
360
- }
365
+ if (element === window && type in unlistenableWindowEvents) {
366
+ throw new Error('In IE8 the event: ' + type + ' is not available on the window object. Please see https://github.com/Financial-Times/polyfill-service/issues/317 for more information.');
367
+ }
361
368
 
362
- if (!element._events) {
363
- element._events = {};
364
- }
369
+ if (!element._events) {
370
+ element._events = {};
371
+ }
365
372
 
366
- if (!element._events[type]) {
367
- element._events[type] = function (event) {
368
- var
369
- list = element._events[event.type].list,
370
- events = list.slice(),
371
- index = -1,
372
- length = events.length,
373
- eventElement;
374
-
375
- event.preventDefault = function preventDefault() {
376
- if (event.cancelable !== false) {
377
- event.returnValue = false;
378
- }
379
- };
373
+ if (!element._events[type]) {
374
+ element._events[type] = function (event) {
375
+ var
376
+ list = element._events[event.type].list,
377
+ events = list.slice(),
378
+ index = -1,
379
+ length = events.length,
380
+ eventElement;
381
+
382
+ event.preventDefault = function preventDefault() {
383
+ if (event.cancelable !== false) {
384
+ event.returnValue = false;
385
+ }
386
+ };
380
387
 
381
- event.stopPropagation = function stopPropagation() {
382
- event.cancelBubble = true;
383
- };
388
+ event.stopPropagation = function stopPropagation() {
389
+ event.cancelBubble = true;
390
+ };
384
391
 
385
- event.stopImmediatePropagation = function stopImmediatePropagation() {
386
- event.cancelBubble = true;
387
- event.cancelImmediate = true;
388
- };
392
+ event.stopImmediatePropagation = function stopImmediatePropagation() {
393
+ event.cancelBubble = true;
394
+ event.cancelImmediate = true;
395
+ };
389
396
 
390
- event.currentTarget = element;
391
- event.relatedTarget = event.fromElement || null;
392
- event.target = event.target || event.srcElement || element;
393
- event.timeStamp = new Date().getTime();
397
+ event.currentTarget = element;
398
+ event.relatedTarget = event.fromElement || null;
399
+ event.target = event.target || event.srcElement || element;
400
+ event.timeStamp = new Date().getTime();
394
401
 
395
- if (event.clientX) {
396
- event.pageX = event.clientX + document.documentElement.scrollLeft;
397
- event.pageY = event.clientY + document.documentElement.scrollTop;
398
- }
402
+ if (event.clientX) {
403
+ event.pageX = event.clientX + document.documentElement.scrollLeft;
404
+ event.pageY = event.clientY + document.documentElement.scrollTop;
405
+ }
399
406
 
400
- while (++index < length && !event.cancelImmediate) {
401
- if (index in events) {
402
- eventElement = events[index];
407
+ while (++index < length && !event.cancelImmediate) {
408
+ if (index in events) {
409
+ eventElement = events[index];
403
410
 
404
- if (indexOf(list, eventElement) !== -1 && typeof eventElement === 'function') {
405
- eventElement.call(element, event);
411
+ if (indexOf(list, eventElement) !== -1 && typeof eventElement === 'function') {
412
+ eventElement.call(element, event);
413
+ }
406
414
  }
407
415
  }
408
- }
409
- };
416
+ };
410
417
 
411
- element._events[type].list = [];
418
+ element._events[type].list = [];
412
419
 
413
- if (element.attachEvent) {
414
- element.attachEvent('on' + type, element._events[type]);
420
+ if (element.attachEvent) {
421
+ element.attachEvent('on' + type, element._events[type]);
422
+ }
415
423
  }
416
- }
417
424
 
418
- element._events[type].list.push(listener);
419
- };
425
+ element._events[type].list.push(listener);
426
+ };
420
427
 
421
- window.removeEventListener = Window.prototype.removeEventListener = Document.prototype.removeEventListener = Element.prototype.removeEventListener = function removeEventListener() {
422
- var
423
- element = this,
424
- type = arguments[0],
425
- listener = arguments[1],
426
- index;
428
+ window.removeEventListener = Window.prototype.removeEventListener = Document.prototype.removeEventListener = Element.prototype.removeEventListener = function removeEventListener() {
429
+ var
430
+ element = this,
431
+ type = arguments[0],
432
+ listener = arguments[1],
433
+ index;
427
434
 
428
- if (element._events && element._events[type] && element._events[type].list) {
429
- index = indexOf(element._events[type].list, listener);
435
+ if (element._events && element._events[type] && element._events[type].list) {
436
+ index = indexOf(element._events[type].list, listener);
430
437
 
431
- if (index !== -1) {
432
- element._events[type].list.splice(index, 1);
438
+ if (index !== -1) {
439
+ element._events[type].list.splice(index, 1);
433
440
 
434
- if (!element._events[type].list.length) {
435
- if (element.detachEvent) {
436
- element.detachEvent('on' + type, element._events[type]);
441
+ if (!element._events[type].list.length) {
442
+ if (element.detachEvent) {
443
+ element.detachEvent('on' + type, element._events[type]);
444
+ }
445
+ delete element._events[type];
437
446
  }
438
- delete element._events[type];
439
447
  }
440
448
  }
441
- }
442
- };
443
-
444
- window.dispatchEvent = Window.prototype.dispatchEvent = Document.prototype.dispatchEvent = Element.prototype.dispatchEvent = function dispatchEvent(event) {
445
- if (!arguments.length) {
446
- throw new Error('Not enough arguments');
447
- }
449
+ };
448
450
 
449
- if (!event || typeof event.type !== 'string') {
450
- throw new Error('DOM Events Exception 0');
451
- }
451
+ window.dispatchEvent = Window.prototype.dispatchEvent = Document.prototype.dispatchEvent = Element.prototype.dispatchEvent = function dispatchEvent(event) {
452
+ if (!arguments.length) {
453
+ throw new Error('Not enough arguments');
454
+ }
452
455
 
453
- var element = this, type = event.type;
456
+ if (!event || typeof event.type !== 'string') {
457
+ throw new Error('DOM Events Exception 0');
458
+ }
454
459
 
455
- try {
456
- if (!event.bubbles) {
457
- event.cancelBubble = true;
460
+ var element = this, type = event.type;
458
461
 
459
- var cancelBubbleEvent = function (event) {
462
+ try {
463
+ if (!event.bubbles) {
460
464
  event.cancelBubble = true;
461
465
 
462
- (element || window).detachEvent('on' + type, cancelBubbleEvent);
463
- };
466
+ var cancelBubbleEvent = function (event) {
467
+ event.cancelBubble = true;
464
468
 
465
- this.attachEvent('on' + type, cancelBubbleEvent);
466
- }
469
+ (element || window).detachEvent('on' + type, cancelBubbleEvent);
470
+ };
467
471
 
468
- this.fireEvent('on' + type, event);
469
- } catch (error) {
470
- event.target = element;
472
+ this.attachEvent('on' + type, cancelBubbleEvent);
473
+ }
471
474
 
472
- do {
473
- event.currentTarget = element;
475
+ this.fireEvent('on' + type, event);
476
+ } catch (error) {
477
+ event.target = element;
474
478
 
475
- if ('_events' in element && typeof element._events[type] === 'function') {
476
- element._events[type].call(element, event);
477
- }
479
+ do {
480
+ event.currentTarget = element;
478
481
 
479
- if (typeof element['on' + type] === 'function') {
480
- element['on' + type].call(element, event);
481
- }
482
+ if ('_events' in element && typeof element._events[type] === 'function') {
483
+ element._events[type].call(element, event);
484
+ }
482
485
 
483
- element = element.nodeType === 9 ? element.parentWindow : element.parentNode;
484
- } while (element && !event.cancelBubble);
485
- }
486
+ if (typeof element['on' + type] === 'function') {
487
+ element['on' + type].call(element, event);
488
+ }
486
489
 
487
- return true;
488
- };
490
+ element = element.nodeType === 9 ? element.parentWindow : element.parentNode;
491
+ } while (element && !event.cancelBubble);
492
+ }
489
493
 
490
- // Add the DOMContentLoaded Event
491
- document.attachEvent('onreadystatechange', function() {
492
- if (document.readyState === 'complete') {
493
- document.dispatchEvent(new Event('DOMContentLoaded', {
494
- bubbles: true
495
- }));
496
- }
497
- });
498
- }
499
- }());
494
+ return true;
495
+ };
496
+
497
+ // Add the DOMContentLoaded Event
498
+ document.attachEvent('onreadystatechange', function() {
499
+ if (document.readyState === 'complete') {
500
+ document.dispatchEvent(new Event('DOMContentLoaded', {
501
+ bubbles: true
502
+ }));
503
+ }
504
+ });
505
+ }
506
+ }());
500
507
 
501
- })
502
- .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
508
+ })
509
+ .call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});
503
510
 
504
511
  })));
512
+ //# sourceMappingURL=Event.js.map