@sbb-esta/lyne-elements-dev 4.7.0-dev.1773406096 → 4.7.0-dev.1773409936
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/chip/chip-group/chip-group.component.js +56 -42
- package/chip/chip-group.js +3 -1
- package/chip.js +6 -4
- package/chip.pure.js +5 -4
- package/custom-elements.json +101 -25
- package/development/chip/chip-group/chip-group.component.d.ts +25 -4
- package/development/chip/chip-group/chip-group.component.d.ts.map +1 -1
- package/development/chip/chip-group/chip-group.component.js +34 -17
- package/development/chip/chip-group.js +4 -2
- package/development/chip.js +4 -2
- package/development/chip.pure.js +3 -2
- package/package.json +2 -2
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
var x = (
|
|
2
|
-
throw TypeError(
|
|
1
|
+
var x = (a) => {
|
|
2
|
+
throw TypeError(a);
|
|
3
3
|
};
|
|
4
|
-
var I = (
|
|
5
|
-
var d = (
|
|
4
|
+
var I = (a, i, l) => i.has(a) || x("Cannot " + l);
|
|
5
|
+
var d = (a, i, l) => (I(a, i, "read from private field"), l ? l.call(a) : i.get(a)), g = (a, i, l) => i.has(a) ? x("Cannot add the same private member more than once") : i instanceof WeakSet ? i.add(a) : i.set(a, l), h = (a, i, l, c) => (I(a, i, "write to private field"), c ? c.call(a, l) : i.set(a, l), l);
|
|
6
6
|
import { __esDecorate as _, __runInitializers as p } from "tslib";
|
|
7
7
|
import { css as B, isServer as O, html as D } from "lit";
|
|
8
8
|
import { property as y } from "lit/decorators.js";
|
|
9
9
|
import { isArrowKeyPressed as K, getNextElementIndex as L } from "../../core/a11y.js";
|
|
10
10
|
import { SbbElement as W } from "../../core/base-elements.js";
|
|
11
|
-
import { SbbLanguageController as
|
|
11
|
+
import { SbbLanguageController as F, SbbPropertyWatcherController as T } from "../../core/controllers.js";
|
|
12
12
|
import { forceType as q } from "../../core/decorators.js";
|
|
13
13
|
import { isLean as V } from "../../core/dom/lean-context.js";
|
|
14
14
|
import { i18nSelectionRequired as M, i18nChipGroupInputDescription as N } from "../../core/i18n.js";
|
|
@@ -16,16 +16,39 @@ import { SbbRequiredMixin as R, SbbDisabledMixin as $, SbbNegativeMixin as j, Sb
|
|
|
16
16
|
import { boxSizingStyles as J } from "../../core/styles.js";
|
|
17
17
|
import { SbbChipElement as P } from "../chip/chip.component.js";
|
|
18
18
|
const H = B`:host{width:100%;display:flex;flex-wrap:wrap;gap:var(--sbb-chip-group-gap);align-items:center;margin-block:var(--sbb-chip-group-margin-block)}:host(:is(:is(:state(size-s),[state--size-s]),:is(:state(empty),[state--empty]))){--sbb-chip-group-margin-block: 0}:host(:is(:state(size-s),[state--size-s]):not(:is(:state(empty),[state--empty]))){--sbb-chip-group-margin-block: .375rem .3125rem}@media(min-width:64rem){:host(:is(:state(size-s),[state--size-s]):not(:is(:state(empty),[state--empty]))){--sbb-chip-group-margin-block: .3125rem .1875rem}}:host(:is(:state(without-label),[state--without-label]):is(:state(size-s),[state--size-s]):not(:is(:state(empty),[state--empty]))){--sbb-chip-group-margin-block: 0 .4375rem}@media(min-width:64rem){:host(:is(:state(without-label),[state--without-label]):is(:state(size-s),[state--size-s]):not(:is(:state(empty),[state--empty]))){--sbb-chip-group-margin-block: 0 .3125rem}}:host(:is(:is(:state(size-l),[state--size-l]),:is(:state(size-m),[state--size-m]))){--sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default) 0}@media(min-width:64rem){:host(:is(:is(:state(size-l),[state--size-l]),:is(:state(size-m),[state--size-m]))){--sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default-large) 0}}:host(:is(:state(without-label),[state--without-label]):is(:state(size-m),[state--size-m]):not(:is(:state(empty),[state--empty]))){--sbb-chip-group-margin-block: .1875rem .6875rem}@media(min-width:64rem){:host(:is(:state(without-label),[state--without-label]):is(:state(size-m),[state--size-m]):not(:is(:state(empty),[state--empty]))){--sbb-chip-group-margin-block: .1875rem .875rem}}: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]))){--sbb-chip-group-margin-block: var(--sbb-chip-group-margin-block-no-label-not-empty)}:host(:not(:is(:state(without-label),[state--without-label])):is(:state(size-m),[state--size-m]):not(:is(:state(empty),[state--empty]))){--sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default) var(--_sbb-chip-group-margin-block-start-default-large)}@media(min-width:64rem){:host(:not(:is(:state(without-label),[state--without-label])):is(:state(size-m),[state--size-m]):not(:is(:state(empty),[state--empty]))){--sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default-large) var(--_sbb-chip-group-margin-block-start-default-large)}}: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]))){--sbb-chip-group-margin-block: var(--sbb-chip-group-margin-block-with-label-not-empty)}:host(:is(:state(without-label),[state--without-label]):is(:state(size-l),[state--size-l]):not(:is(:state(empty),[state--empty]))){--sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default) 1rem}@media(min-width:64rem){:host(:is(:state(without-label),[state--without-label]):is(:state(size-l),[state--size-l]):not(:is(:state(empty),[state--empty]))){--sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default-large) 1.25rem}}:host(:not(:is(:state(without-label),[state--without-label])):is(:state(size-l),[state--size-l]):not(:is(:state(empty),[state--empty]))){--sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default) .46875rem}@media(min-width:64rem){:host(:not(:is(:state(without-label),[state--without-label])):is(:state(size-l),[state--size-l]):not(:is(:state(empty),[state--empty]))){--sbb-chip-group-margin-block: var(--_sbb-chip-group-margin-block-start-default-large) .46875rem}}::slotted(input){flex:1 1 var(--sbb-chip-group-input-min-width);max-height:1.5rem}::slotted(sbb-chip){max-width:100%}`;
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
19
|
+
class Q extends CustomEvent {
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated Use event properties directly.
|
|
22
|
+
*/
|
|
23
|
+
get detail() {
|
|
24
|
+
return this;
|
|
25
|
+
}
|
|
26
|
+
constructor(i) {
|
|
27
|
+
super("chipinputtokenend", {
|
|
28
|
+
cancelable: !0,
|
|
29
|
+
bubbles: !0,
|
|
30
|
+
composed: !0
|
|
31
|
+
}), this.origin = i.origin, this.value = i.value, this.label = i.label;
|
|
32
|
+
}
|
|
33
|
+
/** Set a new value for the chip that will be created */
|
|
34
|
+
setValue(i) {
|
|
35
|
+
this.value = i;
|
|
36
|
+
}
|
|
37
|
+
/** Set a label for the chip that will be created */
|
|
38
|
+
setLabel(i) {
|
|
39
|
+
this.label = i;
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
let pt = (() => {
|
|
43
|
+
var u, b, m, r;
|
|
44
|
+
let a = R($(j(U(W)))), i = [], l, c, f = [], v = [], z, w = [], k = [], E, C = [], S = [];
|
|
45
|
+
return r = class extends a {
|
|
23
46
|
constructor() {
|
|
24
47
|
super();
|
|
25
48
|
g(this, u);
|
|
26
|
-
g(this, m);
|
|
27
49
|
g(this, b);
|
|
28
|
-
|
|
50
|
+
g(this, m);
|
|
51
|
+
h(this, u, (p(this, i), p(this, f, null))), h(this, b, (p(this, v), p(this, w, ["Enter"]))), h(this, m, (p(this, k), p(this, C, !1))), this._inputAttributeObserver = (p(this, S), O ? null : new MutationObserver(() => this._reactToInputChanges())), this._language = new F(this), this.addEventListener?.(P.events.requestdelete, (t) => this._deleteChip(t.target)), this.addEventListener?.("keydown", (t) => this._onChipKeyDown(t)), this.addController(new T(this, () => this.closest("sbb-form-field"), {
|
|
29
52
|
size: (t) => this._updateSize(t.size),
|
|
30
53
|
label: (t) => this._updateLabelState(t),
|
|
31
54
|
hiddenLabel: (t) => this._updateLabelState(t)
|
|
@@ -35,13 +58,13 @@ let ht = (() => {
|
|
|
35
58
|
set value(t) {
|
|
36
59
|
t = t ?? [];
|
|
37
60
|
const e = this.value, s = [...e];
|
|
38
|
-
for (const
|
|
39
|
-
s.includes(
|
|
40
|
-
s.forEach((
|
|
41
|
-
const
|
|
42
|
-
for (const
|
|
43
|
-
|
|
44
|
-
|
|
61
|
+
for (const o of t)
|
|
62
|
+
s.includes(o) && s.splice(s.indexOf(o), 1);
|
|
63
|
+
s.forEach((o) => this._chipElements().find((A) => A.value === o)?.remove());
|
|
64
|
+
const n = [...t];
|
|
65
|
+
for (const o of e)
|
|
66
|
+
n.includes(o) && n.splice(n.indexOf(o), 1);
|
|
67
|
+
n.forEach((o) => this._createChipElement(o));
|
|
45
68
|
}
|
|
46
69
|
get value() {
|
|
47
70
|
return this._chipElements().map((t) => t.value);
|
|
@@ -55,17 +78,17 @@ let ht = (() => {
|
|
|
55
78
|
}
|
|
56
79
|
/** The array of keys that will trigger a `chipinputtokenend` event. Default `['Enter']` */
|
|
57
80
|
get separatorKeys() {
|
|
58
|
-
return d(this,
|
|
81
|
+
return d(this, b);
|
|
59
82
|
}
|
|
60
83
|
set separatorKeys(t) {
|
|
61
|
-
h(this,
|
|
84
|
+
h(this, b, t);
|
|
62
85
|
}
|
|
63
86
|
/** Whether to automatically add a chip when the input loses focus if there's a value. */
|
|
64
87
|
get addOnBlur() {
|
|
65
|
-
return d(this,
|
|
88
|
+
return d(this, m);
|
|
66
89
|
}
|
|
67
90
|
set addOnBlur(t) {
|
|
68
|
-
h(this,
|
|
91
|
+
h(this, m, t);
|
|
69
92
|
}
|
|
70
93
|
_updateLabelState(t) {
|
|
71
94
|
this.toggleState("without-label", !t.label || t.hiddenLabel);
|
|
@@ -128,8 +151,8 @@ let ht = (() => {
|
|
|
128
151
|
const e = t.target;
|
|
129
152
|
if (e.localName === "sbb-chip") {
|
|
130
153
|
if (K(t)) {
|
|
131
|
-
const s = this._enabledChipElements(),
|
|
132
|
-
s[
|
|
154
|
+
const s = this._enabledChipElements(), n = L(t, s.indexOf(e), s.length);
|
|
155
|
+
s[n].focus();
|
|
133
156
|
return;
|
|
134
157
|
}
|
|
135
158
|
switch (t.key) {
|
|
@@ -168,22 +191,12 @@ let ht = (() => {
|
|
|
168
191
|
const s = e ?? this._inputElement.value.trim();
|
|
169
192
|
if (!s)
|
|
170
193
|
return;
|
|
171
|
-
const
|
|
194
|
+
const n = new Q({
|
|
172
195
|
origin: t,
|
|
173
196
|
value: s,
|
|
174
|
-
label: (e ? this.displayWith?.(e) : null) ?? void 0
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
};
|
|
178
|
-
this._dispatchChipInputTokenEnd(o) && (this._createChipElement(o.value, o.label), this._inputElement.value = "", this._emitInputEvents());
|
|
179
|
-
}
|
|
180
|
-
_dispatchChipInputTokenEnd(t) {
|
|
181
|
-
return this.dispatchEvent(new CustomEvent("chipinputtokenend", {
|
|
182
|
-
detail: t,
|
|
183
|
-
cancelable: !0,
|
|
184
|
-
bubbles: !0,
|
|
185
|
-
composed: !0
|
|
186
|
-
}));
|
|
197
|
+
label: (e ? this.displayWith?.(e) : null) ?? void 0
|
|
198
|
+
});
|
|
199
|
+
this.dispatchEvent(n) && (this._createChipElement(n.value, n.label), this._inputElement.value = "", this._emitInputEvents());
|
|
187
200
|
}
|
|
188
201
|
_deleteChip(t) {
|
|
189
202
|
const e = this._enabledChipElements();
|
|
@@ -231,11 +244,11 @@ let ht = (() => {
|
|
|
231
244
|
render() {
|
|
232
245
|
return D`<slot @slotchange=${this._setupComponent}></slot>`;
|
|
233
246
|
}
|
|
234
|
-
}, u = new WeakMap(),
|
|
235
|
-
const t = typeof Symbol == "function" && Symbol.metadata ? Object.create(
|
|
247
|
+
}, u = new WeakMap(), b = new WeakMap(), m = new WeakMap(), (() => {
|
|
248
|
+
const t = typeof Symbol == "function" && Symbol.metadata ? Object.create(a[Symbol.metadata] ?? null) : void 0;
|
|
236
249
|
l = [y({ type: Array })], c = [y({ attribute: !1 })], z = [y({ attribute: "separator-keys", type: Array })], E = [q(), y({ attribute: "add-on-blur", type: Boolean })], _(r, null, l, { kind: "setter", name: "value", static: !1, private: !1, access: { has: (e) => "value" in e, set: (e, s) => {
|
|
237
250
|
e.value = s;
|
|
238
|
-
} }, metadata: t }, null,
|
|
251
|
+
} }, metadata: t }, null, i), _(r, null, c, { kind: "accessor", name: "displayWith", static: !1, private: !1, access: { has: (e) => "displayWith" in e, get: (e) => e.displayWith, set: (e, s) => {
|
|
239
252
|
e.displayWith = s;
|
|
240
253
|
} }, metadata: t }, f, v), _(r, null, z, { kind: "accessor", name: "separatorKeys", static: !1, private: !1, access: { has: (e) => "separatorKeys" in e, get: (e) => e.separatorKeys, set: (e, s) => {
|
|
241
254
|
e.separatorKeys = s;
|
|
@@ -249,5 +262,6 @@ let ht = (() => {
|
|
|
249
262
|
}, r;
|
|
250
263
|
})();
|
|
251
264
|
export {
|
|
252
|
-
|
|
265
|
+
pt as SbbChipGroupElement,
|
|
266
|
+
Q as SbbChipInputTokenEndEvent
|
|
253
267
|
};
|
package/chip/chip-group.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { SbbChipGroupElement as e } from "./chip-group/chip-group.component.js";
|
|
2
|
+
import { SbbChipInputTokenEndEvent as p } from "./chip-group/chip-group.component.js";
|
|
2
3
|
e.define();
|
|
3
4
|
console.warn(`The entrypoint '@sbb-esta/elements/chip/chip-group.js' has been deprecated.
|
|
4
5
|
Use either '@sbb-esta/elements/chip.js' or '@sbb-esta/elements/chip.pure.js' instead.`);
|
|
5
6
|
export {
|
|
6
|
-
e as SbbChipGroupElement
|
|
7
|
+
e as SbbChipGroupElement,
|
|
8
|
+
p as SbbChipInputTokenEndEvent
|
|
7
9
|
};
|
package/chip.js
CHANGED
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { SbbChipGroupElement as e } from "./chip/chip-group/chip-group.component.js";
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { SbbChipInputTokenEndEvent as i } from "./chip/chip-group/chip-group.component.js";
|
|
3
|
+
import { SbbChipElement as o } from "./chip/chip/chip.component.js";
|
|
4
|
+
o.define();
|
|
4
5
|
e.define();
|
|
5
6
|
export {
|
|
6
|
-
|
|
7
|
-
e as SbbChipGroupElement
|
|
7
|
+
o as SbbChipElement,
|
|
8
|
+
e as SbbChipGroupElement,
|
|
9
|
+
i as SbbChipInputTokenEndEvent
|
|
8
10
|
};
|
package/chip.pure.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { SbbChipGroupElement as
|
|
2
|
-
import { SbbChipElement as
|
|
1
|
+
import { SbbChipGroupElement as b, SbbChipInputTokenEndEvent as n } from "./chip/chip-group/chip-group.component.js";
|
|
2
|
+
import { SbbChipElement as t } from "./chip/chip/chip.component.js";
|
|
3
3
|
export {
|
|
4
|
-
|
|
5
|
-
|
|
4
|
+
t as SbbChipElement,
|
|
5
|
+
b as SbbChipGroupElement,
|
|
6
|
+
n as SbbChipInputTokenEndEvent
|
|
6
7
|
};
|
package/custom-elements.json
CHANGED
|
@@ -55171,6 +55171,92 @@
|
|
|
55171
55171
|
"kind": "javascript-module",
|
|
55172
55172
|
"path": "chip/chip-group/chip-group.component.js",
|
|
55173
55173
|
"declarations": [
|
|
55174
|
+
{
|
|
55175
|
+
"kind": "class",
|
|
55176
|
+
"description": "",
|
|
55177
|
+
"name": "SbbChipInputTokenEndEvent",
|
|
55178
|
+
"members": [
|
|
55179
|
+
{
|
|
55180
|
+
"kind": "field",
|
|
55181
|
+
"name": "origin",
|
|
55182
|
+
"type": {
|
|
55183
|
+
"text": "'input' | 'autocomplete'"
|
|
55184
|
+
},
|
|
55185
|
+
"privacy": "public",
|
|
55186
|
+
"description": "The element that triggered the chip creation"
|
|
55187
|
+
},
|
|
55188
|
+
{
|
|
55189
|
+
"kind": "field",
|
|
55190
|
+
"name": "value",
|
|
55191
|
+
"type": {
|
|
55192
|
+
"text": "T | string"
|
|
55193
|
+
},
|
|
55194
|
+
"privacy": "public",
|
|
55195
|
+
"description": "The value of the new chip. Either the input or the option value depending on the origin.\nEither the value from the input which is always `string` or the value from the selected option\nfrom an autocomplete, which can be either a string or any other type."
|
|
55196
|
+
},
|
|
55197
|
+
{
|
|
55198
|
+
"kind": "field",
|
|
55199
|
+
"name": "label",
|
|
55200
|
+
"type": {
|
|
55201
|
+
"text": "string | undefined"
|
|
55202
|
+
},
|
|
55203
|
+
"privacy": "public"
|
|
55204
|
+
},
|
|
55205
|
+
{
|
|
55206
|
+
"kind": "field",
|
|
55207
|
+
"name": "detail",
|
|
55208
|
+
"type": {
|
|
55209
|
+
"text": "SbbChipInputTokenEndEventDetails<T>"
|
|
55210
|
+
},
|
|
55211
|
+
"privacy": "public",
|
|
55212
|
+
"deprecated": "Use event properties directly.",
|
|
55213
|
+
"readonly": true
|
|
55214
|
+
},
|
|
55215
|
+
{
|
|
55216
|
+
"kind": "method",
|
|
55217
|
+
"name": "setValue",
|
|
55218
|
+
"privacy": "public",
|
|
55219
|
+
"return": {
|
|
55220
|
+
"type": {
|
|
55221
|
+
"text": "void"
|
|
55222
|
+
}
|
|
55223
|
+
},
|
|
55224
|
+
"parameters": [
|
|
55225
|
+
{
|
|
55226
|
+
"name": "value",
|
|
55227
|
+
"type": {
|
|
55228
|
+
"text": "T"
|
|
55229
|
+
}
|
|
55230
|
+
}
|
|
55231
|
+
],
|
|
55232
|
+
"description": "Set a new value for the chip that will be created"
|
|
55233
|
+
},
|
|
55234
|
+
{
|
|
55235
|
+
"kind": "method",
|
|
55236
|
+
"name": "setLabel",
|
|
55237
|
+
"privacy": "public",
|
|
55238
|
+
"return": {
|
|
55239
|
+
"type": {
|
|
55240
|
+
"text": "void"
|
|
55241
|
+
}
|
|
55242
|
+
},
|
|
55243
|
+
"parameters": [
|
|
55244
|
+
{
|
|
55245
|
+
"name": "label",
|
|
55246
|
+
"type": {
|
|
55247
|
+
"text": "string"
|
|
55248
|
+
}
|
|
55249
|
+
}
|
|
55250
|
+
],
|
|
55251
|
+
"description": "Set a label for the chip that will be created"
|
|
55252
|
+
}
|
|
55253
|
+
],
|
|
55254
|
+
"superclass": {
|
|
55255
|
+
"name": "CustomEvent",
|
|
55256
|
+
"module": "chip/chip-group/chip-group.component.js"
|
|
55257
|
+
},
|
|
55258
|
+
"classGenerics": "T = string"
|
|
55259
|
+
},
|
|
55174
55260
|
{
|
|
55175
55261
|
"kind": "class",
|
|
55176
55262
|
"description": "The `sbb-chip-group` component is used as a container for one or multiple `sbb-chip`.",
|
|
@@ -55483,24 +55569,6 @@
|
|
|
55483
55569
|
],
|
|
55484
55570
|
"description": "If the input is not empty, create a chip with its value"
|
|
55485
55571
|
},
|
|
55486
|
-
{
|
|
55487
|
-
"kind": "method",
|
|
55488
|
-
"name": "_dispatchChipInputTokenEnd",
|
|
55489
|
-
"privacy": "private",
|
|
55490
|
-
"return": {
|
|
55491
|
-
"type": {
|
|
55492
|
-
"text": "boolean"
|
|
55493
|
-
}
|
|
55494
|
-
},
|
|
55495
|
-
"parameters": [
|
|
55496
|
-
{
|
|
55497
|
-
"name": "eventDetail",
|
|
55498
|
-
"type": {
|
|
55499
|
-
"text": "SbbChipInputTokenEndEventDetails<T>"
|
|
55500
|
-
}
|
|
55501
|
-
}
|
|
55502
|
-
]
|
|
55503
|
-
},
|
|
55504
55572
|
{
|
|
55505
55573
|
"kind": "method",
|
|
55506
55574
|
"name": "_deleteChip",
|
|
@@ -56111,13 +56179,6 @@
|
|
|
56111
56179
|
}
|
|
56112
56180
|
],
|
|
56113
56181
|
"events": [
|
|
56114
|
-
{
|
|
56115
|
-
"name": "chipinputtokenend",
|
|
56116
|
-
"type": {
|
|
56117
|
-
"text": "CustomEvent<SbbChipInputTokenEndEventDetails>"
|
|
56118
|
-
},
|
|
56119
|
-
"description": "Notifies that a chip is about to be created. Can be prevented."
|
|
56120
|
-
},
|
|
56121
56182
|
{
|
|
56122
56183
|
"name": "input",
|
|
56123
56184
|
"type": {
|
|
@@ -56131,6 +56192,13 @@
|
|
|
56131
56192
|
"text": "Event"
|
|
56132
56193
|
},
|
|
56133
56194
|
"description": "The change event is fired when the user modifies the element's value.\nUnlike the input event, the change event is not necessarily fired\nfor each alteration to an element's value."
|
|
56195
|
+
},
|
|
56196
|
+
{
|
|
56197
|
+
"type": {
|
|
56198
|
+
"text": "SbbChipInputTokenEndEvent<T>"
|
|
56199
|
+
},
|
|
56200
|
+
"description": "Notifies that a chip is about to be created. Can be prevented.",
|
|
56201
|
+
"name": "chipinputtokenend"
|
|
56134
56202
|
}
|
|
56135
56203
|
],
|
|
56136
56204
|
"attributes": [
|
|
@@ -56239,6 +56307,14 @@
|
|
|
56239
56307
|
}
|
|
56240
56308
|
],
|
|
56241
56309
|
"exports": [
|
|
56310
|
+
{
|
|
56311
|
+
"kind": "js",
|
|
56312
|
+
"name": "SbbChipInputTokenEndEvent",
|
|
56313
|
+
"declaration": {
|
|
56314
|
+
"name": "SbbChipInputTokenEndEvent",
|
|
56315
|
+
"module": "chip/chip-group/chip-group.component.js"
|
|
56316
|
+
}
|
|
56317
|
+
},
|
|
56242
56318
|
{
|
|
56243
56319
|
"kind": "js",
|
|
56244
56320
|
"name": "SbbChipGroupElement",
|
|
@@ -1,6 +1,29 @@
|
|
|
1
1
|
import { CSSResultGroup, PropertyValues, TemplateResult } from 'lit';
|
|
2
2
|
import { SbbElement } from '../../core/base-elements.ts';
|
|
3
3
|
import { FormRestoreReason, FormRestoreState } from '../../core/mixins.ts';
|
|
4
|
+
export declare class SbbChipInputTokenEndEvent<T = string> extends CustomEvent<SbbChipInputTokenEndEventDetails<T>> {
|
|
5
|
+
/** The element that triggered the chip creation */
|
|
6
|
+
origin: 'input' | 'autocomplete';
|
|
7
|
+
/**
|
|
8
|
+
* The value of the new chip. Either the input or the option value depending on the origin.
|
|
9
|
+
* Either the value from the input which is always `string` or the value from the selected option
|
|
10
|
+
* from an autocomplete, which can be either a string or any other type.
|
|
11
|
+
*/
|
|
12
|
+
value: T | string;
|
|
13
|
+
label?: string;
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated Use event properties directly.
|
|
16
|
+
*/
|
|
17
|
+
get detail(): SbbChipInputTokenEndEventDetails<T>;
|
|
18
|
+
constructor(options: Pick<SbbChipInputTokenEndEvent, 'origin' | 'value' | 'label'>);
|
|
19
|
+
/** Set a new value for the chip that will be created */
|
|
20
|
+
setValue(value: T): void;
|
|
21
|
+
/** Set a label for the chip that will be created */
|
|
22
|
+
setLabel(label: string): void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* @deprecated Use `SbbChipInputTokenEndEvent` instead.
|
|
26
|
+
*/
|
|
4
27
|
export interface SbbChipInputTokenEndEventDetails<T = string> {
|
|
5
28
|
/** The element that triggered the chip creation */
|
|
6
29
|
origin: 'input' | 'autocomplete';
|
|
@@ -21,6 +44,7 @@ declare const SbbChipGroupElement_base: import('../../core/mixins.ts').AbstractC
|
|
|
21
44
|
* The `sbb-chip-group` component is used as a container for one or multiple `sbb-chip`.
|
|
22
45
|
*
|
|
23
46
|
* @slot - Use the unnamed slot to add `sbb-chip` elements.
|
|
47
|
+
* @event {SbbChipInputTokenEndEvent<T>} chipinputtokenend - Notifies that a chip is about to be created. Can be prevented.
|
|
24
48
|
* @overrideType value - (T = string[]) | null
|
|
25
49
|
*/
|
|
26
50
|
export declare class SbbChipGroupElement<T = string> extends SbbChipGroupElement_base {
|
|
@@ -81,7 +105,6 @@ export declare class SbbChipGroupElement<T = string> extends SbbChipGroupElement
|
|
|
81
105
|
* If the input is not empty, create a chip with its value
|
|
82
106
|
*/
|
|
83
107
|
private _createChipFromInput;
|
|
84
|
-
private _dispatchChipInputTokenEnd;
|
|
85
108
|
private _deleteChip;
|
|
86
109
|
/**
|
|
87
110
|
* Focus an enabled chip. If none are present, focus the input
|
|
@@ -100,10 +123,8 @@ declare global {
|
|
|
100
123
|
interface HTMLElementTagNameMap {
|
|
101
124
|
'sbb-chip-group': SbbChipGroupElement;
|
|
102
125
|
}
|
|
103
|
-
}
|
|
104
|
-
declare global {
|
|
105
126
|
interface HTMLElementEventMap {
|
|
106
|
-
chipinputtokenend:
|
|
127
|
+
chipinputtokenend: SbbChipInputTokenEndEvent<any>;
|
|
107
128
|
}
|
|
108
129
|
}
|
|
109
130
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chip-group.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/chip/chip-group/chip-group.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,cAAc,EAAkB,KAAK,cAAc,EAAE,KAAK,cAAc,EAAE,MAAM,KAAK,CAAC;AAIpG,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AAKzD,OAAO,EACL,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EAKtB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"chip-group.component.d.ts","sourceRoot":"","sources":["../../../../../src/elements/chip/chip-group/chip-group.component.ts"],"names":[],"mappings":"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"}
|
|
@@ -115,6 +115,32 @@ const style = css`:host {
|
|
|
115
115
|
::slotted(sbb-chip) {
|
|
116
116
|
max-width: 100%;
|
|
117
117
|
}`;
|
|
118
|
+
class SbbChipInputTokenEndEvent extends CustomEvent {
|
|
119
|
+
/**
|
|
120
|
+
* @deprecated Use event properties directly.
|
|
121
|
+
*/
|
|
122
|
+
get detail() {
|
|
123
|
+
return this;
|
|
124
|
+
}
|
|
125
|
+
constructor(options) {
|
|
126
|
+
super("chipinputtokenend", {
|
|
127
|
+
cancelable: true,
|
|
128
|
+
bubbles: true,
|
|
129
|
+
composed: true
|
|
130
|
+
});
|
|
131
|
+
this.origin = options.origin;
|
|
132
|
+
this.value = options.value;
|
|
133
|
+
this.label = options.label;
|
|
134
|
+
}
|
|
135
|
+
/** Set a new value for the chip that will be created */
|
|
136
|
+
setValue(value) {
|
|
137
|
+
this.value = value;
|
|
138
|
+
}
|
|
139
|
+
/** Set a label for the chip that will be created */
|
|
140
|
+
setLabel(label) {
|
|
141
|
+
this.label = label;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
118
144
|
let SbbChipGroupElement = (() => {
|
|
119
145
|
var _displayWith_accessor_storage, _separatorKeys_accessor_storage, _addOnBlur_accessor_storage, _a;
|
|
120
146
|
let _classSuper = SbbRequiredMixin(SbbDisabledMixin(SbbNegativeMixin(SbbFormAssociatedMixin(SbbElement))));
|
|
@@ -330,28 +356,18 @@ let SbbChipGroupElement = (() => {
|
|
|
330
356
|
if (!inputValue) {
|
|
331
357
|
return;
|
|
332
358
|
}
|
|
333
|
-
const
|
|
359
|
+
const event = new SbbChipInputTokenEndEvent({
|
|
334
360
|
origin,
|
|
335
361
|
value: inputValue,
|
|
336
|
-
label: (value ? this.displayWith?.(value) : null) ?? void 0
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
};
|
|
340
|
-
if (!this._dispatchChipInputTokenEnd(eventDetail)) {
|
|
362
|
+
label: (value ? this.displayWith?.(value) : null) ?? void 0
|
|
363
|
+
});
|
|
364
|
+
if (!this.dispatchEvent(event)) {
|
|
341
365
|
return;
|
|
342
366
|
}
|
|
343
|
-
this._createChipElement(
|
|
367
|
+
this._createChipElement(event.value, event.label);
|
|
344
368
|
this._inputElement.value = "";
|
|
345
369
|
this._emitInputEvents();
|
|
346
370
|
}
|
|
347
|
-
_dispatchChipInputTokenEnd(eventDetail) {
|
|
348
|
-
return this.dispatchEvent(new CustomEvent("chipinputtokenend", {
|
|
349
|
-
detail: eventDetail,
|
|
350
|
-
cancelable: true,
|
|
351
|
-
bubbles: true,
|
|
352
|
-
composed: true
|
|
353
|
-
}));
|
|
354
|
-
}
|
|
355
371
|
_deleteChip(chip) {
|
|
356
372
|
const chips = this._enabledChipElements();
|
|
357
373
|
chip.remove();
|
|
@@ -442,6 +458,7 @@ let SbbChipGroupElement = (() => {
|
|
|
442
458
|
}, _a;
|
|
443
459
|
})();
|
|
444
460
|
export {
|
|
445
|
-
SbbChipGroupElement
|
|
461
|
+
SbbChipGroupElement,
|
|
462
|
+
SbbChipInputTokenEndEvent
|
|
446
463
|
};
|
|
447
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jaGlwL2NoaXAtZ3JvdXAvY2hpcC1ncm91cC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgaXNTZXJ2ZXIsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGdldE5leHRFbGVtZW50SW5kZXgsIGlzQXJyb3dLZXlQcmVzc2VkIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LnRzJztcbmltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMudHMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLCBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy50cyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMudHMnO1xuaW1wb3J0IHsgaXNMZWFuIH0gZnJvbSAnLi4vLi4vY29yZS9kb20vbGVhbi1jb250ZXh0LnRzJztcbmltcG9ydCB7IGkxOG5DaGlwR3JvdXBJbnB1dERlc2NyaXB0aW9uLCBpMThuU2VsZWN0aW9uUmVxdWlyZWQgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4udHMnO1xuaW1wb3J0IHtcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBTYmJEaXNhYmxlZE1peGluLFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluLFxuICBTYmJOZWdhdGl2ZU1peGluLFxuICBTYmJSZXF1aXJlZE1peGluLFxufSBmcm9tICcuLi8uLi9jb3JlL21peGlucy50cyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMgfSBmcm9tICcuLi8uLi9jb3JlL3N0eWxlcy50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkZvcm1GaWVsZEVsZW1lbnQgfSBmcm9tICcuLi8uLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcHRpb25CYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL29wdGlvbi9vcHRpb24vb3B0aW9uLWJhc2UtZWxlbWVudC50cyc7XG5pbXBvcnQgeyBTYmJDaGlwRWxlbWVudCB9IGZyb20gJy4uL2NoaXAvY2hpcC5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9jaGlwLWdyb3VwLnNjc3M/bGl0JmlubGluZSc7XG5cbmxldCBkaXNwbGF5V2l0aFdhcm5pbmdMb2dnZWQgPSBmYWxzZTtcblxuZXhwb3J0IGludGVyZmFjZSBTYmJDaGlwSW5wdXRUb2tlbkVuZEV2ZW50RGV0YWlsczxUID0gc3RyaW5nPiB7XG4gIC8qKiBUaGUgZWxlbWVudCB0aGF0IHRyaWdnZXJlZCB0aGUgY2hpcCBjcmVhdGlvbiAqL1xuICBvcmlnaW46ICdpbnB1dCcgfCAnYXV0b2NvbXBsZXRlJztcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgbmV3IGNoaXAuIEVpdGhlciB0aGUgaW5wdXQgb3IgdGhlIG9wdGlvbiB2YWx1ZSBkZXBlbmRpbmcgb24gdGhlIG9yaWdpbi5cbiAgICogRWl0aGVyIHRoZSB2YWx1ZSBmcm9tIHRoZSBpbnB1dCB3aGljaCBpcyBhbHdheXMgYHN0cmluZ2Agb3IgdGhlIHZhbHVlIGZyb20gdGhlIHNlbGVjdGVkIG9wdGlvblxuICAgKiBmcm9tIGFuIGF1dG9jb21wbGV0ZSwgd2hpY2ggY2FuIGJlIGVpdGhlciBhIHN0cmluZyBvciBhbnkgb3RoZXIgdHlwZS5cbiAgICovXG4gIHZhbHVlOiBUIHwgc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbiAgLyoqIFNldCBhIG5ldyB2YWx1ZSBmb3IgdGhlIGNoaXAgdGhhdCB3aWxsIGJlIGNyZWF0ZWQgKi9cbiAgc2V0VmFsdWUodmFsdWU6IFQpOiB2b2lkO1xuICAvKiogU2V0IGEgbGFiZWwgZm9yIHRoZSBjaGlwIHRoYXQgd2lsbCBiZSBjcmVhdGVkICovXG4gIHNldExhYmVsKHZhbHVlOiBzdHJpbmcpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoZSBgc2JiLWNoaXAtZ3JvdXBgIGNvbXBvbmVudCBpcyB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBvbmUgb3IgbXVsdGlwbGUgYHNiYi1jaGlwYC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLWNoaXBgIGVsZW1lbnRzLlxuICogQG92ZXJyaWRlVHlwZSB2YWx1ZSAtIChUID0gc3RyaW5nW10pIHwgbnVsbFxuICovXG5leHBvcnQgY2xhc3MgU2JiQ2hpcEdyb3VwRWxlbWVudDxUID0gc3RyaW5nPiBleHRlbmRzIFNiYlJlcXVpcmVkTWl4aW4oXG4gIFNiYkRpc2FibGVkTWl4aW4oU2JiTmVnYXRpdmVNaXhpbihTYmJGb3JtQXNzb2NpYXRlZE1peGluKFNiYkVsZW1lbnQpKSksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSBlbGVtZW50TmFtZTogc3RyaW5nID0gJ3NiYi1jaGlwLWdyb3VwJztcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSByZWFkb25seSByb2xlID0gJ2xpc3Rib3gnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHN0eWxlczogQ1NTUmVzdWx0R3JvdXAgPSBbYm94U2l6aW5nU3R5bGVzLCBzdHlsZV07XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgZXZlbnRzID0ge1xuICAgIGlucHV0OiAnaW5wdXQnLFxuICAgIGNoYW5nZTogJ2NoYW5nZScsXG4gICAgY2hpcGlucHV0dG9rZW5lbmQ6ICdjaGlwaW5wdXR0b2tlbmVuZCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqIFZhbHVlIG9mIHRoZSBmb3JtIGVsZW1lbnQuICovXG4gIEBwcm9wZXJ0eSh7IHR5cGU6IEFycmF5IH0pXG4gIHB1YmxpYyBzZXQgdmFsdWUodmFsdWU6IChUIHwgbnVsbClbXSB8IG51bGwpIHtcbiAgICB2YWx1ZSA9IHZhbHVlID8/IFtdO1xuICAgIGNvbnN0IG9sZFZhbHVlID0gdGhpcy52YWx1ZTtcblxuICAgIC8vIFN1YnRyYWN0IGZyb20gJ29sZFZhbHVlJyB0aGUgbmV3ICd2YWx1ZSdcbiAgICAvLyBUaGUgcmVzdWx0IGFyZSB0aGUgY2hpcHMgdG8gcmVtb3ZlIChoYW5kbGUgZHVwbGljYXRlcylcbiAgICBjb25zdCB0b1JlbW92ZSA9IFsuLi5vbGRWYWx1ZV07XG4gICAgZm9yIChjb25zdCBjIG9mIHZhbHVlKSB7XG4gICAgICBpZiAodG9SZW1vdmUuaW5jbHVkZXMoYykpIHtcbiAgICAgICAgdG9SZW1vdmUuc3BsaWNlKHRvUmVtb3ZlLmluZGV4T2YoYyksIDEpO1xuICAgICAgfVxuICAgIH1cbiAgICB0b1JlbW92ZS5mb3JFYWNoKCh2YWx1ZSkgPT5cbiAgICAgIHRoaXMuX2NoaXBFbGVtZW50cygpXG4gICAgICAgIC5maW5kKChjKSA9PiBjLnZhbHVlID09PSB2YWx1ZSlcbiAgICAgICAgPy5yZW1vdmUoKSxcbiAgICApO1xuXG4gICAgLy8gU3VidHJhY3QgZnJvbSB0aGUgbmV3ICd2YWx1ZScgd2hhdCB3YXMgYWxyZWFkeSBwcmVzZW50XG4gICAgLy8gVGhlIHJlc3VsdCBhcmUgdGhlIG5ldyBjaGlwcyB0byBhZGQgKGhhbmRsZSBkdXBsaWNhdGVzKVxuICAgIGNvbnN0IHRvQWRkID0gWy4uLnZhbHVlXTtcbiAgICBmb3IgKGNvbnN0IGMgb2Ygb2xkVmFsdWUpIHtcbiAgICAgIGlmICh0b0FkZC5pbmNsdWRlcyhjKSkge1xuICAgICAgICB0b0FkZC5zcGxpY2UodG9BZGQuaW5kZXhPZihjKSwgMSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRvQWRkLmZvckVhY2goKGMpID0+IHRoaXMuX2NyZWF0ZUNoaXBFbGVtZW50KGMpKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHZhbHVlKCk6IChUIHwgbnVsbClbXSB7XG4gICAgcmV0dXJuIHRoaXMuX2NoaXBFbGVtZW50cygpLm1hcCgoYykgPT4gYy52YWx1ZSk7XG4gIH1cblxuICAvKiogRnVuY3Rpb24gdGhhdCBtYXBzIGEgY2hpcCdzIHZhbHVlIHRvIGl0cyBkaXNwbGF5IHZhbHVlLiAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6IGZhbHNlIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBkaXNwbGF5V2l0aDogKCh2YWx1ZTogVCkgPT4gc3RyaW5nKSB8IG51bGwgPSBudWxsO1xuXG4gIC8qKiBUaGUgYXJyYXkgb2Yga2V5cyB0aGF0IHdpbGwgdHJpZ2dlciBhIGBjaGlwaW5wdXR0b2tlbmVuZGAgZXZlbnQuIERlZmF1bHQgYFsnRW50ZXInXWAgKi9cbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnc2VwYXJhdG9yLWtleXMnLCB0eXBlOiBBcnJheSB9KVxuICBwdWJsaWMgYWNjZXNzb3Igc2VwYXJhdG9yS2V5czogc3RyaW5nW10gPSBbJ0VudGVyJ107XG5cbiAgLyoqIFdoZXRoZXIgdG8gYXV0b21hdGljYWxseSBhZGQgYSBjaGlwIHdoZW4gdGhlIGlucHV0IGxvc2VzIGZvY3VzIGlmIHRoZXJlJ3MgYSB2YWx1ZS4gKi9cbiAgQGZvcmNlVHlwZSgpXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FkZC1vbi1ibHVyJywgdHlwZTogQm9vbGVhbiB9KVxuICBwdWJsaWMgYWNjZXNzb3IgYWRkT25CbHVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIExpc3RlbnMgdG8gdGhlIGNoYW5nZXMgb24gYHJlYWRvbmx5YCBhbmQgYGRpc2FibGVkYCBhdHRyaWJ1dGVzIG9mIGA8aW5wdXQ+YC5cbiAgICovXG4gIHByaXZhdGUgX2lucHV0QXR0cmlidXRlT2JzZXJ2ZXIgPSAhaXNTZXJ2ZXJcbiAgICA/IG5ldyBNdXRhdGlvbk9ic2VydmVyKCgpID0+IHRoaXMuX3JlYWN0VG9JbnB1dENoYW5nZXMoKSlcbiAgICA6IG51bGw7XG5cbiAgcHJpdmF0ZSBfaW5wdXRFbGVtZW50OiBIVE1MSW5wdXRFbGVtZW50IHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9pbnB1dEFib3J0Q29udHJvbGxlcjogQWJvcnRDb250cm9sbGVyIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIF9sYW5ndWFnZSA9IG5ldyBTYmJMYW5ndWFnZUNvbnRyb2xsZXIodGhpcyk7XG4gIHByaXZhdGUgX3ByZXZpb3VzU2l6ZT86IFNiYkZvcm1GaWVsZEVsZW1lbnRbJ3NpemUnXTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKFNiYkNoaXBFbGVtZW50LmV2ZW50cy5yZXF1ZXN0ZGVsZXRlLCAoZXYpID0+XG4gICAgICB0aGlzLl9kZWxldGVDaGlwKGV2LnRhcmdldCBhcyBTYmJDaGlwRWxlbWVudDxUPiksXG4gICAgKTtcblxuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcj8uKCdrZXlkb3duJywgKGV2KSA9PiB0aGlzLl9vbkNoaXBLZXlEb3duKGV2KSk7XG5cbiAgICB0aGlzLmFkZENvbnRyb2xsZXIoXG4gICAgICBuZXcgU2JiUHJvcGVydHlXYXRjaGVyQ29udHJvbGxlcih0aGlzLCAoKSA9PiB0aGlzLmNsb3Nlc3QoJ3NiYi1mb3JtLWZpZWxkJyksIHtcbiAgICAgICAgc2l6ZTogKGZvcm1GaWVsZCkgPT4gdGhpcy5fdXBkYXRlU2l6ZShmb3JtRmllbGQuc2l6ZSksXG4gICAgICAgIGxhYmVsOiAoZm9ybUZpZWxkKSA9PiB0aGlzLl91cGRhdGVMYWJlbFN0YXRlKGZvcm1GaWVsZCksXG4gICAgICAgIGhpZGRlbkxhYmVsOiAoZm9ybUZpZWxkKSA9PiB0aGlzLl91cGRhdGVMYWJlbFN0YXRlKGZvcm1GaWVsZCksXG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlTGFiZWxTdGF0ZShmb3JtRmllbGQ6IFNiYkZvcm1GaWVsZEVsZW1lbnQpOiB2b2lkIHtcbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCd3aXRob3V0LWxhYmVsJywgIWZvcm1GaWVsZC5sYWJlbCB8fCBmb3JtRmllbGQuaGlkZGVuTGFiZWwpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgdGhpcy5fc2V0dXBDb21wb25lbnQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlcyk6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKFxuICAgICAgY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpIHx8XG4gICAgICBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Zvcm1EaXNhYmxlZCcpIHx8XG4gICAgICBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ25lZ2F0aXZlJylcbiAgICApIHtcbiAgICAgIHRoaXMuX3Byb3h5U3RhdGVUb0NoaXBzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwdWJsaWMgZm9ybVJlc2V0Q2FsbGJhY2soKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IG51bGw7XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBmb3JtU3RhdGVSZXN0b3JlQ2FsbGJhY2soXG4gICAgc3RhdGU6IEZvcm1SZXN0b3JlU3RhdGUgfCBudWxsLFxuICAgIF9yZWFzb246IEZvcm1SZXN0b3JlUmVhc29uLFxuICApOiB2b2lkIHtcbiAgICBpZiAoIXN0YXRlKSB7XG4gICAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLl9yZWFkRm9ybURhdGEoc3RhdGUgYXMgRm9ybURhdGEpLnRoZW4oKGFycmF5KSA9PiAodGhpcy52YWx1ZSA9IGFycmF5KSk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIF9yZWFkRm9ybURhdGEoZm9ybURhdGE6IEZvcm1EYXRhKTogUHJvbWlzZTxUW10+IHtcbiAgICByZXR1cm4gUHJvbWlzZS5hbGwoXG4gICAgICBmb3JtRGF0YVxuICAgICAgICAuZ2V0QWxsKHRoaXMubmFtZSlcbiAgICAgICAgLm1hcChhc3luYyAoZW50cnkpID0+XG4gICAgICAgICAgZW50cnkgaW5zdGFuY2VvZiBCbG9iID8gSlNPTi5wYXJzZShhd2FpdCBlbnRyeS50ZXh0KCkpIDogKGVudHJ5IGFzIFQpLFxuICAgICAgICApLFxuICAgICk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgc2hvdWxkVmFsaWRhdGUobmFtZTogUHJvcGVydHlLZXkgfCB1bmRlZmluZWQpOiBib29sZWFuIHtcbiAgICByZXR1cm4gc3VwZXIuc2hvdWxkVmFsaWRhdGUobmFtZSkgfHwgbmFtZSA9PT0gJ3JlcXVpcmVkJyB8fCBuYW1lID09PSAndmFsdWUnO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHZhbGlkYXRlKCk6IHZvaWQge1xuICAgIHN1cGVyLnZhbGlkYXRlKCk7XG4gICAgaWYgKHRoaXMucmVxdWlyZWQgJiYgdGhpcy52YWx1ZS5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuc2V0VmFsaWRpdHlGbGFnKCd2YWx1ZU1pc3NpbmcnLCBpMThuU2VsZWN0aW9uUmVxdWlyZWRbdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnJlbW92ZVZhbGlkaXR5RmxhZygndmFsdWVNaXNzaW5nJyk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFJldHVybiB0aGUgbGlzdCBvZiBjaGlwIGVsZW1lbnRzICoqL1xuICBwcml2YXRlIF9jaGlwRWxlbWVudHMoKTogU2JiQ2hpcEVsZW1lbnQ8VD5bXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsPy48U2JiQ2hpcEVsZW1lbnQ8VD4+KCdzYmItY2hpcCcpID8/IFtdKTtcbiAgfVxuXG4gIC8qKiBSZXR1cm4gdGhlIGxpc3Qgb2YgZW5hYmxlZCBjaGlwIGVsZW1lbnRzICoqL1xuICBwcml2YXRlIF9lbmFibGVkQ2hpcEVsZW1lbnRzKCk6IFNiYkNoaXBFbGVtZW50PFQ+W10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKCdzYmItY2hpcDpub3QoW2Rpc2FibGVkXSknKSA/PyBbXSk7XG4gIH1cblxuICBwcml2YXRlIF9zZXR1cENvbXBvbmVudCgpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IHRoaXMucXVlcnlTZWxlY3RvcignaW5wdXQnKTtcblxuICAgIC8vIENvbm5lY3QgdG8gdGhlIGlucHV0XG4gICAgaWYgKGlucHV0ICYmIGlucHV0ICE9PSB0aGlzLl9pbnB1dEVsZW1lbnQpIHtcbiAgICAgIHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyPy5hYm9ydCgpO1xuICAgICAgdGhpcy5faW5wdXRBdHRyaWJ1dGVPYnNlcnZlcj8uZGlzY29ubmVjdCgpO1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50ID0gaW5wdXQ7XG5cbiAgICAgIHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyID0gbmV3IEFib3J0Q29udHJvbGxlcigpO1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2tleWRvd24nLCAoZXYpID0+IHRoaXMuX29uSW5wdXRLZXlEb3duKGV2KSwge1xuICAgICAgICBzaWduYWw6IHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgIH0pO1xuICAgICAgdGhpcy5faW5wdXRFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2JsdXInLCAoKSA9PiB0aGlzLl9vbklucHV0Qmx1cigpLCB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICBjYXB0dXJlOiB0cnVlLFxuICAgICAgfSk7XG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICAgJ2lucHV0QXV0b2NvbXBsZXRlJyxcbiAgICAgICAgKGV2ZW50OiBDdXN0b21FdmVudDx7IG9wdGlvbjogU2JiT3B0aW9uQmFzZUVsZW1lbnQ8VD4gfT4pID0+IHtcbiAgICAgICAgICB0aGlzLl9jcmVhdGVDaGlwRnJvbUlucHV0KCdhdXRvY29tcGxldGUnLCBldmVudC5kZXRhaWw/Lm9wdGlvbi52YWx1ZSk7XG4gICAgICAgIH0sXG4gICAgICAgIHtcbiAgICAgICAgICBzaWduYWw6IHRoaXMuX2lucHV0QWJvcnRDb250cm9sbGVyLnNpZ25hbCxcbiAgICAgICAgfSxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMuX2lucHV0QXR0cmlidXRlT2JzZXJ2ZXI/Lm9ic2VydmUodGhpcy5faW5wdXRFbGVtZW50LCB7XG4gICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgIGF0dHJpYnV0ZUZpbHRlcjogWydyZWFkb25seScsICdkaXNhYmxlZCddLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgLy8gSW5oZXJpdCBzaXplIGZyb20gdGhlIGZvcm0tZmllbGQgYW5kIG9ic2VydmUgZm9yIGNoYW5nZXNcbiAgICBpZiAoIXRoaXMuX3ByZXZpb3VzU2l6ZSB8fCAhdGhpcy5jbG9zZXN0KCdzYmItZm9ybS1maWVsZCcpKSB7XG4gICAgICB0aGlzLl91cGRhdGVTaXplKGlzTGVhbigpID8gJ3MnIDogJ20nKTtcbiAgICB9XG5cbiAgICB0aGlzLnRvZ2dsZVN0YXRlKCdlbXB0eScsIHRoaXMudmFsdWUubGVuZ3RoID09PSAwKTtcbiAgICB0aGlzLl9yZWFjdFRvSW5wdXRDaGFuZ2VzKCk7XG4gICAgdGhpcy5fdXBkYXRlSW5wdXREZXNjcmlwdGlvbigpO1xuICAgIHRoaXMudXBkYXRlRm9ybVZhbHVlKCk7XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIGZvciBrZXlib2FyZCBldmVudHMgb24gdGhlIGNoaXAgZWxlbWVudHNcbiAgICoqL1xuICBwcml2YXRlIF9vbkNoaXBLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3QgZXZlbnRUYXJnZXQgPSBldmVudC50YXJnZXQgYXMgU2JiQ2hpcEVsZW1lbnQ8VD47XG4gICAgaWYgKGV2ZW50VGFyZ2V0LmxvY2FsTmFtZSAhPT0gJ3NiYi1jaGlwJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIEFycm93IGtleXMgYWxsb3cgbmF2aWdhdGlvbiBiZXR3ZWVuIGNoaXBzIGZvY3VzIHN0ZXBzXG4gICAgaWYgKGlzQXJyb3dLZXlQcmVzc2VkKGV2ZW50KSkge1xuICAgICAgY29uc3QgZm9jdXNTdGVwcyA9IHRoaXMuX2VuYWJsZWRDaGlwRWxlbWVudHMoKTtcbiAgICAgIGNvbnN0IG5leHQgPSBnZXROZXh0RWxlbWVudEluZGV4KGV2ZW50LCBmb2N1c1N0ZXBzLmluZGV4T2YoZXZlbnRUYXJnZXQpLCBmb2N1c1N0ZXBzLmxlbmd0aCk7XG4gICAgICBmb2N1c1N0ZXBzW25leHRdLmZvY3VzKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0JhY2tzcGFjZSc6XG4gICAgICBjYXNlICdEZWxldGUnOlxuICAgICAgICBpZiAoIWV2ZW50VGFyZ2V0LnJlYWRPbmx5ICYmICFldmVudFRhcmdldC5kaXNhYmxlZCkge1xuICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgdGhpcy5fZGVsZXRlQ2hpcChldmVudFRhcmdldCk7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIExpc3RlbiBmb3Iga2V5Ym9hcmQgZXZlbnRzIG9uIHRoZSBpbnB1dFxuICAgKiovXG4gIHByaXZhdGUgX29uSW5wdXRLZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgIGNhc2UgJ0JhY2tzcGFjZSc6XG4gICAgICBjYXNlICdBcnJvd0xlZnQnOlxuICAgICAgICBpZiAoIXRoaXMuX2lucHV0RWxlbWVudCEudmFsdWUpIHtcbiAgICAgICAgICB0aGlzLl9mb2N1c0NoaXAoKTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTsgLy8gUHJldmVudHMgdGhlIGZvcm0gc3VibWl0XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIC8vIGlmIHRoZSB1c2VyIHR5cGVkIG9uZSBvZiB0aGUgc2VwYXJhdG9yIGtleXMsIHRyaWdnZXIgYSAnY2hpcGlucHV0dG9rZW5lbmQnIGV2ZW50XG4gICAgaWYgKHRoaXMuc2VwYXJhdG9yS2V5cy5pbmNsdWRlcyhldmVudC5rZXkpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyAvLyBwcmV2ZW50IHR5cGluZyB0aGUgc2VwYXJhdG9yIGtleSBpbnRvIHRoZSBpbnB1dFxuICAgICAgdGhpcy5fY3JlYXRlQ2hpcEZyb21JbnB1dCgnaW5wdXQnKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogSGFuZGxlIGJsdXIgZXZlbnQgb24gdGhlIGlucHV0XG4gICAqKi9cbiAgcHJpdmF0ZSBfb25JbnB1dEJsdXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuYWRkT25CbHVyKSB7XG4gICAgICB0aGlzLl9jcmVhdGVDaGlwRnJvbUlucHV0KCdpbnB1dCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBJZiB0aGUgaW5wdXQgaXMgbm90IGVtcHR5LCBjcmVhdGUgYSBjaGlwIHdpdGggaXRzIHZhbHVlXG4gICAqL1xuICBwcml2YXRlIF9jcmVhdGVDaGlwRnJvbUlucHV0KG9yaWdpbjogJ2lucHV0JyB8ICdhdXRvY29tcGxldGUnID0gJ2lucHV0JywgdmFsdWU/OiBUKTogdm9pZCB7XG4gICAgY29uc3QgaW5wdXRWYWx1ZSA9IHZhbHVlID8/IHRoaXMuX2lucHV0RWxlbWVudCEudmFsdWUudHJpbSgpO1xuICAgIGlmICghaW5wdXRWYWx1ZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGV2ZW50RGV0YWlsOiBTYmJDaGlwSW5wdXRUb2tlbkVuZEV2ZW50RGV0YWlsczxUPiA9IHtcbiAgICAgIG9yaWdpbjogb3JpZ2luLFxuICAgICAgdmFsdWU6IGlucHV0VmFsdWUsXG4gICAgICBsYWJlbDogKHZhbHVlID8gdGhpcy5kaXNwbGF5V2l0aD8uKHZhbHVlKSA6IG51bGwpID8/IHVuZGVmaW5lZCxcbiAgICAgIHNldFZhbHVlOiAodmFsdWU6IFQpID0+IChldmVudERldGFpbC52YWx1ZSA9IHZhbHVlKSxcbiAgICAgIHNldExhYmVsOiAobGFiZWw6IHN0cmluZykgPT4gKGV2ZW50RGV0YWlsLmxhYmVsID0gbGFiZWwpLFxuICAgIH07XG5cbiAgICBpZiAoIXRoaXMuX2Rpc3BhdGNoQ2hpcElucHV0VG9rZW5FbmQoZXZlbnREZXRhaWwpKSB7XG4gICAgICByZXR1cm47IC8vIGV2ZW50IHByZXZlbnRlZDsgZG8gbm90aGluZyAodGhlIGNvbnN1bWVyIGhhcyB0byBjcmVhdGUgdGhlIGNoaXApXG4gICAgfVxuXG4gICAgdGhpcy5fY3JlYXRlQ2hpcEVsZW1lbnQoZXZlbnREZXRhaWwudmFsdWUgYXMgVCwgZXZlbnREZXRhaWwubGFiZWwpO1xuICAgIHRoaXMuX2lucHV0RWxlbWVudCEudmFsdWUgPSAnJzsgLy8gRW1wdHkgdGhlIGlucHV0XG4gICAgdGhpcy5fZW1pdElucHV0RXZlbnRzKCk7XG4gIH1cblxuICBwcml2YXRlIF9kaXNwYXRjaENoaXBJbnB1dFRva2VuRW5kKGV2ZW50RGV0YWlsOiBTYmJDaGlwSW5wdXRUb2tlbkVuZEV2ZW50RGV0YWlsczxUPik6IGJvb2xlYW4ge1xuICAgIC8qKlxuICAgICAqIEB0eXBlIHtDdXN0b21FdmVudDxTYmJDaGlwSW5wdXRUb2tlbkVuZEV2ZW50RGV0YWlscz59XG4gICAgICogTm90aWZpZXMgdGhhdCBhIGNoaXAgaXMgYWJvdXQgdG8gYmUgY3JlYXRlZC4gQ2FuIGJlIHByZXZlbnRlZC5cbiAgICAgKi9cbiAgICByZXR1cm4gdGhpcy5kaXNwYXRjaEV2ZW50KFxuICAgICAgbmV3IEN1c3RvbUV2ZW50PFNiYkNoaXBJbnB1dFRva2VuRW5kRXZlbnREZXRhaWxzPFQ+PignY2hpcGlucHV0dG9rZW5lbmQnLCB7XG4gICAgICAgIGRldGFpbDogZXZlbnREZXRhaWwsXG4gICAgICAgIGNhbmNlbGFibGU6IHRydWUsXG4gICAgICAgIGJ1YmJsZXM6IHRydWUsXG4gICAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RlbGV0ZUNoaXAoY2hpcDogU2JiQ2hpcEVsZW1lbnQ8VD4pOiB2b2lkIHtcbiAgICBjb25zdCBjaGlwcyA9IHRoaXMuX2VuYWJsZWRDaGlwRWxlbWVudHMoKTtcbiAgICBjaGlwLnJlbW92ZSgpO1xuICAgIHRoaXMuX2VtaXRJbnB1dEV2ZW50cygpO1xuICAgIHRoaXMuX2ZvY3VzQ2hpcChjaGlwcy5pbmRleE9mKGNoaXApKTsgLy8gRm9jdXMgdGhlIG5leHQgY2hpcFxuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzIGFuIGVuYWJsZWQgY2hpcC4gSWYgbm9uZSBhcmUgcHJlc2VudCwgZm9jdXMgdGhlIGlucHV0XG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIGVuYWJsZWQgY2hpcC4gSWYgbnVsbCwgZm9jdXMgdGhlIGxhc3Qgb25lLlxuICAgKi9cbiAgcHJpdmF0ZSBfZm9jdXNDaGlwKGluZGV4PzogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZW5hYmxlZENoaXBzID0gdGhpcy5fZW5hYmxlZENoaXBFbGVtZW50cygpO1xuXG4gICAgaWYgKGluZGV4ICE9PSB1bmRlZmluZWQgJiYgZW5hYmxlZENoaXBzW2luZGV4XSkge1xuICAgICAgZW5hYmxlZENoaXBzW2luZGV4XS5mb2N1cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChlbmFibGVkQ2hpcHMubGVuZ3RoID4gMCkge1xuICAgICAgZW5hYmxlZENoaXBzW2VuYWJsZWRDaGlwcy5sZW5ndGggLSAxXS5mb2N1cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2lucHV0RWxlbWVudD8uZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VtaXRJbnB1dEV2ZW50cygpOiB2b2lkIHtcbiAgICAvKiogVGhlIGlucHV0IGV2ZW50IGZpcmVzIHdoZW4gdGhlIHZhbHVlIGhhcyBiZWVuIGNoYW5nZWQgYXMgYSBkaXJlY3QgcmVzdWx0IG9mIGEgdXNlciBhY3Rpb24uICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNoYW5nZSBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIG1vZGlmaWVzIHRoZSBlbGVtZW50J3MgdmFsdWUuXG4gICAgICogVW5saWtlIHRoZSBpbnB1dCBldmVudCwgdGhlIGNoYW5nZSBldmVudCBpcyBub3QgbmVjZXNzYXJpbHkgZmlyZWRcbiAgICAgKiBmb3IgZWFjaCBhbHRlcmF0aW9uIHRvIGFuIGVsZW1lbnQncyB2YWx1ZS5cbiAgICAgKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlQ2hpcEVsZW1lbnQodmFsdWU6IFQgfCBudWxsLCBsYWJlbD86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBuZXdDaGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2JiLWNoaXAnKSBhcyBTYmJDaGlwRWxlbWVudDxUPjtcbiAgICBuZXdDaGlwLnZhbHVlID0gdmFsdWU7XG4gICAgbmV3Q2hpcC5pbm5lclRleHQgPSBsYWJlbCA/PyAodmFsdWUgPyB0aGlzLmRpc3BsYXlXaXRoPy4odmFsdWUpIDogbnVsbCkgPz8gJyc7XG4gICAgaWYgKFxuICAgICAgaW1wb3J0Lm1ldGEuZW52LkRFViAmJlxuICAgICAgIWRpc3BsYXlXaXRoV2FybmluZ0xvZ2dlZCAmJlxuICAgICAgIWxhYmVsICYmXG4gICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgICAhdGhpcy5kaXNwbGF5V2l0aFxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgZGlzcGxheVdpdGggaGFzIG5vdCBiZWVuIHNldCB5ZXQgZm9yIHNiYi1jaGlwLWdyb3VwIGFuZCB2YWx1ZSBpcyBhbiBvYmplY3QuXG4gICAgICAgICBJZiB5b3UgYXJlIHVzaW5nIG9iamVjdCB2YWx1ZXMsIHlvdSBuZWVkIHRvIHByb3ZpZGUgZGlzcGxheVdpZHRoIGJlZm9yZVxuICAgICAgICAgc2V0dGluZyBvciBzZWxlY3RpbmcgYW55IHZhbHVlLmAsXG4gICAgICApO1xuICAgICAgZGlzcGxheVdpdGhXYXJuaW5nTG9nZ2VkID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5pbnNlcnRCZWZvcmUobmV3Q2hpcCwgdGhpcy5faW5wdXRFbGVtZW50ID8/IHRoaXMucXVlcnlTZWxlY3RvcignaW5wdXQnKSk7XG4gIH1cblxuICBwcml2YXRlIF9yZWFjdFRvSW5wdXRDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSB0aGlzLl9pbnB1dEVsZW1lbnQ/LmRpc2FibGVkID8/IGZhbHNlO1xuICAgIHRoaXMuX3Byb3h5U3RhdGVUb0NoaXBzKCk7XG4gIH1cblxuICBwcml2YXRlIF9wcm94eVN0YXRlVG9DaGlwcygpOiB2b2lkIHtcbiAgICB0aGlzLl9jaGlwRWxlbWVudHMoKS5mb3JFYWNoKChjKSA9PiB7XG4gICAgICBjLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmZvcm1EaXNhYmxlZDtcbiAgICAgIGMucmVhZE9ubHkgPSB0aGlzLl9pbnB1dEVsZW1lbnQ/Lmhhc0F0dHJpYnV0ZSgncmVhZG9ubHknKSA/PyBmYWxzZTtcbiAgICAgIGMubmVnYXRpdmUgPSB0aGlzLm5lZ2F0aXZlO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlU2l6ZShzaXplOiBTYmJGb3JtRmllbGRFbGVtZW50WydzaXplJ10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcHJldmlvdXNTaXplKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKGBzaXplLSR7dGhpcy5fcHJldmlvdXNTaXplfWApO1xuICAgIH1cbiAgICB0aGlzLl9wcmV2aW91c1NpemUgPSBzaXplO1xuICAgIGlmICh0aGlzLl9wcmV2aW91c1NpemUpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYHNpemUtJHt0aGlzLl9wcmV2aW91c1NpemV9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlSW5wdXREZXNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lucHV0RWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgJ2FyaWEtZGVzY3JpcHRpb24nLFxuICAgICAgYCR7aTE4bkNoaXBHcm91cElucHV0RGVzY3JpcHRpb25bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19ICR7dGhpcy52YWx1ZS5sZW5ndGh9YCxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9zZXR1cENvbXBvbmVudH0+PC9zbG90PmA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1jaGlwLWdyb3VwJzogU2JiQ2hpcEdyb3VwRWxlbWVudDtcbiAgfVxufVxuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBIVE1MRWxlbWVudEV2ZW50TWFwIHtcbiAgICBjaGlwaW5wdXR0b2tlbmVuZDogQ3VzdG9tRXZlbnQ8U2JiQ2hpcElucHV0VG9rZW5FbmRFdmVudERldGFpbHM8YW55Pj47XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJ2YWx1ZSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lBZ0RhLHVCQUFtQixNQUFBOztvQkFBcUIsaUJBQ25ELGlCQUFpQixpQkFBaUIsdUJBQXVCLFVBQVUsQ0FBQyxDQUFDLENBQUM7Ozs7Ozs7Ozs7OztBQUQzRCxTQUFBLG1CQUF3QyxZQUVwRDtBQUFBLElBcUVDLGNBQUE7QUFDRSxZQUFBO0FBeEJGO0FBSUE7QUFLQTtBQVRnQix5QkFBQSxnQ0FoREwsa0JBQUEsTUFBQSwwQkFBQSxHQUFtQixrQkFBQSxNQUFBLDJCQWdEK0IsSUFBSTtBQUlqRCx5QkFBQSxrQ0FBQSxrQkFBQSxNQUFBLDhCQUFBLEdBQUEsa0JBQUEsTUFBQSw2QkFBMEIsQ0FBQyxPQUFPLENBQUM7QUFLbkMseUJBQUEsOEJBQUEsa0JBQUEsTUFBQSxnQ0FBQSxHQUFBLGtCQUFBLE1BQUEseUJBQXFCLEtBQUs7QUFLbEMsV0FBQSwyQkFBdUIsa0JBQUEsTUFBQSw0QkFBQSxH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
|
|
464
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9lbGVtZW50cy9jaGlwL2NoaXAtZ3JvdXAvY2hpcC1ncm91cC5jb21wb25lbnQudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgdHlwZSBDU1NSZXN1bHRHcm91cCwgaHRtbCwgaXNTZXJ2ZXIsIHR5cGUgUHJvcGVydHlWYWx1ZXMsIHR5cGUgVGVtcGxhdGVSZXN1bHQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGdldE5leHRFbGVtZW50SW5kZXgsIGlzQXJyb3dLZXlQcmVzc2VkIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LnRzJztcbmltcG9ydCB7IFNiYkVsZW1lbnQgfSBmcm9tICcuLi8uLi9jb3JlL2Jhc2UtZWxlbWVudHMudHMnO1xuaW1wb3J0IHsgU2JiTGFuZ3VhZ2VDb250cm9sbGVyLCBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyIH0gZnJvbSAnLi4vLi4vY29yZS9jb250cm9sbGVycy50cyc7XG5pbXBvcnQgeyBmb3JjZVR5cGUgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMudHMnO1xuaW1wb3J0IHsgaXNMZWFuIH0gZnJvbSAnLi4vLi4vY29yZS9kb20vbGVhbi1jb250ZXh0LnRzJztcbmltcG9ydCB7IGkxOG5DaGlwR3JvdXBJbnB1dERlc2NyaXB0aW9uLCBpMThuU2VsZWN0aW9uUmVxdWlyZWQgfSBmcm9tICcuLi8uLi9jb3JlL2kxOG4udHMnO1xuaW1wb3J0IHtcbiAgdHlwZSBGb3JtUmVzdG9yZVJlYXNvbixcbiAgdHlwZSBGb3JtUmVzdG9yZVN0YXRlLFxuICBTYmJEaXNhYmxlZE1peGluLFxuICBTYmJGb3JtQXNzb2NpYXRlZE1peGluLFxuICBTYmJOZWdhdGl2ZU1peGluLFxuICBTYmJSZXF1aXJlZE1peGluLFxufSBmcm9tICcuLi8uLi9jb3JlL21peGlucy50cyc7XG5pbXBvcnQgeyBib3hTaXppbmdTdHlsZXMgfSBmcm9tICcuLi8uLi9jb3JlL3N0eWxlcy50cyc7XG5pbXBvcnQgdHlwZSB7IFNiYkZvcm1GaWVsZEVsZW1lbnQgfSBmcm9tICcuLi8uLi9mb3JtLWZpZWxkL2Zvcm0tZmllbGQvZm9ybS1maWVsZC5jb21wb25lbnQudHMnO1xuaW1wb3J0IHR5cGUgeyBTYmJPcHRpb25CYXNlRWxlbWVudCB9IGZyb20gJy4uLy4uL29wdGlvbi9vcHRpb24vb3B0aW9uLWJhc2UtZWxlbWVudC50cyc7XG5pbXBvcnQgeyBTYmJDaGlwRWxlbWVudCB9IGZyb20gJy4uL2NoaXAvY2hpcC5jb21wb25lbnQudHMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9jaGlwLWdyb3VwLnNjc3M/bGl0JmlubGluZSc7XG5cbmxldCBkaXNwbGF5V2l0aFdhcm5pbmdMb2dnZWQgPSBmYWxzZTtcblxuLy8gVE9ETyhicmVha2luZy1jaGFuZ2UpOiBSZXBsYWNlIGJhc2UgY2xhc3Mgd2l0aCBFdmVudFxuZXhwb3J0IGNsYXNzIFNiYkNoaXBJbnB1dFRva2VuRW5kRXZlbnQ8VCA9IHN0cmluZz4gZXh0ZW5kcyBDdXN0b21FdmVudDxcbiAgU2JiQ2hpcElucHV0VG9rZW5FbmRFdmVudERldGFpbHM8VD5cbj4ge1xuICAvKiogVGhlIGVsZW1lbnQgdGhhdCB0cmlnZ2VyZWQgdGhlIGNoaXAgY3JlYXRpb24gKi9cbiAgcHVibGljIG9yaWdpbjogJ2lucHV0JyB8ICdhdXRvY29tcGxldGUnO1xuICAvKipcbiAgICogVGhlIHZhbHVlIG9mIHRoZSBuZXcgY2hpcC4gRWl0aGVyIHRoZSBpbnB1dCBvciB0aGUgb3B0aW9uIHZhbHVlIGRlcGVuZGluZyBvbiB0aGUgb3JpZ2luLlxuICAgKiBFaXRoZXIgdGhlIHZhbHVlIGZyb20gdGhlIGlucHV0IHdoaWNoIGlzIGFsd2F5cyBgc3RyaW5nYCBvciB0aGUgdmFsdWUgZnJvbSB0aGUgc2VsZWN0ZWQgb3B0aW9uXG4gICAqIGZyb20gYW4gYXV0b2NvbXBsZXRlLCB3aGljaCBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIG9yIGFueSBvdGhlciB0eXBlLlxuICAgKi9cbiAgcHVibGljIHZhbHVlOiBUIHwgc3RyaW5nO1xuICBwdWJsaWMgbGFiZWw/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIFVzZSBldmVudCBwcm9wZXJ0aWVzIGRpcmVjdGx5LlxuICAgKi9cbiAgcHVibGljIG92ZXJyaWRlIGdldCBkZXRhaWwoKTogU2JiQ2hpcElucHV0VG9rZW5FbmRFdmVudERldGFpbHM8VD4ge1xuICAgIHJldHVybiB0aGlzO1xuICB9XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKG9wdGlvbnM6IFBpY2s8U2JiQ2hpcElucHV0VG9rZW5FbmRFdmVudCwgJ29yaWdpbicgfCAndmFsdWUnIHwgJ2xhYmVsJz4pIHtcbiAgICBzdXBlcignY2hpcGlucHV0dG9rZW5lbmQnLCB7XG4gICAgICBjYW5jZWxhYmxlOiB0cnVlLFxuICAgICAgYnViYmxlczogdHJ1ZSxcbiAgICAgIGNvbXBvc2VkOiB0cnVlLFxuICAgIH0pO1xuICAgIHRoaXMub3JpZ2luID0gb3B0aW9ucy5vcmlnaW47XG4gICAgdGhpcy52YWx1ZSA9IG9wdGlvbnMudmFsdWU7XG4gICAgdGhpcy5sYWJlbCA9IG9wdGlvbnMubGFiZWw7XG4gIH1cblxuICAvKiogU2V0IGEgbmV3IHZhbHVlIGZvciB0aGUgY2hpcCB0aGF0IHdpbGwgYmUgY3JlYXRlZCAqL1xuICBwdWJsaWMgc2V0VmFsdWUodmFsdWU6IFQpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XG4gIH1cbiAgLyoqIFNldCBhIGxhYmVsIGZvciB0aGUgY2hpcCB0aGF0IHdpbGwgYmUgY3JlYXRlZCAqL1xuICBwdWJsaWMgc2V0TGFiZWwobGFiZWw6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMubGFiZWwgPSBsYWJlbDtcbiAgfVxufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSBgU2JiQ2hpcElucHV0VG9rZW5FbmRFdmVudGAgaW5zdGVhZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYmJDaGlwSW5wdXRUb2tlbkVuZEV2ZW50RGV0YWlsczxUID0gc3RyaW5nPiB7XG4gIC8qKiBUaGUgZWxlbWVudCB0aGF0IHRyaWdnZXJlZCB0aGUgY2hpcCBjcmVhdGlvbiAqL1xuICBvcmlnaW46ICdpbnB1dCcgfCAnYXV0b2NvbXBsZXRlJztcbiAgLyoqXG4gICAqIFRoZSB2YWx1ZSBvZiB0aGUgbmV3IGNoaXAuIEVpdGhlciB0aGUgaW5wdXQgb3IgdGhlIG9wdGlvbiB2YWx1ZSBkZXBlbmRpbmcgb24gdGhlIG9yaWdpbi5cbiAgICogRWl0aGVyIHRoZSB2YWx1ZSBmcm9tIHRoZSBpbnB1dCB3aGljaCBpcyBhbHdheXMgYHN0cmluZ2Agb3IgdGhlIHZhbHVlIGZyb20gdGhlIHNlbGVjdGVkIG9wdGlvblxuICAgKiBmcm9tIGFuIGF1dG9jb21wbGV0ZSwgd2hpY2ggY2FuIGJlIGVpdGhlciBhIHN0cmluZyBvciBhbnkgb3RoZXIgdHlwZS5cbiAgICovXG4gIHZhbHVlOiBUIHwgc3RyaW5nO1xuICBsYWJlbD86IHN0cmluZztcbiAgLyoqIFNldCBhIG5ldyB2YWx1ZSBmb3IgdGhlIGNoaXAgdGhhdCB3aWxsIGJlIGNyZWF0ZWQgKi9cbiAgc2V0VmFsdWUodmFsdWU6IFQpOiB2b2lkO1xuICAvKiogU2V0IGEgbGFiZWwgZm9yIHRoZSBjaGlwIHRoYXQgd2lsbCBiZSBjcmVhdGVkICovXG4gIHNldExhYmVsKHZhbHVlOiBzdHJpbmcpOiB2b2lkO1xufVxuXG4vKipcbiAqIFRoZSBgc2JiLWNoaXAtZ3JvdXBgIGNvbXBvbmVudCBpcyB1c2VkIGFzIGEgY29udGFpbmVyIGZvciBvbmUgb3IgbXVsdGlwbGUgYHNiYi1jaGlwYC5cbiAqXG4gKiBAc2xvdCAtIFVzZSB0aGUgdW5uYW1lZCBzbG90IHRvIGFkZCBgc2JiLWNoaXBgIGVsZW1lbnRzLlxuICogQGV2ZW50IHtTYmJDaGlwSW5wdXRUb2tlbkVuZEV2ZW50PFQ+fSBjaGlwaW5wdXR0b2tlbmVuZCAtIE5vdGlmaWVzIHRoYXQgYSBjaGlwIGlzIGFib3V0IHRvIGJlIGNyZWF0ZWQuIENhbiBiZSBwcmV2ZW50ZWQuXG4gKiBAb3ZlcnJpZGVUeXBlIHZhbHVlIC0gKFQgPSBzdHJpbmdbXSkgfCBudWxsXG4gKi9cbmV4cG9ydCBjbGFzcyBTYmJDaGlwR3JvdXBFbGVtZW50PFQgPSBzdHJpbmc+IGV4dGVuZHMgU2JiUmVxdWlyZWRNaXhpbihcbiAgU2JiRGlzYWJsZWRNaXhpbihTYmJOZWdhdGl2ZU1peGluKFNiYkZvcm1Bc3NvY2lhdGVkTWl4aW4oU2JiRWxlbWVudCkpKSxcbikge1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IGVsZW1lbnROYW1lOiBzdHJpbmcgPSAnc2JiLWNoaXAtZ3JvdXAnO1xuICBwdWJsaWMgc3RhdGljIG92ZXJyaWRlIHJlYWRvbmx5IHJvbGUgPSAnbGlzdGJveCc7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IFtib3hTaXppbmdTdHlsZXMsIHN0eWxlXTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgaW5wdXQ6ICdpbnB1dCcsXG4gICAgY2hhbmdlOiAnY2hhbmdlJyxcbiAgICBjaGlwaW5wdXR0b2tlbmVuZDogJ2NoaXBpbnB1dHRva2VuZW5kJyxcbiAgfSBhcyBjb25zdDtcblxuICAvKiogVmFsdWUgb2YgdGhlIGZvcm0gZWxlbWVudC4gKi9cbiAgQHByb3BlcnR5KHsgdHlwZTogQXJyYXkgfSlcbiAgcHVibGljIHNldCB2YWx1ZSh2YWx1ZTogKFQgfCBudWxsKVtdIHwgbnVsbCkge1xuICAgIHZhbHVlID0gdmFsdWUgPz8gW107XG4gICAgY29uc3Qgb2xkVmFsdWUgPSB0aGlzLnZhbHVlO1xuXG4gICAgLy8gU3VidHJhY3QgZnJvbSAnb2xkVmFsdWUnIHRoZSBuZXcgJ3ZhbHVlJ1xuICAgIC8vIFRoZSByZXN1bHQgYXJlIHRoZSBjaGlwcyB0byByZW1vdmUgKGhhbmRsZSBkdXBsaWNhdGVzKVxuICAgIGNvbnN0IHRvUmVtb3ZlID0gWy4uLm9sZFZhbHVlXTtcbiAgICBmb3IgKGNvbnN0IGMgb2YgdmFsdWUpIHtcbiAgICAgIGlmICh0b1JlbW92ZS5pbmNsdWRlcyhjKSkge1xuICAgICAgICB0b1JlbW92ZS5zcGxpY2UodG9SZW1vdmUuaW5kZXhPZihjKSwgMSk7XG4gICAgICB9XG4gICAgfVxuICAgIHRvUmVtb3ZlLmZvckVhY2goKHZhbHVlKSA9PlxuICAgICAgdGhpcy5fY2hpcEVsZW1lbnRzKClcbiAgICAgICAgLmZpbmQoKGMpID0+IGMudmFsdWUgPT09IHZhbHVlKVxuICAgICAgICA/LnJlbW92ZSgpLFxuICAgICk7XG5cbiAgICAvLyBTdWJ0cmFjdCBmcm9tIHRoZSBuZXcgJ3ZhbHVlJyB3aGF0IHdhcyBhbHJlYWR5IHByZXNlbnRcbiAgICAvLyBUaGUgcmVzdWx0IGFyZSB0aGUgbmV3IGNoaXBzIHRvIGFkZCAoaGFuZGxlIGR1cGxpY2F0ZXMpXG4gICAgY29uc3QgdG9BZGQgPSBbLi4udmFsdWVdO1xuICAgIGZvciAoY29uc3QgYyBvZiBvbGRWYWx1ZSkge1xuICAgICAgaWYgKHRvQWRkLmluY2x1ZGVzKGMpKSB7XG4gICAgICAgIHRvQWRkLnNwbGljZSh0b0FkZC5pbmRleE9mKGMpLCAxKTtcbiAgICAgIH1cbiAgICB9XG4gICAgdG9BZGQuZm9yRWFjaCgoYykgPT4gdGhpcy5fY3JlYXRlQ2hpcEVsZW1lbnQoYykpO1xuICB9XG4gIHB1YmxpYyBnZXQgdmFsdWUoKTogKFQgfCBudWxsKVtdIHtcbiAgICByZXR1cm4gdGhpcy5fY2hpcEVsZW1lbnRzKCkubWFwKChjKSA9PiBjLnZhbHVlKTtcbiAgfVxuXG4gIC8qKiBGdW5jdGlvbiB0aGF0IG1hcHMgYSBjaGlwJ3MgdmFsdWUgdG8gaXRzIGRpc3BsYXkgdmFsdWUuICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogZmFsc2UgfSlcbiAgcHVibGljIGFjY2Vzc29yIGRpc3BsYXlXaXRoOiAoKHZhbHVlOiBUKSA9PiBzdHJpbmcpIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqIFRoZSBhcnJheSBvZiBrZXlzIHRoYXQgd2lsbCB0cmlnZ2VyIGEgYGNoaXBpbnB1dHRva2VuZW5kYCBldmVudC4gRGVmYXVsdCBgWydFbnRlciddYCAqL1xuICBAcHJvcGVydHkoeyBhdHRyaWJ1dGU6ICdzZXBhcmF0b3Ita2V5cycsIHR5cGU6IEFycmF5IH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBzZXBhcmF0b3JLZXlzOiBzdHJpbmdbXSA9IFsnRW50ZXInXTtcblxuICAvKiogV2hldGhlciB0byBhdXRvbWF0aWNhbGx5IGFkZCBhIGNoaXAgd2hlbiB0aGUgaW5wdXQgbG9zZXMgZm9jdXMgaWYgdGhlcmUncyBhIHZhbHVlLiAqL1xuICBAZm9yY2VUeXBlKClcbiAgQHByb3BlcnR5KHsgYXR0cmlidXRlOiAnYWRkLW9uLWJsdXInLCB0eXBlOiBCb29sZWFuIH0pXG4gIHB1YmxpYyBhY2Nlc3NvciBhZGRPbkJsdXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogTGlzdGVucyB0byB0aGUgY2hhbmdlcyBvbiBgcmVhZG9ubHlgIGFuZCBgZGlzYWJsZWRgIGF0dHJpYnV0ZXMgb2YgYDxpbnB1dD5gLlxuICAgKi9cbiAgcHJpdmF0ZSBfaW5wdXRBdHRyaWJ1dGVPYnNlcnZlciA9ICFpc1NlcnZlclxuICAgID8gbmV3IE11dGF0aW9uT2JzZXJ2ZXIoKCkgPT4gdGhpcy5fcmVhY3RUb0lucHV0Q2hhbmdlcygpKVxuICAgIDogbnVsbDtcblxuICBwcml2YXRlIF9pbnB1dEVsZW1lbnQ6IEhUTUxJbnB1dEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2lucHV0QWJvcnRDb250cm9sbGVyOiBBYm9ydENvbnRyb2xsZXIgfCB1bmRlZmluZWQ7XG4gIHByaXZhdGUgX2xhbmd1YWdlID0gbmV3IFNiYkxhbmd1YWdlQ29udHJvbGxlcih0aGlzKTtcbiAgcHJpdmF0ZSBfcHJldmlvdXNTaXplPzogU2JiRm9ybUZpZWxkRWxlbWVudFsnc2l6ZSddO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oU2JiQ2hpcEVsZW1lbnQuZXZlbnRzLnJlcXVlc3RkZWxldGUsIChldikgPT5cbiAgICAgIHRoaXMuX2RlbGV0ZUNoaXAoZXYudGFyZ2V0IGFzIFNiYkNoaXBFbGVtZW50PFQ+KSxcbiAgICApO1xuXG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyPy4oJ2tleWRvd24nLCAoZXYpID0+IHRoaXMuX29uQ2hpcEtleURvd24oZXYpKTtcblxuICAgIHRoaXMuYWRkQ29udHJvbGxlcihcbiAgICAgIG5ldyBTYmJQcm9wZXJ0eVdhdGNoZXJDb250cm9sbGVyKHRoaXMsICgpID0+IHRoaXMuY2xvc2VzdCgnc2JiLWZvcm0tZmllbGQnKSwge1xuICAgICAgICBzaXplOiAoZm9ybUZpZWxkKSA9PiB0aGlzLl91cGRhdGVTaXplKGZvcm1GaWVsZC5zaXplKSxcbiAgICAgICAgbGFiZWw6IChmb3JtRmllbGQpID0+IHRoaXMuX3VwZGF0ZUxhYmVsU3RhdGUoZm9ybUZpZWxkKSxcbiAgICAgICAgaGlkZGVuTGFiZWw6IChmb3JtRmllbGQpID0+IHRoaXMuX3VwZGF0ZUxhYmVsU3RhdGUoZm9ybUZpZWxkKSxcbiAgICAgIH0pLFxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIF91cGRhdGVMYWJlbFN0YXRlKGZvcm1GaWVsZDogU2JiRm9ybUZpZWxkRWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ3dpdGhvdXQtbGFiZWwnLCAhZm9ybUZpZWxkLmxhYmVsIHx8IGZvcm1GaWVsZC5oaWRkZW5MYWJlbCk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgICB0aGlzLl9zZXR1cENvbXBvbmVudCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzKTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoXG4gICAgICBjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Rpc2FibGVkJykgfHxcbiAgICAgIGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnZm9ybURpc2FibGVkJykgfHxcbiAgICAgIGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnbmVnYXRpdmUnKVxuICAgICkge1xuICAgICAgdGhpcy5fcHJveHlTdGF0ZVRvQ2hpcHMoKTtcbiAgICB9XG4gIH1cblxuICAvKiogQGludGVybmFsICovXG4gIHB1YmxpYyBmb3JtUmVzZXRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gbnVsbDtcbiAgfVxuXG4gIC8qKiBAaW50ZXJuYWwgKi9cbiAgcHVibGljIGZvcm1TdGF0ZVJlc3RvcmVDYWxsYmFjayhcbiAgICBzdGF0ZTogRm9ybVJlc3RvcmVTdGF0ZSB8IG51bGwsXG4gICAgX3JlYXNvbjogRm9ybVJlc3RvcmVSZWFzb24sXG4gICk6IHZvaWQge1xuICAgIGlmICghc3RhdGUpIHtcbiAgICAgIHRoaXMudmFsdWUgPSBudWxsO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX3JlYWRGb3JtRGF0YShzdGF0ZSBhcyBGb3JtRGF0YSkudGhlbigoYXJyYXkpID0+ICh0aGlzLnZhbHVlID0gYXJyYXkpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgX3JlYWRGb3JtRGF0YShmb3JtRGF0YTogRm9ybURhdGEpOiBQcm9taXNlPFRbXT4ge1xuICAgIHJldHVybiBQcm9taXNlLmFsbChcbiAgICAgIGZvcm1EYXRhXG4gICAgICAgIC5nZXRBbGwodGhpcy5uYW1lKVxuICAgICAgICAubWFwKGFzeW5jIChlbnRyeSkgPT5cbiAgICAgICAgICBlbnRyeSBpbnN0YW5jZW9mIEJsb2IgPyBKU09OLnBhcnNlKGF3YWl0IGVudHJ5LnRleHQoKSkgOiAoZW50cnkgYXMgVCksXG4gICAgICAgICksXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBzaG91bGRWYWxpZGF0ZShuYW1lOiBQcm9wZXJ0eUtleSB8IHVuZGVmaW5lZCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzdXBlci5zaG91bGRWYWxpZGF0ZShuYW1lKSB8fCBuYW1lID09PSAncmVxdWlyZWQnIHx8IG5hbWUgPT09ICd2YWx1ZSc7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgdmFsaWRhdGUoKTogdm9pZCB7XG4gICAgc3VwZXIudmFsaWRhdGUoKTtcbiAgICBpZiAodGhpcy5yZXF1aXJlZCAmJiB0aGlzLnZhbHVlLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5zZXRWYWxpZGl0eUZsYWcoJ3ZhbHVlTWlzc2luZycsIGkxOG5TZWxlY3Rpb25SZXF1aXJlZFt0aGlzLl9sYW5ndWFnZS5jdXJyZW50XSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucmVtb3ZlVmFsaWRpdHlGbGFnKCd2YWx1ZU1pc3NpbmcnKTtcbiAgICB9XG4gIH1cblxuICAvKiogUmV0dXJuIHRoZSBsaXN0IG9mIGNoaXAgZWxlbWVudHMgKiovXG4gIHByaXZhdGUgX2NoaXBFbGVtZW50cygpOiBTYmJDaGlwRWxlbWVudDxUPltdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/LjxTYmJDaGlwRWxlbWVudDxUPj4oJ3NiYi1jaGlwJykgPz8gW10pO1xuICB9XG5cbiAgLyoqIFJldHVybiB0aGUgbGlzdCBvZiBlbmFibGVkIGNoaXAgZWxlbWVudHMgKiovXG4gIHByaXZhdGUgX2VuYWJsZWRDaGlwRWxlbWVudHMoKTogU2JiQ2hpcEVsZW1lbnQ8VD5bXSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20odGhpcy5xdWVyeVNlbGVjdG9yQWxsPy4oJ3NiYi1jaGlwOm5vdChbZGlzYWJsZWRdKScpID8/IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldHVwQ29tcG9uZW50KCk6IHZvaWQge1xuICAgIGNvbnN0IGlucHV0ID0gdGhpcy5xdWVyeVNlbGVjdG9yKCdpbnB1dCcpO1xuXG4gICAgLy8gQ29ubmVjdCB0byB0aGUgaW5wdXRcbiAgICBpZiAoaW5wdXQgJiYgaW5wdXQgIT09IHRoaXMuX2lucHV0RWxlbWVudCkge1xuICAgICAgdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXI/LmFib3J0KCk7XG4gICAgICB0aGlzLl9pbnB1dEF0dHJpYnV0ZU9ic2VydmVyPy5kaXNjb25uZWN0KCk7XG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQgPSBpbnB1dDtcblxuICAgICAgdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIgPSBuZXcgQWJvcnRDb250cm9sbGVyKCk7XG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIChldikgPT4gdGhpcy5fb25JbnB1dEtleURvd24oZXYpLCB7XG4gICAgICAgIHNpZ25hbDogdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgfSk7XG4gICAgICB0aGlzLl9pbnB1dEVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsICgpID0+IHRoaXMuX29uSW5wdXRCbHVyKCksIHtcbiAgICAgICAgc2lnbmFsOiB0aGlzLl9pbnB1dEFib3J0Q29udHJvbGxlci5zaWduYWwsXG4gICAgICAgIGNhcHR1cmU6IHRydWUsXG4gICAgICB9KTtcbiAgICAgIHRoaXMuX2lucHV0RWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAnaW5wdXRBdXRvY29tcGxldGUnLFxuICAgICAgICAoZXZlbnQ6IEN1c3RvbUV2ZW50PHsgb3B0aW9uOiBTYmJPcHRpb25CYXNlRWxlbWVudDxUPiB9PikgPT4ge1xuICAgICAgICAgIHRoaXMuX2NyZWF0ZUNoaXBGcm9tSW5wdXQoJ2F1dG9jb21wbGV0ZScsIGV2ZW50LmRldGFpbD8ub3B0aW9uLnZhbHVlKTtcbiAgICAgICAgfSxcbiAgICAgICAge1xuICAgICAgICAgIHNpZ25hbDogdGhpcy5faW5wdXRBYm9ydENvbnRyb2xsZXIuc2lnbmFsLFxuICAgICAgICB9LFxuICAgICAgKTtcblxuICAgICAgdGhpcy5faW5wdXRBdHRyaWJ1dGVPYnNlcnZlcj8ub2JzZXJ2ZSh0aGlzLl9pbnB1dEVsZW1lbnQsIHtcbiAgICAgICAgYXR0cmlidXRlczogdHJ1ZSxcbiAgICAgICAgYXR0cmlidXRlRmlsdGVyOiBbJ3JlYWRvbmx5JywgJ2Rpc2FibGVkJ10sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICAvLyBJbmhlcml0IHNpemUgZnJvbSB0aGUgZm9ybS1maWVsZCBhbmQgb2JzZXJ2ZSBmb3IgY2hhbmdlc1xuICAgIGlmICghdGhpcy5fcHJldmlvdXNTaXplIHx8ICF0aGlzLmNsb3Nlc3QoJ3NiYi1mb3JtLWZpZWxkJykpIHtcbiAgICAgIHRoaXMuX3VwZGF0ZVNpemUoaXNMZWFuKCkgPyAncycgOiAnbScpO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlU3RhdGUoJ2VtcHR5JywgdGhpcy52YWx1ZS5sZW5ndGggPT09IDApO1xuICAgIHRoaXMuX3JlYWN0VG9JbnB1dENoYW5nZXMoKTtcbiAgICB0aGlzLl91cGRhdGVJbnB1dERlc2NyaXB0aW9uKCk7XG4gICAgdGhpcy51cGRhdGVGb3JtVmFsdWUoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0ZW4gZm9yIGtleWJvYXJkIGV2ZW50cyBvbiB0aGUgY2hpcCBlbGVtZW50c1xuICAgKiovXG4gIHByaXZhdGUgX29uQ2hpcEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBldmVudFRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBTYmJDaGlwRWxlbWVudDxUPjtcbiAgICBpZiAoZXZlbnRUYXJnZXQubG9jYWxOYW1lICE9PSAnc2JiLWNoaXAnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgLy8gQXJyb3cga2V5cyBhbGxvdyBuYXZpZ2F0aW9uIGJldHdlZW4gY2hpcHMgZm9jdXMgc3RlcHNcbiAgICBpZiAoaXNBcnJvd0tleVByZXNzZWQoZXZlbnQpKSB7XG4gICAgICBjb25zdCBmb2N1c1N0ZXBzID0gdGhpcy5fZW5hYmxlZENoaXBFbGVtZW50cygpO1xuICAgICAgY29uc3QgbmV4dCA9IGdldE5leHRFbGVtZW50SW5kZXgoZXZlbnQsIGZvY3VzU3RlcHMuaW5kZXhPZihldmVudFRhcmdldCksIGZvY3VzU3RlcHMubGVuZ3RoKTtcbiAgICAgIGZvY3VzU3RlcHNbbmV4dF0uZm9jdXMoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnQmFja3NwYWNlJzpcbiAgICAgIGNhc2UgJ0RlbGV0ZSc6XG4gICAgICAgIGlmICghZXZlbnRUYXJnZXQucmVhZE9ubHkgJiYgIWV2ZW50VGFyZ2V0LmRpc2FibGVkKSB7XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB0aGlzLl9kZWxldGVDaGlwKGV2ZW50VGFyZ2V0KTtcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogTGlzdGVuIGZvciBrZXlib2FyZCBldmVudHMgb24gdGhlIGlucHV0XG4gICAqKi9cbiAgcHJpdmF0ZSBfb25JbnB1dEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgY2FzZSAnQmFja3NwYWNlJzpcbiAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgIGlmICghdGhpcy5faW5wdXRFbGVtZW50IS52YWx1ZSkge1xuICAgICAgICAgIHRoaXMuX2ZvY3VzQ2hpcCgpO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSAnRW50ZXInOlxuICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpOyAvLyBQcmV2ZW50cyB0aGUgZm9ybSBzdWJtaXRcbiAgICAgICAgYnJlYWs7XG4gICAgfVxuXG4gICAgLy8gaWYgdGhlIHVzZXIgdHlwZWQgb25lIG9mIHRoZSBzZXBhcmF0b3Iga2V5cywgdHJpZ2dlciBhICdjaGlwaW5wdXR0b2tlbmVuZCcgZXZlbnRcbiAgICBpZiAodGhpcy5zZXBhcmF0b3JLZXlzLmluY2x1ZGVzKGV2ZW50LmtleSkpIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7IC8vIHByZXZlbnQgdHlwaW5nIHRoZSBzZXBhcmF0b3Iga2V5IGludG8gdGhlIGlucHV0XG4gICAgICB0aGlzLl9jcmVhdGVDaGlwRnJvbUlucHV0KCdpbnB1dCcpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBIYW5kbGUgYmx1ciBldmVudCBvbiB0aGUgaW5wdXRcbiAgICoqL1xuICBwcml2YXRlIF9vbklucHV0Qmx1cigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5hZGRPbkJsdXIpIHtcbiAgICAgIHRoaXMuX2NyZWF0ZUNoaXBGcm9tSW5wdXQoJ2lucHV0Jyk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIElmIHRoZSBpbnB1dCBpcyBub3QgZW1wdHksIGNyZWF0ZSBhIGNoaXAgd2l0aCBpdHMgdmFsdWVcbiAgICovXG4gIHByaXZhdGUgX2NyZWF0ZUNoaXBGcm9tSW5wdXQob3JpZ2luOiAnaW5wdXQnIHwgJ2F1dG9jb21wbGV0ZScgPSAnaW5wdXQnLCB2YWx1ZT86IFQpOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dFZhbHVlID0gdmFsdWUgPz8gdGhpcy5faW5wdXRFbGVtZW50IS52YWx1ZS50cmltKCk7XG4gICAgaWYgKCFpbnB1dFZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZXZlbnQgPSBuZXcgU2JiQ2hpcElucHV0VG9rZW5FbmRFdmVudDxUPih7XG4gICAgICBvcmlnaW4sXG4gICAgICB2YWx1ZTogaW5wdXRWYWx1ZSBhcyBzdHJpbmcsXG4gICAgICBsYWJlbDogKHZhbHVlID8gdGhpcy5kaXNwbGF5V2l0aD8uKHZhbHVlKSA6IG51bGwpID8/IHVuZGVmaW5lZCxcbiAgICB9KTtcbiAgICBpZiAoIXRoaXMuZGlzcGF0Y2hFdmVudChldmVudCkpIHtcbiAgICAgIHJldHVybjsgLy8gZXZlbnQgcHJldmVudGVkOyBkbyBub3RoaW5nICh0aGUgY29uc3VtZXIgaGFzIHRvIGNyZWF0ZSB0aGUgY2hpcClcbiAgICB9XG5cbiAgICB0aGlzLl9jcmVhdGVDaGlwRWxlbWVudChldmVudC52YWx1ZSBhcyBULCBldmVudC5sYWJlbCk7XG4gICAgdGhpcy5faW5wdXRFbGVtZW50IS52YWx1ZSA9ICcnOyAvLyBFbXB0eSB0aGUgaW5wdXRcbiAgICB0aGlzLl9lbWl0SW5wdXRFdmVudHMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2RlbGV0ZUNoaXAoY2hpcDogU2JiQ2hpcEVsZW1lbnQ8VD4pOiB2b2lkIHtcbiAgICBjb25zdCBjaGlwcyA9IHRoaXMuX2VuYWJsZWRDaGlwRWxlbWVudHMoKTtcbiAgICBjaGlwLnJlbW92ZSgpO1xuICAgIHRoaXMuX2VtaXRJbnB1dEV2ZW50cygpO1xuICAgIHRoaXMuX2ZvY3VzQ2hpcChjaGlwcy5pbmRleE9mKGNoaXApKTsgLy8gRm9jdXMgdGhlIG5leHQgY2hpcFxuICB9XG5cbiAgLyoqXG4gICAqIEZvY3VzIGFuIGVuYWJsZWQgY2hpcC4gSWYgbm9uZSBhcmUgcHJlc2VudCwgZm9jdXMgdGhlIGlucHV0XG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIGVuYWJsZWQgY2hpcC4gSWYgbnVsbCwgZm9jdXMgdGhlIGxhc3Qgb25lLlxuICAgKi9cbiAgcHJpdmF0ZSBfZm9jdXNDaGlwKGluZGV4PzogbnVtYmVyKTogdm9pZCB7XG4gICAgY29uc3QgZW5hYmxlZENoaXBzID0gdGhpcy5fZW5hYmxlZENoaXBFbGVtZW50cygpO1xuXG4gICAgaWYgKGluZGV4ICE9PSB1bmRlZmluZWQgJiYgZW5hYmxlZENoaXBzW2luZGV4XSkge1xuICAgICAgZW5hYmxlZENoaXBzW2luZGV4XS5mb2N1cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChlbmFibGVkQ2hpcHMubGVuZ3RoID4gMCkge1xuICAgICAgZW5hYmxlZENoaXBzW2VuYWJsZWRDaGlwcy5sZW5ndGggLSAxXS5mb2N1cygpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX2lucHV0RWxlbWVudD8uZm9jdXMoKTtcbiAgfVxuXG4gIHByaXZhdGUgX2VtaXRJbnB1dEV2ZW50cygpOiB2b2lkIHtcbiAgICAvKiogVGhlIGlucHV0IGV2ZW50IGZpcmVzIHdoZW4gdGhlIHZhbHVlIGhhcyBiZWVuIGNoYW5nZWQgYXMgYSBkaXJlY3QgcmVzdWx0IG9mIGEgdXNlciBhY3Rpb24uICovXG4gICAgdGhpcy5kaXNwYXRjaEV2ZW50KG5ldyBJbnB1dEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSwgY29tcG9zZWQ6IHRydWUgfSkpO1xuXG4gICAgLyoqXG4gICAgICogVGhlIGNoYW5nZSBldmVudCBpcyBmaXJlZCB3aGVuIHRoZSB1c2VyIG1vZGlmaWVzIHRoZSBlbGVtZW50J3MgdmFsdWUuXG4gICAgICogVW5saWtlIHRoZSBpbnB1dCBldmVudCwgdGhlIGNoYW5nZSBldmVudCBpcyBub3QgbmVjZXNzYXJpbHkgZmlyZWRcbiAgICAgKiBmb3IgZWFjaCBhbHRlcmF0aW9uIHRvIGFuIGVsZW1lbnQncyB2YWx1ZS5cbiAgICAgKi9cbiAgICB0aGlzLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdjaGFuZ2UnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlQ2hpcEVsZW1lbnQodmFsdWU6IFQgfCBudWxsLCBsYWJlbD86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmIChpc1NlcnZlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBuZXdDaGlwID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc2JiLWNoaXAnKSBhcyBTYmJDaGlwRWxlbWVudDxUPjtcbiAgICBuZXdDaGlwLnZhbHVlID0gdmFsdWU7XG4gICAgbmV3Q2hpcC5pbm5lclRleHQgPSBsYWJlbCA/PyAodmFsdWUgPyB0aGlzLmRpc3BsYXlXaXRoPy4odmFsdWUpIDogbnVsbCkgPz8gJyc7XG4gICAgaWYgKFxuICAgICAgaW1wb3J0Lm1ldGEuZW52LkRFViAmJlxuICAgICAgIWRpc3BsYXlXaXRoV2FybmluZ0xvZ2dlZCAmJlxuICAgICAgIWxhYmVsICYmXG4gICAgICB0eXBlb2YgdmFsdWUgPT09ICdvYmplY3QnICYmXG4gICAgICAhdGhpcy5kaXNwbGF5V2l0aFxuICAgICkge1xuICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICBgZGlzcGxheVdpdGggaGFzIG5vdCBiZWVuIHNldCB5ZXQgZm9yIHNiYi1jaGlwLWdyb3VwIGFuZCB2YWx1ZSBpcyBhbiBvYmplY3QuXG4gICAgICAgICBJZiB5b3UgYXJlIHVzaW5nIG9iamVjdCB2YWx1ZXMsIHlvdSBuZWVkIHRvIHByb3ZpZGUgZGlzcGxheVdpZHRoIGJlZm9yZVxuICAgICAgICAgc2V0dGluZyBvciBzZWxlY3RpbmcgYW55IHZhbHVlLmAsXG4gICAgICApO1xuICAgICAgZGlzcGxheVdpdGhXYXJuaW5nTG9nZ2VkID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5pbnNlcnRCZWZvcmUobmV3Q2hpcCwgdGhpcy5faW5wdXRFbGVtZW50ID8/IHRoaXMucXVlcnlTZWxlY3RvcignaW5wdXQnKSk7XG4gIH1cblxuICBwcml2YXRlIF9yZWFjdFRvSW5wdXRDaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZGlzYWJsZWQgPSB0aGlzLl9pbnB1dEVsZW1lbnQ/LmRpc2FibGVkID8/IGZhbHNlO1xuICAgIHRoaXMuX3Byb3h5U3RhdGVUb0NoaXBzKCk7XG4gIH1cblxuICBwcml2YXRlIF9wcm94eVN0YXRlVG9DaGlwcygpOiB2b2lkIHtcbiAgICB0aGlzLl9jaGlwRWxlbWVudHMoKS5mb3JFYWNoKChjKSA9PiB7XG4gICAgICBjLmRpc2FibGVkID0gdGhpcy5kaXNhYmxlZCB8fCB0aGlzLmZvcm1EaXNhYmxlZDtcbiAgICAgIGMucmVhZE9ubHkgPSB0aGlzLl9pbnB1dEVsZW1lbnQ/Lmhhc0F0dHJpYnV0ZSgncmVhZG9ubHknKSA/PyBmYWxzZTtcbiAgICAgIGMubmVnYXRpdmUgPSB0aGlzLm5lZ2F0aXZlO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlU2l6ZShzaXplOiBTYmJGb3JtRmllbGRFbGVtZW50WydzaXplJ10pOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fcHJldmlvdXNTaXplKSB7XG4gICAgICB0aGlzLmludGVybmFscy5zdGF0ZXMuZGVsZXRlKGBzaXplLSR7dGhpcy5fcHJldmlvdXNTaXplfWApO1xuICAgIH1cbiAgICB0aGlzLl9wcmV2aW91c1NpemUgPSBzaXplO1xuICAgIGlmICh0aGlzLl9wcmV2aW91c1NpemUpIHtcbiAgICAgIHRoaXMuaW50ZXJuYWxzLnN0YXRlcy5hZGQoYHNpemUtJHt0aGlzLl9wcmV2aW91c1NpemV9YCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlSW5wdXREZXNjcmlwdGlvbigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2lucHV0RWxlbWVudCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9pbnB1dEVsZW1lbnQuc2V0QXR0cmlidXRlKFxuICAgICAgJ2FyaWEtZGVzY3JpcHRpb24nLFxuICAgICAgYCR7aTE4bkNoaXBHcm91cElucHV0RGVzY3JpcHRpb25bdGhpcy5fbGFuZ3VhZ2UuY3VycmVudF19ICR7dGhpcy52YWx1ZS5sZW5ndGh9YCxcbiAgICApO1xuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgPHNsb3QgQHNsb3RjaGFuZ2U9JHt0aGlzLl9zZXR1cENvbXBvbmVudH0+PC9zbG90PmA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1jaGlwLWdyb3VwJzogU2JiQ2hpcEdyb3VwRWxlbWVudDtcbiAgfVxuXG4gIGludGVyZmFjZSBIVE1MRWxlbWVudEV2ZW50TWFwIHtcbiAgICBjaGlwaW5wdXR0b2tlbmVuZDogU2JiQ2hpcElucHV0VG9rZW5FbmRFdmVudDxhbnk+O1xuICB9XG59XG4iXSwibmFtZXMiOlsidmFsdWUiXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQTJCTSxNQUFPLGtDQUE4QyxZQUUxRDtBQUFBO0FBQUE7QUFBQTtBQUFBLEVBY0MsSUFBb0IsU0FBTTtBQUN4QixXQUFPO0FBQUEsRUFDVDtBQUFBLEVBRUEsWUFBbUIsU0FBc0U7QUFDdkYsVUFBTSxxQkFBcUI7QUFBQSxNQUN6QixZQUFZO0FBQUEsTUFDWixTQUFTO0FBQUEsTUFDVCxVQUFVO0FBQUEsSUFBQSxDQUNYO0FBQ0QsU0FBSyxTQUFTLFFBQVE7QUFDdEIsU0FBSyxRQUFRLFFBQVE7QUFDckIsU0FBSyxRQUFRLFFBQVE7QUFBQSxFQUN2QjtBQUFBO0FBQUEsRUFHTyxTQUFTLE9BQVE7QUFDdEIsU0FBSyxRQUFRO0FBQUEsRUFDZjtBQUFBO0FBQUEsRUFFTyxTQUFTLE9BQWE7QUFDM0IsU0FBSyxRQUFRO0FBQUEsRUFDZjtBQUNEO0lBNEJZLHVCQUFtQixNQUFBOztvQkFBcUIsaUJBQ25ELGlCQUFpQixpQkFBaUIsdUJBQXVCLFVBQVUsQ0FBQyxDQUFDLENBQUM7Ozs7Ozs7Ozs7OztB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
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
import { SbbChipGroupElement } from "./chip-group/chip-group.component.js";
|
|
2
|
+
import { SbbChipInputTokenEndEvent } from "./chip-group/chip-group.component.js";
|
|
2
3
|
SbbChipGroupElement.define();
|
|
3
4
|
console.warn(`The entrypoint '@sbb-esta/elements/chip/chip-group.js' has been deprecated.
|
|
4
5
|
Use either '@sbb-esta/elements/chip.js' or '@sbb-esta/elements/chip.pure.js' instead.`);
|
|
5
6
|
export {
|
|
6
|
-
SbbChipGroupElement
|
|
7
|
+
SbbChipGroupElement,
|
|
8
|
+
SbbChipInputTokenEndEvent
|
|
7
9
|
};
|
|
8
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC1ncm91cC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NoaXAvY2hpcC1ncm91cC50cyJdLCJzb3VyY2VzQ29udGVudCI6WyIvKiogQGVudHJ5cG9pbnQgKi9cbmltcG9ydCB7IFNiYkNoaXBHcm91cEVsZW1lbnQgfSBmcm9tICcuL2NoaXAtZ3JvdXAvY2hpcC1ncm91cC5jb21wb25lbnQudHMnO1xuXG5leHBvcnQgKiBmcm9tICcuL2NoaXAtZ3JvdXAvY2hpcC1ncm91cC5jb21wb25lbnQudHMnO1xuXG5TYmJDaGlwR3JvdXBFbGVtZW50LmRlZmluZSgpO1xuXG5jb25zb2xlLndhcm4oYFRoZSBlbnRyeXBvaW50ICdAc2JiLWVzdGEvZWxlbWVudHMvY2hpcC9jaGlwLWdyb3VwLmpzJyBoYXMgYmVlbiBkZXByZWNhdGVkLlxuVXNlIGVpdGhlciAnQHNiYi1lc3RhL2VsZW1lbnRzL2NoaXAuanMnIG9yICdAc2JiLWVzdGEvZWxlbWVudHMvY2hpcC5wdXJlLmpzJyBpbnN0ZWFkLmApO1xuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBS0Esb0JBQW9CLE9BQUE7QUFFcEIsUUFBUSxLQUFLO0FBQUEsc0ZBQ3lFOyJ9
|
package/development/chip.js
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import { SbbChipGroupElement } from "./chip/chip-group/chip-group.component.js";
|
|
2
|
+
import { SbbChipInputTokenEndEvent } from "./chip/chip-group/chip-group.component.js";
|
|
2
3
|
import { SbbChipElement } from "./chip/chip/chip.component.js";
|
|
3
4
|
SbbChipElement.define();
|
|
4
5
|
SbbChipGroupElement.define();
|
|
5
6
|
export {
|
|
6
7
|
SbbChipElement,
|
|
7
|
-
SbbChipGroupElement
|
|
8
|
+
SbbChipGroupElement,
|
|
9
|
+
SbbChipInputTokenEndEvent
|
|
8
10
|
};
|
|
9
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,
|
|
11
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC5qcyIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2VsZW1lbnRzL2NoaXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiLyoqIEBlbnRyeXBvaW50ICovXG5pbXBvcnQgeyBTYmJDaGlwRWxlbWVudCwgU2JiQ2hpcEdyb3VwRWxlbWVudCB9IGZyb20gJy4vY2hpcC5wdXJlLnRzJztcblxuZXhwb3J0ICogZnJvbSAnLi9jaGlwLnB1cmUudHMnO1xuXG5TYmJDaGlwRWxlbWVudC5kZWZpbmUoKTtcblNiYkNoaXBHcm91cEVsZW1lbnQuZGVmaW5lKCk7XG4iXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBS0EsZUFBZSxPQUFBO0FBQ2Ysb0JBQW9CLE9BQUE7In0=
|
package/development/chip.pure.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { SbbChipGroupElement } from "./chip/chip-group/chip-group.component.js";
|
|
1
|
+
import { SbbChipGroupElement, SbbChipInputTokenEndEvent } from "./chip/chip-group/chip-group.component.js";
|
|
2
2
|
import { SbbChipElement } from "./chip/chip/chip.component.js";
|
|
3
3
|
export {
|
|
4
4
|
SbbChipElement,
|
|
5
|
-
SbbChipGroupElement
|
|
5
|
+
SbbChipGroupElement,
|
|
6
|
+
SbbChipInputTokenEndEvent
|
|
6
7
|
};
|
|
7
8
|
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hpcC5wdXJlLmpzIiwic291cmNlcyI6W10sInNvdXJjZXNDb250ZW50IjpbXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7In0=
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sbb-esta/lyne-elements-dev",
|
|
3
|
-
"version": "4.7.0-dev.
|
|
3
|
+
"version": "4.7.0-dev.1773409936",
|
|
4
4
|
"description": "Lyne Design System",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"design system",
|
|
7
7
|
"web components",
|
|
8
8
|
"lit",
|
|
9
9
|
"storybook",
|
|
10
|
-
"https://github.com/sbb-design-systems/lyne-components/commit/
|
|
10
|
+
"https://github.com/sbb-design-systems/lyne-components/commit/74df0ac8d85ee6197b18b6c89b50e232d86ccf69"
|
|
11
11
|
],
|
|
12
12
|
"type": "module",
|
|
13
13
|
"exports": {
|