@sbb-esta/lyne-elements-dev 4.9.0-dev.1775022513 → 4.9.0-dev.1775049532

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/core/styles/core.scss +9 -0
  2. package/core.css +22 -0
  3. package/custom-elements.json +561 -561
  4. package/development/step-label.component-D3wrRPQ7.js +265 -0
  5. package/development/step.component-ewujsOVD.js +212 -0
  6. package/development/stepper/step/step.component.js +1 -1
  7. package/development/stepper/step-label/step-label.component.d.ts.map +1 -1
  8. package/development/stepper/step-label/step-label.component.js +1 -1
  9. package/development/stepper/step-label.js +1 -1
  10. package/development/stepper/step.js +1 -1
  11. package/development/stepper/stepper/stepper.component.d.ts.map +1 -1
  12. package/development/stepper/stepper/stepper.component.js +1 -1
  13. package/development/stepper/stepper.js +1 -1
  14. package/development/stepper.component-BJC_4cep.js +497 -0
  15. package/development/stepper.js +3 -3
  16. package/development/stepper.pure.js +3 -3
  17. package/off-brand-theme.css +22 -0
  18. package/package.json +2 -2
  19. package/safety-theme.css +22 -0
  20. package/standard-theme.css +22 -0
  21. package/step-label.component-Cu_Hck4P.js +80 -0
  22. package/{step.component-CbfVfpi6.js → step.component-DY61vAFB.js} +1 -1
  23. package/stepper/step/step.component.js +1 -1
  24. package/stepper/step-label/step-label.component.js +1 -1
  25. package/stepper/step-label.js +1 -1
  26. package/stepper/step.js +1 -1
  27. package/stepper/stepper/stepper.component.js +1 -1
  28. package/stepper/stepper.js +1 -1
  29. package/{stepper.component-CrMknCZm.js → stepper.component-83cngpic.js} +6 -8
  30. package/stepper.js +3 -3
  31. package/stepper.pure.js +3 -3
  32. package/development/step-label.component-C_obpSzp.js +0 -298
  33. package/development/step.component-DsXAckYS.js +0 -220
  34. package/development/stepper.component-yAkgcauE.js +0 -508
  35. package/step-label.component-BYaPBTcl.js +0 -82
