@sbb-esta/lyne-elements-dev 5.0.0-next-dev.1776959321 → 5.0.0-next-dev.1776960216

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.
@@ -0,0 +1,146 @@
1
+ import { html, unsafeCSS } from "lit";
2
+ import { SbbElement, SbbPropertyWatcherController, appendAriaElements, boxSizingStyles, removeAriaElements } from "./core.js";
3
+ import { ResizeController } from "@lit-labs/observers/resize-controller.js";
4
+ //#region src/elements/stepper/step/step.scss?inline
5
+ var step_default = ":host {\n --sbb-step-opacity: 0;\n --sbb-step-margin-inline-start: var(--sbb-spacing-fixed-4x);\n --sbb-step-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-2x)\n );\n display: block;\n}\n\n:host(:is(:state(orientation-vertical),[state--orientation-vertical])) {\n margin-inline-start: var(--sbb-step-margin-inline-start);\n opacity: 0;\n height: 0;\n transition: display var(--sbb-step-animation-duration) var(--sbb-animation-easing), height var(--sbb-stepper-animation-duration) var(--sbb-animation-easing), opacity var(--sbb-step-animation-duration) var(--sbb-animation-easing);\n transition-behavior: allow-discrete;\n}\n\n:host(:is(:state(selected),[state--selected]):is(:state(orientation-vertical),[state--orientation-vertical])) {\n opacity: 1;\n height: var(--sbb-stepper-content-height);\n transition: display var(--sbb-step-animation-duration) var(--sbb-animation-easing), height var(--sbb-stepper-animation-duration) var(--sbb-animation-easing), opacity var(--sbb-step-animation-duration) var(--sbb-stepper-animation-duration) var(--sbb-animation-easing);\n transition-behavior: allow-discrete;\n}\n\n:host(:is(:state(selected),[state--selected])) {\n --sbb-step-opacity: 1;\n --sbb-step-display: block;\n --sbb-step-height: fit-content;\n --sbb-step-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-4x)\n );\n --sbb-step-animation-delay: var(--sbb-step-animation-duration);\n}\n\n:host(:is(:state(orientation-horizontal),[state--orientation-horizontal])) {\n --sbb-step-position: absolute;\n --sbb-step-inset-block-start: 0;\n}\n\n.sbb-step {\n position: var(--sbb-step-position, initial);\n width: 100%;\n inset-block-start: var(--sbb-step-inset-block-start, unset);\n opacity: var(--sbb-step-opacity);\n display: var(--sbb-step-display, none);\n height: var(--sbb-step-height, 0);\n transition-property: display, opacity;\n transition-duration: var(--sbb-step-animation-duration);\n transition-delay: var(--sbb-step-animation-delay, 0);\n transition-timing-function: var(--sbb-animation-easing);\n transition-behavior: allow-discrete;\n}\n@starting-style {\n .sbb-step {\n --sbb-step-opacity: 0;\n }\n}";
6
+ //#endregion
7
+ //#region src/elements/stepper/step/step.component.ts
8
+ /**
9
+ * Combined with a `sbb-stepper`, it displays a step's content.
10
+ *
11
+ * @slot - Use the unnamed slot to provide content.
12
+ */
13
+ var SbbStepElement = class extends SbbElement {
14
+ static {
15
+ this.elementName = "sbb-step";
16
+ }
17
+ static {
18
+ this.role = "tabpanel";
19
+ }
20
+ static {
21
+ this.styles = [boxSizingStyles, unsafeCSS(step_default)];
22
+ }
23
+ static {
24
+ this.events = {
25
+ validate: "validate",
26
+ resizechange: "resizechange"
27
+ };
28
+ }
29
+ /** The label of the step. */
30
+ get label() {
31
+ return this._label;
32
+ }
33
+ get stepper() {
34
+ return this.closest("sbb-stepper");
35
+ }
36
+ constructor() {
37
+ super();
38
+ this._stepResizeObserver = new ResizeController(this, {
39
+ target: null,
40
+ skipInitial: true,
41
+ callback: () => setTimeout(() => this._onStepElementResize())
42
+ });
43
+ this._label = null;
44
+ this.addEventListener?.("click", (e) => this._handleClick(e));
45
+ this.addController(new SbbPropertyWatcherController(this, () => this.stepper, { orientation: (s) => {
46
+ if (this._previousOrientation) this.internals.states.delete(`orientation-${this._previousOrientation}`);
47
+ this._previousOrientation = s.orientation;
48
+ if (this._previousOrientation) this.internals.states.add(`orientation-${this._previousOrientation}`);
49
+ } }));
50
+ }
51
+ /**
52
+ * Selects and configures the step.
53
+ * @internal
54
+ * TODO: @breaking-change: make protected
55
+ */
56
+ select() {
57
+ if (!this.hasUpdated || !this.label) return;
58
+ this.internals.states.add("selected");
59
+ this.label.select();
60
+ }
61
+ /**
62
+ * Deselects and configures the step.
63
+ * @internal
64
+ * TODO: @breaking-change: make protected
65
+ */
66
+ deselect() {
67
+ if (!this.label) return;
68
+ this.internals.states.delete("selected");
69
+ this.label.deselect();
70
+ }
71
+ /**
72
+ * Emits a validate event whenever step switch is triggered.
73
+ * @internal
74
+ * TODO: @breaking-change: make protected
75
+ */
76
+ validate(eventData) {
77
+ /**
78
+ * @type {CustomEvent<SbbStepValidateEventDetails>}
79
+ * The validate event is dispatched when a step change is triggered. Can be canceled to abort the step change.
80
+ */
81
+ return this.dispatchEvent(new CustomEvent("validate", {
82
+ bubbles: true,
83
+ composed: true,
84
+ cancelable: true,
85
+ detail: eventData
86
+ }));
87
+ }
88
+ /**
89
+ * Configures the step.
90
+ * @internal
91
+ * TODO: @breaking-change: make protected
92
+ */
93
+ configure(stepperLoaded) {
94
+ if (stepperLoaded) this._assignLabel();
95
+ }
96
+ /** Watches for clicked elements with `sbb-stepper-next` or `sbb-stepper-previous` attributes. */
97
+ _handleClick(event) {
98
+ const composedPathElements = event.composedPath().filter((el) => el instanceof window.HTMLElement);
99
+ if (composedPathElements.some((el) => this._isGoNextElement(el))) this.stepper?.next();
100
+ else if (composedPathElements.some((el) => this._isGoPreviousElement(el))) this.stepper?.previous();
101
+ }
102
+ _isGoNextElement(element) {
103
+ return element.hasAttribute("sbb-stepper-next") && !element.hasAttribute("disabled");
104
+ }
105
+ _isGoPreviousElement(element) {
106
+ return element.hasAttribute("sbb-stepper-previous") && !element.hasAttribute("disabled");
107
+ }
108
+ _onStepElementResize() {
109
+ if (!this.matches(":is(:state(selected),[state--selected])")) return;
110
+ /**
111
+ * @internal
112
+ * Emits when a resize happens, used to avoid setting the height of the stepper from the step component.
113
+ */
114
+ this.dispatchEvent(new Event("resizechange", { bubbles: true }));
115
+ }
116
+ connectedCallback() {
117
+ super.connectedCallback();
118
+ this.slot ||= "step";
119
+ this._assignLabel();
120
+ }
121
+ firstUpdated(changedProperties) {
122
+ super.firstUpdated(changedProperties);
123
+ this.updateComplete.then(() => {
124
+ this._stepResizeObserver.observe(this.shadowRoot.querySelector(".sbb-step"));
125
+ });
126
+ }
127
+ _assignLabel() {
128
+ let previousSibling = this.previousElementSibling;
129
+ while (previousSibling && previousSibling.localName !== "sbb-step-label") previousSibling = previousSibling.previousElementSibling;
130
+ const value = previousSibling;
131
+ this.internals.ariaLabelledByElements = removeAriaElements(this.internals.ariaLabelledByElements, this._label);
132
+ this._label = value instanceof Element ? value : null;
133
+ this.internals.ariaLabelledByElements = appendAriaElements(this.internals.ariaLabelledByElements, this._label);
134
+ }
135
+ render() {
136
+ return html`
137
+ <div class="sbb-step">
138
+ <slot></slot>
139
+ </div>
140
+ `;
141
+ }
142
+ };
143
+ //#endregion
144
+ export { SbbStepElement as t };
145
+
146
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5jb21wb25lbnQtRDFHcTBWUlcuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3N0ZXBwZXIvc3RlcC9zdGVwLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3N0ZXBwZXIvc3RlcC9zdGVwLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXN0ZXAtb3BhY2l0eTogMDtcbiAgLS1zYmItc3RlcC1tYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC00eCk7XG4gIC0tc2JiLXN0ZXAtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi0yeClcbiAgKTtcblxuICBkaXNwbGF5OiBibG9jaztcbn1cblxuOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkge1xuICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItc3RlcC1tYXJnaW4taW5saW5lLXN0YXJ0KTtcbiAgb3BhY2l0eTogMDtcbiAgaGVpZ2h0OiAwO1xuICB0cmFuc2l0aW9uOlxuICAgIGRpc3BsYXkgdmFyKC0tc2JiLXN0ZXAtYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1zYmItYW5pbWF0aW9uLWVhc2luZyksXG4gICAgaGVpZ2h0IHZhcigtLXNiYi1zdGVwcGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpLFxuICAgIG9wYWNpdHkgdmFyKC0tc2JiLXN0ZXAtYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1zYmItYW5pbWF0aW9uLWVhc2luZyk7XG5cbiAgLy8gRXhwZXJpbWVudGFsIHByb3BlcnR5LCBidXQgc3VwcG9ydGVkIGluIGV2ZXJ5IG1ham9yIGJyb3dzZXIuXG4gIHRyYW5zaXRpb24tYmVoYXZpb3I6IGFsbG93LWRpc2NyZXRlO1xufVxuXG46aG9zdCg6c3RhdGUoc2VsZWN0ZWQpOnN0YXRlKG9yaWVudGF0aW9uLXZlcnRpY2FsKSkge1xuICBvcGFjaXR5OiAxO1xuICBoZWlnaHQ6IHZhcigtLXNiYi1zdGVwcGVyLWNvbnRlbnQtaGVpZ2h0KTtcbiAgdHJhbnNpdGlvbjpcbiAgICBkaXNwbGF5IHZhcigtLXNiYi1zdGVwLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpLFxuICAgIGhlaWdodCB2YXIoLS1zYmItc3RlcHBlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLXNiYi1hbmltYXRpb24tZWFzaW5nKSxcbiAgICBvcGFjaXR5IHZhcigtLXNiYi1zdGVwLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tc2JiLXN0ZXBwZXItYW5pbWF0aW9uLWR1cmF0aW9uKVxuICAgICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpO1xuXG4gIC8vIEV4cGVyaW1lbnRhbCBwcm9wZXJ0eSwgYnV0IHN1cHBvcnRlZCBpbiBldmVyeSBtYWpvciBicm93c2VyLlxuICB0cmFuc2l0aW9uLWJlaGF2aW9yOiBhbGxvdy1kaXNjcmV0ZTtcbn1cblxuOmhvc3QoOnN0YXRlKHNlbGVjdGVkKSkge1xuICAtLXNiYi1zdGVwLW9wYWNpdHk6IDE7XG4gIC0tc2JiLXN0ZXAtZGlzcGxheTogYmxvY2s7XG4gIC0tc2JiLXN0ZXAtaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgLS1zYmItc3RlcC1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuICAtLXNiYi1zdGVwLWFuaW1hdGlvbi1kZWxheTogdmFyKC0tc2JiLXN0ZXAtYW5pbWF0aW9uLWR1cmF0aW9uKTtcbn1cblxuOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLWhvcml6b250YWwpKSB7XG4gIC0tc2JiLXN0ZXAtcG9zaXRpb246IGFic29sdXRlO1xuICAtLXNiYi1zdGVwLWluc2V0LWJsb2NrLXN0YXJ0OiAwO1xufVxuXG4uc2JiLXN0ZXAge1xuICBwb3NpdGlvbjogdmFyKC0tc2JiLXN0ZXAtcG9zaXRpb24sIGluaXRpYWwpO1xuICB3aWR0aDogMTAwJTtcbiAgaW5zZXQtYmxvY2stc3RhcnQ6IHZhcigtLXNiYi1zdGVwLWluc2V0LWJsb2NrLXN0YXJ0LCB1bnNldCk7XG4gIG9wYWNpdHk6IHZhcigtLXNiYi1zdGVwLW9wYWNpdHkpO1xuICBkaXNwbGF5OiB2YXIoLS1zYmItc3RlcC1kaXNwbGF5LCBub25lKTtcbiAgaGVpZ2h0OiB2YXIoLS1zYmItc3RlcC1oZWlnaHQsIDApO1xuICB0cmFuc2l0aW9uOiB7XG4gICAgcHJvcGVydHk6IGRpc3BsYXksIG9wYWNpdHk7XG4gICAgZHVyYXRpb246IHZhcigtLXNiYi1zdGVwLWFuaW1hdGlvbi1kdXJhdGlvbik7XG4gICAgZGVsYXk6IHZhcigtLXNiYi1zdGVwLWFuaW1hdGlvbi1kZWxheSwgMCk7XG4gICAgdGltaW5nLWZ1bmN0aW9uOiB2YXIoLS1zYmItYW5pbWF0aW9uLWVhc2luZyk7XG4gIH1cblxuICAvLyBFeHBlcmltZW50YWwgcHJvcGVydHksIGJ1dCBzdXBwb3J0ZWQgaW4gZXZlcnkgbWFqb3IgYnJvd3Nlci5cbiAgdHJhbnNpdGlvbi1iZWhhdmlvcjogYWxsb3ctZGlzY3JldGU7XG5cbiAgLy8gRXhwZXJpbWVudGFsIHByb3BlcnR5LCBjdXJyZW50bHkgc3VwcG9ydGVkIGluIGV2ZXJ5IG1ham9yIGJyb3dzZXIgZXhjZXB0IEZpcmVmb3guXG4gIEBzdGFydGluZy1zdHlsZSB7XG4gICAgLS1zYmItc3RlcC1vcGFjaXR5OiAwO1xuICB9XG59XG4iLCJpbXBvcnQgeyBSZXNpemVDb250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9yZXNpemUtY29udHJvbGxlci5qcyc7XG5pbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICB0eXBlIFByb3BlcnR5VmFsdWVzLFxuICB0eXBlIFRlbXBsYXRlUmVzdWx0LFxuICB1bnNhZmVDU1MsXG59IGZyb20gJ2xpdCc7XG5cbmltcG9ydCB7XG4gIGFwcGVuZEFyaWFFbGVtZW50cyxcbiAgYm94U2l6aW5nU3R5bGVzLFxuICByZW1vdmVBcmlhRWxlbWVudHMsXG4gIFNiYkVsZW1lbnQsXG4gIFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIsXG59IGZyb20gJy4uLy4uL2NvcmUudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJTdGVwTGFiZWxFbGVtZW50IH0gZnJvbSAnLi4vc3RlcC1sYWJlbC9zdGVwLWxhYmVsLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlN0ZXBwZXJFbGVtZW50IH0gZnJvbSAnLi4vc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3N0ZXAuc2Nzcz9pbmxpbmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNiYlN0ZXBWYWxpZGF0ZUV2ZW50RGV0YWlscyB7XG4gIGN1cnJlbnRJbmRleDogbnVtYmVyIHwgbnVsbDtcbiAgY3VycmVudFN0ZXA6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbDtcbiAgbmV4dEluZGV4OiBudW1iZXIgfCBudWxsO1xuICBuZXh0U3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsO1xufVxuXG4vKipcbiAqIENvbWJpbmVkIHdpdGggYSBgc2JiLXN0ZXBwZXJgLCBpdCBkaXNwbGF5cyBhIHN0ZXAncyBjb250ZW50LlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gcHJvdmlkZSBjb250ZW50LlxuICovXG5leHBvcnQgY2xhc3MgU2JiU3RlcEVsZW1lbnQgZXh0ZW5kcyBTYmJFbGVtZW50IHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1zdGVwJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ3RhYnBhbmVsJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW2JveFNpemluZ1N0eWxlcywgdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHZhbGlkYXRlOiAndmFsaWRhdGUnLFxuICAgIHJlc2l6ZWNoYW5nZTogJ3Jlc2l6ZWNoYW5nZScsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLy8gV2UgdXNlIGEgdGltZW91dCBhcyBhIHdvcmthcm91bmQgdG8gdGhlIFwiUmVzaXplT2JzZXJ2ZXIgbG9vcCBjb21wbGV0ZWQgd2l0aCB1bmRlbGl2ZXJlZCBub3RpZmljYXRpb25zXCIgZXJyb3IuXG4gIC8vIEZvciBtb3JlIGRldGFpbHM6XG4gIC8vIC0gaHR0cHM6Ly9naXRodWIuY29tL1dJQ0cvcmVzaXplLW9ic2VydmVyL2lzc3Vlcy8zOCNpc3N1ZWNvbW1lbnQtNDIyMTI2MDA2XG4gIC8vIC0gaHR0cHM6Ly9naXRodWIuY29tL2p1Z2dsZS9yZXNpemUtb2JzZXJ2ZXIvaXNzdWVzLzEwMyNpc3N1ZWNvbW1lbnQtMTcxMTE0ODI4NVxuICBwcml2YXRlIF9zdGVwUmVzaXplT2JzZXJ2ZXIgPSBuZXcgUmVzaXplQ29udHJvbGxlcih0aGlzLCB7XG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIHNraXBJbml0aWFsOiB0cnVlLFxuICAgIGNhbGxiYWNrOiAoKSA9PiBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX29uU3RlcEVsZW1lbnRSZXNpemUoKSksXG4gIH0pO1xuXG4gIC8qKiBUaGUgbGFiZWwgb2YgdGhlIHN0ZXAuICovXG4gIHB1YmxpYyBnZXQgbGFiZWwoKTogU2JiU3RlcExhYmVsRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9sYWJlbDtcbiAgfVxuICBwcml2YXRlIF9sYWJlbDogU2JiU3RlcExhYmVsRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIHB1YmxpYyBnZXQgc3RlcHBlcigpOiBTYmJTdGVwcGVyRWxlbWVudCB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLmNsb3Nlc3QoJ3NiYi1zdGVwcGVyJyk7XG4gIH1cblxuICBwcml2YXRlIF9wcmV2aW91c09yaWVudGF0aW9uPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdjbGljaycsIChlKSA9PiB0aGlzLl9oYW5kbGVDbGljayhlKSk7XG4gICAgdGhpcy5hZGRDb250cm9sbGVyKFxuICAgICAgbmV3IFNiYlByb3BlcnR5V2F0Y2hlckNvbnRyb2xsZXIodGhpcywgKCkgPT4gdGhpcy5zdGVwcGVyLCB7XG4gICAgICAgIG9yaWVudGF0aW9uOiAocykgPT4ge1xuICAgICAgICAgIGlmICh0aGlzLl9wcmV2aW91c09yaWVudGF0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKGBvcmllbnRhdGlvbi0ke3RoaXMuX3ByZXZpb3VzT3JpZW50YXRpb259YCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX3ByZXZpb3VzT3JpZW50YXRpb24gPSBzLm9yaWVudGF0aW9uO1xuICAgICAgICAgIGlmICh0aGlzLl9wcmV2aW91c09yaWVudGF0aW9uKSB7XG4gICAgICAgICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuYWRkKGBvcmllbnRhdGlvbi0ke3RoaXMuX3ByZXZpb3VzT3JpZW50YXRpb259YCk7XG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTZWxlY3RzIGFuZCBjb25maWd1cmVzIHRoZSBzdGVwLlxuICAgKiBAaW50ZXJuYWxcbiAgICogVE9ETzogQGJyZWFraW5nLWNoYW5nZTogbWFrZSBwcm90ZWN0ZWRcbiAgICovXG4gIHB1YmxpYyBzZWxlY3QoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmhhc1VwZGF0ZWQgfHwgIXRoaXMubGFiZWwpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZCgnc2VsZWN0ZWQnKTtcbiAgICB0aGlzLmxhYmVsLnNlbGVjdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlc2VsZWN0cyBhbmQgY29uZmlndXJlcyB0aGUgc3RlcC5cbiAgICogQGludGVybmFsXG4gICAqIFRPRE86IEBicmVha2luZy1jaGFuZ2U6IG1ha2UgcHJvdGVjdGVkXG4gICAqL1xuICBwdWJsaWMgZGVzZWxlY3QoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmxhYmVsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5kZWxldGUoJ3NlbGVjdGVkJyk7XG4gICAgdGhpcy5sYWJlbC5kZXNlbGVjdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEVtaXRzIGEgdmFsaWRhdGUgZXZlbnQgd2hlbmV2ZXIgc3RlcCBzd2l0Y2ggaXMgdHJpZ2dlcmVkLlxuICAgKiBAaW50ZXJuYWxcbiAgICogVE9ETzogQGJyZWFraW5nLWNoYW5nZTogbWFrZSBwcm90ZWN0ZWRcbiAgICovXG4gIHB1YmxpYyB2YWxpZGF0ZShldmVudERhdGE6IFNiYlN0ZXBWYWxpZGF0ZUV2ZW50RGV0YWlscyk6IGJvb2xlYW4ge1xuICAgIC8vIFRPRE86IEBicmVha2luZy1jaGFuZ2U6IENyZWF0ZSBhIHNwZWNpZmljIGV2ZW50IHR5cGUgZm9yIHRoaXMgZXZlbnQuXG4gICAgLyoqXG4gICAgICogQHR5cGUge0N1c3RvbUV2ZW50PFNiYlN0ZXBWYWxpZGF0ZUV2ZW50RGV0YWlscz59XG4gICAgICogVGhlIHZhbGlkYXRlIGV2ZW50IGlzIGRpc3BhdGNoZWQgd2hlbiBhIHN0ZXAgY2hhbmdlIGlzIHRyaWdnZXJlZC4gQ2FuIGJlIGNhbmNlbGVkIHRvIGFib3J0IHRoZSBzdGVwIGNoYW5nZS5cbiAgICAgKi9cbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50PFNiYlN0ZXBWYWxpZGF0ZUV2ZW50RGV0YWlscz4oJ3ZhbGlkYXRlJywge1xuICAgICAgICBidWJibGVzOiB0cnVlLFxuICAgICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgICAgZGV0YWlsOiBldmVudERhdGEsXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZXMgdGhlIHN0ZXAuXG4gICAqIEBpbnRlcm5hbFxuICAgKiBUT0RPOiBAYnJlYWtpbmctY2hhbmdlOiBtYWtlIHByb3RlY3RlZFxuICAgKi9cbiAgcHVibGljIGNvbmZpZ3VyZShzdGVwcGVyTG9hZGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKHN0ZXBwZXJMb2FkZWQpIHtcbiAgICAgIHRoaXMuX2Fzc2lnbkxhYmVsKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFdhdGNoZXMgZm9yIGNsaWNrZWQgZWxlbWVudHMgd2l0aCBgc2JiLXN0ZXBwZXItbmV4dGAgb3IgYHNiYi1zdGVwcGVyLXByZXZpb3VzYCBhdHRyaWJ1dGVzLiAqL1xuICBwcml2YXRlIF9oYW5kbGVDbGljayhldmVudDogRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBjb21wb3NlZFBhdGhFbGVtZW50cyA9IGV2ZW50XG4gICAgICAuY29tcG9zZWRQYXRoKClcbiAgICAgIC5maWx0ZXIoKGVsKSA9PiBlbCBpbnN0YW5jZW9mIHdpbmRvdy5IVE1MRWxlbWVudCk7XG4gICAgaWYgKGNvbXBvc2VkUGF0aEVsZW1lbnRzLnNvbWUoKGVsKSA9PiB0aGlzLl9pc0dvTmV4dEVsZW1lbnQoZWwgYXMgSFRNTEVsZW1lbnQpKSkge1xuICAgICAgdGhpcy5zdGVwcGVyPy5uZXh0KCk7XG4gICAgfSBlbHNlIGlmIChjb21wb3NlZFBhdGhFbGVtZW50cy5zb21lKChlbCkgPT4gdGhpcy5faXNHb1ByZXZpb3VzRWxlbWVudChlbCBhcyBIVE1MRWxlbWVudCkpKSB7XG4gICAgICB0aGlzLnN0ZXBwZXI/LnByZXZpb3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNHb05leHRFbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50KTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGVsZW1lbnQuaGFzQXR0cmlidXRlKCdzYmItc3RlcHBlci1uZXh0JykgJiYgIWVsZW1lbnQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBfaXNHb1ByZXZpb3VzRWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLXN0ZXBwZXItcHJldmlvdXMnKSAmJiAhZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ2Rpc2FibGVkJyk7XG4gIH1cblxuICBwcml2YXRlIF9vblN0ZXBFbGVtZW50UmVzaXplKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tYXRjaGVzKCc6c3RhdGUoc2VsZWN0ZWQpJykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKiBFbWl0cyB3aGVuIGEgcmVzaXplIGhhcHBlbnMsIHVzZWQgdG8gYXZvaWQgc2V0dGluZyB0aGUgaGVpZ2h0IG9mIHRoZSBzdGVwcGVyIGZyb20gdGhlIHN0ZXAgY29tcG9uZW50LlxuICAgICAqL1xuICAgIHRoaXMuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ3Jlc2l6ZWNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLnNsb3QgfHw9ICdzdGVwJztcbiAgICB0aGlzLl9hc3NpZ25MYWJlbCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIGZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiB2b2lkIHtcbiAgICBzdXBlci5maXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIHRoaXMudXBkYXRlQ29tcGxldGUudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLl9zdGVwUmVzaXplT2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLnNoYWRvd1Jvb3QhLnF1ZXJ5U2VsZWN0b3IoJy5zYmItc3RlcCcpIGFzIEhUTUxFbGVtZW50KTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2Fzc2lnbkxhYmVsKCk6IHZvaWQge1xuICAgIGxldCBwcmV2aW91c1NpYmxpbmcgPSB0aGlzLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gICAgd2hpbGUgKHByZXZpb3VzU2libGluZyAmJiBwcmV2aW91c1NpYmxpbmcubG9jYWxOYW1lICE9PSAnc2JiLXN0ZXAtbGFiZWwnKSB7XG4gICAgICBwcmV2aW91c1NpYmxpbmcgPSBwcmV2aW91c1NpYmxpbmcucHJldmlvdXNFbGVtZW50U2libGluZztcbiAgICB9XG4gICAgY29uc3QgdmFsdWUgPSBwcmV2aW91c1NpYmxpbmcgYXMgU2JiU3RlcExhYmVsRWxlbWVudCB8IG51bGw7XG5cbiAgICB0aGlzLmludGVybmFscy5hcmlhTGFiZWxsZWRCeUVsZW1lbnRzID0gcmVtb3ZlQXJpYUVsZW1lbnRzKFxuICAgICAgdGhpcy5pbnRlcm5hbHMuYXJpYUxhYmVsbGVkQnlFbGVtZW50cyxcbiAgICAgIHRoaXMuX2xhYmVsLFxuICAgICk7XG4gICAgdGhpcy5fbGFiZWwgPSB2YWx1ZSBpbnN0YW5jZW9mIEVsZW1lbnQgPyB2YWx1ZSA6IG51bGw7XG4gICAgdGhpcy5pbnRlcm5hbHMuYXJpYUxhYmVsbGVkQnlFbGVtZW50cyA9IGFwcGVuZEFyaWFFbGVtZW50cyhcbiAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFMYWJlbGxlZEJ5RWxlbWVudHMsXG4gICAgICB0aGlzLl9sYWJlbCxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXN0ZXBcIj5cbiAgICAgICAgPHNsb3Q+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgYDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudFRhZ05hbWVNYXAge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgICAnc2JiLXN0ZXAnOiBTYmJTdGVwRWxlbWVudDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBHbG9iYWxFdmVudEhhbmRsZXJzRXZlbnRNYXAge1xuICAgIHJlc2l6ZWNoYW5nZTogRXZlbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7O0FDaUNBLElBQWEsaUJBQWIsY0FBb0MsV0FBVTs7QUFDWixPQUFBLGNBQXNCOzs7QUFDdEIsT0FBQSxPQUFPOzs7QUFDaEIsT0FBQSxTQUF5QixDQUFDLGlCQUFpQixVQUFVLGFBQU0sQ0FBQzs7O0FBQzVELE9BQUEsU0FBUztHQUM5QixVQUFVO0dBQ1YsY0FBYztHQUNOOzs7Q0FhVixJQUFXLFFBQUs7QUFDZCxTQUFPLEtBQUs7O0NBSWQsSUFBVyxVQUFPO0FBQ2hCLFNBQU8sS0FBSyxRQUFRLGNBQWM7O0NBS3BDLGNBQUE7QUFDRSxTQUFPO0FBbkJELE9BQUEsc0JBQXNCLElBQUksaUJBQWlCLE1BQU07R0FDdkQsUUFBUTtHQUNSLGFBQWE7R0FDYixnQkFBZ0IsaUJBQWlCLEtBQUssc0JBQXNCLENBQUE7R0FDN0QsQ0FBQztBQU1NLE9BQUEsU0FBcUM7QUFVM0MsT0FBSyxtQkFBbUIsVUFB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
@@ -1 +1 @@
1
- {"version":3,"file":"step.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/stepper/step/step.component.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAEb,OAAO,EAIL,UAAU,EAEX,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAIzE,MAAM,WAAW,2BAA2B;IAC1C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;CACjC;AAED;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAC5C,gBAAgC,WAAW,EAAE,MAAM,CAAc;IACjE,gBAAgC,IAAI,cAAc;IAClD,OAAuB,MAAM,EAAE,cAAc,CAAuC;IACpF,gBAAuB,MAAM;;;MAGlB;IAMX,OAAO,CAAC,mBAAmB,CAIxB;IAEH,6BAA6B;IAC7B,IAAW,KAAK,IAAI,mBAAmB,GAAG,IAAI,CAE7C;IACD,OAAO,CAAC,MAAM,CAAoC;IAElD,IAAW,OAAO,IAAI,iBAAiB,GAAG,IAAI,CAE7C;IAED,OAAO,CAAC,oBAAoB,CAAC,CAAS;;IAoBtC;;;;OAIG;IACI,MAAM,IAAI,IAAI;IAQrB;;;;OAIG;IACI,QAAQ,IAAI,IAAI;IAQvB;;;;OAIG;IACI,QAAQ,CAAC,SAAS,EAAE,2BAA2B,GAAG,OAAO;IAgBhE;;;;OAIG;IACI,SAAS,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI;IAM9C,iGAAiG;IACjG,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,oBAAoB;IAYZ,iBAAiB,IAAI,IAAI;cAMtB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAO9E,OAAO,CAAC,YAAY;cAkBD,MAAM,IAAI,cAAc;CAS5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,UAAU,EAAE,cAAc,CAAC;KAC5B;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,2BAA2B;QACnC,YAAY,EAAE,KAAK,CAAC;KACrB;CACF"}
1
+ {"version":3,"file":"step.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/stepper/step/step.component.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,cAAc,EAEnB,KAAK,cAAc,EACnB,KAAK,cAAc,EAEpB,MAAM,KAAK,CAAC;AAEb,OAAO,EAIL,UAAU,EAEX,MAAM,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uCAAuC,CAAC;AACjF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AAIzE,MAAM,WAAW,2BAA2B;IAC1C,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,EAAE,cAAc,GAAG,IAAI,CAAC;IACnC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;CACjC;AAED;;;;GAIG;AACH,qBAAa,cAAe,SAAQ,UAAU;IAC5C,gBAAgC,WAAW,EAAE,MAAM,CAAc;IACjE,gBAAgC,IAAI,cAAc;IAClD,OAAuB,MAAM,EAAE,cAAc,CAAuC;IACpF,gBAAuB,MAAM;;;MAGlB;IAMX,OAAO,CAAC,mBAAmB,CAIxB;IAEH,6BAA6B;IAC7B,IAAW,KAAK,IAAI,mBAAmB,GAAG,IAAI,CAE7C;IACD,OAAO,CAAC,MAAM,CAAoC;IAElD,IAAW,OAAO,IAAI,iBAAiB,GAAG,IAAI,CAE7C;IAED,OAAO,CAAC,oBAAoB,CAAC,CAAS;;IAoBtC;;;;OAIG;IACI,MAAM,IAAI,IAAI;IAQrB;;;;OAIG;IACI,QAAQ,IAAI,IAAI;IAQvB;;;;OAIG;IACI,QAAQ,CAAC,SAAS,EAAE,2BAA2B,GAAG,OAAO;IAgBhE;;;;OAIG;IACI,SAAS,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI;IAM9C,iGAAiG;IACjG,OAAO,CAAC,YAAY;IAWpB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,oBAAoB;IAYZ,iBAAiB,IAAI,IAAI;cAMtB,YAAY,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,IAAI;IAO9E,OAAO,CAAC,YAAY;cAkBD,MAAM,IAAI,cAAc;CAO5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,UAAU,EAAE,cAAc,CAAC;KAC5B;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,2BAA2B;QACnC,YAAY,EAAE,KAAK,CAAC;KACrB;CACF"}
@@ -1,2 +1,2 @@
1
- import { t as SbbStepElement } from "../../step.component-CVWxYkrv.js";
1
+ import { t as SbbStepElement } from "../../step.component-D1Gq0VRW.js";
2
2
  export { SbbStepElement };
