@sbb-esta/lyne-elements-dev 4.9.0-dev.1775050914 → 4.9.0-dev.1775054429

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.
Files changed (51) hide show
  1. package/autocomplete/autocomplete-base-element.js +1 -1
  2. package/autocomplete/autocomplete.component.js +1 -1
  3. package/{autocomplete-base-element-DFRA5eoY.js → autocomplete-base-element-DarHnnYC.js} +1 -1
  4. package/autocomplete.js +1 -1
  5. package/autocomplete.pure.js +1 -1
  6. package/custom-elements.json +24 -24
  7. package/date-input/date-input.component.js +1 -1
  8. package/{date-input.component-C6UN7HzO.js → date-input.component-B3f_GThS.js} +1 -1
  9. package/date-input.js +1 -1
  10. package/date-input.pure.js +1 -1
  11. package/development/autocomplete/autocomplete-base-element.js +1 -1
  12. package/development/autocomplete/autocomplete.component.js +1 -1
  13. package/development/autocomplete-base-element-YwfObJzm.js +678 -0
  14. package/development/autocomplete.js +1 -1
  15. package/development/autocomplete.pure.js +1 -1
  16. package/development/date-input/date-input.component.js +1 -1
  17. package/development/date-input.component-UP1afzgy.js +307 -0
  18. package/development/date-input.js +1 -1
  19. package/development/date-input.pure.js +1 -1
  20. package/development/form-field/form-field/form-field.component.js +1 -1
  21. package/development/form-field/form-field.js +1 -1
  22. package/development/form-field.component-DnUA6Uds.js +650 -0
  23. package/development/form-field.js +1 -1
  24. package/development/form-field.pure.js +1 -1
  25. package/development/select/select.component.js +1 -1
  26. package/development/select.component-Il_cpCFV.js +784 -0
  27. package/development/select.js +1 -1
  28. package/development/select.pure.js +1 -1
  29. package/development/time-input/time-input.component.js +1 -1
  30. package/development/time-input.component-XS0aJ6M7.js +191 -0
  31. package/development/time-input.js +1 -1
  32. package/development/time-input.pure.js +1 -1
  33. package/form-field/form-field/form-field.component.js +1 -1
  34. package/form-field/form-field.js +1 -1
  35. package/{form-field.component-BKjqLhmy.js → form-field.component-D2R9BpyQ.js} +1 -1
  36. package/form-field.js +1 -1
  37. package/form-field.pure.js +1 -1
  38. package/package.json +2 -2
  39. package/select/select.component.js +1 -1
  40. package/{select.component-A-TwBa65.js → select.component-DMzvfiNM.js} +1 -1
  41. package/select.js +1 -1
  42. package/select.pure.js +1 -1
  43. package/time-input/time-input.component.js +1 -1
  44. package/{time-input.component-KSyUufTP.js → time-input.component-Jv2xorV5.js} +1 -1
  45. package/time-input.js +1 -1
  46. package/time-input.pure.js +1 -1
  47. package/development/autocomplete-base-element-CNoHrX63.js +0 -678
  48. package/development/date-input.component-B7Eq5hCB.js +0 -307
  49. package/development/form-field.component-KEFq2rmY.js +0 -650
  50. package/development/select.component-DNMAVhaz.js +0 -784
  51. package/development/time-input.component-B4HBAe0K.js +0 -191
@@ -1,4 +1,4 @@
1
- import { t as SbbAutocompleteBaseElement } from "./autocomplete-base-element-CNoHrX63.js";
1
+ import { t as SbbAutocompleteBaseElement } from "./autocomplete-base-element-YwfObJzm.js";
2
2
  import { SbbAutocompleteElement } from "./autocomplete/autocomplete.component.js";
3
3
  import "./autocomplete.pure.js";
4
4
  //#region src/elements/autocomplete.ts
@@ -1,3 +1,3 @@
1
- import { t as SbbAutocompleteBaseElement } from "./autocomplete-base-element-CNoHrX63.js";
1
+ import { t as SbbAutocompleteBaseElement } from "./autocomplete-base-element-YwfObJzm.js";
2
2
  import { SbbAutocompleteElement } from "./autocomplete/autocomplete.component.js";
3
3
  export { SbbAutocompleteBaseElement, SbbAutocompleteElement };
@@ -1,2 +1,2 @@
1
- import { t as SbbDateInputElement } from "../date-input.component-B7Eq5hCB.js";
1
+ import { t as SbbDateInputElement } from "../date-input.component-UP1afzgy.js";
2
2
  export { SbbDateInputElement };
