@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
|
@@ -1,403 +0,0 @@
|
|
|
1
|
-
import { __esDecorate, __runInitializers } from "tslib";
|
|
2
|
-
import { html, isServer, unsafeCSS } from "lit";
|
|
3
|
-
import { property } from "lit/decorators.js";
|
|
4
|
-
import { SbbDisabledMixin, SbbElement, SbbFormAssociatedMixin, SbbLanguageController, SbbNegativeMixin, SbbPropertyWatcherController, SbbRequiredMixin, forceType, getNextElementIndex, i18nChipGroupInputDescription, i18nSelectionRequired, isArrowKeyPressed } from "./core.js";
|
|
5
|
-
import { SbbChipElement } from "./chip/chip/chip.component.js";
|
|
6
|
-
//#region src/elements/chip/chip-group/chip-group.scss?inline
|
|
7
|
-
var chip_group_default = ":host {\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n gap: var(--sbb-chip-group-gap);\n align-items: center;\n margin-block: var(--sbb-chip-group-margin-block);\n line-height: var(--sbb-typo-line-height-text);\n}\n\n:host(:is(:is(:state(size-s),[state--size-s]), :is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: 0;\n}\n\n:host(:is(:state(size-s),[state--size-s]):not(:is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-with-label-s);\n}\n\n:host(:is(:state(without-label),[state--without-label]):is(:state(size-s),[state--size-s]):not(:is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-without-label-s);\n}\n\n:host(:is(:is(:state(size-l),[state--size-l]), :is(:state(size-m),[state--size-m]))) {\n --sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-base-lm);\n}\n\n:host(:is(:state(without-label),[state--without-label]):is(:state(size-m),[state--size-m]):not(:is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-without-label-m);\n}\n\n:host(:is(:state(without-label),[state--without-label]):not(:is(:state(empty),[state--empty]), :is(:state(size-s),[state--size-s]), :is(:state(size-m),[state--size-m]), :is(:state(size-l),[state--size-l]))) {\n --sbb-chip-group-margin-block: var(--sbb-chip-group-margin-block-no-label-not-empty);\n}\n\n:host(:not(:is(:state(without-label),[state--without-label])):is(:state(size-m),[state--size-m]):not(:is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-with-label-m);\n}\n\n:host(:not(:is(:state(without-label),[state--without-label]), :is(:state(empty),[state--empty]), :is(:state(size-s),[state--size-s]), :is(:state(size-m),[state--size-m]), :is(:state(size-l),[state--size-l]))) {\n --sbb-chip-group-margin-block: var(--sbb-chip-group-margin-block-with-label-not-empty);\n}\n\n:host(:is(:state(without-label),[state--without-label]):is(:state(size-l),[state--size-l]):not(:is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-without-label-l);\n}\n\n:host(:not(:is(:state(without-label),[state--without-label])):is(:state(size-l),[state--size-l]):not(:is(:state(empty),[state--empty]))) {\n --sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-with-label-l);\n}\n\n::slotted(input) {\n flex: 1 1 var(--sbb-chip-group-input-min-width);\n max-height: 1.5rem;\n}\n\n::slotted(sbb-chip) {\n max-width: 100%;\n}";
|
|
8
|
-
//#endregion
|
|
9
|
-
//#region src/elements/chip/chip-group/chip-group.component.ts
|
|
10
|
-
var SbbChipInputTokenEndEvent = class extends CustomEvent {
|
|
11
|
-
/**
|
|
12
|
-
* @deprecated Use event properties directly.
|
|
13
|
-
*/
|
|
14
|
-
get detail() {
|
|
15
|
-
return this;
|
|
16
|
-
}
|
|
17
|
-
constructor(options) {
|
|
18
|
-
super("chipinputtokenend", {
|
|
19
|
-
cancelable: true,
|
|
20
|
-
bubbles: true,
|
|
21
|
-
composed: true
|
|
22
|
-
});
|
|
23
|
-
this.origin = options.origin;
|
|
24
|
-
this.value = options.value;
|
|
25
|
-
this.label = options.label;
|
|
26
|
-
}
|
|
27
|
-
/** Set a new value for the chip that will be created */
|
|
28
|
-
setValue(value) {
|
|
29
|
-
this.value = value;
|
|
30
|
-
}
|
|
31
|
-
/** Set a label for the chip that will be created */
|
|
32
|
-
setLabel(label) {
|
|
33
|
-
this.label = label;
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* The `sbb-chip-group` component is used as a container for one or multiple `sbb-chip`.
|
|
38
|
-
*
|
|
39
|
-
* @slot - Use the unnamed slot to add `sbb-chip` elements.
|
|
40
|
-
* @event {SbbChipInputTokenEndEvent<T>} chipinputtokenend - Notifies that a chip is about to be created. Can be prevented.
|
|
41
|
-
* @overrideType value - (T = string[]) | null
|
|
42
|
-
*/
|
|
43
|
-
var SbbChipGroupElement = (() => {
|
|
44
|
-
let _classSuper = SbbRequiredMixin(SbbDisabledMixin(SbbNegativeMixin(SbbFormAssociatedMixin(SbbElement))));
|
|
45
|
-
let _instanceExtraInitializers = [];
|
|
46
|
-
let _set_value_decorators;
|
|
47
|
-
let _displayWith_decorators;
|
|
48
|
-
let _displayWith_initializers = [];
|
|
49
|
-
let _displayWith_extraInitializers = [];
|
|
50
|
-
let _separatorKeys_decorators;
|
|
51
|
-
let _separatorKeys_initializers = [];
|
|
52
|
-
let _separatorKeys_extraInitializers = [];
|
|
53
|
-
let _addOnBlur_decorators;
|
|
54
|
-
let _addOnBlur_initializers = [];
|
|
55
|
-
let _addOnBlur_extraInitializers = [];
|
|
56
|
-
return class SbbChipGroupElement extends _classSuper {
|
|
57
|
-
static {
|
|
58
|
-
const _metadata = typeof Symbol === "function" && Symbol.metadata ? Object.create(_classSuper[Symbol.metadata] ?? null) : void 0;
|
|
59
|
-
_set_value_decorators = [property({ type: Array })];
|
|
60
|
-
_displayWith_decorators = [property({ attribute: false })];
|
|
61
|
-
_separatorKeys_decorators = [property({
|
|
62
|
-
attribute: "separator-keys",
|
|
63
|
-
type: Array
|
|
64
|
-
})];
|
|
65
|
-
_addOnBlur_decorators = [forceType(), property({
|
|
66
|
-
attribute: "add-on-blur",
|
|
67
|
-
type: Boolean
|
|
68
|
-
})];
|
|
69
|
-
__esDecorate(this, null, _set_value_decorators, {
|
|
70
|
-
kind: "setter",
|
|
71
|
-
name: "value",
|
|
72
|
-
static: false,
|
|
73
|
-
private: false,
|
|
74
|
-
access: {
|
|
75
|
-
has: (obj) => "value" in obj,
|
|
76
|
-
set: (obj, value) => {
|
|
77
|
-
obj.value = value;
|
|
78
|
-
}
|
|
79
|
-
},
|
|
80
|
-
metadata: _metadata
|
|
81
|
-
}, null, _instanceExtraInitializers);
|
|
82
|
-
__esDecorate(this, null, _displayWith_decorators, {
|
|
83
|
-
kind: "accessor",
|
|
84
|
-
name: "displayWith",
|
|
85
|
-
static: false,
|
|
86
|
-
private: false,
|
|
87
|
-
access: {
|
|
88
|
-
has: (obj) => "displayWith" in obj,
|
|
89
|
-
get: (obj) => obj.displayWith,
|
|
90
|
-
set: (obj, value) => {
|
|
91
|
-
obj.displayWith = value;
|
|
92
|
-
}
|
|
93
|
-
},
|
|
94
|
-
metadata: _metadata
|
|
95
|
-
}, _displayWith_initializers, _displayWith_extraInitializers);
|
|
96
|
-
__esDecorate(this, null, _separatorKeys_decorators, {
|
|
97
|
-
kind: "accessor",
|
|
98
|
-
name: "separatorKeys",
|
|
99
|
-
static: false,
|
|
100
|
-
private: false,
|
|
101
|
-
access: {
|
|
102
|
-
has: (obj) => "separatorKeys" in obj,
|
|
103
|
-
get: (obj) => obj.separatorKeys,
|
|
104
|
-
set: (obj, value) => {
|
|
105
|
-
obj.separatorKeys = value;
|
|
106
|
-
}
|
|
107
|
-
},
|
|
108
|
-
metadata: _metadata
|
|
109
|
-
}, _separatorKeys_initializers, _separatorKeys_extraInitializers);
|
|
110
|
-
__esDecorate(this, null, _addOnBlur_decorators, {
|
|
111
|
-
kind: "accessor",
|
|
112
|
-
name: "addOnBlur",
|
|
113
|
-
static: false,
|
|
114
|
-
private: false,
|
|
115
|
-
access: {
|
|
116
|
-
has: (obj) => "addOnBlur" in obj,
|
|
117
|
-
get: (obj) => obj.addOnBlur,
|
|
118
|
-
set: (obj, value) => {
|
|
119
|
-
obj.addOnBlur = value;
|
|
120
|
-
}
|
|
121
|
-
},
|
|
122
|
-
metadata: _metadata
|
|
123
|
-
}, _addOnBlur_initializers, _addOnBlur_extraInitializers);
|
|
124
|
-
if (_metadata) Object.defineProperty(this, Symbol.metadata, {
|
|
125
|
-
enumerable: true,
|
|
126
|
-
configurable: true,
|
|
127
|
-
writable: true,
|
|
128
|
-
value: _metadata
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
static {
|
|
132
|
-
this.elementName = "sbb-chip-group";
|
|
133
|
-
}
|
|
134
|
-
static {
|
|
135
|
-
this.role = "listbox";
|
|
136
|
-
}
|
|
137
|
-
static {
|
|
138
|
-
this.styles = [unsafeCSS(chip_group_default)];
|
|
139
|
-
}
|
|
140
|
-
static {
|
|
141
|
-
this.events = {
|
|
142
|
-
input: "input",
|
|
143
|
-
change: "change",
|
|
144
|
-
chipinputtokenend: "chipinputtokenend"
|
|
145
|
-
};
|
|
146
|
-
}
|
|
147
|
-
/** Value of the form element. */
|
|
148
|
-
set value(value) {
|
|
149
|
-
value = value ?? [];
|
|
150
|
-
const oldValue = this.value;
|
|
151
|
-
const toRemove = [...oldValue];
|
|
152
|
-
for (const c of value) if (toRemove.includes(c)) toRemove.splice(toRemove.indexOf(c), 1);
|
|
153
|
-
toRemove.forEach((value) => this._chipElements().find((c) => c.value === value)?.remove());
|
|
154
|
-
const toAdd = [...value];
|
|
155
|
-
for (const c of oldValue) if (toAdd.includes(c)) toAdd.splice(toAdd.indexOf(c), 1);
|
|
156
|
-
toAdd.forEach((c) => this._createChipElement(c));
|
|
157
|
-
}
|
|
158
|
-
get value() {
|
|
159
|
-
return this._chipElements().map((c) => c.value);
|
|
160
|
-
}
|
|
161
|
-
#displayWith_accessor_storage;
|
|
162
|
-
/** Function that maps a chip's value to its display value. */
|
|
163
|
-
get displayWith() {
|
|
164
|
-
return this.#displayWith_accessor_storage;
|
|
165
|
-
}
|
|
166
|
-
set displayWith(value) {
|
|
167
|
-
this.#displayWith_accessor_storage = value;
|
|
168
|
-
}
|
|
169
|
-
#separatorKeys_accessor_storage;
|
|
170
|
-
/** The array of keys that will trigger a `chipinputtokenend` event. Default `['Enter']` */
|
|
171
|
-
get separatorKeys() {
|
|
172
|
-
return this.#separatorKeys_accessor_storage;
|
|
173
|
-
}
|
|
174
|
-
set separatorKeys(value) {
|
|
175
|
-
this.#separatorKeys_accessor_storage = value;
|
|
176
|
-
}
|
|
177
|
-
#addOnBlur_accessor_storage;
|
|
178
|
-
/** Whether to automatically add a chip when the input loses focus if there's a value. */
|
|
179
|
-
get addOnBlur() {
|
|
180
|
-
return this.#addOnBlur_accessor_storage;
|
|
181
|
-
}
|
|
182
|
-
set addOnBlur(value) {
|
|
183
|
-
this.#addOnBlur_accessor_storage = value;
|
|
184
|
-
}
|
|
185
|
-
constructor() {
|
|
186
|
-
super();
|
|
187
|
-
this.#displayWith_accessor_storage = (__runInitializers(this, _instanceExtraInitializers), __runInitializers(this, _displayWith_initializers, null));
|
|
188
|
-
this.#separatorKeys_accessor_storage = (__runInitializers(this, _displayWith_extraInitializers), __runInitializers(this, _separatorKeys_initializers, ["Enter"]));
|
|
189
|
-
this.#addOnBlur_accessor_storage = (__runInitializers(this, _separatorKeys_extraInitializers), __runInitializers(this, _addOnBlur_initializers, false));
|
|
190
|
-
/**
|
|
191
|
-
* Listens to the changes on `readonly` and `disabled` attributes of `<input>`.
|
|
192
|
-
*/
|
|
193
|
-
this._inputAttributeObserver = (__runInitializers(this, _addOnBlur_extraInitializers), !isServer ? new MutationObserver(() => this._reactToInputChanges()) : null);
|
|
194
|
-
this._language = new SbbLanguageController(this);
|
|
195
|
-
this._previousSize = null;
|
|
196
|
-
this.addEventListener?.(SbbChipElement.events.requestdelete, (ev) => this._deleteChip(ev.target));
|
|
197
|
-
this.addEventListener?.("keydown", (ev) => this._onChipKeyDown(ev));
|
|
198
|
-
this.addController(new SbbPropertyWatcherController(this, () => this.closest("sbb-form-field"), {
|
|
199
|
-
size: (formField) => this._updateSize(formField.size),
|
|
200
|
-
label: (formField) => this._updateLabelState(formField),
|
|
201
|
-
hiddenLabel: (formField) => this._updateLabelState(formField)
|
|
202
|
-
}));
|
|
203
|
-
}
|
|
204
|
-
_updateLabelState(formField) {
|
|
205
|
-
this.toggleState("without-label", !formField.label || formField.hiddenLabel);
|
|
206
|
-
}
|
|
207
|
-
connectedCallback() {
|
|
208
|
-
super.connectedCallback();
|
|
209
|
-
this._setupComponent();
|
|
210
|
-
}
|
|
211
|
-
willUpdate(changedProperties) {
|
|
212
|
-
super.willUpdate(changedProperties);
|
|
213
|
-
if (changedProperties.has("disabled") || changedProperties.has("formDisabled") || changedProperties.has("negative")) this._proxyStateToChips();
|
|
214
|
-
}
|
|
215
|
-
/** @internal */
|
|
216
|
-
formResetCallback() {
|
|
217
|
-
this.value = null;
|
|
218
|
-
}
|
|
219
|
-
/** @internal */
|
|
220
|
-
formStateRestoreCallback(state, _reason) {
|
|
221
|
-
if (!state) {
|
|
222
|
-
this.value = null;
|
|
223
|
-
return;
|
|
224
|
-
}
|
|
225
|
-
this._readFormData(state).then((array) => this.value = array);
|
|
226
|
-
}
|
|
227
|
-
async _readFormData(formData) {
|
|
228
|
-
return Promise.all(formData.getAll(this.name).map(async (entry) => entry instanceof Blob ? JSON.parse(await entry.text()) : entry));
|
|
229
|
-
}
|
|
230
|
-
shouldValidate(name) {
|
|
231
|
-
return super.shouldValidate(name) || name === "required" || name === "value";
|
|
232
|
-
}
|
|
233
|
-
validate() {
|
|
234
|
-
super.validate();
|
|
235
|
-
if (this.required && this.value.length === 0) this.setValidityFlag("valueMissing", i18nSelectionRequired[this._language.current]);
|
|
236
|
-
else this.removeValidityFlag("valueMissing");
|
|
237
|
-
}
|
|
238
|
-
/** Return the list of chip elements **/
|
|
239
|
-
_chipElements() {
|
|
240
|
-
return Array.from(this.querySelectorAll?.("sbb-chip") ?? []);
|
|
241
|
-
}
|
|
242
|
-
/** Return the list of enabled chip elements **/
|
|
243
|
-
_enabledChipElements() {
|
|
244
|
-
return Array.from(this.querySelectorAll?.("sbb-chip:not([disabled])") ?? []);
|
|
245
|
-
}
|
|
246
|
-
_setupComponent() {
|
|
247
|
-
const input = this.querySelector("input");
|
|
248
|
-
if (input && input !== this._inputElement) {
|
|
249
|
-
this._inputAbortController?.abort();
|
|
250
|
-
this._inputAttributeObserver?.disconnect();
|
|
251
|
-
this._inputElement = input;
|
|
252
|
-
this._inputAbortController = new AbortController();
|
|
253
|
-
this._inputElement.addEventListener("keydown", (ev) => this._onInputKeyDown(ev), { signal: this._inputAbortController.signal });
|
|
254
|
-
this._inputElement.addEventListener("blur", () => this._onInputBlur(), {
|
|
255
|
-
signal: this._inputAbortController.signal,
|
|
256
|
-
capture: true
|
|
257
|
-
});
|
|
258
|
-
this._inputElement.addEventListener("inputAutocomplete", (event) => {
|
|
259
|
-
this._createChipFromInput("autocomplete", event.detail?.option.value);
|
|
260
|
-
}, { signal: this._inputAbortController.signal });
|
|
261
|
-
this._inputAttributeObserver?.observe(this._inputElement, {
|
|
262
|
-
attributes: true,
|
|
263
|
-
attributeFilter: ["readonly", "disabled"]
|
|
264
|
-
});
|
|
265
|
-
}
|
|
266
|
-
if (!this.closest("sbb-form-field")) this._updateSize(null);
|
|
267
|
-
this.toggleState("empty", this.value.length === 0);
|
|
268
|
-
this._reactToInputChanges();
|
|
269
|
-
this._updateInputDescription();
|
|
270
|
-
this.updateFormValue();
|
|
271
|
-
}
|
|
272
|
-
/**
|
|
273
|
-
* Listen for keyboard events on the chip elements
|
|
274
|
-
**/
|
|
275
|
-
_onChipKeyDown(event) {
|
|
276
|
-
const eventTarget = event.target;
|
|
277
|
-
if (eventTarget.localName !== "sbb-chip") return;
|
|
278
|
-
if (isArrowKeyPressed(event)) {
|
|
279
|
-
const focusSteps = this._enabledChipElements();
|
|
280
|
-
focusSteps[getNextElementIndex(event, focusSteps.indexOf(eventTarget), focusSteps.length)].focus();
|
|
281
|
-
return;
|
|
282
|
-
}
|
|
283
|
-
switch (event.key) {
|
|
284
|
-
case "Backspace":
|
|
285
|
-
case "Delete":
|
|
286
|
-
if (!eventTarget.readOnly && !eventTarget.disabled) {
|
|
287
|
-
event.preventDefault();
|
|
288
|
-
this._deleteChip(eventTarget);
|
|
289
|
-
}
|
|
290
|
-
break;
|
|
291
|
-
}
|
|
292
|
-
}
|
|
293
|
-
/**
|
|
294
|
-
* Listen for keyboard events on the input
|
|
295
|
-
**/
|
|
296
|
-
_onInputKeyDown(event) {
|
|
297
|
-
switch (event.key) {
|
|
298
|
-
case "Backspace":
|
|
299
|
-
case "ArrowLeft":
|
|
300
|
-
if (!this._inputElement.value) this._focusChip();
|
|
301
|
-
break;
|
|
302
|
-
case "Enter":
|
|
303
|
-
event.preventDefault();
|
|
304
|
-
break;
|
|
305
|
-
}
|
|
306
|
-
if (this.separatorKeys.includes(event.key)) {
|
|
307
|
-
event.preventDefault();
|
|
308
|
-
this._createChipFromInput("input");
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
/**
|
|
312
|
-
* Handle blur event on the input
|
|
313
|
-
**/
|
|
314
|
-
_onInputBlur() {
|
|
315
|
-
if (this.addOnBlur) this._createChipFromInput("input");
|
|
316
|
-
}
|
|
317
|
-
/**
|
|
318
|
-
* If the input is not empty, create a chip with its value
|
|
319
|
-
*/
|
|
320
|
-
_createChipFromInput(origin = "input", value) {
|
|
321
|
-
const inputValue = value ?? this._inputElement.value.trim();
|
|
322
|
-
if (!inputValue) return;
|
|
323
|
-
const event = new SbbChipInputTokenEndEvent({
|
|
324
|
-
origin,
|
|
325
|
-
value: inputValue,
|
|
326
|
-
label: (value ? this.displayWith?.(value) : null) ?? void 0
|
|
327
|
-
});
|
|
328
|
-
if (!this.dispatchEvent(event)) return;
|
|
329
|
-
this._createChipElement(event.value, event.label);
|
|
330
|
-
this._inputElement.value = "";
|
|
331
|
-
this._emitInputEvents();
|
|
332
|
-
}
|
|
333
|
-
_deleteChip(chip) {
|
|
334
|
-
const chips = this._enabledChipElements();
|
|
335
|
-
chip.remove();
|
|
336
|
-
this._emitInputEvents();
|
|
337
|
-
this._focusChip(chips.indexOf(chip));
|
|
338
|
-
}
|
|
339
|
-
/**
|
|
340
|
-
* Focus an enabled chip. If none are present, focus the input
|
|
341
|
-
* @param index The index of the enabled chip. If null, focus the last one.
|
|
342
|
-
*/
|
|
343
|
-
_focusChip(index) {
|
|
344
|
-
const enabledChips = this._enabledChipElements();
|
|
345
|
-
if (index !== void 0 && enabledChips[index]) {
|
|
346
|
-
enabledChips[index].focus();
|
|
347
|
-
return;
|
|
348
|
-
}
|
|
349
|
-
if (enabledChips.length > 0) {
|
|
350
|
-
enabledChips[enabledChips.length - 1].focus();
|
|
351
|
-
return;
|
|
352
|
-
}
|
|
353
|
-
this._inputElement?.focus();
|
|
354
|
-
}
|
|
355
|
-
_emitInputEvents() {
|
|
356
|
-
/** The input event fires when the value has been changed as a direct result of a user action. */
|
|
357
|
-
this.dispatchEvent(new InputEvent("input", {
|
|
358
|
-
bubbles: true,
|
|
359
|
-
composed: true
|
|
360
|
-
}));
|
|
361
|
-
/**
|
|
362
|
-
* The change event is fired when the user modifies the element's value.
|
|
363
|
-
* Unlike the input event, the change event is not necessarily fired
|
|
364
|
-
* for each alteration to an element's value.
|
|
365
|
-
*/
|
|
366
|
-
this.dispatchEvent(new Event("change", { bubbles: true }));
|
|
367
|
-
}
|
|
368
|
-
_createChipElement(value, label) {
|
|
369
|
-
if (isServer) return;
|
|
370
|
-
const newChip = document.createElement("sbb-chip");
|
|
371
|
-
newChip.value = value;
|
|
372
|
-
newChip.innerText = label ?? (value ? this.displayWith?.(value) : null) ?? "";
|
|
373
|
-
this.insertBefore(newChip, this._inputElement ?? this.querySelector("input"));
|
|
374
|
-
}
|
|
375
|
-
_reactToInputChanges() {
|
|
376
|
-
this.disabled = this._inputElement?.disabled ?? false;
|
|
377
|
-
this._proxyStateToChips();
|
|
378
|
-
}
|
|
379
|
-
_proxyStateToChips() {
|
|
380
|
-
this._chipElements().forEach((c) => {
|
|
381
|
-
c.disabled = this.disabled || this.formDisabled;
|
|
382
|
-
c.readOnly = this._inputElement?.hasAttribute("readonly") ?? false;
|
|
383
|
-
c.negative = this.negative;
|
|
384
|
-
});
|
|
385
|
-
}
|
|
386
|
-
_updateSize(size) {
|
|
387
|
-
if (this._previousSize) this.internals.states.delete(`size-${this._previousSize}`);
|
|
388
|
-
this._previousSize = size;
|
|
389
|
-
if (this._previousSize) this.internals.states.add(`size-${this._previousSize}`);
|
|
390
|
-
}
|
|
391
|
-
_updateInputDescription() {
|
|
392
|
-
if (!this._inputElement) return;
|
|
393
|
-
this._inputElement.setAttribute("aria-description", `${i18nChipGroupInputDescription[this._language.current]} ${this.value.length}`);
|
|
394
|
-
}
|
|
395
|
-
render() {
|
|
396
|
-
return html`<slot @slotchange=${this._setupComponent}></slot>`;
|
|
397
|
-
}
|
|
398
|
-
};
|
|
399
|
-
})();
|
|
400
|
-
//#endregion
|
|
401
|
-
export { SbbChipInputTokenEndEvent as n, SbbChipGroupElement as t };
|
|
402
|
-
|
|
403
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC1ncm91cC5jb21wb25lbnQtU2dtaS1rU3kuanMiLCJuYW1lcyI6W10sInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NoaXAvY2hpcC1ncm91cC9jaGlwLWdyb3VwLnNjc3M/aW5saW5lIiwiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NoaXAvY2hpcC1ncm91cC9jaGlwLWdyb3VwLmNvbXBvbmVudC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyJAdXNlICcuLi8uLi9jb3JlL3N0eWxlcycgYXMgc2JiO1xuXG46aG9zdCB7XG4gIHdpZHRoOiAxMDAlO1xuICBkaXNwbGF5OiBmbGV4O1xuICBmbGV4LXdyYXA6IHdyYXA7XG4gIGdhcDogdmFyKC0tc2JiLWNoaXAtZ3JvdXAtZ2FwKTtcbiAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgbWFyZ2luLWJsb2NrOiB2YXIoLS1zYmItY2hpcC1ncm91cC1tYXJnaW4tYmxvY2spO1xuXG4gIC8vIFNldCB0aGUgbGluZS1oZWlnaHQgZm9yIGFkamFjZW50IGVsZW1lbnRzIGluIG9yZGVyIHRvIHByZXZlbnQgZnJvbSBpbmZsdWVuY2Ugb2YgYSBjb25zdW1lci1zZXQgbGluZS1oZWlnaHQuXG4gIGxpbmUtaGVpZ2h0OiB2YXIoLS1zYmItdHlwby1saW5lLWhlaWdodC10ZXh0KTtcbn1cblxuOmhvc3QoOmlzKDpzdGF0ZShzaXplLXMpLCA6c3RhdGUoZW1wdHkpKSkge1xuICAtLXNiYi1jaGlwLWdyb3VwLW1hcmdpbi1ibG9jazogMDtcbn1cblxuOmhvc3QoOnN0YXRlKHNpemUtcyk6bm90KDpzdGF0ZShlbXB0eSkpKSB7XG4gIC0tc2JiLWNoaXAtZ3JvdXAtbWFyZ2luLWJsb2NrOiB2YXIoLS1fc2JiLWNoaXAtZ3JvdXAtbWFyZ2luLWJsb2NrLXdpdGgtbGFiZWwtcyk7XG59XG5cbjpob3N0KDpzdGF0ZSh3aXRob3V0LWxhYmVsKTpzdGF0ZShzaXplLXMpOm5vdCg6c3RhdGUoZW1wdHkpKSkge1xuICAtLXNiYi1jaGlwLWdyb3VwLW1hcmdpbi1ibG9jazogdmFyKC0tX3NiYi1jaGlwLWdyb3VwLW1hcmdpbi1ibG9jay13aXRob3V0LWxhYmVsLXMpO1xufVxuXG46aG9zdCg6aXMoOnN0YXRlKHNpemUtbCksIDpzdGF0ZShzaXplLW0pKSkge1xuICAtLXNiYi1jaGlwLWdyb3VwLW1hcmdpbi1ibG9jazogdmFyKC0tX3NiYi1jaGlwLWdyb3VwLW1hcmdpbi1ibG9jay1iYXNlLWxtKTtcbn1cblxuOmhvc3QoOnN0YXRlKHdpdGhvdXQtbGFiZWwpOnN0YXRlKHNpemUtbSk6bm90KDpzdGF0ZShlbXB0eSkpKSB7XG4gIC0tc2JiLWNoaXAtZ3JvdXAtbWFyZ2luLWJsb2NrOiB2YXIoLS1fc2JiLWNoaXAtZ3JvdXAtbWFyZ2luLWJsb2NrLXdpdGhvdXQtbGFiZWwtbSk7XG59XG5cbjpob3N0KDpzdGF0ZSh3aXRob3V0LWxhYmVsKTpub3QoOnN0YXRlKGVtcHR5KSwgOnN0YXRlKHNpemUtcyksIDpzdGF0ZShzaXplLW0pLCA6c3RhdGUoc2l6ZS1sKSkpIHtcbiAgLS1zYmItY2hpcC1ncm91cC1tYXJnaW4tYmxvY2s6IHZhcigtLXNiYi1jaGlwLWdyb3VwLW1hcmdpbi1ibG9jay1uby1sYWJlbC1ub3QtZW1wdHkpO1xufVxuXG46aG9zdCg6bm90KDpzdGF0ZSh3aXRob3V0LWxhYmVsKSk6c3RhdGUoc2l6ZS1tKTpub3QoOnN0YXRlKGVtcHR5KSkpIHtcbiAgLS1zYmItY2hpcC1ncm91cC1tYXJnaW4tYmxvY2s6IHZhcigtLV9zYmItY2hpcC1ncm91cC1tYXJnaW4tYmxvY2std2l0aC1sYWJlbC1tKTtcbn1cblxuOmhvc3QoOm5vdCg6c3RhdGUod2l0aG91dC1sYWJlbCksIDpzdGF0ZShlbXB0eSksIDpzdGF0ZShzaXplLXMpLCA6c3RhdGUoc2l6ZS1tKSwgOnN0YXRlKHNpemUtbCkpKSB7XG4gIC0tc2JiLWNoaXAtZ3JvdXAtbWFyZ2luLWJsb2NrOiB2YXIoLS1zYmItY2hpcC1ncm91cC1tYXJnaW4tYmxvY2std2l0aC1sYWJlbC1ub3QtZW1wdHkpO1xufVxuXG46aG9zdCg6c3RhdGUod2l0aG91dC1sYWJlbCk6c3RhdGUoc2l6ZS1sKTpub3QoOnN0YXRlKGVtcHR5KSkpIHtcbiAgLS1zYmItY2hpcC1ncm91cC1tYXJnaW4tYmxvY2s6IHZhcigtLV9zYmItY2hpcC1ncm91cC1tYXJnaW4tYmxvY2std2l0aG91dC1sYWJlbC1sKTtcbn1cblxuOmhvc3QoOm5vdCg6c3RhdGUod2l0aG91dC1sYWJlbCkpOnN0YXRlKHNpemUtbCk6bm90KDpzdGF0ZShlbXB0eSkpKSB7XG4gIC0tc2JiLWNoaXAtZ3JvdXAtbWFyZ2luLWJsb2NrOiB2YXIoLS1fc2JiLWNoaXAtZ3JvdXAtbWFyZ2luLWJsb2NrLXdpdGgtbGFiZWwtbCk7XG59XG5cbjo6c2xvdHRlZChpbnB1dCkge1xuICBmbGV4OiAxIDEgdmFyKC0tc2JiLWNoaXAtZ3JvdXAtaW5wdXQtbWluLXdpZHRoKTtcbiAgbWF4LWhlaWdodDogI3tzYmIucHgtdG8tcmVtLWJ1aWxkKDI0KX07XG59XG5cbjo6c2xvdHRlZChzYmItY2hpcCkge1xuICBtYXgtd2lkdGg6IDEwMCU7XG59XG4iLCJpbXBvcnQge1xuICB0eXBlIENTU1Jlc3VsdEdyb3VwLFxuICBodG1sLFxuICBpc1NlcnZlcixcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbiAgdW5zYWZlQ1NTLFxufSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7XG4gIGZvcmNlVHlwZSxcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBnZXROZXh0RWxlbWVudEluZGV4LFxuICBpMThuQ2hpcEdyb3VwSW5wdXREZXNjcmlwdGlvbixcbiAgaTE4blNlbGVjdGlvblJlcXVpcmVkLFxuICBpc0Fycm93S2V5UHJlc3NlZCxcbiAgU2JiRGlzYWJsZWRNaXhpbixcbiAgU2JiRWxlbWVudCxcbiAgU2JiRm9ybUFzc29jaWF0ZWRNaXhpbixcbiAgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLFxuICBTYmJOZWdhdGl2ZU1peGluLFxuICBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyLFxuICBTYmJSZXF1aXJlZE1peGluLFxufSBmcm9tICcuLi8uLi9jb3JlLnRzJztcbmltcG9ydCB0eXBlIHsgU2JiRm9ybUZpZWxkRWxlbWVudCB9IGZyb20gJy4uLy4uL2Zvcm0tZmllbGQvZm9ybS1maWVsZC9mb3JtLWZpZWxkLmNvbXBvbmVudC50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYk9wdGlvbkJhc2VFbGVtZW50IH0gZnJvbSAnLi4vLi4vb3B0aW9uL29wdGlvbi9vcHRpb24tYmFzZS1lbGVtZW50LnRzJztcbmltcG9ydCB7IFNiYkNoaXBFbGVtZW50IH0gZnJvbSAnLi4vY2hpcC9jaGlwLmNvbXBvbmVudC50cyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL2NoaXAtZ3JvdXAuc2Nzcz9pbmxpbmUnO1xuXG5sZXQgZGlzcGxheVdpdGhXYXJuaW5nTG9nZ2VkID0gZmFsc2U7XG5cbi8vIFRPRE8oYnJlYWtpbmctY2hhbmdlKTogUmVwbGFjZSBiYXNlIGNsYXNzIHdpdGggRXZlbnRcbmV4cG9ydCBjbGFzcyBTYmJDaGlwSW5wdXRUb2tlbkVuZEV2ZW50PFQgPSBzdHJpbmc+IGV4dGVuZHMgQ3VzdG9tRXZlbnQ8XG4gIFNiYkNoaXBJbnB1dFRva2VuRW5kRXZlbnREZXRhaWxzPFQ+XG4+IHtcbiAgLyoqIFRoZSBlbGVtZW50IHRoYXQgdHJpZ2dlcmVkIHRoZSBjaGlwIGNyZWF0aW9uICovXG4gIHB1YmxpYyBvcmlnaW46ICdpbnB1dCcgfCAnYXV0b2NvbXBsZXRlJztcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgbmV3IGNoaXAuIEVpdGhlciB0aGUgaW5wdXQgb3IgdGhlIG9wdGlvbiB2YWx1ZSBkZXBlbmRpbmcgb24gdGhlIG9yaWdpbi5cbiAgICogRWl0aGVyIHRoZSB2YWx1ZSBmcm9tIHRoZSBpbnB1dCB3aGljaCBpcyBhbHdheXMgYHN0cmluZ2Agb3IgdGhlIHZhbHVlIGZyb20gdGhlIHNlbGVjdGVkIG9wdGlvblxuICAgKiBmcm9tIGFuIGF1dG9jb21wbGV0ZSwgd2hpY2ggY2FuIGJlIGVpdGhlciBhIHN0cmluZyBvciBhbnkgb3RoZXIgdHlwZS5cbiAgICovXG4gIHB1YmxpYyB2YWx1ZTogVCB8IHN0cmluZztcbiAgcHVibGljIGxhYmVsPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCBVc2UgZXZlbnQgcHJvcGVydGllcyBkaXJlY3RseS5cbiAgICovXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgZGV0YWlsKCk6IFNiYkNoaXBJbnB1dFRva2VuRW5kRXZlbnREZXRhaWxzPFQ+IHtcbiAgICByZXR1cm4gdGhpcztcbiAgfVxuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihvcHRpb25zOiBQaWNrPFNiYkNoaXBJbnB1dFRva2VuRW5kRXZlbnQsICdvcmlnaW4nIHwgJ3ZhbHVlJyB8ICdsYWJlbCc+KSB7XG4gICAgc3VwZXIoJ2NoaXBpbnB1dHRva2VuZW5kJywge1xuICAgICAgY2FuY2VsYWJsZTogdHJ1ZSxcbiAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICBjb21wb3NlZDogdHJ1ZSxcbiAgICB9KTtcbiAgICB0aGlzLm9yaWdpbiA9IG9wdGlvbnMub3JpZ2luO1xuICAgIHRoaXMudmFsdWUgPSBvcHRpb25zLnZhbHVlO1xuICAgIHRoaXMubGFiZWwgPSBvcHRpb25zLmxhYmVsO1xuICB9XG5cbiAgLyoqIFNldCBhIG5ldyB2YWx1ZSBmb3IgdGhlIGNoaXAgdGhhdCB3aWxsIGJlIGNyZWF0ZWQgKi9cbiAgcHVibGljIHNldFZhbHVlKHZhbHVlOiBUKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG4gIC8qKiBTZXQgYSBsYWJlbCBmb3IgdGhlIGNoaXAgdGhhdCB3aWxsIGJlIGNyZWF0ZWQgKi9cbiAgcHVibGljIHNldExhYmVsKGxhYmVsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmxhYmVsID0gbGFiZWw7XG4gIH1cbn1cblxuLyoqXG4gKiBAZGVwcmVjYXRlZCBVc2UgYFNiYkNoaXBJbnB1dFRva2VuRW5kRXZlbnRgIGluc3RlYWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2JiQ2hpcElucHV0VG9rZW5FbmRFdmVudERldGFpbHM8VCA9IHN0cmluZz4ge1xuICAvKiogVGhlIGVsZW1lbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGNoaXAgY3JlYXRpb24gKi9cbiAgb3JpZ2luOiAnaW5wdXQnIHwgJ2F1dG9jb21wbGV0ZSc7XG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIG5ldyBjaGlwLiBFaXRoZXIgdGhlIGlucHV0IG9yIHRoZSBvcHRpb24gdmFsdWUgZGVwZW5kaW5nIG9uIHRoZSBvcmlnaW4uXG4gICAqIEVpdGhlciB0aGUgdmFsdWUgZnJvbSB0aGUgaW5wdXQgd2hpY2ggaXMgYWx3YXlzIGBzdHJpbmdgIG9yIHRoZSB2YWx1ZSBmcm9tIHRoZSBzZWxlY3RlZCBvcHRpb25cbiAgICogZnJvbSBhbiBhdXRvY29tcGxldGUsIHdoaWNoIGNhbiBiZSBlaXRoZXIgYSBzdHJpbmcgb3IgYW55IG90aGVyIHR5cGUuXG4gICAqL1xuICB2YWx1ZTogVCB8IHN0cmluZztcbiAgbGFiZWw/OiBzdHJpbmc7XG4gIC8qKiBTZXQgYSBuZXcgdmFsdWUgZm9yIHRoZSBjaGlwIHRoYXQgd2lsbCBiZSBjcmVhdGVkICovXG4gIHNldFZhbHVlKHZhbHVlOiBUKTogdm9pZDtcbiAgLyoqIFNldCBhIGxhYmVsIGZvciB0aGUgY2hpcCB0aGF0IHdpbGwgYmUgY3JlYXRlZCAqL1xuICBzZXRMYWJlbCh2YWx1ZTogc3RyaW5nKTogdm9pZDtcbn1cblxuLyoqXG4gKiBUaGUgYHNiYi1jaGlwLWdyb3VwYCBjb21wb25lbnQgaXMgdXNlZCBhcyBhIGNvbnRhaW5lciBmb3Igb25lIG9yIG11bHRpcGxlIGBzYmItY2hpcGAuXG4gKlxuICogQHNsb3QgLSBVc2UgdGhlIHVubmFtZWQgc2xvdCB0byBhZGQgYHNiYi1jaGlwYCBlbGVtZW50cy5cbiAqIEBldmVudCB7U2JiQ2hpcElucHV0VG9rZW5FbmRFdmVudDxUPn0gY2hpcGlucHV0dG9rZW5lbmQgLSBOb3RpZmllcyB0aGF0IGEgY2hpcCBpcyBhYm91dCB0byBiZSBjcmVhdGVkLiBDYW4gYmUgcHJldmVudGVkLlxuICogQG92ZXJyaWRlVHlwZSB2YWx1ZSAtIChUID0gc3RyaW5nW10pIHwgbnVsbFxuICovXG5leHBvcnQgY2xhc3MgU2JiQ2hpcEdyb3VwRWxlbWVudDxUID0gc3RyaW5nPiBleHRlbmRzIFNiYlJlcXVpcmVkTWl4aW4oXG4gIFNiYkRpc2FibGVkTWl4aW4oU2JiTmVnYXRpdmVNaXhpbihTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnQpKSksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1jaGlwLWdyb3VwJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ2xpc3Rib3gnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbdW5zYWZlQ1NTKHN0eWxlKV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGlucHV0OiAnaW5wdXQnLFxuICAgIGNoYW5nZTogJ2NoYW5nZScsXG4gICAgY2hpcGlucHV0dG9rZW5lbmQ6ICdjaGlwaW5wdXR0b2tlbmVuZCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIFZhbHVlIG9mIHRoZSBmb3JtIGVsZW1lbnQuICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEFycmF5IH0pXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IChUIHwgbnVsbClbXSB8IG51bGwpIHtcbiAgICB2YWx1ZSA9IHZhbHVlID8/IFtdO1xuICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy52YWx1ZTtcblxuICAgIC8vIFN1YnRyYWN0IGZyb20gJ29sZFZhbHVlJyB0aGUgbmV3ICd2YWx1ZSdcbiAgICAvLyBUaGUgcmVzdWx0IGFyZSB0aGUgY2hpcHMgdG8gcmVtb3ZlIChoYW5kbGUgZHVwbGljYXRlcylcbiAgICBjb25zdCB0b1JlbW92ZSA9IFsuLi5vbGRWYWx1ZV07XG4gICAgZm9yIChjb25zdCBjIG9mIHZhbHVlKSB7XG4gICAgICBpZiAodG9SZW1vdmUuaW5jbHVkZXMoYykpIHtcbiAgICAgICAgdG9SZW1vdmUuc3BsaWNlKHRvUmVtb3ZlLmluZGV4T2YoYyksIDEpO1xuICAgICAgfVxuICAgIH1cbiAgICB0b1JlbW92ZS5mb3JFYWNoKCh2YWx1ZSkgPT5cbiAgICAgIHRoaXMuX2NoaXBFbGVtZW50cygpXG4gICAgICAgIC5maW5kKChjKSA9PiBjLnZhbHVlID09PSB2YWx1ZSlcbiAgICAgICAgPy5yZW1vdmUoKSxcbiAgICApO1xuXG4gICAgLy8gU3VidHJhY3QgZnJvbSB0aGUgbmV3ICd2YWx1ZScgd2hhdCB3YXMgYWxyZWFkeSBwcmVzZW50XG4gICAgLy8gVGhlIHJlc3VsdCBhcmUgdGhlIG5ldyBjaGlwcyB0byBhZGQgKGhhbmRsZSBkdXBsaWNhdGVzKVxuICAgIGNvbnN0IHRvQWRkID0gWy4uLnZhbHVlXTtcbiAgICBmb3IgKGNvbnN0IGMgb2Ygb2xkVmFsdWUpIHtcbiAgICAgIGlmICh0b0FkZC5pbmNsdWRlcyhjKSkge1xuICAgICAgICB0b0FkZC5zcGxpY2UodG9BZGQuaW5kZXhPZihjKSwgMSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRvQWRkLmZvckVhY2goKGMpID0+IHRoaXMuX2NyZWF0ZUNoaXBFbGVtZW50KGMpKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IChUIHwgbnVsbClbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2NoaXBFbGVtZW50cygpLm1hcCgoYykgPT4gYy52YWx1ZSk7XG4gIH1cblxuICAvKiogRnVuY3Rpb24gdGhhdCBtYXBzIGEgY2hpcCdzIHZhbHVlIHRvIGl0cyBkaXNwbGF5IHZhbHVlLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBkaXNwbGF5V2l0aDogKCh2YWx1ZTogVCkgPT4gc3RyaW5nKSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBUaGUgYXJyYXkgb2Yga2V5cyB0aGF0IHdpbGwgdHJpZ2dlciBhIGBjaGlwaW5wdXR0b2tlbmVuZGAgZXZlbnQuIERlZmF1bHQgYFsnRW50ZXInXWAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnc2VwYXJhdG9yLWtleXMnLCB0eXBlOiBBcnJheSB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc2VwYXJhdG9yS2V5czogc3RyaW5nW10gPSBbJ0VudGVyJ107XG5cbiAgLyoqIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBhZGQgYSBjaGlwIHdoZW4gdGhlIGlucHV0IGxvc2VzIGZvY3VzIGlmIHRoZXJlJ3MgYSB2YWx1ZS4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FkZC1vbi1ibHVyJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWRkT25CbHVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIExpc3RlbnMgdG8gdGhlIGNoYW5nZXMgb24gYHJlYWRvbmx5YCBhbmQgYGRpc2FibGVkYCBhdHRyaWJ1dGVzIG9mIGA8aW5wdXQ+YC5cbiAgICovXG4gIHByaXZhdGUgX2lucHV0QXR0cmlidXRlT2JzZXJ2ZXIgPSAhaXNTZXJ2ZXJcbiAgICA/IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHRoaXMuX3JlYWN0VG9JbnB1dENoYW5nZXMoKSlcbiAgICA6IG51bGw7XG5cbiAgcHJpdmF0ZSBfaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9pbnB1dEFib3J0Q29udHJvbGxlcjogQWJvcnRDb250cm9sbGVyIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX3ByZXZpb3VzU2l6ZTogU2JiRm9ybUZpZWxkRWxlbWVudFsnc2l6ZSddID0gbnVsbDtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFNiYkNoaXBFbGVtZW50LmV2ZW50cy5yZXF1ZXN0ZGVsZXRlLCAoZXYpID0+XG4gICAgICB0aGlzLl9kZWxldGVDaGlwKGV2LnRhcmdldCBhcyBTYmJDaGlwRWxlbWVudDxUPiksXG4gICAgKTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgKGV2KSA9PiB0aGlzLl9vbkNoaXBLZXlEb3duKGV2KSk7XG5cbiAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICBuZXcgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcih0aGlzLCAoKSA9PiB0aGlzLmNsb3Nlc3QoJ3NiYi1mb3JtLWZpZWxkJyksIHtcbiAgICAgICAgc2l6ZTogKGZvcm1GaWVsZCkgPT4gdGhpcy5fdXBkYXRlU2l6ZShmb3JtRmllbGQuc2l6ZSksXG4gICAgICAgIGxhYmVsOiAoZm9ybUZpZWxkKSA9PiB0aGlzLl91cGRhdGVMYWJlbFN0YXRlKGZvcm1GaWVsZCksXG4gICAgICAgIGhpZGRlbkxhYmVsOiAoZm9ybUZpZWxkKSA9PiB0aGlzLl91cGRhdGVMYWJlbFN0YXRlKGZvcm1GaWVsZCksXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlTGFiZWxTdGF0ZShmb3JtRmllbGQ6IFNiYkZvcm1GaWVsZEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCd3aXRob3V0LWxhYmVsJywgIWZvcm1GaWVsZC5sYWJlbCB8fCBmb3JtRmllbGQuaGlkZGVuTGFiZWwpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fc2V0dXBDb21wb25lbnQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlcyk6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKFxuICAgICAgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpIHx8XG4gICAgICBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Zvcm1EaXNhYmxlZCcpIHx8XG4gICAgICBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ25lZ2F0aXZlJylcbiAgICApIHtcbiAgICAgIHRoaXMuX3Byb3h5U3RhdGVUb0NoaXBzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgIF9yZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICApOiB2b2lkIHtcbiAgICBpZiAoIXN0YXRlKSB7XG4gICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9yZWFkRm9ybURhdGEoc3RhdGUgYXMgRm9ybURhdGEpLnRoZW4oKGFycmF5KSA9PiAodGhpcy52YWx1ZSA9IGFycmF5KSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9yZWFkRm9ybURhdGEoZm9ybURhdGE6IEZvcm1EYXRhKTogUHJvbWlzZTxUW10+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgICBmb3JtRGF0YVxuICAgICAgICAuZ2V0QWxsKHRoaXMubmFtZSlcbiAgICAgICAgLm1hcChhc3luYyAoZW50cnkpID0+XG4gICAgICAgICAgZW50cnkgaW5zdGFuY2VvZiBCbG9iID8gSlNPTi5wYXJzZShhd2FpdCBlbnRyeS50ZXh0KCkpIDogKGVudHJ5IGFzIFQpLFxuICAgICAgICApLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2hvdWxkVmFsaWRhdGUobmFtZTogUHJvcGVydHlLZXkgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3VwZXIuc2hvdWxkVmFsaWRhdGUobmFtZSkgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJyB8fCBuYW1lID09PSAndmFsdWUnO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbGlkYXRlKCk6IHZvaWQge1xuICAgIHN1cGVyLnZhbGlkYXRlKCk7XG4gICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgdGhpcy52YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuc2V0VmFsaWRpdHlGbGFnKCd2YWx1ZU1pc3NpbmcnLCBpMThuU2VsZWN0aW9uUmVxdWlyZWRbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJldHVybiB0aGUgbGlzdCBvZiBjaGlwIGVsZW1lbnRzICoqL1xuICBwcml2YXRlIF9jaGlwRWxlbWVudHMoKTogU2JiQ2hpcEVsZW1lbnQ8VD5bXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsPy48U2JiQ2hpcEVsZW1lbnQ8VD4+KCdzYmItY2hpcCcpID8/IFtdKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm4gdGhlIGxpc3Qgb2YgZW5hYmxlZCBjaGlwIGVsZW1lbnRzICoqL1xuICBwcml2YXRlIF9lbmFibGVkQ2hpcEVsZW1lbnRzKCk6IFNiYkNoaXBFbGVtZW50PFQ+W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKCdzYmItY2hpcDpub3QoW2Rpc2FibGVkXSknKSA/PyBbXSk7XG4gIH1cblxuICBwcml2YXRlIF9zZXR1cENvbXBvbmVudCgpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcblxuICAgIC8vIENvbm5lY3QgdG8gdGhlIGlucHV0XG4gICAgaWYgKGlucHV0ICYmIGlucHV0ICE9PSB0aGlzLl9pbnB1dEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5faW5wdXRBdHRyaWJ1dGVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50ID0gaW5wdXQ7XG5cbiAgICAgIHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXYpID0+IHRoaXMuX29uSW5wdXRLZXlEb3duKGV2KSwge1xuICAgICAgICBzaWduYWw6IHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCAoKSA9PiB0aGlzLl9vbklucHV0Qmx1cigpLCB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICBjYXB0dXJlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ2lucHV0QXV0b2NvbXBsZXRlJyxcbiAgICAgICAgKGV2ZW50OiBDdXN0b21FdmVudDx7IG9wdGlvbjogU2JiT3B0aW9uQmFzZUVsZW1lbnQ8VD4gfT4pID0+IHtcbiAgICAgICAgICB0aGlzLl9jcmVhdGVDaGlwRnJvbUlucHV0KCdhdXRvY29tcGxldGUnLCBldmVudC5kZXRhaWw/Lm9wdGlvbi52YWx1ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzaWduYWw6IHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuX2lucHV0QXR0cmlidXRlT2JzZXJ2ZXI/Lm9ic2VydmUodGhpcy5faW5wdXRFbGVtZW50LCB7XG4gICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydyZWFkb25seScsICdkaXNhYmxlZCddLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gSWYgdGhlcmUgaXMgbm8gZm9ybS1maWVsZCwgcmVzZXQgc2l6ZVxuICAgIGlmICghdGhpcy5jbG9zZXN0KCdzYmItZm9ybS1maWVsZCcpKSB7XG4gICAgICB0aGlzLl91cGRhdGVTaXplKG51bGwpO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2VtcHR5JywgdGhpcy52YWx1ZS5sZW5ndGggPT09IDApO1xuICAgIHRoaXMuX3JlYWN0VG9JbnB1dENoYW5nZXMoKTtcbiAgICB0aGlzLl91cGRhdGVJbnB1dERlc2NyaXB0aW9uKCk7XG4gICAgdGhpcy51cGRhdGVGb3JtVmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gZm9yIGtleWJvYXJkIGV2ZW50cyBvbiB0aGUgY2hpcCBlbGVtZW50c1xuICAgKiovXG4gIHByaXZhdGUgX29uQ2hpcEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBldmVudFRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBTYmJDaGlwRWxlbWVudDxUPjtcbiAgICBpZiAoZXZlbnRUYXJnZXQubG9jYWxOYW1lICE9PSAnc2JiLWNoaXAnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQXJyb3cga2V5cyBhbGxvdyBuYXZpZ2F0aW9uIGJldHdlZW4gY2hpcHMgZm9jdXMgc3RlcHNcbiAgICBpZiAoaXNBcnJvd0tleVByZXNzZWQoZXZlbnQpKSB7XG4gICAgICBjb25zdCBmb2N1c1N0ZXBzID0gdGhpcy5fZW5hYmxlZENoaXBFbGVtZW50cygpO1xuICAgICAgY29uc3QgbmV4dCA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZlbnQsIGZvY3VzU3RlcHMuaW5kZXhPZihldmVudFRhcmdldCksIGZvY3VzU3RlcHMubGVuZ3RoKTtcbiAgICAgIGZvY3VzU3RlcHNbbmV4dF0uZm9jdXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnQmFja3NwYWNlJzpcbiAgICAgIGNhc2UgJ0RlbGV0ZSc6XG4gICAgICAgIGlmICghZXZlbnRUYXJnZXQucmVhZE9ubHkgJiYgIWV2ZW50VGFyZ2V0LmRpc2FibGVkKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB0aGlzLl9kZWxldGVDaGlwKGV2ZW50VGFyZ2V0KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIGZvciBrZXlib2FyZCBldmVudHMgb24gdGhlIGlucHV0XG4gICAqKi9cbiAgcHJpdmF0ZSBfb25JbnB1dEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnQmFja3NwYWNlJzpcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgIGlmICghdGhpcy5faW5wdXRFbGVtZW50IS52YWx1ZSkge1xuICAgICAgICAgIHRoaXMuX2ZvY3VzQ2hpcCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyAvLyBQcmV2ZW50cyB0aGUgZm9ybSBzdWJtaXRcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIHVzZXIgdHlwZWQgb25lIG9mIHRoZSBzZXBhcmF0b3Iga2V5cywgdHJpZ2dlciBhICdjaGlwaW5wdXR0b2tlbmVuZCcgZXZlbnRcbiAgICBpZiAodGhpcy5zZXBhcmF0b3JLZXlzLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIHByZXZlbnQgdHlwaW5nIHRoZSBzZXBhcmF0b3Iga2V5IGludG8gdGhlIGlucHV0XG4gICAgICB0aGlzLl9jcmVhdGVDaGlwRnJvbUlucHV0KCdpbnB1dCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgYmx1ciBldmVudCBvbiB0aGUgaW5wdXRcbiAgICoqL1xuICBwcml2YXRlIF9vbklucHV0Qmx1cigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZGRPbkJsdXIpIHtcbiAgICAgIHRoaXMuX2NyZWF0ZUNoaXBGcm9tSW5wdXQoJ2lucHV0Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIElmIHRoZSBpbnB1dCBpcyBub3QgZW1wdHksIGNyZWF0ZSBhIGNoaXAgd2l0aCBpdHMgdmFsdWVcbiAgICovXG4gIHByaXZhdGUgX2NyZWF0ZUNoaXBGcm9tSW5wdXQob3JpZ2luOiAnaW5wdXQnIHwgJ2F1dG9jb21wbGV0ZScgPSAnaW5wdXQnLCB2YWx1ZT86IFQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dFZhbHVlID0gdmFsdWUgPz8gdGhpcy5faW5wdXRFbGVtZW50IS52YWx1ZS50cmltKCk7XG4gICAgaWYgKCFpbnB1dFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXZlbnQgPSBuZXcgU2JiQ2hpcElucHV0VG9rZW5FbmRFdmVudDxUPih7XG4gICAgICBvcmlnaW4sXG4gICAgICB2YWx1ZTogaW5wdXRWYWx1ZSBhcyBzdHJpbmcsXG4gICAgICBsYWJlbDogKHZhbHVlID8gdGhpcy5kaXNwbGF5V2l0aD8uKHZhbHVlKSA6IG51bGwpID8/IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgICBpZiAoIXRoaXMuZGlzcGF0Y2hFdmVudChldmVudCkpIHtcbiAgICAgIHJldHVybjsgLy8gZXZlbnQgcHJldmVudGVkOyBkbyBub3RoaW5nICh0aGUgY29uc3VtZXIgaGFzIHRvIGNyZWF0ZSB0aGUgY2hpcClcbiAgICB9XG5cbiAgICB0aGlzLl9jcmVhdGVDaGlwRWxlbWVudChldmVudC52YWx1ZSBhcyBULCBldmVudC5sYWJlbCk7XG4gICAgdGhpcy5faW5wdXRFbGVtZW50IS52YWx1ZSA9ICcnOyAvLyBFbXB0eSB0aGUgaW5wdXRcbiAgICB0aGlzLl9lbWl0SW5wdXRFdmVudHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RlbGV0ZUNoaXAoY2hpcDogU2JiQ2hpcEVsZW1lbnQ8VD4pOiB2b2lkIHtcbiAgICBjb25zdCBjaGlwcyA9IHRoaXMuX2VuYWJsZWRDaGlwRWxlbWVudHMoKTtcbiAgICBjaGlwLnJlbW92ZSgpO1xuICAgIHRoaXMuX2VtaXRJbnB1dEV2ZW50cygpO1xuICAgIHRoaXMuX2ZvY3VzQ2hpcChjaGlwcy5pbmRleE9mKGNoaXApKTsgLy8gRm9jdXMgdGhlIG5leHQgY2hpcFxuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzIGFuIGVuYWJsZWQgY2hpcC4gSWYgbm9uZSBhcmUgcHJlc2VudCwgZm9jdXMgdGhlIGlucHV0XG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIGVuYWJsZWQgY2hpcC4gSWYgbnVsbCwgZm9jdXMgdGhlIGxhc3Qgb25lLlxuICAgKi9cbiAgcHJpdmF0ZSBfZm9jdXNDaGlwKGluZGV4PzogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZW5hYmxlZENoaXBzID0gdGhpcy5fZW5hYmxlZENoaXBFbGVtZW50cygpO1xuXG4gICAgaWYgKGluZGV4ICE9PSB1bmRlZmluZWQgJiYgZW5hYmxlZENoaXBzW2luZGV4XSkge1xuICAgICAgZW5hYmxlZENoaXBzW2luZGV4XS5mb2N1cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChlbmFibGVkQ2hpcHMubGVuZ3RoID4gMCkge1xuICAgICAgZW5hYmxlZENoaXBzW2VuYWJsZWRDaGlwcy5sZW5ndGggLSAxXS5mb2N1cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2lucHV0RWxlbWVudD8uZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VtaXRJbnB1dEV2ZW50cygpOiB2b2lkIHtcbiAgICAvKiogVGhlIGlucHV0IGV2ZW50IGZpcmVzIHdoZW4gdGhlIHZhbHVlIGhhcyBiZWVuIGNoYW5nZWQgYXMgYSBkaXJlY3QgcmVzdWx0IG9mIGEgdXNlciBhY3Rpb24uICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNoYW5nZSBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIG1vZGlmaWVzIHRoZSBlbGVtZW50J3MgdmFsdWUuXG4gICAgICogVW5saWtlIHRoZSBpbnB1dCBldmVudCwgdGhlIGNoYW5nZSBldmVudCBpcyBub3QgbmVjZXNzYXJpbHkgZmlyZWRcbiAgICAgKiBmb3IgZWFjaCBhbHRlcmF0aW9uIHRvIGFuIGVsZW1lbnQncyB2YWx1ZS5cbiAgICAgKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlQ2hpcEVsZW1lbnQodmFsdWU6IFQgfCBudWxsLCBsYWJlbD86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBuZXdDaGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2JiLWNoaXAnKSBhcyBTYmJDaGlwRWxlbWVudDxUPjtcbiAgICBuZXdDaGlwLnZhbHVlID0gdmFsdWU7XG4gICAgbmV3Q2hpcC5pbm5lclRleHQgPSBsYWJlbCA/PyAodmFsdWUgPyB0aGlzLmRpc3BsYXlXaXRoPy4odmFsdWUpIDogbnVsbCkgPz8gJyc7XG4gICAgaWYgKFxuICAgICAgaW1wb3J0Lm1ldGEuZW52LkRFViAmJlxuICAgICAgIWRpc3BsYXlXaXRoV2FybmluZ0xvZ2dlZCAmJlxuICAgICAgIWxhYmVsICYmXG4gICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgICAhdGhpcy5kaXNwbGF5V2l0aFxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgZGlzcGxheVdpdGggaGFzIG5vdCBiZWVuIHNldCB5ZXQgZm9yIHNiYi1jaGlwLWdyb3VwIGFuZCB2YWx1ZSBpcyBhbiBvYmplY3QuXG4gICAgICAgICBJZiB5b3UgYXJlIHVzaW5nIG9iamVjdCB2YWx1ZXMsIHlvdSBuZWVkIHRvIHByb3ZpZGUgZGlzcGxheVdpZHRoIGJlZm9yZVxuICAgICAgICAgc2V0dGluZyBvciBzZWxlY3RpbmcgYW55IHZhbHVlLmAsXG4gICAgICApO1xuICAgICAgZGlzcGxheVdpdGhXYXJuaW5nTG9nZ2VkID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5pbnNlcnRCZWZvcmUobmV3Q2hpcCwgdGhpcy5faW5wdXRFbGVtZW50ID8/IHRoaXMucXVlcnlTZWxlY3RvcignaW5wdXQnKSk7XG4gIH1cblxuICBwcml2YXRlIF9yZWFjdFRvSW5wdXRDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSB0aGlzLl9pbnB1dEVsZW1lbnQ/LmRpc2FibGVkID8/IGZhbHNlO1xuICAgIHRoaXMuX3Byb3h5U3RhdGVUb0NoaXBzKCk7XG4gIH1cblxuICBwcml2YXRlIF9wcm94eVN0YXRlVG9DaGlwcygpOiB2b2lkIHtcbiAgICB0aGlzLl9jaGlwRWxlbWVudHMoKS5mb3JFYWNoKChjKSA9PiB7XG4gICAgICBjLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmZvcm1EaXNhYmxlZDtcbiAgICAgIGMucmVhZE9ubHkgPSB0aGlzLl9pbnB1dEVsZW1lbnQ/Lmhhc0F0dHJpYnV0ZSgncmVhZG9ubHknKSA/PyBmYWxzZTtcbiAgICAgIGMubmVnYXRpdmUgPSB0aGlzLm5lZ2F0aXZlO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlU2l6ZShzaXplOiBTYmJGb3JtRmllbGRFbGVtZW50WydzaXplJ10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcHJldmlvdXNTaXplKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKGBzaXplLSR7dGhpcy5fcHJldmlvdXNTaXplfWApO1xuICAgIH1cbiAgICB0aGlzLl9wcmV2aW91c1NpemUgPSBzaXplO1xuICAgIGlmICh0aGlzLl9wcmV2aW91c1NpemUpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYHNpemUtJHt0aGlzLl9wcmV2aW91c1NpemV9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlSW5wdXREZXNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lucHV0RWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgJ2FyaWEtZGVzY3JpcHRpb24nLFxuICAgICAgYCR7aTE4bkNoaXBHcm91cElucHV0RGVzY3JpcHRpb25bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19ICR7dGhpcy52YWx1ZS5sZW5ndGh9YCxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9zZXR1cENvbXBvbmVudH0+PC9zbG90PmA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1jaGlwLWdyb3VwJzogU2JiQ2hpcEdyb3VwRWxlbWVudDtcbiAgfVxuXG4gIGludGVyZmFjZSBIVE1MRWxlbWVudEV2ZW50TWFwIHtcbiAgICBjaGlwaW5wdXR0b2tlbmVuZDogU2JiQ2hpcElucHV0VG9rZW5FbmRFdmVudDxhbnk+O1xuICB9XG59XG4iXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQ21DQSxJQUFhLDRCQUFiLGNBQTJELFlBRTFEOzs7O0NBY0MsSUFBb0IsU0FBTTtFQUN4QixPQUFPO0NBQ1Q7Q0FFQSxZQUFtQixTQUFzRTtFQUN2RixNQUFNLHFCQUFxQjtHQUN6QixZQUFZO0dBQ1osU0FBUztHQUNULFVBQVU7R0FDWDtFQUNELEtBQUssU0FBUyxRQUFRO0VBQ3RCLEtBQUssUUFBUSxRQUFRO0VBQ3JCLEtBQUssUUFBUSxRQUFRO0NBQ3ZCOztDQUdPLFNBQVMsT0FBUTtFQUN0QixLQUFLLFFBQVE7Q0FDZjs7Q0FFTyxTQUFTLE9BQWE7RUFDM0IsS0FBSyxRQUFRO0NBQ2Y7Ozs7Ozs7OztJQTZCVyw2QkFBbUI7bUJBQXFCLGlCQUNuRCxpQkFBaUIsaUJBQWlCLHVCQUF1QixVQUFVLENBQUMsQ0FBQyxDQUFDOzs7Ozs7Ozs7Ozs7Y0FEM0QsNEJBQXdDLFlBRXBEOzs7NEJBV0UsU0FBUyxFQUFFLE1BQU0sTUFBSyxDQUFFLENBQUM7OEJBa0N6QixTQUFTLEVBQUUsV0FBVyxNQUFLLENBQUUsQ0FBQztnQ0FJOUIsU0FBUztJQUFFLFdBQVc7SUFBa0IsTUFBTTtHQUFLLENBQUUsQ0FBQzs0QkFJdEQsVUFBUyxHQUNULFNBQVM7SUFBRSxXQUFXO0lBQWUsTUFBTTtHQUFPLENB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
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"overlay-close-details.d.ts","sourceRoot":"","sources":["../../../../../src/elements/core/interfaces/overlay-close-details.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,MAAM,WAAW,2BAA2B;IAC1C,WAAW,CAAC,EAAE,GAAG,CAAC;IAClB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B"}
|