@@ -1,5 +1,5 @@
1
1
  import { t as SbbStepLabelElement } from "./step-label.component-Dfx9rLcN.js";
2
- import { t as SbbStepElement } from "./step.component-CVWxYkrv.js";
2
+ import { t as SbbStepElement } from "./step.component-D1Gq0VRW.js";
3
3
  import { n as SbbStepperElement, t as SbbStepChangeEvent } from "./stepper.component-BTwJttZt.js";
4
4
  import "./stepper.pure.js";
5
5
  //#region src/elements/stepper.ts
@@ -1,4 +1,4 @@
1
1
  import { t as SbbStepLabelElement } from "./step-label.component-Dfx9rLcN.js";
2
- import { t as SbbStepElement } from "./step.component-CVWxYkrv.js";
2
+ import { t as SbbStepElement } from "./step.component-D1Gq0VRW.js";
3
3
  import { n as SbbStepperElement, t as SbbStepChangeEvent } from "./stepper.component-BTwJttZt.js";
4
4
  export { SbbStepChangeEvent, SbbStepElement, SbbStepLabelElement, SbbStepperElement };
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.1776959321",
3
+ "version": "5.0.0-next-dev.1776960216",
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/963894a5ab164d3418be82542aa636f9ae0fb96f"
9
+ "https://github.com/sbb-design-systems/lyne-components/commit/c08f2ee0b06a9e30239772ad0362e47750a35868"
10
10
  ],
