@sbb-esta/lyne-elements-dev 5.0.0-next-dev.1776958279 → 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.
- package/action-group/action-group.component.js +1 -1
- package/{action-group.component-L7G0Vv-N.js → action-group.component-B6X5FjkQ.js} +25 -25
- package/action-group.js +1 -1
- package/action-group.pure.js +1 -1
- package/button/common/button-common.js +1 -1
- package/{button-common-Cu47yCSS.js → button-common-U0ZsZMjC.js} +1 -1
- package/button.js +1 -1
- package/button.pure.js +1 -1
- package/core.css +2 -2
- package/custom-elements.json +75 -75
- package/development/action-group/action-group.component.d.ts +2 -4
- package/development/action-group/action-group.component.d.ts.map +1 -1
- package/development/action-group/action-group.component.js +1 -1
- package/development/{action-group.component-CJT4RArG.js → action-group.component-9Bkne2tt.js} +6 -6
- package/development/action-group.js +1 -1
- package/development/action-group.pure.js +1 -1
- package/development/button/common/button-common.js +1 -1
- package/development/{button-common-ChY47M8t.js → button-common-BdW88MAX.js} +3 -3
- package/development/button.js +1 -1
- package/development/button.pure.js +1 -1
- package/development/dialog/dialog-actions/dialog-actions.component.d.ts +0 -1
- package/development/dialog/dialog-actions/dialog-actions.component.d.ts.map +1 -1
- package/development/dialog/dialog-actions/dialog-actions.component.js +1 -1
- package/development/{dialog-actions.component-DErVa4WR.js → dialog-actions.component-Bu950dM-.js} +1 -9
- package/development/dialog.js +1 -1
- package/development/dialog.pure.js +1 -1
- package/development/header/common/header-action-common.d.ts.map +1 -1
- package/development/header-action-common-BEnsweEr.js +1 -1
- package/development/map-container/map-container.component.d.ts.map +1 -1
- package/development/map-container/map-container.component.js +1 -1
- package/development/{map-container.component-rgU7ZofE.js → map-container.component-DvHVJZEZ.js} +1 -2
- package/development/map-container.js +1 -1
- package/development/map-container.pure.js +1 -1
- package/development/navigation/common/navigation-action-common.d.ts.map +1 -1
- package/development/navigation/common/navigation-action-common.js +1 -1
- package/development/navigation/navigation/navigation.component.d.ts.map +1 -1
- package/development/navigation/navigation/navigation.component.js +1 -1
- package/development/navigation/navigation-list/navigation-list.component.d.ts.map +1 -1
- package/development/navigation/navigation-list/navigation-list.component.js +1 -1
- package/development/navigation/navigation-marker/navigation-marker.component.d.ts +0 -1
- package/development/navigation/navigation-marker/navigation-marker.component.d.ts.map +1 -1
- package/development/navigation/navigation-marker/navigation-marker.component.js +1 -1
- package/development/navigation/navigation-section/navigation-section.component.d.ts.map +1 -1
- package/development/navigation/navigation-section/navigation-section.component.js +1 -1
- package/development/{navigation-action-common-B2soWZWW.js → navigation-action-common-DREsZcc7.js} +3 -4
- package/development/{navigation-list.component-DilKlDwx.js → navigation-list.component-3kQyQ-yJ.js} +3 -3
- package/development/{navigation-marker.component-BRdbbjF5.js → navigation-marker.component-DyWfazQL.js} +3 -4
- package/development/{navigation-section.component-VwCJlOfE.js → navigation-section.component-DyPWGns2.js} +1 -2
- package/development/{navigation.component-lgvLMF5e.js → navigation.component-CZ2P2xfh.js} +1 -2
- package/development/navigation.js +5 -5
- package/development/navigation.pure.js +5 -5
- package/development/overlay/overlay.component.d.ts.map +1 -1
- package/development/overlay/overlay.component.js +1 -1
- package/development/{overlay.component-iy6QUYWU.js → overlay.component-BcOBxY6k.js} +1 -2
- package/development/overlay.js +1 -1
- package/development/overlay.pure.js +1 -1
- package/development/popover/popover.component.d.ts.map +1 -1
- package/development/popover/popover.component.js +1 -1
- package/development/{popover.component-C-zVDwjc.js → popover.component-BvSrQ7zF.js} +1 -2
- package/development/popover.js +1 -1
- package/development/popover.pure.js +1 -1
- package/development/step.component-D1Gq0VRW.js +146 -0
- package/development/stepper/step/step.component.d.ts.map +1 -1
- package/development/stepper/step/step.component.js +1 -1
- package/development/stepper.js +1 -1
- package/development/stepper.pure.js +1 -1
- package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.d.ts.map +1 -1
- package/development/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
- package/development/{timetable-form-swap-button.component-DM7UFhGh.js → timetable-form-swap-button.component-CyHdctws.js} +2 -1
- package/development/timetable-form.js +1 -1
- package/development/timetable-form.pure.js +1 -1
- package/development/toast/toast.component.d.ts.map +1 -1
- package/development/toast/toast.component.js +1 -1
- package/development/{toast.component-1YR4wmm9.js → toast.component-D1M3OYxv.js} +2 -4
- package/development/toast.js +1 -1
- package/development/toast.pure.js +1 -1
- package/dialog/dialog-actions/dialog-actions.component.js +1 -1
- package/{dialog-actions.component-ConxJ3VW.js → dialog-actions.component-DjBJ65tV.js} +4 -8
- package/dialog.js +1 -1
- package/dialog.pure.js +1 -1
- package/map-container/map-container.component.js +1 -1
- package/{map-container.component-De-8Tsau.js → map-container.component-BlrPWANi.js} +0 -1
- package/map-container.js +1 -1
- package/map-container.pure.js +1 -1
- package/navigation/common/navigation-action-common.js +1 -1
- package/navigation/navigation/navigation.component.js +1 -1
- package/navigation/navigation-list/navigation-list.component.js +1 -1
- package/navigation/navigation-marker/navigation-marker.component.js +1 -1
- package/navigation/navigation-section/navigation-section.component.js +1 -1
- package/{navigation-action-common-D2vwX-oy.js → navigation-action-common-D3rE0ZNS.js} +14 -14
- package/{navigation-list.component-DQeyXtOA.js → navigation-list.component-DSJx3LwB.js} +13 -13
- package/{navigation-marker.component-BQzC4gn_.js → navigation-marker.component-xmkTtMap.js} +13 -13
- package/{navigation-section.component-CR-FanCa.js → navigation-section.component-CUrICmbc.js} +0 -1
- package/{navigation.component-D6HU-F51.js → navigation.component-CR4vG3vH.js} +0 -1
- package/navigation.js +5 -5
- package/navigation.pure.js +5 -5
- package/off-brand-theme.css +2 -2
- package/overlay/overlay.component.js +1 -1
- package/{overlay.component-bHg2Xk6D.js → overlay.component-C6i5RA4B.js} +0 -1
- package/overlay.js +1 -1
- package/overlay.pure.js +1 -1
- package/package.json +2 -2
- package/popover/popover.component.js +1 -1
- package/{popover.component-BCLBnddM.js → popover.component-jz3_WQeT.js} +0 -1
- package/popover.js +1 -1
- package/popover.pure.js +1 -1
- package/safety-theme.css +2 -2
- package/standard-theme.css +2 -2
- package/{step.component-sQbJslHx.js → step.component-DuLOqjZk.js} +3 -5
- package/stepper/step/step.component.js +1 -1
- package/stepper.js +1 -1
- package/stepper.pure.js +1 -1
- package/timetable-form/timetable-form-swap-button/timetable-form-swap-button.component.js +1 -1
- package/{timetable-form-swap-button.component-C9dU9vDV.js → timetable-form-swap-button.component-D9wBQQkG.js} +1 -1
- package/timetable-form.js +1 -1
- package/timetable-form.pure.js +1 -1
- package/toast/toast.component.js +1 -1
- package/{toast.component-D53COYeM.js → toast.component-CXouszwJ.js} +21 -22
- package/toast.js +1 -1
- package/toast.pure.js +1 -1
- package/development/step.component-CVWxYkrv.js +0 -148
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
import { __esDecorate as e, __runInitializers as t } from "tslib";
|
|
2
2
|
import { html as n, nothing as r, unsafeCSS as i } from "lit";
|
|
3
3
|
import { property as a } from "lit/decorators.js";
|
|
4
|
-
import { SbbDarkModeController as o, SbbLanguageController as s, SbbOpenCloseBaseElement as c, SbbReadonlyMixin as l, boxSizingStyles as u, composedPathHasAttribute as d, forceType as f, i18nCloseAlert as p,
|
|
5
|
-
import { SbbTransparentButtonElement as
|
|
6
|
-
import { SbbDividerElement as
|
|
7
|
-
import { SbbIconNameMixin as
|
|
4
|
+
import { SbbDarkModeController as o, SbbLanguageController as s, SbbOpenCloseBaseElement as c, SbbReadonlyMixin as l, boxSizingStyles as u, composedPathHasAttribute as d, forceType as f, i18nCloseAlert as p, isZeroAnimationDuration as m } from "./core.js";
|
|
5
|
+
import { SbbTransparentButtonElement as h } from "./button.pure.js";
|
|
6
|
+
import { SbbDividerElement as g } from "./divider.pure.js";
|
|
7
|
+
import { SbbIconNameMixin as _ } from "./icon.pure.js";
|
|
8
8
|
//#region src/elements/toast/toast.scss?inline
|
|
9
|
-
var
|
|
10
|
-
let
|
|
11
|
-
return class extends
|
|
9
|
+
var v = ":host{--sbb-toast-max-width: 25rem;--sbb-toast-animation-duration: var( --sbb-disable-animation-duration, var(--sbb-animation-duration-6x) );--sbb-toast-animation-timing-function: ease;--sbb-toast-text-color: var(--sbb-color-3-inverted);--sbb-toast-background-color: var(--sbb-background-color-1-inverted);--sbb-toast-margin: var(--sbb-spacing-responsive-s);--sbb-toast-padding-block: var(--sbb-spacing-responsive-xxxs);--sbb-toast-padding-inline: var(--sbb-spacing-responsive-xs);--sbb-toast-border-radius: var(--sbb-border-radius-4x);--sbb-toast-container-display: none;--sbb-toast-container-position: fixed;--sbb-toast-horizontal-position: initial;--sbb-toast-vertical-position: initial;--sbb-toast-gap: var(--sbb-spacing-fixed-2x);--sbb-focus-outline-color: var(--sbb-focus-outline-color-dark);display:none}:host(:is(:is(:state(state-opening),[state--state-opening]),:is(:state(state-opened),[state--state-opened]),:is(:state(state-closing),[state--state-closing]))){--sbb-toast-container-display: flex;display:block}:host([position=bottom-left]),:host([position=bottom-start]){--sbb-toast-horizontal-position: flex-start;--sbb-toast-vertical-position: flex-end}:host([position=bottom-center]){--sbb-toast-horizontal-position: center;--sbb-toast-vertical-position: flex-end}:host([position=bottom-right]),:host([position=bottom-end]){--sbb-toast-horizontal-position: flex-end;--sbb-toast-vertical-position: flex-end}:host([position=top-left]),:host([position=top-start]){--sbb-toast-horizontal-position: flex-start;--sbb-toast-vertical-position: flex-start}:host([position=top-center]){--sbb-toast-horizontal-position: center;--sbb-toast-vertical-position: flex-start}:host([position=top-right]),:host([position=top-end]){--sbb-toast-horizontal-position: flex-end;--sbb-toast-vertical-position: flex-start}:host(:is(:state(dark),[state--dark])){--sbb-focus-outline-color: var(--sbb-focus-outline-color-default)}.sbb-toast__overlay-container{position:var(--sbb-toast-container-position);pointer-events:none;inset:0;display:var(--sbb-toast-container-display);justify-content:var(--sbb-toast-horizontal-position);align-items:var(--sbb-toast-vertical-position)}.sbb-toast{z-index:var(--sbb-toast-z-index, var(--sbb-overlay-default-z-index));pointer-events:auto;margin:var(--sbb-toast-margin);border-radius:var(--sbb-toast-border-radius);max-width:var(--sbb-toast-max-width);display:flex;color:var(--sbb-toast-text-color);background-color:var(--sbb-toast-background-color)}:host(:is(:state(state-opening),[state--state-opening])) .sbb-toast{animation-name:open;animation-duration:var(--sbb-toast-animation-duration);animation-timing-function:var(--sbb-toast-animation-timing-function)}:host(:is(:state(state-closing),[state--state-closing])) .sbb-toast{animation-name:close;animation-duration:var(--sbb-toast-animation-duration);animation-timing-function:var(--sbb-toast-animation-timing-function)}.sbb-toast-wrapper{display:flex;align-items:center;gap:var(--sbb-toast-gap);padding-block:var(--sbb-toast-padding-block);padding-inline:var(--sbb-toast-padding-inline)}slot:not([name=icon]),.sbb-toast__close{color-scheme:only light}.sbb-toast__content{--sbb-title-font-size: var(--sbb-title-font-size-level-6-lean, var(--sbb-heading-font-size-6));--sbb-title-line-height: var(--sbb-typo-line-height-text);margin-block:var(--sbb-title-margin-block, 0);margin-inline:0;font-family:var(--sbb-typo-font-family);font-weight:700;font-size:var(--sbb-title-font-size);letter-spacing:var(--sbb-typo-letter-spacing-heading);line-height:var(--sbb-title-line-height, var(--sbb-typo-line-height-heading));flex:1 1 0}.sbb-toast__close{display:flex;align-items:center}.sbb-toast__close-divider{padding-block:var(--sbb-toast-padding-block)}.sbb-toast__close-button{margin-inline:var(--sbb-spacing-responsive-xxxs)}@keyframes open{0%{visibility:hidden;opacity:0;translate:0 var(--sbb-spacing-fixed-2x)}to{visibility:visible;opacity:1;translate:0}}@keyframes close{0%{visibility:visible;opacity:1;translate:0}to{visibility:hidden;opacity:0;translate:0 var(--sbb-spacing-fixed-2x)}}", y = /* @__PURE__ */ new Set(), b = (() => {
|
|
10
|
+
let b = _(l(c)), x, S = [], C = [], w, T = [], E = [], D, O = [], k = [];
|
|
11
|
+
return class extends b {
|
|
12
12
|
static {
|
|
13
|
-
let t = typeof Symbol == "function" && Symbol.metadata ? Object.create(
|
|
14
|
-
|
|
13
|
+
let t = typeof Symbol == "function" && Symbol.metadata ? Object.create(b[Symbol.metadata] ?? null) : void 0;
|
|
14
|
+
x = [f(), a({ type: Number })], w = [a({ reflect: !0 })], D = [a()], e(this, null, x, {
|
|
15
15
|
kind: "accessor",
|
|
16
16
|
name: "timeout",
|
|
17
17
|
static: !1,
|
|
@@ -24,7 +24,7 @@ var y = ":host{--sbb-toast-max-width: 25rem;--sbb-toast-animation-duration: var(
|
|
|
24
24
|
}
|
|
25
25
|
},
|
|
26
26
|
metadata: t
|
|
27
|
-
},
|
|
27
|
+
}, S, C), e(this, null, w, {
|
|
28
28
|
kind: "accessor",
|
|
29
29
|
name: "position",
|
|
30
30
|
static: !1,
|
|
@@ -37,7 +37,7 @@ var y = ":host{--sbb-toast-max-width: 25rem;--sbb-toast-animation-duration: var(
|
|
|
37
37
|
}
|
|
38
38
|
},
|
|
39
39
|
metadata: t
|
|
40
|
-
},
|
|
40
|
+
}, T, E), e(this, null, D, {
|
|
41
41
|
kind: "accessor",
|
|
42
42
|
name: "politeness",
|
|
43
43
|
static: !1,
|
|
@@ -50,7 +50,7 @@ var y = ":host{--sbb-toast-max-width: 25rem;--sbb-toast-animation-duration: var(
|
|
|
50
50
|
}
|
|
51
51
|
},
|
|
52
52
|
metadata: t
|
|
53
|
-
},
|
|
53
|
+
}, O, k), t && Object.defineProperty(this, Symbol.metadata, {
|
|
54
54
|
enumerable: !0,
|
|
55
55
|
configurable: !0,
|
|
56
56
|
writable: !0,
|
|
@@ -61,10 +61,10 @@ var y = ":host{--sbb-toast-max-width: 25rem;--sbb-toast-animation-duration: var(
|
|
|
61
61
|
this.elementName = "sbb-toast";
|
|
62
62
|
}
|
|
63
63
|
static {
|
|
64
|
-
this.elementDependencies = [
|
|
64
|
+
this.elementDependencies = [h, g];
|
|
65
65
|
}
|
|
66
66
|
static {
|
|
67
|
-
this.styles = [u, i(
|
|
67
|
+
this.styles = [u, i(v)];
|
|
68
68
|
}
|
|
69
69
|
#e;
|
|
70
70
|
get timeout() {
|
|
@@ -88,15 +88,15 @@ var y = ":host{--sbb-toast-max-width: 25rem;--sbb-toast-animation-duration: var(
|
|
|
88
88
|
this.#n = e;
|
|
89
89
|
}
|
|
90
90
|
constructor() {
|
|
91
|
-
super(), this.#e = t(this,
|
|
91
|
+
super(), this.#e = t(this, S, 0), this.#t = (t(this, C), t(this, T, "bottom-center")), this.#n = (t(this, E), t(this, O, "polite")), this._closeTimeout = t(this, k), this._language = new s(this), this._darkModeController = new o(this, () => {
|
|
92
92
|
this._syncSlottedElements(), this.requestUpdate();
|
|
93
93
|
}), this.addEventListener?.("click", (e) => this._onClick(e));
|
|
94
94
|
}
|
|
95
95
|
connectedCallback() {
|
|
96
|
-
this.popover = "manual", super.connectedCallback(),
|
|
96
|
+
this.popover = "manual", super.connectedCallback(), y.add(this);
|
|
97
97
|
}
|
|
98
98
|
disconnectedCallback() {
|
|
99
|
-
super.disconnectedCallback(), clearTimeout(this._closeTimeout),
|
|
99
|
+
super.disconnectedCallback(), clearTimeout(this._closeTimeout), y.delete(this);
|
|
100
100
|
}
|
|
101
101
|
willUpdate(e) {
|
|
102
102
|
super.willUpdate(e), e.has("politeness") && (this.internals.ariaLive = this.politeness);
|
|
@@ -121,7 +121,7 @@ var y = ":host{--sbb-toast-max-width: 25rem;--sbb-toast-animation-duration: var(
|
|
|
121
121
|
t && !t.hasAttribute("disabled") && this.close();
|
|
122
122
|
}
|
|
123
123
|
_isZeroAnimationDuration() {
|
|
124
|
-
return
|
|
124
|
+
return m(this, "--sbb-toast-animation-duration");
|
|
125
125
|
}
|
|
126
126
|
_onContentSlotChange(e) {
|
|
127
127
|
let t = e.target.assignedNodes();
|
|
@@ -133,7 +133,7 @@ var y = ":host{--sbb-toast-max-width: 25rem;--sbb-toast-animation-duration: var(
|
|
|
133
133
|
}
|
|
134
134
|
_syncSlottedElements() {
|
|
135
135
|
this.querySelectorAll("sbb-transparent-button, sbb-transparent-button-link").forEach((e) => {
|
|
136
|
-
e.negative = this._isLightMode()
|
|
136
|
+
e.negative = this._isLightMode();
|
|
137
137
|
}), this.querySelectorAll("sbb-link, sbb-link-button, sbb-link-static").forEach((e) => {
|
|
138
138
|
e.negative = this._isLightMode();
|
|
139
139
|
});
|
|
@@ -142,7 +142,7 @@ var y = ":host{--sbb-toast-max-width: 25rem;--sbb-toast-animation-duration: var(
|
|
|
142
142
|
e.animationName === "open" && this.state === "opening" ? this._handleOpening() : e.animationName === "close" && this.state === "closing" && this._handleClosing();
|
|
143
143
|
}
|
|
144
144
|
_closeOtherToasts() {
|
|
145
|
-
|
|
145
|
+
y.forEach((e) => {
|
|
146
146
|
(e.state === "opened" || e.state === "opening") && e.close();
|
|
147
147
|
});
|
|
148
148
|
}
|
|
@@ -170,7 +170,6 @@ var y = ":host{--sbb-toast-max-width: 25rem;--sbb-toast-animation-duration: var(
|
|
|
170
170
|
class="sbb-toast__close-button"
|
|
171
171
|
icon-name="cross-small"
|
|
172
172
|
?negative=${this._isLightMode()}
|
|
173
|
-
size="m"
|
|
174
173
|
aria-label=${p[this._language.current]}
|
|
175
174
|
sbb-toast-close
|
|
176
175
|
></sbb-transparent-button>`}
|
|
@@ -182,4 +181,4 @@ var y = ":host{--sbb-toast-max-width: 25rem;--sbb-toast-animation-duration: var(
|
|
|
182
181
|
};
|
|
183
182
|
})();
|
|
184
183
|
//#endregion
|
|
185
|
-
export {
|
|
184
|
+
export { b as t };
|
package/toast.js
CHANGED
package/toast.pure.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { t as e } from "./toast.component-
|
|
1
|
+
import { t as e } from "./toast.component-CXouszwJ.js";
|
|
2
2
|
export { e as SbbToastElement };
|
|
@@ -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+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItc3RlcCc6IFNiYlN0ZXBFbGVtZW50O1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEdsb2JhbEV2ZW50SGFuZGxlcnNFdmVudE1hcCB7XG4gICAgcmVzaXplY2hhbmdlOiBFdmVudDtcbiAgfVxufVxuIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7QUNpQ0EsSUFBYSxpQkFBYixjQUFvQyxXQUFVOztBQUNaLE9BQUEsY0FBc0I7OztBQUN0QixPQUFBLE9BQU87OztBQUNoQixPQUFBLFNBQXlCLENBQUMsaUJBQWlCLFVBQVUsYUFBTSxDQUFDOzs7QUFDNUQsT0FBQSxTQUFTO0dBQzlCLFVBQVU7R0FDVixjQUFjO0dBQ047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
|