@sbb-esta/lyne-elements-dev 5.0.0-next.3-dev.1779188320 → 5.0.0-next.3-dev.1779200097
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/autocomplete/autocomplete-base-element.js +2 -2
- package/autocomplete/autocomplete.component.js +1 -1
- package/{autocomplete-base-element-DRGjFF9_.js → autocomplete-base-element-6leI6UF4.js} +24 -14
- package/autocomplete.js +4 -4
- package/autocomplete.pure.js +3 -3
- package/calendar/calendar/calendar.component.js +2 -2
- package/{calendar.component-oS_T4s4k.js → calendar.component-BK4w5GWV.js} +35 -29
- package/calendar.js +4 -4
- package/calendar.pure.js +3 -3
- package/carousel/carousel/carousel.component.js +1 -1
- package/carousel/carousel-item/carousel-item.component.js +2 -2
- package/carousel/carousel-list/carousel-list.component.js +1 -1
- package/{carousel-item.component-DyZAdXL_.js → carousel-item.component-B6WmZPkW.js} +12 -2
- package/{carousel-list.component-Ai0uJWB7.js → carousel-list.component-CnZehdy6.js} +6 -13
- package/{carousel.component-9oMMOyWo.js → carousel.component-ZrkGeJgZ.js} +1 -1
- package/carousel.js +5 -5
- package/carousel.pure.js +4 -4
- package/chip/chip-group/chip-group.component.js +1 -1
- package/{chip-group.component-DJORKUef.js → chip-group.component-BIP7c2G0.js} +2 -7
- package/chip.js +1 -1
- package/chip.pure.js +1 -1
- package/core/overlay/overlay-outside-pointer-event-listener.js +1 -1
- package/custom-elements.json +3886 -3393
- package/datepicker/datepicker/datepicker.component.js +1 -1
- package/development/autocomplete/autocomplete-base-element.d.ts +6 -3
- package/development/autocomplete/autocomplete-base-element.d.ts.map +1 -1
- package/development/autocomplete/autocomplete-base-element.js +2 -2
- package/development/autocomplete/autocomplete.component.js +1 -1
- package/development/autocomplete-base-element-qnPoRLvM.js +695 -0
- package/development/autocomplete.js +2 -2
- package/development/autocomplete.pure.js +2 -2
- package/development/calendar/calendar/calendar.component.d.ts +8 -0
- package/development/calendar/calendar/calendar.component.d.ts.map +1 -1
- package/development/calendar/calendar/calendar.component.js +2 -2
- package/development/calendar.component-BKWvdgzO.js +1461 -0
- package/development/calendar.js +2 -2
- package/development/calendar.pure.js +2 -2
- package/development/carousel/carousel/carousel.component.js +1 -1
- package/development/carousel/carousel-item/carousel-item.component.d.ts +8 -6
- package/development/carousel/carousel-item/carousel-item.component.d.ts.map +1 -1
- package/development/carousel/carousel-item/carousel-item.component.js +2 -2
- package/development/carousel/carousel-list/carousel-list.component.d.ts.map +1 -1
- package/development/carousel/carousel-list/carousel-list.component.js +1 -1
- package/development/{carousel-item.component-B_0wdIAu.js → carousel-item.component-nuo7jAt3.js} +16 -4
- package/development/carousel-list.component-B8PUREwS.js +126 -0
- package/development/carousel.component-D_KIJ9Bb.js +139 -0
- package/development/carousel.js +4 -4
- package/development/carousel.pure.js +4 -4
- package/development/chip/chip-group/chip-group.component.d.ts +1 -23
- package/development/chip/chip-group/chip-group.component.d.ts.map +1 -1
- package/development/chip/chip-group/chip-group.component.js +1 -1
- package/development/chip-group.component-CVizDsAz.js +395 -0
- package/development/chip.js +1 -1
- package/development/chip.pure.js +1 -1
- package/development/core/overlay/overlay-outside-pointer-event-listener.d.ts +1 -1
- package/development/core/overlay/overlay-outside-pointer-event-listener.d.ts.map +1 -1
- package/development/core/overlay/overlay-outside-pointer-event-listener.js +2 -2
- package/development/core.d.ts +0 -1
- package/development/core.d.ts.map +1 -1
- package/development/datepicker/datepicker/datepicker.component.d.ts +1 -1
- package/development/datepicker/datepicker/datepicker.component.d.ts.map +1 -1
- package/development/datepicker/datepicker/datepicker.component.js +3 -3
- package/development/dialog/dialog/dialog.component.d.ts +2 -3
- package/development/dialog/dialog/dialog.component.d.ts.map +1 -1
- package/development/dialog/dialog/dialog.component.js +1 -1
- package/development/{dialog.component-AItB8ixG.js → dialog.component-D8B2dVck.js} +4 -7
- package/development/dialog.js +1 -1
- package/development/dialog.pure.js +1 -1
- package/development/file-selector/common/file-selector-common.d.ts +5 -0
- package/development/file-selector/common/file-selector-common.d.ts.map +1 -1
- package/development/file-selector/common/file-selector-common.js +2 -2
- package/development/{file-selector-common-CGL95Rnw.js → file-selector-common-mZ5UYxOF.js} +17 -8
- package/development/file-selector.js +2 -2
- package/development/file-selector.pure.js +2 -2
- package/development/form-field/form-field/form-field.component.d.ts +1 -1
- package/development/form-field/form-field/form-field.component.d.ts.map +1 -1
- package/development/form-field.component-CPWBCHer.js +1 -1
- package/development/overlay/overlay-base-element.d.ts +4 -4
- package/development/overlay/overlay-base-element.d.ts.map +1 -1
- package/development/overlay/overlay-base-element.js +3 -9
- package/development/overlay/overlay.component.d.ts +3 -3
- package/development/overlay/overlay.component.d.ts.map +1 -1
- package/development/overlay/overlay.component.js +1 -1
- package/development/{overlay.component-rFmitc_r.js → overlay.component-YSCuGeme.js} +4 -7
- package/development/overlay.js +1 -1
- package/development/overlay.pure.js +1 -1
- package/development/paginator/common/paginator-common.d.ts +11 -6
- package/development/paginator/common/paginator-common.d.ts.map +1 -1
- package/development/paginator/common/paginator-common.js +2 -2
- package/development/paginator-common-B7iba0wQ.js +432 -0
- package/development/paginator.js +2 -2
- package/development/paginator.pure.js +2 -2
- package/development/popover/popover.component.d.ts +7 -0
- package/development/popover/popover.component.d.ts.map +1 -1
- package/development/popover/popover.component.js +2 -2
- package/development/popover.component-CKUZbWbV.js +578 -0
- package/development/popover.js +2 -2
- package/development/popover.pure.js +2 -2
- package/development/{step.component-CcjtUFyR.js → step.component-B_YHm1tz.js} +32 -10
- package/development/stepper/step/step.component.d.ts +14 -1
- package/development/stepper/step/step.component.d.ts.map +1 -1
- package/development/stepper/step/step.component.js +2 -2
- package/development/stepper/stepper/stepper.component.d.ts +9 -5
- package/development/stepper/stepper/stepper.component.d.ts.map +1 -1
- package/development/stepper/stepper/stepper.component.js +1 -1
- package/development/stepper.component-BeqeUIRN.js +443 -0
- package/development/stepper.js +3 -3
- package/development/stepper.pure.js +3 -3
- package/development/tab-group.component-CGMBihsQ.js +297 -0
- package/development/{tab-label.component-CNX8bsJL.js → tab-label.component-CQOLO2t7.js} +11 -13
- package/development/tabs/tab-group/tab-group.component.d.ts +15 -8
- package/development/tabs/tab-group/tab-group.component.d.ts.map +1 -1
- package/development/tabs/tab-group/tab-group.component.js +2 -2
- package/development/tabs/tab-label/tab-label.component.d.ts.map +1 -1
- package/development/tabs/tab-label/tab-label.component.js +1 -1
- package/development/tabs.js +3 -3
- package/development/tabs.pure.js +3 -3
- package/dialog/dialog/dialog.component.js +1 -1
- package/{dialog.component-4O3__zyd.js → dialog.component-CsBryhM-.js} +3 -6
- package/dialog.js +1 -1
- package/dialog.pure.js +1 -1
- package/file-selector/common/file-selector-common.js +2 -2
- package/{file-selector-common-BE780nIa.js → file-selector-common-VNwWFEmM.js} +26 -19
- package/file-selector.js +5 -5
- package/file-selector.pure.js +4 -4
- package/overlay/overlay-base-element.js +2 -8
- package/overlay/overlay.component.js +1 -1
- package/{overlay.component-C80XN61v.js → overlay.component-myJflfLY.js} +3 -6
- package/overlay.js +1 -1
- package/overlay.pure.js +1 -1
- package/package.json +2 -2
- package/paginator/common/paginator-common.js +2 -2
- package/{paginator-common-uoCIcl4X.js → paginator-common-BWewgXga.js} +42 -24
- package/paginator.js +5 -5
- package/paginator.pure.js +4 -4
- package/popover/popover.component.js +2 -2
- package/{popover.component-DJruKzY-.js → popover.component-Dm_86bPY.js} +19 -7
- package/popover.js +3 -3
- package/popover.pure.js +2 -2
- package/{step.component-BY6_2Wh2.js → step.component-tJh-Pb_E.js} +23 -8
- package/stepper/step/step.component.js +2 -2
- package/stepper/stepper/stepper.component.js +1 -1
- package/{stepper.component-lh0YSbT1.js → stepper.component-BCl77LVa.js} +20 -3
- package/stepper.js +4 -4
- package/stepper.pure.js +3 -3
- package/{tab-group.component-t4eeCNf-.js → tab-group.component-CDhggNpe.js} +27 -2
- package/{tab-label.component-DvvSohaG.js → tab-label.component-BuF2qt1T.js} +23 -22
- package/tabs/tab-group/tab-group.component.js +2 -2
- package/tabs/tab-label/tab-label.component.js +1 -1
- package/tabs.js +7 -7
- package/tabs.pure.js +6 -6
- package/development/autocomplete-base-element-DQiZ6hhk.js +0 -683
- package/development/calendar.component-CjlcDyS5.js +0 -1450
- package/development/carousel-list.component-DpDh5tqB.js +0 -133
- package/development/carousel.component-ClWvnZ8s.js +0 -139
- package/development/chip-group.component-Sgmi-kSy.js +0 -403
- package/development/core/interfaces/overlay-close-details.d.ts +0 -6
- package/development/core/interfaces/overlay-close-details.d.ts.map +0 -1
- package/development/paginator-common-BCeNUko_.js +0 -410
- package/development/popover.component-BmTfHMFw.js +0 -564
- package/development/stepper.component-80S-oXrH.js +0 -422
- package/development/tab-group.component-D4fvd6Uu.js +0 -265
|
@@ -0,0 +1,443 @@
|
|
|
1
|
+
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
+
import { html, unsafeCSS } from "lit";
|
|
3
|
+
import { property } from "lit/decorators.js";
|
|
4
|
+
import { SbbElement, SbbMediaMatcherController, SbbMediaQueryBreakpointLargeAndAbove, SbbMediaQueryBreakpointSmallAndAbove, SbbMediaQueryBreakpointUltraAndAbove, SbbMediaQueryBreakpointZeroAndAbove, forceType, getNextElementIndex, isArrowKeyPressed } from "./core.js";
|
|
5
|
+
import { IntersectionController } from "@lit-labs/observers/intersection-controller.js";
|
|
6
|
+
//#region src/elements/stepper/stepper/stepper.scss?inline
|
|
7
|
+
var stepper_default = ":host {\n --sbb-stepper-animation-duration: var(\n --sbb-disable-animation-duration,\n var(--sbb-animation-duration-6x)\n );\n display: block;\n position: relative;\n counter-reset: step-label;\n}\n@media (forced-colors: active) {\n :host {\n --sbb-stepper-marker-color: ButtonText;\n }\n}\n\n:host(:is(:state(disable-animation),[state--disable-animation])) {\n --sbb-disable-animation-duration: 0s;\n}\n\n:host([orientation=vertical]) {\n --sbb-stepper-orientation: column;\n}\n\n.sbb-stepper__labels {\n display: flex;\n flex-direction: var(--sbb-stepper-orientation);\n position: relative;\n justify-content: start;\n margin-block-end: var(--sbb-spacing-responsive-m);\n}\n.sbb-stepper__labels::before {\n content: \"\";\n position: absolute;\n inset-inline-start: calc(var(--sbb-stepper-border-width) * -1);\n background-color: var(--sbb-stepper-marker-color);\n}\n:host([orientation=horizontal]) .sbb-stepper__labels {\n gap: var(--sbb-spacing-responsive-m);\n padding-block-end: var(--sbb-spacing-fixed-4x);\n border-block-end: var(--sbb-stepper-border-width) solid var(--sbb-border-color-4-inverted);\n}\n:host([orientation=horizontal]) .sbb-stepper__labels::before {\n inset-block-end: calc(var(--sbb-stepper-border-width) * -1);\n height: var(--sbb-stepper-marker-width);\n width: var(--sbb-stepper-marker-size, 0);\n transition: width var(--sbb-stepper-animation-duration) var(--sbb-animation-easing);\n}\n:host([orientation=vertical]) .sbb-stepper__labels {\n padding-inline-start: var(--sbb-spacing-fixed-4x);\n border-inline-start: var(--sbb-stepper-border-width) solid var(--sbb-border-color-4-inverted);\n}\n:host([orientation=vertical]) .sbb-stepper__labels::before {\n inset-block-start: 0;\n width: var(--sbb-stepper-marker-width);\n height: var(--sbb-stepper-marker-size, 0);\n transition: height var(--sbb-stepper-animation-duration) var(--sbb-animation-easing);\n}\n\n.sbb-stepper__steps {\n position: relative;\n}\n:host([orientation=horizontal]) .sbb-stepper__steps {\n height: var(--sbb-stepper-content-height);\n transition: height var(--sbb-stepper-animation-duration) var(--sbb-animation-easing);\n}\n\n::slotted(sbb-step-label)::before {\n content: counter(step-label);\n counter-increment: step-label;\n}";
|
|
8
|
+
//#endregion
|
|
9
|
+
//#region src/elements/stepper/stepper/stepper.component.ts
|
|
10
|
+
var DEBOUNCE_TIME = 150;
|
|
11
|
+
var breakpointMap = {
|
|
12
|
+
zero: SbbMediaQueryBreakpointZeroAndAbove,
|
|
13
|
+
small: SbbMediaQueryBreakpointSmallAndAbove,
|
|
14
|
+
large: SbbMediaQueryBreakpointLargeAndAbove,
|
|
15
|
+
ultra: SbbMediaQueryBreakpointUltraAndAbove
|
|
16
|
+
};
|
|
17
|
+
var SbbStepChangeEvent = class extends Event {
|
|
18
|
+
/** The index of the newly selected step. */
|
|
19
|
+
get selectedIndex() {
|
|
20
|
+
return this._selectedIndex;
|
|
21
|
+
}
|
|
22
|
+
/** The index of the previously selected step. */
|
|
23
|
+
get previousIndex() {
|
|
24
|
+
return this._previousIndex;
|
|
25
|
+
}
|
|
26
|
+
/** The newly selected step element. */
|
|
27
|
+
get selectedStep() {
|
|
28
|
+
return this._selectedStep;
|
|
29
|
+
}
|
|
30
|
+
/** The previously selected step element. */
|
|
31
|
+
get previousStep() {
|
|
32
|
+
return this._previousStep;
|
|
33
|
+
}
|
|
34
|
+
constructor({ selectedIndex, previousIndex, selectedStep, previousStep }) {
|
|
35
|
+
super("stepchange", {
|
|
36
|
+
bubbles: true,
|
|
37
|
+
composed: true
|
|
38
|
+
});
|
|
39
|
+
this._selectedIndex = selectedIndex;
|
|
40
|
+
this._previousIndex = previousIndex;
|
|
41
|
+
this._selectedStep = selectedStep;
|
|
42
|
+
this._previousStep = previousStep;
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Provides a structured, step-by-step workflow for user interactions.
|
|
47
|
+
* @slot - Provide a `sbb-expansion-panel-header` and a `sbb-expansion-panel-content` to the stepper.
|
|
48
|
+
* @slot step-label - Use this slot to provide an `sbb-step-label`.
|
|
49
|
+
* @slot step - Use this slot to provide an `sbb-step`.
|
|
50
|
+
* @event {SbbStepChangeEvent} stepchange - Emits whenever a step was changed.
|
|
51
|
+
*/
|
|
52
|
+
var SbbStepperElement = (() => {
|
|
53
|
+
let _classSuper = SbbElement;
|
|
54
|
+
let _instanceExtraInitializers = [];
|
|
55
|
+
let _linear_decorators;
|
|
56
|
+
let _linear_initializers = [];
|
|
57
|
+
let _linear_extraInitializers = [];
|
|
58
|
+
let _set_horizontalFrom_decorators;
|
|
59
|
+
let _orientation_decorators;
|
|
60
|
+
let _orientation_initializers = [];
|
|
61
|
+
let _orientation_extraInitializers = [];
|
|
62
|
+
let _size_decorators;
|
|
63
|
+
let _size_initializers = [];
|
|
64
|
+
let _size_extraInitializers = [];
|
|
65
|
+
let _set_selected_decorators;
|
|
66
|
+
let _set_selectedIndex_decorators;
|
|
67
|
+
return class SbbStepperElement extends _classSuper {
|
|
68
|
+
static {
|
|
69
|
+
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
70
|
+
_linear_decorators = [forceType(), property({ type: Boolean })];
|
|
71
|
+
_set_horizontalFrom_decorators = [property({
|
|
72
|
+
attribute: "horizontal-from",
|
|
73
|
+
reflect: true
|
|
74
|
+
})];
|
|
75
|
+
_orientation_decorators = [property({ reflect: true })];
|
|
76
|
+
_size_decorators = [property({ reflect: true })];
|
|
77
|
+
_set_selected_decorators = [property({ attribute: false })];
|
|
78
|
+
_set_selectedIndex_decorators = [property({
|
|
79
|
+
attribute: "selected-index",
|
|
80
|
+
type: Number
|
|
81
|
+
})];
|
|
82
|
+
__esDecorate(this, null, _linear_decorators, {
|
|
83
|
+
kind: "accessor",
|
|
84
|
+
name: "linear",
|
|
85
|
+
static: false,
|
|
86
|
+
private: false,
|
|
87
|
+
access: {
|
|
88
|
+
has: (obj) => "linear" in obj,
|
|
89
|
+
get: (obj) => obj.linear,
|
|
90
|
+
set: (obj, value) => {
|
|
91
|
+
obj.linear = value;
|
|
92
|
+
}
|
|
93
|
+
},
|
|
94
|
+
metadata: _metadata
|
|
95
|
+
}, _linear_initializers, _linear_extraInitializers);
|
|
96
|
+
__esDecorate(this, null, _set_horizontalFrom_decorators, {
|
|
97
|
+
kind: "setter",
|
|
98
|
+
name: "horizontalFrom",
|
|
99
|
+
static: false,
|
|
100
|
+
private: false,
|
|
101
|
+
access: {
|
|
102
|
+
has: (obj) => "horizontalFrom" in obj,
|
|
103
|
+
set: (obj, value) => {
|
|
104
|
+
obj.horizontalFrom = value;
|
|
105
|
+
}
|
|
106
|
+
},
|
|
107
|
+
metadata: _metadata
|
|
108
|
+
}, null, _instanceExtraInitializers);
|
|
109
|
+
__esDecorate(this, null, _orientation_decorators, {
|
|
110
|
+
kind: "accessor",
|
|
111
|
+
name: "orientation",
|
|
112
|
+
static: false,
|
|
113
|
+
private: false,
|
|
114
|
+
access: {
|
|
115
|
+
has: (obj) => "orientation" in obj,
|
|
116
|
+
get: (obj) => obj.orientation,
|
|
117
|
+
set: (obj, value) => {
|
|
118
|
+
obj.orientation = value;
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
metadata: _metadata
|
|
122
|
+
}, _orientation_initializers, _orientation_extraInitializers);
|
|
123
|
+
__esDecorate(this, null, _size_decorators, {
|
|
124
|
+
kind: "accessor",
|
|
125
|
+
name: "size",
|
|
126
|
+
static: false,
|
|
127
|
+
private: false,
|
|
128
|
+
access: {
|
|
129
|
+
has: (obj) => "size" in obj,
|
|
130
|
+
get: (obj) => obj.size,
|
|
131
|
+
set: (obj, value) => {
|
|
132
|
+
obj.size = value;
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
metadata: _metadata
|
|
136
|
+
}, _size_initializers, _size_extraInitializers);
|
|
137
|
+
__esDecorate(this, null, _set_selected_decorators, {
|
|
138
|
+
kind: "setter",
|
|
139
|
+
name: "selected",
|
|
140
|
+
static: false,
|
|
141
|
+
private: false,
|
|
142
|
+
access: {
|
|
143
|
+
has: (obj) => "selected" in obj,
|
|
144
|
+
set: (obj, value) => {
|
|
145
|
+
obj.selected = value;
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
metadata: _metadata
|
|
149
|
+
}, null, _instanceExtraInitializers);
|
|
150
|
+
__esDecorate(this, null, _set_selectedIndex_decorators, {
|
|
151
|
+
kind: "setter",
|
|
152
|
+
name: "selectedIndex",
|
|
153
|
+
static: false,
|
|
154
|
+
private: false,
|
|
155
|
+
access: {
|
|
156
|
+
has: (obj) => "selectedIndex" in obj,
|
|
157
|
+
set: (obj, value) => {
|
|
158
|
+
obj.selectedIndex = value;
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
metadata: _metadata
|
|
162
|
+
}, null, _instanceExtraInitializers);
|
|
163
|
+
if (_metadata) Object.defineProperty(this, Symbol.metadata, {
|
|
164
|
+
enumerable: true,
|
|
165
|
+
configurable: true,
|
|
166
|
+
writable: true,
|
|
167
|
+
value: _metadata
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
static {
|
|
171
|
+
this.elementName = "sbb-stepper";
|
|
172
|
+
}
|
|
173
|
+
static {
|
|
174
|
+
this.styles = [unsafeCSS(stepper_default)];
|
|
175
|
+
}
|
|
176
|
+
static {
|
|
177
|
+
this.events = { stepchange: "stepchange" };
|
|
178
|
+
}
|
|
179
|
+
#linear_accessor_storage;
|
|
180
|
+
/** If set to true, only the current and previous labels can be clicked and selected. */
|
|
181
|
+
get linear() {
|
|
182
|
+
return this.#linear_accessor_storage;
|
|
183
|
+
}
|
|
184
|
+
set linear(value) {
|
|
185
|
+
this.#linear_accessor_storage = value;
|
|
186
|
+
}
|
|
187
|
+
/** Overrides the behavior of `orientation` property. */
|
|
188
|
+
set horizontalFrom(value) {
|
|
189
|
+
this._horizontalFrom = value && breakpointMap[value] ? value : null;
|
|
190
|
+
if (this._horizontalFrom && this._loaded) this._checkOrientation();
|
|
191
|
+
}
|
|
192
|
+
get horizontalFrom() {
|
|
193
|
+
return this._horizontalFrom;
|
|
194
|
+
}
|
|
195
|
+
#orientation_accessor_storage;
|
|
196
|
+
/** Steps orientation, either horizontal or vertical. */
|
|
197
|
+
get orientation() {
|
|
198
|
+
return this.#orientation_accessor_storage;
|
|
199
|
+
}
|
|
200
|
+
set orientation(value) {
|
|
201
|
+
this.#orientation_accessor_storage = value;
|
|
202
|
+
}
|
|
203
|
+
#size_accessor_storage;
|
|
204
|
+
/**
|
|
205
|
+
* Size variant, either s (lean theme default) or m (standard theme default).
|
|
206
|
+
*/
|
|
207
|
+
get size() {
|
|
208
|
+
return this.#size_accessor_storage;
|
|
209
|
+
}
|
|
210
|
+
set size(value) {
|
|
211
|
+
this.#size_accessor_storage = value;
|
|
212
|
+
}
|
|
213
|
+
/** The currently selected step. */
|
|
214
|
+
set selected(step) {
|
|
215
|
+
if (this._loaded) this._select(step);
|
|
216
|
+
this._requestedSelected = step;
|
|
217
|
+
}
|
|
218
|
+
get selected() {
|
|
219
|
+
return this.querySelector?.("sbb-step:is(:state(selected),[state--selected])") ?? null;
|
|
220
|
+
}
|
|
221
|
+
/** The currently selected step index. */
|
|
222
|
+
set selectedIndex(index) {
|
|
223
|
+
if (this._loaded && index !== null) this._select(this.steps[index]);
|
|
224
|
+
this._requestedSelectedIndex = index;
|
|
225
|
+
}
|
|
226
|
+
get selectedIndex() {
|
|
227
|
+
return this.selected ? this.steps.indexOf(this.selected) : null;
|
|
228
|
+
}
|
|
229
|
+
/** The steps of the stepper. */
|
|
230
|
+
get steps() {
|
|
231
|
+
const steps = [];
|
|
232
|
+
this.querySelectorAll?.("sbb-step").forEach((step) => {
|
|
233
|
+
customElements.upgrade(step);
|
|
234
|
+
steps.push(step);
|
|
235
|
+
});
|
|
236
|
+
return steps;
|
|
237
|
+
}
|
|
238
|
+
get _enabledSteps() {
|
|
239
|
+
return this.steps.filter((s) => {
|
|
240
|
+
if (s.label) {
|
|
241
|
+
customElements.upgrade(s.label);
|
|
242
|
+
return !s.label.disabled;
|
|
243
|
+
}
|
|
244
|
+
return false;
|
|
245
|
+
});
|
|
246
|
+
}
|
|
247
|
+
constructor() {
|
|
248
|
+
super();
|
|
249
|
+
/**
|
|
250
|
+
* If the sbb-stepper is used in a sbb-dialog, the marker on the selected element will not appear,
|
|
251
|
+
* because the calculations are done when the dialog is closed, so the marker has a width of 0;
|
|
252
|
+
* the same happens for the stepper height.
|
|
253
|
+
* We need to recalculate it when the element becomes visible.
|
|
254
|
+
*/
|
|
255
|
+
this._observer = (__runInitializers(this, _instanceExtraInitializers), new IntersectionController(this, {
|
|
256
|
+
target: null,
|
|
257
|
+
callback: (entries) => {
|
|
258
|
+
entries.forEach((e) => {
|
|
259
|
+
if (e.intersectionRatio > 0) {
|
|
260
|
+
this._setStepperHeight(this.selected);
|
|
261
|
+
this._setMarkerSize();
|
|
262
|
+
}
|
|
263
|
+
});
|
|
264
|
+
}
|
|
265
|
+
}));
|
|
266
|
+
this.#linear_accessor_storage = __runInitializers(this, _linear_initializers, false);
|
|
267
|
+
this._horizontalFrom = (__runInitializers(this, _linear_extraInitializers), null);
|
|
268
|
+
this.#orientation_accessor_storage = __runInitializers(this, _orientation_initializers, "horizontal");
|
|
269
|
+
this.#size_accessor_storage = (__runInitializers(this, _orientation_extraInitializers), __runInitializers(this, _size_initializers, null));
|
|
270
|
+
this._requestedSelected = (__runInitializers(this, _size_extraInitializers), null);
|
|
271
|
+
this._requestedSelectedIndex = null;
|
|
272
|
+
this._loaded = false;
|
|
273
|
+
this._resizeObserverTimeout = null;
|
|
274
|
+
this._mediaMatcher = new SbbMediaMatcherController(this, {});
|
|
275
|
+
this._onStepperResize = () => {
|
|
276
|
+
this._checkOrientation();
|
|
277
|
+
this._setStepperHeight(this.selected);
|
|
278
|
+
clearTimeout(this._resizeObserverTimeout);
|
|
279
|
+
this.internals.states.add("disable-animation");
|
|
280
|
+
this._resizeObserverTimeout = setTimeout(() => this.internals.states.delete("disable-animation"), DEBOUNCE_TIME);
|
|
281
|
+
};
|
|
282
|
+
this.addEventListener?.("keydown", (e) => this._handleKeyDown(e));
|
|
283
|
+
this.addEventListener?.("resizechange", (e) => this._onSelectedStepResize(e));
|
|
284
|
+
}
|
|
285
|
+
/** Selects the next step. */
|
|
286
|
+
next() {
|
|
287
|
+
if (this.selectedIndex !== null) this._select(this.steps[this.selectedIndex + 1]);
|
|
288
|
+
}
|
|
289
|
+
/** Selects the previous step. */
|
|
290
|
+
previous() {
|
|
291
|
+
if (this.selectedIndex !== null) this._select(this.steps[this.selectedIndex - 1]);
|
|
292
|
+
}
|
|
293
|
+
/** Resets the form in which the stepper is nested or every form of each step, if any. */
|
|
294
|
+
reset() {
|
|
295
|
+
const closestForm = this.closest("form");
|
|
296
|
+
if (closestForm) closestForm.reset();
|
|
297
|
+
else this.querySelectorAll("form").forEach((form) => form.reset());
|
|
298
|
+
this.selectedIndex = 0;
|
|
299
|
+
if (document.activeElement?.closest("sbb-stepper") === this) this.selected?.label?.focus();
|
|
300
|
+
}
|
|
301
|
+
_isSelectable(step) {
|
|
302
|
+
if (step) {
|
|
303
|
+
customElements.upgrade(step);
|
|
304
|
+
if (step.label) {
|
|
305
|
+
customElements.upgrade(step.label);
|
|
306
|
+
if (!this.linear && step.label.disabled) return false;
|
|
307
|
+
}
|
|
308
|
+
return true;
|
|
309
|
+
} else return false;
|
|
310
|
+
}
|
|
311
|
+
_select(step) {
|
|
312
|
+
if (!this._isSelectable(step) || step === this.selected) return;
|
|
313
|
+
const currentIndex = this.selectedIndex;
|
|
314
|
+
const currentStep = this.selected;
|
|
315
|
+
const validatePayload = {
|
|
316
|
+
currentIndex,
|
|
317
|
+
currentStep,
|
|
318
|
+
nextIndex: this.selectedIndex !== null ? this.selectedIndex + 1 : null,
|
|
319
|
+
nextStep: this.selectedIndex !== null ? this.steps[this.selectedIndex + 1] : null
|
|
320
|
+
};
|
|
321
|
+
if (this.selected && !this.selected.validate(validatePayload)) return;
|
|
322
|
+
this.selected?.deselect();
|
|
323
|
+
step.select();
|
|
324
|
+
/** @internal only to provide double entry in docs. It is a public event! */
|
|
325
|
+
this.dispatchEvent(new SbbStepChangeEvent({
|
|
326
|
+
selectedIndex: this.selectedIndex,
|
|
327
|
+
previousIndex: currentIndex,
|
|
328
|
+
selectedStep: this.selected,
|
|
329
|
+
previousStep: currentStep
|
|
330
|
+
}));
|
|
331
|
+
this._setMarkerSize();
|
|
332
|
+
this._setStepperHeight(step);
|
|
333
|
+
this._configureLinearMode();
|
|
334
|
+
if (document.activeElement?.closest("sbb-stepper") === this) this.selected?.label?.focus();
|
|
335
|
+
}
|
|
336
|
+
_setMarkerSize() {
|
|
337
|
+
if (!this._loaded || !this.selected || this.selectedIndex === void 0 || !this.selected.label) return;
|
|
338
|
+
const offset = this.orientation === "horizontal" ? this.selected.label.offsetLeft + this.selected.label.offsetWidth : this._calculateLabelOffsetTop();
|
|
339
|
+
this.style.setProperty("--sbb-stepper-marker-size", `${offset}px`);
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Sets the stepper height based on the height of the provided step.
|
|
343
|
+
*/
|
|
344
|
+
_setStepperHeight(step) {
|
|
345
|
+
if (step && step.shadowRoot) {
|
|
346
|
+
const innerElement = step.shadowRoot.querySelector(".sbb-step");
|
|
347
|
+
if (innerElement) this.style?.setProperty("--sbb-stepper-content-height", `${innerElement.offsetHeight}px`);
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
_calculateLabelOffsetTop() {
|
|
351
|
+
if (this.selectedIndex === null) return;
|
|
352
|
+
let offset = 0;
|
|
353
|
+
for (const step of this.steps) {
|
|
354
|
+
if (step === this.selected) break;
|
|
355
|
+
offset = step.label.offsetHeight + offset;
|
|
356
|
+
}
|
|
357
|
+
return offset + this.selected.label.offsetHeight + parseFloat(getComputedStyle(this).getPropertyValue("--sbb-spacing-fixed-6x")) * 16 * this.selectedIndex;
|
|
358
|
+
}
|
|
359
|
+
_onSelectedStepResize(e) {
|
|
360
|
+
this._setStepperHeight(e.target);
|
|
361
|
+
}
|
|
362
|
+
_configure() {
|
|
363
|
+
this.steps.forEach((step, i, array) => {
|
|
364
|
+
step.configure(this._loaded);
|
|
365
|
+
step.label?.configure(i + 1, array.length, this._loaded);
|
|
366
|
+
});
|
|
367
|
+
this._select(this.selected || this._enabledSteps[0]);
|
|
368
|
+
}
|
|
369
|
+
_updateLabels() {
|
|
370
|
+
this.steps.forEach((step) => {
|
|
371
|
+
step.slot = this.orientation === "horizontal" ? "step" : "step-label";
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
_checkOrientation() {
|
|
375
|
+
if (this.horizontalFrom) {
|
|
376
|
+
this.orientation = this._mediaMatcher.matches(breakpointMap[this.horizontalFrom]) ? "horizontal" : "vertical";
|
|
377
|
+
this._updateLabels();
|
|
378
|
+
}
|
|
379
|
+
setTimeout(() => this._setMarkerSize(), 0);
|
|
380
|
+
}
|
|
381
|
+
_configureLinearMode() {
|
|
382
|
+
this.steps.forEach((step, index) => {
|
|
383
|
+
if (!step.label) return;
|
|
384
|
+
customElements.upgrade(step.label);
|
|
385
|
+
step.label.disable(this.linear && index > this.selectedIndex || !this.linear && step.label.matches(":is(:state(user-disabled),[state--user-disabled])"));
|
|
386
|
+
});
|
|
387
|
+
}
|
|
388
|
+
connectedCallback() {
|
|
389
|
+
super.connectedCallback();
|
|
390
|
+
window.addEventListener("resize", this._onStepperResize, { passive: true });
|
|
391
|
+
this.toggleState("disable-animation", !this._loaded);
|
|
392
|
+
}
|
|
393
|
+
disconnectedCallback() {
|
|
394
|
+
super.disconnectedCallback();
|
|
395
|
+
window.removeEventListener("resize", this._onStepperResize);
|
|
396
|
+
}
|
|
397
|
+
firstUpdated(changedProperties) {
|
|
398
|
+
super.firstUpdated(changedProperties);
|
|
399
|
+
this.updateComplete.then(() => {
|
|
400
|
+
this._loaded = true;
|
|
401
|
+
this._configure();
|
|
402
|
+
if (this._requestedSelected && this.steps.indexOf(this._requestedSelected) !== -1) this.selectedIndex = this.steps.indexOf(this._requestedSelected);
|
|
403
|
+
else if (this._requestedSelectedIndex) this.selectedIndex = this._requestedSelectedIndex;
|
|
404
|
+
else this.selectedIndex = 0;
|
|
405
|
+
this._observer.observe(this);
|
|
406
|
+
this._checkOrientation();
|
|
407
|
+
setTimeout(() => this.internals.states.delete("disable-animation"), DEBOUNCE_TIME);
|
|
408
|
+
});
|
|
409
|
+
}
|
|
410
|
+
willUpdate(changedProperties) {
|
|
411
|
+
super.willUpdate(changedProperties);
|
|
412
|
+
if (changedProperties.has("orientation") && !this.horizontalFrom) {
|
|
413
|
+
this._updateLabels();
|
|
414
|
+
this._setMarkerSize();
|
|
415
|
+
}
|
|
416
|
+
if (changedProperties.has("linear") && this._loaded) this._configureLinearMode();
|
|
417
|
+
if (changedProperties.has("size")) this._setMarkerSize();
|
|
418
|
+
}
|
|
419
|
+
_handleKeyDown(evt) {
|
|
420
|
+
const enabledSteps = this._enabledSteps;
|
|
421
|
+
if (!enabledSteps || evt.target !== this && evt.target.parentElement !== this) return;
|
|
422
|
+
if (isArrowKeyPressed(evt)) {
|
|
423
|
+
const nextIndex = getNextElementIndex(evt, enabledSteps.indexOf(this.selected), enabledSteps.length);
|
|
424
|
+
this._select(enabledSteps[nextIndex]);
|
|
425
|
+
evt.preventDefault();
|
|
426
|
+
}
|
|
427
|
+
}
|
|
428
|
+
render() {
|
|
429
|
+
return html`
|
|
430
|
+
<div class="sbb-stepper__labels" role="tablist">
|
|
431
|
+
<slot name="step-label" @slotchange=${this._configure}></slot>
|
|
432
|
+
</div>
|
|
433
|
+
<div class="sbb-stepper__steps">
|
|
434
|
+
<slot name="step" @slotchange=${this._configure}></slot>
|
|
435
|
+
</div>
|
|
436
|
+
`;
|
|
437
|
+
}
|
|
438
|
+
};
|
|
439
|
+
})();
|
|
440
|
+
//#endregion
|
|
441
|
+
export { SbbStepperElement as n, SbbStepChangeEvent as t };
|
|
442
|
+
|
|
443
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQtQmVxZVVJUk4uanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3N0ZXBwZXIvc3RlcHBlci9zdGVwcGVyLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3N0ZXBwZXIvc3RlcHBlci9zdGVwcGVyLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIC0tc2JiLXN0ZXBwZXItYW5pbWF0aW9uLWR1cmF0aW9uOiB2YXIoXG4gICAgLS1zYmItZGlzYWJsZS1hbmltYXRpb24tZHVyYXRpb24sXG4gICAgdmFyKC0tc2JiLWFuaW1hdGlvbi1kdXJhdGlvbi02eClcbiAgKTtcblxuICBkaXNwbGF5OiBibG9jaztcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBjb3VudGVyLXJlc2V0OiBzdGVwLWxhYmVsO1xuXG4gIEBpbmNsdWRlIHNiYi5pZi1mb3JjZWQtY29sb3JzIHtcbiAgICAtLXNiYi1zdGVwcGVyLW1hcmtlci1jb2xvcjogQnV0dG9uVGV4dDtcbiAgfVxufVxuXG46aG9zdCg6c3RhdGUoZGlzYWJsZS1hbmltYXRpb24pKSB7XG4gIEBpbmNsdWRlIHNiYi5kaXNhYmxlLWFuaW1hdGlvbjtcbn1cblxuOmhvc3QoW29yaWVudGF0aW9uPSd2ZXJ0aWNhbCddKSB7XG4gIC0tc2JiLXN0ZXBwZXItb3JpZW50YXRpb246IGNvbHVtbjtcbn1cblxuLnNiYi1zdGVwcGVyX19sYWJlbHMge1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LWRpcmVjdGlvbjogdmFyKC0tc2JiLXN0ZXBwZXItb3JpZW50YXRpb24pO1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG4gIGp1c3RpZnktY29udGVudDogc3RhcnQ7XG4gIG1hcmdpbi1ibG9jay1lbmQ6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUtbSk7XG5cbiAgJjo6YmVmb3JlIHtcbiAgICBjb250ZW50OiAnJztcbiAgICBwb3NpdGlvbjogYWJzb2x1dGU7XG4gICAgaW5zZXQtaW5saW5lLXN0YXJ0OiBjYWxjKHZhcigtLXNiYi1zdGVwcGVyLWJvcmRlci13aWR0aCkgKiAtMSk7XG4gICAgYmFja2dyb3VuZC1jb2xvcjogdmFyKC0tc2JiLXN0ZXBwZXItbWFya2VyLWNvbG9yKTtcbiAgfVxuXG4gIDpob3N0KFtvcmllbnRhdGlvbj0naG9yaXpvbnRhbCddKSAmIHtcbiAgICBnYXA6IHZhcigtLXNiYi1zcGFjaW5nLXJlc3BvbnNpdmUtbSk7XG4gICAgcGFkZGluZy1ibG9jay1lbmQ6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KTtcbiAgICBib3JkZXItYmxvY2stZW5kOiB2YXIoLS1zYmItc3RlcHBlci1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXNiYi1ib3JkZXItY29sb3ItNC1pbnZlcnRlZCk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgaW5zZXQtYmxvY2stZW5kOiBjYWxjKHZhcigtLXNiYi1zdGVwcGVyLWJvcmRlci13aWR0aCkgKiAtMSk7XG4gICAgICBoZWlnaHQ6IHZhcigtLXNiYi1zdGVwcGVyLW1hcmtlci13aWR0aCk7XG4gICAgICB3aWR0aDogdmFyKC0tc2JiLXN0ZXBwZXItbWFya2VyLXNpemUsIDApO1xuICAgICAgdHJhbnNpdGlvbjogd2lkdGggdmFyKC0tc2JiLXN0ZXBwZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1zYmItYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgfVxuICB9XG5cbiAgOmhvc3QoW29yaWVudGF0aW9uPSd2ZXJ0aWNhbCddKSAmIHtcbiAgICBwYWRkaW5nLWlubGluZS1zdGFydDogdmFyKC0tc2JiLXNwYWNpbmctZml4ZWQtNHgpO1xuICAgIGJvcmRlci1pbmxpbmUtc3RhcnQ6IHZhcigtLXNiYi1zdGVwcGVyLWJvcmRlci13aWR0aCkgc29saWQgdmFyKC0tc2JiLWJvcmRlci1jb2xvci00LWludmVydGVkKTtcblxuICAgICY6OmJlZm9yZSB7XG4gICAgICBpbnNldC1ibG9jay1zdGFydDogMDtcbiAgICAgIHdpZHRoOiB2YXIoLS1zYmItc3RlcHBlci1tYXJrZXItd2lkdGgpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1zYmItc3RlcHBlci1tYXJrZXItc2l6ZSwgMCk7XG4gICAgICB0cmFuc2l0aW9uOiBoZWlnaHQgdmFyKC0tc2JiLXN0ZXBwZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1zYmItYW5pbWF0aW9uLWVhc2luZyk7XG4gICAgfVxuICB9XG59XG5cbi5zYmItc3RlcHBlcl9fc3RlcHMge1xuICBwb3NpdGlvbjogcmVsYXRpdmU7XG5cbiAgOmhvc3QoW29yaWVudGF0aW9uPSdob3Jpem9udGFsJ10pICYge1xuICAgIGhlaWdodDogdmFyKC0tc2JiLXN0ZXBwZXItY29udGVudC1oZWlnaHQpO1xuICAgIHRyYW5zaXRpb246IGhlaWdodCB2YXIoLS1zYmItc3RlcHBlci1hbmltYXRpb24tZHVyYXRpb24pIHZhcigtLXNiYi1hbmltYXRpb24tZWFzaW5nKTtcbiAgfVxufVxuXG46OnNsb3R0ZWQoc2JiLXN0ZXAtbGFiZWwpOjpiZWZvcmUge1xuICBjb250ZW50OiBjb3VudGVyKHN0ZXAtbGFiZWwpO1xuICBjb3VudGVyLWluY3JlbWVudDogc3RlcC1sYWJlbDtcbn1cbiIsImltcG9ydCB7IEludGVyc2VjdGlvbkNvbnRyb2xsZXIgfSBmcm9tICdAbGl0LWxhYnMvb2JzZXJ2ZXJzL2ludGVyc2VjdGlvbi1jb250cm9sbGVyLmpzJztcbmltcG9ydCB7XG4gIHR5cGUgQ1NTUmVzdWx0R3JvdXAsXG4gIGh0bWwsXG4gIHR5cGUgUHJvcGVydHlWYWx1ZXMsXG4gIHR5cGUgVGVtcGxhdGVSZXN1bHQsXG4gIHVuc2FmZUNTUyxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgdHlwZSB7IFNiYkhvcml6b250YWxGcm9tIH0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQge1xuICBmb3JjZVR5cGUsXG4gIGdldE5leHRFbGVtZW50SW5kZXgsXG4gIGlzQXJyb3dLZXlQcmVzc2VkLFxuICBTYmJFbGVtZW50LFxuICBTYmJNZWRpYU1hdGNoZXJDb250cm9sbGVyLFxuICBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludExhcmdlQW5kQWJvdmUsXG4gIFNiYk1lZGlhUXVlcnlCcmVha3BvaW50U21hbGxBbmRBYm92ZSxcbiAgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRVbHRyYUFuZEFib3ZlLFxuICBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFplcm9BbmRBYm92ZSxcbn0gZnJvbSAnLi4vLi4vY29yZS50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYlN0ZXBFbGVtZW50LCBTYmJTdGVwVmFsaWRhdGVFdmVudERldGFpbHMgfSBmcm9tICcuLi9zdGVwL3N0ZXAuY29tcG9uZW50LnRzJztcblxuaW1wb3J0IHN0eWxlIGZyb20gJy4vc3RlcHBlci5zY3NzP2lubGluZSc7XG5cbmNvbnN0IERFQk9VTkNFX1RJTUUgPSAxNTA7XG5cbmNvbnN0IGJyZWFrcG9pbnRNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIHplcm86IFNiYk1lZGlhUXVlcnlCcmVha3BvaW50WmVyb0FuZEFib3ZlLFxuICBzbWFsbDogU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEFib3ZlLFxuICBsYXJnZTogU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRMYXJnZUFuZEFib3ZlLFxuICB1bHRyYTogU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRVbHRyYUFuZEFib3ZlLFxufTtcblxuZXhwb3J0IGNsYXNzIFNiYlN0ZXBDaGFuZ2VFdmVudCBleHRlbmRzIEV2ZW50IHtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0ZWRJbmRleDogbnVtYmVyIHwgbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBfcHJldmlvdXNJbmRleDogbnVtYmVyIHwgbnVsbDtcbiAgcHJpdmF0ZSByZWFkb25seSBfc2VsZWN0ZWRTdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGw7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3ByZXZpb3VzU3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsO1xuXG4gIC8qKiBUaGUgaW5kZXggb2YgdGhlIG5ld2x5IHNlbGVjdGVkIHN0ZXAuICovXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRJbmRleCgpOiBudW1iZXIgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5fc2VsZWN0ZWRJbmRleDtcbiAgfVxuXG4gIC8qKiBUaGUgaW5kZXggb2YgdGhlIHByZXZpb3VzbHkgc2VsZWN0ZWQgc3RlcC4gKi9cbiAgcHVibGljIGdldCBwcmV2aW91c0luZGV4KCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9wcmV2aW91c0luZGV4O1xuICB9XG5cbiAgLyoqIFRoZSBuZXdseSBzZWxlY3RlZCBzdGVwIGVsZW1lbnQuICovXG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWRTdGVwKCk6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkU3RlcDtcbiAgfVxuXG4gIC8qKiBUaGUgcHJldmlvdXNseSBzZWxlY3RlZCBzdGVwIGVsZW1lbnQuICovXG4gIHB1YmxpYyBnZXQgcHJldmlvdXNTdGVwKCk6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3ByZXZpb3VzU3RlcDtcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcih7XG4gICAgc2VsZWN0ZWRJbmRleCxcbiAgICBwcmV2aW91c0luZGV4LFxuICAgIHNlbGVjdGVkU3RlcCxcbiAgICBwcmV2aW91c1N0ZXAsXG4gIH06IE9taXQ8U2JiU3RlcENoYW5nZUV2ZW50LCBrZXlvZiBFdmVudD4pIHtcbiAgICBzdXBlcignc3RlcGNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSk7XG4gICAgdGhpcy5fc2VsZWN0ZWRJbmRleCA9IHNlbGVjdGVkSW5kZXg7XG4gICAgdGhpcy5fcHJldmlvdXNJbmRleCA9IHByZXZpb3VzSW5kZXg7XG4gICAgdGhpcy5fc2VsZWN0ZWRTdGVwID0gc2VsZWN0ZWRTdGVwO1xuICAgIHRoaXMuX3ByZXZpb3VzU3RlcCA9IHByZXZpb3VzU3RlcDtcbiAgfVxufVxuLyoqXG4gKiBQcm92aWRlcyBhIHN0cnVjdHVyZWQsIHN0ZXAtYnktc3RlcCB3b3JrZmxvdyBmb3IgdXNlciBpbnRlcmFjdGlvbnMuXG4gKiBAc2xvdCAtIFByb3ZpZGUgYSBgc2JiLWV4cGFuc2lvbi1wYW5lbC1oZWFkZXJgIGFuZCBhIGBzYmItZXhwYW5zaW9uLXBhbmVsLWNvbnRlbnRgIHRvIHRoZSBzdGVwcGVyLlxuICogQHNsb3Qgc3RlcC1sYWJlbCAtIFVzZSB0aGlzIHNsb3QgdG8gcHJvdmlkZSBhbiBgc2JiLXN0ZXAtbGFiZWxgLlxuICogQHNsb3Qgc3RlcCAtIFVzZSB0aGlzIHNsb3QgdG8gcHJvdmlkZSBhbiBgc2JiLXN0ZXBgLlxuICogQGV2ZW50IHtTYmJTdGVwQ2hhbmdlRXZlbnR9IHN0ZXBjaGFuZ2UgLSBFbWl0cyB3aGVuZXZlciBhIHN0ZXAgd2FzIGNoYW5nZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJTdGVwcGVyRWxlbWVudCBleHRlbmRzIFNiYkVsZW1lbnQge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLXN0ZXBwZXInO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIHN0ZXBjaGFuZ2U6ICdzdGVwY2hhbmdlJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKipcbiAgICogSWYgdGhlIHNiYi1zdGVwcGVyIGlzIHVzZWQgaW4gYSBzYmItZGlhbG9nLCB0aGUgbWFya2VyIG9uIHRoZSBzZWxlY3RlZCBlbGVtZW50IHdpbGwgbm90IGFwcGVhcixcbiAgICogYmVjYXVzZSB0aGUgY2FsY3VsYXRpb25zIGFyZSBkb25lIHdoZW4gdGhlIGRpYWxvZyBpcyBjbG9zZWQsIHNvIHRoZSBtYXJrZXIgaGFzIGEgd2lkdGggb2YgMDtcbiAgICogdGhlIHNhbWUgaGFwcGVucyBmb3IgdGhlIHN0ZXBwZXIgaGVpZ2h0LlxuICAgKiBXZSBuZWVkIHRvIHJlY2FsY3VsYXRlIGl0IHdoZW4gdGhlIGVsZW1lbnQgYmVjb21lcyB2aXNpYmxlLlxuICAgKi9cbiAgcHJpdmF0ZSBfb2JzZXJ2ZXIgPSBuZXcgSW50ZXJzZWN0aW9uQ29udHJvbGxlcih0aGlzLCB7XG4gICAgdGFyZ2V0OiBudWxsLFxuICAgIGNhbGxiYWNrOiAoZW50cmllcykgPT4ge1xuICAgICAgZW50cmllcy5mb3JFYWNoKChlKSA9PiB7XG4gICAgICAgIGlmIChlLmludGVyc2VjdGlvblJhdGlvID4gMCkge1xuICAgICAgICAgIHRoaXMuX3NldFN0ZXBwZXJIZWlnaHQodGhpcy5zZWxlY3RlZCk7XG4gICAgICAgICAgdGhpcy5fc2V0TWFya2VyU2l6ZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9LFxuICB9KTtcblxuICAvKiogSWYgc2V0IHRvIHRydWUsIG9ubHkgdGhlIGN1cnJlbnQgYW5kIHByZXZpb3VzIGxhYmVscyBjYW4gYmUgY2xpY2tlZCBhbmQgc2VsZWN0ZWQuICovXG4gIEBmb3JjZVR5cGUoKVxuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBsaW5lYXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKiogT3ZlcnJpZGVzIHRoZSBiZWhhdmlvciBvZiBgb3JpZW50YXRpb25gIHByb3BlcnR5LiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdob3Jpem9udGFsLWZyb20nLCByZWZsZWN0OiB0cnVlIH0pXG4gIHB1YmxpYyBzZXQgaG9yaXpvbnRhbEZyb20odmFsdWU6IFNiYkhvcml6b250YWxGcm9tIHwgbnVsbCkge1xuICAgIHRoaXMuX2hvcml6b250YWxGcm9tID0gdmFsdWUgJiYgYnJlYWtwb2ludE1hcFt2YWx1ZV0gPyB2YWx1ZSA6IG51bGw7XG4gICAgaWYgKHRoaXMuX2hvcml6b250YWxGcm9tICYmIHRoaXMuX2xvYWRlZCkge1xuICAgICAgdGhpcy5fY2hlY2tPcmllbnRhdGlvbigpO1xuICAgIH1cbiAgfVxuICBwdWJsaWMgZ2V0IGhvcml6b250YWxGcm9tKCk6IFNiYkhvcml6b250YWxGcm9tIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX2hvcml6b250YWxGcm9tO1xuICB9XG4gIHByaXZhdGUgX2hvcml6b250YWxGcm9tOiBTYmJIb3Jpem9udGFsRnJvbSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBTdGVwcyBvcmllbnRhdGlvbiwgZWl0aGVyIGhvcml6b250YWwgb3IgdmVydGljYWwuICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGFjY2Vzc29yIG9yaWVudGF0aW9uOiAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnID0gJ2hvcml6b250YWwnO1xuXG4gIC8qKlxuICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBzIChsZWFuIHRoZW1lIGRlZmF1bHQpIG9yIG0gKHN0YW5kYXJkIHRoZW1lIGRlZmF1bHQpLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KSBwdWJsaWMgYWNjZXNzb3Igc2l6ZTogJ3MnIHwgJ20nIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgc3RlcC4gKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiBmYWxzZSB9KVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkKHN0ZXA6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCkge1xuICAgIGlmICh0aGlzLl9sb2FkZWQpIHtcbiAgICAgIHRoaXMuX3NlbGVjdChzdGVwKTtcbiAgICB9XG4gICAgdGhpcy5fcmVxdWVzdGVkU2VsZWN0ZWQgPSBzdGVwO1xuICB9XG4gIHB1YmxpYyBnZXQgc2VsZWN0ZWQoKTogU2JiU3RlcEVsZW1lbnQgfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5xdWVyeVNlbGVjdG9yPy48U2JiU3RlcEVsZW1lbnQ+KCdzYmItc3RlcDpzdGF0ZShzZWxlY3RlZCknKSA/PyBudWxsO1xuICB9XG4gIHByaXZhdGUgX3JlcXVlc3RlZFNlbGVjdGVkOiBTYmJTdGVwRWxlbWVudCB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIHN0ZXAgaW5kZXguICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ3NlbGVjdGVkLWluZGV4JywgdHlwZTogTnVtYmVyIH0pXG4gIHB1YmxpYyBzZXQgc2VsZWN0ZWRJbmRleChpbmRleDogbnVtYmVyIHwgbnVsbCkge1xuICAgIGlmICh0aGlzLl9sb2FkZWQgJiYgaW5kZXggIT09IG51bGwpIHtcbiAgICAgIHRoaXMuX3NlbGVjdCh0aGlzLnN0ZXBzW2luZGV4XSk7XG4gICAgfVxuICAgIHRoaXMuX3JlcXVlc3RlZFNlbGVjdGVkSW5kZXggPSBpbmRleDtcbiAgfVxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkSW5kZXgoKTogbnVtYmVyIHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuc2VsZWN0ZWQgPyB0aGlzLnN0ZXBzLmluZGV4T2YodGhpcy5zZWxlY3RlZCkgOiBudWxsO1xuICB9XG4gIHByaXZhdGUgX3JlcXVlc3RlZFNlbGVjdGVkSW5kZXg6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBUaGUgc3RlcHMgb2YgdGhlIHN0ZXBwZXIuICovXG4gIHB1YmxpYyBnZXQgc3RlcHMoKTogU2JiU3RlcEVsZW1lbnRbXSB7XG4gICAgY29uc3Qgc3RlcHM6IFNiYlN0ZXBFbGVtZW50W10gPSBbXTtcbiAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLXN0ZXAnKS5mb3JFYWNoKChzdGVwKSA9PiB7XG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKHN0ZXApO1xuICAgICAgc3RlcHMucHVzaChzdGVwKTtcbiAgICB9KTtcbiAgICByZXR1cm4gc3RlcHM7XG4gIH1cblxuICBwcml2YXRlIGdldCBfZW5hYmxlZFN0ZXBzKCk6IFNiYlN0ZXBFbGVtZW50W10ge1xuICAgIHJldHVybiB0aGlzLnN0ZXBzLmZpbHRlcigocykgPT4ge1xuICAgICAgaWYgKHMubGFiZWwpIHtcbiAgICAgICAgY3VzdG9tRWxlbWVudHMudXBncmFkZShzLmxhYmVsKTtcbiAgICAgICAgcmV0dXJuICFzLmxhYmVsLmRpc2FibGVkO1xuICAgICAgfVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfbG9hZGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3Jlc2l6ZU9ic2VydmVyVGltZW91dDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsID0gbnVsbDtcbiAgcHJpdmF0ZSBfbWVkaWFNYXRjaGVyID0gbmV3IFNiYk1lZGlhTWF0Y2hlckNvbnRyb2xsZXIodGhpcywge30pO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgKGUpID0+IHRoaXMuX2hhbmRsZUtleURvd24oZSkpO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdyZXNpemVjaGFuZ2UnLCAoZTogRXZlbnQpID0+IHRoaXMuX29uU2VsZWN0ZWRTdGVwUmVzaXplKGUpKTtcbiAgfVxuXG4gIC8qKiBTZWxlY3RzIHRoZSBuZXh0IHN0ZXAuICovXG4gIHB1YmxpYyBuZXh0KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kZXggIT09IG51bGwpIHtcbiAgICAgIHRoaXMuX3NlbGVjdCh0aGlzLnN0ZXBzW3RoaXMuc2VsZWN0ZWRJbmRleCArIDFdKTtcbiAgICB9XG4gIH1cblxuICAvKiogU2VsZWN0cyB0aGUgcHJldmlvdXMgc3RlcC4gKi9cbiAgcHVibGljIHByZXZpb3VzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNlbGVjdGVkSW5kZXggIT09IG51bGwpIHtcbiAgICAgIHRoaXMuX3NlbGVjdCh0aGlzLnN0ZXBzW3RoaXMuc2VsZWN0ZWRJbmRleCAtIDFdKTtcbiAgICB9XG4gIH1cblxuICAvKiogUmVzZXRzIHRoZSBmb3JtIGluIHdoaWNoIHRoZSBzdGVwcGVyIGlzIG5lc3RlZCBvciBldmVyeSBmb3JtIG9mIGVhY2ggc3RlcCwgaWYgYW55LiAqL1xuICBwdWJsaWMgcmVzZXQoKTogdm9pZCB7XG4gICAgY29uc3QgY2xvc2VzdEZvcm0gPSB0aGlzLmNsb3Nlc3QoJ2Zvcm0nKTtcbiAgICBpZiAoY2xvc2VzdEZvcm0pIHtcbiAgICAgIGNsb3Nlc3RGb3JtLnJlc2V0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucXVlcnlTZWxlY3RvckFsbCgnZm9ybScpLmZvckVhY2goKGZvcm0pID0+IGZvcm0ucmVzZXQoKSk7XG4gICAgfVxuICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9IDA7XG4gICAgLy8gSW4gY2FzZSB0aGUgZm9jdXMgaXMgY3VycmVudGx5IGluc2lkZSB0aGUgc3RlcHBlciwgd2UgcmVzZXQgdGhlIGZvY3VzIHRvIHRoZSBmaXJzdC9zZWxlY3RlZCBzdGVwIGxhYmVsLlxuICAgIGlmIChkb2N1bWVudC5hY3RpdmVFbGVtZW50Py5jbG9zZXN0KCdzYmItc3RlcHBlcicpID09PSB0aGlzKSB7XG4gICAgICB0aGlzLnNlbGVjdGVkPy5sYWJlbD8uZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9pc1NlbGVjdGFibGUoc3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsKTogc3RlcCBpcyBTYmJTdGVwRWxlbWVudCB7XG4gICAgaWYgKHN0ZXApIHtcbiAgICAgIGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGUoc3RlcCk7XG4gICAgICBpZiAoc3RlcC5sYWJlbCkge1xuICAgICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKHN0ZXAubGFiZWwpO1xuICAgICAgICBpZiAoIXRoaXMubGluZWFyICYmIHN0ZXAubGFiZWwuZGlzYWJsZWQpIHtcbiAgICAgICAgICByZXR1cm4gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfc2VsZWN0KHN0ZXA6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5faXNTZWxlY3RhYmxlKHN0ZXApIHx8IHN0ZXAgPT09IHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY3VycmVudEluZGV4ID0gdGhpcy5zZWxlY3RlZEluZGV4O1xuICAgIGNvbnN0IGN1cnJlbnRTdGVwID0gdGhpcy5zZWxlY3RlZDtcbiAgICBjb25zdCB2YWxpZGF0ZVBheWxvYWQ6IFNiYlN0ZXBWYWxpZGF0ZUV2ZW50RGV0YWlscyA9IHtcbiAgICAgIGN1cnJlbnRJbmRleCxcbiAgICAgIGN1cnJlbnRTdGVwLFxuICAgICAgbmV4dEluZGV4OiB0aGlzLnNlbGVjdGVkSW5kZXggIT09IG51bGwgPyB0aGlzLnNlbGVjdGVkSW5kZXggKyAxIDogbnVsbCxcbiAgICAgIG5leHRTdGVwOiB0aGlzLnNlbGVjdGVkSW5kZXggIT09IG51bGwgPyB0aGlzLnN0ZXBzW3RoaXMuc2VsZWN0ZWRJbmRleCArIDFdIDogbnVsbCxcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQgJiYgIXRoaXMuc2VsZWN0ZWQudmFsaWRhdGUodmFsaWRhdGVQYXlsb2FkKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnQgPSB0aGlzLnNlbGVjdGVkO1xuICAgIGN1cnJlbnQ/LmRlc2VsZWN0KCk7XG4gICAgc3RlcC5zZWxlY3QoKTtcblxuICAgIC8qKiBAaW50ZXJuYWwgb25seSB0byBwcm92aWRlIGRvdWJsZSBlbnRyeSBpbiBkb2NzLiBJdCBpcyBhIHB1YmxpYyBldmVudCEgKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQoXG4gICAgICBuZXcgU2JiU3RlcENoYW5nZUV2ZW50KHtcbiAgICAgICAgc2VsZWN0ZWRJbmRleDogdGhpcy5zZWxlY3RlZEluZGV4LFxuICAgICAgICBwcmV2aW91c0luZGV4OiBjdXJyZW50SW5kZXgsXG4gICAgICAgIHNlbGVjdGVkU3RlcDogdGhpcy5zZWxlY3RlZCxcbiAgICAgICAgcHJldmlvdXNTdGVwOiBjdXJyZW50U3RlcCxcbiAgICAgIH0pLFxuICAgICk7XG5cbiAgICB0aGlzLl9zZXRNYXJrZXJTaXplKCk7XG4gICAgdGhpcy5fc2V0U3RlcHBlckhlaWdodChzdGVwKTtcbiAgICB0aGlzLl9jb25maWd1cmVMaW5lYXJNb2RlKCk7XG4gICAgLy8gSW4gY2FzZSB0aGUgZm9jdXMgaXMgY3VycmVudGx5IGluc2lkZSB0aGUgc3RlcHBlciwgd2UgZm9jdXMgdGhlIHNlbGVjdGVkIHN0ZXAgbGFiZWwuXG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmNsb3Nlc3QoJ3NiYi1zdGVwcGVyJykgPT09IHRoaXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQ/LmxhYmVsPy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldE1hcmtlclNpemUoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuX2xvYWRlZCB8fFxuICAgICAgIXRoaXMuc2VsZWN0ZWQgfHxcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAhdGhpcy5zZWxlY3RlZC5sYWJlbFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBvZmZzZXQgPVxuICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZC5sYWJlbC5vZmZzZXRMZWZ0ICsgdGhpcy5zZWxlY3RlZC5sYWJlbC5vZmZzZXRXaWR0aFxuICAgICAgICA6IHRoaXMuX2NhbGN1bGF0ZUxhYmVsT2Zmc2V0VG9wKCk7XG5cbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1zdGVwcGVyLW1hcmtlci1zaXplJywgYCR7b2Zmc2V0fXB4YCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc3RlcHBlciBoZWlnaHQgYmFzZWQgb24gdGhlIGhlaWdodCBvZiB0aGUgcHJvdmlkZWQgc3RlcC5cbiAgICovXG4gIHByaXZhdGUgX3NldFN0ZXBwZXJIZWlnaHQoc3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHN0ZXAgJiYgc3RlcC5zaGFkb3dSb290KSB7XG4gICAgICBjb25zdCBpbm5lckVsZW1lbnQ6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCA9IHN0ZXAuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuc2JiLXN0ZXAnKTtcbiAgICAgIGlmIChpbm5lckVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLXN0ZXBwZXItY29udGVudC1oZWlnaHQnLCBgJHtpbm5lckVsZW1lbnQub2Zmc2V0SGVpZ2h0fXB4YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlTGFiZWxPZmZzZXRUb3AoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEluZGV4ID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIGZvciAoY29uc3Qgc3RlcCBvZiB0aGlzLnN0ZXBzKSB7XG4gICAgICBpZiAoc3RlcCA9PT0gdGhpcy5zZWxlY3RlZCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIG9mZnNldCA9IHN0ZXAubGFiZWwhLm9mZnNldEhlaWdodCArIG9mZnNldDtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIG9mZnNldCArXG4gICAgICB0aGlzLnNlbGVjdGVkIS5sYWJlbCEub2Zmc2V0SGVpZ2h0ISArXG4gICAgICBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUodGhpcykuZ2V0UHJvcGVydHlWYWx1ZSgnLS1zYmItc3BhY2luZy1maXhlZC02eCcpKSAqXG4gICAgICAgIDE2ICpcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uU2VsZWN0ZWRTdGVwUmVzaXplKGU6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fc2V0U3RlcHBlckhlaWdodChlLnRhcmdldCBhcyBTYmJTdGVwRWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIF9jb25maWd1cmUoKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwcy5mb3JFYWNoKChzdGVwLCBpLCBhcnJheSkgPT4ge1xuICAgICAgc3RlcC5jb25maWd1cmUodGhpcy5fbG9hZGVkKTtcbiAgICAgIHN0ZXAubGFiZWw/LmNvbmZpZ3VyZShpICsgMSwgYXJyYXkubGVuZ3RoLCB0aGlzLl9sb2FkZWQpO1xuICAgIH0pO1xuICAgIHRoaXMuX3NlbGVjdCh0aGlzLnNlbGVjdGVkIHx8IHRoaXMuX2VuYWJsZWRTdGVwc1swXSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVMYWJlbHMoKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwcy5mb3JFYWNoKChzdGVwKSA9PiB7XG4gICAgICBzdGVwLnNsb3QgPSB0aGlzLm9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcgPyAnc3RlcCcgOiAnc3RlcC1sYWJlbCc7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja09yaWVudGF0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhvcml6b250YWxGcm9tKSB7XG4gICAgICB0aGlzLm9yaWVudGF0aW9uID0gdGhpcy5fbWVkaWFNYXRjaGVyLm1hdGNoZXMoYnJlYWtwb2ludE1hcFt0aGlzLmhvcml6b250YWxGcm9tXSlcbiAgICAgICAgPyAnaG9yaXpvbnRhbCdcbiAgICAgICAgOiAndmVydGljYWwnO1xuICAgICAgdGhpcy5fdXBkYXRlTGFiZWxzKCk7XG4gICAgfVxuICAgIC8vIFRoZSB0aW1lb3V0IGlzIG5lZWRlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgbWFya2VyIHRha2VzIHRoZSBjb3JyZWN0IHN0ZXAtbGFiZWwgc2l6ZS5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3NldE1hcmtlclNpemUoKSwgMCk7XG4gIH1cblxuICBwcml2YXRlIF9vblN0ZXBwZXJSZXNpemUgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5fY2hlY2tPcmllbnRhdGlvbigpO1xuICAgIHRoaXMuX3NldFN0ZXBwZXJIZWlnaHQodGhpcy5zZWxlY3RlZCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCEpO1xuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ2Rpc2FibGUtYW5pbWF0aW9uJyk7XG5cbiAgICAvLyBEaXNhYmxlIHRoZSBhbmltYXRpb24gd2hlbiByZXNpemluZyB0byBhdm9pZCBzdHJhbmdlIHRyYW5zaXRpb24gZWZmZWN0cy5cbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlclRpbWVvdXQgPSBzZXRUaW1lb3V0KFxuICAgICAgKCkgPT4gdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnZGlzYWJsZS1hbmltYXRpb24nKSxcbiAgICAgIERFQk9VTkNFX1RJTUUsXG4gICAgKTtcbiAgfTtcblxuICBwcml2YXRlIF9jb25maWd1cmVMaW5lYXJNb2RlKCk6IHZvaWQge1xuICAgIHRoaXMuc3RlcHMuZm9yRWFjaCgoc3RlcCwgaW5kZXgpID0+IHtcbiAgICAgIGlmICghc3RlcC5sYWJlbCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKHN0ZXAubGFiZWwpO1xuXG4gICAgICBzdGVwLmxhYmVsLmRpc2FibGUoXG4gICAgICAgICh0aGlzLmxpbmVhciAmJiBpbmRleCA+IHRoaXMuc2VsZWN0ZWRJbmRleCEpIHx8XG4gICAgICAgICAgKCF0aGlzLmxpbmVhciAmJiBzdGVwLmxhYmVsLm1hdGNoZXMoJzpzdGF0ZSh1c2VyLWRpc2FibGVkKScpKSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5fb25TdGVwcGVyUmVzaXplLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2Rpc2FibGUtYW5pbWF0aW9uJywgIXRoaXMuX2xvYWRlZCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5fb25TdGVwcGVyUmVzaXplKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5fbG9hZGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZSgpO1xuXG4gICAgICBpZiAodGhpcy5fcmVxdWVzdGVkU2VsZWN0ZWQgJiYgdGhpcy5zdGVwcy5pbmRleE9mKHRoaXMuX3JlcXVlc3RlZFNlbGVjdGVkKSAhPT0gLTEpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy5zdGVwcy5pbmRleE9mKHRoaXMuX3JlcXVlc3RlZFNlbGVjdGVkKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fcmVxdWVzdGVkU2VsZWN0ZWRJbmRleCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSB0aGlzLl9yZXF1ZXN0ZWRTZWxlY3RlZEluZGV4O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gMDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzKTtcbiAgICAgIHRoaXMuX2NoZWNrT3JpZW50YXRpb24oKTtcbiAgICAgIC8vIFJlbW92ZSBkaXNhYmxlLWFuaW1hdGlvbiBzdGF0ZSBhZnRlciBjb21wb25lbnQgaW5pdFxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdkaXNhYmxlLWFuaW1hdGlvbicpLCBERUJPVU5DRV9USU1FKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ29yaWVudGF0aW9uJykgJiYgIXRoaXMuaG9yaXpvbnRhbEZyb20pIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUxhYmVscygpO1xuICAgICAgdGhpcy5fc2V0TWFya2VyU2l6ZSgpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsaW5lYXInKSAmJiB0aGlzLl9sb2FkZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZUxpbmVhck1vZGUoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzaXplJykpIHtcbiAgICAgIHRoaXMuX3NldE1hcmtlclNpemUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVLZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVuYWJsZWRTdGVwczogU2JiU3RlcEVsZW1lbnRbXSA9IHRoaXMuX2VuYWJsZWRTdGVwcztcblxuICAgIGlmIChcbiAgICAgICFlbmFibGVkU3RlcHMgfHxcbiAgICAgIC8vIGRvbid0IHRyYXAgbmVzdGVkIGhhbmRsaW5nXG4gICAgICAoKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpICE9PSB0aGlzICYmIChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5wYXJlbnRFbGVtZW50ICE9PSB0aGlzKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChpc0Fycm93S2V5UHJlc3NlZChldnQpKSB7XG4gICAgICBjb25zdCBjdXJyZW50OiBudW1iZXIgPSBlbmFibGVkU3RlcHMuaW5kZXhPZih0aGlzLnNlbGVjdGVkISk7XG4gICAgICBjb25zdCBuZXh0SW5kZXg6IG51bWJlciA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZ0LCBjdXJyZW50LCBlbmFibGVkU3RlcHMubGVuZ3RoKTtcbiAgICAgIHRoaXMuX3NlbGVjdChlbmFibGVkU3RlcHNbbmV4dEluZGV4XSk7XG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RlcHBlcl9fbGFiZWxzXCIgcm9sZT1cInRhYmxpc3RcIj5cbiAgICAgICAgPHNsb3QgbmFtZT1cInN0ZXAtbGFiZWxcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX2NvbmZpZ3VyZX0+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXN0ZXBwZXJfX3N0ZXBzXCI+XG4gICAgICAgIDxzbG90IG5hbWU9XCJzdGVwXCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9jb25maWd1cmV9Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1zdGVwcGVyJzogU2JiU3RlcHBlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FDMEJBLElBQU0sZ0JBQWdCO0FBRXRCLElBQU0sZ0JBQXdDO0NBQzVDLE1BQU07Q0FDTixPQUFPO0NBQ1AsT0FBTztDQUNQLE9BQU87O0FBR1QsSUFBYSxxQkFBYixjQUF3QyxNQUFLOztDQU8zQyxJQUFXLGdCQUFhO0VBQ3RCLE9BQU8sS0FBSztDQUNkOztDQUdBLElBQVcsZ0JBQWE7RUFDdEIsT0FBTyxLQUFLO0NBQ2Q7O0NBR0EsSUFBVyxlQUFZO0VBQ3JCLE9BQU8sS0FBSztDQUNkOztDQUdBLElBQVcsZUFBWTtFQUNyQixPQUFPLEtBQUs7Q0FDZDtDQUVBLFlBQW1CLEVBQ2pCLGVBQ0EsZUFDQSxjQUNBLGdCQUNzQztFQUN0QyxNQUFNLGNBQWM7R0FBRSxTQUFTO0dBQU0sVUFBVTtFQUFJLENBQUU7RUFDckQsS0FBSyxpQkFBaUI7RUFDdEIsS0FBSyxpQkFBaUI7RUFDdEIsS0FBSyxnQkFBZ0I7RUFDckIsS0FBSyxnQkFBZ0I7Q0FDdkI7Ozs7Ozs7OztJQVNXLDJCQUFpQjttQkFBUzs7Ozs7Ozs7Ozs7Ozs7Y0FBMUIsMEJBQTBCLFlBQVU7Ozt5QkEwQjlDLFVBQVMsR0FDVCxTQUFTLEVBQUUsTUFBTSxRQUFPLENBQUUsQ0FBQztxQ0FJM0IsU0FBUztJQUFFLFdBQVc7SUFBbUIsU0FBUztHQUFJLENBQUUsQ0FBQzs4QkFhekQsU0FBUyxFQUFFLFNBQVMsS0FBSSxDQUFFLENBQUM7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
|
package/development/stepper.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as SbbStepLabelElement } from "./step-label.component-Bo7Z0w7N.js";
|
|
2
|
-
import { t as SbbStepElement } from "./step.component-
|
|
3
|
-
import { n as SbbStepperElement, t as SbbStepChangeEvent } from "./stepper.component-
|
|
2
|
+
import { n as SbbStepValidateEvent, t as SbbStepElement } from "./step.component-B_YHm1tz.js";
|
|
3
|
+
import { n as SbbStepperElement, t as SbbStepChangeEvent } from "./stepper.component-BeqeUIRN.js";
|
|
4
4
|
import "./stepper.pure.js";
|
|
5
5
|
//#region src/elements/stepper.ts
|
|
6
6
|
/** @entrypoint */
|
|
@@ -8,6 +8,6 @@ SbbStepElement.define();
|
|
|
8
8
|
SbbStepLabelElement.define();
|
|
9
9
|
SbbStepperElement.define();
|
|
10
10
|
//#endregion
|
|
11
|
-
export { SbbStepChangeEvent, SbbStepElement, SbbStepLabelElement, SbbStepperElement };
|
|
11
|
+
export { SbbStepChangeEvent, SbbStepElement, SbbStepLabelElement, SbbStepValidateEvent, SbbStepperElement };
|
|
12
12
|
|
|
13
13
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5qcyIsIm5hbWVzIjpbXSwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZWxlbWVudHMvc3RlcHBlci50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGVudHJ5cG9pbnQgKi9cbmltcG9ydCB7IFNiYlN0ZXBFbGVtZW50LCBTYmJTdGVwTGFiZWxFbGVtZW50LCBTYmJTdGVwcGVyRWxlbWVudCB9IGZyb20gJy4vc3RlcHBlci5wdXJlLnRzJztcblxuZXhwb3J0ICogZnJvbSAnLi9zdGVwcGVyLnB1cmUudHMnO1xuXG5TYmJTdGVwRWxlbWVudC5kZWZpbmUoKTtcblNiYlN0ZXBMYWJlbEVsZW1lbnQuZGVmaW5lKCk7XG5TYmJTdGVwcGVyRWxlbWVudC5kZWZpbmUoKTtcbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBS0EsZUFBZSxPQUFNO0FBQ3JCLG9CQUFvQixPQUFNO0FBQzFCLGtCQUFrQixPQUFNIn0=
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { t as SbbStepLabelElement } from "./step-label.component-Bo7Z0w7N.js";
|
|
2
|
-
import { t as SbbStepElement } from "./step.component-
|
|
3
|
-
import { n as SbbStepperElement, t as SbbStepChangeEvent } from "./stepper.component-
|
|
4
|
-
export { SbbStepChangeEvent, SbbStepElement, SbbStepLabelElement, SbbStepperElement };
|
|
2
|
+
import { n as SbbStepValidateEvent, t as SbbStepElement } from "./step.component-B_YHm1tz.js";
|
|
3
|
+
import { n as SbbStepperElement, t as SbbStepChangeEvent } from "./stepper.component-BeqeUIRN.js";
|
|
4
|
+
export { SbbStepChangeEvent, SbbStepElement, SbbStepLabelElement, SbbStepValidateEvent, SbbStepperElement };
|