11
11
  "type": "module",
12
12
  "exports": {
@@ -2,7 +2,7 @@ import { html as e, unsafeCSS as t } from "lit";
2
2
  import { SbbElement as n, SbbPropertyWatcherController as r, appendAriaElements as i, boxSizingStyles as a, removeAriaElements as o } from "./core.js";
3
3
  import { ResizeController as s } from "@lit-labs/observers/resize-controller.js";
4
4
  //#region src/elements/stepper/step/step.scss?inline
5
- var c = ":host{--sbb-step-opacity: 0;--sbb-step-margin-inline-start: var(--sbb-spacing-fixed-4x);--sbb-step-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-2x) );display:contents;font-size:var(--sbb-text-font-size-m);letter-spacing:var(--sbb-typo-letter-spacing-text)}:host(:is(:state(selected),[state--selected])){--sbb-step-opacity: 1;--sbb-step-display: block;--sbb-step-height: fit-content;--sbb-step-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-4x) );--sbb-step-animation-delay: var(--sbb-step-animation-duration)}:host(:is(:state(orientation-horizontal),[state--orientation-horizontal])){--sbb-step-position: absolute;--sbb-step-inset-block-start: 0}:host(:is(:state(orientation-vertical),[state--orientation-vertical])) .sbb-step--wrapper{margin-inline-start:var(--sbb-step-margin-inline-start);opacity:0;height:0;transition:display var(--sbb-step-animation-duration) var(--sbb-animation-easing),height var(--sbb-stepper-animation-duration) var(--sbb-animation-easing),opacity var(--sbb-step-animation-duration) var(--sbb-animation-easing);transition-behavior:allow-discrete}:host(:is(:state(selected),[state--selected]):is(:state(orientation-vertical),[state--orientation-vertical])) .sbb-step--wrapper{opacity:1;height:var(--sbb-stepper-content-height);transition:display var(--sbb-step-animation-duration) var(--sbb-animation-easing),height var(--sbb-stepper-animation-duration) var(--sbb-animation-easing),opacity var(--sbb-step-animation-duration) var(--sbb-stepper-animation-duration) var(--sbb-animation-easing);transition-behavior:allow-discrete}.sbb-step{position:var(--sbb-step-position, initial);width:100%;inset-block-start:var(--sbb-step-inset-block-start, unset);opacity:var(--sbb-step-opacity);display:var(--sbb-step-display, none);height:var(--sbb-step-height, 0);transition-property:display,opacity;transition-duration:var(--sbb-step-animation-duration);transition-delay:var(--sbb-step-animation-delay, 0);transition-timing-function:var(--sbb-animation-easing);transition-behavior:allow-discrete}@starting-style{.sbb-step{--sbb-step-opacity: 0}}", l = class extends n {
5
+ var c = ":host{--sbb-step-opacity: 0;--sbb-step-margin-inline-start: var(--sbb-spacing-fixed-4x);--sbb-step-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-2x) );display:block}:host(:is(:state(orientation-vertical),[state--orientation-vertical])){margin-inline-start:var(--sbb-step-margin-inline-start);opacity:0;height:0;transition:display var(--sbb-step-animation-duration) var(--sbb-animation-easing),height var(--sbb-stepper-animation-duration) var(--sbb-animation-easing),opacity var(--sbb-step-animation-duration) var(--sbb-animation-easing);transition-behavior:allow-discrete}:host(:is(:state(selected),[state--selected]):is(:state(orientation-vertical),[state--orientation-vertical])){opacity:1;height:var(--sbb-stepper-content-height);transition:display var(--sbb-step-animation-duration) var(--sbb-animation-easing),height var(--sbb-stepper-animation-duration) var(--sbb-animation-easing),opacity var(--sbb-step-animation-duration) var(--sbb-stepper-animation-duration) var(--sbb-animation-easing);transition-behavior:allow-discrete}:host(:is(:state(selected),[state--selected])){--sbb-step-opacity: 1;--sbb-step-display: block;--sbb-step-height: fit-content;--sbb-step-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-4x) );--sbb-step-animation-delay: var(--sbb-step-animation-duration)}:host(:is(:state(orientation-horizontal),[state--orientation-horizontal])){--sbb-step-position: absolute;--sbb-step-inset-block-start: 0}.sbb-step{position:var(--sbb-step-position, initial);width:100%;inset-block-start:var(--sbb-step-inset-block-start, unset);opacity:var(--sbb-step-opacity);display:var(--sbb-step-display, none);height:var(--sbb-step-height, 0);transition-property:display,opacity;transition-duration:var(--sbb-step-animation-duration);transition-delay:var(--sbb-step-animation-delay, 0);transition-timing-function:var(--sbb-animation-easing);transition-behavior:allow-discrete}@starting-style{.sbb-step{--sbb-step-opacity: 0}}", l = class extends n {
6
6
  static {
7
7
  this.elementName = "sbb-step";
8
8
  }
@@ -79,10 +79,8 @@ var c = ":host{--sbb-step-opacity: 0;--sbb-step-margin-inline-start: var(--sbb-s
79
79
  }
80
80
  render() {
81
81
  return e`
82
- <div class="sbb-step--wrapper">
83
- <div class="sbb-step">
84
- <slot></slot>
85
- </div>
82
+ <div class="sbb-step">
83
+ <slot></slot>
86
84
  </div>
87
85
  `;
88
86
  }
@@ -1,2 +1,2 @@
1
- import { t as e } from "../../step.component-sQbJslHx.js";
1
+ import { t as e } from "../../step.component-DuLOqjZk.js";
2
2
  export { e as SbbStepElement };
package/stepper.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { t as e } from "./step-label.component-DM7lQw8b.js";
2
- import { t } from "./step.component-sQbJslHx.js";
2
+ import { t } from "./step.component-DuLOqjZk.js";
3
3
  import { n, t as r } from "./stepper.component-8IXNrdx7.js";
4
4
  import "./stepper.pure.js";
5
5
  t.define(), e.define(), n.define();
package/stepper.pure.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import { t as e } from "./step-label.component-DM7lQw8b.js";
2
- import { t } from "./step.component-sQbJslHx.js";
2
+ import { t } from "./step.component-DuLOqjZk.js";
3
3
  import { n, t as r } from "./stepper.component-8IXNrdx7.js";
4
4
  export { r as SbbStepChangeEvent, t as SbbStepElement, e as SbbStepLabelElement, n as SbbStepperElement };
@@ -1,148 +0,0 @@
1
- import { html, unsafeCSS } from "lit";
2
- import { SbbElement, SbbPropertyWatcherController, appendAriaElements, boxSizingStyles, removeAriaElements } from "./core.js";
3
- import { ResizeController } from "@lit-labs/observers/resize-controller.js";
4
- //#region src/elements/stepper/step/step.scss?inline
5
- var step_default = ":host {\n --sbb-step-opacity: 0;\n --sbb-step-margin-inline-start: var(--sbb-spacing-fixed-4x);\n --sbb-step-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-2x)\n );\n display: contents;\n font-size: var(--sbb-text-font-size-m);\n letter-spacing: var(--sbb-typo-letter-spacing-text);\n}\n\n:host(:is(:state(selected),[state--selected])) {\n --sbb-step-opacity: 1;\n --sbb-step-display: block;\n --sbb-step-height: fit-content;\n --sbb-step-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-4x)\n );\n --sbb-step-animation-delay: var(--sbb-step-animation-duration);\n}\n\n:host(:is(:state(orientation-horizontal),[state--orientation-horizontal])) {\n --sbb-step-position: absolute;\n --sbb-step-inset-block-start: 0;\n}\n\n:host(:is(:state(orientation-vertical),[state--orientation-vertical])) .sbb-step--wrapper {\n margin-inline-start: var(--sbb-step-margin-inline-start);\n opacity: 0;\n height: 0;\n transition: display var(--sbb-step-animation-duration) var(--sbb-animation-easing), height var(--sbb-stepper-animation-duration) var(--sbb-animation-easing), opacity var(--sbb-step-animation-duration) var(--sbb-animation-easing);\n transition-behavior: allow-discrete;\n}\n:host(:is(:state(selected),[state--selected]):is(:state(orientation-vertical),[state--orientation-vertical])) .sbb-step--wrapper {\n opacity: 1;\n height: var(--sbb-stepper-content-height);\n transition: display var(--sbb-step-animation-duration) var(--sbb-animation-easing), height var(--sbb-stepper-animation-duration) var(--sbb-animation-easing), opacity var(--sbb-step-animation-duration) var(--sbb-stepper-animation-duration) var(--sbb-animation-easing);\n transition-behavior: allow-discrete;\n}\n\n.sbb-step {\n position: var(--sbb-step-position, initial);\n width: 100%;\n inset-block-start: var(--sbb-step-inset-block-start, unset);\n opacity: var(--sbb-step-opacity);\n display: var(--sbb-step-display, none);\n height: var(--sbb-step-height, 0);\n transition-property: display, opacity;\n transition-duration: var(--sbb-step-animation-duration);\n transition-delay: var(--sbb-step-animation-delay, 0);\n transition-timing-function: var(--sbb-animation-easing);\n transition-behavior: allow-discrete;\n}\n@starting-style {\n .sbb-step {\n --sbb-step-opacity: 0;\n }\n}";
6
- //#endregion
7
- //#region src/elements/stepper/step/step.component.ts
8
- /**
9
- * Combined with a `sbb-stepper`, it displays a step's content.
10
- *
11
- * @slot - Use the unnamed slot to provide content.
12
- */
13
- var SbbStepElement = class extends SbbElement {
14
- static {
15
- this.elementName = "sbb-step";
16
- }
17
- static {
18
- this.role = "tabpanel";
19
- }
20
- static {
21
- this.styles = [boxSizingStyles, unsafeCSS(step_default)];
22
- }
23
- static {
24
- this.events = {
25
- validate: "validate",
26
- resizechange: "resizechange"
27
- };
28
- }
29
- /** The label of the step. */
30
- get label() {
31
- return this._label;
32
- }
33
- get stepper() {
34
- return this.closest("sbb-stepper");
35
- }
36
- constructor() {
37
- super();
38
- this._stepResizeObserver = new ResizeController(this, {
39
- target: null,
40
- skipInitial: true,
41
- callback: () => setTimeout(() => this._onStepElementResize())
42
- });
43
- this._label = null;
44
- this.addEventListener?.("click", (e) => this._handleClick(e));
45
- this.addController(new SbbPropertyWatcherController(this, () => this.stepper, { orientation: (s) => {
46
- if (this._previousOrientation) this.internals.states.delete(`orientation-${this._previousOrientation}`);
47
- this._previousOrientation = s.orientation;
48
- if (this._previousOrientation) this.internals.states.add(`orientation-${this._previousOrientation}`);
49
- } }));
50
- }
51
- /**
52
- * Selects and configures the step.
53
- * @internal
54
- * TODO: @breaking-change: make protected
55
- */
56
- select() {
57
- if (!this.hasUpdated || !this.label) return;
58
- this.internals.states.add("selected");
59
- this.label.select();
60
- }
61
- /**
62
- * Deselects and configures the step.
63
- * @internal
64
- * TODO: @breaking-change: make protected
65
- */
66
- deselect() {
67
- if (!this.label) return;
68
- this.internals.states.delete("selected");
69
- this.label.deselect();
70
- }
71
- /**
72
- * Emits a validate event whenever step switch is triggered.
73
- * @internal
74
- * TODO: @breaking-change: make protected
75
- */
76
- validate(eventData) {
77
- /**
78
- * @type {CustomEvent<SbbStepValidateEventDetails>}
79
- * The validate event is dispatched when a step change is triggered. Can be canceled to abort the step change.
80
- */
81
- return this.dispatchEvent(new CustomEvent("validate", {
82
- bubbles: true,
83
- composed: true,
84
- cancelable: true,
85
- detail: eventData
86
- }));
87
- }
88
- /**
89
- * Configures the step.
90
- * @internal
91
- * TODO: @breaking-change: make protected
92
- */
93
- configure(stepperLoaded) {
94
- if (stepperLoaded) this._assignLabel();
95
- }
96
- /** Watches for clicked elements with `sbb-stepper-next` or `sbb-stepper-previous` attributes. */
97
- _handleClick(event) {
98
- const composedPathElements = event.composedPath().filter((el) => el instanceof window.HTMLElement);
99
- if (composedPathElements.some((el) => this._isGoNextElement(el))) this.stepper?.next();
100
- else if (composedPathElements.some((el) => this._isGoPreviousElement(el))) this.stepper?.previous();
101
- }
102
- _isGoNextElement(element) {
103
- return element.hasAttribute("sbb-stepper-next") && !element.hasAttribute("disabled");
104
- }
105
- _isGoPreviousElement(element) {
106
- return element.hasAttribute("sbb-stepper-previous") && !element.hasAttribute("disabled");
107
- }
108
- _onStepElementResize() {
109
- if (!this.matches(":is(:state(selected),[state--selected])")) return;
110
- /**
111
- * @internal
112
- * Emits when a resize happens, used to avoid setting the height of the stepper from the step component.
113
- */
114
- this.dispatchEvent(new Event("resizechange", { bubbles: true }));
115
- }
116
- connectedCallback() {
117
- super.connectedCallback();
118
- this.slot ||= "step";
119
- this._assignLabel();
120
- }
121
- firstUpdated(changedProperties) {
122
- super.firstUpdated(changedProperties);
123
- this.updateComplete.then(() => {
124
- this._stepResizeObserver.observe(this.shadowRoot.querySelector(".sbb-step"));
125
- });
126
- }
127
- _assignLabel() {
128
- let previousSibling = this.previousElementSibling;
129
- while (previousSibling && previousSibling.localName !== "sbb-step-label") previousSibling = previousSibling.previousElementSibling;
130
- const value = previousSibling;
131
- this.internals.ariaLabelledByElements = removeAriaElements(this.internals.ariaLabelledByElements, this._label);
132
- this._label = value instanceof Element ? value : null;
133
- this.internals.ariaLabelledByElements = appendAriaElements(this.internals.ariaLabelledByElements, this._label);
134
- }
135
- render() {
136
- return html`
137
- <div class="sbb-step--wrapper">
138
- <div class="sbb-step">
139
- <slot></slot>
140
- </div>
141
- </div>
142
- `;
143
- }
144
- };
145
- //#endregion
146
- export { SbbStepElement as t };
147
-
148
- //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcC5jb21wb25lbnQtQ1ZXeFlrcnYuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3N0ZXBwZXIvc3RlcC9zdGVwLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3N0ZXBwZXIvc3RlcC9zdGVwLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXN0ZXAtb3BhY2l0eTogMDtcbiAgLS1zYmItc3RlcC1tYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC00eCk7XG4gIC0tc2JiLXN0ZXAtYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi0yeClcbiAgKTtcblxuICBkaXNwbGF5OiBjb250ZW50cztcbiAgZm9udC1zaXplOiB2YXIoLS1zYmItdGV4dC1mb250LXNpemUtbSk7XG4gIGxldHRlci1zcGFjaW5nOiB2YXIoLS1zYmItdHlwby1sZXR0ZXItc3BhY2luZy10ZXh0KTtcbn1cblxuOmhvc3QoOnN0YXRlKHNlbGVjdGVkKSkge1xuICAtLXNiYi1zdGVwLW9wYWNpdHk6IDE7XG4gIC0tc2JiLXN0ZXAtZGlzcGxheTogYmxvY2s7XG4gIC0tc2JiLXN0ZXAtaGVpZ2h0OiBmaXQtY29udGVudDtcbiAgLS1zYmItc3RlcC1hbmltYXRpb24tZHVyYXRpb246IHZhcihcbiAgICAtLXNiYi1kaXNhYmxlLWFuaW1hdGlvbi1kdXJhdGlvbixcbiAgICB2YXIoLS1zYmItYW5pbWF0aW9uLWR1cmF0aW9uLTR4KVxuICApO1xuICAtLXNiYi1zdGVwLWFuaW1hdGlvbi1kZWxheTogdmFyKC0tc2JiLXN0ZXAtYW5pbWF0aW9uLWR1cmF0aW9uKTtcbn1cblxuOmhvc3QoOnN0YXRlKG9yaWVudGF0aW9uLWhvcml6b250YWwpKSB7XG4gIC0tc2JiLXN0ZXAtcG9zaXRpb246IGFic29sdXRlO1xuICAtLXNiYi1zdGVwLWluc2V0LWJsb2NrLXN0YXJ0OiAwO1xufVxuXG4uc2JiLXN0ZXAtLXdyYXBwZXIge1xuICA6aG9zdCg6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICBtYXJnaW4taW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItc3RlcC1tYXJnaW4taW5saW5lLXN0YXJ0KTtcbiAgICBvcGFjaXR5OiAwO1xuICAgIGhlaWdodDogMDtcbiAgICB0cmFuc2l0aW9uOlxuICAgICAgZGlzcGxheSB2YXIoLS1zYmItc3RlcC1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLXNiYi1hbmltYXRpb24tZWFzaW5nKSxcbiAgICAgIGhlaWdodCB2YXIoLS1zYmItc3RlcHBlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLXNiYi1hbmltYXRpb24tZWFzaW5nKSxcbiAgICAgIG9wYWNpdHkgdmFyKC0tc2JiLXN0ZXAtYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1zYmItYW5pbWF0aW9uLWVhc2luZyk7XG5cbiAgICAvLyBFeHBlcmltZW50YWwgcHJvcGVydHksIGJ1dCBzdXBwb3J0ZWQgaW4gZXZlcnkgbWFqb3IgYnJvd3Nlci5cbiAgICB0cmFuc2l0aW9uLWJlaGF2aW9yOiBhbGxvdy1kaXNjcmV0ZTtcbiAgfVxuXG4gIDpob3N0KDpzdGF0ZShzZWxlY3RlZCk6c3RhdGUob3JpZW50YXRpb24tdmVydGljYWwpKSAmIHtcbiAgICBvcGFjaXR5OiAxO1xuICAgIGhlaWdodDogdmFyKC0tc2JiLXN0ZXBwZXItY29udGVudC1oZWlnaHQpO1xuICAgIHRyYW5zaXRpb246XG4gICAgICBkaXNwbGF5IHZhcigtLXNiYi1zdGVwLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpLFxuICAgICAgaGVpZ2h0IHZhcigtLXNiYi1zdGVwcGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpLFxuICAgICAgb3BhY2l0eSB2YXIoLS1zYmItc3RlcC1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLXNiYi1zdGVwcGVyLWFuaW1hdGlvbi1kdXJhdGlvbilcbiAgICAgICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpO1xuXG4gICAgLy8gRXhwZXJpbWVudGFsIHByb3BlcnR5LCBidXQgc3VwcG9ydGVkIGluIGV2ZXJ5IG1ham9yIGJyb3dzZXIuXG4gICAgdHJhbnNpdGlvbi1iZWhhdmlvcjogYWxsb3ctZGlzY3JldGU7XG4gIH1cbn1cblxuLnNiYi1zdGVwIHtcbiAgcG9zaXRpb246IHZhcigtLXNiYi1zdGVwLXBvc2l0aW9uLCBpbml0aWFsKTtcbiAgd2lkdGg6IDEwMCU7XG4gIGluc2V0LWJsb2NrLXN0YXJ0OiB2YXIoLS1zYmItc3RlcC1pbnNldC1ibG9jay1zdGFydCwgdW5zZXQpO1xuICBvcGFjaXR5OiB2YXIoLS1zYmItc3RlcC1vcGFjaXR5KTtcbiAgZGlzcGxheTogdmFyKC0tc2JiLXN0ZXAtZGlzcGxheSwgbm9uZSk7XG4gIGhlaWdodDogdmFyKC0tc2JiLXN0ZXAtaGVpZ2h0LCAwKTtcbiAgdHJhbnNpdGlvbjoge1xuICAgIHByb3BlcnR5OiBkaXNwbGF5LCBvcGFjaXR5O1xuICAgIGR1cmF0aW9uOiB2YXIoLS1zYmItc3RlcC1hbmltYXRpb24tZHVyYXRpb24pO1xuICAgIGRlbGF5OiB2YXIoLS1zYmItc3RlcC1hbmltYXRpb24tZGVsYXksIDApO1xuICAgIHRpbWluZy1mdW5jdGlvbjogdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpO1xuICB9XG5cbiAgLy8gRXhwZXJpbWVudGFsIHByb3BlcnR5LCBidXQgc3VwcG9ydGVkIGluIGV2ZXJ5IG1ham9yIGJyb3dzZXIuXG4gIHRyYW5zaXRpb24tYmVoYXZpb3I6IGFsbG93LWRpc2NyZXRlO1xuXG4gIC8vIEV4cGVyaW1lbnRhbCBwcm9wZXJ0eSwgY3VycmVudGx5IHN1cHBvcnRlZCBpbiBldmVyeSBtYWpvciBicm93c2VyIGV4Y2VwdCBGaXJlZm94LlxuICBAc3RhcnRpbmctc3R5bGUge1xuICAgIC0tc2JiLXN0ZXAtb3BhY2l0eTogMDtcbiAgfVxufVxuIiwiaW1wb3J0IHsgUmVzaXplQ29udHJvbGxlciB9IGZyb20gJ0BsaXQtbGFicy9vYnNlcnZlcnMvcmVzaXplLWNvbnRyb2xsZXIuanMnO1xuaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuXG5pbXBvcnQge1xuICBhcHBlbmRBcmlhRWxlbWVudHMsXG4gIGJveFNpemluZ1N0eWxlcyxcbiAgcmVtb3ZlQXJpYUVsZW1lbnRzLFxuICBTYmJFbGVtZW50LFxuICBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyLFxufSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiU3RlcExhYmVsRWxlbWVudCB9IGZyb20gJy4uL3N0ZXAtbGFiZWwvc3RlcC1sYWJlbC5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJTdGVwcGVyRWxlbWVudCB9IGZyb20gJy4uL3N0ZXBwZXIvc3RlcHBlci5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zdGVwLnNjc3M/aW5saW5lJztcblxuZXhwb3J0IGludGVyZmFjZSBTYmJTdGVwVmFsaWRhdGVFdmVudERldGFpbHMge1xuICBjdXJyZW50SW5kZXg6IG51bWJlciB8IG51bGw7XG4gIGN1cnJlbnRTdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGw7XG4gIG5leHRJbmRleDogbnVtYmVyIHwgbnVsbDtcbiAgbmV4dFN0ZXA6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbDtcbn1cblxuLyoqXG4gKiBDb21iaW5lZCB3aXRoIGEgYHNiYi1zdGVwcGVyYCwgaXQgZGlzcGxheXMgYSBzdGVwJ3MgY29udGVudC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIHByb3ZpZGUgY29udGVudC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlN0ZXBFbGVtZW50IGV4dGVuZHMgU2JiRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItc3RlcCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgcm9sZSA9ICd0YWJwYW5lbCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHVuc2FmZUNTUyhzdHlsZSldO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICB2YWxpZGF0ZTogJ3ZhbGlkYXRlJyxcbiAgICByZXNpemVjaGFuZ2U6ICdyZXNpemVjaGFuZ2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8vIFdlIHVzZSBhIHRpbWVvdXQgYXMgYSB3b3JrYXJvdW5kIHRvIHRoZSBcIlJlc2l6ZU9ic2VydmVyIGxvb3AgY29tcGxldGVkIHdpdGggdW5kZWxpdmVyZWQgbm90aWZpY2F0aW9uc1wiIGVycm9yLlxuICAvLyBGb3IgbW9yZSBkZXRhaWxzOlxuICAvLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9XSUNHL3Jlc2l6ZS1vYnNlcnZlci9pc3N1ZXMvMzgjaXNzdWVjb21tZW50LTQyMjEyNjAwNlxuICAvLyAtIGh0dHBzOi8vZ2l0aHViLmNvbS9qdWdnbGUvcmVzaXplLW9ic2VydmVyL2lzc3Vlcy8xMDMjaXNzdWVjb21tZW50LTE3MTExNDgyODVcbiAgcHJpdmF0ZSBfc3RlcFJlc2l6ZU9ic2VydmVyID0gbmV3IFJlc2l6ZUNvbnRyb2xsZXIodGhpcywge1xuICAgIHRhcmdldDogbnVsbCxcbiAgICBza2lwSW5pdGlhbDogdHJ1ZSxcbiAgICBjYWxsYmFjazogKCkgPT4gc2V0VGltZW91dCgoKSA9PiB0aGlzLl9vblN0ZXBFbGVtZW50UmVzaXplKCkpLFxuICB9KTtcblxuICAvKiogVGhlIGxhYmVsIG9mIHRoZSBzdGVwLiAqL1xuICBwdWJsaWMgZ2V0IGxhYmVsKCk6IFNiYlN0ZXBMYWJlbEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fbGFiZWw7XG4gIH1cbiAgcHJpdmF0ZSBfbGFiZWw6IFNiYlN0ZXBMYWJlbEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgZ2V0IHN0ZXBwZXIoKTogU2JiU3RlcHBlckVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5jbG9zZXN0KCdzYmItc3RlcHBlcicpO1xuICB9XG5cbiAgcHJpdmF0ZSBfcHJldmlvdXNPcmllbnRhdGlvbj86IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LignY2xpY2snLCAoZSkgPT4gdGhpcy5faGFuZGxlQ2xpY2soZSkpO1xuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuc3RlcHBlciwge1xuICAgICAgICBvcmllbnRhdGlvbjogKHMpID0+IHtcbiAgICAgICAgICBpZiAodGhpcy5fcHJldmlvdXNPcmllbnRhdGlvbikge1xuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZShgb3JpZW50YXRpb24tJHt0aGlzLl9wcmV2aW91c09yaWVudGF0aW9ufWApO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLl9wcmV2aW91c09yaWVudGF0aW9uID0gcy5vcmllbnRhdGlvbjtcbiAgICAgICAgICBpZiAodGhpcy5fcHJldmlvdXNPcmllbnRhdGlvbikge1xuICAgICAgICAgICAgdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmFkZChgb3JpZW50YXRpb24tJHt0aGlzLl9wcmV2aW91c09yaWVudGF0aW9ufWApO1xuICAgICAgICAgIH1cbiAgICAgICAgfSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogU2VsZWN0cyBhbmQgY29uZmlndXJlcyB0aGUgc3RlcC5cbiAgICogQGludGVybmFsXG4gICAqIFRPRE86IEBicmVha2luZy1jaGFuZ2U6IG1ha2UgcHJvdGVjdGVkXG4gICAqL1xuICBwdWJsaWMgc2VsZWN0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5oYXNVcGRhdGVkIHx8ICF0aGlzLmxhYmVsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ3NlbGVjdGVkJyk7XG4gICAgdGhpcy5sYWJlbC5zZWxlY3QoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZXNlbGVjdHMgYW5kIGNvbmZpZ3VyZXMgdGhlIHN0ZXAuXG4gICAqIEBpbnRlcm5hbFxuICAgKiBUT0RPOiBAYnJlYWtpbmctY2hhbmdlOiBtYWtlIHByb3RlY3RlZFxuICAgKi9cbiAgcHVibGljIGRlc2VsZWN0KCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5sYWJlbCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdzZWxlY3RlZCcpO1xuICAgIHRoaXMubGFiZWwuZGVzZWxlY3QoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyBhIHZhbGlkYXRlIGV2ZW50IHdoZW5ldmVyIHN0ZXAgc3dpdGNoIGlzIHRyaWdnZXJlZC5cbiAgICogQGludGVybmFsXG4gICAqIFRPRE86IEBicmVha2luZy1jaGFuZ2U6IG1ha2UgcHJvdGVjdGVkXG4gICAqL1xuICBwdWJsaWMgdmFsaWRhdGUoZXZlbnREYXRhOiBTYmJTdGVwVmFsaWRhdGVFdmVudERldGFpbHMpOiBib29sZWFuIHtcbiAgICAvLyBUT0RPOiBAYnJlYWtpbmctY2hhbmdlOiBDcmVhdGUgYSBzcGVjaWZpYyBldmVudCB0eXBlIGZvciB0aGlzIGV2ZW50LlxuICAgIC8qKlxuICAgICAqIEB0eXBlIHtDdXN0b21FdmVudDxTYmJTdGVwVmFsaWRhdGVFdmVudERldGFpbHM+fVxuICAgICAqIFRoZSB2YWxpZGF0ZSBldmVudCBpcyBkaXNwYXRjaGVkIHdoZW4gYSBzdGVwIGNoYW5nZSBpcyB0cmlnZ2VyZWQuIENhbiBiZSBjYW5jZWxlZCB0byBhYm9ydCB0aGUgc3RlcCBjaGFuZ2UuXG4gICAgICovXG4gICAgcmV0dXJuIHRoaXMuZGlzcGF0Y2hFdmVudChcbiAgICAgIG5ldyBDdXN0b21FdmVudDxTYmJTdGVwVmFsaWRhdGVFdmVudERldGFpbHM+KCd2YWxpZGF0ZScsIHtcbiAgICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgICAgY29tcG9zZWQ6IHRydWUsXG4gICAgICAgIGNhbmNlbGFibGU6IHRydWUsXG4gICAgICAgIGRldGFpbDogZXZlbnREYXRhLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb25maWd1cmVzIHRoZSBzdGVwLlxuICAgKiBAaW50ZXJuYWxcbiAgICogVE9ETzogQGJyZWFraW5nLWNoYW5nZTogbWFrZSBwcm90ZWN0ZWRcbiAgICovXG4gIHB1YmxpYyBjb25maWd1cmUoc3RlcHBlckxvYWRlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChzdGVwcGVyTG9hZGVkKSB7XG4gICAgICB0aGlzLl9hc3NpZ25MYWJlbCgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBXYXRjaGVzIGZvciBjbGlja2VkIGVsZW1lbnRzIHdpdGggYHNiYi1zdGVwcGVyLW5leHRgIG9yIGBzYmItc3RlcHBlci1wcmV2aW91c2AgYXR0cmlidXRlcy4gKi9cbiAgcHJpdmF0ZSBfaGFuZGxlQ2xpY2soZXZlbnQ6IEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgY29tcG9zZWRQYXRoRWxlbWVudHMgPSBldmVudFxuICAgICAgLmNvbXBvc2VkUGF0aCgpXG4gICAgICAuZmlsdGVyKChlbCkgPT4gZWwgaW5zdGFuY2VvZiB3aW5kb3cuSFRNTEVsZW1lbnQpO1xuICAgIGlmIChjb21wb3NlZFBhdGhFbGVtZW50cy5zb21lKChlbCkgPT4gdGhpcy5faXNHb05leHRFbGVtZW50KGVsIGFzIEhUTUxFbGVtZW50KSkpIHtcbiAgICAgIHRoaXMuc3RlcHBlcj8ubmV4dCgpO1xuICAgIH0gZWxzZSBpZiAoY29tcG9zZWRQYXRoRWxlbWVudHMuc29tZSgoZWwpID0+IHRoaXMuX2lzR29QcmV2aW91c0VsZW1lbnQoZWwgYXMgSFRNTEVsZW1lbnQpKSkge1xuICAgICAgdGhpcy5zdGVwcGVyPy5wcmV2aW91cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2lzR29OZXh0RWxlbWVudChlbGVtZW50OiBIVE1MRWxlbWVudCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnc2JiLXN0ZXBwZXItbmV4dCcpICYmICFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnZGlzYWJsZWQnKTtcbiAgfVxuXG4gIHByaXZhdGUgX2lzR29QcmV2aW91c0VsZW1lbnQoZWxlbWVudDogSFRNTEVsZW1lbnQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gZWxlbWVudC5oYXNBdHRyaWJ1dGUoJ3NiYi1zdGVwcGVyLXByZXZpb3VzJykgJiYgIWVsZW1lbnQuaGFzQXR0cmlidXRlKCdkaXNhYmxlZCcpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25TdGVwRWxlbWVudFJlc2l6ZSgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubWF0Y2hlcygnOnN0YXRlKHNlbGVjdGVkKScpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQGludGVybmFsXG4gICAgICogRW1pdHMgd2hlbiBhIHJlc2l6ZSBoYXBwZW5zLCB1c2VkIHRvIGF2b2lkIHNldHRpbmcgdGhlIGhlaWdodCBvZiB0aGUgc3RlcHBlciBmcm9tIHRoZSBzdGVwIGNvbXBvbmVudC5cbiAgICAgKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdyZXNpemVjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5zbG90IHx8PSAnc3RlcCc7XG4gICAgdGhpcy5fYXNzaWduTGFiZWwoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5fc3RlcFJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5zaGFkb3dSb290IS5xdWVyeVNlbGVjdG9yKCcuc2JiLXN0ZXAnKSBhcyBIVE1MRWxlbWVudCk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9hc3NpZ25MYWJlbCgpOiB2b2lkIHtcbiAgICBsZXQgcHJldmlvdXNTaWJsaW5nID0gdGhpcy5wcmV2aW91c0VsZW1lbnRTaWJsaW5nO1xuICAgIHdoaWxlIChwcmV2aW91c1NpYmxpbmcgJiYgcHJldmlvdXNTaWJsaW5nLmxvY2FsTmFtZSAhPT0gJ3NiYi1zdGVwLWxhYmVsJykge1xuICAgICAgcHJldmlvdXNTaWJsaW5nID0gcHJldmlvdXNTaWJsaW5nLnByZXZpb3VzRWxlbWVudFNpYmxpbmc7XG4gICAgfVxuICAgIGNvbnN0IHZhbHVlID0gcHJldmlvdXNTaWJsaW5nIGFzIFNiYlN0ZXBMYWJlbEVsZW1lbnQgfCBudWxsO1xuXG4gICAgdGhpcy5pbnRlcm5hbHMuYXJpYUxhYmVsbGVkQnlFbGVtZW50cyA9IHJlbW92ZUFyaWFFbGVtZW50cyhcbiAgICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFMYWJlbGxlZEJ5RWxlbWVudHMsXG4gICAgICB0aGlzLl9sYWJlbCxcbiAgICApO1xuICAgIHRoaXMuX2xhYmVsID0gdmFsdWUgaW5zdGFuY2VvZiBFbGVtZW50ID8gdmFsdWUgOiBudWxsO1xuICAgIHRoaXMuaW50ZXJuYWxzLmFyaWFMYWJlbGxlZEJ5RWxlbWVudHMgPSBhcHBlbmRBcmlhRWxlbWVudHMoXG4gICAgICB0aGlzLmludGVybmFscy5hcmlhTGFiZWxsZWRCeUVsZW1lbnRzLFxuICAgICAgdGhpcy5fbGFiZWwsXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1zdGVwLS13cmFwcGVyXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RlcFwiPlxuICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc3RlcCc6IFNiYlN0ZXBFbGVtZW50O1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEdsb2JhbEV2ZW50SGFuZGxlcnNFdmVudE1hcCB7XG4gICAgcmVzaXplY2hhbmdlOiBFdmVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUNpQ0EsSUFBYSxpQkFBYixjQUFvQyxXQUFVOztBQUNaLE9BQUEsY0FBc0I7OztBQUN0QixPQUFBLE9BQU87OztBQUNoQixPQUFBLFNBQXlCLENBQUMsaUJBQWlCLFVBQVUsYUFBTSxDQUFDOzs7QUFDNUQsT0FBQSxTQUFTO0dBQzlCLFVBQVU7R0FDVixjQUFjO0dBQ047OztDQWFWLElBQVcsUUFBSztBQUNkLFNBQU8sS0FBSzs7Q0FJZCxJQUFXLFVBQU87QUFDaEIsU0FBTyxLQUFLLFFBQVEsY0FBYzs7Q0FLcEMsY0FBQTtBQUNFLFNBQU87QUFuQkQsT0FBQSxzQkFBc0IsSUFBSSxpQkFBaUIsTUFBTTtHQUN2RCxRQUFRO0dBQ1IsYUFBYTtHQUNiLGdCQUFnQixpQkFBaUIsS0FBSyxzQkFBc0IsQ0FBQTtHQUM3RCxDQUFDO0FBTU0sT0FBQSxTQUFxQztBQVUzQyxPQUFLLG1CQUFtQixVQUFVLE1BQU0sS0FBSyxhQUFhLEVBQUUsQ0FBQztBQUM3RCxPQUFLLGNBQ0gsSUFBSSw2QkFBNkIsWUFBWSxLQUFLLFNBQVMsRUFDekQsY0FBYyxNQUFLO0FBQ2pCLE9BQUksS0FBSyxxQkFDUCxNQUFLLFVBQVUsT0FBTyxPQUFPLGVBQWUsS0FBSyx1QkFBdUI7QUFFMUUsUUFBSyx1QkFBdUIsRUFBRTtBQUM5QixPQUFJLEtBQUsscUJBQ1AsTUFBSyxVQUFVLE9BQU8sSUFBSSxlQUFlLEtBQUssdUJBQXVCO0tBRzFFLENBQUMsQ0FDSDs7Ozs7OztDQVFJLFNBQU07QUFDWCxNQUFJLENBQUMsS0FBSyxjQUFjLENBQUMsS0FBSyxNQUM1QjtBQUVGLE9BQUssVUFBVSxPQUFPLElBQUksV0FBVztBQUNyQyxPQUFLLE1BQU0sUUFBUTs7Ozs7OztDQVFkLFdBQVE7QUFDYixNQUFJLENBQUMsS0FBSyxNQUNSO0FBRUYsT0FBSyxVQUFVLE9BQU8sT0FBTyxXQUFXO0FBQ3hDLE9BQUssTUFBTSxVQUFVOzs7Ozs7O0NBUWhCLFNBQVMsV0FBc0M7Ozs7O0FBTXBELFNBQU8sS0FBSyxjQUNWLElBQUksWUFBeUMsWUFBWTtHQUN2RCxTQUFTO0dBQ1QsVUFBVTtHQUNWLFlBQVk7R0FDWixRQUFRO0dBQ1QsQ0FBQyxDQUNIOzs7Ozs7O0NBUUksVUFBVSxlQUFzQjtBQUNyQyxNQUFJLGNBQ0YsTUFBSyxjQUFjOzs7Q0FLZixhQUFhLE9BQVk7RUFDL0IsTUFBTSx1QkFBdUIsTUFDMUIsY0FBYyxDQUNkLFFBQVEsT0FBTyxjQUFjLE9BQU8sWUFBWTtBQUNuRCxNQUFJLHFCQUFxQixNQUFNLE9BQU8sS0FBSyxpQkFBaUIsR0FBa0IsQ0FBQyxDQUM3RSxNQUFLLFNBQVMsTUFBTTtXQUNYLHFCQUFxQixNQUFNLE9BQU8sS0FBSyxxQkFBcUIsR0FBa0IsQ0FBQyxDQUN4RixNQUFLLFNBQVMsVUFBVTs7Q0FJcEIsaUJBQWlCLFNBQW9CO0FBQzNDLFNBQU8sUUFBUSxhQUFhLG1CQUFtQixJQUFJLENBQUMsUUFBUSxhQUFhLFdBQVc7O0NBRzlFLHFCQUFxQixTQUFvQjtBQUMvQyxTQUFPLFFBQVEsYUFBYSx1QkFBdUIsSUFBSSxDQUFDLFFBQVEsYUFBYSxXQUFXOztDQUdsRix1QkFBb0I7QUFDMUIsTUFBSSxDQUFDLEtBQUssUUFBUSwwQ0FBbUIsQ0FDbkM7Ozs7O0FBT0YsT0FBSyxjQUFjLElBQUksTUFBTSxnQkFBZ0IsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFDOztDQUdsRCxvQkFBaUI7QUFDL0IsUUFBTSxtQkFBbUI7QUFDekIsT0FBSyxTQUFTO0FBQ2QsT0FBSyxjQUFjOztDQUdGLGFBQWEsbUJBQXVDO0FBQ3JFLFFBQU0sYUFBYSxrQkFBa0I7QUFDckMsT0FBSyxlQUFlLFdBQVU7QUFDNUIsUUFBSyxvQkFBb0IsUUFBUSxLQUFLLFdBQVksY0FBYyxZQUEyQixDQUFDO0lBQzVGOztDQUdJLGVBQVk7RUFDbEIsSUFBSSxrQkFBa0IsS0FBSztBQUMzQixTQUFPLG1CQUFtQixnQkFBZ0IsY0FBYyxpQkFDdEQsbUJBQWtCLGdCQUFnQjtFQUVwQyxNQUFNLFFBQVE7QUFFZCxPQUFLLFVBQVUseUJBQXlCLG1CQUN0QyxLQUFLLFVBQVUsd0JBQ2YsS0FBSyxPQUNOO0FBQ0QsT0FBSyxTQUFTLGlCQUFpQixVQUFVLFFBQVE7QUFDakQsT0FBSyxVQUFVLHlCQUF5QixtQkFDdEMsS0FBSyxVQUFVLHdCQUNmLEtBQUssT0FDTjs7Q0FHZ0IsU0FBTTtBQUN2QixTQUFPLElBQUkifQ==