@@ -0,0 +1,497 @@
1
+ import { __esDecorate, __runInitializers } from "tslib";
2
+ import { css, html } from "lit";
3
+ import { property } from "lit/decorators.js";
4
+ import { SbbElement } from "./core/base-elements.js";
5
+ import { forceType } from "./core/decorators.js";
6
+ import { isLean } from "./core/dom.js";
7
+ import { boxSizingStyles } from "./core/styles.js";
8
+ import { getNextElementIndex, isArrowKeyPressed } from "./core/a11y.js";
9
+ import { IntersectionController } from "@lit-labs/observers/intersection-controller.js";
10
+ import { SbbMediaMatcherController, SbbMediaQueryBreakpointLargeAndAbove, SbbMediaQueryBreakpointSmallAndAbove, SbbMediaQueryBreakpointUltraAndAbove, SbbMediaQueryBreakpointZeroAndAbove } from "./core/controllers/media-matchers-controller.js";
11
+ //#region src/elements/stepper/stepper/stepper.scss?lit&inline
12
+ var stepper_default = css`:host {
13
+ --sbb-stepper-animation-duration: var(
14
+ --sbb-disable-animation-duration,
15
+ var(--sbb-animation-duration-6x)
16
+ );
17
+ display: block;
18
+ position: relative;
19
+ counter-reset: step-label;
20
+ }
21
+ @media (forced-colors: active) {
22
+ :host {
23
+ --sbb-stepper-marker-color: ButtonText;
24
+ }
25
+ }
26
+
27
+ :host(:is(:state(disable-animation),[state--disable-animation])) {
28
+ --sbb-disable-animation-duration: 0s;
29
+ }
30
+
31
+ :host([orientation=vertical]) {
32
+ --sbb-stepper-orientation: column;
33
+ }
34
+
35
+ .sbb-stepper__labels {
36
+ display: flex;
37
+ flex-direction: var(--sbb-stepper-orientation);
38
+ position: relative;
39
+ justify-content: start;
40
+ margin-block-end: var(--sbb-spacing-responsive-m);
41
+ }
42
+ .sbb-stepper__labels::before {
43
+ content: "";
44
+ position: absolute;
45
+ inset-inline-start: calc(var(--sbb-stepper-border-width) * -1);
46
+ background-color: var(--sbb-stepper-marker-color);
47
+ }
48
+ :host([orientation=horizontal]) .sbb-stepper__labels {
49
+ gap: var(--sbb-spacing-responsive-m);
50
+ padding-block-end: var(--sbb-spacing-fixed-4x);
51
+ border-block-end: var(--sbb-stepper-border-width) solid var(--sbb-border-color-4-inverted);
52
+ }
53
+ :host([orientation=horizontal]) .sbb-stepper__labels::before {
54
+ inset-block-end: calc(var(--sbb-stepper-border-width) * -1);
55
+ height: var(--sbb-stepper-marker-width);
56
+ width: var(--sbb-stepper-marker-size, 0);
57
+ transition: width var(--sbb-stepper-animation-duration) var(--sbb-animation-easing);
58
+ }
59
+ :host([orientation=vertical]) .sbb-stepper__labels {
60
+ padding-inline-start: var(--sbb-spacing-fixed-4x);
61
+ border-inline-start: var(--sbb-stepper-border-width) solid var(--sbb-border-color-4-inverted);
62
+ }
63
+ :host([orientation=vertical]) .sbb-stepper__labels::before {
64
+ inset-block-start: 0;
65
+ width: var(--sbb-stepper-marker-width);
66
+ height: var(--sbb-stepper-marker-size, 0);
67
+ transition: height var(--sbb-stepper-animation-duration) var(--sbb-animation-easing);
68
+ }
69
+
70
+ .sbb-stepper__steps {
71
+ position: relative;
72
+ }
73
+ :host([orientation=horizontal]) .sbb-stepper__steps {
74
+ height: var(--sbb-stepper-content-height);
75
+ transition: height var(--sbb-stepper-animation-duration) var(--sbb-animation-easing);
76
+ }
77
+
78
+ ::slotted(sbb-step-label)::before {
79
+ content: counter(step-label);
80
+ counter-increment: step-label;
81
+ }`;
82
+ //#endregion
83
+ //#region src/elements/stepper/stepper/stepper.component.ts
84
+ var DEBOUNCE_TIME = 150;
85
+ var breakpointMap = {
86
+ zero: SbbMediaQueryBreakpointZeroAndAbove,
87
+ small: SbbMediaQueryBreakpointSmallAndAbove,
88
+ large: SbbMediaQueryBreakpointLargeAndAbove,
89
+ ultra: SbbMediaQueryBreakpointUltraAndAbove
90
+ };
91
+ var SbbStepChangeEvent = class extends Event {
92
+ constructor(selectedIndex, previousIndex, selectedStep, previousStep) {
93
+ super("stepchange", {
94
+ bubbles: true,
95
+ composed: true
96
+ });
97
+ this.selectedIndex = selectedIndex;
98
+ this.previousIndex = previousIndex;
99
+ this.selectedStep = selectedStep;
100
+ this.previousStep = previousStep;
101
+ }
102
+ };
103
+ /**
104
+ * Provides a structured, step-by-step workflow for user interactions.
105
+ * @slot - Provide a `sbb-expansion-panel-header` and a `sbb-expansion-panel-content` to the stepper.
106
+ * @slot step-label - Use this slot to provide an `sbb-step-label`.
107
+ * @slot step - Use this slot to provide an `sbb-step`.
108
+ * @event {SbbStepChangeEvent} stepchange - Emits whenever a step was changed.
109
+ */
110
+ var SbbStepperElement = (() => {
111
+ let _classSuper = SbbElement;
112
+ let _instanceExtraInitializers = [];
113
+ let _linear_decorators;
114
+ let _linear_initializers = [];
115
+ let _linear_extraInitializers = [];
116
+ let _set_horizontalFrom_decorators;
117
+ let _orientation_decorators;
118
+ let _orientation_initializers = [];
119
+ let _orientation_extraInitializers = [];
120
+ let _size_decorators;
121
+ let _size_initializers = [];
122
+ let _size_extraInitializers = [];
123
+ let _set_selected_decorators;
124
+ let _set_selectedIndex_decorators;
125
+ return class SbbStepperElement extends _classSuper {
126
+ static {
127
+ const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
128
+ _linear_decorators = [forceType(), property({ type: Boolean })];
129
+ _set_horizontalFrom_decorators = [property({
130
+ attribute: "horizontal-from",
131
+ reflect: true
132
+ })];
133
+ _orientation_decorators = [property({ reflect: true })];
134
+ _size_decorators = [property({ reflect: true })];
135
+ _set_selected_decorators = [property({ attribute: false })];
136
+ _set_selectedIndex_decorators = [property({
137
+ attribute: "selected-index",
138
+ type: Number
139
+ })];
140
+ __esDecorate(this, null, _linear_decorators, {
141
+ kind: "accessor",
142
+ name: "linear",
143
+ static: false,
144
+ private: false,
145
+ access: {
146
+ has: (obj) => "linear" in obj,
147
+ get: (obj) => obj.linear,
148
+ set: (obj, value) => {
149
+ obj.linear = value;
150
+ }
151
+ },
152
+ metadata: _metadata
153
+ }, _linear_initializers, _linear_extraInitializers);
154
+ __esDecorate(this, null, _set_horizontalFrom_decorators, {
155
+ kind: "setter",
156
+ name: "horizontalFrom",
157
+ static: false,
158
+ private: false,
159
+ access: {
160
+ has: (obj) => "horizontalFrom" in obj,
161
+ set: (obj, value) => {
162
+ obj.horizontalFrom = value;
163
+ }
164
+ },
165
+ metadata: _metadata
166
+ }, null, _instanceExtraInitializers);
167
+ __esDecorate(this, null, _orientation_decorators, {
168
+ kind: "accessor",
169
+ name: "orientation",
170
+ static: false,
171
+ private: false,
172
+ access: {
173
+ has: (obj) => "orientation" in obj,
174
+ get: (obj) => obj.orientation,
175
+ set: (obj, value) => {
176
+ obj.orientation = value;
177
+ }
178
+ },
179
+ metadata: _metadata
180
+ }, _orientation_initializers, _orientation_extraInitializers);
181
+ __esDecorate(this, null, _size_decorators, {
182
+ kind: "accessor",
183
+ name: "size",
184
+ static: false,
185
+ private: false,
186
+ access: {
187
+ has: (obj) => "size" in obj,
188
+ get: (obj) => obj.size,
189
+ set: (obj, value) => {
190
+ obj.size = value;
191
+ }
192
+ },
193
+ metadata: _metadata
194
+ }, _size_initializers, _size_extraInitializers);
195
+ __esDecorate(this, null, _set_selected_decorators, {
196
+ kind: "setter",
197
+ name: "selected",
198
+ static: false,
199
+ private: false,
200
+ access: {
201
+ has: (obj) => "selected" in obj,
202
+ set: (obj, value) => {
203
+ obj.selected = value;
204
+ }
205
+ },
206
+ metadata: _metadata
207
+ }, null, _instanceExtraInitializers);
208
+ __esDecorate(this, null, _set_selectedIndex_decorators, {
209
+ kind: "setter",
210
+ name: "selectedIndex",
211
+ static: false,
212
+ private: false,
213
+ access: {
214
+ has: (obj) => "selectedIndex" in obj,
215
+ set: (obj, value) => {
216
+ obj.selectedIndex = value;
217
+ }
218
+ },
219
+ metadata: _metadata
220
+ }, null, _instanceExtraInitializers);
221
+ if (_metadata) Object.defineProperty(this, Symbol.metadata, {
222
+ enumerable: true,
223
+ configurable: true,
224
+ writable: true,
225
+ value: _metadata
226
+ });
227
+ }
228
+ static {
229
+ this.elementName = "sbb-stepper";
230
+ }
231
+ static {
232
+ this.styles = [boxSizingStyles, stepper_default];
233
+ }
234
+ static {
235
+ this.events = { stepchange: "stepchange" };
236
+ }
237
+ #linear_accessor_storage;
238
+ /** If set to true, only the current and previous labels can be clicked and selected. */
239
+ get linear() {
240
+ return this.#linear_accessor_storage;
241
+ }
242
+ set linear(value) {
243
+ this.#linear_accessor_storage = value;
244
+ }
245
+ /** Overrides the behavior of `orientation` property. */
246
+ set horizontalFrom(value) {
247
+ this._horizontalFrom = value && breakpointMap[value] ? value : null;
248
+ if (this._horizontalFrom && this._loaded) this._checkOrientation();
249
+ }
250
+ get horizontalFrom() {
251
+ return this._horizontalFrom;
252
+ }
253
+ #orientation_accessor_storage;
254
+ /** Steps orientation, either horizontal or vertical. */
255
+ get orientation() {
256
+ return this.#orientation_accessor_storage;
257
+ }
258
+ set orientation(value) {
259
+ this.#orientation_accessor_storage = value;
260
+ }
261
+ #size_accessor_storage;
262
+ /**
263
+ * Size variant, either s or m.
264
+ * @default 'm' / 's' (lean)
265
+ */
266
+ get size() {
267
+ return this.#size_accessor_storage;
268
+ }
269
+ set size(value) {
270
+ this.#size_accessor_storage = value;
271
+ }
272
+ /** The currently selected step. */
273
+ set selected(step) {
274
+ if (this._loaded) this._select(step);
275
+ this._requestedSelected = step;
276
+ }
277
+ get selected() {
278
+ return this.querySelector?.("sbb-step:is(:state(selected),[state--selected])") ?? null;
279
+ }
280
+ /** The currently selected step index. */
281
+ set selectedIndex(index) {
282
+ if (this._loaded && index !== null) this._select(this.steps[index]);
283
+ this._requestedSelectedIndex = index;
284
+ }
285
+ get selectedIndex() {
286
+ return this.selected ? this.steps.indexOf(this.selected) : null;
287
+ }
288
+ /** The steps of the stepper. */
289
+ get steps() {
290
+ const steps = [];
291
+ this.querySelectorAll?.("sbb-step").forEach((step) => {
292
+ customElements.upgrade(step);
293
+ steps.push(step);
294
+ });
295
+ return steps;
296
+ }
297
+ get _enabledSteps() {
298
+ return this.steps.filter((s) => {
299
+ if (s.label) {
300
+ customElements.upgrade(s.label);
301
+ return !s.label.disabled;
302
+ }
303
+ return false;
304
+ });
305
+ }
306
+ constructor() {
307
+ super();
308
+ /**
309
+ * If the sbb-stepper is used in a sbb-dialog, the marker on the selected element will not appear,
310
+ * because the calculations are done when the dialog is closed, so the marker has a width of 0;
311
+ * the same happens for the stepper height.
312
+ * We need to recalculate it when the element becomes visible.
313
+ */
314
+ this._observer = (__runInitializers(this, _instanceExtraInitializers), new IntersectionController(this, {
315
+ target: null,
316
+ callback: (entries) => {
317
+ entries.forEach((e) => {
318
+ if (e.intersectionRatio > 0) {
319
+ this._setStepperHeight(this.selected);
320
+ this._setMarkerSize();
321
+ }
322
+ });
323
+ }
324
+ }));
325
+ this.#linear_accessor_storage = __runInitializers(this, _linear_initializers, false);
326
+ this._horizontalFrom = (__runInitializers(this, _linear_extraInitializers), null);
327
+ this.#orientation_accessor_storage = __runInitializers(this, _orientation_initializers, "horizontal");
328
+ this.#size_accessor_storage = (__runInitializers(this, _orientation_extraInitializers), __runInitializers(this, _size_initializers, isLean() ? "s" : "m"));
329
+ this._requestedSelected = (__runInitializers(this, _size_extraInitializers), null);
330
+ this._requestedSelectedIndex = null;
331
+ this._loaded = false;
332
+ this._resizeObserverTimeout = null;
333
+ this._mediaMatcher = new SbbMediaMatcherController(this, {});
334
+ this._onStepperResize = () => {
335
+ this._checkOrientation();
336
+ this._setStepperHeight(this.selected);
337
+ clearTimeout(this._resizeObserverTimeout);
338
+ this.internals.states.add("disable-animation");
339
+ this._resizeObserverTimeout = setTimeout(() => this.internals.states.delete("disable-animation"), DEBOUNCE_TIME);
340
+ };
341
+ this.addEventListener?.("keydown", (e) => this._handleKeyDown(e));
342
+ this.addEventListener?.("resizechange", (e) => this._onSelectedStepResize(e));
343
+ }
344
+ /** Selects the next step. */
345
+ next() {
346
+ if (this.selectedIndex !== null) this._select(this.steps[this.selectedIndex + 1]);
347
+ }
348
+ /** Selects the previous step. */
349
+ previous() {
350
+ if (this.selectedIndex !== null) this._select(this.steps[this.selectedIndex - 1]);
351
+ }
352
+ /** Resets the form in which the stepper is nested or every form of each step, if any. */
353
+ reset() {
354
+ const closestForm = this.closest("form");
355
+ if (closestForm) closestForm.reset();
356
+ else this.querySelectorAll("form").forEach((form) => form.reset());
357
+ this.selectedIndex = 0;
358
+ if (document.activeElement?.closest("sbb-stepper") === this) this.selected?.label?.focus();
359
+ }
360
+ _isSelectable(step) {
361
+ if (step) {
362
+ customElements.upgrade(step);
363
+ if (step.label) {
364
+ customElements.upgrade(step.label);
365
+ if (!this.linear && step.label.disabled) return false;
366
+ }
367
+ return true;
368
+ } else return false;
369
+ }
370
+ _select(step) {
371
+ if (!this._isSelectable(step) || step === this.selected) return;
372
+ const currentIndex = this.selectedIndex;
373
+ const currentStep = this.selected;
374
+ const validatePayload = {
375
+ currentIndex,
376
+ currentStep,
377
+ nextIndex: this.selectedIndex !== null ? this.selectedIndex + 1 : null,
378
+ nextStep: this.selectedIndex !== null ? this.steps[this.selectedIndex + 1] : null
379
+ };
380
+ if (this.selected && !this.selected.validate(validatePayload)) return;
381
+ this.selected?.deselect();
382
+ step.select();
383
+ /** @internal only to provide double entry in docs. It is a public event! */
384
+ this.dispatchEvent(new SbbStepChangeEvent(this.selectedIndex, currentIndex, this.selected, currentStep));
385
+ this._setMarkerSize();
386
+ this._setStepperHeight(step);
387
+ this._configureLinearMode();
388
+ if (document.activeElement?.closest("sbb-stepper") === this) this.selected?.label?.focus();
389
+ }
390
+ _setMarkerSize() {
391
+ if (!this._loaded || !this.selected || this.selectedIndex === void 0 || !this.selected.label) return;
392
+ const offset = this.orientation === "horizontal" ? this.selected.label.offsetLeft + this.selected.label.offsetWidth : this._calculateLabelOffsetTop();
393
+ this.style.setProperty("--sbb-stepper-marker-size", `${offset}px`);
394
+ }
395
+ /**
396
+ * Sets the stepper height based on the height of the provided step.
397
+ */
398
+ _setStepperHeight(step) {
399
+ if (step && step.shadowRoot) {
400
+ const innerElement = step.shadowRoot.querySelector(".sbb-step");
401
+ if (innerElement) this.style?.setProperty("--sbb-stepper-content-height", `${innerElement.offsetHeight}px`);
402
+ }
403
+ }
404
+ _calculateLabelOffsetTop() {
405
+ if (this.selectedIndex === null) return;
406
+ let offset = 0;
407
+ for (const step of this.steps) {
408
+ if (step === this.selected) break;
409
+ offset = step.label.offsetHeight + offset;
410
+ }
411
+ return offset + this.selected.label.offsetHeight + parseFloat(getComputedStyle(this).getPropertyValue("--sbb-spacing-fixed-6x")) * 16 * this.selectedIndex;
412
+ }
413
+ _onSelectedStepResize(e) {
414
+ this._setStepperHeight(e.target);
415
+ }
416
+ _configure() {
417
+ this.steps.forEach((step, i, array) => {
418
+ step.configure(this._loaded);
419
+ step.label?.configure(i + 1, array.length, this._loaded);
420
+ });
421
+ this._select(this.selected || this._enabledSteps[0]);
422
+ }
423
+ _updateLabels() {
424
+ this.steps.forEach((step) => {
425
+ step.slot = this.orientation === "horizontal" ? "step" : "step-label";
426
+ });
427
+ }
428
+ _checkOrientation() {
429
+ if (this.horizontalFrom) {
430
+ this.orientation = this._mediaMatcher.matches(breakpointMap[this.horizontalFrom]) ? "horizontal" : "vertical";
431
+ this._updateLabels();
432
+ }
433
+ setTimeout(() => this._setMarkerSize(), 0);
434
+ }
435
+ _configureLinearMode() {
436
+ this.steps.forEach((step, index) => {
437
+ if (!step.label) return;
438
+ customElements.upgrade(step.label);
439
+ step.label.disable(this.linear && index > this.selectedIndex || !this.linear && step.label.matches(":is(:state(user-disabled),[state--user-disabled])"));
440
+ });
441
+ }
442
+ connectedCallback() {
443
+ super.connectedCallback();
444
+ window.addEventListener("resize", this._onStepperResize, { passive: true });
445
+ this.toggleState("disable-animation", !this._loaded);
446
+ }
447
+ disconnectedCallback() {
448
+ super.disconnectedCallback();
449
+ window.removeEventListener("resize", this._onStepperResize);
450
+ }
451
+ firstUpdated(changedProperties) {
452
+ super.firstUpdated(changedProperties);
453
+ this.updateComplete.then(() => {
454
+ this._loaded = true;
455
+ this._configure();
456
+ if (this._requestedSelected && this.steps.indexOf(this._requestedSelected) !== -1) this.selectedIndex = this.steps.indexOf(this._requestedSelected);
457
+ else if (this._requestedSelectedIndex) this.selectedIndex = this._requestedSelectedIndex;
458
+ else this.selectedIndex = 0;
459
+ this._observer.observe(this);
460
+ this._checkOrientation();
461
+ setTimeout(() => this.internals.states.delete("disable-animation"), DEBOUNCE_TIME);
462
+ });
463
+ }
464
+ willUpdate(changedProperties) {
465
+ super.willUpdate(changedProperties);
466
+ if (changedProperties.has("orientation") && !this.horizontalFrom) {
467
+ this._updateLabels();
468
+ this._setMarkerSize();
469
+ }
470
+ if (changedProperties.has("linear") && this._loaded) this._configureLinearMode();
471
+ if (changedProperties.has("size")) this._setMarkerSize();
472
+ }
473
+ _handleKeyDown(evt) {
474
+ const enabledSteps = this._enabledSteps;
475
+ if (!enabledSteps || evt.target !== this && evt.target.parentElement !== this) return;
476
+ if (isArrowKeyPressed(evt)) {
477
+ const nextIndex = getNextElementIndex(evt, enabledSteps.indexOf(this.selected), enabledSteps.length);
478
+ this._select(enabledSteps[nextIndex]);
479
+ evt.preventDefault();
480
+ }
481
+ }
482
+ render() {
483
+ return html`
484
+ <div class="sbb-stepper__labels" role="tablist">
485
+ <slot name="step-label" @slotchange=${this._configure}></slot>
486
+ </div>
487
+ <div class="sbb-stepper__steps">
488
+ <slot name="step" @slotchange=${this._configure}></slot>
489
+ </div>
490
+ `;
491
+ }
492
+ };
493
+ })();
494
+ //#endregion
495
+ export { SbbStepperElement as n, SbbStepChangeEvent as t };
496
+
497
+ //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQtQkpDXzRjZXAuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL3N0ZXBwZXIvc3RlcHBlci9zdGVwcGVyLnNjc3M/bGl0JmlubGluZSIsIi4uLy4uLy4uL3NyYy9lbGVtZW50cy9zdGVwcGVyL3N0ZXBwZXIvc3RlcHBlci5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiQHVzZSAnLi4vLi4vY29yZS9zdHlsZXMnIGFzIHNiYjtcblxuOmhvc3Qge1xuICAtLXNiYi1zdGVwcGVyLWFuaW1hdGlvbi1kdXJhdGlvbjogdmFyKFxuICAgIC0tc2JiLWRpc2FibGUtYW5pbWF0aW9uLWR1cmF0aW9uLFxuICAgIHZhcigtLXNiYi1hbmltYXRpb24tZHVyYXRpb24tNngpXG4gICk7XG5cbiAgZGlzcGxheTogYmxvY2s7XG4gIHBvc2l0aW9uOiByZWxhdGl2ZTtcbiAgY291bnRlci1yZXNldDogc3RlcC1sYWJlbDtcblxuICBAaW5jbHVkZSBzYmIuaWYtZm9yY2VkLWNvbG9ycyB7XG4gICAgLS1zYmItc3RlcHBlci1tYXJrZXItY29sb3I6IEJ1dHRvblRleHQ7XG4gIH1cbn1cblxuOmhvc3QoOnN0YXRlKGRpc2FibGUtYW5pbWF0aW9uKSkge1xuICBAaW5jbHVkZSBzYmIuZGlzYWJsZS1hbmltYXRpb247XG59XG5cbjpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXSkge1xuICAtLXNiYi1zdGVwcGVyLW9yaWVudGF0aW9uOiBjb2x1bW47XG59XG5cbi5zYmItc3RlcHBlcl9fbGFiZWxzIHtcbiAgZGlzcGxheTogZmxleDtcbiAgZmxleC1kaXJlY3Rpb246IHZhcigtLXNiYi1zdGVwcGVyLW9yaWVudGF0aW9uKTtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuICBqdXN0aWZ5LWNvbnRlbnQ6IHN0YXJ0O1xuICBtYXJnaW4tYmxvY2stZW5kOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLW0pO1xuXG4gICY6OmJlZm9yZSB7XG4gICAgY29udGVudDogJyc7XG4gICAgcG9zaXRpb246IGFic29sdXRlO1xuICAgIGluc2V0LWlubGluZS1zdGFydDogY2FsYyh2YXIoLS1zYmItc3RlcHBlci1ib3JkZXItd2lkdGgpICogLTEpO1xuICAgIGJhY2tncm91bmQtY29sb3I6IHZhcigtLXNiYi1zdGVwcGVyLW1hcmtlci1jb2xvcik7XG4gIH1cblxuICA6aG9zdChbb3JpZW50YXRpb249J2hvcml6b250YWwnXSkgJiB7XG4gICAgZ2FwOiB2YXIoLS1zYmItc3BhY2luZy1yZXNwb25zaXZlLW0pO1xuICAgIHBhZGRpbmctYmxvY2stZW5kOiB2YXIoLS1zYmItc3BhY2luZy1maXhlZC00eCk7XG4gICAgYm9yZGVyLWJsb2NrLWVuZDogdmFyKC0tc2JiLXN0ZXBwZXItYm9yZGVyLXdpZHRoKSBzb2xpZCB2YXIoLS1zYmItYm9yZGVyLWNvbG9yLTQtaW52ZXJ0ZWQpO1xuXG4gICAgJjo6YmVmb3JlIHtcbiAgICAgIGluc2V0LWJsb2NrLWVuZDogY2FsYyh2YXIoLS1zYmItc3RlcHBlci1ib3JkZXItd2lkdGgpICogLTEpO1xuICAgICAgaGVpZ2h0OiB2YXIoLS1zYmItc3RlcHBlci1tYXJrZXItd2lkdGgpO1xuICAgICAgd2lkdGg6IHZhcigtLXNiYi1zdGVwcGVyLW1hcmtlci1zaXplLCAwKTtcbiAgICAgIHRyYW5zaXRpb246IHdpZHRoIHZhcigtLXNiYi1zdGVwcGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpO1xuICAgIH1cbiAgfVxuXG4gIDpob3N0KFtvcmllbnRhdGlvbj0ndmVydGljYWwnXSkgJiB7XG4gICAgcGFkZGluZy1pbmxpbmUtc3RhcnQ6IHZhcigtLXNiYi1zcGFjaW5nLWZpeGVkLTR4KTtcbiAgICBib3JkZXItaW5saW5lLXN0YXJ0OiB2YXIoLS1zYmItc3RlcHBlci1ib3JkZXItd2lkdGgpIHNvbGlkIHZhcigtLXNiYi1ib3JkZXItY29sb3ItNC1pbnZlcnRlZCk7XG5cbiAgICAmOjpiZWZvcmUge1xuICAgICAgaW5zZXQtYmxvY2stc3RhcnQ6IDA7XG4gICAgICB3aWR0aDogdmFyKC0tc2JiLXN0ZXBwZXItbWFya2VyLXdpZHRoKTtcbiAgICAgIGhlaWdodDogdmFyKC0tc2JiLXN0ZXBwZXItbWFya2VyLXNpemUsIDApO1xuICAgICAgdHJhbnNpdGlvbjogaGVpZ2h0IHZhcigtLXNiYi1zdGVwcGVyLWFuaW1hdGlvbi1kdXJhdGlvbikgdmFyKC0tc2JiLWFuaW1hdGlvbi1lYXNpbmcpO1xuICAgIH1cbiAgfVxufVxuXG4uc2JiLXN0ZXBwZXJfX3N0ZXBzIHtcbiAgcG9zaXRpb246IHJlbGF0aXZlO1xuXG4gIDpob3N0KFtvcmllbnRhdGlvbj0naG9yaXpvbnRhbCddKSAmIHtcbiAgICBoZWlnaHQ6IHZhcigtLXNiYi1zdGVwcGVyLWNvbnRlbnQtaGVpZ2h0KTtcbiAgICB0cmFuc2l0aW9uOiBoZWlnaHQgdmFyKC0tc2JiLXN0ZXBwZXItYW5pbWF0aW9uLWR1cmF0aW9uKSB2YXIoLS1zYmItYW5pbWF0aW9uLWVhc2luZyk7XG4gIH1cbn1cblxuOjpzbG90dGVkKHNiYi1zdGVwLWxhYmVsKTo6YmVmb3JlIHtcbiAgY29udGVudDogY291bnRlcihzdGVwLWxhYmVsKTtcbiAgY291bnRlci1pbmNyZW1lbnQ6IHN0ZXAtbGFiZWw7XG59XG4iLCJpbXBvcnQgeyBJbnRlcnNlY3Rpb25Db250cm9sbGVyIH0gZnJvbSAnQGxpdC1sYWJzL29ic2VydmVycy9pbnRlcnNlY3Rpb24tY29udHJvbGxlci5qcyc7XG5pbXBvcnQgeyB0eXBlIENTU1Jlc3VsdEdyb3VwLCBodG1sLCB0eXBlIFByb3BlcnR5VmFsdWVzLCB0eXBlIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IHByb3BlcnR5IH0gZnJvbSAnbGl0L2RlY29yYXRvcnMuanMnO1xuXG5pbXBvcnQgeyBnZXROZXh0RWxlbWVudEluZGV4LCBpc0Fycm93S2V5UHJlc3NlZCB9IGZyb20gJy4uLy4uL2NvcmUvYTExeS50cyc7XG5pbXBvcnQgeyBTYmJFbGVtZW50IH0gZnJvbSAnLi4vLi4vY29yZS9iYXNlLWVsZW1lbnRzLnRzJztcbmltcG9ydCB7XG4gIFNiYk1lZGlhTWF0Y2hlckNvbnRyb2xsZXIsXG4gIFNiYk1lZGlhUXVlcnlCcmVha3BvaW50TGFyZ2VBbmRBYm92ZSxcbiAgU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEFib3ZlLFxuICBTYmJNZWRpYVF1ZXJ5QnJlYWtwb2ludFVsdHJhQW5kQWJvdmUsXG4gIFNiYk1lZGlhUXVlcnlCcmVha3BvaW50WmVyb0FuZEFib3ZlLFxufSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzL21lZGlhLW1hdGNoZXJzLWNvbnRyb2xsZXIudHMnO1xuaW1wb3J0IHsgZm9yY2VUeXBlIH0gZnJvbSAnLi4vLi4vY29yZS9kZWNvcmF0b3JzLnRzJztcbmltcG9ydCB7IGlzTGVhbiB9IGZyb20gJy4uLy4uL2NvcmUvZG9tLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiSG9yaXpvbnRhbEZyb20sIFNiYk9yaWVudGF0aW9uIH0gZnJvbSAnLi4vLi4vY29yZS9pbnRlcmZhY2VzLnRzJztcbmltcG9ydCB7IGJveFNpemluZ1N0eWxlcyB9IGZyb20gJy4uLy4uL2NvcmUvc3R5bGVzLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiU3RlcEVsZW1lbnQsIFNiYlN0ZXBWYWxpZGF0ZUV2ZW50RGV0YWlscyB9IGZyb20gJy4uL3N0ZXAvc3RlcC5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9zdGVwcGVyLnNjc3M/bGl0JmlubGluZSc7XG5cbmNvbnN0IERFQk9VTkNFX1RJTUUgPSAxNTA7XG5cbmNvbnN0IGJyZWFrcG9pbnRNYXA6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIHplcm86IFNiYk1lZGlhUXVlcnlCcmVha3BvaW50WmVyb0FuZEFib3ZlLFxuICBzbWFsbDogU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRTbWFsbEFuZEFib3ZlLFxuICBsYXJnZTogU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRMYXJnZUFuZEFib3ZlLFxuICB1bHRyYTogU2JiTWVkaWFRdWVyeUJyZWFrcG9pbnRVbHRyYUFuZEFib3ZlLFxufTtcblxuZXhwb3J0IGNsYXNzIFNiYlN0ZXBDaGFuZ2VFdmVudCBleHRlbmRzIEV2ZW50IHtcbiAgLyoqIFRoZSBpbmRleCBvZiB0aGUgbmV3bHkgc2VsZWN0ZWQgc3RlcC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkSW5kZXg6IG51bWJlciB8IG51bGw7XG5cbiAgLyoqIFRoZSBpbmRleCBvZiB0aGUgcHJldmlvdXNseSBzZWxlY3RlZCBzdGVwLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJldmlvdXNJbmRleDogbnVtYmVyIHwgbnVsbDtcblxuICAvKiogVGhlIG5ld2x5IHNlbGVjdGVkIHN0ZXAgZWxlbWVudC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHNlbGVjdGVkU3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsO1xuXG4gIC8qKiBUaGUgcHJldmlvdXNseSBzZWxlY3RlZCBzdGVwIGVsZW1lbnQuICovXG4gIHB1YmxpYyByZWFkb25seSBwcmV2aW91c1N0ZXA6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoXG4gICAgc2VsZWN0ZWRJbmRleDogbnVtYmVyIHwgbnVsbCxcbiAgICBwcmV2aW91c0luZGV4OiBudW1iZXIgfCBudWxsLFxuICAgIHNlbGVjdGVkU3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsLFxuICAgIHByZXZpb3VzU3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsLFxuICApIHtcbiAgICBzdXBlcignc3RlcGNoYW5nZScsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSk7XG4gICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gc2VsZWN0ZWRJbmRleDtcbiAgICB0aGlzLnByZXZpb3VzSW5kZXggPSBwcmV2aW91c0luZGV4O1xuICAgIHRoaXMuc2VsZWN0ZWRTdGVwID0gc2VsZWN0ZWRTdGVwO1xuICAgIHRoaXMucHJldmlvdXNTdGVwID0gcHJldmlvdXNTdGVwO1xuICB9XG59XG4vKipcbiAqIFByb3ZpZGVzIGEgc3RydWN0dXJlZCwgc3RlcC1ieS1zdGVwIHdvcmtmbG93IGZvciB1c2VyIGludGVyYWN0aW9ucy5cbiAqIEBzbG90IC0gUHJvdmlkZSBhIGBzYmItZXhwYW5zaW9uLXBhbmVsLWhlYWRlcmAgYW5kIGEgYHNiYi1leHBhbnNpb24tcGFuZWwtY29udGVudGAgdG8gdGhlIHN0ZXBwZXIuXG4gKiBAc2xvdCBzdGVwLWxhYmVsIC0gVXNlIHRoaXMgc2xvdCB0byBwcm92aWRlIGFuIGBzYmItc3RlcC1sYWJlbGAuXG4gKiBAc2xvdCBzdGVwIC0gVXNlIHRoaXMgc2xvdCB0byBwcm92aWRlIGFuIGBzYmItc3RlcGAuXG4gKiBAZXZlbnQge1NiYlN0ZXBDaGFuZ2VFdmVudH0gc3RlcGNoYW5nZSAtIEVtaXRzIHdoZW5ldmVyIGEgc3RlcCB3YXMgY2hhbmdlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNiYlN0ZXBwZXJFbGVtZW50IGV4dGVuZHMgU2JiRWxlbWVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgcmVhZG9ubHkgZWxlbWVudE5hbWU6IHN0cmluZyA9ICdzYmItc3RlcHBlcic7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHN0eWxlXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgc3RlcGNoYW5nZTogJ3N0ZXBjaGFuZ2UnLFxuICB9IGFzIGNvbnN0O1xuXG4gIC8qKlxuICAgKiBJZiB0aGUgc2JiLXN0ZXBwZXIgaXMgdXNlZCBpbiBhIHNiYi1kaWFsb2csIHRoZSBtYXJrZXIgb24gdGhlIHNlbGVjdGVkIGVsZW1lbnQgd2lsbCBub3QgYXBwZWFyLFxuICAgKiBiZWNhdXNlIHRoZSBjYWxjdWxhdGlvbnMgYXJlIGRvbmUgd2hlbiB0aGUgZGlhbG9nIGlzIGNsb3NlZCwgc28gdGhlIG1hcmtlciBoYXMgYSB3aWR0aCBvZiAwO1xuICAgKiB0aGUgc2FtZSBoYXBwZW5zIGZvciB0aGUgc3RlcHBlciBoZWlnaHQuXG4gICAqIFdlIG5lZWQgdG8gcmVjYWxjdWxhdGUgaXQgd2hlbiB0aGUgZWxlbWVudCBiZWNvbWVzIHZpc2libGUuXG4gICAqL1xuICBwcml2YXRlIF9vYnNlcnZlciA9IG5ldyBJbnRlcnNlY3Rpb25Db250cm9sbGVyKHRoaXMsIHtcbiAgICB0YXJnZXQ6IG51bGwsXG4gICAgY2FsbGJhY2s6IChlbnRyaWVzKSA9PiB7XG4gICAgICBlbnRyaWVzLmZvckVhY2goKGUpID0+IHtcbiAgICAgICAgaWYgKGUuaW50ZXJzZWN0aW9uUmF0aW8gPiAwKSB7XG4gICAgICAgICAgdGhpcy5fc2V0U3RlcHBlckhlaWdodCh0aGlzLnNlbGVjdGVkKTtcbiAgICAgICAgICB0aGlzLl9zZXRNYXJrZXJTaXplKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0sXG4gIH0pO1xuXG4gIC8qKiBJZiBzZXQgdG8gdHJ1ZSwgb25seSB0aGUgY3VycmVudCBhbmQgcHJldmlvdXMgbGFiZWxzIGNhbiBiZSBjbGlja2VkIGFuZCBzZWxlY3RlZC4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFjY2Vzc29yIGxpbmVhcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKiBPdmVycmlkZXMgdGhlIGJlaGF2aW9yIG9mIGBvcmllbnRhdGlvbmAgcHJvcGVydHkuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hvcml6b250YWwtZnJvbScsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIHNldCBob3Jpem9udGFsRnJvbSh2YWx1ZTogU2JiSG9yaXpvbnRhbEZyb20gfCBudWxsKSB7XG4gICAgdGhpcy5faG9yaXpvbnRhbEZyb20gPSB2YWx1ZSAmJiBicmVha3BvaW50TWFwW3ZhbHVlXSA/IHZhbHVlIDogbnVsbDtcbiAgICBpZiAodGhpcy5faG9yaXpvbnRhbEZyb20gJiYgdGhpcy5fbG9hZGVkKSB7XG4gICAgICB0aGlzLl9jaGVja09yaWVudGF0aW9uKCk7XG4gICAgfVxuICB9XG4gIHB1YmxpYyBnZXQgaG9yaXpvbnRhbEZyb20oKTogU2JiSG9yaXpvbnRhbEZyb20gfCBudWxsIHtcbiAgICByZXR1cm4gdGhpcy5faG9yaXpvbnRhbEZyb207XG4gIH1cbiAgcHJpdmF0ZSBfaG9yaXpvbnRhbEZyb206IFNiYkhvcml6b250YWxGcm9tIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFN0ZXBzIG9yaWVudGF0aW9uLCBlaXRoZXIgaG9yaXpvbnRhbCBvciB2ZXJ0aWNhbC4gKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgYWNjZXNzb3Igb3JpZW50YXRpb246IFNiYk9yaWVudGF0aW9uID0gJ2hvcml6b250YWwnO1xuXG4gIC8qKlxuICAgKiBTaXplIHZhcmlhbnQsIGVpdGhlciBzIG9yIG0uXG4gICAqIEBkZWZhdWx0ICdtJyAvICdzJyAobGVhbilcbiAgICovXG4gIEBwcm9wZXJ0eSh7IHJlZmxlY3Q6IHRydWUgfSkgcHVibGljIGFjY2Vzc29yIHNpemU6ICdzJyB8ICdtJyA9IGlzTGVhbigpID8gJ3MnIDogJ20nO1xuXG4gIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIHN0ZXAuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgcHVibGljIHNldCBzZWxlY3RlZChzdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5fbG9hZGVkKSB7XG4gICAgICB0aGlzLl9zZWxlY3Qoc3RlcCk7XG4gICAgfVxuICAgIHRoaXMuX3JlcXVlc3RlZFNlbGVjdGVkID0gc3RlcDtcbiAgfVxuICBwdWJsaWMgZ2V0IHNlbGVjdGVkKCk6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMucXVlcnlTZWxlY3Rvcj8uPFNiYlN0ZXBFbGVtZW50Pignc2JiLXN0ZXA6c3RhdGUoc2VsZWN0ZWQpJykgPz8gbnVsbDtcbiAgfVxuICBwcml2YXRlIF9yZXF1ZXN0ZWRTZWxlY3RlZDogU2JiU3RlcEVsZW1lbnQgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhlIGN1cnJlbnRseSBzZWxlY3RlZCBzdGVwIGluZGV4LiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdzZWxlY3RlZC1pbmRleCcsIHR5cGU6IE51bWJlciB9KVxuICBwdWJsaWMgc2V0IHNlbGVjdGVkSW5kZXgoaW5kZXg6IG51bWJlciB8IG51bGwpIHtcbiAgICBpZiAodGhpcy5fbG9hZGVkICYmIGluZGV4ICE9PSBudWxsKSB7XG4gICAgICB0aGlzLl9zZWxlY3QodGhpcy5zdGVwc1tpbmRleF0pO1xuICAgIH1cbiAgICB0aGlzLl9yZXF1ZXN0ZWRTZWxlY3RlZEluZGV4ID0gaW5kZXg7XG4gIH1cbiAgcHVibGljIGdldCBzZWxlY3RlZEluZGV4KCk6IG51bWJlciB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkID8gdGhpcy5zdGVwcy5pbmRleE9mKHRoaXMuc2VsZWN0ZWQpIDogbnVsbDtcbiAgfVxuICBwcml2YXRlIF9yZXF1ZXN0ZWRTZWxlY3RlZEluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAvKiogVGhlIHN0ZXBzIG9mIHRoZSBzdGVwcGVyLiAqL1xuICBwdWJsaWMgZ2V0IHN0ZXBzKCk6IFNiYlN0ZXBFbGVtZW50W10ge1xuICAgIGNvbnN0IHN0ZXBzOiBTYmJTdGVwRWxlbWVudFtdID0gW107XG4gICAgdGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ3NiYi1zdGVwJykuZm9yRWFjaCgoc3RlcCkgPT4ge1xuICAgICAgY3VzdG9tRWxlbWVudHMudXBncmFkZShzdGVwKTtcbiAgICAgIHN0ZXBzLnB1c2goc3RlcCk7XG4gICAgfSk7XG4gICAgcmV0dXJuIHN0ZXBzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2VuYWJsZWRTdGVwcygpOiBTYmJTdGVwRWxlbWVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5zdGVwcy5maWx0ZXIoKHMpID0+IHtcbiAgICAgIGlmIChzLmxhYmVsKSB7XG4gICAgICAgIGN1c3RvbUVsZW1lbnRzLnVwZ3JhZGUocy5sYWJlbCk7XG4gICAgICAgIHJldHVybiAhcy5sYWJlbC5kaXNhYmxlZDtcbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2xvYWRlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9yZXNpemVPYnNlcnZlclRpbWVvdXQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgX21lZGlhTWF0Y2hlciA9IG5ldyBTYmJNZWRpYU1hdGNoZXJDb250cm9sbGVyKHRoaXMsIHt9KTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/Ligna2V5ZG93bicsIChlKSA9PiB0aGlzLl9oYW5kbGVLZXlEb3duKGUpKTtcbiAgICB0aGlzLmFkZEV2ZW50TGlzdGVuZXI/LigncmVzaXplY2hhbmdlJywgKGU6IEV2ZW50KSA9PiB0aGlzLl9vblNlbGVjdGVkU3RlcFJlc2l6ZShlKSk7XG4gIH1cblxuICAvKiogU2VsZWN0cyB0aGUgbmV4dCBzdGVwLiAqL1xuICBwdWJsaWMgbmV4dCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEluZGV4ICE9PSBudWxsKSB7XG4gICAgICB0aGlzLl9zZWxlY3QodGhpcy5zdGVwc1t0aGlzLnNlbGVjdGVkSW5kZXggKyAxXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFNlbGVjdHMgdGhlIHByZXZpb3VzIHN0ZXAuICovXG4gIHB1YmxpYyBwcmV2aW91cygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEluZGV4ICE9PSBudWxsKSB7XG4gICAgICB0aGlzLl9zZWxlY3QodGhpcy5zdGVwc1t0aGlzLnNlbGVjdGVkSW5kZXggLSAxXSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJlc2V0cyB0aGUgZm9ybSBpbiB3aGljaCB0aGUgc3RlcHBlciBpcyBuZXN0ZWQgb3IgZXZlcnkgZm9ybSBvZiBlYWNoIHN0ZXAsIGlmIGFueS4gKi9cbiAgcHVibGljIHJlc2V0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNsb3Nlc3RGb3JtID0gdGhpcy5jbG9zZXN0KCdmb3JtJyk7XG4gICAgaWYgKGNsb3Nlc3RGb3JtKSB7XG4gICAgICBjbG9zZXN0Rm9ybS5yZXNldCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnF1ZXJ5U2VsZWN0b3JBbGwoJ2Zvcm0nKS5mb3JFYWNoKChmb3JtKSA9PiBmb3JtLnJlc2V0KCkpO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSAwO1xuICAgIC8vIEluIGNhc2UgdGhlIGZvY3VzIGlzIGN1cnJlbnRseSBpbnNpZGUgdGhlIHN0ZXBwZXIsIHdlIHJlc2V0IHRoZSBmb2N1cyB0byB0aGUgZmlyc3Qvc2VsZWN0ZWQgc3RlcCBsYWJlbC5cbiAgICBpZiAoZG9jdW1lbnQuYWN0aXZlRWxlbWVudD8uY2xvc2VzdCgnc2JiLXN0ZXBwZXInKSA9PT0gdGhpcykge1xuICAgICAgdGhpcy5zZWxlY3RlZD8ubGFiZWw/LmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaXNTZWxlY3RhYmxlKHN0ZXA6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCk6IHN0ZXAgaXMgU2JiU3RlcEVsZW1lbnQge1xuICAgIGlmIChzdGVwKSB7XG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKHN0ZXApO1xuICAgICAgaWYgKHN0ZXAubGFiZWwpIHtcbiAgICAgICAgY3VzdG9tRWxlbWVudHMudXBncmFkZShzdGVwLmxhYmVsKTtcbiAgICAgICAgaWYgKCF0aGlzLmxpbmVhciAmJiBzdGVwLmxhYmVsLmRpc2FibGVkKSB7XG4gICAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NlbGVjdChzdGVwOiBTYmJTdGVwRWxlbWVudCB8IG51bGwpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lzU2VsZWN0YWJsZShzdGVwKSB8fCBzdGVwID09PSB0aGlzLnNlbGVjdGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IGN1cnJlbnRJbmRleCA9IHRoaXMuc2VsZWN0ZWRJbmRleDtcbiAgICBjb25zdCBjdXJyZW50U3RlcCA9IHRoaXMuc2VsZWN0ZWQ7XG4gICAgY29uc3QgdmFsaWRhdGVQYXlsb2FkOiBTYmJTdGVwVmFsaWRhdGVFdmVudERldGFpbHMgPSB7XG4gICAgICBjdXJyZW50SW5kZXgsXG4gICAgICBjdXJyZW50U3RlcCxcbiAgICAgIG5leHRJbmRleDogdGhpcy5zZWxlY3RlZEluZGV4ICE9PSBudWxsID8gdGhpcy5zZWxlY3RlZEluZGV4ICsgMSA6IG51bGwsXG4gICAgICBuZXh0U3RlcDogdGhpcy5zZWxlY3RlZEluZGV4ICE9PSBudWxsID8gdGhpcy5zdGVwc1t0aGlzLnNlbGVjdGVkSW5kZXggKyAxXSA6IG51bGwsXG4gICAgfTtcblxuICAgIGlmICh0aGlzLnNlbGVjdGVkICYmICF0aGlzLnNlbGVjdGVkLnZhbGlkYXRlKHZhbGlkYXRlUGF5bG9hZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5zZWxlY3RlZDtcbiAgICBjdXJyZW50Py5kZXNlbGVjdCgpO1xuICAgIHN0ZXAuc2VsZWN0KCk7XG5cbiAgICAvKiogQGludGVybmFsIG9ubHkgdG8gcHJvdmlkZSBkb3VibGUgZW50cnkgaW4gZG9jcy4gSXQgaXMgYSBwdWJsaWMgZXZlbnQhICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IFNiYlN0ZXBDaGFuZ2VFdmVudCh0aGlzLnNlbGVjdGVkSW5kZXgsIGN1cnJlbnRJbmRleCwgdGhpcy5zZWxlY3RlZCwgY3VycmVudFN0ZXApLFxuICAgICk7XG5cbiAgICB0aGlzLl9zZXRNYXJrZXJTaXplKCk7XG4gICAgdGhpcy5fc2V0U3RlcHBlckhlaWdodChzdGVwKTtcbiAgICB0aGlzLl9jb25maWd1cmVMaW5lYXJNb2RlKCk7XG4gICAgLy8gSW4gY2FzZSB0aGUgZm9jdXMgaXMgY3VycmVudGx5IGluc2lkZSB0aGUgc3RlcHBlciwgd2UgZm9jdXMgdGhlIHNlbGVjdGVkIHN0ZXAgbGFiZWwuXG4gICAgaWYgKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmNsb3Nlc3QoJ3NiYi1zdGVwcGVyJykgPT09IHRoaXMpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQ/LmxhYmVsPy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3NldE1hcmtlclNpemUoKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuX2xvYWRlZCB8fFxuICAgICAgIXRoaXMuc2VsZWN0ZWQgfHxcbiAgICAgIHRoaXMuc2VsZWN0ZWRJbmRleCA9PT0gdW5kZWZpbmVkIHx8XG4gICAgICAhdGhpcy5zZWxlY3RlZC5sYWJlbFxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBvZmZzZXQgPVxuICAgICAgdGhpcy5vcmllbnRhdGlvbiA9PT0gJ2hvcml6b250YWwnXG4gICAgICAgID8gdGhpcy5zZWxlY3RlZC5sYWJlbC5vZmZzZXRMZWZ0ICsgdGhpcy5zZWxlY3RlZC5sYWJlbC5vZmZzZXRXaWR0aFxuICAgICAgICA6IHRoaXMuX2NhbGN1bGF0ZUxhYmVsT2Zmc2V0VG9wKCk7XG5cbiAgICB0aGlzLnN0eWxlLnNldFByb3BlcnR5KCctLXNiYi1zdGVwcGVyLW1hcmtlci1zaXplJywgYCR7b2Zmc2V0fXB4YCk7XG4gIH1cblxuICAvKipcbiAgICogU2V0cyB0aGUgc3RlcHBlciBoZWlnaHQgYmFzZWQgb24gdGhlIGhlaWdodCBvZiB0aGUgcHJvdmlkZWQgc3RlcC5cbiAgICovXG4gIHByaXZhdGUgX3NldFN0ZXBwZXJIZWlnaHQoc3RlcDogU2JiU3RlcEVsZW1lbnQgfCBudWxsKTogdm9pZCB7XG4gICAgaWYgKHN0ZXAgJiYgc3RlcC5zaGFkb3dSb290KSB7XG4gICAgICBjb25zdCBpbm5lckVsZW1lbnQ6IFNiYlN0ZXBFbGVtZW50IHwgbnVsbCA9IHN0ZXAuc2hhZG93Um9vdC5xdWVyeVNlbGVjdG9yKCcuc2JiLXN0ZXAnKTtcbiAgICAgIGlmIChpbm5lckVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5zdHlsZT8uc2V0UHJvcGVydHkoJy0tc2JiLXN0ZXBwZXItY29udGVudC1oZWlnaHQnLCBgJHtpbm5lckVsZW1lbnQub2Zmc2V0SGVpZ2h0fXB4YCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfY2FsY3VsYXRlTGFiZWxPZmZzZXRUb3AoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAodGhpcy5zZWxlY3RlZEluZGV4ID09PSBudWxsKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGxldCBvZmZzZXQgPSAwO1xuICAgIGZvciAoY29uc3Qgc3RlcCBvZiB0aGlzLnN0ZXBzKSB7XG4gICAgICBpZiAoc3RlcCA9PT0gdGhpcy5zZWxlY3RlZCkge1xuICAgICAgICBicmVhaztcbiAgICAgIH1cbiAgICAgIG9mZnNldCA9IHN0ZXAubGFiZWwhLm9mZnNldEhlaWdodCArIG9mZnNldDtcbiAgICB9XG4gICAgcmV0dXJuIChcbiAgICAgIG9mZnNldCArXG4gICAgICB0aGlzLnNlbGVjdGVkIS5sYWJlbCEub2Zmc2V0SGVpZ2h0ISArXG4gICAgICBwYXJzZUZsb2F0KGdldENvbXB1dGVkU3R5bGUodGhpcykuZ2V0UHJvcGVydHlWYWx1ZSgnLS1zYmItc3BhY2luZy1maXhlZC02eCcpKSAqXG4gICAgICAgIDE2ICpcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4XG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uU2VsZWN0ZWRTdGVwUmVzaXplKGU6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5fc2V0U3RlcHBlckhlaWdodChlLnRhcmdldCBhcyBTYmJTdGVwRWxlbWVudCk7XG4gIH1cblxuICBwcml2YXRlIF9jb25maWd1cmUoKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwcy5mb3JFYWNoKChzdGVwLCBpLCBhcnJheSkgPT4ge1xuICAgICAgc3RlcC5jb25maWd1cmUodGhpcy5fbG9hZGVkKTtcbiAgICAgIHN0ZXAubGFiZWw/LmNvbmZpZ3VyZShpICsgMSwgYXJyYXkubGVuZ3RoLCB0aGlzLl9sb2FkZWQpO1xuICAgIH0pO1xuICAgIHRoaXMuX3NlbGVjdCh0aGlzLnNlbGVjdGVkIHx8IHRoaXMuX2VuYWJsZWRTdGVwc1swXSk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVMYWJlbHMoKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwcy5mb3JFYWNoKChzdGVwKSA9PiB7XG4gICAgICBzdGVwLnNsb3QgPSB0aGlzLm9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcgPyAnc3RlcCcgOiAnc3RlcC1sYWJlbCc7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jaGVja09yaWVudGF0aW9uKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmhvcml6b250YWxGcm9tKSB7XG4gICAgICB0aGlzLm9yaWVudGF0aW9uID0gdGhpcy5fbWVkaWFNYXRjaGVyLm1hdGNoZXMoYnJlYWtwb2ludE1hcFt0aGlzLmhvcml6b250YWxGcm9tXSlcbiAgICAgICAgPyAnaG9yaXpvbnRhbCdcbiAgICAgICAgOiAndmVydGljYWwnO1xuICAgICAgdGhpcy5fdXBkYXRlTGFiZWxzKCk7XG4gICAgfVxuICAgIC8vIFRoZSB0aW1lb3V0IGlzIG5lZWRlZCB0byBtYWtlIHN1cmUgdGhhdCB0aGUgbWFya2VyIHRha2VzIHRoZSBjb3JyZWN0IHN0ZXAtbGFiZWwgc2l6ZS5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHRoaXMuX3NldE1hcmtlclNpemUoKSwgMCk7XG4gIH1cblxuICBwcml2YXRlIF9vblN0ZXBwZXJSZXNpemUgPSAoKTogdm9pZCA9PiB7XG4gICAgdGhpcy5fY2hlY2tPcmllbnRhdGlvbigpO1xuICAgIHRoaXMuX3NldFN0ZXBwZXJIZWlnaHQodGhpcy5zZWxlY3RlZCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuX3Jlc2l6ZU9ic2VydmVyVGltZW91dCEpO1xuICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoJ2Rpc2FibGUtYW5pbWF0aW9uJyk7XG5cbiAgICAvLyBEaXNhYmxlIHRoZSBhbmltYXRpb24gd2hlbiByZXNpemluZyB0byBhdm9pZCBzdHJhbmdlIHRyYW5zaXRpb24gZWZmZWN0cy5cbiAgICB0aGlzLl9yZXNpemVPYnNlcnZlclRpbWVvdXQgPSBzZXRUaW1lb3V0KFxuICAgICAgKCkgPT4gdGhpcy5pbnRlcm5hbHMuc3RhdGVzLmRlbGV0ZSgnZGlzYWJsZS1hbmltYXRpb24nKSxcbiAgICAgIERFQk9VTkNFX1RJTUUsXG4gICAgKTtcbiAgfTtcblxuICBwcml2YXRlIF9jb25maWd1cmVMaW5lYXJNb2RlKCk6IHZvaWQge1xuICAgIHRoaXMuc3RlcHMuZm9yRWFjaCgoc3RlcCwgaW5kZXgpID0+IHtcbiAgICAgIGlmICghc3RlcC5sYWJlbCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBjdXN0b21FbGVtZW50cy51cGdyYWRlKHN0ZXAubGFiZWwpO1xuXG4gICAgICBzdGVwLmxhYmVsLmRpc2FibGUoXG4gICAgICAgICh0aGlzLmxpbmVhciAmJiBpbmRleCA+IHRoaXMuc2VsZWN0ZWRJbmRleCEpIHx8XG4gICAgICAgICAgKCF0aGlzLmxpbmVhciAmJiBzdGVwLmxhYmVsLm1hdGNoZXMoJzpzdGF0ZSh1c2VyLWRpc2FibGVkKScpKSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5fb25TdGVwcGVyUmVzaXplLCB7XG4gICAgICBwYXNzaXZlOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2Rpc2FibGUtYW5pbWF0aW9uJywgIXRoaXMuX2xvYWRlZCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigncmVzaXplJywgdGhpcy5fb25TdGVwcGVyUmVzaXplKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcbiAgICB0aGlzLnVwZGF0ZUNvbXBsZXRlLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy5fbG9hZGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZSgpO1xuXG4gICAgICBpZiAodGhpcy5fcmVxdWVzdGVkU2VsZWN0ZWQgJiYgdGhpcy5zdGVwcy5pbmRleE9mKHRoaXMuX3JlcXVlc3RlZFNlbGVjdGVkKSAhPT0gLTEpIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gdGhpcy5zdGVwcy5pbmRleE9mKHRoaXMuX3JlcXVlc3RlZFNlbGVjdGVkKTtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5fcmVxdWVzdGVkU2VsZWN0ZWRJbmRleCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkSW5kZXggPSB0aGlzLl9yZXF1ZXN0ZWRTZWxlY3RlZEluZGV4O1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEluZGV4ID0gMDtcbiAgICAgIH1cblxuICAgICAgdGhpcy5fb2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzKTtcbiAgICAgIHRoaXMuX2NoZWNrT3JpZW50YXRpb24oKTtcbiAgICAgIC8vIFJlbW92ZSBkaXNhYmxlLWFuaW1hdGlvbiBzdGF0ZSBhZnRlciBjb21wb25lbnQgaW5pdFxuICAgICAgc2V0VGltZW91dCgoKSA9PiB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKCdkaXNhYmxlLWFuaW1hdGlvbicpLCBERUJPVU5DRV9USU1FKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ29yaWVudGF0aW9uJykgJiYgIXRoaXMuaG9yaXpvbnRhbEZyb20pIHtcbiAgICAgIHRoaXMuX3VwZGF0ZUxhYmVscygpO1xuICAgICAgdGhpcy5fc2V0TWFya2VyU2l6ZSgpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdsaW5lYXInKSAmJiB0aGlzLl9sb2FkZWQpIHtcbiAgICAgIHRoaXMuX2NvbmZpZ3VyZUxpbmVhck1vZGUoKTtcbiAgICB9XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzaXplJykpIHtcbiAgICAgIHRoaXMuX3NldE1hcmtlclNpemUoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVLZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVuYWJsZWRTdGVwczogU2JiU3RlcEVsZW1lbnRbXSA9IHRoaXMuX2VuYWJsZWRTdGVwcztcblxuICAgIGlmIChcbiAgICAgICFlbmFibGVkU3RlcHMgfHxcbiAgICAgIC8vIGRvbid0IHRyYXAgbmVzdGVkIGhhbmRsaW5nXG4gICAgICAoKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpICE9PSB0aGlzICYmIChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5wYXJlbnRFbGVtZW50ICE9PSB0aGlzKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChpc0Fycm93S2V5UHJlc3NlZChldnQpKSB7XG4gICAgICBjb25zdCBjdXJyZW50OiBudW1iZXIgPSBlbmFibGVkU3RlcHMuaW5kZXhPZih0aGlzLnNlbGVjdGVkISk7XG4gICAgICBjb25zdCBuZXh0SW5kZXg6IG51bWJlciA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZ0LCBjdXJyZW50LCBlbmFibGVkU3RlcHMubGVuZ3RoKTtcbiAgICAgIHRoaXMuX3NlbGVjdChlbmFibGVkU3RlcHNbbmV4dEluZGV4XSk7XG4gICAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItc3RlcHBlcl9fbGFiZWxzXCIgcm9sZT1cInRhYmxpc3RcIj5cbiAgICAgICAgPHNsb3QgbmFtZT1cInN0ZXAtbGFiZWxcIiBAc2xvdGNoYW5nZT0ke3RoaXMuX2NvbmZpZ3VyZX0+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXN0ZXBwZXJfX3N0ZXBzXCI+XG4gICAgICAgIDxzbG90IG5hbWU9XCJzdGVwXCIgQHNsb3RjaGFuZ2U9JHt0aGlzLl9jb25maWd1cmV9Pjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1zdGVwcGVyJzogU2JiU3RlcHBlckVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUNxQkEsSUFBTSxnQkFBZ0I7QUFFdEIsSUFBTSxnQkFBd0M7Q0FDNUMsTUFBTTtDQUNOLE9BQU87Q0FDUCxPQUFPO0NBQ1AsT0FBTztDQUNSO0FBRUQsSUFBYSxxQkFBYixjQUF3QyxNQUFLO0NBYTNDLFlBQ0UsZUFDQSxlQUNBLGNBQ0EsY0FBbUM7QUFFbkMsUUFBTSxjQUFjO0dBQUUsU0FBUztHQUFNLFVBQVU7R0FBTSxDQUFDO0FBQ3RELE9BQUssZ0JBQWdCO0FBQ3JCLE9BQUssZ0JBQWdCO0FBQ3JCLE9BQUssZUFBZTtBQUNwQixPQUFLLGVBQWU7Ozs7Ozs7Ozs7SUFVWCwyQkFBaUI7bUJBQVM7Ozs7Ozs7Ozs7Ozs7O2NBQTFCLDBCQUEwQixZQUFVOzs7eUJBMEI5QyxXQUFXLEVBQ1gsU0FBUyxFQUFFLE1BQU0sU0FBUyxDQUFDLENBQUE7cUNBSTNCLFNBQVM7SUFBRSxXQUFXO0lBQW1CLFNBQVM7SUFBTSxDQUFDLENBQUE7OEJBYXpELFNBQVMsRUFBRSxTQUFTLE1BQU0sQ0FBQyxDQUFBO3VCQU8zQixTQUFTLEVBQUUsU0FBUyxNQUFNLENBQUMsQ0FBQTsrQkFHM0IsU0FBUyxFQUFFLFdBQVcsT0FBTyxDQUFDLENBQUE7b0NBYTlCLFNBQVM7SUFBRSxXQUFXO0lBQWtCLE1BQU07SUFBUSxDQUFDLENBQUE7QUF2Q3hELGdCQUFBLE1BQUEsTUFBQSxvQkFBQTtJQUFBLE1BQUE7SUFBQSxNQUFBO0lBQUEsUUFBQTtJQUFBLFNBQUE7SUFBQSxRQUFBO0tBQUEsTUFBQSxRQUFBLFlBQUE7S0FBQSxNQUFBLFFBQUEsSUFBZ0I7S0FBTSxNQUFBLEtBQUEsVUFBQTtBQUFBLFVBQU4s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
@@ -1,6 +1,6 @@
1
- import { t as SbbStepLabelElement } from "./step-label.component-C_obpSzp.js";
2
- import { t as SbbStepElement } from "./step.component-DsXAckYS.js";
3
- import { n as SbbStepperElement, t as SbbStepChangeEvent } from "./stepper.component-yAkgcauE.js";
1
+ import { t as SbbStepLabelElement } from "./step-label.component-D3wrRPQ7.js";
2
+ import { t as SbbStepElement } from "./step.component-ewujsOVD.js";
3
+ import { n as SbbStepperElement, t as SbbStepChangeEvent } from "./stepper.component-BJC_4cep.js";
4
4
  import "./stepper.pure.js";
