@sbb-esta/lyne-elements-dev 5.0.0-next-dev.1776128807 → 5.0.0-next-dev.1776241211

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 (53) hide show
  1. package/core/styles/core.scss +10 -4
  2. package/core.css +23 -5
  3. package/custom-elements.json +6114 -5911
  4. package/development/autocomplete/autocomplete-base-element.d.ts +6 -0
  5. package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
  6. package/development/autocomplete/autocomplete-base-element.js +1 -1
  7. package/development/autocomplete/autocomplete.component.js +1 -1
  8. package/development/autocomplete-base-element-qUzJFqLU.js +678 -0
  9. package/development/autocomplete.js +1 -1
  10. package/development/autocomplete.pure.js +1 -1
  11. package/development/datepicker/common/datepicker-button.d.ts +6 -0
  12. package/development/datepicker/common/datepicker-button.d.ts.map +1 -1
  13. package/development/datepicker/common/datepicker-button.js +1 -1
  14. package/development/datepicker/datepicker/datepicker.component.d.ts +3 -0
  15. package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
  16. package/development/datepicker/datepicker/datepicker.component.js +1 -1
  17. package/development/datepicker-button-BI5R118p.js +166 -0
  18. package/development/datepicker.component-AKlc7SAO.js +214 -0
  19. package/development/datepicker.js +2 -2
  20. package/development/datepicker.pure.js +2 -2
  21. package/development/form-field/form-field-clear/form-field-clear.component.d.ts +3 -0
  22. package/development/form-field/form-field-clear/form-field-clear.component.d.ts.map +1 -1
  23. package/development/form-field/form-field-clear/form-field-clear.component.js +4 -1
  24. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts +3 -0
  25. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts.map +1 -1
  26. package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
  27. package/development/{timetable-form-swap-button.component-BGziVzB8.js → timetable-form-swap-button.component-_EUhzoww.js} +4 -1
  28. package/development/timetable-form.js +1 -1
  29. package/development/timetable-form.pure.js +1 -1
  30. package/development/toggle/toggle/toggle.component.d.ts.map +1 -1
  31. package/development/toggle/toggle/toggle.component.js +1 -1
  32. package/development/toggle/toggle-option/toggle-option.component.d.ts +1 -0
  33. package/development/toggle/toggle-option/toggle-option.component.d.ts.map +1 -1
  34. package/development/toggle/toggle-option/toggle-option.component.js +1 -1
  35. package/development/toggle-option.component-DscH6K3b.js +164 -0
  36. package/development/toggle.component-Dap1d4rK.js +244 -0
  37. package/development/toggle.js +2 -2
  38. package/development/toggle.pure.js +2 -2
  39. package/off-brand-theme.css +23 -5
  40. package/package.json +2 -2
  41. package/safety-theme.css +23 -5
  42. package/standard-theme.css +23 -5
  43. package/toggle/toggle/toggle.component.js +1 -1
  44. package/toggle/toggle-option/toggle-option.component.js +1 -1
  45. package/{toggle-option.component-BF95HWOF.js → toggle-option.component-BiyjKQB1.js} +5 -7
  46. package/{toggle.component-2e_7FeR4.js → toggle.component-CVbRdQDM.js} +6 -10
  47. package/toggle.js +2 -2
  48. package/toggle.pure.js +2 -2
  49. package/development/autocomplete-base-element-B5n-eCMO.js +0 -672
  50. package/development/datepicker-button-CIvIHG8k.js +0 -160
  51. package/development/datepicker.component-BEiMYEc-.js +0 -211
  52. package/development/toggle-option.component-BWT4kEZo.js +0 -165
  53. package/development/toggle.component-DjLnSv3R.js +0 -249
