@sbb-esta/lyne-elements-dev 5.0.0-next-dev.1776118170 → 5.0.0-next-dev.1776240735
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.
- package/core/styles/core.scss +10 -4
- package/core.css +23 -5
- package/custom-elements.json +2331 -2331
- package/development/toggle/toggle/toggle.component.d.ts.map +1 -1
- package/development/toggle/toggle/toggle.component.js +1 -1
- package/development/toggle/toggle-option/toggle-option.component.d.ts.map +1 -1
- package/development/toggle/toggle-option/toggle-option.component.js +1 -1
- package/development/toggle-option.component-D8YWH_D5.js +163 -0
- package/development/toggle.component-Dap1d4rK.js +244 -0
- package/development/toggle.js +2 -2
- package/development/toggle.pure.js +2 -2
- package/off-brand-theme.css +23 -5
- package/package.json +2 -2
- package/safety-theme.css +23 -5
- package/standard-theme.css +23 -5
- package/toggle/toggle/toggle.component.js +1 -1
- package/toggle/toggle-option/toggle-option.component.js +1 -1
- package/{toggle-option.component-BF95HWOF.js → toggle-option.component-BiyjKQB1.js} +5 -7
- package/{toggle.component-2e_7FeR4.js → toggle.component-CVbRdQDM.js} +6 -10
- package/toggle.js +2 -2
- package/toggle.pure.js +2 -2
- package/development/toggle-option.component-BWT4kEZo.js +0 -165
- package/development/toggle.component-DjLnSv3R.js +0 -249
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/toggle/toggle/toggle.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAGb,OAAO,EAEL,UAAU,EAIX,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAGtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;;AAI1F;;;;;GAKG;AACH,qBAAa,gBAAgB,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,qBAEjD;IACC,gBAAgC,WAAW,EAAE,MAAM,CAAgB;IACnE,gBAAgC,IAAI,gBAAgB;IACpD,OAAuB,MAAM,EAAE,cAAc,CAAuC;IACpF,gBAAuB,MAAM;;MAElB;IAEX;;;OAGG;IACH,SAEgB,IAAI,EAAE,OAAO,CAAS;IAEtC;;;OAGG;IACH,SAA6C,IAAI,EAAE,GAAG,GAAG,GAAG,CAAwB;IAEpF;;;OAGG;IACH,IACW,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAM/B;IACD,IAAW,KAAK,IAAI,CAAC,GAAG,IAAI,CAI3B;IACD,OAAO,CAAC,cAAc,CAAkB;IAExC,4DAA4D;IAC5D,IAAW,OAAO,IAAI,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAIhD;;cAQkB,UAAU,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;IAatE;;;OAGG;IACI,aAAa,IAAI,IAAI;IAK5B;;;OAGG;IACI,iBAAiB,IAAI,IAAI;IAIhC;;OAEG;IACI,wBAAwB,CAC7B,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAC9B,OAAO,EAAE,iBAAiB,GACzB,IAAI;YAUO,aAAa;IAK3B,gBAAgB;IACT,kBAAkB,CAAC,QAAQ,UAAQ,GAAG,IAAI;
|
|
1
|
+
{"version":3,"file":"toggle.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/toggle/toggle/toggle.component.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAGnB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAGb,OAAO,EAEL,UAAU,EAIX,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAGtB,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;;AAI1F;;;;;GAKG;AACH,qBAAa,gBAAgB,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,qBAEjD;IACC,gBAAgC,WAAW,EAAE,MAAM,CAAgB;IACnE,gBAAgC,IAAI,gBAAgB;IACpD,OAAuB,MAAM,EAAE,cAAc,CAAuC;IACpF,gBAAuB,MAAM;;MAElB;IAEX;;;OAGG;IACH,SAEgB,IAAI,EAAE,OAAO,CAAS;IAEtC;;;OAGG;IACH,SAA6C,IAAI,EAAE,GAAG,GAAG,GAAG,CAAwB;IAEpF;;;OAGG;IACH,IACW,KAAK,CAAC,KAAK,EAAE,CAAC,GAAG,IAAI,EAM/B;IACD,IAAW,KAAK,IAAI,CAAC,GAAG,IAAI,CAI3B;IACD,OAAO,CAAC,cAAc,CAAkB;IAExC,4DAA4D;IAC5D,IAAW,OAAO,IAAI,sBAAsB,CAAC,CAAC,CAAC,EAAE,CAIhD;;cAQkB,UAAU,CAAC,iBAAiB,EAAE,cAAc,GAAG,IAAI;IAatE;;;OAGG;IACI,aAAa,IAAI,IAAI;IAK5B;;;OAGG;IACI,iBAAiB,IAAI,IAAI;IAIhC;;OAEG;IACI,wBAAwB,CAC7B,KAAK,EAAE,gBAAgB,GAAG,IAAI,EAC9B,OAAO,EAAE,iBAAiB,GACzB,IAAI;YAUO,aAAa;IAK3B,gBAAgB;IACT,kBAAkB,CAAC,QAAQ,UAAQ,GAAG,IAAI;IAiCjD,OAAO,CAAC,aAAa;IAKrB,OAAO,CAAC,aAAa;IAgBrB,OAAO,CAAC,eAAe;IAMvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,cAAc;IA6BtB,OAAO,CAAC,qBAAqB;cASV,MAAM,IAAI,cAAc;CAG5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,YAAY,EAAE,gBAAgB,CAAC;KAChC;CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SbbToggleElement } from "../../toggle.component-
|
|
1
|
+
import { t as SbbToggleElement } from "../../toggle.component-Dap1d4rK.js";
|
|
2
2
|
export { SbbToggleElement };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"toggle-option.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/toggle/toggle-option/toggle-option.component.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAGb,OAAO,EAAE,UAAU,EAAgD,MAAM,eAAe,CAAC;;AAMzF;;;;;;GAMG;AACH,qBAAa,sBAAsB,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,2BAEvD;IACC,gBAAgC,WAAW,EAAE,MAAM,CAAuB;IAC1E,gBAAgC,IAAI,WAAW;IAC/C,OAAuB,MAAM,EAAE,cAAc,CAAuC;IAEpF,4CAA4C;IAC5C,SAEgB,OAAO,EAAE,OAAO,CAAS;IAEzC,8BAA8B;IAC9B,SACgB,KAAK,EAAE,CAAC,GAAG,IAAI,CAAQ;IAEvC,OAAO,CAAC,OAAO,CAAiC;;IAqBhC,iBAAiB,IAAI,IAAI;IASzB,oBAAoB,IAAI,IAAI;cAKzB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAM3D,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAe5E,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,eAAe;cAIJ,MAAM,IAAI,cAAc;
|
|
1
|
+
{"version":3,"file":"toggle-option.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/toggle/toggle-option/toggle-option.component.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAGb,OAAO,EAAE,UAAU,EAAgD,MAAM,eAAe,CAAC;;AAMzF;;;;;;GAMG;AACH,qBAAa,sBAAsB,CAAC,CAAC,GAAG,MAAM,CAAE,SAAQ,2BAEvD;IACC,gBAAgC,WAAW,EAAE,MAAM,CAAuB;IAC1E,gBAAgC,IAAI,WAAW;IAC/C,OAAuB,MAAM,EAAE,cAAc,CAAuC;IAEpF,4CAA4C;IAC5C,SAEgB,OAAO,EAAE,OAAO,CAAS;IAEzC,8BAA8B;IAC9B,SACgB,KAAK,EAAE,CAAC,GAAG,IAAI,CAAQ;IAEvC,OAAO,CAAC,OAAO,CAAiC;;IAqBhC,iBAAiB,IAAI,IAAI;IASzB,oBAAoB,IAAI,IAAI;cAKzB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;cAM3D,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAe5E,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,qBAAqB;IAK7B,OAAO,CAAC,YAAY;IAQpB,OAAO,CAAC,eAAe;cAIJ,MAAM,IAAI,cAAc;CAQ5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,mBAAmB,EAAE,sBAAsB,CAAC;KAC7C;CACF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as SbbToggleOptionElement } from "../../toggle-option.component-
|
|
1
|
+
import { t as SbbToggleOptionElement } from "../../toggle-option.component-D8YWH_D5.js";
|
|
2
2
|
export { SbbToggleOptionElement };
|
|
@@ -0,0 +1,163 @@
|
|
|
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 display: flex;\n justify-content: center;\n align-items: center;\n gap: var(--sbb-toggle-option-gap);\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, var(--sbb-cursor-pointer));\n overflow: hidden;\n font-size: var(--sbb-toggle-option-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n font-weight: bold;\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__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
|
+
${this.renderIconSlot()}
|
|
153
|
+
<span class="sbb-toggle-option__label">
|
|
154
|
+
<slot></slot>
|
|
155
|
+
</span>
|
|
156
|
+
`;
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
})();
|
|
160
|
+
//#endregion
|
|
161
|
+
export { SbbToggleOptionElement as t };
|
|
162
|
+
|
|
163
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLW9wdGlvbi5jb21wb25lbnQtRDhZV0hfRDUuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3RvZ2dsZS90b2dnbGUtb3B0aW9uL3RvZ2dsZS1vcHRpb24uc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9nZ2xlL3RvZ2dsZS1vcHRpb24vdG9nZ2xlLW9wdGlvbi5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICBkaXNwbGF5OiBmbGV4O1xuICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgZ2FwOiB2YXIoLS1zYmItdG9nZ2xlLW9wdGlvbi1nYXApO1xuICBoZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtaGVpZ2h0KTtcbiAgcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi10b2dnbGUtcGFkZGluZy1pbmxpbmUpO1xuICBjb2xvcjogdmFyKC0tc2JiLXRvZ2dsZS1vcHRpb24tY29sb3IpO1xuICBjdXJzb3I6IHZhcigtLXNiYi10b2dnbGUtb3B0aW9uLWN1cnNvciwgdmFyKC0tc2JiLWN1cnNvci1wb2ludGVyKSk7XG4gIG92ZXJmbG93OiBoaWRkZW47XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRvZ2dsZS1vcHRpb24tZm9udC1zaXplKTtcbiAgbGV0dGVyLXNwYWNpbmc6IHZhcigtLXNiYi10eXBvLWxldHRlci1zcGFjaW5nLXRleHQpO1xuICBmb250LXdlaWdodDogYm9sZDtcblxuICAvLyBVc2UgIWltcG9ydGFudCBoZXJlIHRvIG5vdCBpbnRlcmZlcmUgd2l0aCBGaXJlZm94IGZvY3VzIHJpbmcgZGVmaW5pdGlvblxuICAvLyB3aGljaCBhcHBlYXJzIGluIG5vcm1hbGl6ZSBDU1Mgb2Ygc2V2ZXJhbCBmcmFtZXdvcmtzLlxuICBvdXRsaW5lOiBub25lICFpbXBvcnRhbnQ7XG59XG5cbjpob3N0KFtjaGVja2VkXSkge1xuICAtLXNiYi10b2dnbGUtb3B0aW9uLWNvbG9yOiB2YXIoLS1zYmItY29sb3ItMik7XG59XG5cbjpob3N0KFtkaXNhYmxlZF0pIHtcbiAgLS1zYmItdG9nZ2xlLW9wdGlvbi1jdXJzb3I6IHVuc2V0O1xuICAtLXNiYi10b2dnbGUtb3B0aW9uLWNvbG9yOiBsaWdodC1kYXJrKHZhcigtLXNiYi1jb2xvci1hbnRocmFjaXRlKSwgdmFyKC0tc2JiLWNvbG9yLWNsb3VkKSk7XG59XG5cbi5zYmItdG9nZ2xlLW9wdGlvbl9fbGFiZWwge1xuICBAaW5jbHVkZSBzYmIuZWxsaXBzaXM7XG59XG5cbnNiYi1pY29uLFxuOjpzbG90dGVkKHNiYi1pY29uKSB7XG4gIG1pbi13aWR0aDogdmFyKC0tc2JiLXRvZ2dsZS1vcHRpb24taWNvbi1taW4tc2l6ZSk7XG4gIG1pbi1oZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtb3B0aW9uLWljb24tbWluLXNpemUpO1xufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgaHRtbCxcbiAgdW5zYWZlQ1NTLFxuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYkVsZW1lbnQsIGZvcmNlVHlwZSwgU2JiRGlzYWJsZWRNaXhpbiwgYm94U2l6aW5nU3R5bGVzIH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgeyBTYmJJY29uTmFtZU1peGluIH0gZnJvbSAnLi4vLi4vaWNvbi5wdXJlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiVG9nZ2xlRWxlbWVudCB9IGZyb20gJy4uL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vdG9nZ2xlLW9wdGlvbi5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgZGlzcGxheXMgYSB0b2dnbGUgb3B0aW9uIHdpdGhpbiBhIGBzYmItdG9nZ2xlYC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBjb250ZW50IHRvIHRoZSBsYWJlbCBvZiB0aGUgdG9nZ2xlIG9wdGlvbi5cbiAqIEBzbG90IGljb24gLSBTbG90IHVzZWQgdG8gcmVuZGVyIHRoZSBgc2JiLWljb25gLlxuICogQG92ZXJyaWRlVHlwZSB2YWx1ZSAtIChUID0gc3RyaW5nKSB8IG51bGxcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRvZ2dsZU9wdGlvbkVsZW1lbnQ8VCA9IHN0cmluZz4gZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJJY29uTmFtZU1peGluKFNiYkVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdG9nZ2xlLW9wdGlvbic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICdyYWRpbyc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuXG4gIC8qKiBXaGV0aGVyIHRoZSB0b2dnbGUtb3B0aW9uIGlzIGNoZWNrZWQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBjaGVja2VkOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqIFZhbHVlIG9mIHRvZ2dsZS1vcHRpb24uICovXG4gIEBwcm9wZXJ0eSgpXG4gIHB1YmxpYyBhY2Nlc3NvciB2YWx1ZTogVCB8IG51bGwgPSBudWxsO1xuXG4gIHByaXZhdGUgX3RvZ2dsZTogU2JiVG9nZ2xlRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIC8vIFdlIG5lZWQgdG8gbGlzdGVuIGlucHV0IGV2ZW50IG9uIGhvc3QgYXMgd2l0aCBrZXlib2FyZCBuYXZpZ2F0aW9uXG4gICAgLy8gdGhlIElucHV0IEV2ZW50IGlzIHRyaWdnZXJlZCBmcm9tIHNiYi10b2dnbGUuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2lucHV0JywgKCkgPT4gdGhpcy5faGFuZGxlSW5wdXQoKSk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2NsaWNrJywgKCkgPT4ge1xuICAgICAgaWYgKCF0aGlzLmRpc2FibGVkICYmICF0aGlzLmNoZWNrZWQpIHtcbiAgICAgICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgICAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICAgICAgY2FsbGJhY2s6ICgpID0+IHRoaXMuX3RvZ2dsZT8udXBkYXRlUGlsbFBvc2l0aW9uPy4odHJ1ZSksXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG5cbiAgICAvLyBXZSBjYW4gdXNlIGNsb3Nlc3QgaGVyZSwgYXMgd2UgZXhwZWN0IHRoZSBwYXJlbnQgc2JiLXRvZ2dsZSB0byBiZSBpbiBsaWdodCBET00uXG4gICAgdGhpcy5fdG9nZ2xlID0gdGhpcy5jbG9zZXN0Py4oJ3NiYi10b2dnbGUnKSA/PyBudWxsO1xuICAgIHRoaXMuX3ZlcmlmeVRhYmluZGV4KCk7XG4gICAgdGhpcy5fdG9nZ2xlPy51cGRhdGVQaWxsUG9zaXRpb24/Lih0cnVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICAgIHRoaXMuX3RvZ2dsZSA9IG51bGw7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl90b2dnbGU/LnVwZGF0ZVBpbGxQb3NpdGlvbj8uKHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdjaGVja2VkJykpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFDaGVja2VkID0gYCR7dGhpcy5jaGVja2VkfWA7XG4gICAgICB0aGlzLl92ZXJpZnlUYWJpbmRleCgpO1xuICAgICAgaWYgKHRoaXMuY2hlY2tlZCkge1xuICAgICAgICB0aGlzLl91bmNoZWNrT3RoZXJPcHRpb25zKCk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Rpc2FibGVkJykpIHtcbiAgICAgIHRoaXMuX2hhbmRsZURpc2FibGVkQ2hhbmdlKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdW5jaGVja090aGVyT3B0aW9ucygpOiB2b2lkIHtcbiAgICB0aGlzLl90b2dnbGU/Lm9wdGlvbnMuZmlsdGVyKChvKSA9PiBvICE9PSB0aGlzKS5mb3JFYWNoKChvKSA9PiAoby5jaGVja2VkID0gZmFsc2UpKTtcbiAgICB0aGlzLl90b2dnbGU/LnN0YXR1c0NoYW5nZWQoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRsZURpc2FibGVkQ2hhbmdlKCk6IHZvaWQge1xuICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFEaXNhYmxlZCA9IHRoaXMuZGlzYWJsZWQgPyAndHJ1ZScgOiBudWxsO1xuICAgIHRoaXMuX3ZlcmlmeVRhYmluZGV4KCk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVJbnB1dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNoZWNrZWQgPSB0cnVlO1xuICAgIHRoaXMuX3VuY2hlY2tPdGhlck9wdGlvbnMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX3ZlcmlmeVRhYmluZGV4KCk6IHZvaWQge1xuICAgIHRoaXMudGFiSW5kZXggPSB0aGlzLmNoZWNrZWQgJiYgIXRoaXMuZGlzYWJsZWQgPyAwIDogLTE7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgICR7dGhpcy5yZW5kZXJJY29uU2xvdCgpfVxuICAgICAgPHNwYW4gY2xhc3M9XCJzYmItdG9nZ2xlLW9wdGlvbl9fbGFiZWxcIj5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9zcGFuPlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi10b2dnbGUtb3B0aW9uJzogU2JiVG9nZ2xlT3B0aW9uRWxlbWVudDtcbiAgfVxufVxu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
|
|
@@ -0,0 +1,244 @@
|
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import { html, isServer, unsafeCSS } from "lit";
|
|
3
|
+
import { property } from "lit/decorators.js";
|
|
4
|
+
import { SbbDisabledMixin, SbbElement, SbbFormAssociatedMixin, boxSizingStyles, forceType, interactivityChecker, isLean } from "./core.js";
|
|
5
|
+
//#region src/elements/toggle/toggle/toggle.scss?inline
|
|
6
|
+
var toggle_default = ":host {\n --_sbb-toggle-min-width: calc(\n var(--sbb-toggle-padding-inline) * 4 + var(--sbb-size-icon-ui-small)\n );\n --sbb-toggle-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-6x)\n );\n display: grid;\n grid-template-columns: var(--sbb-toggle-grid-template-columns);\n grid-template-areas: \"start end\";\n align-items: center;\n height: var(--sbb-toggle-height);\n width: var(--sbb-toggle-width, fit-content);\n min-width: var(--_sbb-toggle-min-width);\n max-width: 100%;\n border-radius: var(--sbb-toggle-border-radius);\n font-size: var(--sbb-toggle-font-size);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n user-select: none;\n -webkit-tap-highlight-color: transparent;\n}\n:host::before {\n content: \"\";\n display: block;\n grid-area: start/start/end/end;\n margin-inline: var(--sbb-toggle-option-left, 0) var(--sbb-toggle-option-right, 0);\n background-color: var(--sbb-toggle-selected-option-background-color);\n border-radius: var(--sbb-toggle-border-radius);\n max-width: 100%;\n height: 100%;\n border: var(--sbb-toggle-selected-option-border-width) var(--sbb-toggle-selected-option-border-style) var(--sbb-toggle-selected-option-border-color);\n transition-duration: var(--sbb-toggle-animation-duration);\n transition-timing-function: ease;\n transition-property: margin-inline-start, margin-inline-end;\n}\n:host::after {\n content: \"\";\n grid-area: start/start/end/end;\n order: -1;\n background: var(--sbb-toggle-background-color);\n margin-inline: var(--sbb-toggle-background-inset);\n height: calc(100% - 2 * var(--sbb-toggle-background-inset));\n border-radius: var(--sbb-toggle-border-radius);\n}\n@media (forced-colors: active) {\n :host::after {\n border: var(--sbb-border-width-1x) solid CanvasText;\n }\n}\n\n:host([even]) {\n --sbb-toggle-width: 100%;\n --sbb-toggle-grid-template-columns: 50% 50%;\n}\n\n:host(:disabled) {\n --sbb-toggle-selected-option-border-color: var(--sbb-color-graphite);\n --sbb-toggle-selected-option-border-color: light-dark(\n var(--sbb-color-graphite),\n var(--sbb-color-smoke)\n );\n --sbb-toggle-selected-option-border-style: dashed;\n}\n@media (forced-colors: active) {\n :host(:disabled) {\n --sbb-toggle-selected-option-border-style: solid;\n --sbb-toggle-selected-option-border-color: GrayText;\n }\n}\n\n:host([size=m]) {\n --sbb-toggle-padding-inline: var(--sbb-spacing-responsive-xs);\n --sbb-toggle-height: var(--sbb-size-element-m);\n}\n\n:host([size=s]) {\n --sbb-toggle-padding-inline: var(--sbb-spacing-responsive-xxxs);\n --sbb-toggle-height: var(--sbb-size-element-xxs);\n}\n\n:host(:is(:not(:is(:state(initialized),[state--initialized])), :is(:state(disable-animation-on-resizing),[state--disable-animation-on-resizing]))) {\n --sbb-disable-animation-duration: 0s;\n}\n\n::slotted(sbb-toggle-option:first-of-type) {\n grid-area: start;\n}\n\n::slotted(sbb-toggle-option:last-of-type) {\n grid-area: end;\n}";
|
|
7
|
+
//#endregion
|
|
8
|
+
//#region src/elements/toggle/toggle/toggle.component.ts
|
|
9
|
+
/**
|
|
10
|
+
* It can be used as a container for two `sbb-toggle-option`, acting as a toggle button.
|
|
11
|
+
*
|
|
12
|
+
* @slot - Use the unnamed slot to add `<sbb-toggle-option>` elements to the toggle.
|
|
13
|
+
* @overrideType value - (T = string) | null
|
|
14
|
+
*/
|
|
15
|
+
var SbbToggleElement = (() => {
|
|
16
|
+
let _classSuper = SbbDisabledMixin(SbbFormAssociatedMixin(SbbElement));
|
|
17
|
+
let _instanceExtraInitializers = [];
|
|
18
|
+
let _even_decorators;
|
|
19
|
+
let _even_initializers = [];
|
|
20
|
+
let _even_extraInitializers = [];
|
|
21
|
+
let _size_decorators;
|
|
22
|
+
let _size_initializers = [];
|
|
23
|
+
let _size_extraInitializers = [];
|
|
24
|
+
let _set_value_decorators;
|
|
25
|
+
return class SbbToggleElement extends _classSuper {
|
|
26
|
+
static {
|
|
27
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
28
|
+
_even_decorators = [forceType(), property({
|
|
29
|
+
reflect: true,
|
|
30
|
+
type: Boolean
|
|
31
|
+
})];
|
|
32
|
+
_size_decorators = [property({ reflect: true })];
|
|
33
|
+
_set_value_decorators = [property()];
|
|
34
|
+
__esDecorate(this, null, _even_decorators, {
|
|
35
|
+
kind: "accessor",
|
|
36
|
+
name: "even",
|
|
37
|
+
static: false,
|
|
38
|
+
private: false,
|
|
39
|
+
access: {
|
|
40
|
+
has: (obj) => "even" in obj,
|
|
41
|
+
get: (obj) => obj.even,
|
|
42
|
+
set: (obj, value) => {
|
|
43
|
+
obj.even = value;
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
metadata: _metadata
|
|
47
|
+
}, _even_initializers, _even_extraInitializers);
|
|
48
|
+
__esDecorate(this, null, _size_decorators, {
|
|
49
|
+
kind: "accessor",
|
|
50
|
+
name: "size",
|
|
51
|
+
static: false,
|
|
52
|
+
private: false,
|
|
53
|
+
access: {
|
|
54
|
+
has: (obj) => "size" in obj,
|
|
55
|
+
get: (obj) => obj.size,
|
|
56
|
+
set: (obj, value) => {
|
|
57
|
+
obj.size = value;
|
|
58
|
+
}
|
|
59
|
+
},
|
|
60
|
+
metadata: _metadata
|
|
61
|
+
}, _size_initializers, _size_extraInitializers);
|
|
62
|
+
__esDecorate(this, null, _set_value_decorators, {
|
|
63
|
+
kind: "setter",
|
|
64
|
+
name: "value",
|
|
65
|
+
static: false,
|
|
66
|
+
private: false,
|
|
67
|
+
access: {
|
|
68
|
+
has: (obj) => "value" in obj,
|
|
69
|
+
set: (obj, value) => {
|
|
70
|
+
obj.value = value;
|
|
71
|
+
}
|
|
72
|
+
},
|
|
73
|
+
metadata: _metadata
|
|
74
|
+
}, null, _instanceExtraInitializers);
|
|
75
|
+
if (_metadata) Object.defineProperty(this, Symbol.metadata, {
|
|
76
|
+
enumerable: true,
|
|
77
|
+
configurable: true,
|
|
78
|
+
writable: true,
|
|
79
|
+
value: _metadata
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
static {
|
|
83
|
+
this.elementName = "sbb-toggle";
|
|
84
|
+
}
|
|
85
|
+
static {
|
|
86
|
+
this.role = "radiogroup";
|
|
87
|
+
}
|
|
88
|
+
static {
|
|
89
|
+
this.styles = [boxSizingStyles, unsafeCSS(toggle_default)];
|
|
90
|
+
}
|
|
91
|
+
static {
|
|
92
|
+
this.events = { change: "change" };
|
|
93
|
+
}
|
|
94
|
+
#even_accessor_storage;
|
|
95
|
+
/**
|
|
96
|
+
* If true, set the width of the component fixed; if false,
|
|
97
|
+
* the width is dynamic based on the label of the sbb-toggle-option.
|
|
98
|
+
*/
|
|
99
|
+
get even() {
|
|
100
|
+
return this.#even_accessor_storage;
|
|
101
|
+
}
|
|
102
|
+
set even(value) {
|
|
103
|
+
this.#even_accessor_storage = value;
|
|
104
|
+
}
|
|
105
|
+
#size_accessor_storage;
|
|
106
|
+
/**
|
|
107
|
+
* Size variant, either m or s.
|
|
108
|
+
* @default 'm' / 's' (lean)
|
|
109
|
+
*/
|
|
110
|
+
get size() {
|
|
111
|
+
return this.#size_accessor_storage;
|
|
112
|
+
}
|
|
113
|
+
set size(value) {
|
|
114
|
+
this.#size_accessor_storage = value;
|
|
115
|
+
}
|
|
116
|
+
/**
|
|
117
|
+
* The value of the toggle. It needs to be mutable since it is updated whenever
|
|
118
|
+
* a new option is selected (see the `onToggleOptionSelect()` method).
|
|
119
|
+
*/
|
|
120
|
+
set value(value) {
|
|
121
|
+
if (isServer || !this.hasUpdated) this._fallbackValue = value;
|
|
122
|
+
else this._valueChanged(value);
|
|
123
|
+
}
|
|
124
|
+
get value() {
|
|
125
|
+
return isServer ? this._fallbackValue ?? null : this.options.find((o) => o.checked)?.value ?? this.options[0]?.value ?? null;
|
|
126
|
+
}
|
|
127
|
+
/** The child instances of sbb-toggle-option as an array. */
|
|
128
|
+
get options() {
|
|
129
|
+
return Array.from(this.querySelectorAll?.("sbb-toggle-option") ?? []);
|
|
130
|
+
}
|
|
131
|
+
constructor() {
|
|
132
|
+
super();
|
|
133
|
+
this.#even_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _even_initializers, false));
|
|
134
|
+
this.#size_accessor_storage = (__runInitializers(this, _even_extraInitializers), __runInitializers(this, _size_initializers, isLean() ? "s" : "m"));
|
|
135
|
+
this._fallbackValue = (__runInitializers(this, _size_extraInitializers), null);
|
|
136
|
+
this.addEventListener?.("input", () => this._handleInput(), { passive: true });
|
|
137
|
+
this.addEventListener?.("keydown", (e) => this._handleKeyDown(e));
|
|
138
|
+
}
|
|
139
|
+
willUpdate(changedProperties) {
|
|
140
|
+
super.willUpdate(changedProperties);
|
|
141
|
+
if (changedProperties.has("disabled") || changedProperties.has("formDisabled")) this._updateDisabled();
|
|
142
|
+
if (!this.hasUpdated) this._valueChanged(this._fallbackValue);
|
|
143
|
+
}
|
|
144
|
+
/**
|
|
145
|
+
* Called whenever the value changes, both programmatically or by user interaction.
|
|
146
|
+
* @internal
|
|
147
|
+
*/
|
|
148
|
+
statusChanged() {
|
|
149
|
+
this.updateFormValue();
|
|
150
|
+
this.updatePillPosition();
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Reset to the init value if present. Select the first option, otherwise.
|
|
154
|
+
* @internal
|
|
155
|
+
*/
|
|
156
|
+
formResetCallback() {
|
|
157
|
+
this.value = this.hasAttribute("value") ? this.getAttribute("value") : null;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* @internal
|
|
161
|
+
*/
|
|
162
|
+
formStateRestoreCallback(state, _reason) {
|
|
163
|
+
if (typeof state === "string" || state == null) this.value = state ?? null;
|
|
164
|
+
else if (state instanceof FormData) this._readFormData(state).then((data) => {
|
|
165
|
+
this.value = data;
|
|
166
|
+
});
|
|
167
|
+
}
|
|
168
|
+
async _readFormData(formData) {
|
|
169
|
+
const data = formData.get(this.name);
|
|
170
|
+
return data instanceof Blob ? JSON.parse(await data.text()) : data;
|
|
171
|
+
}
|
|
172
|
+
/** @internal */
|
|
173
|
+
updatePillPosition(resizing = false) {
|
|
174
|
+
const options = this.options;
|
|
175
|
+
if (options.length < 2 || options.every((o) => !o.checked) || options.every((o) => !o.clientWidth)) return;
|
|
176
|
+
this.toggleState("disable-animation-on-resizing", resizing);
|
|
177
|
+
const firstOption = options[0];
|
|
178
|
+
const isFirstChecked = firstOption.checked;
|
|
179
|
+
const pillLeft = isFirstChecked ? "0px" : `${firstOption.clientWidth}px`;
|
|
180
|
+
const pillRight = isFirstChecked ? `${this.clientWidth - firstOption.clientWidth}px` : "0px";
|
|
181
|
+
if (pillRight === "0px" && pillLeft === "0px") return;
|
|
182
|
+
this.style?.setProperty("--sbb-toggle-option-left", pillLeft);
|
|
183
|
+
this.style?.setProperty("--sbb-toggle-option-right", pillRight);
|
|
184
|
+
this.offsetWidth;
|
|
185
|
+
this.internals.states.add("initialized");
|
|
186
|
+
}
|
|
187
|
+
_updateToggle() {
|
|
188
|
+
this._valueChanged(this.value);
|
|
189
|
+
this._updateDisabled();
|
|
190
|
+
}
|
|
191
|
+
_valueChanged(value) {
|
|
192
|
+
const options = this.options;
|
|
193
|
+
const selectedOption = options.find((o) => value === o.value) ?? options.find((o) => o.checked) ?? options[0];
|
|
194
|
+
if (!selectedOption) return;
|
|
195
|
+
selectedOption.checked = true;
|
|
196
|
+
this.statusChanged();
|
|
197
|
+
}
|
|
198
|
+
_updateDisabled() {
|
|
199
|
+
for (const toggleOption of this.options) toggleOption.disabled = this.disabled || this.formDisabled;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Called on user interaction (click or keyboard)
|
|
203
|
+
*/
|
|
204
|
+
_handleInput() {
|
|
205
|
+
this.statusChanged();
|
|
206
|
+
/**
|
|
207
|
+
* The change event is fired when the user modifies the element's value.
|
|
208
|
+
* Unlike the input event, the change event is not necessarily fired
|
|
209
|
+
* for each alteration to an element's value.
|
|
210
|
+
*/
|
|
211
|
+
this.dispatchEvent(new Event("change", { bubbles: true }));
|
|
212
|
+
}
|
|
213
|
+
_handleKeyDown(evt) {
|
|
214
|
+
if (!this.options.filter((t) => !t.disabled && interactivityChecker.isVisible(t)) || evt.target !== this && evt.target.parentElement !== this) return;
|
|
215
|
+
const options = this.options;
|
|
216
|
+
const isRtl = this.matches(":dir(rtl)");
|
|
217
|
+
const currentIndex = options.findIndex((option) => option.checked) ?? options[0];
|
|
218
|
+
const availableOptions = options.slice(currentIndex + 1).concat(options.slice(0, currentIndex)).filter((o) => !o.disabled && interactivityChecker.isVisible(o));
|
|
219
|
+
if (!isRtl ? evt.key === " " || evt.key === "ArrowRight" : evt.key === "ArrowLeft") {
|
|
220
|
+
this._selectAndFocusOption(availableOptions[0]);
|
|
221
|
+
evt.preventDefault();
|
|
222
|
+
} else if (isRtl ? evt.key === " " || evt.key === "ArrowRight" : evt.key === "ArrowLeft") {
|
|
223
|
+
this._selectAndFocusOption(availableOptions.at(-1));
|
|
224
|
+
evt.preventDefault();
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
_selectAndFocusOption(option) {
|
|
228
|
+
if (!option || option.disabled || option.checked) return;
|
|
229
|
+
option.checked = true;
|
|
230
|
+
option.focus();
|
|
231
|
+
option.dispatchEvent(new InputEvent("input", {
|
|
232
|
+
bubbles: true,
|
|
233
|
+
composed: true
|
|
234
|
+
}));
|
|
235
|
+
}
|
|
236
|
+
render() {
|
|
237
|
+
return html` <slot @slotchange=${this._updateToggle}></slot> `;
|
|
238
|
+
}
|
|
239
|
+
};
|
|
240
|
+
})();
|
|
241
|
+
//#endregion
|
|
242
|
+
export { SbbToggleElement as t };
|
|
243
|
+
|
|
244
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmNvbXBvbmVudC1EYXAxZDRySy5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9nZ2xlL3RvZ2dsZS90b2dnbGUuc2Nzcz9pbmxpbmUiLCIuLi8uLi8uLi9zcmMvZWxlbWVudHMvdG9nZ2xlL3RvZ2dsZS90b2dnbGUuY29tcG9uZW50LnRzIl0sInNvdXJjZXNDb250ZW50IjpbIkB1c2UgJy4uLy4uL2NvcmUvc3R5bGVzJyBhcyBzYmI7XG5cbjpob3N0IHtcbiAgLS1fc2JiLXRvZ2dsZS1taW4td2lkdGg6IGNhbGMoXG4gICAgdmFyKC0tc2JiLXRvZ2dsZS1wYWRkaW5nLWlubGluZSkgKiA0ICsgdmFyKC0tc2JiLXNpemUtaWNvbi11aS1zbWFsbClcbiAgKTtcbiAgLS1zYmItdG9nZ2xlLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNngpXG4gICk7XG5cbiAgZGlzcGxheTogZ3JpZDtcbiAgZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiB2YXIoLS1zYmItdG9nZ2xlLWdyaWQtdGVtcGxhdGUtY29sdW1ucyk7XG4gIGdyaWQtdGVtcGxhdGUtYXJlYXM6ICdzdGFydCBlbmQnO1xuICBhbGlnbi1pdGVtczogY2VudGVyO1xuICBoZWlnaHQ6IHZhcigtLXNiYi10b2dnbGUtaGVpZ2h0KTtcbiAgd2lkdGg6IHZhcigtLXNiYi10b2dnbGUtd2lkdGgsIGZpdC1jb250ZW50KTtcbiAgbWluLXdpZHRoOiB2YXIoLS1fc2JiLXRvZ2dsZS1taW4td2lkdGgpO1xuICBtYXgtd2lkdGg6IDEwMCU7XG4gIGJvcmRlci1yYWRpdXM6IHZhcigtLXNiYi10b2dnbGUtYm9yZGVyLXJhZGl1cyk7XG4gIGZvbnQtc2l6ZTogdmFyKC0tc2JiLXRvZ2dsZS1mb250LXNpemUpO1xuICBsZXR0ZXItc3BhY2luZzogdmFyKC0tc2JiLXR5cG8tbGV0dGVyLXNwYWNpbmctdGV4dCk7XG4gIHVzZXItc2VsZWN0OiBub25lO1xuICAtd2Via2l0LXRhcC1oaWdobGlnaHQtY29sb3I6IHRyYW5zcGFyZW50O1xuXG4gIC8vIFdoaXRlIHBpbGwgb2Ygc2VsZWN0ZWQgdG9nZ2xlIG9wdGlvblxuICAmOjpiZWZvcmUge1xuICAgIGNvbnRlbnQ6ICcnO1xuICAgIGRpc3BsYXk6IGJsb2NrO1xuICAgIGdyaWQtYXJlYTogc3RhcnQgLyBzdGFydCAvIGVuZCAvIGVuZDtcbiAgICBtYXJnaW4taW5saW5lOiB2YXIoLS1zYmItdG9nZ2xlLW9wdGlvbi1sZWZ0LCAwKSB2YXIoLS1zYmItdG9nZ2xlLW9wdGlvbi1yaWdodCwgMCk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXRvZ2dsZS1zZWxlY3RlZC1vcHRpb24tYmFja2dyb3VuZC1jb2xvcik7XG4gICAgYm9yZGVyLXJhZGl1czogdmFyKC0tc2JiLXRvZ2dsZS1ib3JkZXItcmFkaXVzKTtcbiAgICBtYXgtd2lkdGg6IDEwMCU7XG4gICAgaGVpZ2h0OiAxMDAlO1xuICAgIGJvcmRlcjogdmFyKC0tc2JiLXRvZ2dsZS1zZWxlY3RlZC1vcHRpb24tYm9yZGVyLXdpZHRoKVxuICAgICAgdmFyKC0tc2JiLXRvZ2dsZS1zZWxlY3RlZC1vcHRpb24tYm9yZGVyLXN0eWxlKSB2YXIoLS1zYmItdG9nZ2xlLXNlbGVjdGVkLW9wdGlvbi1ib3JkZXItY29sb3IpO1xuXG4gICAgdHJhbnNpdGlvbjoge1xuICAgICAgZHVyYXRpb246IHZhcigtLXNiYi10b2dnbGUtYW5pbWF0aW9uLWR1cmF0aW9uKTtcbiAgICAgIHRpbWluZy1mdW5jdGlvbjogZWFzZTtcbiAgICAgIHByb3BlcnR5OiBtYXJnaW4taW5saW5lLXN0YXJ0LCBtYXJnaW4taW5saW5lLWVuZDtcbiAgICB9XG4gIH1cblxuICAvLyBCYWNrZ3JvdW5kXG4gICY6OmFmdGVyIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBncmlkLWFyZWE6IHN0YXJ0IC8gc3RhcnQgLyBlbmQgLyBlbmQ7XG4gICAgb3JkZXI6IC0xO1xuICAgIGJhY2tncm91bmQ6IHZhcigtLXNiYi10b2dnbGUtYmFja2dyb3VuZC1jb2xvcik7XG4gICAgbWFyZ2luLWlubGluZTogdmFyKC0tc2JiLXRvZ2dsZS1iYWNrZ3JvdW5kLWluc2V0KTtcbiAgICBoZWlnaHQ6IGNhbGMoMTAwJSAtIDIgKiB2YXIoLS1zYmItdG9nZ2xlLWJhY2tncm91bmQtaW5zZXQpKTtcbiAgICBib3JkZXItcmFkaXVzOiB2YXIoLS1zYmItdG9nZ2xlLWJvcmRlci1yYWRpdXMpO1xuXG4gICAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgICAgYm9yZGVyOiB2YXIoLS1zYmItYm9yZGVyLXdpZHRoLTF4KSBzb2xpZCBDYW52YXNUZXh0O1xuICAgIH1cbiAgfVxufVxuXG46aG9zdChbZXZlbl0pIHtcbiAgLS1zYmItdG9nZ2xlLXdpZHRoOiAxMDAlO1xuICAtLXNiYi10b2dnbGUtZ3JpZC10ZW1wbGF0ZS1jb2x1bW5zOiA1MCUgNTAlO1xufVxuXG46aG9zdCg6ZGlzYWJsZWQpIHtcbiAgLS1zYmItdG9nZ2xlLXNlbGVjdGVkLW9wdGlvbi1ib3JkZXItY29sb3I6IGxpZ2h0LWRhcmsoXG4gICAgdmFyKC0tc2JiLWNvbG9yLWdyYXBoaXRlKSxcbiAgICB2YXIoLS1zYmItY29sb3Itc21va2UpXG4gICk7XG4gIC0tc2JiLXRvZ2dsZS1zZWxlY3RlZC1vcHRpb24tYm9yZGVyLXN0eWxlOiBkYXNoZWQ7XG5cbiAgQGluY2x1ZGUgc2JiLmlmLWZvcmNlZC1jb2xvcnMge1xuICAgIC0tc2JiLXRvZ2dsZS1zZWxlY3RlZC1vcHRpb24tYm9yZGVyLXN0eWxlOiBzb2xpZDtcbiAgICAtLXNiYi10b2dnbGUtc2VsZWN0ZWQtb3B0aW9uLWJvcmRlci1jb2xvcjogR3JheVRleHQ7XG4gIH1cbn1cblxuOmhvc3QoW3NpemU9J20nXSkge1xuICAtLXNiYi10b2dnbGUtcGFkZGluZy1pbmxpbmU6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUteHMpO1xuICAtLXNiYi10b2dnbGUtaGVpZ2h0OiB2YXIoLS1zYmItc2l6ZS1lbGVtZW50LW0pO1xufVxuXG46aG9zdChbc2l6ZT0ncyddKSB7XG4gIC0tc2JiLXRvZ2dsZS1wYWRkaW5nLWlubGluZTogdmFyKC0tc2JiLXNwYWNpbmctcmVzcG9uc2l2ZS14eHhzKTtcbiAgLS1zYmItdG9nZ2xlLWhlaWdodDogdmFyKC0tc2JiLXNpemUtZWxlbWVudC14eHMpO1xufVxuXG46aG9zdCg6aXMoOm5vdCg6c3RhdGUoaW5pdGlhbGl6ZWQpKSwgOnN0YXRlKGRpc2FibGUtYW5pbWF0aW9uLW9uLXJlc2l6aW5nKSkpIHtcbiAgQGluY2x1ZGUgc2JiLmRpc2FibGUtYW5pbWF0aW9uO1xufVxuXG46OnNsb3R0ZWQoc2JiLXRvZ2dsZS1vcHRpb246Zmlyc3Qtb2YtdHlwZSkge1xuICBncmlkLWFyZWE6IHN0YXJ0O1xufVxuXG46OnNsb3R0ZWQoc2JiLXRvZ2dsZS1vcHRpb246bGFzdC1vZi10eXBlKSB7XG4gIGdyaWQtYXJlYTogZW5kO1xufVxuIiwiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgaXNTZXJ2ZXIsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQge1xuICBpbnRlcmFjdGl2aXR5Q2hlY2tlcixcbiAgU2JiRWxlbWVudCxcbiAgZm9yY2VUeXBlLFxuICBpc0xlYW4sXG4gIGJveFNpemluZ1N0eWxlcyxcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQge1xuICB0eXBlIEZvcm1SZXN0b3JlUmVhc29uLFxuICB0eXBlIEZvcm1SZXN0b3JlU3RhdGUsXG4gIFNiYkRpc2FibGVkTWl4aW4sXG4gIFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4sXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJUb2dnbGVPcHRpb25FbGVtZW50IH0gZnJvbSAnLi4vdG9nZ2xlLW9wdGlvbi90b2dnbGUtb3B0aW9uLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3RvZ2dsZS5zY3NzP2lubGluZSc7XG5cbi8qKlxuICogSXQgY2FuIGJlIHVzZWQgYXMgYSBjb250YWluZXIgZm9yIHR3byBgc2JiLXRvZ2dsZS1vcHRpb25gLCBhY3RpbmcgYXMgYSB0b2dnbGUgYnV0dG9uLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGA8c2JiLXRvZ2dsZS1vcHRpb24+YCBlbGVtZW50cyB0byB0aGUgdG9nZ2xlLlxuICogQG92ZXJyaWRlVHlwZSB2YWx1ZSAtIChUID0gc3RyaW5nKSB8IG51bGxcbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlRvZ2dsZUVsZW1lbnQ8VCA9IHN0cmluZz4gZXh0ZW5kcyBTYmJEaXNhYmxlZE1peGluKFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnQpLFxuKSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItdG9nZ2xlJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ3JhZGlvZ3JvdXAnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCB1bnNhZmVDU1Moc3R5bGUpXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgY2hhbmdlOiAnY2hhbmdlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKipcbiAgICogSWYgdHJ1ZSwgc2V0IHRoZSB3aWR0aCBvZiB0aGUgY29tcG9uZW50IGZpeGVkOyBpZiBmYWxzZSxcbiAgICogdGhlIHdpZHRoIGlzIGR5bmFtaWMgYmFzZWQgb24gdGhlIGxhYmVsIG9mIHRoZSBzYmItdG9nZ2xlLW9wdGlvbi5cbiAgICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyByZWZsZWN0OiB0cnVlLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBldmVuOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFNpemUgdmFyaWFudCwgZWl0aGVyIG0gb3Igcy5cbiAgICogQGRlZmF1bHQgJ20nIC8gJ3MnIChsZWFuKVxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ20nID0gaXNMZWFuKCkgPyAncycgOiAnbSc7XG5cbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgdG9nZ2xlLiBJdCBuZWVkcyB0byBiZSBtdXRhYmxlIHNpbmNlIGl0IGlzIHVwZGF0ZWQgd2hlbmV2ZXJcbiAgICogYSBuZXcgb3B0aW9uIGlzIHNlbGVjdGVkIChzZWUgdGhlIGBvblRvZ2dsZU9wdGlvblNlbGVjdCgpYCBtZXRob2QpLlxuICAgKi9cbiAgQHByb3BlcnR5KClcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogVCB8IG51bGwpIHtcbiAgICBpZiAoaXNTZXJ2ZXIgfHwgIXRoaXMuaGFzVXBkYXRlZCkge1xuICAgICAgdGhpcy5fZmFsbGJhY2tWYWx1ZSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl92YWx1ZUNoYW5nZWQodmFsdWUpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IFQgfCBudWxsIHtcbiAgICByZXR1cm4gaXNTZXJ2ZXJcbiAgICAgID8gKHRoaXMuX2ZhbGxiYWNrVmFsdWUgPz8gbnVsbClcbiAgICAgIDogKHRoaXMub3B0aW9ucy5maW5kKChvKSA9PiBvLmNoZWNrZWQpPy52YWx1ZSA/PyB0aGlzLm9wdGlvbnNbMF0/LnZhbHVlID8/IG51bGwpO1xuICB9XG4gIHByaXZhdGUgX2ZhbGxiYWNrVmFsdWU6IFQgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhlIGNoaWxkIGluc3RhbmNlcyBvZiBzYmItdG9nZ2xlLW9wdGlvbiBhcyBhbiBhcnJheS4gKi9cbiAgcHVibGljIGdldCBvcHRpb25zKCk6IFNiYlRvZ2dsZU9wdGlvbkVsZW1lbnQ8VD5bXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oXG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJUb2dnbGVPcHRpb25FbGVtZW50PFQ+Pignc2JiLXRvZ2dsZS1vcHRpb24nKSA/PyBbXSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2lucHV0JywgKCkgPT4gdGhpcy5faGFuZGxlSW5wdXQoKSwgeyBwYXNzaXZlOiB0cnVlIH0pO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgKGUpID0+IHRoaXMuX2hhbmRsZUtleURvd24oZSkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzKTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZGlzYWJsZWQnKSB8fCBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Zvcm1EaXNhYmxlZCcpKSB7XG4gICAgICB0aGlzLl91cGRhdGVEaXNhYmxlZCgpO1xuICAgIH1cblxuICAgIC8vIEJlZm9yZSB0aGUgZmlyc3QgdXBkYXRlLCBpbml0IHdpdGggdGhlIGZhbGxiYWNrIHZhbHVlLlxuICAgIC8vIFRoZSB3aWxsVXBkYXRlIGhvb2sgaXMgc2FmZXIgdGhhbiB0aGUgJ3ZhbHVlJyBzZXR0ZXIuXG4gICAgaWYgKCF0aGlzLmhhc1VwZGF0ZWQpIHtcbiAgICAgIHRoaXMuX3ZhbHVlQ2hhbmdlZCh0aGlzLl9mYWxsYmFja1ZhbHVlKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogQ2FsbGVkIHdoZW5ldmVyIHRoZSB2YWx1ZSBjaGFuZ2VzLCBib3RoIHByb2dyYW1tYXRpY2FsbHkgb3IgYnkgdXNlciBpbnRlcmFjdGlvbi5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgc3RhdHVzQ2hhbmdlZCgpOiB2b2lkIHtcbiAgICB0aGlzLnVwZGF0ZUZvcm1WYWx1ZSgpO1xuICAgIHRoaXMudXBkYXRlUGlsbFBvc2l0aW9uKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVzZXQgdG8gdGhlIGluaXQgdmFsdWUgaWYgcHJlc2VudC4gU2VsZWN0IHRoZSBmaXJzdCBvcHRpb24sIG90aGVyd2lzZS5cbiAgICogQGludGVybmFsXG4gICAqL1xuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9ICh0aGlzLmhhc0F0dHJpYnV0ZSgndmFsdWUnKSA/IHRoaXMuZ2V0QXR0cmlidXRlKCd2YWx1ZScpIDogbnVsbCkgYXMgVDtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgIF9yZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICApOiB2b2lkIHtcbiAgICBpZiAodHlwZW9mIHN0YXRlID09PSAnc3RyaW5nJyB8fCBzdGF0ZSA9PSBudWxsKSB7XG4gICAgICB0aGlzLnZhbHVlID0gKHN0YXRlIGFzIFQpID8/IG51bGw7XG4gICAgfSBlbHNlIGlmIChzdGF0ZSBpbnN0YW5jZW9mIEZvcm1EYXRhKSB7XG4gICAgICB0aGlzLl9yZWFkRm9ybURhdGEoc3RhdGUpLnRoZW4oKGRhdGEpID0+IHtcbiAgICAgICAgdGhpcy52YWx1ZSA9IGRhdGE7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9yZWFkRm9ybURhdGEoZm9ybURhdGE6IEZvcm1EYXRhKTogUHJvbWlzZTxUPiB7XG4gICAgY29uc3QgZGF0YSA9IGZvcm1EYXRhLmdldCh0aGlzLm5hbWUpO1xuICAgIHJldHVybiBkYXRhIGluc3RhbmNlb2YgQmxvYiA/IEpTT04ucGFyc2UoYXdhaXQgZGF0YS50ZXh0KCkpIDogKGRhdGEgYXMgVCk7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyB1cGRhdGVQaWxsUG9zaXRpb24ocmVzaXppbmcgPSBmYWxzZSk6IHZvaWQge1xuICAgIGNvbnN0IG9wdGlvbnMgPSB0aGlzLm9wdGlvbnM7XG5cbiAgICBpZiAoXG4gICAgICBvcHRpb25zLmxlbmd0aCA8IDIgfHxcbiAgICAgIG9wdGlvbnMuZXZlcnkoKG8pID0+ICFvLmNoZWNrZWQpIHx8XG4gICAgICBvcHRpb25zLmV2ZXJ5KChvKSA9PiAhby5jbGllbnRXaWR0aClcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdkaXNhYmxlLWFuaW1hdGlvbi1vbi1yZXNpemluZycsIHJlc2l6aW5nKTtcblxuICAgIGNvbnN0IGZpcnN0T3B0aW9uID0gb3B0aW9uc1swXTtcbiAgICBjb25zdCBpc0ZpcnN0Q2hlY2tlZCA9IGZpcnN0T3B0aW9uLmNoZWNrZWQ7XG4gICAgY29uc3QgcGlsbExlZnQgPSBpc0ZpcnN0Q2hlY2tlZCA/ICcwcHgnIDogYCR7Zmlyc3RPcHRpb24uY2xpZW50V2lkdGh9cHhgO1xuICAgIGNvbnN0IHBpbGxSaWdodCA9IGlzRmlyc3RDaGVja2VkID8gYCR7dGhpcy5jbGllbnRXaWR0aCAtIGZpcnN0T3B0aW9uLmNsaWVudFdpZHRofXB4YCA6ICcwcHgnO1xuXG4gICAgaWYgKHBpbGxSaWdodCA9PT0gJzBweCcgJiYgcGlsbExlZnQgPT09ICcwcHgnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLXRvZ2dsZS1vcHRpb24tbGVmdCcsIHBpbGxMZWZ0KTtcbiAgICB0aGlzLnN0eWxlPy5zZXRQcm9wZXJ0eSgnLS1zYmItdG9nZ2xlLW9wdGlvbi1yaWdodCcsIHBpbGxSaWdodCk7XG5cbiAgICAvLyBUcmlnZ2VycyBhIGxheW91dCByZWZsb3cgd2hpY2ggaXMgbmVlZGVkIHRvIGF2b2lkIGFuaW1hdGlvbiBnbGl0Y2hlcy5cbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC1leHByZXNzaW9uc1xuICAgIHRoaXMub2Zmc2V0V2lkdGg7XG5cbiAgICAvLyBJbiBvcmRlciB0byBhdm9pZCBhIHRyYW5zaXRpb24gZ2xpdGNoLCB3ZSBoYXZlIHRvIGtub3cgd2hlbiB0aGUgZmlyc3QgdmFsdWVzIHdlcmUgc2V0LlxuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ2luaXRpYWxpemVkJyk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVUb2dnbGUoKTogdm9pZCB7XG4gICAgdGhpcy5fdmFsdWVDaGFuZ2VkKHRoaXMudmFsdWUpO1xuICAgIHRoaXMuX3VwZGF0ZURpc2FibGVkKCk7XG4gIH1cblxuICBwcml2YXRlIF92YWx1ZUNoYW5nZWQodmFsdWU6IFQgfCBudWxsKTogdm9pZCB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcblxuICAgIGNvbnN0IHNlbGVjdGVkT3B0aW9uID1cbiAgICAgIG9wdGlvbnMuZmluZCgobykgPT4gdmFsdWUgPT09IG8udmFsdWUpID8/IG9wdGlvbnMuZmluZCgobykgPT4gby5jaGVja2VkKSA/PyBvcHRpb25zWzBdO1xuXG4gICAgaWYgKCFzZWxlY3RlZE9wdGlvbikge1xuICAgICAgaWYgKGltcG9ydC5tZXRhLmVudi5ERVYgJiYgIWlzU2VydmVyKSB7XG4gICAgICAgIGNvbnNvbGUud2Fybihgc2JiLXRvZ2dsZTogTm8gYXZhaWxhYmxlIG9wdGlvbnMhICgke3RoaXMuaWQgfHwgJ05vIGlkJ30pYCk7XG4gICAgICB9XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHNlbGVjdGVkT3B0aW9uLmNoZWNrZWQgPSB0cnVlO1xuICAgIHRoaXMuc3RhdHVzQ2hhbmdlZCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlRGlzYWJsZWQoKTogdm9pZCB7XG4gICAgZm9yIChjb25zdCB0b2dnbGVPcHRpb24gb2YgdGhpcy5vcHRpb25zKSB7XG4gICAgICB0b2dnbGVPcHRpb24uZGlzYWJsZWQgPSB0aGlzLmRpc2FibGVkIHx8IHRoaXMuZm9ybURpc2FibGVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxsZWQgb24gdXNlciBpbnRlcmFjdGlvbiAoY2xpY2sgb3Iga2V5Ym9hcmQpXG4gICAqL1xuICBwcml2YXRlIF9oYW5kbGVJbnB1dCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXR1c0NoYW5nZWQoKTtcbiAgICAvKipcbiAgICAgKiBUaGUgY2hhbmdlIGV2ZW50IGlzIGZpcmVkIHdoZW4gdGhlIHVzZXIgbW9kaWZpZXMgdGhlIGVsZW1lbnQncyB2YWx1ZS5cbiAgICAgKiBVbmxpa2UgdGhlIGlucHV0IGV2ZW50LCB0aGUgY2hhbmdlIGV2ZW50IGlzIG5vdCBuZWNlc3NhcmlseSBmaXJlZFxuICAgICAqIGZvciBlYWNoIGFsdGVyYXRpb24gdG8gYW4gZWxlbWVudCdzIHZhbHVlLlxuICAgICAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2NoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVLZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVuYWJsZWRUb2dnbGVPcHRpb25zID0gdGhpcy5vcHRpb25zLmZpbHRlcihcbiAgICAgICh0KSA9PiAhdC5kaXNhYmxlZCAmJiBpbnRlcmFjdGl2aXR5Q2hlY2tlci5pc1Zpc2libGUodCksXG4gICAgKTtcblxuICAgIGlmIChcbiAgICAgICFlbmFibGVkVG9nZ2xlT3B0aW9ucyB8fFxuICAgICAgLy8gZG9uJ3QgdHJhcCBuZXN0ZWQgaGFuZGxpbmdcbiAgICAgICgoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgIT09IHRoaXMgJiYgKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQgIT09IHRoaXMpXG4gICAgKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgb3B0aW9ucyA9IHRoaXMub3B0aW9ucztcbiAgICBjb25zdCBpc1J0bCA9IHRoaXMubWF0Y2hlcygnOmRpcihydGwpJyk7XG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gb3B0aW9ucy5maW5kSW5kZXgoKG9wdGlvbikgPT4gb3B0aW9uLmNoZWNrZWQpID8/IG9wdGlvbnNbMF07XG4gICAgY29uc3QgYXZhaWxhYmxlT3B0aW9ucyA9IG9wdGlvbnNcbiAgICAgIC5zbGljZShjdXJyZW50SW5kZXggKyAxKVxuICAgICAgLmNvbmNhdChvcHRpb25zLnNsaWNlKDAsIGN1cnJlbnRJbmRleCkpXG4gICAgICAuZmlsdGVyKChvKSA9PiAhby5kaXNhYmxlZCAmJiBpbnRlcmFjdGl2aXR5Q2hlY2tlci5pc1Zpc2libGUobykpO1xuICAgIGlmICghaXNSdGwgPyBldnQua2V5ID09PSAnICcgfHwgZXZ0LmtleSA9PT0gJ0Fycm93UmlnaHQnIDogZXZ0LmtleSA9PT0gJ0Fycm93TGVmdCcpIHtcbiAgICAgIHRoaXMuX3NlbGVjdEFuZEZvY3VzT3B0aW9uKGF2YWlsYWJsZU9wdGlvbnNbMF0pO1xuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfSBlbHNlIGlmIChpc1J0bCA/IGV2dC5rZXkgPT09ICcgJyB8fCBldnQua2V5ID09PSAnQXJyb3dSaWdodCcgOiBldnQua2V5ID09PSAnQXJyb3dMZWZ0Jykge1xuICAgICAgdGhpcy5fc2VsZWN0QW5kRm9jdXNPcHRpb24oYXZhaWxhYmxlT3B0aW9ucy5hdCgtMSkpO1xuICAgICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2VsZWN0QW5kRm9jdXNPcHRpb24ob3B0aW9uOiBTYmJUb2dnbGVPcHRpb25FbGVtZW50PFQ+IHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgaWYgKCFvcHRpb24gfHwgb3B0aW9uLmRpc2FibGVkIHx8IG9wdGlvbi5jaGVja2VkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIG9wdGlvbi5jaGVja2VkID0gdHJ1ZTtcbiAgICBvcHRpb24uZm9jdXMoKTtcbiAgICBvcHRpb24uZGlzcGF0Y2hFdmVudChuZXcgSW5wdXRFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUsIGNvbXBvc2VkOiB0cnVlIH0pKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYCA8c2xvdCBAc2xvdGNoYW5nZT0ke3RoaXMuX3VwZGF0ZVRvZ2dsZX0+PC9zbG90PiBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItdG9nZ2xlJzogU2JiVG9nZ2xlRWxlbWVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7OztJQ2lDYSwwQkFBZ0I7bUJBQXFCLGlCQUNoRCx1QkFBdUIsV0FBVyxDQUNuQzs7Ozs7Ozs7O2NBRlkseUJBQXFDLFlBRWpEOzs7dUJBWUUsV0FBVyxFQUNYLFNBQVM7SUFBRSxTQUFTO0lBQU0sTUFBTTtJQUFTLENBQUMsQ0FBQTt1QkFPMUMsU0FBUyxFQUFFLFNBQVMsTUFBTSxDQUFDLENBQUE7NEJBTTNCLFVBQVUsQ0FBQTtBQVpYLGdCQUFBLE1BQUEsTUFBQSxrQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLFVBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBSSxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQUosT0FBSTs7S0FBQTtJQUFBLFVBQUE7SUFBQSxFQUFBLG9CQUFBLHdCQUFBO0FBTVMsZ0JBQUEsTUFBQSxNQUFBLGtCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsVUFBQTtLQUFBLE1BQUEsUUFBQSxJQUFnQjtLQUFJLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBSixPQUFJOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsb0JBQUEsd0JBQUE7QUFPakQsZ0JBQUEsTUFBQSxNQUFBLHVCQUFBO0lBQUEsTUFBQTtJQUFBLE1BQUE7SUFBQSxRQUFBO0lBQUEsU0FBQTtJQUFBLFFBQUE7S0FBQSxNQUFBLFFBQUEsV0FBQTtLQUFBLE1BQUEsS0FBQSxVQUFBO0FBQUEsVUFBVyxRQUFLOztLQUFBO0lBQUEsVUFBQTtJQUFBLEVBQUEsTUFBQSwyQkFBQTs7Ozs7Ozs7O0FBMUJnQixRQUFBLGNBQXNCOzs7QUFDdEIsUUFBQSxPQUFPOzs7QUFDaEIsUUFBQSxTQUF5QixDQUFDLGlCQUFpQixVQUFVLGVBQU0sQ0FBQzs7O0FBQzVELFFBQUEsU0FBUyxFQUM5QixRQUFRLFVBQ0E7O0VBUVY7Ozs7O0VBQUEsSUFBZ0IsT0FBSTtBQUFBLFVBQUEsTUFBQTs7RUFBcEIsSUFBZ0IsS0FBSSxPQUFBO0FBQUEsU0FBQSx3QkFBQTs7RUFNUzs7Ozs7RUFBQSxJQUFnQixPQUFJO0FBQUEsVUFBQSxNQUFBOztFQUFwQixJQUFnQixLQUFJLE9BQUE7QUFBQSxTQUFBLHdCQUFBOzs7Ozs7RUFPakQsSUFBVyxNQUFNLE9BQWU7QUFDOUIsT0FBSSxZQUFZLENBQUMsS0FBSyxXQUNwQixNQUFLLGlCQUFpQjtPQUV0QixNQUFLLGNBQWMsTUFBTTs7RUFHN0IsSUFBVyxRQUFLO0FBQ2QsVUFBTyxXQUNGLEtBQUssa0JBQWtCLE9BQ3ZCLEtBQUssUUFBUSxNQUFNLE1BQU0sRUFBRSxRQUFRLEVBQUUsU0FBUyxLQUFLLFFBQVEsSUFBSSxTQUFTOzs7RUFLL0UsSUFBVyxVQUFPO0FBQ2hCLFVBQU8sTUFBTSxLQUNYLEtBQUssbUJBQThDLG9CQUFvQixJQUFJLEVBQUUsQ0FDOUU7O0VBR0gsY0FBQTtBQUNFLFVBQU87QUFuQ08sU0FBQSx5QkFoQkwsa0JBQUEsTUFBQSwyQkFBZ0IsRUFBQSxrQkFBQSxNQUFBLG9CQWdCSyxNQUFLO0FBTVEsU0FBQSx5QkFBQSxrQkFBQSxNQUFBLHdCQUFBLEVBQUEsa0JBQUEsTUFBQSxvQkFBa0IsUUFBUSxHQUFHLE1BQU0sSUFBRztBQW1CM0UsUUFBQSxrQkFBYyxrQkFBQSxNQUFBLHdCQUFBLEVBQWE7QUFXakMsUUFBSyxtQkFBbUIsZUFBZSxLQUFLLGNBQWMsRUFBRSxFQUFFLFNBQVMsTUFBTSxDQUFDO0FBQzlFLFFBQUssbUJBQW1CLFlBQVksTUFBTSxLQUFLLGVBQWUsRUFBRSxDQUFDOztFQUdoRCxXQUFXLG1CQUFpQztBQUM3RCxTQUFNLFdBQVcsa0JBQWtCO0FBQ25DLE9BQUksa0JBQWtCLElBQUksV0FBVyxJQUFJLGtCQUFrQixJQUFJLGVBQWUsQ0FDNUUsTUFBSyxpQkFBaUI7QUFLeEIsT0FBSSxDQUFDLEtBQUssV0FDUixNQUFLLGNBQWMsS0FBSyxlQUFlOzs7Ozs7RUFRcEMsZ0JBQWE7QUFDbEIsUUFBSyxpQkFBaUI7QUFDdEIsUUFBSyxvQkFBb0I7Ozs7OztFQU9wQixvQkFBaUI7QUFDdEIsUUFBSyxRQUFTLEtBQUssYUFBYSxRQUFRLEdBQUcsS0FBSyxhQUFhLFFBQVEsR0FBRzs7Ozs7RUFNbkUseUJBQ0wsT0FDQSxTQUEwQjtBQUUxQixPQUFJLE9BQU8sVUFBVSxZQUFZLFNBQVMsS0FDeEMsTUFBSyxRQUFTLFNBQWU7WUFDcEIsaUJBQWlCLFNBQzFCLE1BQUssY0FBYyxNQUFNLENBQUMsTUFBTSxTQUFRO0FBQ3RDLFNBQUssUUFBUTtLQUNiOztFQUlFLE1BQU0sY0FBYyxVQUFrQjtHQUM1QyxNQUFNLE9BQU8sU0FBUyxJQUFJLEtBQUssS0FBSztBQUNwQyxVQUFPLGdCQUFnQixPQUFPLEtBQUssTUFBTSxNQUFNLEtBQUssTUFBTSxDQUFDLEdBQUk7OztFQUkxRCxtQkFBbUIsV0FBVyxPQUFLO0dBQ3hDLE1BQU0sVUFBVSxLQUFLO0FBRXJCLE9BQ0UsUUFBUSxTQUFTLEtBQ2pCLFFBQVEsT0FBTyxNQUFNLENBQUMsRUFBRSxRQUFRLElBQ2hDLFFBQVEsT0FBTyxNQUFNLENBQUMsRUFBRSxZQUFZLENBRXBDO0FBR0YsUUFBSyxZQUFZLGlDQUFpQyxTQUFTO0dBRTNELE1BQU0sY0FBYyxRQUFRO0dBQzVCLE1BQU0saUJBQWlCLFlBQVk7R0FDbkMsTUFBTSxXQUFXLGlCQUFpQixRQUFRLEdBQUcsWUFBWSxZQUFXO0dBQ3BFLE1BQU0sWUFBWSxpQkFBaUIsR0FBRyxLQUFLLGNBQWMsWUFBWSxZQUFXLE1BQU87QUFFdkYsT0FBSSxjQUFjLFNBQVMsYUFBYSxNQUN0QztBQUdGLFFBQUssT0FBTyxZQUFZLDRCQUE0QixTQUFTO0FBQzdELFFBQUssT0FBTyxZQUFZLDZCQUE2QixVQUFVO0FBSS9ELFFBQUs7QUFHTCxRQUFLLFVBQVUsT0FBTyxJQUFJLGNBQWM7O0VBR2xDLGdCQUFhO0FBQ25CLFFBQUssY0FBYyxLQUFLLE1BQU07QUFDOUIsUUFBSyxpQkFBaUI7O0VBR2hCLGNBQWMsT0FBZTtHQUNuQyxNQUFNLFVBQVUsS0FBSztHQUVyQixNQUFNLGlCQUNKLFFBQVEsTUFBTSxNQUFNLFVBQVUsRUFBRSxNQUFNLElBQUksUUFBUSxNQUFNLE1BQU0sRUFBRSxRQUFRLElBQUksUUFBUTtBQUV0RixPQUFJLENBQUMsZUFJSDtBQUVGLGtCQUFlLFVBQVU7QUFDekIsUUFBSyxlQUFlOztFQUdkLGtCQUFlO0FBQ3JCLFFBQUssTUFBTSxnQkFBZ0IsS0FBSyxRQUM5QixjQUFhLFdBQVcsS0FBSyxZQUFZLEtBQUs7Ozs7O0VBTzFDLGVBQVk7QUFDbEIsUUFBSyxlQUFlOzs7Ozs7QUFNcEIsUUFBSyxjQUFjLElBQUksTUFBTSxVQUFVLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQzs7RUFHcEQsZUFBZSxLQUFrQjtBQUt2QyxPQUNFLENBTDJCLEtBQUssUUFBUSxRQUN2QyxNQUFNLENBQUMsRUFBRSxZQUFZLHFCQUFxQixVQUFVLEVBQUUsQ0FDeEQsSUFLRyxJQUFJLFdBQTJCLFFBQVMsSUFBSSxPQUF1QixrQkFBa0IsS0FFdkY7R0FHRixNQUFNLFVBQVUsS0FBSztHQUNyQixNQUFNLFFBQVEsS0FBSyxRQUFRLFlBQVk7R0FDdkMsTUFBTSxlQUFlLFFBQVEsV0FBVyxXQUFXLE9BQU8sUUFBUSxJQUFJLFFBQVE7R0FDOUUsTUFBTSxtQkFBbUIsUUFDdEIsTUFBTSxlQUFlLEVBQUUsQ0FDdkIsT0FBTyxRQUFRLE1BQU0sR0FBRyxhQUFhLENBQUMsQ0FDdEMsUUFBUSxNQUFNLENBQUMsRUFBRSxZQUFZLHFCQUFxQixVQUFVLEVBQUUsQ0FBQztBQUNsRSxPQUFJLENBQUMsUUFBUSxJQUFJLFFBQVEsT0FBTyxJQUFJLFFBQVEsZUFBZSxJQUFJLFFBQVEsYUFBYTtBQUNsRixTQUFLLHNCQUFzQixpQkFBaUIsR0FBRztBQUMvQyxRQUFJLGdCQUFnQjtjQUNYLFFBQVEsSUFBSSxRQUFRLE9BQU8sSUFBSSxRQUFRLGVBQWUsSUFBSSxRQUFRLGFBQWE7QUFDeEYsU0FBSyxzQkFBc0IsaUJBQWlCLEdBQUcsR0FBRyxDQUFDO0FBQ25ELFFBQUksZ0JBQWdCOzs7RUFJaEIsc0JBQXNCLFFBQTZDO0FBQ3pFLE9BQUksQ0FBQyxVQUFVLE9BQU8sWUFBWSxPQUFPLFFBQ3ZDO0FBRUYsVUFBTyxVQUFVO0FBQ2pCLFVBQU8sT0FBTztBQUNkLFVBQU8sY0FBYyxJQUFJLFdBQVcsU0FBUztJQUFFLFNBQVM7SUFBTSxVQUFVO0lBQU0sQ0FBQyxDQUFDOztFQUcvRCxTQUFNO0FBQ3ZCLFVBQU8sSUFBSSxzQkFBc0IsS0FBSyxjQUFhIn0=
|
package/development/toggle.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { t as SbbToggleOptionElement } from "./toggle-option.component-
|
|
2
|
-
import { t as SbbToggleElement } from "./toggle.component-
|
|
1
|
+
import { t as SbbToggleOptionElement } from "./toggle-option.component-D8YWH_D5.js";
|
|
2
|
+
import { t as SbbToggleElement } from "./toggle.component-Dap1d4rK.js";
|
|
3
3
|
import "./toggle.pure.js";
|
|
4
4
|
//#region src/elements/toggle.ts
|
|
5
5
|
/** @entrypoint */
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { t as SbbToggleOptionElement } from "./toggle-option.component-
|
|
2
|
-
import { t as SbbToggleElement } from "./toggle.component-
|
|
1
|
+
import { t as SbbToggleOptionElement } from "./toggle-option.component-D8YWH_D5.js";
|
|
2
|
+
import { t as SbbToggleElement } from "./toggle.component-Dap1d4rK.js";
|
|
3
3
|
export { SbbToggleElement, SbbToggleOptionElement };
|
package/off-brand-theme.css
CHANGED
|
@@ -1885,6 +1885,22 @@ slot[name=error]::slotted(*) {
|
|
|
1885
1885
|
--sbb-timetable-occupancy-font-size: var(--sbb-text-font-size-s);
|
|
1886
1886
|
--sbb-timetable-occupancy-list-gap: var(--sbb-spacing-fixed-2x);
|
|
1887
1887
|
--sbb-timetable-occupancy-item-gap: var(--sbb-spacing-fixed-1x);
|
|
1888
|
+
--sbb-toggle-padding-inline: var(--sbb-spacing-responsive-xs);
|
|
1889
|
+
--sbb-toggle-height: var(--sbb-size-element-m);
|
|
1890
|
+
--sbb-toggle-background-color: var(--sbb-background-color-4);
|
|
1891
|
+
--sbb-toggle-background-inset: 0.125rem;
|
|
1892
|
+
--sbb-toggle-border-radius: var(--sbb-border-radius-infinity);
|
|
1893
|
+
--sbb-toggle-font-size: var(--sbb-text-font-size-m);
|
|
1894
|
+
--sbb-toggle-grid-template-columns: auto auto;
|
|
1895
|
+
--sbb-toggle-selected-option-border-width: var(--sbb-border-width-1x);
|
|
1896
|
+
--sbb-toggle-selected-option-border-style: solid;
|
|
1897
|
+
--sbb-toggle-selected-option-border-color: var(--sbb-border-color-5);
|
|
1898
|
+
--sbb-toggle-selected-option-background-color: var(--sbb-background-color-1);
|
|
1899
|
+
--sbb-toggle-option-color: var(--sbb-color-anthracite);
|
|
1900
|
+
--sbb-toggle-option-color: light-dark(var(--sbb-color-anthracite), var(--sbb-color-cloud));
|
|
1901
|
+
--sbb-toggle-option-gap: var(--sbb-spacing-fixed-1x);
|
|
1902
|
+
--sbb-toggle-option-font-size: var(--sbb-text-font-size-xs);
|
|
1903
|
+
--sbb-toggle-option-icon-min-size: var(--sbb-size-icon-ui-small);
|
|
1888
1904
|
--sbb-tooltip-animation-easing: ease-out;
|
|
1889
1905
|
--sbb-tooltip-animation-translate: 0 var(--sbb-spacing-fixed-2x);
|
|
1890
1906
|
--sbb-tooltip-background-color: var(--sbb-background-color-1-inverted);
|
|
@@ -1961,6 +1977,8 @@ slot[name=error]::slotted(*) {
|
|
|
1961
1977
|
--sbb-tag-text-color: ButtonText;
|
|
1962
1978
|
--sbb-tag-border-color: CanvasText;
|
|
1963
1979
|
--sbb-tag-border-width: var(--sbb-border-width-2x);
|
|
1980
|
+
--sbb-toggle-selected-option-border-width: var(--sbb-border-width-2x);
|
|
1981
|
+
--sbb-toggle-selected-option-border-color: Highlight;
|
|
1964
1982
|
}
|
|
1965
1983
|
}
|
|
1966
1984
|
:root {
|
|
@@ -2456,6 +2474,11 @@ sbb-tab-nav-bar .sbb-tab-amount {
|
|
|
2456
2474
|
place-self: stretch;
|
|
2457
2475
|
}
|
|
2458
2476
|
|
|
2477
|
+
sbb-toggle:has(:focus-visible) {
|
|
2478
|
+
outline-offset: var(--sbb-focus-outline-offset);
|
|
2479
|
+
outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);
|
|
2480
|
+
}
|
|
2481
|
+
|
|
2459
2482
|
.sbb-dark {
|
|
2460
2483
|
color-scheme: dark;
|
|
2461
2484
|
}
|
|
@@ -2631,11 +2654,6 @@ sbb-form-field .sbb-select-trigger {
|
|
|
2631
2654
|
top: 0;
|
|
2632
2655
|
}
|
|
2633
2656
|
|
|
2634
|
-
sbb-toggle:has(:focus-visible) {
|
|
2635
|
-
outline-offset: var(--sbb-focus-outline-offset);
|
|
2636
|
-
outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);
|
|
2637
|
-
}
|
|
2638
|
-
|
|
2639
2657
|
.sbb-overlay-outlet {
|
|
2640
2658
|
position: fixed;
|
|
2641
2659
|
inset: 0;
|
package/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sbb-esta/lyne-elements-dev",
|
|
3
|
-
"version": "5.0.0-next-dev.
|
|
3
|
+
"version": "5.0.0-next-dev.1776240735",
|
|
4
4
|
"description": "Lyne Design System",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"design system",
|
|
7
7
|
"web components",
|
|
8
8
|
"lit",
|
|
9
|
-
"https://github.com/sbb-design-systems/lyne-components/commit/
|
|
9
|
+
"https://github.com/sbb-design-systems/lyne-components/commit/1a58a6c9fcde044d2f6a7afb8d55a6768b2f4a12"
|
|
10
10
|
],
|
|
11
11
|
"type": "module",
|
|
12
12
|
"exports": {
|
package/safety-theme.css
CHANGED
|
@@ -1885,6 +1885,22 @@ slot[name=error]::slotted(*) {
|
|
|
1885
1885
|
--sbb-timetable-occupancy-font-size: var(--sbb-text-font-size-s);
|
|
1886
1886
|
--sbb-timetable-occupancy-list-gap: var(--sbb-spacing-fixed-2x);
|
|
1887
1887
|
--sbb-timetable-occupancy-item-gap: var(--sbb-spacing-fixed-1x);
|
|
1888
|
+
--sbb-toggle-padding-inline: var(--sbb-spacing-responsive-xs);
|
|
1889
|
+
--sbb-toggle-height: var(--sbb-size-element-m);
|
|
1890
|
+
--sbb-toggle-background-color: var(--sbb-background-color-4);
|
|
1891
|
+
--sbb-toggle-background-inset: 0.125rem;
|
|
1892
|
+
--sbb-toggle-border-radius: var(--sbb-border-radius-infinity);
|
|
1893
|
+
--sbb-toggle-font-size: var(--sbb-text-font-size-m);
|
|
1894
|
+
--sbb-toggle-grid-template-columns: auto auto;
|
|
1895
|
+
--sbb-toggle-selected-option-border-width: var(--sbb-border-width-1x);
|
|
1896
|
+
--sbb-toggle-selected-option-border-style: solid;
|
|
1897
|
+
--sbb-toggle-selected-option-border-color: var(--sbb-border-color-5);
|
|
1898
|
+
--sbb-toggle-selected-option-background-color: var(--sbb-background-color-1);
|
|
1899
|
+
--sbb-toggle-option-color: var(--sbb-color-anthracite);
|
|
1900
|
+
--sbb-toggle-option-color: light-dark(var(--sbb-color-anthracite), var(--sbb-color-cloud));
|
|
1901
|
+
--sbb-toggle-option-gap: var(--sbb-spacing-fixed-1x);
|
|
1902
|
+
--sbb-toggle-option-font-size: var(--sbb-text-font-size-xs);
|
|
1903
|
+
--sbb-toggle-option-icon-min-size: var(--sbb-size-icon-ui-small);
|
|
1888
1904
|
--sbb-tooltip-animation-easing: ease-out;
|
|
1889
1905
|
--sbb-tooltip-animation-translate: 0 var(--sbb-spacing-fixed-2x);
|
|
1890
1906
|
--sbb-tooltip-background-color: var(--sbb-background-color-1-inverted);
|
|
@@ -1961,6 +1977,8 @@ slot[name=error]::slotted(*) {
|
|
|
1961
1977
|
--sbb-tag-text-color: ButtonText;
|
|
1962
1978
|
--sbb-tag-border-color: CanvasText;
|
|
1963
1979
|
--sbb-tag-border-width: var(--sbb-border-width-2x);
|
|
1980
|
+
--sbb-toggle-selected-option-border-width: var(--sbb-border-width-2x);
|
|
1981
|
+
--sbb-toggle-selected-option-border-color: Highlight;
|
|
1964
1982
|
}
|
|
1965
1983
|
}
|
|
1966
1984
|
:root {
|
|
@@ -2456,6 +2474,11 @@ sbb-tab-nav-bar .sbb-tab-amount {
|
|
|
2456
2474
|
place-self: stretch;
|
|
2457
2475
|
}
|
|
2458
2476
|
|
|
2477
|
+
sbb-toggle:has(:focus-visible) {
|
|
2478
|
+
outline-offset: var(--sbb-focus-outline-offset);
|
|
2479
|
+
outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);
|
|
2480
|
+
}
|
|
2481
|
+
|
|
2459
2482
|
.sbb-dark {
|
|
2460
2483
|
color-scheme: dark;
|
|
2461
2484
|
}
|
|
@@ -2631,11 +2654,6 @@ sbb-form-field .sbb-select-trigger {
|
|
|
2631
2654
|
top: 0;
|
|
2632
2655
|
}
|
|
2633
2656
|
|
|
2634
|
-
sbb-toggle:has(:focus-visible) {
|
|
2635
|
-
outline-offset: var(--sbb-focus-outline-offset);
|
|
2636
|
-
outline: var(--sbb-focus-outline-color) var(--sbb-focus-outline-style, solid) var(--sbb-focus-outline-width);
|
|
2637
|
-
}
|
|
2638
|
-
|
|
2639
2657
|
.sbb-overlay-outlet {
|
|
2640
2658
|
position: fixed;
|
|
2641
2659
|
inset: 0;
|