5
5
  //#region src/elements/stepper.ts
6
6
  /** @entrypoint */
@@ -1,4 +1,4 @@
1
- import { t as SbbStepLabelElement } from "./step-label.component-C_obpSzp.js";
2
- import { t as SbbStepElement } from "./step.component-DsXAckYS.js";
3
- import { n as SbbStepperElement, t as SbbStepChangeEvent } from "./stepper.component-yAkgcauE.js";
1
+ import { t as SbbStepLabelElement } from "./step-label.component-D3wrRPQ7.js";
2
+ import { t as SbbStepElement } from "./step.component-ewujsOVD.js";
3
+ import { n as SbbStepperElement, t as SbbStepChangeEvent } from "./stepper.component-BJC_4cep.js";
4
4
  export { SbbStepChangeEvent, SbbStepElement, SbbStepLabelElement, SbbStepperElement };
@@ -1788,6 +1788,26 @@ slot[name=error]::slotted(*) {
1788
1788
  --sbb-status-font-size: var(--sbb-text-font-size-s);
1789
1789
  --sbb-status-title-color: var(--sbb-color-granite);
1790
1790
  --sbb-status-title-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));
1791
+ --sbb-step-label-color: var(--sbb-color-4);
1792
+ --sbb-step-label-font-size: var(--sbb-text-font-size-l);
1793
+ --sbb-step-label-prefix-size: var(--sbb-size-element-xxs);
1794
+ --sbb-step-label-prefix-border-style: solid;
1795
+ --sbb-step-label-prefix-border-color: var(--sbb-border-color-4-inverted);
1796
+ --sbb-step-label-prefix-background-color: var(--sbb-background-color-1);
1797
+ --sbb-step-label-gap: var(--sbb-spacing-fixed-4x);
1798
+ --sbb-step-label-inset-block-start-size-m: calc(
1799
+ var(--sbb-text-font-size-l) * (var(--sbb-typo-line-height-text) / 2) +
1800
+ (var(--sbb-border-width-1x) / 2)
1801
+ );
1802
+ --sbb-step-label-inset-block-start-size-s: calc(
1803
+ var(--sbb-text-font-size-m) * (var(--sbb-typo-line-height-text) / 2) +
1804
+ (var(--sbb-border-width-1x) / 2)
1805
+ );
1806
+ --sbb-step-label-inset-block-start: var(--sbb-step-label-inset-block-start-size-m);
1807
+ --sbb-stepper-orientation: row;
1808
+ --sbb-stepper-border-width: var(--sbb-border-width-1x);
1809
+ --sbb-stepper-marker-width: var(--sbb-border-width-3x);
1810
+ --sbb-stepper-marker-color: var(--sbb-color-3);
1791
1811
  --sbb-tab-group-content-gap-size-s: var(--sbb-spacing-responsive-xs);
