govuk_publishing_components 51.1.1 → 51.2.1
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/components/feedback.js +29 -34
- data/app/assets/javascripts/govuk_publishing_components/vendor/lux/lux-reporter.js +7 -2
- data/app/assets/stylesheets/component_guide/application.scss +1 -1
- data/app/assets/stylesheets/govuk_publishing_components/_all_components.scss +1 -0
- data/app/assets/stylesheets/govuk_publishing_components/components/helpers/_markdown-typography.scss +2 -2
- data/app/models/govuk_publishing_components/audit_comparer.rb +3 -3
- data/app/views/govuk_publishing_components/components/_title.html.erb +2 -3
- data/app/views/govuk_publishing_components/components/docs/add_another.yml +1 -1
- data/app/views/govuk_publishing_components/components/docs/feedback.yml +1 -1
- data/lib/govuk_publishing_components/presenters/checkboxes_helper.rb +1 -1
- data/lib/govuk_publishing_components/presenters/shared_helper.rb +0 -11
- data/lib/govuk_publishing_components/version.rb +1 -1
- data/node_modules/govuk-frontend/dist/govuk/all.bundle.js +217 -184
- data/node_modules/govuk-frontend/dist/govuk/all.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs +216 -184
- data/node_modules/govuk-frontend/dist/govuk/all.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/all.mjs +1 -0
- data/node_modules/govuk-frontend/dist/govuk/all.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/all.scss +6 -0
- data/node_modules/govuk-frontend/dist/govuk/all.scss.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/common/configuration.mjs +164 -0
- data/node_modules/govuk-frontend/dist/govuk/common/configuration.mjs.map +1 -0
- data/node_modules/govuk-frontend/dist/govuk/common/govuk-frontend-version.mjs +1 -1
- data/node_modules/govuk-frontend/dist/govuk/common/index.mjs +1 -87
- data/node_modules/govuk-frontend/dist/govuk/common/index.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.js +149 -112
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.mjs +148 -111
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.mjs +5 -8
- data/node_modules/govuk-frontend/dist/govuk/components/accordion/accordion.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.js +149 -112
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.mjs +148 -111
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.mjs +5 -8
- data/node_modules/govuk-frontend/dist/govuk/components/button/button.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.js +174 -140
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.mjs +173 -139
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.mjs +17 -16
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/character-count.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/character-count/macro-options.json +4 -4
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.js +1 -24
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.mjs +0 -23
- data/node_modules/govuk-frontend/dist/govuk/components/checkboxes/checkboxes.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/date-input/macro-options.json +2 -2
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.js +149 -112
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.mjs +148 -111
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.mjs +6 -8
- data/node_modules/govuk-frontend/dist/govuk/components/error-summary/error-summary.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.js +149 -112
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.mjs +148 -111
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.mjs +5 -8
- data/node_modules/govuk-frontend/dist/govuk/components/exit-this-page/exit-this-page.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.js +1 -24
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.mjs +0 -23
- data/node_modules/govuk-frontend/dist/govuk/components/header/header.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/input/macro-options.json +4 -4
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.js +149 -112
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.mjs +148 -111
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.mjs +6 -8
- data/node_modules/govuk-frontend/dist/govuk/components/notification-banner/notification-banner.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/macro-options.json +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.js +149 -112
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.mjs +148 -111
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.mjs +5 -8
- data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.js +1 -24
- data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.mjs +0 -23
- data/node_modules/govuk-frontend/dist/govuk/components/radios/radios.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.bundle.js +1 -24
- data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.bundle.mjs +0 -23
- data/node_modules/govuk-frontend/dist/govuk/components/service-navigation/service-navigation.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.js +1 -24
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.mjs +0 -23
- data/node_modules/govuk-frontend/dist/govuk/components/skip-link/skip-link.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.js +1 -24
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.mjs +0 -23
- data/node_modules/govuk-frontend/dist/govuk/components/tabs/tabs.bundle.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/components/textarea/macro-options.json +1 -1
- data/node_modules/govuk-frontend/dist/govuk/core/_govuk-frontend-properties.scss +1 -1
- data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.css +1 -1
- data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.css.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js +1 -1
- data/node_modules/govuk-frontend/dist/govuk/govuk-frontend.min.js.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/init.mjs +17 -13
- data/node_modules/govuk-frontend/dist/govuk/init.mjs.map +1 -1
- data/node_modules/govuk-frontend/dist/govuk/settings/_typography-responsive.scss +5 -10
- data/node_modules/govuk-frontend/dist/govuk/settings/_typography-responsive.scss.map +1 -1
- data/node_modules/govuk-frontend/govuk-prototype-kit.config.json +1 -1
- data/node_modules/govuk-frontend/package.json +9 -9
- metadata +4 -6
- data/node_modules/govuk-frontend/dist/govuk/common/normalise-dataset.mjs +0 -18
- data/node_modules/govuk-frontend/dist/govuk/common/normalise-dataset.mjs.map +0 -1
- data/node_modules/govuk-frontend/dist/govuk/common/normalise-string.mjs +0 -31
- data/node_modules/govuk-frontend/dist/govuk/common/normalise-string.mjs.map +0 -1
data/node_modules/govuk-frontend/dist/govuk/components/password-input/password-input.bundle.js
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
(function (global, factory) {
|
2
2
|
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) :
|
3
3
|
typeof define === 'function' && define.amd ? define(['exports'], factory) :
|
4
|
-
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.GOVUKFrontend = {}));
|
4
|
+
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.GOVUKFrontend = global.GOVUKFrontend || {}));
|
5
5
|
})(this, (function (exports) { 'use strict';
|
6
6
|
|
7
7
|
function closestAttributeValue($element, attributeName) {
|
@@ -9,76 +9,6 @@
|
|
9
9
|
return $closestElementWithAttribute ? $closestElementWithAttribute.getAttribute(attributeName) : null;
|
10
10
|
}
|
11
11
|
|
12
|
-
function normaliseString(value, property) {
|
13
|
-
const trimmedValue = value ? value.trim() : '';
|
14
|
-
let output;
|
15
|
-
let outputType = property == null ? void 0 : property.type;
|
16
|
-
if (!outputType) {
|
17
|
-
if (['true', 'false'].includes(trimmedValue)) {
|
18
|
-
outputType = 'boolean';
|
19
|
-
}
|
20
|
-
if (trimmedValue.length > 0 && isFinite(Number(trimmedValue))) {
|
21
|
-
outputType = 'number';
|
22
|
-
}
|
23
|
-
}
|
24
|
-
switch (outputType) {
|
25
|
-
case 'boolean':
|
26
|
-
output = trimmedValue === 'true';
|
27
|
-
break;
|
28
|
-
case 'number':
|
29
|
-
output = Number(trimmedValue);
|
30
|
-
break;
|
31
|
-
default:
|
32
|
-
output = value;
|
33
|
-
}
|
34
|
-
return output;
|
35
|
-
}
|
36
|
-
|
37
|
-
/**
|
38
|
-
* @typedef {import('./index.mjs').SchemaProperty} SchemaProperty
|
39
|
-
*/
|
40
|
-
|
41
|
-
function mergeConfigs(...configObjects) {
|
42
|
-
const formattedConfigObject = {};
|
43
|
-
for (const configObject of configObjects) {
|
44
|
-
for (const key of Object.keys(configObject)) {
|
45
|
-
const option = formattedConfigObject[key];
|
46
|
-
const override = configObject[key];
|
47
|
-
if (isObject(option) && isObject(override)) {
|
48
|
-
formattedConfigObject[key] = mergeConfigs(option, override);
|
49
|
-
} else {
|
50
|
-
formattedConfigObject[key] = override;
|
51
|
-
}
|
52
|
-
}
|
53
|
-
}
|
54
|
-
return formattedConfigObject;
|
55
|
-
}
|
56
|
-
function extractConfigByNamespace(Component, dataset, namespace) {
|
57
|
-
const property = Component.schema.properties[namespace];
|
58
|
-
if ((property == null ? void 0 : property.type) !== 'object') {
|
59
|
-
return;
|
60
|
-
}
|
61
|
-
const newObject = {
|
62
|
-
[namespace]: ({})
|
63
|
-
};
|
64
|
-
for (const [key, value] of Object.entries(dataset)) {
|
65
|
-
let current = newObject;
|
66
|
-
const keyParts = key.split('.');
|
67
|
-
for (const [index, name] of keyParts.entries()) {
|
68
|
-
if (typeof current === 'object') {
|
69
|
-
if (index < keyParts.length - 1) {
|
70
|
-
if (!isObject(current[name])) {
|
71
|
-
current[name] = {};
|
72
|
-
}
|
73
|
-
current = current[name];
|
74
|
-
} else if (key !== namespace) {
|
75
|
-
current[name] = normaliseString(value);
|
76
|
-
}
|
77
|
-
}
|
78
|
-
}
|
79
|
-
}
|
80
|
-
return newObject[namespace];
|
81
|
-
}
|
82
12
|
function isInitialised($root, moduleName) {
|
83
13
|
return $root instanceof HTMLElement && $root.hasAttribute(`data-${moduleName}-init`);
|
84
14
|
}
|
@@ -107,47 +37,11 @@
|
|
107
37
|
function formatErrorMessage(Component, message) {
|
108
38
|
return `${Component.moduleName}: ${message}`;
|
109
39
|
}
|
110
|
-
|
111
|
-
/**
|
112
|
-
* Schema for component config
|
113
|
-
*
|
114
|
-
* @typedef {object} Schema
|
115
|
-
* @property {{ [field: string]: SchemaProperty | undefined }} properties - Schema properties
|
116
|
-
* @property {SchemaCondition[]} [anyOf] - List of schema conditions
|
117
|
-
*/
|
118
|
-
|
119
|
-
/**
|
120
|
-
* Schema property for component config
|
121
|
-
*
|
122
|
-
* @typedef {object} SchemaProperty
|
123
|
-
* @property {'string' | 'boolean' | 'number' | 'object'} type - Property type
|
124
|
-
*/
|
125
|
-
|
126
|
-
/**
|
127
|
-
* Schema condition for component config
|
128
|
-
*
|
129
|
-
* @typedef {object} SchemaCondition
|
130
|
-
* @property {string[]} required - List of required config fields
|
131
|
-
* @property {string} errorMessage - Error message when required config fields not provided
|
132
|
-
*/
|
133
40
|
/**
|
134
41
|
* @typedef ComponentWithModuleName
|
135
42
|
* @property {string} moduleName - Name of the component
|
136
43
|
*/
|
137
44
|
|
138
|
-
function normaliseDataset(Component, dataset) {
|
139
|
-
const out = {};
|
140
|
-
for (const [field, property] of Object.entries(Component.schema.properties)) {
|
141
|
-
if (field in dataset) {
|
142
|
-
out[field] = normaliseString(dataset[field], property);
|
143
|
-
}
|
144
|
-
if ((property == null ? void 0 : property.type) === 'object') {
|
145
|
-
out[field] = extractConfigByNamespace(Component, dataset, field);
|
146
|
-
}
|
147
|
-
}
|
148
|
-
return out;
|
149
|
-
}
|
150
|
-
|
151
45
|
class GOVUKFrontendError extends Error {
|
152
46
|
constructor(...args) {
|
153
47
|
super(...args);
|
@@ -166,6 +60,12 @@
|
|
166
60
|
this.name = 'SupportError';
|
167
61
|
}
|
168
62
|
}
|
63
|
+
class ConfigError extends GOVUKFrontendError {
|
64
|
+
constructor(...args) {
|
65
|
+
super(...args);
|
66
|
+
this.name = 'ConfigError';
|
67
|
+
}
|
68
|
+
}
|
169
69
|
class ElementError extends GOVUKFrontendError {
|
170
70
|
constructor(messageOrOptions) {
|
171
71
|
let message = typeof messageOrOptions === 'string' ? messageOrOptions : '';
|
@@ -250,6 +150,144 @@
|
|
250
150
|
*/
|
251
151
|
GOVUKFrontendComponent.elementType = HTMLElement;
|
252
152
|
|
153
|
+
const configOverride = Symbol.for('configOverride');
|
154
|
+
class ConfigurableComponent extends GOVUKFrontendComponent {
|
155
|
+
[configOverride](param) {
|
156
|
+
return {};
|
157
|
+
}
|
158
|
+
|
159
|
+
/**
|
160
|
+
* Returns the root element of the component
|
161
|
+
*
|
162
|
+
* @protected
|
163
|
+
* @returns {ConfigurationType} - the root element of component
|
164
|
+
*/
|
165
|
+
get config() {
|
166
|
+
return this._config;
|
167
|
+
}
|
168
|
+
constructor($root, config) {
|
169
|
+
super($root);
|
170
|
+
this._config = void 0;
|
171
|
+
const childConstructor = this.constructor;
|
172
|
+
if (typeof childConstructor.defaults === 'undefined') {
|
173
|
+
throw new ConfigError(formatErrorMessage(childConstructor, 'Config passed as parameter into constructor but no defaults defined'));
|
174
|
+
}
|
175
|
+
const datasetConfig = normaliseDataset(childConstructor, this._$root.dataset);
|
176
|
+
this._config = mergeConfigs(childConstructor.defaults, config != null ? config : {}, this[configOverride](datasetConfig), datasetConfig);
|
177
|
+
}
|
178
|
+
}
|
179
|
+
function normaliseString(value, property) {
|
180
|
+
const trimmedValue = value ? value.trim() : '';
|
181
|
+
let output;
|
182
|
+
let outputType = property == null ? void 0 : property.type;
|
183
|
+
if (!outputType) {
|
184
|
+
if (['true', 'false'].includes(trimmedValue)) {
|
185
|
+
outputType = 'boolean';
|
186
|
+
}
|
187
|
+
if (trimmedValue.length > 0 && isFinite(Number(trimmedValue))) {
|
188
|
+
outputType = 'number';
|
189
|
+
}
|
190
|
+
}
|
191
|
+
switch (outputType) {
|
192
|
+
case 'boolean':
|
193
|
+
output = trimmedValue === 'true';
|
194
|
+
break;
|
195
|
+
case 'number':
|
196
|
+
output = Number(trimmedValue);
|
197
|
+
break;
|
198
|
+
default:
|
199
|
+
output = value;
|
200
|
+
}
|
201
|
+
return output;
|
202
|
+
}
|
203
|
+
function normaliseDataset(Component, dataset) {
|
204
|
+
if (typeof Component.schema === 'undefined') {
|
205
|
+
throw new ConfigError(formatErrorMessage(Component, 'Config passed as parameter into constructor but no schema defined'));
|
206
|
+
}
|
207
|
+
const out = {};
|
208
|
+
for (const [field, property] of Object.entries(Component.schema.properties)) {
|
209
|
+
if (field in dataset) {
|
210
|
+
out[field] = normaliseString(dataset[field], property);
|
211
|
+
}
|
212
|
+
if ((property == null ? void 0 : property.type) === 'object') {
|
213
|
+
out[field] = extractConfigByNamespace(Component.schema, dataset, field);
|
214
|
+
}
|
215
|
+
}
|
216
|
+
return out;
|
217
|
+
}
|
218
|
+
function mergeConfigs(...configObjects) {
|
219
|
+
const formattedConfigObject = {};
|
220
|
+
for (const configObject of configObjects) {
|
221
|
+
for (const key of Object.keys(configObject)) {
|
222
|
+
const option = formattedConfigObject[key];
|
223
|
+
const override = configObject[key];
|
224
|
+
if (isObject(option) && isObject(override)) {
|
225
|
+
formattedConfigObject[key] = mergeConfigs(option, override);
|
226
|
+
} else {
|
227
|
+
formattedConfigObject[key] = override;
|
228
|
+
}
|
229
|
+
}
|
230
|
+
}
|
231
|
+
return formattedConfigObject;
|
232
|
+
}
|
233
|
+
function extractConfigByNamespace(schema, dataset, namespace) {
|
234
|
+
const property = schema.properties[namespace];
|
235
|
+
if ((property == null ? void 0 : property.type) !== 'object') {
|
236
|
+
return;
|
237
|
+
}
|
238
|
+
const newObject = {
|
239
|
+
[namespace]: ({})
|
240
|
+
};
|
241
|
+
for (const [key, value] of Object.entries(dataset)) {
|
242
|
+
let current = newObject;
|
243
|
+
const keyParts = key.split('.');
|
244
|
+
for (const [index, name] of keyParts.entries()) {
|
245
|
+
if (typeof current === 'object') {
|
246
|
+
if (index < keyParts.length - 1) {
|
247
|
+
if (!isObject(current[name])) {
|
248
|
+
current[name] = {};
|
249
|
+
}
|
250
|
+
current = current[name];
|
251
|
+
} else if (key !== namespace) {
|
252
|
+
current[name] = normaliseString(value);
|
253
|
+
}
|
254
|
+
}
|
255
|
+
}
|
256
|
+
}
|
257
|
+
return newObject[namespace];
|
258
|
+
}
|
259
|
+
/**
|
260
|
+
* Schema for component config
|
261
|
+
*
|
262
|
+
* @typedef {object} Schema
|
263
|
+
* @property {{ [field: string]: SchemaProperty | undefined }} properties - Schema properties
|
264
|
+
* @property {SchemaCondition[]} [anyOf] - List of schema conditions
|
265
|
+
*/
|
266
|
+
/**
|
267
|
+
* Schema property for component config
|
268
|
+
*
|
269
|
+
* @typedef {object} SchemaProperty
|
270
|
+
* @property {'string' | 'boolean' | 'number' | 'object'} type - Property type
|
271
|
+
*/
|
272
|
+
/**
|
273
|
+
* Schema condition for component config
|
274
|
+
*
|
275
|
+
* @typedef {object} SchemaCondition
|
276
|
+
* @property {string[]} required - List of required config fields
|
277
|
+
* @property {string} errorMessage - Error message when required config fields not provided
|
278
|
+
*/
|
279
|
+
/**
|
280
|
+
* @template {ObjectNested} [ConfigurationType={}]
|
281
|
+
* @typedef ChildClass
|
282
|
+
* @property {string} moduleName - The module name that'll be looked for in the DOM when initialising the component
|
283
|
+
* @property {Schema} [schema] - The schema of the component configuration
|
284
|
+
* @property {ConfigurationType} [defaults] - The default values of the configuration of the component
|
285
|
+
*/
|
286
|
+
/**
|
287
|
+
* @template {ObjectNested} [ConfigurationType={}]
|
288
|
+
* @typedef {typeof GOVUKFrontendComponent & ChildClass<ConfigurationType>} ChildClassConstructor<ConfigurationType>
|
289
|
+
*/
|
290
|
+
|
253
291
|
class I18n {
|
254
292
|
constructor(translations = {}, config = {}) {
|
255
293
|
var _config$locale;
|
@@ -447,15 +485,15 @@
|
|
447
485
|
* Password input component
|
448
486
|
*
|
449
487
|
* @preserve
|
488
|
+
* @augments ConfigurableComponent<PasswordInputConfig>
|
450
489
|
*/
|
451
|
-
class PasswordInput extends
|
490
|
+
class PasswordInput extends ConfigurableComponent {
|
452
491
|
/**
|
453
492
|
* @param {Element | null} $root - HTML element to use for password input
|
454
493
|
* @param {PasswordInputConfig} [config] - Password input config
|
455
494
|
*/
|
456
495
|
constructor($root, config = {}) {
|
457
|
-
super($root);
|
458
|
-
this.config = void 0;
|
496
|
+
super($root, config);
|
459
497
|
this.i18n = void 0;
|
460
498
|
this.$input = void 0;
|
461
499
|
this.$showHideButton = void 0;
|
@@ -486,7 +524,6 @@
|
|
486
524
|
}
|
487
525
|
this.$input = $input;
|
488
526
|
this.$showHideButton = $showHideButton;
|
489
|
-
this.config = mergeConfigs(PasswordInput.defaults, config, normaliseDataset(PasswordInput, this.$root.dataset));
|
490
527
|
this.i18n = new I18n(this.config.i18n, {
|
491
528
|
locale: closestAttributeValue(this.$root, 'lang')
|
492
529
|
});
|
@@ -566,7 +603,7 @@
|
|
566
603
|
*/
|
567
604
|
|
568
605
|
/**
|
569
|
-
* @typedef {import('../../common/
|
606
|
+
* @typedef {import('../../common/configuration.mjs').Schema} Schema
|
570
607
|
* @typedef {import('../../i18n.mjs').TranslationPluralForms} TranslationPluralForms
|
571
608
|
*/
|
572
609
|
PasswordInput.moduleName = 'govuk-password-input';
|