@@ -0,0 +1,307 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { isServer, unsafeCSS } from "lit";
3
+ import { property } from "lit/decorators.js";
4
+ import { SbbElement } from "./core/base-elements.js";
5
+ import { plainDate, plainDateConverter } from "./core/decorators.js";
6
+ import { SbbFormAssociatedInputMixin } from "./core/mixins.js";
7
+ import { i18nDateInvalid, i18nDateMax, i18nDateMin, i18nDatePickerPlaceholder } from "./core/i18n.js";
8
+ import { readConfig } from "./core/config.js";
9
+ import { defaultDateAdapter } from "./core/datetime.js";
10
+ //#region src/elements/date-input/date-input.scss?inline
11
+ var date_input_default = ":host {\n display: inline-flex;\n min-width: 9.375rem;\n max-width: 100%;\n cursor: text;\n align-items: center;\n font-weight: normal;\n}\n@media (forced-colors: active) {\n :host {\n color: FieldText;\n }\n}\n\n:host(:disabled) {\n cursor: var(--sbb-cursor-default);\n}\n\n:host(:focus) {\n text-overflow: initial !important;\n}\n\n:host(:empty)::after {\n content: attr(placeholder);\n color: var(--sbb-color-5);\n -webkit-text-fill-color: var(--sbb-color-5);\n opacity: 1;\n}\n@media (forced-colors: active) {\n :host(:empty)::after {\n color: GrayText;\n }\n}";
12
+ //#endregion
13
+ //#region src/elements/date-input/date-input.component.ts
14
+ Object.assign(ValidityState.prototype, { get sbbDateFilter() {
15
+ return false;
16
+ } });
17
+ /**
18
+ * Custom input for a date.
19
+ */
20
+ var SbbDateInputElement = (() => {
21
+ let _classSuper = SbbFormAssociatedInputMixin(SbbElement);
22
+ let _instanceExtraInitializers = [];
23
+ let _set_valueAsDate_decorators;
24
+ let _min_decorators;
25
+ let _min_initializers = [];
26
+ let _min_extraInitializers = [];
27
+ let _max_decorators;
28
+ let _max_initializers = [];
29
+ let _max_extraInitializers = [];
30
+ let _set_dateFilter_decorators;
31
+ let _weekdayStyle_decorators;
32
+ let _weekdayStyle_initializers = [];
33
+ let _weekdayStyle_extraInitializers = [];
34
+ return class SbbDateInputElement extends _classSuper {
35
+ static {
36
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
37
+ _set_valueAsDate_decorators = [property({ attribute: false })];
38
+ _min_decorators = [plainDate(), property({
39
+ converter: plainDateConverter,
40
+ reflect: true
41
+ })];
42
+ _max_decorators = [plainDate(), property({
43
+ converter: plainDateConverter,
44
+ reflect: true
45
+ })];
46
+ _set_dateFilter_decorators = [property({ attribute: false })];
47
+ _weekdayStyle_decorators = [property({ attribute: "weekday-style" })];
48
+ __esDecorate(this, null, _set_valueAsDate_decorators, {
49
+ kind: "setter",
50
+ name: "valueAsDate",
51
+ static: false,
52
+ private: false,
53
+ access: {
54
+ has: (obj) => "valueAsDate" in obj,
55
+ set: (obj, value) => {
56
+ obj.valueAsDate = value;
57
+ }
58
+ },
59
+ metadata: _metadata
60
+ }, null, _instanceExtraInitializers);
61
+ __esDecorate(this, null, _min_decorators, {
62
+ kind: "accessor",
63
+ name: "min",
64
+ static: false,
65
+ private: false,
66
+ access: {
67
+ has: (obj) => "min" in obj,
68
+ get: (obj) => obj.min,
69
+ set: (obj, value) => {
70
+ obj.min = value;
71
+ }
72
+ },
73
+ metadata: _metadata
74
+ }, _min_initializers, _min_extraInitializers);
75
+ __esDecorate(this, null, _max_decorators, {
76
+ kind: "accessor",
77
+ name: "max",
78
+ static: false,
79
+ private: false,
80
+ access: {
81
+ has: (obj) => "max" in obj,
82
+ get: (obj) => obj.max,
83
+ set: (obj, value) => {
84
+ obj.max = value;
85
+ }
86
+ },
87
+ metadata: _metadata
88
+ }, _max_initializers, _max_extraInitializers);
89
+ __esDecorate(this, null, _set_dateFilter_decorators, {
90
+ kind: "setter",
91
+ name: "dateFilter",
92
+ static: false,
93
+ private: false,
94
+ access: {
95
+ has: (obj) => "dateFilter" in obj,
96
+ set: (obj, value) => {
97
+ obj.dateFilter = value;
98
+ }
99
+ },
100
+ metadata: _metadata
101
+ }, null, _instanceExtraInitializers);
102
+ __esDecorate(this, null, _weekdayStyle_decorators, {
103
+ kind: "accessor",
104
+ name: "weekdayStyle",
105
+ static: false,
106
+ private: false,
107
+ access: {
108
+ has: (obj) => "weekdayStyle" in obj,
109
+ get: (obj) => obj.weekdayStyle,
110
+ set: (obj, value) => {
111
+ obj.weekdayStyle = value;
112
+ }
113
+ },
114
+ metadata: _metadata
115
+ }, _weekdayStyle_initializers, _weekdayStyle_extraInitializers);
116
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
117
+ enumerable: true,
118
+ configurable: true,
119
+ writable: true,
120
+ value: _metadata
121
+ });
122
+ }
123
+ static {
124
+ this.elementName = "sbb-date-input";
125
+ }
126
+ static {
127
+ this.styles = unsafeCSS(date_input_default);
128
+ }
129
+ /**
130
+ * The value of the date input. Reflects the current text value
131
+ * of this input.
132
+ * The attribute `value` Accepts ISO8601 formatted values, which will be
133
+ * formatted according to the current locale.
134
+ */
135
+ set value(value) {
136
+ this._tryParseValue(value);
137
+ if (!isServer && !this.matches(":focus") && this.valueAsDate !== null) value = this._formatDate();
138
+ super.value = value;
139
+ }
140
+ get value() {
141
+ return super.value ?? "";
142
+ }
143
+ /** Formats the current input's value as date. */
144
+ set valueAsDate(value) {
145
+ value = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));
146
+ if (!value) {
147
+ this._valueAsDate = null;
148
+ this._valueCache = ["", null];
149
+ this.value = "";
150
+ } else if (!this._dateAdapter.isDateInstance(this._valueAsDate) || this._dateAdapter.compareDate(this._valueAsDate, value) !== 0) {
151
+ this._valueAsDate = this._dateAdapter.createDate(this._dateAdapter.getYear(value), this._dateAdapter.getMonth(value), this._dateAdapter.getDate(value));
152
+ const stringValue = this._formatDate();
153
+ this._valueCache = [stringValue, this._valueAsDate];
154
+ this.value = stringValue;
155
+ }
156
+ }
157
+ get valueAsDate() {
158
+ return this._valueAsDate ? this._dateAdapter.clone(this._valueAsDate) : null;
159
+ }
160
+ #min_accessor_storage;
161
+ /**
162
+ * The minimum valid date. Accepts a date object or null.
163
+ * Accepts an ISO8601 formatted string (e.g. 2024-12-24) as attribute.
164
+ */
165
+ get min() {
166
+ return this.#min_accessor_storage;
167
+ }
168
+ set min(value) {
169
+ this.#min_accessor_storage = value;
170
+ }
171
+ #max_accessor_storage;
172
+ /**
173
+ * The maximum valid date. Accepts a date object or null.
174
+ * Accepts an ISO8601 formatted string (e.g. 2024-12-24) as attribute.
175
+ */
176
+ get max() {
177
+ return this.#max_accessor_storage;
178
+ }
179
+ set max(value) {
180
+ this.#max_accessor_storage = value;
181
+ }
182
+ /**
183
+ * A function used to filter out dates.
184
+ * It is strongly recommended to use min and max dates alongside
185
+ * this filter.
186
+ */
187
+ set dateFilter(value) {
188
+ this._dateFilter = value;
189
+ }
190
+ get dateFilter() {
191
+ return this._dateFilter;
192
+ }
193
+ #weekdayStyle_accessor_storage;
194
+ /**
195
+ * How to format the displayed date.
196
+ * `short`: Two letter abbreviation of the week day (e.g. Fr).
197
+ * `none`: The weekday is not displayed.
198
+ */
199
+ get weekdayStyle() {
200
+ return this.#weekdayStyle_accessor_storage;
201
+ }
202
+ set weekdayStyle(value) {
203
+ this.#weekdayStyle_accessor_storage = value;
204
+ }
205
+ /**
206
+ * Gets the associated datepicker, if any.
207
+ * The sbb-date-input and the sbb-datepicker are assumed to be in the same parent container.
208
+ */
209
+ get datepicker() {
210
+ return this.parentElement.querySelector("sbb-datepicker");
211
+ }
212
+ constructor() {
213
+ super();
214
+ this._valueAsDate = __runInitializers(this, _instanceExtraInitializers);
215
+ this.#min_accessor_storage = __runInitializers(this, _min_initializers, null);
216
+ this.#max_accessor_storage = (__runInitializers(this, _min_extraInitializers), __runInitializers(this, _max_initializers, null));
217
+ this.#weekdayStyle_accessor_storage = (__runInitializers(this, _max_extraInitializers), __runInitializers(this, _weekdayStyle_initializers, "short"));
218
+ /**
219
+ * Stores the last string and parsed date object value to prevent repeated
220
+ * parsing of the string value.
221
+ */
222
+ this._valueCache = __runInitializers(this, _weekdayStyle_extraInitializers);
223
+ this._dateAdapter = readConfig().datetime?.dateAdapter ?? defaultDateAdapter;
224
+ this._placeholderMutable = false;
225
+ this._dateFilter = () => true;
226
+ this.addEventListener?.("change", () => this._updateValueDateFormat(), { capture: true });
227
+ }
228
+ /**
229
+ * Attempts to resolve the associated date input with the given element.
230
+ */
231
+ static resolveAssociation(host) {
232
+ if (host.hasAttribute("input") || host.input) return;
233
+ const input = host.closest("sbb-form-field")?.querySelector("sbb-date-input");
234
+ if (input) host.input = input;
235
+ }
236
+ connectedCallback() {
237
+ super.connectedCallback();
238
+ if (!this.placeholder) {
239
+ this._placeholderMutable = true;
240
+ this.placeholder = i18nDatePickerPlaceholder[this.language.current];
241
+ }
242
+ for (const child of Array.from(this.closest("sbb-form-field")?.children ?? [])) {
243
+ customElements.upgrade?.(child);
244
+ if (child.constructor.sbbDateInputAssociated && !child.hasAttribute("input") && !child.input) child.input = this;
245
+ }
246
+ }
247
+ requestUpdate(name, oldValue, options) {
248
+ super.requestUpdate(name, oldValue, options);
249
+ if (this.hasUpdated && !name) {
250
+ this._updateValueDateFormat();
251
+ if (this._placeholderMutable) this.placeholder = i18nDatePickerPlaceholder[this.language.current];
252
+ } else if (name === "weekdayStyle") this._updateValueDateFormat();
253
+ if (this.isConnected)
254
+ /** @internal */
255
+ this.dispatchEvent(new Event("ɵchange"));
256
+ }
257
+ updateFormValue() {
258
+ this._tryParseValue();
259
+ const formValue = this.valueAsDate !== null ? this._dateAdapter.toIso8601(this.valueAsDate) : null;
260
+ this.internals.setFormValue(formValue, this.value);
261
+ }
262
+ _tryParseValue(value = this.value) {
263
+ if (this._valueCache?.[0] !== value) {
264
+ this._valueAsDate = this._dateAdapter.parse(value);
265
+ this._valueCache = [value, this._valueAsDate];
266
+ }
267
+ }
268
+ _updateValueDateFormat() {
269
+ if (this.valueAsDate) {
270
+ const formattedDate = this._formatDate();
271
+ if (this.value !== formattedDate) super.value = formattedDate;
272
+ }
273
+ }
274
+ _formatDate() {
275
+ return this._dateAdapter.format(this.valueAsDate, { weekdayStyle: this.weekdayStyle });
276
+ }
277
+ shouldValidate(name) {
278
+ return super.shouldValidate(name) || [
279
+ "valueAsDate",
280
+ "min",
281
+ "max",
282
+ "dateFilter"
283
+ ].includes(name);
284
+ }
285
+ validate() {
286
+ super.validate();
287
+ if (!this.value) this._removeValidityErrors();
288
+ else if (!this._dateAdapter.isValid(this.valueAsDate)) this.setValidityFlag("badInput", i18nDateInvalid[this.language.current]);
289
+ else if (this._dateAdapter.isValid(this.min) && this._dateAdapter.compareDate(this.min, this.valueAsDate) > 0) this.setValidityFlag("rangeUnderflow", i18nDateMin(this._dateAdapter.format(this.min, { weekdayStyle: "none" }))[this.language.current]);
290
+ else if (this._dateAdapter.isValid(this.max) && this._dateAdapter.compareDate(this.valueAsDate, this.max) > 0) this.setValidityFlag("rangeOverflow", i18nDateMax(this._dateAdapter.format(this.max, { weekdayStyle: "none" }))[this.language.current]);
291
+ else if (this.dateFilter && !this.dateFilter(this.valueAsDate)) this.setValidityFlag("sbbDateFilter", i18nDateInvalid[this.language.current]);
292
+ else this._removeValidityErrors();
293
+ }
294
+ _removeValidityErrors() {
295
+ [
296
+ "badInput",
297
+ "rangeUnderflow",
298
+ "rangeOverflow",
299
+ "sbbDateFilter"
300
+ ].forEach((f) => this.removeValidityFlag(f));
301
+ }
302
+ };
303
+ })();
304
+ //#endregion
305
+ export { SbbDateInputElement as t };
306
+
307
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1pbnB1dC5jb21wb25lbnQtVVAxYWZ6Z3kuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2RhdGUtaW5wdXQvZGF0ZS1pbnB1dC5zY3NzP2lubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9kYXRlLWlucHV0L2RhdGUtaW5wdXQuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgZGlzcGxheTogaW5saW5lLWZsZXg7XG5cbiAgLy8gV2l0aCBzYmItZm9ybS1maWVsZFt3aWR0aD1cImNvbGxhcHNlZFwiXSwgdGhlIGRlZmF1bHQgbWluIHdpZHRoIG9mIGFcbiAgLy8gYW4gaW5saW5lIGVsZW1lbnQgaXMgYmFzaWNhbGx5IG5vdGhpbmcgKGV4Y2VwdCBwb3RlbnRpYWxseSB0aGUgcGxhY2Vob2xkZXIpLlxuICAvLyBEdWUgdG8gdGhpcywgd2Ugc2V0IGEgbWluaW11bSB3aWR0aCBvZiB0aGUgZGF0ZSBpbnB1dCBlbGVtZW50LlxuICBtaW4td2lkdGg6ICN7c2JiLnB4LXRvLXJlbS1idWlsZCgxNTApfTtcbiAgbWF4LXdpZHRoOiAxMDAlO1xuICBjdXJzb3I6IHRleHQ7XG4gIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gIGZvbnQtd2VpZ2h0OiBub3JtYWw7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIGNvbG9yOiBGaWVsZFRleHQ7XG4gIH1cbn1cblxuOmhvc3QoOmRpc2FibGVkKSB7XG4gIGN1cnNvcjogdmFyKC0tc2JiLWN1cnNvci1kZWZhdWx0KTtcbn1cblxuOmhvc3QoOmZvY3VzKSB7XG4gIHRleHQtb3ZlcmZsb3c6IGluaXRpYWwgIWltcG9ydGFudDtcbn1cblxuOmhvc3QoOmVtcHR5KTo6YWZ0ZXIge1xuICBjb250ZW50OiBhdHRyKHBsYWNlaG9sZGVyKTtcbiAgQGluY2x1ZGUgc2JiLnBsYWNlaG9sZGVyO1xuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgY29sb3I6IEdyYXlUZXh0O1xuICB9XG59XG4iLCJpbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBpc1NlcnZlciwgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLCB1bnNhZmVDU1MgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi9jb3JlL2Jhc2UtZWxlbWVudHMudHMnO1xuaW1wb3J0IHsgcmVhZENvbmZpZyB9IGZyb20gJy4uL2NvcmUvY29uZmlnLnRzJztcbmltcG9ydCB7IHR5cGUgRGF0ZUFkYXB0ZXIsIGRlZmF1bHREYXRlQWRhcHRlciB9IGZyb20gJy4uL2NvcmUvZGF0ZXRpbWUudHMnO1xuaW1wb3J0IHsgcGxhaW5EYXRlLCBwbGFpbkRhdGVDb252ZXJ0ZXIgfSBmcm9tICcuLi9jb3JlL2RlY29yYXRvcnMudHMnO1xuaW1wb3J0IHtcbiAgaTE4bkRhdGVJbnZhbGlkLFxuICBpMThuRGF0ZU1heCxcbiAgaTE4bkRhdGVNaW4sXG4gIGkxOG5EYXRlUGlja2VyUGxhY2Vob2xkZXIsXG59IGZyb20gJy4uL2NvcmUvaTE4bi50cyc7XG5pbXBvcnQgeyBTYmJGb3JtQXNzb2NpYXRlZElucHV0TWl4aW4gfSBmcm9tICcuLi9jb3JlL21peGlucy50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkRhdGVwaWNrZXJFbGVtZW50IH0gZnJvbSAnLi4vZGF0ZXBpY2tlci50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2RhdGUtaW5wdXQuc2Nzcz9pbmxpbmUnO1xuXG4vLyBBcyBkb2N1bWVudGVkIGluIGZvcm0tYXNzb2NpYXRlZC1taXhpbi50cywgd2UgZXh0ZW5kIHRoZSBwcm90b3R5cGUgb2Zcbi8vIFZhbGlkaXR5U3RhdGUgd2l0aCBjdXN0b20gZXJyb3Igc3RhdGVzIGZvciB0aGUgZGF0ZSBpbnB1dC5cbk9iamVjdC5hc3NpZ24oVmFsaWRpdHlTdGF0ZS5wcm90b3R5cGUsIHtcbiAgZ2V0IHNiYkRhdGVGaWx0ZXIoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9LFxufSk7XG5cbi8qKlxuICogSW50ZXJmYWNlIGZvciBlbGVtZW50cyB0aGF0IGNhbiBiZSBhc3NvY2lhdGVkIHdpdGggYSBkYXRlIGlucHV0LlxuICogSW1wbGVtZW50aW5nIGNsYXNzZXMgbXVzdCBhbHNvIGhhdmUgYSBzdGF0aWMgcHJvcGVydHkgYHNiYkRhdGVJbnB1dEFzc29jaWF0ZWRgIHNldCB0byBgdHJ1ZWAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2JiRGF0ZUlucHV0QXNzb2NpYXRlZDxUPiB7XG4gIGlucHV0OiBTYmJEYXRlSW5wdXRFbGVtZW50PFQ+IHwgbnVsbDtcbn1cblxuLyoqXG4gKiBDdXN0b20gaW5wdXQgZm9yIGEgZGF0ZS5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYkRhdGVJbnB1dEVsZW1lbnQ8VCA9IERhdGU+IGV4dGVuZHMgU2JiRm9ybUFzc29jaWF0ZWRJbnB1dE1peGluKFNiYkVsZW1lbnQpIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1kYXRlLWlucHV0JztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gdW5zYWZlQ1NTKHN0eWxlKTtcblxuICAvKipcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBkYXRlIGlucHV0LiBSZWZsZWN0cyB0aGUgY3VycmVudCB0ZXh0IHZhbHVlXG4gICAqIG9mIHRoaXMgaW5wdXQuXG4gICAqIFRoZSBhdHRyaWJ1dGUgYHZhbHVlYCBBY2NlcHRzIElTTzg2MDEgZm9ybWF0dGVkIHZhbHVlcywgd2hpY2ggd2lsbCBiZVxuICAgKiBmb3JtYXR0ZWQgYWNjb3JkaW5nIHRvIHRoZSBjdXJyZW50IGxvY2FsZS5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBzZXQgdmFsdWUodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX3RyeVBhcnNlVmFsdWUodmFsdWUpO1xuICAgIC8vIEFzIGxvbmcgYXMgdGhpcyBlbGVtZW50IGhhcyBmb2N1cyB3ZSBkZWxheSBhdXRvbWF0aWNhbGx5IHVwZGF0aW5nXG4gICAgLy8gdGhlIHZhbHVlIHdpdGggdGhlIGZvcm1hdHRlZCBzdHJpbmcgb2YgdGhlIHBhcnNlZCBkYXRlLlxuICAgIGlmICghaXNTZXJ2ZXIgJiYgIXRoaXMubWF0Y2hlcygnOmZvY3VzJykgJiYgdGhpcy52YWx1ZUFzRGF0ZSAhPT0gbnVsbCkge1xuICAgICAgdmFsdWUgPSB0aGlzLl9mb3JtYXREYXRlKCk7XG4gICAgfVxuICAgIHN1cGVyLnZhbHVlID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIG92ZXJyaWRlIGdldCB2YWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiBzdXBlci52YWx1ZSA/PyAnJztcbiAgfVxuXG4gIC8qKiBGb3JtYXRzIHRoZSBjdXJyZW50IGlucHV0J3MgdmFsdWUgYXMgZGF0ZS4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICBwdWJsaWMgc2V0IHZhbHVlQXNEYXRlKHZhbHVlOiBUIHwgbnVsbCkge1xuICAgIHZhbHVlID0gdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKHRoaXMuX2RhdGVBZGFwdGVyLmRlc2VyaWFsaXplKHZhbHVlKSk7XG4gICAgaWYgKCF2YWx1ZSkge1xuICAgICAgdGhpcy5fdmFsdWVBc0RhdGUgPSBudWxsO1xuICAgICAgdGhpcy5fdmFsdWVDYWNoZSA9IFsnJywgbnVsbF07XG4gICAgICB0aGlzLnZhbHVlID0gJyc7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgICF0aGlzLl9kYXRlQWRhcHRlci5pc0RhdGVJbnN0YW5jZSh0aGlzLl92YWx1ZUFzRGF0ZSkgfHxcbiAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmNvbXBhcmVEYXRlKHRoaXMuX3ZhbHVlQXNEYXRlISwgdmFsdWUhKSAhPT0gMFxuICAgICkge1xuICAgICAgLy8gQWxpZ24gd2l0aCB0aGUgbmF0aXZlIGRhdGUgaW5wdXQsIGFzIGl0IGNvcGllcyB0aGUgdmFsdWUgb2ZcbiAgICAgIC8vIHRoZSBnaXZlbiBkYXRlIHdpdGhvdXQgdGhlIHRpbWUgYW5kIGRvZXMgbm90IHJldGFpbiB0aGVcbiAgICAgIC8vIG9yaWdpbmFsIGluc3RhbmNlLlxuICAgICAgdGhpcy5fdmFsdWVBc0RhdGUgPSB0aGlzLl9kYXRlQWRhcHRlci5jcmVhdGVEYXRlKFxuICAgICAgICB0aGlzLl9kYXRlQWRhcHRlci5nZXRZZWFyKHZhbHVlKSxcbiAgICAgICAgdGhpcy5fZGF0ZUFkYXB0ZXIuZ2V0TW9udGgodmFsdWUpLFxuICAgICAgICB0aGlzLl9kYXRlQWRhcHRlci5nZXREYXRlKHZhbHVlKSxcbiAgICAgICk7XG4gICAgICBjb25zdCBzdHJpbmdWYWx1ZSA9IHRoaXMuX2Zvcm1hdERhdGUoKTtcbiAgICAgIHRoaXMuX3ZhbHVlQ2FjaGUgPSBbc3RyaW5nVmFsdWUsIHRoaXMuX3ZhbHVlQXNEYXRlXTtcbiAgICAgIHRoaXMudmFsdWUgPSBzdHJpbmdWYWx1ZTtcbiAgICB9XG4gIH1cbiAgcHVibGljIGdldCB2YWx1ZUFzRGF0ZSgpOiBUIHwgbnVsbCB7XG4gICAgLy8gV2Ugc2hvdWxkIG5ldmVyIHJldHVybiB0aGUgaW50ZXJuYWwgZGF0ZSBvYmplY3QgZGlyZWN0bHksIGFzIGl0XG4gICAgLy8gY291bGQgYmUgbWFuaXB1bGF0ZWQgb3V0c2lkZSBvZiB0aGlzIGNsYXNzLlxuICAgIHJldHVybiB0aGlzLl92YWx1ZUFzRGF0ZSA/IHRoaXMuX2RhdGVBZGFwdGVyLmNsb25lKHRoaXMuX3ZhbHVlQXNEYXRlKSA6IG51bGw7XG4gIH1cbiAgcHJpdmF0ZSBfdmFsdWVBc0RhdGU/OiBUIHwgbnVsbDtcblxuICAvKipcbiAgICogVGhlIG1pbmltdW0gdmFsaWQgZGF0ZS4gQWNjZXB0cyBhIGRhdGUgb2JqZWN0IG9yIG51bGwuXG4gICAqIEFjY2VwdHMgYW4gSVNPODYwMSBmb3JtYXR0ZWQgc3RyaW5nIChlLmcuIDIwMjQtMTItMjQpIGFzIGF0dHJpYnV0ZS5cbiAgICovXG4gIEBwbGFpbkRhdGUoKVxuICBAcHJvcGVydHkoeyBjb252ZXJ0ZXI6IHBsYWluRGF0ZUNvbnZlcnRlciwgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3IgbWluOiBUIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIHZhbGlkIGRhdGUuIEFjY2VwdHMgYSBkYXRlIG9iamVjdCBvciBudWxsLlxuICAgKiBBY2NlcHRzIGFuIElTTzg2MDEgZm9ybWF0dGVkIHN0cmluZyAoZS5nLiAyMDI0LTEyLTI0KSBhcyBhdHRyaWJ1dGUuXG4gICAqL1xuICBAcGxhaW5EYXRlKClcbiAgQHByb3BlcnR5KHsgY29udmVydGVyOiBwbGFpbkRhdGVDb252ZXJ0ZXIsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIG1heDogVCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKlxuICAgKiBBIGZ1bmN0aW9uIHVzZWQgdG8gZmlsdGVyIG91dCBkYXRlcy5cbiAgICogSXQgaXMgc3Ryb25nbHkgcmVjb21tZW5kZWQgdG8gdXNlIG1pbiBhbmQgbWF4IGRhdGVzIGFsb25nc2lkZVxuICAgKiB0aGlzIGZpbHRlci5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgcHVibGljIHNldCBkYXRlRmlsdGVyKHZhbHVlOiAoZGF0ZTogVCB8IG51bGwpID0+IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kYXRlRmlsdGVyID0gdmFsdWU7XG4gIH1cbiAgcHVibGljIGdldCBkYXRlRmlsdGVyKCk6IChkYXRlOiBUIHwgbnVsbCkgPT4gYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGVGaWx0ZXI7XG4gIH1cblxuICAvKipcbiAgICogSG93IHRvIGZvcm1hdCB0aGUgZGlzcGxheWVkIGRhdGUuXG4gICAqIGBzaG9ydGA6IFR3byBsZXR0ZXIgYWJicmV2aWF0aW9uIG9mIHRoZSB3ZWVrIGRheSAoZS5nLiBGcikuXG4gICAqIGBub25lYDogVGhlIHdlZWtkYXkgaXMgbm90IGRpc3BsYXllZC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3dlZWtkYXktc3R5bGUnIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB3ZWVrZGF5U3R5bGU6ICdzaG9ydCcgfCAnbm9uZScgPSAnc2hvcnQnO1xuXG4gIC8qKlxuICAgKiBTdG9yZXMgdGhlIGxhc3Qgc3RyaW5nIGFuZCBwYXJzZWQgZGF0ZSBvYmplY3QgdmFsdWUgdG8gcHJldmVudCByZXBlYXRlZFxuICAgKiBwYXJzaW5nIG9mIHRoZSBzdHJpbmcgdmFsdWUuXG4gICAqL1xuICBwcml2YXRlIF92YWx1ZUNhY2hlPzogW3N0cmluZywgVCB8IG51bGxdO1xuICBwcml2YXRlIF9kYXRlQWRhcHRlcjogRGF0ZUFkYXB0ZXI8VD4gPSByZWFkQ29uZmlnKCkuZGF0ZXRpbWU/LmRhdGVBZGFwdGVyID8/IGRlZmF1bHREYXRlQWRhcHRlcjtcbiAgcHJpdmF0ZSBfcGxhY2Vob2xkZXJNdXRhYmxlID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIGFzc29jaWF0ZWQgZGF0ZXBpY2tlciwgaWYgYW55LlxuICAgKiBUaGUgc2JiLWRhdGUtaW5wdXQgYW5kIHRoZSBzYmItZGF0ZXBpY2tlciBhcmUgYXNzdW1lZCB0byBiZSBpbiB0aGUgc2FtZSBwYXJlbnQgY29udGFpbmVyLlxuICAgKi9cbiAgcHVibGljIGdldCBkYXRlcGlja2VyKCk6IFNiYkRhdGVwaWNrZXJFbGVtZW50PFQ+IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucGFyZW50RWxlbWVudCEucXVlcnlTZWxlY3RvcjxTYmJEYXRlcGlja2VyRWxlbWVudDxUPj4oJ3NiYi1kYXRlcGlja2VyJyk7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2hhbmdlJywgKCkgPT4gdGhpcy5fdXBkYXRlVmFsdWVEYXRlRm9ybWF0KCksIHsgY2FwdHVyZTogdHJ1ZSB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBdHRlbXB0cyB0byByZXNvbHZlIHRoZSBhc3NvY2lhdGVkIGRhdGUgaW5wdXQgd2l0aCB0aGUgZ2l2ZW4gZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVzb2x2ZUFzc29jaWF0aW9uPFQ+KGhvc3Q6IEhUTUxFbGVtZW50ICYgU2JiRGF0ZUlucHV0QXNzb2NpYXRlZDxUPik6IHZvaWQge1xuICAgIGlmIChob3N0Lmhhc0F0dHJpYnV0ZSgnaW5wdXQnKSB8fCBob3N0LmlucHV0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaW5wdXQgPSBob3N0XG4gICAgICAuY2xvc2VzdCgnc2JiLWZvcm0tZmllbGQnKVxuICAgICAgPy5xdWVyeVNlbGVjdG9yPFNiYkRhdGVJbnB1dEVsZW1lbnQ8VD4+KCdzYmItZGF0ZS1pbnB1dCcpO1xuICAgIGlmIChpbnB1dCkge1xuICAgICAgaG9zdC5pbnB1dCA9IGlucHV0O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2RhdGVGaWx0ZXI6IChkYXRlOiBUIHwgbnVsbCkgPT4gYm9vbGVhbiA9ICgpID0+IHRydWU7XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgaWYgKCF0aGlzLnBsYWNlaG9sZGVyKSB7XG4gICAgICB0aGlzLl9wbGFjZWhvbGRlck11dGFibGUgPSB0cnVlO1xuICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGkxOG5EYXRlUGlja2VyUGxhY2Vob2xkZXJbdGhpcy5sYW5ndWFnZS5jdXJyZW50XTtcbiAgICB9XG4gICAgZm9yIChjb25zdCBjaGlsZCBvZiBBcnJheS5mcm9tKHRoaXMuY2xvc2VzdCgnc2JiLWZvcm0tZmllbGQnKT8uY2hpbGRyZW4gPz8gW10pKSB7XG4gICAgICAvLyBFbGVtZW50cyBtdXN0IGJlIHVwZ3JhZGVkIGluIG9yZGVyIGZvciB0aGUgY29uc3RydWN0b3IgdG8gYmUgYWNjZXNzaWJsZS5cbiAgICAgIGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGU/LihjaGlsZCk7XG4gICAgICBpZiAoXG4gICAgICAgIChjaGlsZC5jb25zdHJ1Y3RvciBhcyB7IHNiYkRhdGVJbnB1dEFzc29jaWF0ZWQ/OiBib29sZWFuIH0pLnNiYkRhdGVJbnB1dEFzc29jaWF0ZWQgJiZcbiAgICAgICAgIWNoaWxkLmhhc0F0dHJpYnV0ZSgnaW5wdXQnKSAmJlxuICAgICAgICAhKGNoaWxkIGFzIFBhcnRpYWw8U2JiRGF0ZUlucHV0QXNzb2NpYXRlZDxUPj4pLmlucHV0XG4gICAgICApIHtcbiAgICAgICAgKGNoaWxkIGFzIFBhcnRpYWw8U2JiRGF0ZUlucHV0QXNzb2NpYXRlZDxUPj4pLmlucHV0ID0gdGhpcztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgcmVxdWVzdFVwZGF0ZShcbiAgICBuYW1lPzogUHJvcGVydHlLZXksXG4gICAgb2xkVmFsdWU/OiB1bmtub3duLFxuICAgIG9wdGlvbnM/OiBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICApOiB2b2lkIHtcbiAgICBzdXBlci5yZXF1ZXN0VXBkYXRlKG5hbWUsIG9sZFZhbHVlLCBvcHRpb25zKTtcbiAgICBpZiAodGhpcy5oYXNVcGRhdGVkICYmICFuYW1lKSB7XG4gICAgICB0aGlzLl91cGRhdGVWYWx1ZURhdGVGb3JtYXQoKTtcbiAgICAgIGlmICh0aGlzLl9wbGFjZWhvbGRlck11dGFibGUpIHtcbiAgICAgICAgdGhpcy5wbGFjZWhvbGRlciA9IGkxOG5EYXRlUGlja2VyUGxhY2Vob2xkZXJbdGhpcy5sYW5ndWFnZS5jdXJyZW50XTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKG5hbWUgPT09ICd3ZWVrZGF5U3R5bGUnKSB7XG4gICAgICB0aGlzLl91cGRhdGVWYWx1ZURhdGVGb3JtYXQoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNDb25uZWN0ZWQpIHtcbiAgICAgIC8vIFVzZWQgdG8gbm90aWZ5IGFzc29jaWF0ZWQgY29tcG9uZW50cyB0byB1cGRhdGUgc3RhdGVcbiAgICAgIC8qKiBAaW50ZXJuYWwgKi9cbiAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ8m1Y2hhbmdlJykpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB1cGRhdGVGb3JtVmFsdWUoKTogdm9pZCB7XG4gICAgdGhpcy5fdHJ5UGFyc2VWYWx1ZSgpO1xuICAgIGNvbnN0IGZvcm1WYWx1ZSA9XG4gICAgICB0aGlzLnZhbHVlQXNEYXRlICE9PSBudWxsID8gdGhpcy5fZGF0ZUFkYXB0ZXIudG9Jc284NjAxKHRoaXMudmFsdWVBc0RhdGUpIDogbnVsbDtcbiAgICB0aGlzLmludGVybmFscy5zZXRGb3JtVmFsdWUoZm9ybVZhbHVlLCB0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHByaXZhdGUgX3RyeVBhcnNlVmFsdWUodmFsdWUgPSB0aGlzLnZhbHVlKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3ZhbHVlQ2FjaGU/LlswXSAhPT0gdmFsdWUpIHtcbiAgICAgIHRoaXMuX3ZhbHVlQXNEYXRlID0gdGhpcy5fZGF0ZUFkYXB0ZXIucGFyc2UodmFsdWUpO1xuICAgICAgdGhpcy5fdmFsdWVDYWNoZSA9IFt2YWx1ZSwgdGhpcy5fdmFsdWVBc0RhdGVdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVZhbHVlRGF0ZUZvcm1hdCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy52YWx1ZUFzRGF0ZSkge1xuICAgICAgY29uc3QgZm9ybWF0dGVkRGF0ZSA9IHRoaXMuX2Zvcm1hdERhdGUoKTtcbiAgICAgIGlmICh0aGlzLnZhbHVlICE9PSBmb3JtYXR0ZWREYXRlKSB7XG4gICAgICAgIHN1cGVyLnZhbHVlID0gZm9ybWF0dGVkRGF0ZTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9mb3JtYXREYXRlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGVBZGFwdGVyLmZvcm1hdCh0aGlzLnZhbHVlQXNEYXRlLCB7IHdlZWtkYXlTdHlsZTogdGhpcy53ZWVrZGF5U3R5bGUgfSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2hvdWxkVmFsaWRhdGUobmFtZTogUHJvcGVydHlLZXkgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgc3VwZXIuc2hvdWxkVmFsaWRhdGUobmFtZSkgfHxcbiAgICAgIFsndmFsdWVBc0RhdGUnLCAnbWluJywgJ21heCcsICdkYXRlRmlsdGVyJ10uaW5jbHVkZXMobmFtZSBhcyBzdHJpbmcpXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB2YWxpZGF0ZSgpOiB2b2lkIHtcbiAgICBzdXBlci52YWxpZGF0ZSgpO1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhpcy5fcmVtb3ZlVmFsaWRpdHlFcnJvcnMoKTtcbiAgICB9IGVsc2UgaWYgKCF0aGlzLl9kYXRlQWRhcHRlci5pc1ZhbGlkKHRoaXMudmFsdWVBc0RhdGUpKSB7XG4gICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZygnYmFkSW5wdXQnLCBpMThuRGF0ZUludmFsaWRbdGhpcy5sYW5ndWFnZS5jdXJyZW50XSk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmlzVmFsaWQodGhpcy5taW4pICYmXG4gICAgICB0aGlzLl9kYXRlQWRhcHRlci5jb21wYXJlRGF0ZSh0aGlzLm1pbiwgdGhpcy52YWx1ZUFzRGF0ZSkgPiAwXG4gICAgKSB7XG4gICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZyhcbiAgICAgICAgJ3JhbmdlVW5kZXJmbG93JyxcbiAgICAgICAgaTE4bkRhdGVNaW4odGhpcy5fZGF0ZUFkYXB0ZXIuZm9ybWF0KHRoaXMubWluLCB7IHdlZWtkYXlTdHlsZTogJ25vbmUnIH0pKVtcbiAgICAgICAgICB0aGlzLmxhbmd1YWdlLmN1cnJlbnRcbiAgICAgICAgXSxcbiAgICAgICk7XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHRoaXMuX2RhdGVBZGFwdGVyLmlzVmFsaWQodGhpcy5tYXgpICYmXG4gICAgICB0aGlzLl9kYXRlQWRhcHRlci5jb21wYXJlRGF0ZSh0aGlzLnZhbHVlQXNEYXRlLCB0aGlzLm1heCkgPiAwXG4gICAgKSB7XG4gICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZyhcbiAgICAgICAgJ3JhbmdlT3ZlcmZsb3cnLFxuICAgICAgICBpMThuRGF0ZU1heCh0aGlzLl9kYXRlQWRhcHRlci5mb3JtYXQodGhpcy5tYXgsIHsgd2Vla2RheVN0eWxlOiAnbm9uZScgfSkpW1xuICAgICAgICAgIHRoaXMubGFuZ3VhZ2UuY3VycmVudFxuICAgICAgICBdLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGF0ZUZpbHRlciAmJiAhdGhpcy5kYXRlRmlsdGVyKHRoaXMudmFsdWVBc0RhdGUpKSB7XG4gICAgICB0aGlzLnNldFZhbGlkaXR5RmxhZygnc2JiRGF0ZUZpbHRlcicsIGkxOG5EYXRlSW52YWxpZFt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5fcmVtb3ZlVmFsaWRpdHlFcnJvcnMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9yZW1vdmVWYWxpZGl0eUVycm9ycygpOiB2b2lkIHtcbiAgICAoWydiYWRJbnB1dCcsICdyYW5nZVVuZGVyZmxvdycsICdyYW5nZU92ZXJmbG93JywgJ3NiYkRhdGVGaWx0ZXInXSBhcyBjb25zdCkuZm9yRWFjaCgoZikgPT5cbiAgICAgIHRoaXMucmVtb3ZlVmFsaWRpdHlGbGFnKGYpLFxuICAgICk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1kYXRlLWlucHV0JzogU2JiRGF0ZUlucHV0RWxlbWVudDtcbiAgfVxuXG4gIGludGVyZmFjZSBDdXN0b21WYWxpZGl0eVN0YXRlIHtcbiAgICBzYmJEYXRlRmlsdGVyOiBib29sZWFuO1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7QUNvQkEsT0FBTyxPQUFPLGNBQWMsV0FBVyxFQUNyQyxJQUFJLGdCQUFhO0FBQ2YsUUFBTztHQUVWLENBQUM7Ozs7SUFhVyw2QkFBbUI7bUJBQW1CLDRCQUE0QixXQUFXOzs7Ozs7Ozs7Ozs7O2NBQTdFLDRCQUFzQyxZQUF1Qzs7O2tDQXdCdkYsU0FBUyxFQUFFLFdBQVcsT0FBTyxDQUFDLENBQUE7c0JBbUM5QixXQUFXLEVBQ1gsU0FBUztJQUFFLFdBQVc7SUFBb0IsU0FBUztJQUFNLENBQUMsQ0FBQTtzQkFPMUQsV0FBVyxFQUNYLFNBQVM7SUFBRSxXQUFXO0lBQW9CLFNBQVM7SUFBTSxDQUFDLENBQUE7aUNBUTFELFNBQVMsRUFBRSxXQUFXLE9BQU8sQ0FBQyxDQUFBOytCQWE5QixTQUFTLEVBQUUsV0FBVyxpQkFBaUIsQ0FBQyxDQUFBO0FBaEV6QyxnQkFBQSxNQUFBLE1BQUEsNkJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxpQkFBQTtLQUFBLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBVyxjQUFXOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsTUFBQSwyQkFBQTtBQW9DdEIsZ0JBQUEsTUFBQSxNQUFBLGlCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsU0FBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFHLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBSCxNQUFHOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsbUJBQUEsdUJBQUE7QUFRbkIsZ0JBQUEsTUFBQSxNQUFBLGlCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsU0FBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFHLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBSCxNQUFHOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsbUJBQUEsdUJBQUE7QUFRbkIsZ0JBQUEsTUFBQSxNQUFBLDRCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsZ0JBQUE7S0FBQSxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVcsYUFBVTs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLE1BQUEsMkJBQUE7QUFhckIsZ0JBQUEsTUFBQSxNQUFBLDBCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsa0JBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBWSxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQVosZUFBWTs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLDRCQUFBLGdDQUFBOzs7Ozs7Ozs7QUF6RkksUUFBQSxjQUFzQjs7O0FBQy9CLFFBQUEsU0FBeUIsVUFBVSxtQkFBTTs7Ozs7Ozs7RUFRaEUsSUFBb0IsTUFBTSxPQUFhO0FBQ3JDLFFBQUssZUFBZSxNQUFNO0FBRzFCLE9BQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxRQUFRLFNBQVMsSUFBSSxLQUFLLGdCQUFnQixLQUMvRCxTQUFRLEtBQUssYUFBYTtBQUU1QixTQUFNLFFBQVE7O0VBRWhCLElBQW9CLFFBQUs7QUFDdkIsVUFBTyxNQUFNLFNBQVM7OztFQUt4QixJQUFXLFlBQVksT0FBZTtBQUNwQyxXQUFRLEtBQUssYUFBYSxtQkFBbUIsS0FBSyxhQUFhLFlBQVksTUFBTSxDQUFDO0FBQ2xGLE9BQUksQ0FBQyxPQUFPO0FBQ1YsU0FBSyxlQUFlO0FBQ3BCLFNBQUssY0FBYyxDQUFDLElBQUksS0FBSztBQUM3QixTQUFLLFFBQVE7Y0FFYixDQUFDLEtBQUssYUFBYSxlQUFlLEtBQUssYUFBYSxJQUNwRCxLQUFLLGFBQWEsWUFBWSxLQUFLLGNBQWUsTUFBTyxLQUFLLEdBQzlEO0FBSUEsU0FBSyxlQUFlLEtBQUssYUFBYSxXQUNwQyxLQUFLLGFBQWEsUUFBUSxNQUFNLEVBQ2hDLEtBQUssYUFBYSxTQUFTLE1BQU0sRUFDakMsS0FBSyxhQUFhLFFBQVEsTUFBTSxDQUNqQztJQUNELE1BQU0sY0FBYyxLQUFLLGFBQWE7QUFDdEMsU0FBSyxjQUFjLENBQUMsYUFBYSxLQUFLLGFBQWE7QUFDbkQsU0FBSyxRQUFROzs7RUFHakIsSUFBVyxjQUFXO0FBR3BCLFVBQU8sS0FBSyxlQUFlLEtBQUssYUFBYSxNQUFNLEtBQUssYUFBYSxHQUFHOztFQVUxRTs7Ozs7RUFBQSxJQUFnQixNQUFHO0FBQUEsVUFBQSxNQUFBOztFQUFuQixJQUFnQixJQUFHLE9BQUE7QUFBQSxTQUFBLHVCQUFBOztFQVFuQjs7Ozs7RUFBQSxJQUFnQixNQUFHO0FBQUEsVUFBQSxNQUFBOztFQUFuQixJQUFnQixJQUFHLE9BQUE7QUFBQSxTQUFBLHVCQUFBOzs7Ozs7O0VBUW5CLElBQVcsV0FBVyxPQUFrQztBQUN0RCxRQUFLLGNBQWM7O0VBRXJCLElBQVcsYUFBVTtBQUNuQixVQUFPLEtBQUs7O0VBU2Q7Ozs7OztFQUFBLElBQWdCLGVBQVk7QUFBQSxVQUFBLE1BQUE7O0VBQTVCLElBQWdCLGFBQVksT0FBQTtBQUFBLFNBQUEsZ0NBQUE7Ozs7OztFQWM1QixJQUFXLGFBQVU7QUFDbkIsVUFBTyxLQUFLLGNBQWUsY0FBdUMsaUJBQWlCOztFQUdyRixjQUFBO0FBQ0UsVUFBTztBQXhERCxRQUFBLGVBckRHLGtCQUFBLE1BQUEsMkJBQW1CO0FBNkRkLFNBQUEsdUJBQUEsa0JBQUEsTUFBQSxtQkFBZ0IsS0FBSTtBQVFwQixTQUFBLHdCQUFBLGtCQUFBLE1BQUEsdUJBQUEsRUFBQSxrQkFBQSxNQUFBLG1CQUFnQixLQUFJO0FBcUJwQixTQUFBLGlDQUFBLGtCQUFBLE1BQUEsdUJBQUEsRUFBQSxrQkFBQSxNQUFBLDRCQUFpQyxRQUFPOzs7OztBQU1oRCxRQUFBLGNBQVcsa0JBQUEsTUFBQSxnQ0FBQTtBQUNYLFFBQUEsZUFBK0IsWUFBWSxDQUFDLFVBQVUsZUFBZTtBQUNyRSxRQUFBLHNCQUFzQjtBQStCdEIsUUFBQSxvQkFBaUQ7QUFuQnZELFFBQUssbUJBQW1CLGdCQUFnQixLQUFLLHdCQUF3QixFQUFFLEVBQUUsU0FBUyxNQUFNLENBQUM7Ozs7O0VBTXBGLE9BQU8sbUJBQXNCLE1BQTZDO0FBQy9FLE9BQUksS0FBSyxhQUFhLFFBQVEsSUFBSSxLQUFLLE1BQ3JDO0dBR0YsTUFBTSxRQUFRLEtBQ1gsUUFBUSxpQkFBaUIsRUFDeEIsY0FBc0MsaUJBQWlCO0FBQzNELE9BQUksTUFDRixNQUFLLFFBQVE7O0VBTUQsb0JBQWlCO0FBQy9CLFNBQU0sbUJBQW1CO0FBQ3pCLE9BQUksQ0FBQyxLQUFLLGFBQWE7QUFDckIsU0FBSyxzQkFBc0I7QUFDM0IsU0FBSyxjQUFjLDBCQUEwQixLQUFLLFNBQVM7O0FBRTdELFFBQUssTUFBTSxTQUFTLE1BQU0sS0FBSyxLQUFLLFFBQVEsaUJBQWlCLEVBQUUsWUFBWSxFQUFFLENBQUMsRUFBRTtBQUU5RSxtQkFBZSxVQUFVLE1BQU07QUFDL0IsUUFDRyxNQUFNLFlBQXFELDBCQUM1RCxDQUFDLE1BQU0sYUFBYSxRQUFRLElBQzVCLENBQUUsTUFBNkMsTUFFOUMsT0FBNkMsUUFBUTs7O0VBSzVDLGNBQ2QsTUFDQSxVQUNBLFNBQTZCO0FBRTdCLFNBQU0sY0FBYyxNQUFNLFVBQVUsUUFBUTtBQUM1QyxPQUFJLEtBQUssY0FBYyxDQUFDLE1BQU07QUFDNUIsU0FBSyx3QkFBd0I7QUFDN0IsUUFBSSxLQUFLLG9CQUNQLE1BQUssY0FBYywwQkFBMEIsS0FBSyxTQUFTO2NBRXBELFNBQVMsZUFDbEIsTUFBSyx3QkFBd0I7QUFFL0IsT0FBSSxLQUFLOztBQUdQLFFBQUssY0FBYyxJQUFJLE1BQU0sVUFBVSxDQUFDOztFQUl6QixrQkFBZTtBQUNoQyxRQUFLLGdCQUFnQjtHQUNyQixNQUFNLFlBQ0osS0FBSyxnQkFBZ0IsT0FBTyxLQUFLLGFBQWEsVUFBVSxLQUFLLFlBQVksR0FBRztBQUM5RSxRQUFLLFVBQVUsYUFBYSxXQUFXLEtBQUssTUFBTTs7RUFHNUMsZUFBZSxRQUFRLEtBQUssT0FBSztBQUN2QyxPQUFJLEtBQUssY0FBYyxPQUFPLE9BQU87QUFDbkMsU0FBSyxlQUFlLEtBQUssYUFBYSxNQUFNLE1BQU07QUFDbEQsU0FBSyxjQUFjLENBQUMsT0FBTyxLQUFLLGFBQWE7OztFQUl6Qyx5QkFBc0I7QUFDNUIsT0FBSSxLQUFLLGFBQWE7SUFDcEIsTUFBTSxnQkFBZ0IsS0FBSyxhQUFhO0FBQ3hDLFFBQUksS0FBSyxVQUFVLGNBQ2pCLE9BQU0sUUFBUTs7O0VBS1osY0FBVztBQUNqQixVQUFPLEtBQUssYUFBYSxPQUFPLEtBQUssYUFBYSxFQUFFLGNBQWMsS0FBSyxjQUFjLENBQUM7O0VBR3JFLGVBQWUsTUFBNkI7QUFDN0QsVUFDRSxNQUFNLGVBQWUsS0FBSyxJQUMxQjtJQUFDO0lBQWU7SUFBTztJQUFPO0lBQWEsQ0FBQyxTQUFTLEtBQWU7O0VBSXJELFdBQVE7QUFDekIsU0FBTSxVQUFVO0FBQ2hCLE9BQUksQ0FBQyxLQUFLLE1BQ1IsTUFBSyx1QkFBdUI7WUFDbkIsQ0FBQyxLQUFLLGFBQWEsUUFBUSxLQUFLLFlBQVksQ0FDckQsTUFBSyxnQkFBZ0IsWUFBWSxnQkFBZ0IsS0FBSyxTQUFTLFNBQVM7WUFFeEUsS0FBSyxhQUFhLFFBQVEsS0FBSyxJQUFJLElBQ25DLEtBQUssYUFBYSxZQUFZLEtBQUssS0FBSyxLQUFLLFlBQVksR0FBRyxFQUU1RCxNQUFLLGdCQUNILGtCQUNBLFlBQVksS0FBSyxhQUFhLE9BQU8sS0FBSyxLQUFLLEVBQUUsY0FBYyxRQUFRLENBQUMsQ0FBQyxDQUN2RSxLQUFLLFNBQVMsU0FFakI7WUFFRCxLQUFLLGFBQWEsUUFBUSxLQUFLLElBQUksSUFDbkMsS0FBSyxhQUFhLFlBQVksS0FBSyxhQUFhLEtBQUssSUFBSSxHQUFHLEVBRTVELE1BQUssZ0JBQ0gsaUJBQ0EsWUFBWSxLQUFLLGFBQWEsT0FBTyxLQUFLLEtBQUssRUFBRSxjQUFjLFFBQVEsQ0FBQyxDQUFDLENBQ3ZFLEtBQUssU0FBUyxTQUVqQjtZQUNRLEtBQUssY0FBYyxDQUFDLEtBQUssV0FBVyxLQUFLLFlBQVksQ0FDOUQsTUFBSyxnQkFBZ0IsaUJBQWlCLGdCQUFnQixLQUFLLFNBQVMsU0FBUztPQUU3RSxNQUFLLHVCQUF1Qjs7RUFJeEIsd0JBQXFCO0FBQzFCO0lBQUM7SUFBWTtJQUFrQjtJQUFpQjtJQUEwQixDQUFDLFNBQVMsTUFDbkYsS0FBSyxtQkFBbUIsRUFBRSxDQUMzQiJ9
@@ -1,4 +1,4 @@
1
- import { t as SbbDateInputElement } from "./date-input.component-B7Eq5hCB.js";
1
+ import { t as SbbDateInputElement } from "./date-input.component-UP1afzgy.js";
2
2
  import "./date-input.pure.js";
3
3
  //#region src/elements/date-input.ts
4
4
  /** @entrypoint */
@@ -1,2 +1,2 @@
1
- import { t as SbbDateInputElement } from "./date-input.component-B7Eq5hCB.js";
1
+ import { t as SbbDateInputElement } from "./date-input.component-UP1afzgy.js";
2
2
  export { SbbDateInputElement };
@@ -1,2 +1,2 @@
1
- import { n as SbbFormFieldElement, t as SbbFormFieldControlEvent } from "../../form-field.component-KEFq2rmY.js";
1
+ import { n as SbbFormFieldElement, t as SbbFormFieldControlEvent } from "../../form-field.component-DnUA6Uds.js";
2
2
  export { SbbFormFieldControlEvent, SbbFormFieldElement };
@@ -1,4 +1,4 @@
1
- import { n as SbbFormFieldElement, t as SbbFormFieldControlEvent } from "../form-field.component-KEFq2rmY.js";
1
+ import { n as SbbFormFieldElement, t as SbbFormFieldControlEvent } from "../form-field.component-DnUA6Uds.js";
2
2
  //#region src/elements/form-field/form-field.ts
3
3
  /** @entrypoint */
4
4
  SbbFormFieldElement.define();