@@ -1,160 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { html, unsafeCSS } from "lit";
3
- import { property } from "lit/decorators.js";
4
- import { SbbButtonBaseElement, SbbLanguageController, SbbNegativeMixin, defaultDateAdapter, i18nToday, idReference, readConfig } from "./core.js";
5
- import { SbbIconElement } from "./icon.pure.js";
6
- import { SbbDateInputElement } from "./date-input.pure.js";
7
- //#endregion
8
- //#region src/elements/datepicker/common/datepicker-button.ts
9
- var datepickerButtonStyle = unsafeCSS(".sbb-action-base {\n margin: auto;\n -webkit-tap-highlight-color: transparent;\n}");
10
- var SbbDatepickerButtonBase = (() => {
11
- let _classSuper = SbbNegativeMixin(SbbButtonBaseElement);
12
- let _input_decorators;
13
- let _input_initializers = [];
14
- let _input_extraInitializers = [];
15
- return class SbbDatepickerButtonBase extends _classSuper {
16
- constructor() {
17
- super(...arguments);
18
- this.#input_accessor_storage = __runInitializers(this, _input_initializers, null);
19
- /** Whether the component is disabled due date-picker's input disabled. */
20
- this._inputDisabled = (__runInitializers(this, _input_extraInitializers), true);
21
- this.dateAdapter = readConfig().datetime?.dateAdapter ?? defaultDateAdapter;
22
- this.language = new SbbLanguageController(this);
23
- }
24
- static {
25
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
26
- _input_decorators = [idReference(), property()];
27
- __esDecorate(this, null, _input_decorators, {
28
- kind: "accessor",
29
- name: "input",
30
- static: false,
31
- private: false,
32
- access: {
33
- has: (obj) => "input" in obj,
34
- get: (obj) => obj.input,
35
- set: (obj, value) => {
36
- obj.input = value;
37
- }
38
- },
39
- metadata: _metadata
40
- }, _input_initializers, _input_extraInitializers);
41
- if (_metadata) Object.defineProperty(this, Symbol.metadata, {
42
- enumerable: true,
43
- configurable: true,
44
- writable: true,
45
- value: _metadata
46
- });
47
- }
48
- static {
49
- this.elementDependencies = [SbbIconElement];
50
- }
51
- static {
52
- this.sbbDateInputAssociated = true;
53
- }
54
- #input_accessor_storage;
55
- /**
56
- * The associated date input element.
57
- *
58
- * For attribute usage, provide an id reference.
59
- */
60
- get input() {
61
- return this.#input_accessor_storage;
62
- }
63
- set input(value) {
64
- this.#input_accessor_storage = value;
65
- }
66
- /** Whether this button is disabled. */
67
- get disabled() {
68
- return !!this._inputDisabled;
69
- }
70
- connectedCallback() {
71
- super.connectedCallback();
72
- this.toggleAttribute("disabled", this.disabled);
73
- const formField = this.closest?.("sbb-form-field");
74
- if (formField) {
75
- customElements.upgrade?.(formField);
76
- this.negative = formField.negative;
77
- SbbDateInputElement.resolveAssociation(this);
78
- this.slot ||= this._findSlotPosition();
79
- }
80
- }
81
- requestUpdate(name, oldValue, options) {
82
- super.requestUpdate(name, oldValue, options);
83
- if (name === "input" && this.input !== oldValue) {
84
- this._inputAbortController?.abort();
85
- this._inputDisabled = true;
86
- if (this.input) {
87
- this._inputAbortController = new AbortController();
88
- this.slot = this._findSlotPosition();
89
- customElements.upgrade?.(this.input);
90
- this._sync();
91
- this.input.addEventListener("ɵchange", () => this._sync());
92
- }
93
- if (this.hasUpdated) this.toggleAttribute("disabled", this.disabled);
94
- } else if (!name && this.hasUpdated && this.input) this._sync();
95
- }
96
- _findSlotPosition() {
97
- return !this.input || this.compareDocumentPosition(this.input) & Node.DOCUMENT_POSITION_FOLLOWING ? "prefix" : "suffix";
98
- }
99
- _sync() {
100
- this.syncDateInputState();
101
- this.toggleAttribute("disabled", this.disabled);
102
- if (this.disabled) this.removeAttribute("tabindex");
103
- else this.setAttribute("tabindex", "0");
104
- }
105
- syncDateInputState() {
106
- this._inputDisabled = this.input.disabled || this.input.readOnly;
107
- }
108
- renderTemplate() {
109
- return html`<sbb-icon name=${this.iconName}></sbb-icon>`;
110
- }
111
- };
112
- })();
113
- var SbbDatepickerButton = class extends SbbDatepickerButtonBase {
114
- get disabled() {
115
- return this._disabled || super.disabled;
116
- }
117
- constructor() {
118
- super();
119
- /** Whether the component is disabled due date equals to boundary date. */
120
- this._disabled = true;
121
- this.addEventListener?.("click", () => this._handleClick());
122
- }
123
- /** @deprecated Use `getFollowingDate(date: T)` instead. */
124
- findAvailableDate(_date) {
125
- return this.getFollowingDate(_date);
126
- }
127
- _handleClick() {
128
- if (!this.input || this.disabled) return;
129
- const startingDate = this.input.valueAsDate ?? this.dateAdapter.today();
130
- const date = this.getFollowingDate(startingDate);
131
- if (this.dateAdapter.isValid(date) && this.dateAdapter.compareDate(date, startingDate) !== 0) {
132
- this.input.valueAsDate = date;
133
- this.input.dispatchEvent(new InputEvent("input", {
134
- bubbles: true,
135
- composed: true
136
- }));
137
- this.input.dispatchEvent(new Event("change", {
138
- bubbles: true,
139
- composed: true
140
- }));
141
- this.input.dispatchEvent(new Event("blur", { composed: true }));
142
- }
143
- }
144
- syncDateInputState() {
145
- super.syncDateInputState();
146
- if (!this.dateAdapter.isValid(this.input.valueAsDate)) {
147
- this._disabled = true;
148
- this.internals.ariaLabel = this.i18nOffBoundaryDay[this.language.current];
149
- return;
150
- }
151
- const date = this.getFollowingDate(this.input.valueAsDate);
152
- this._disabled = !this.dateAdapter.isValid(date) || this.dateAdapter.compareDate(date, this.input.valueAsDate) === 0;
153
- const currentDateString = this.dateAdapter.compareDate(this.dateAdapter.today(), this.input.valueAsDate) === 0 ? i18nToday[this.language.current].toLowerCase() : this.dateAdapter.getAccessibilityFormatDate(this.input.valueAsDate);
154
- this.internals.ariaLabel = this.i18nSelectOffBoundaryDay(currentDateString)[this.language.current];
155
- }
156
- };
157
- //#endregion
158
- export { SbbDatepickerButtonBase as n, datepickerButtonStyle as r, SbbDatepickerButton as t };
159
-
160
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1idXR0b24tQ0l2SUhHOGsuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2RhdGVwaWNrZXIvY29tbW9uL2RhdGVwaWNrZXItYnV0dG9uLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2RhdGVwaWNrZXIvY29tbW9uL2RhdGVwaWNrZXItYnV0dG9uLnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbi5zYmItYWN0aW9uLWJhc2Uge1xuICBtYXJnaW46IGF1dG87XG4gIC13ZWJraXQtdGFwLWhpZ2hsaWdodC1jb2xvcjogdHJhbnNwYXJlbnQ7XG59XG4iLCJpbXBvcnQgeyBodG1sLCB1bnNhZmVDU1MsIHR5cGUgUHJvcGVydHlEZWNsYXJhdGlvbiwgdHlwZSBUZW1wbGF0ZVJlc3VsdCB9IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHtcbiAgU2JiQnV0dG9uQmFzZUVsZW1lbnQsXG4gIHR5cGUgU2JiRWxlbWVudFR5cGUsXG4gIHR5cGUgRGF0ZUFkYXB0ZXIsXG4gIGRlZmF1bHREYXRlQWRhcHRlcixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQge1xuICByZWFkQ29uZmlnLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIGlkUmVmZXJlbmNlLFxuICBpMThuVG9kYXksXG4gIFNiYk5lZ2F0aXZlTWl4aW4sXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgU2JiRGF0ZUlucHV0RWxlbWVudCwgdHlwZSBTYmJEYXRlSW5wdXRBc3NvY2lhdGVkIH0gZnJvbSAnLi4vLi4vZGF0ZS1pbnB1dC5wdXJlLnRzJztcbmltcG9ydCB7IFNiYkljb25FbGVtZW50IH0gZnJvbSAnLi4vLi4vaWNvbi5wdXJlLnRzJztcblxuaW1wb3J0IGRhdGVwaWNrZXJCdXR0b25TdHlsZVN0cmluZyBmcm9tICcuL2RhdGVwaWNrZXItYnV0dG9uLnNjc3M/aW5saW5lJztcblxuZXhwb3J0IGNvbnN0IGRhdGVwaWNrZXJCdXR0b25TdHlsZSA9IHVuc2FmZUNTUyhkYXRlcGlja2VyQnV0dG9uU3R5bGVTdHJpbmcpO1xuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiRGF0ZXBpY2tlckJ1dHRvbkJhc2U8VCA9IERhdGU+XG4gIGV4dGVuZHMgU2JiTmVnYXRpdmVNaXhpbihTYmJCdXR0b25CYXNlRWxlbWVudClcbiAgaW1wbGVtZW50cyBTYmJEYXRlSW5wdXRBc3NvY2lhdGVkPFQ+XG57XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtTYmJJY29uRWxlbWVudF07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgc2JiRGF0ZUlucHV0QXNzb2NpYXRlZCA9IHRydWU7XG5cbiAgLyoqXG4gICAqIFRoZSBhc3NvY2lhdGVkIGRhdGUgaW5wdXQgZWxlbWVudC5cbiAgICpcbiAgICogRm9yIGF0dHJpYnV0ZSB1c2FnZSwgcHJvdmlkZSBhbiBpZCByZWZlcmVuY2UuXG4gICAqL1xuICBAaWRSZWZlcmVuY2UoKVxuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgaW5wdXQ6IFNiYkRhdGVJbnB1dEVsZW1lbnQ8VD4gfCBudWxsID0gbnVsbDtcblxuICAvKiogV2hldGhlciB0aGlzIGJ1dHRvbiBpcyBkaXNhYmxlZC4gKi9cbiAgcHVibGljIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gISF0aGlzLl9pbnB1dERpc2FibGVkO1xuICB9XG5cbiAgLyoqIFdoZXRoZXIgdGhlIGNvbXBvbmVudCBpcyBkaXNhYmxlZCBkdWUgZGF0ZS1waWNrZXIncyBpbnB1dCBkaXNhYmxlZC4gKi9cbiAgcHJpdmF0ZSBfaW5wdXREaXNhYmxlZCA9IHRydWU7XG5cbiAgcHJpdmF0ZSBfaW5wdXRBYm9ydENvbnRyb2xsZXI/OiBBYm9ydENvbnRyb2xsZXI7XG5cbiAgcHJvdGVjdGVkIGRhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPiA9IHJlYWRDb25maWcoKS5kYXRldGltZT8uZGF0ZUFkYXB0ZXIgPz8gZGVmYXVsdERhdGVBZGFwdGVyO1xuICBwcm90ZWN0ZWQgbGFuZ3VhZ2UgPSBuZXcgU2JiTGFuZ3VhZ2VDb250cm9sbGVyKHRoaXMpO1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgaWNvbk5hbWU6IHN0cmluZztcblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGlzYWJsZWQnLCB0aGlzLmRpc2FibGVkKTtcbiAgICBjb25zdCBmb3JtRmllbGQgPSB0aGlzLmNsb3Nlc3Q/Lignc2JiLWZvcm0tZmllbGQnKTtcbiAgICBpZiAoZm9ybUZpZWxkKSB7XG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlPy4oZm9ybUZpZWxkKTtcbiAgICAgIHRoaXMubmVnYXRpdmUgPSBmb3JtRmllbGQubmVnYXRpdmU7XG4gICAgICBTYmJEYXRlSW5wdXRFbGVtZW50LnJlc29sdmVBc3NvY2lhdGlvbih0aGlzKTtcbiAgICAgIHRoaXMuc2xvdCB8fD0gdGhpcy5fZmluZFNsb3RQb3NpdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICk6IHZvaWQge1xuICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuICAgIGlmIChuYW1lID09PSAnaW5wdXQnICYmIHRoaXMuaW5wdXQgIT09IG9sZFZhbHVlKSB7XG4gICAgICB0aGlzLl9pbnB1dEFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICAgIHRoaXMuX2lucHV0RGlzYWJsZWQgPSB0cnVlO1xuICAgICAgaWYgKHRoaXMuaW5wdXQpIHtcbiAgICAgICAgdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICAgIHRoaXMuc2xvdCA9IHRoaXMuX2ZpbmRTbG90UG9zaXRpb24oKTtcbiAgICAgICAgLy8gVGhlIHNiYi1kYXRlLWlucHV0IGluc3RhbmNlIG11c3QgYmUgdXBncmFkZWQgaW4gb3JkZXJcbiAgICAgICAgLy8gZm9yIHByb3BlcnRpZXMgdG8gYmUgYWNjZXNzaWJsZS5cbiAgICAgICAgY3VzdG9tRWxlbWVudHMudXBncmFkZT8uKHRoaXMuaW5wdXQpO1xuICAgICAgICB0aGlzLl9zeW5jKCk7XG4gICAgICAgIHRoaXMuaW5wdXQuYWRkRXZlbnRMaXN0ZW5lcignybVjaGFuZ2UnLCAoKSA9PiB0aGlzLl9zeW5jKCkpO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgICB0aGlzLnRvZ2dsZUF0dHJpYnV0ZSgnZGlzYWJsZWQnLCB0aGlzLmRpc2FibGVkKTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKCFuYW1lICYmIHRoaXMuaGFzVXBkYXRlZCAmJiB0aGlzLmlucHV0KSB7XG4gICAgICAvLyBJZiBsYW5ndWFnZSBjaGFuZ2VzLCB3ZSBuZWVkIHRvIHVwZGF0ZSByZWxhdGVkIGFyaWEgcHJvcGVydGllcy5cbiAgICAgIHRoaXMuX3N5bmMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9maW5kU2xvdFBvc2l0aW9uKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuICF0aGlzLmlucHV0IHx8XG4gICAgICB0aGlzLmNvbXBhcmVEb2N1bWVudFBvc2l0aW9uKHRoaXMuaW5wdXQpICYgTm9kZS5ET0NVTUVOVF9QT1NJVElPTl9GT0xMT1dJTkdcbiAgICAgID8gJ3ByZWZpeCdcbiAgICAgIDogJ3N1ZmZpeCc7XG4gIH1cblxuICBwcml2YXRlIF9zeW5jKCk6IHZvaWQge1xuICAgIHRoaXMuc3luY0RhdGVJbnB1dFN0YXRlKCk7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgdGhpcy5kaXNhYmxlZCk7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHRoaXMucmVtb3ZlQXR0cmlidXRlKCd0YWJpbmRleCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnNldEF0dHJpYnV0ZSgndGFiaW5kZXgnLCAnMCcpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBzeW5jRGF0ZUlucHV0U3RhdGUoKTogdm9pZCB7XG4gICAgdGhpcy5faW5wdXREaXNhYmxlZCA9IHRoaXMuaW5wdXQhLmRpc2FibGVkIHx8IHRoaXMuaW5wdXQhLnJlYWRPbmx5O1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlclRlbXBsYXRlKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGA8c2JiLWljb24gbmFtZT0ke3RoaXMuaWNvbk5hbWV9Pjwvc2JiLWljb24+YDtcbiAgfVxufVxuXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgU2JiRGF0ZXBpY2tlckJ1dHRvbjxUID0gRGF0ZT4gZXh0ZW5kcyBTYmJEYXRlcGlja2VyQnV0dG9uQmFzZTxUPiB7XG4gIC8qKiBXaGV0aGVyIHRoZSBjb21wb25lbnQgaXMgZGlzYWJsZWQgZHVlIGRhdGUgZXF1YWxzIHRvIGJvdW5kYXJ5IGRhdGUuICovXG4gIHByaXZhdGUgX2Rpc2FibGVkID0gdHJ1ZTtcblxuICBwcm90ZWN0ZWQgYWJzdHJhY3QgaTE4bk9mZkJvdW5kYXJ5RGF5OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICBwcm90ZWN0ZWQgYWJzdHJhY3QgaTE4blNlbGVjdE9mZkJvdW5kYXJ5RGF5OiAoX2N1cnJlbnREYXRlOiBzdHJpbmcpID0+IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQgfHwgc3VwZXIuZGlzYWJsZWQ7XG4gIH1cblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoKSA9PiB0aGlzLl9oYW5kbGVDbGljaygpKTtcbiAgfVxuXG4gIC8qKiBAZGVwcmVjYXRlZCBVc2UgYGdldEZvbGxvd2luZ0RhdGUoZGF0ZTogVClgIGluc3RlYWQuICovXG4gIHByb3RlY3RlZCBmaW5kQXZhaWxhYmxlRGF0ZShfZGF0ZTogVCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5nZXRGb2xsb3dpbmdEYXRlKF9kYXRlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhYnN0cmFjdCBnZXRGb2xsb3dpbmdEYXRlKF9kYXRlOiBUKTogVCB8IG51bGw7XG5cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xpY2soKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmlucHV0IHx8IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3Qgc3RhcnRpbmdEYXRlOiBUID0gdGhpcy5pbnB1dC52YWx1ZUFzRGF0ZSA/PyB0aGlzLmRhdGVBZGFwdGVyLnRvZGF5KCk7XG4gICAgY29uc3QgZGF0ZSA9IHRoaXMuZ2V0Rm9sbG93aW5nRGF0ZShzdGFydGluZ0RhdGUpO1xuICAgIGlmICh0aGlzLmRhdGVBZGFwdGVyLmlzVmFsaWQoZGF0ZSkgJiYgdGhpcy5kYXRlQWRhcHRlci5jb21wYXJlRGF0ZShkYXRlLCBzdGFydGluZ0RhdGUpICE9PSAwKSB7XG4gICAgICB0aGlzLmlucHV0LnZhbHVlQXNEYXRlID0gZGF0ZTtcbiAgICAgIHRoaXMuaW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICAgIHRoaXMuaW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgICAgLy8gRW1pdCBibHVyIGV2ZW50IHdoZW4gdmFsdWUgaXMgY2hhbmdlZCBwcm9ncmFtbWF0aWNhbGx5IHRvIG5vdGlmeVxuICAgICAgLy8gZnJhbWV3b3JrcyB0aGF0IHJlbHkgb24gdGhhdCBldmVudCB0byB1cGRhdGUgZm9ybSBzdGF0dXMuXG4gICAgICB0aGlzLmlucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdibHVyJywgeyBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHN5bmNEYXRlSW5wdXRTdGF0ZSgpOiB2b2lkIHtcbiAgICBzdXBlci5zeW5jRGF0ZUlucHV0U3RhdGUoKTtcbiAgICBpZiAoIXRoaXMuZGF0ZUFkYXB0ZXIuaXNWYWxpZCh0aGlzLmlucHV0IS52YWx1ZUFzRGF0ZSkpIHtcbiAgICAgIHRoaXMuX2Rpc2FibGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFMYWJlbCA9IHRoaXMuaTE4bk9mZkJvdW5kYXJ5RGF5W3RoaXMubGFuZ3VhZ2UuY3VycmVudF07XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZGF0ZSA9IHRoaXMuZ2V0Rm9sbG93aW5nRGF0ZSh0aGlzLmlucHV0IS52YWx1ZUFzRGF0ZSk7XG4gICAgdGhpcy5fZGlzYWJsZWQgPVxuICAgICAgIXRoaXMuZGF0ZUFkYXB0ZXIuaXNWYWxpZChkYXRlKSB8fFxuICAgICAgdGhpcy5kYXRlQWRhcHRlci5jb21wYXJlRGF0ZShkYXRlLCB0aGlzLmlucHV0IS52YWx1ZUFzRGF0ZSkgPT09IDA7XG4gICAgY29uc3QgY3VycmVudERhdGVTdHJpbmcgPVxuICAgICAgdGhpcy5kYXRlQWRhcHRlci5jb21wYXJlRGF0ZSh0aGlzLmRhdGVBZGFwdGVyLnRvZGF5KCksIHRoaXMuaW5wdXQhLnZhbHVlQXNEYXRlKSA9PT0gMFxuICAgICAgICA/IGkxOG5Ub2RheVt0aGlzLmxhbmd1YWdlLmN1cnJlbnRdLnRvTG93ZXJDYXNlKClcbiAgICAgICAgOiB0aGlzLmRhdGVBZGFwdGVyLmdldEFjY2Vzc2liaWxpdHlGb3JtYXREYXRlKHRoaXMuaW5wdXQhLnZhbHVlQXNEYXRlKTtcbiAgICB0aGlzLmludGVybmFscy5hcmlhTGFiZWwgPVxuICAgICAgdGhpcy5pMThuU2VsZWN0T2ZmQm91bmRhcnlEYXkoY3VycmVudERhdGVTdHJpbmcpW3RoaXMubGFuZ3VhZ2UuY3VycmVudF07XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7QUNxQkEsSUFBYSx3QkFBd0IsZ0dBQXNDO0lBRXJELGlDQUF1QjttQkFDbkMsaUJBQWlCLHFCQUFxQjs7OztjQUQxQixnQ0FDWixZQUFzQzs7O0FBYTlCLFNBQUEseUJBQUEsa0JBQUEsTUFBQSxxQkFBdUMsS0FBSTs7QUFRbkQsUUFBQSxrQkFBYyxrQkFBQSxNQUFBLHlCQUFBLEVBQUc7QUFJZixRQUFBLGNBQThCLFlBQVksQ0FBQyxVQUFVLGVBQWU7QUFDcEUsUUFBQSxXQUFXLElBQUksc0JBQXNCLEtBQUs7Ozs7d0JBZm5ELGFBQWEsRUFDYixVQUFVLENBQUE7QUFDWCxnQkFBQSxNQUFBLE1BQUEsbUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxXQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQUssTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFMLFFBQUs7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxxQkFBQSx5QkFBQTs7Ozs7Ozs7O0FBVkUsUUFBQSxzQkFBd0MsQ0FBQyxlQUFlOzs7QUFDeEQsUUFBQSx5QkFBeUI7O0VBU2hEOzs7Ozs7RUFBQSxJQUFnQixRQUFLO0FBQUEsVUFBQSxNQUFBOztFQUFyQixJQUFnQixNQUFLLE9BQUE7QUFBQSxTQUFBLHlCQUFB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
@@ -1,211 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { html, isServer, nothing, unsafeCSS } from "lit";
3
- import { property } from "lit/decorators.js";
4
- import { SbbLanguageController, SbbUpdateSchedulerMixin, defaultDateAdapter, forceType, i18nDateChangedTo, idReference, readConfig } from "./core.js";
5
- import { SbbDateInputElement } from "./date-input.pure.js";
6
- import { SbbCalendarElement } from "./calendar.pure.js";
7
- import { SbbPopoverBaseElement } from "./popover.pure.js";
8
- //#region src/elements/datepicker/datepicker/datepicker.scss?inline
9
- var datepicker_default = "#status-container {\n border: 0;\n clip-path: rect(0 0 0 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n white-space: nowrap;\n width: 1px;\n}";
10
- //#endregion
11
- //#region src/elements/datepicker/datepicker/datepicker.component.ts
12
- var nextId = 0;
13
- /**
14
- * A datepicker component that allows users to select a date from a calendar view.
15
- * @event {CustomEvent<T>} dateselected - Event emitted on date selection.
16
- */
17
- var SbbDatepickerElement = (() => {
18
- let _classSuper = SbbUpdateSchedulerMixin(SbbPopoverBaseElement);
19
- let _wide_decorators;
20
- let _wide_initializers = [];
21
- let _wide_extraInitializers = [];
22
- let _input_decorators;
23
- let _input_initializers = [];
24
- let _input_extraInitializers = [];
25
- let _view_decorators;
26
- let _view_initializers = [];
27
- let _view_extraInitializers = [];
28
- return class SbbDatepickerElement extends _classSuper {
29
- static {
30
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
31
- _wide_decorators = [forceType(), property({ type: Boolean })];
32
- _input_decorators = [idReference(), property()];
33
- _view_decorators = [property()];
34
- __esDecorate(this, null, _wide_decorators, {
35
- kind: "accessor",
36
- name: "wide",
37
- static: false,
38
- private: false,
39
- access: {
40
- has: (obj) => "wide" in obj,
41
- get: (obj) => obj.wide,
42
- set: (obj, value) => {
43
- obj.wide = value;
44
- }
45
- },
46
- metadata: _metadata
47
- }, _wide_initializers, _wide_extraInitializers);
48
- __esDecorate(this, null, _input_decorators, {
49
- kind: "accessor",
50
- name: "input",
51
- static: false,
52
- private: false,
53
- access: {
54
- has: (obj) => "input" in obj,
55
- get: (obj) => obj.input,
56
- set: (obj, value) => {
57
- obj.input = value;
58
- }
59
- },
60
- metadata: _metadata
61
- }, _input_initializers, _input_extraInitializers);
62
- __esDecorate(this, null, _view_decorators, {
63
- kind: "accessor",
64
- name: "view",
65
- static: false,
66
- private: false,
67
- access: {
68
- has: (obj) => "view" in obj,
69
- get: (obj) => obj.view,
70
- set: (obj, value) => {
71
- obj.view = value;
72
- }
73
- },
74
- metadata: _metadata
75
- }, _view_initializers, _view_extraInitializers);
76
- if (_metadata) Object.defineProperty(this, Symbol.metadata, {
77
- enumerable: true,
78
- configurable: true,
79
- writable: true,
80
- value: _metadata
81
- });
82
- }
83
- static {
84
- this.elementName = "sbb-datepicker";
85
- }
86
- static {
87
- this.elementDependencies = [SbbCalendarElement];
88
- }
89
- static {
90
- this.styles = [SbbPopoverBaseElement.styles, unsafeCSS(datepicker_default)];
91
- }
92
- static {
93
- this.sbbDateInputAssociated = true;
94
- }
95
- #wide_accessor_storage;
96
- /** If set to true, two months are displayed. */
97
- get wide() {
98
- return this.#wide_accessor_storage;
99
- }
100
- set wide(value) {
101
- this.#wide_accessor_storage = value;
102
- }
103
- #input_accessor_storage;
104
- /**
105
- * Reference to the sbb-date-input instance or the native input connected to the datepicker.
106
- *
107
- * For attribute usage, provide an id reference.
108
- */
109
- get input() {
110
- return this.#input_accessor_storage;
111
- }
112
- set input(value) {
113
- this.#input_accessor_storage = value;
114
- }
115
- #view_accessor_storage;
116
- /** The initial view of calendar which should be displayed on opening. */
117
- get view() {
118
- return this.#view_accessor_storage;
119
- }
120
- set view(value) {
121
- this.#view_accessor_storage = value;
122
- }
123
- constructor() {
124
- super();
125
- this.#wide_accessor_storage = __runInitializers(this, _wide_initializers, false);
126
- this.#input_accessor_storage = (__runInitializers(this, _wide_extraInitializers), __runInitializers(this, _input_initializers, null));
127
- this.#view_accessor_storage = (__runInitializers(this, _input_extraInitializers), __runInitializers(this, _view_initializers, "day"));
128
- this._inputAbortController = __runInitializers(this, _view_extraInitializers);
129
- this._dateAdapter = readConfig().datetime?.dateAdapter ?? defaultDateAdapter;
130
- this._language = new SbbLanguageController(this);
131
- this._ready = false;
132
- this.startUpdate();
133
- this.addEventListener(SbbPopoverBaseElement.events.beforeopen, () => {
134
- this.shadowRoot?.querySelector("sbb-calendar")?.resetPosition?.();
135
- });
136
- if (!isServer && this.hydrationRequired) this.hydrationComplete.then(() => this.requestUpdate());
137
- }
138
- connectedCallback() {
139
- this.id ||= `sbb-datepicker-${++nextId}`;
140
- super.connectedCallback();
141
- const formField = this.closest?.("sbb-form-field");
142
- if (formField) {
143
- SbbDateInputElement.resolveAssociation(this);
144
- const toggle = formField.querySelector("sbb-datepicker-toggle");
145
- if (toggle && !toggle.hasAttribute("datepicker")) toggle.datepicker ??= this;
146
- }
147
- }
148
- requestUpdate(name, oldValue, options) {
149
- super.requestUpdate(name, oldValue, options);
150
- if (name === "input" && this.input !== oldValue) {
151
- this._inputAbortController?.abort();
152
- if (this.input) {
153
- const { signal } = this._inputAbortController = new AbortController();
154
- this.input?.addEventListener("ɵchange", () => {
155
- super.requestUpdate();
156
- this._updateStatus();
157
- }, { signal });
158
- }
159
- }
160
- }
161
- firstUpdated(changedProperties) {
162
- super.firstUpdated(changedProperties);
163
- setTimeout(() => {
164
- this._ready = true;
165
- this.requestUpdate();
166
- this.completeUpdate();
167
- });
168
- }
169
- _updateStatus() {
170
- const status = this.shadowRoot?.getElementById("status-container");
171
- if (!status) return;
172
- const text = this._dateAdapter.isValid(this.input?.valueAsDate) ? `${i18nDateChangedTo[this._language.current]} ${this._dateAdapter.format(this.input.valueAsDate, { weekdayStyle: "long" })}` : "";
173
- if (status.textContent !== text) status.textContent = text;
174
- }
175
- renderContent() {
176
- return html`
177
- <p id="status-container" role="status"></p>
178
- <sbb-calendar
179
- .view=${this.view}
180
- .min=${this.input?.min ?? null}
181
- .max=${this.input?.max ?? null}
182
- .dateFilter=${this.input?.dateFilter ?? null}
183
- .selected=${this.input?.valueAsDate ?? null}
184
- ?wide=${this.wide}
185
- @dateselected=${(d) => {
186
- if (this.input) {
187
- this.input.valueAsDate = d.detail;
188
- this.input.dispatchEvent(new InputEvent("input", {
189
- bubbles: true,
190
- composed: true
191
- }));
192
- this.input.dispatchEvent(new Event("change", {
193
- bubbles: true,
194
- composed: true
195
- }));
196
- this.input.dispatchEvent(new Event("blur", { composed: true }));
197
- this.close();
198
- }
199
- }}
200
- ></sbb-calendar>
201
- `;
202
- }
203
- render() {
204
- return isServer || this.hydrationRequired || !this._ready ? html`${nothing}` : super.render();
205
- }
206
- };
207
- })();
208
- //#endregion
209
- export { SbbDatepickerElement as t };
210
-
211
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQtQkVpTVlFYy0uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci9kYXRlcGlja2VyLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2RhdGVwaWNrZXIvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG4jc3RhdHVzLWNvbnRhaW5lciB7XG4gIEBpbmNsdWRlIHNiYi5zY3JlZW4tcmVhZGVyLW9ubHk7XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eURlY2xhcmF0aW9uLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5pbXBvcnQgeyBwcm9wZXJ0eSB9IGZyb20gJ2xpdC9kZWNvcmF0b3JzLmpzJztcblxuaW1wb3J0IHsgU2JiQ2FsZW5kYXJFbGVtZW50LCB0eXBlIENhbGVuZGFyVmlldyB9IGZyb20gJy4uLy4uL2NhbGVuZGFyLnB1cmUudHMnO1xuaW1wb3J0IHsgdHlwZSBTYmJFbGVtZW50VHlwZSwgdHlwZSBEYXRlQWRhcHRlciwgZGVmYXVsdERhdGVBZGFwdGVyIH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQge1xuICByZWFkQ29uZmlnLFxuICBTYmJMYW5ndWFnZUNvbnRyb2xsZXIsXG4gIGZvcmNlVHlwZSxcbiAgaWRSZWZlcmVuY2UsXG4gIGkxOG5EYXRlQ2hhbmdlZFRvLFxuICBTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbixcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyB0eXBlIFNiYkRhdGVJbnB1dEFzc29jaWF0ZWQsIFNiYkRhdGVJbnB1dEVsZW1lbnQgfSBmcm9tICcuLi8uLi9kYXRlLWlucHV0LnB1cmUudHMnO1xuaW1wb3J0IHsgU2JiUG9wb3ZlckJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vcG9wb3Zlci5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRGF0ZXBpY2tlclRvZ2dsZUVsZW1lbnQgfSBmcm9tICcuLi9kYXRlcGlja2VyLXRvZ2dsZS9kYXRlcGlja2VyLXRvZ2dsZS5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9kYXRlcGlja2VyLnNjc3M/aW5saW5lJztcblxubGV0IG5leHRJZCA9IDA7XG5cbi8qKlxuICogQSBkYXRlcGlja2VyIGNvbXBvbmVudCB0aGF0IGFsbG93cyB1c2VycyB0byBzZWxlY3QgYSBkYXRlIGZyb20gYSBjYWxlbmRhciB2aWV3LlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxUPn0gZGF0ZXNlbGVjdGVkIC0gRXZlbnQgZW1pdHRlZCBvbiBkYXRlIHNlbGVjdGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYkRhdGVwaWNrZXJFbGVtZW50PFQgPSBEYXRlPlxuICBleHRlbmRzIFNiYlVwZGF0ZVNjaGVkdWxlck1peGluKFNiYlBvcG92ZXJCYXNlRWxlbWVudClcbiAgaW1wbGVtZW50cyBTYmJEYXRlSW5wdXRBc3NvY2lhdGVkPFQ+XG57XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItZGF0ZXBpY2tlcic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgZWxlbWVudERlcGVuZGVuY2llczogU2JiRWxlbWVudFR5cGVbXSA9IFtTYmJDYWxlbmRhckVsZW1lbnRdO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbU2JiUG9wb3ZlckJhc2VFbGVtZW50LnN0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgc2JiRGF0ZUlucHV0QXNzb2NpYXRlZCA9IHRydWU7XG5cbiAgLyoqIElmIHNldCB0byB0cnVlLCB0d28gbW9udGhzIGFyZSBkaXNwbGF5ZWQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciB3aWRlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFJlZmVyZW5jZSB0byB0aGUgc2JiLWRhdGUtaW5wdXQgaW5zdGFuY2Ugb3IgdGhlIG5hdGl2ZSBpbnB1dCBjb25uZWN0ZWQgdG8gdGhlIGRhdGVwaWNrZXIuXG4gICAqXG4gICAqIEZvciBhdHRyaWJ1dGUgdXNhZ2UsIHByb3ZpZGUgYW4gaWQgcmVmZXJlbmNlLlxuICAgKi9cbiAgQGlkUmVmZXJlbmNlKClcbiAgQHByb3BlcnR5KClcbiAgcHVibGljIGFjY2Vzc29yIGlucHV0OiBTYmJEYXRlSW5wdXRFbGVtZW50PFQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFRoZSBpbml0aWFsIHZpZXcgb2YgY2FsZW5kYXIgd2hpY2ggc2hvdWxkIGJlIGRpc3BsYXllZCBvbiBvcGVuaW5nLiAqL1xuICBAcHJvcGVydHkoKSBwdWJsaWMgYWNjZXNzb3IgdmlldzogQ2FsZW5kYXJWaWV3ID0gJ2RheSc7XG5cbiAgcHJpdmF0ZSBfaW5wdXRBYm9ydENvbnRyb2xsZXI/OiBBYm9ydENvbnRyb2xsZXI7XG4gIHByaXZhdGUgX2RhdGVBZGFwdGVyOiBEYXRlQWRhcHRlcjxUPiA9IHJlYWRDb25maWcoKS5kYXRldGltZT8uZGF0ZUFkYXB0ZXIgPz8gZGVmYXVsdERhdGVBZGFwdGVyO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX3JlYWR5ID0gZmFsc2U7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5zdGFydFVwZGF0ZSgpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihTYmJQb3BvdmVyQmFzZUVsZW1lbnQuZXZlbnRzLmJlZm9yZW9wZW4sICgpID0+IHtcbiAgICAgIHRoaXMuc2hhZG93Um9vdD8ucXVlcnlTZWxlY3Rvcignc2JiLWNhbGVuZGFyJyk/LnJlc2V0UG9zaXRpb24/LigpO1xuICAgIH0pO1xuICAgIGlmICghaXNTZXJ2ZXIgJiYgdGhpcy5oeWRyYXRpb25SZXF1aXJlZCkge1xuICAgICAgdGhpcy5oeWRyYXRpb25Db21wbGV0ZS50aGVuKCgpID0+IHRoaXMucmVxdWVzdFVwZGF0ZSgpKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy5pZCB8fD0gYHNiYi1kYXRlcGlja2VyLSR7KytuZXh0SWR9YDtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgY29uc3QgZm9ybUZpZWxkID0gdGhpcy5jbG9zZXN0Py4oJ3NiYi1mb3JtLWZpZWxkJyk7XG4gICAgaWYgKGZvcm1GaWVsZCkge1xuICAgICAgU2JiRGF0ZUlucHV0RWxlbWVudC5yZXNvbHZlQXNzb2NpYXRpb24odGhpcyk7XG4gICAgICBjb25zdCB0b2dnbGUgPVxuICAgICAgICBmb3JtRmllbGQucXVlcnlTZWxlY3RvcjxTYmJEYXRlcGlja2VyVG9nZ2xlRWxlbWVudDxUPj4oJ3NiYi1kYXRlcGlja2VyLXRvZ2dsZScpO1xuICAgICAgaWYgKHRvZ2dsZSAmJiAhdG9nZ2xlLmhhc0F0dHJpYnV0ZSgnZGF0ZXBpY2tlcicpKSB7XG4gICAgICAgIHRvZ2dsZS5kYXRlcGlja2VyID8/PSB0aGlzO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSByZXF1ZXN0VXBkYXRlKFxuICAgIG5hbWU/OiBQcm9wZXJ0eUtleSxcbiAgICBvbGRWYWx1ZT86IHVua25vd24sXG4gICAgb3B0aW9ucz86IFByb3BlcnR5RGVjbGFyYXRpb24sXG4gICk6IHZvaWQge1xuICAgIHN1cGVyLnJlcXVlc3RVcGRhdGUobmFtZSwgb2xkVmFsdWUsIG9wdGlvbnMpO1xuICAgIGlmIChuYW1lID09PSAnaW5wdXQnICYmIHRoaXMuaW5wdXQgIT09IG9sZFZhbHVlKSB7XG4gICAgICB0aGlzLl9pbnB1dEFib3J0Q29udHJvbGxlcj8uYWJvcnQoKTtcbiAgICAgIGlmICh0aGlzLmlucHV0KSB7XG4gICAgICAgIGNvbnN0IHsgc2lnbmFsIH0gPSAodGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCkpO1xuICAgICAgICB0aGlzLmlucHV0Py5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAgICfJtWNoYW5nZScsXG4gICAgICAgICAgKCkgPT4ge1xuICAgICAgICAgICAgc3VwZXIucmVxdWVzdFVwZGF0ZSgpO1xuICAgICAgICAgICAgdGhpcy5fdXBkYXRlU3RhdHVzKCk7XG4gICAgICAgICAgfSxcbiAgICAgICAgICB7IHNpZ25hbCB9LFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIC8vIFdlIHdhbnQgdG8gZGVsYXkgdGhlIHJlbmRlcmluZyBvZiB0aGUgY2FsZW5kYXIgdG8gYXZvaWQgYSBzbG93IGluaXRpYWwgcmVuZGVyLlxuICAgICAgLy8gVGhlIHNsb3cgcmVuZGVyIGNhbiBiZSBhIHByb2JsZW0gaWYgYSBsYXJnZSBhbW91bnQgb2YgZGF0ZXBpY2tlcnMgYXJlIHJlbmRlcmVkIGF0IG9uY2UuXG4gICAgICB0aGlzLl9yZWFkeSA9IHRydWU7XG4gICAgICB0aGlzLnJlcXVlc3RVcGRhdGUoKTtcbiAgICAgIHRoaXMuY29tcGxldGVVcGRhdGUoKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVN0YXR1cygpOiB2b2lkIHtcbiAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnNoYWRvd1Jvb3Q/LmdldEVsZW1lbnRCeUlkKCdzdGF0dXMtY29udGFpbmVyJyk7XG4gICAgaWYgKCFzdGF0dXMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB0ZXh0ID0gdGhpcy5fZGF0ZUFkYXB0ZXIuaXNWYWxpZCh0aGlzLmlucHV0Py52YWx1ZUFzRGF0ZSlcbiAgICAgID8gYCR7aTE4bkRhdGVDaGFuZ2VkVG9bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19ICR7dGhpcy5fZGF0ZUFkYXB0ZXIuZm9ybWF0KFxuICAgICAgICAgIHRoaXMuaW5wdXQhLnZhbHVlQXNEYXRlLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHdlZWtkYXlTdHlsZTogJ2xvbmcnLFxuICAgICAgICAgIH0sXG4gICAgICAgICl9YFxuICAgICAgOiAnJztcbiAgICBpZiAoc3RhdHVzLnRleHRDb250ZW50ICE9PSB0ZXh0KSB7XG4gICAgICBzdGF0dXMudGV4dENvbnRlbnQgPSB0ZXh0O1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXJDb250ZW50KCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxwIGlkPVwic3RhdHVzLWNvbnRhaW5lclwiIHJvbGU9XCJzdGF0dXNcIj48L3A+XG4gICAgICA8c2JiLWNhbGVuZGFyXG4gICAgICAgIC52aWV3PSR7dGhpcy52aWV3fVxuICAgICAgICAubWluPSR7dGhpcy5pbnB1dD8ubWluID8/IG51bGx9XG4gICAgICAgIC5tYXg9JHt0aGlzLmlucHV0Py5tYXggPz8gbnVsbH1cbiAgICAgICAgLmRhdGVGaWx0ZXI9JHt0aGlzLmlucHV0Py5kYXRlRmlsdGVyID8/IG51bGx9XG4gICAgICAgIC5zZWxlY3RlZD0ke3RoaXMuaW5wdXQ/LnZhbHVlQXNEYXRlID8/IG51bGx9XG4gICAgICAgID93aWRlPSR7dGhpcy53aWRlfVxuICAgICAgICBAZGF0ZXNlbGVjdGVkPSR7KGQ6IEN1c3RvbUV2ZW50PFQ+KSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuaW5wdXQpIHtcbiAgICAgICAgICAgIHRoaXMuaW5wdXQudmFsdWVBc0RhdGUgPSBkLmRldGFpbDtcbiAgICAgICAgICAgIHRoaXMuaW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICAgICAgICAgIHRoaXMuaW5wdXQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgICAgICAgICAgLy8gRW1pdCBibHVyIGV2ZW50IHdoZW4gdmFsdWUgaXMgY2hhbmdlZCBwcm9ncmFtbWF0aWNhbGx5IHRvIG5vdGlmeVxuICAgICAgICAgICAgLy8gZnJhbWV3b3JrcyB0aGF0IHJlbHkgb24gdGhhdCBldmVudCB0byB1cGRhdGUgZm9ybSBzdGF0dXMuXG4gICAgICAgICAgICB0aGlzLmlucHV0LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdibHVyJywgeyBjb21wb3NlZDogdHJ1ZSB9KSk7XG4gICAgICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICAgICAgfVxuICAgICAgICB9fVxuICAgICAgPjwvc2JiLWNhbGVuZGFyPlxuICAgIGA7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaXNTZXJ2ZXIgfHwgdGhpcy5oeWRyYXRpb25SZXF1aXJlZCB8fCAhdGhpcy5fcmVhZHkgPyBodG1sYCR7bm90aGluZ31gIDogc3VwZXIucmVuZGVyKCk7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1kYXRlcGlja2VyJzogU2JiRGF0ZXBpY2tlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7QUM0QkEsSUFBSSxTQUFTOzs7OztJQU1BLDhCQUFvQjttQkFDdkIsd0JBQXdCLHNCQUFzQjs7Ozs7Ozs7OztjQUQzQyw2QkFDSCxZQUE4Qzs7O3VCQVNyRCxXQUFXLEVBQ1gsU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFDLENBQUE7d0JBUTNCLGFBQWEsRUFDYixVQUFVLENBQUE7dUJBSVYsVUFBVSxDQUFBO0FBWlgsZ0JBQUEsTUFBQSxNQUFBLGtCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsVUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFJLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBSixPQUFJOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsb0JBQUEsd0JBQUE7QUFTcEIsZ0JBQUEsTUFBQSxNQUFBLG1CQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsV0FBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFLLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBTCxRQUFLOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEscUJBQUEseUJBQUE7QUFHVCxnQkFBQSxNQUFBLE1BQUEsa0JBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxVQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQUksTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFKLE9BQUk7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxvQkFB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
@@ -1,165 +0,0 @@
1
- import { __esDecorate, __runInitializers } from "tslib";
2
- import { html, unsafeCSS } from "lit";
3
- import { property } from "lit/decorators.js";
4
- import { SbbDisabledMixin, SbbElement, boxSizingStyles, forceType } from "./core.js";
5
- import { SbbIconNameMixin } from "./icon.pure.js";
6
- import { ResizeController } from "@lit-labs/observers/resize-controller.js";
7
- //#region src/elements/toggle/toggle-option/toggle-option.scss?inline
8
- var toggle_option_default = ":host {\n --sbb-toggle-option-cursor: var(--sbb-cursor-pointer);\n --sbb-toggle-option-color: var(--sbb-color-anthracite);\n --sbb-toggle-option-color: light-dark(var(--sbb-color-anthracite), var(--sbb-color-cloud));\n --sbb-toggle-option-icon-min-size: var(--sbb-size-icon-ui-small);\n display: inline-block;\n overflow: hidden;\n outline: none !important;\n}\n\n:host([checked]) {\n --sbb-toggle-option-color: var(--sbb-color-2);\n}\n\n:host([disabled]) {\n --sbb-toggle-option-cursor: unset;\n --sbb-toggle-option-color: var(--sbb-color-anthracite);\n --sbb-toggle-option-color: light-dark(var(--sbb-color-anthracite), var(--sbb-color-cloud));\n}\n\n.sbb-toggle-option {\n --sbb-text-font-size: var(--sbb-text-font-size-xs);\n font-family: var(--sbb-typo-font-family);\n font-weight: normal;\n line-height: var(--sbb-typo-line-height-text);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n font-size: var(--sbb-text-font-size);\n font-weight: bold;\n display: flex;\n justify-content: center;\n align-items: center;\n gap: var(--sbb-spacing-fixed-1x);\n height: var(--sbb-toggle-height);\n padding-inline: var(--sbb-toggle-padding-inline);\n color: var(--sbb-toggle-option-color);\n cursor: var(--sbb-toggle-option-cursor);\n}\n\n.sbb-toggle-option__label {\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n}\n\nsbb-icon,\n::slotted(sbb-icon) {\n min-width: var(--sbb-toggle-option-icon-min-size);\n min-height: var(--sbb-toggle-option-icon-min-size);\n}";
9
- //#endregion
10
- //#region src/elements/toggle/toggle-option/toggle-option.component.ts
11
- /**
12
- * It displays a toggle option within a `sbb-toggle`.
13
- *
14
- * @slot - Use the unnamed slot to add content to the label of the toggle option.
15
- * @slot icon - Slot used to render the `sbb-icon`.
16
- * @overrideType value - (T = string) | null
17
- */
18
- var SbbToggleOptionElement = (() => {
19
- let _classSuper = SbbDisabledMixin(SbbIconNameMixin(SbbElement));
20
- let _checked_decorators;
21
- let _checked_initializers = [];
22
- let _checked_extraInitializers = [];
23
- let _value_decorators;
24
- let _value_initializers = [];
25
- let _value_extraInitializers = [];
26
- return class SbbToggleOptionElement extends _classSuper {
27
- static {
28
- const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
29
- _checked_decorators = [forceType(), property({
30
- reflect: true,
31
- type: Boolean
32
- })];
33
- _value_decorators = [property()];
34
- __esDecorate(this, null, _checked_decorators, {
35
- kind: "accessor",
36
- name: "checked",
37
- static: false,
38
- private: false,
39
- access: {
40
- has: (obj) => "checked" in obj,
41
- get: (obj) => obj.checked,
42
- set: (obj, value) => {
43
- obj.checked = value;
44
- }
45
- },
46
- metadata: _metadata
47
- }, _checked_initializers, _checked_extraInitializers);
48
- __esDecorate(this, null, _value_decorators, {
49
- kind: "accessor",
50
- name: "value",
51
- static: false,
52
- private: false,
53
- access: {
54
- has: (obj) => "value" in obj,
55
- get: (obj) => obj.value,
56
- set: (obj, value) => {
57
- obj.value = value;
58
- }
59
- },
60
- metadata: _metadata
61
- }, _value_initializers, _value_extraInitializers);
62
- if (_metadata) Object.defineProperty(this, Symbol.metadata, {
63
- enumerable: true,
64
- configurable: true,
65
- writable: true,
66
- value: _metadata
67
- });
68
- }
69
- static {
70
- this.elementName = "sbb-toggle-option";
71
- }
72
- static {
73
- this.role = "radio";
74
- }
75
- static {
76
- this.styles = [boxSizingStyles, unsafeCSS(toggle_option_default)];
77
- }
78
- #checked_accessor_storage;
79
- /** Whether the toggle-option is checked. */
80
- get checked() {
81
- return this.#checked_accessor_storage;
82
- }
83
- set checked(value) {
84
- this.#checked_accessor_storage = value;
85
- }
86
- #value_accessor_storage;
87
- /** Value of toggle-option. */
88
- get value() {
89
- return this.#value_accessor_storage;
90
- }
91
- set value(value) {
92
- this.#value_accessor_storage = value;
93
- }
94
- constructor() {
95
- super();
96
- this.#checked_accessor_storage = __runInitializers(this, _checked_initializers, false);
97
- this.#value_accessor_storage = (__runInitializers(this, _checked_extraInitializers), __runInitializers(this, _value_initializers, null));
98
- this._toggle = (__runInitializers(this, _value_extraInitializers), null);
99
- this.addEventListener?.("input", () => this._handleInput());
100
- this.addEventListener?.("click", () => {
101
- if (!this.disabled && !this.checked) this.dispatchEvent(new InputEvent("input", {
102
- bubbles: true,
103
- composed: true
104
- }));
105
- });
106
- this.addController(new ResizeController(this, {
107
- skipInitial: true,
108
- callback: () => this._toggle?.updatePillPosition?.(true)
109
- }));
110
- }
111
- connectedCallback() {
112
- super.connectedCallback();
113
- this._toggle = this.closest?.("sbb-toggle") ?? null;
114
- this._verifyTabindex();
115
- this._toggle?.updatePillPosition?.(true);
116
- }
117
- disconnectedCallback() {
118
- super.disconnectedCallback();
119
- this._toggle = null;
120
- }
121
- firstUpdated(changedProperties) {
122
- super.firstUpdated(changedProperties);
123
- this._toggle?.updatePillPosition?.(true);
124
- }
125
- willUpdate(changedProperties) {
126
- super.willUpdate(changedProperties);
127
- if (changedProperties.has("checked")) {
128
- this.internals.ariaChecked = `${this.checked}`;
129
- this._verifyTabindex();
130
- if (this.checked) this._uncheckOtherOptions();
131
- }
132
- if (changedProperties.has("disabled")) this._handleDisabledChange();
133
- }
134
- _uncheckOtherOptions() {
135
- this._toggle?.options.filter((o) => o !== this).forEach((o) => o.checked = false);
136
- this._toggle?.statusChanged();
137
- }
138
- _handleDisabledChange() {
139
- this.internals.ariaDisabled = this.disabled ? "true" : null;
140
- this._verifyTabindex();
141
- }
142
- _handleInput() {
143
- if (this.disabled) return;
144
- this.checked = true;
145
- this._uncheckOtherOptions();
146
- }
147
- _verifyTabindex() {
148
- this.tabIndex = this.checked && !this.disabled ? 0 : -1;
149
- }
150
- render() {
151
- return html`
152
- <div class="sbb-toggle-option">
153
- ${this.renderIconSlot()}
154
- <span class="sbb-toggle-option__label">
155
- <slot></slot>
156
- </span>
157
- </div>
158
- `;
159
- }
160
- };
161
- })();
162
- //#endregion
163
- export { SbbToggleOptionElement as t };
164
-
165
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLW9wdGlvbi5jb21wb25lbnQtQldUNGtFWm8uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RvZ2dsZS90b2dnbGUtb3B0aW9uL3RvZ2dsZS1vcHRpb24uc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9nZ2xlL3RvZ2dsZS1vcHRpb24vdG9nZ2xlLW9wdGlvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi10b2dnbGUtb3B0aW9uLWN1cnNvcjogdmFyKC0tc2JiLWN1cnNvci1wb2ludGVyKTtcbiAgLS1zYmItdG9nZ2xlLW9wdGlvbi1jb2xvcjogbGlnaHQtZGFyayh2YXIoLS1zYmItY29sb3ItYW50aHJhY2l0ZSksIHZhcigtLXNiYi1jb2xvci1jbG91ZCkpO1xuICAtLXNiYi10b2dnbGUtb3B0aW9uLWljb24tbWluLXNpemU6IHZhcigtLXNiYi1zaXplLWljb24tdWktc21hbGwpO1xuXG4gIGRpc3BsYXk6IGlubGluZS1ibG9jaztcbiAgb3ZlcmZsb3c6IGhpZGRlbjtcblxuICAvLyBVc2UgIWltcG9ydGFudCBoZXJlIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBGaXJlZm94IGZvY3VzIHJpbmcgZGVmaW5pdGlvblxuICAvLyB3aGljaCBhcHBlYXJzIGluIG5vcm1hbGl6ZSBDU1Mgb2Ygc2V2ZXJhbCBmcmFtZXdvcmtzLlxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbjpob3N0KFtjaGVja2VkXSkge1xuICAtLXNiYi10b2dnbGUtb3B0aW9uLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItMik7XG59XG5cbjpob3N0KFtkaXNhYmxlZF0pIHtcbiAgLS1zYmItdG9nZ2xlLW9wdGlvbi1jdXJzb3I6IHVuc2V0O1xuICAtLXNiYi10b2dnbGUtb3B0aW9uLWNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1hbnRocmFjaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWNsb3VkKSk7XG59XG5cbi5zYmItdG9nZ2xlLW9wdGlvbiB7XG4gIEBpbmNsdWRlIHNiYi50ZXh0LXhzLS1ib2xkO1xuXG4gIGRpc3BsYXk6IGZsZXg7XG4gIGp1c3RpZnktY29udGVudDogY2VudGVyO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTF4KTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItdG9nZ2xlLWhlaWdodCk7XG4gIHBhZGRpbmctaW5saW5lOiB2YXIoLS1zYmItdG9nZ2xlLXBhZGRpbmctaW5saW5lKTtcbiAgY29sb3I6IHZhcigtLXNiYi10b2dnbGUtb3B0aW9uLWNvbG9yKTtcbiAgY3Vyc29yOiB2YXIoLS1zYmItdG9nZ2xlLW9wdGlvbi1jdXJzb3IpO1xufVxuXG4uc2JiLXRvZ2dsZS1vcHRpb25fX2xhYmVsIHtcbiAgQGluY2x1ZGUgc2JiLmVsbGlwc2lzO1xufVxuXG5zYmItaWNvbixcbjo6c2xvdHRlZChzYmItaWNvbikge1xuICBtaW4td2lkdGg6IHZhcigtLXNiYi10b2dnbGUtb3B0aW9uLWljb24tbWluLXNpemUpO1xuICBtaW4taGVpZ2h0OiB2YXIoLS1zYmItdG9nZ2xlLW9wdGlvbi1pY29uLW1pbi1zaXplKTtcbn1cbiIsImltcG9ydCB7IFJlc2l6ZUNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL3Jlc2l6ZS1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7XG4gIGh0bWwsXG4gIHVuc2FmZUNTUyxcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBTYmJFbGVtZW50LCBmb3JjZVR5cGUsIFNiYkRpc2FibGVkTWl4aW4sIGJveFNpemluZ1N0eWxlcyB9IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHsgU2JiSWNvbk5hbWVNaXhpbiB9IGZyb20gJy4uLy4uL2ljb24ucHVyZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlRvZ2dsZUVsZW1lbnQgfSBmcm9tICcuLi90b2dnbGUvdG9nZ2xlLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RvZ2dsZS1vcHRpb24uc2Nzcz9pbmxpbmUnO1xuXG4vKipcbiAqIEl0IGRpc3BsYXlzIGEgdG9nZ2xlIG9wdGlvbiB3aXRoaW4gYSBgc2JiLXRvZ2dsZWAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgY29udGVudCB0byB0aGUgbGFiZWwgb2YgdGhlIHRvZ2dsZSBvcHRpb24uXG4gKiBAc2xvdCBpY29uIC0gU2xvdCB1c2VkIHRvIHJlbmRlciB0aGUgYHNiYi1pY29uYC5cbiAqIEBvdmVycmlkZVR5cGUgdmFsdWUgLSAoVCA9IHN0cmluZykgfCBudWxsXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJUb2dnbGVPcHRpb25FbGVtZW50PFQgPSBzdHJpbmc+IGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihcbiAgU2JiSWNvbk5hbWVNaXhpbihTYmJFbGVtZW50KSxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXRvZ2dsZS1vcHRpb24nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAncmFkaW8nO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcblxuICAvKiogV2hldGhlciB0aGUgdG9nZ2xlLW9wdGlvbiBpcyBjaGVja2VkLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSwgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgY2hlY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBWYWx1ZSBvZiB0b2dnbGUtb3B0aW9uLiAqL1xuICBAcHJvcGVydHkoKVxuICBwdWJsaWMgYWNjZXNzb3IgdmFsdWU6IFQgfCBudWxsID0gbnVsbDtcblxuICBwcml2YXRlIF90b2dnbGU6IFNiYlRvZ2dsZUVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICAvLyBXZSBuZWVkIHRvIGxpc3RlbiBpbnB1dCBldmVudCBvbiBob3N0IGFzIHdpdGgga2V5Ym9hcmQgbmF2aWdhdGlvblxuICAgIC8vIHRoZSBJbnB1dCBFdmVudCBpcyB0cmlnZ2VyZWQgZnJvbSBzYmItdG9nZ2xlLlxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdpbnB1dCcsICgpID0+IHRoaXMuX2hhbmRsZUlucHV0KCkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsICgpID0+IHtcbiAgICAgIGlmICghdGhpcy5kaXNhYmxlZCAmJiAhdGhpcy5jaGVja2VkKSB7XG4gICAgICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBSZXNpemVDb250cm9sbGVyKHRoaXMsIHtcbiAgICAgICAgc2tpcEluaXRpYWw6IHRydWUsXG4gICAgICAgIGNhbGxiYWNrOiAoKSA9PiB0aGlzLl90b2dnbGU/LnVwZGF0ZVBpbGxQb3NpdGlvbj8uKHRydWUpLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5jb25uZWN0ZWRDYWxsYmFjaygpO1xuXG4gICAgLy8gV2UgY2FuIHVzZSBjbG9zZXN0IGhlcmUsIGFzIHdlIGV4cGVjdCB0aGUgcGFyZW50IHNiYi10b2dnbGUgdG8gYmUgaW4gbGlnaHQgRE9NLlxuICAgIHRoaXMuX3RvZ2dsZSA9IHRoaXMuY2xvc2VzdD8uKCdzYmItdG9nZ2xlJykgPz8gbnVsbDtcbiAgICB0aGlzLl92ZXJpZnlUYWJpbmRleCgpO1xuICAgIHRoaXMuX3RvZ2dsZT8udXBkYXRlUGlsbFBvc2l0aW9uPy4odHJ1ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl90b2dnbGUgPSBudWxsO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgdGhpcy5fdG9nZ2xlPy51cGRhdGVQaWxsUG9zaXRpb24/Lih0cnVlKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnY2hlY2tlZCcpKSB7XG4gICAgICB0aGlzLmludGVybmFscy5hcmlhQ2hlY2tlZCA9IGAke3RoaXMuY2hlY2tlZH1gO1xuICAgICAgdGhpcy5fdmVyaWZ5VGFiaW5kZXgoKTtcbiAgICAgIGlmICh0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5fdW5jaGVja090aGVyT3B0aW9ucygpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICB0aGlzLl9oYW5kbGVEaXNhYmxlZENoYW5nZSgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3VuY2hlY2tPdGhlck9wdGlvbnMoKTogdm9pZCB7XG4gICAgdGhpcy5fdG9nZ2xlPy5vcHRpb25zLmZpbHRlcigobykgPT4gbyAhPT0gdGhpcykuZm9yRWFjaCgobykgPT4gKG8uY2hlY2tlZCA9IGZhbHNlKSk7XG4gICAgdGhpcy5fdG9nZ2xlPy5zdGF0dXNDaGFuZ2VkKCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVEaXNhYmxlZENoYW5nZSgpOiB2b2lkIHtcbiAgICB0aGlzLmludGVybmFscy5hcmlhRGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkID8gJ3RydWUnIDogbnVsbDtcbiAgICB0aGlzLl92ZXJpZnlUYWJpbmRleCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlSW5wdXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jaGVja2VkID0gdHJ1ZTtcbiAgICB0aGlzLl91bmNoZWNrT3RoZXJPcHRpb25zKCk7XG4gIH1cblxuICBwcml2YXRlIF92ZXJpZnlUYWJpbmRleCgpOiB2b2lkIHtcbiAgICB0aGlzLnRhYkluZGV4ID0gdGhpcy5jaGVja2VkICYmICF0aGlzLmRpc2FibGVkID8gMCA6IC0xO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXRvZ2dsZS1vcHRpb25cIj5cbiAgICAgICAgJHt0aGlzLnJlbmRlckljb25TbG90KCl9XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXRvZ2dsZS1vcHRpb25fX2xhYmVsXCI+XG4gICAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdG9nZ2xlLW9wdGlvbic6IFNiYlRvZ2dsZU9wdGlvbkVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7SUN1QmEsZ0NBQXNCO21CQUFxQixpQkFDdEQsaUJBQWlCLFdBQVcsQ0FDN0I7Ozs7Ozs7Y0FGWSwrQkFBMkMsWUFFdkQ7OzswQkFNRSxXQUFXLEVBQ1gsU0FBUztJQUFFLFNBQVM7SUFBTSxNQUFNO0lBQVMsQ0FBQyxDQUFBO3dCQUkxQyxVQUFVLENBQUE7QUFIWCxnQkFBQSxNQUFBLE1BQUEscUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxhQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQU8sTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFQLFVBQU87O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSx1QkFBQSwyQkFBQTtBQUl2QixnQkFBQSxNQUFBLE1BQUEsbUJBQUE7SUFBQSxNQUFBO0lBQUEsTUFBQTtJQUFBLFFBQUE7SUFBQSxTQUFBO0lBQUEsUUFBQTtLQUFBLE1BQUEsUUFBQSxXQUFBO0tBQUEsTUFBQSxRQUFBLElBQWdCO0tBQUssTUFBQSxLQUFBLFVBQUE7QUFBQSxVQUFMLFFBQUs7O0tBQUE7SUFBQSxVQUFBO0lBQUEsRUFBQSxxQkFBQSx5QkFBQTs7Ozs7Ozs7O0FBWFcsUUFBQSxjQUFzQjs7O0FBQ3RCLFFBQUEsT0FBTzs7O0FBQ2hCLFFBQUEsU0FBeUIsQ0FBQyxpQkFBaUIsVUFBVSxzQkFBTSxDQUFDOztFQUtuRjs7RUFBQSxJQUFnQixVQUFPO0FBQUEsVUFBQSxNQUFBOztFQUF2QixJQUFnQixRQUFPLE9BQUE7QUFBQSxTQUFBLDJCQUFBOztFQUl2Qjs7RUFBQSxJQUFnQixRQUFLO0FBQUEsVUFBQSxNQUFBOztFQUFyQixJQUFnQixNQUFLLE9BQUE7QUFBQSxTQUFBLHlCQUFBOztFQUlyQixjQUFBO0FBQ0UsVUFBTztBQVRPLFNBQUEsMkJBQUEsa0JBQUEsTUFBQSx1QkFBbUIsTUFBSztBQUl4QixTQUFBLDBCQUFBLGtCQUFBLE1BQUEsMkJBQUEsRUFBQSxrQkFBQSxNQUFBLHFCQUFrQixLQUFJO0FBRTlCLFFBQUEsV0FBTyxrQkFBQSxNQUFBLHlCQUFBLEVBQTRCO0FBTXpDLFFBQUssbUJBQW1CLGVBQWUsS0FBSyxjQUFjLENBQUM7QUFDM0QsUUFBSyxtQkFBbUIsZUFBYztBQUNwQyxRQUFJLENBQUMsS0FBSyxZQUFZLENBQUMsS0FBSyxRQUMxQixNQUFLLGNBQWMsSUFBSSxXQUFXLFNBQVM7S0FBRSxTQUFTO0tBQU0sVUFBVTtLQUFNLENBQUMsQ0FBQztLQUVoRjtBQUVGLFFBQUssY0FDSCxJQUFJLGlCQUFpQixNQUFNO0lBQ3pCLGFBQWE7SUFDYixnQkFBZ0IsS0FBSyxTQUFTLHFCQUFxQixLQUFBO0lBQ3BELENBQUMsQ0FDSDs7RUFHYSxvQkFBaUI7QUFDL0IsU0FBTSxtQkFBbUI7QUFHekIsUUFBSyxVQUFVLEtBQUssVUFBVSxhQUFhLElBQUk7QUFDL0MsUUFBSyxpQkFBaUI7QUFDdEIsUUFBSyxTQUFTLHFCQUFxQixLQUFLOztFQUcxQix1QkFBb0I7QUFDbEMsU0FBTSxzQkFBc0I7QUFDNUIsUUFBSyxVQUFVOztFQUdFLGFBQWEsbUJBQXVDO0FBQ3JFLFNBQU0sYUFBYSxrQkFBa0I7QUFFckMsUUFBSyxTQUFTLHFCQUFxQixLQUFLOztFQUd2QixXQUFXLG1CQUF1QztBQUNuRSxTQUFNLFdBQVcsa0JBQWtCO0FBRW5DLE9BQUksa0JBQWtCLElBQUksVUFBVSxFQUFFO0FBQ3BDLFNBQUssVUFBVSxjQUFjLEdBQUcsS0FBSztBQUNyQyxTQUFLLGlCQUFpQjtBQUN0QixRQUFJLEtBQUssUUFDUCxNQUFLLHNCQUFzQjs7QUFHL0IsT0FBSSxrQkFBa0IsSUFBSSxXQUFXLENBQ25DLE1BQUssdUJBQXVCOztFQUl4Qix1QkFBb0I7QUFDMUIsUUFBSyxTQUFTLFFBQVEsUUFBUSxNQUFNLE1BQU0sS0FBSyxDQUFDLFNBQVMsTUFBTyxFQUFFLFVBQVUsTUFBTztBQUNuRixRQUFLLFNBQVMsZUFBZTs7RUFHdkIsd0JBQXFCO0FBQzNCLFFBQUssVUFBVSxlQUFlLEtBQUssV0FBVyxTQUFTO0FBQ3ZELFFBQUssaUJBQWlCOztFQUdoQixlQUFZO0FBQ2xCLE9BQUksS0FBSyxTQUNQO0FBRUYsUUFBSyxVQUFVO0FBQ2YsUUFBSyxzQkFBc0I7O0VBR3JCLGtCQUFlO0FBQ3JCLFFBQUssV0FBVyxLQUFLLFdBQVcsQ0FBQyxLQUFLLFdBQVcsSUFBSTs7RUFHcEMsU0FBTTtBQUN2QixVQUFPLElBQUk7O1VBRUwsS0FBSyxnQkFBZ0IsQ0FBQSJ9