1792
1812
  --sbb-tab-group-content-gap-size-l: var(--sbb-spacing-responsive-s);
1793
1813
  --sbb-tab-group-content-gap-size-xl: var(--sbb-spacing-responsive-m);
@@ -1862,6 +1882,8 @@ slot[name=error]::slotted(*) {
1862
1882
  --sbb-signet-icon-color: Canvas !important;
1863
1883
  --sbb-slider-selected-line-color: Highlight;
1864
1884
  --sbb-slider-line-color: CanvasText;
1885
+ --sbb-step-label-color: ButtonText;
1886
+ --sbb-step-label-prefix-border-color: ButtonText;
1865
1887
  }
1866
1888
  }
1867
1889
  :root {
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@sbb-esta/lyne-elements-dev",
3
- "version": "4.9.0-dev.1775022513",
3
+ "version": "4.9.0-dev.1775049532",
4
4
  "description": "Lyne Design System",
5
5
  "keywords": [
6
6
  "design system",
7
7
  "web components",
8
8
  "lit",
9
- "https://github.com/sbb-design-systems/lyne-components/commit/fd3ebcfef5d28b757b789bccca709a6820f607f1"
9
+ "https://github.com/sbb-design-systems/lyne-components/commit/94e3bd05120aa6041503bf5f5a2a2328913af5a9"
10
10
  ],
11
11
  "type": "module",
12
12
  "exports": {
package/safety-theme.css CHANGED
@@ -1788,6 +1788,26 @@ slot[name=error]::slotted(*) {
1788
1788
  --sbb-status-font-size: var(--sbb-text-font-size-s);
1789
1789
  --sbb-status-title-color: var(--sbb-color-granite);
1790
1790
  --sbb-status-title-color: light-dark(var(--sbb-color-granite), var(--sbb-color-smoke));
1791
+ --sbb-step-label-color: var(--sbb-color-4);
1792
+ --sbb-step-label-font-size: var(--sbb-text-font-size-l);
1793
+ --sbb-step-label-prefix-size: var(--sbb-size-element-xxs);
1794
+ --sbb-step-label-prefix-border-style: solid;
1795
+ --sbb-step-label-prefix-border-color: var(--sbb-border-color-4-inverted);
1796
+ --sbb-step-label-prefix-background-color: var(--sbb-background-color-1);
1797
+ --sbb-step-label-gap: var(--sbb-spacing-fixed-4x);
1798
+ --sbb-step-label-inset-block-start-size-m: calc(
1799
+ var(--sbb-text-font-size-l) * (var(--sbb-typo-line-height-text) / 2) +
1800
+ (var(--sbb-border-width-1x) / 2)
1801
+ );
1802
+ --sbb-step-label-inset-block-start-size-s: calc(
1803
+ var(--sbb-text-font-size-m) * (var(--sbb-typo-line-height-text) / 2) +
1804
+ (var(--sbb-border-width-1x) / 2)
1805
+ );
1806
+ --sbb-step-label-inset-block-start: var(--sbb-step-label-inset-block-start-size-m);
1807
+ --sbb-stepper-orientation: row;
1808
+ --sbb-stepper-border-width: var(--sbb-border-width-1x);
1809
+ --sbb-stepper-marker-width: var(--sbb-border-width-3x);
1810
+ --sbb-stepper-marker-color: var(--sbb-color-3);
1791
1811
  --sbb-tab-group-content-gap-size-s: var(--sbb-spacing-responsive-xs);
1792
1812
  --sbb-tab-group-content-gap-size-l: var(--sbb-spacing-responsive-s);
1793
1813
  --sbb-tab-group-content-gap-size-xl: var(--sbb-spacing-responsive-m);
@@ -1862,6 +1882,8 @@ slot[name=error]::slotted(*) {
1862
1882
  --sbb-signet-icon-color: Canvas !important;
1863
1883
  --sbb-slider-selected-line-color: Highlight;
1864
1884
  --sbb-slider-line-color: CanvasText;
1885
+ --sbb-step-label-color: ButtonText;
1886
+ --sbb-step-label-prefix-border-color: ButtonText;
1865
1887
  }
1866
1888
  }
1867
1889
  :root {