@sbb-esta/lyne-elements 0.52.2 → 0.53.0
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/checkbox/checkbox/checkbox.d.ts +3 -46
- package/checkbox/checkbox/checkbox.d.ts.map +1 -1
- package/checkbox/checkbox-group/checkbox-group.d.ts +4 -2
- package/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/checkbox/checkbox-group.js +11 -8
- package/checkbox/checkbox-panel/checkbox-panel.d.ts +41 -0
- package/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -0
- package/checkbox/checkbox-panel.d.ts +2 -0
- package/checkbox/checkbox-panel.d.ts.map +1 -0
- package/checkbox/checkbox-panel.js +67 -0
- package/checkbox/checkbox.js +26 -103
- package/checkbox/common/checkbox-common.d.ts +13 -0
- package/checkbox/common/checkbox-common.d.ts.map +1 -0
- package/checkbox/common.d.ts +2 -0
- package/checkbox/common.d.ts.map +1 -0
- package/checkbox/common.js +52 -0
- package/checkbox.d.ts +2 -0
- package/checkbox.d.ts.map +1 -1
- package/checkbox.js +2 -0
- package/core/mixins/panel-mixin.d.ts +13 -0
- package/core/mixins/panel-mixin.d.ts.map +1 -0
- package/core/mixins.d.ts +1 -0
- package/core/mixins.d.ts.map +1 -1
- package/core/mixins.js +120 -89
- package/core/styles/node_modules_@sbb-esta_lyne-design-tokens_dist_scss_sbb-variables_css--mixin.scss +1 -1
- package/core.css +1 -1
- package/custom-elements.json +8862 -6904
- package/development/checkbox/checkbox/checkbox.d.ts +3 -46
- package/development/checkbox/checkbox/checkbox.d.ts.map +1 -1
- package/development/checkbox/checkbox-group/checkbox-group.d.ts +4 -2
- package/development/checkbox/checkbox-group/checkbox-group.d.ts.map +1 -1
- package/development/checkbox/checkbox-group.js +43 -13
- package/development/checkbox/checkbox-panel/checkbox-panel.d.ts +41 -0
- package/development/checkbox/checkbox-panel/checkbox-panel.d.ts.map +1 -0
- package/development/checkbox/checkbox-panel.d.ts +2 -0
- package/development/checkbox/checkbox-panel.d.ts.map +1 -0
- package/development/checkbox/checkbox-panel.js +86 -0
- package/development/checkbox/checkbox.js +19 -239
- package/development/checkbox/common/checkbox-common.d.ts +13 -0
- package/development/checkbox/common/checkbox-common.d.ts.map +1 -0
- package/development/checkbox/common.d.ts +2 -0
- package/development/checkbox/common.d.ts.map +1 -0
- package/development/checkbox/common.js +156 -0
- package/development/checkbox.d.ts +2 -0
- package/development/checkbox.d.ts.map +1 -1
- package/development/checkbox.js +3 -1
- package/development/core/mixins/panel-mixin.d.ts +13 -0
- package/development/core/mixins/panel-mixin.d.ts.map +1 -0
- package/development/core/mixins.d.ts +1 -0
- package/development/core/mixins.d.ts.map +1 -1
- package/development/core/mixins.js +187 -31
- package/development/image.js +1 -1
- package/development/radio-button/common/radio-button-common.d.ts +22 -0
- package/development/radio-button/common/radio-button-common.d.ts.map +1 -0
- package/development/radio-button/common.d.ts +2 -0
- package/development/radio-button/common.d.ts.map +1 -0
- package/development/radio-button/common.js +294 -0
- package/development/radio-button/radio-button/radio-button.d.ts +2 -81
- package/development/radio-button/radio-button/radio-button.d.ts.map +1 -1
- package/development/radio-button/radio-button-group/radio-button-group.d.ts +6 -4
- package/development/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
- package/development/radio-button/radio-button-group.js +55 -23
- package/development/radio-button/radio-button-panel/index.d.ts +2 -0
- package/development/radio-button/radio-button-panel/index.d.ts.map +1 -0
- package/development/radio-button/radio-button-panel/radio-button-panel.d.ts +29 -0
- package/development/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -0
- package/development/radio-button/radio-button-panel.d.ts +2 -0
- package/development/radio-button/radio-button-panel.d.ts.map +1 -0
- package/development/radio-button/radio-button-panel.js +69 -0
- package/development/radio-button/radio-button.js +10 -324
- package/development/radio-button.d.ts +2 -0
- package/development/radio-button.d.ts.map +1 -1
- package/development/radio-button.js +3 -1
- package/{selection-panel/selection-panel.d.ts → development/selection-expansion-panel/selection-expansion-panel.d.ts} +9 -7
- package/development/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -0
- package/development/selection-expansion-panel.d.ts +2 -0
- package/development/selection-expansion-panel.d.ts.map +1 -0
- package/development/selection-expansion-panel.js +340 -0
- package/development/tabs/tab/index.d.ts +2 -0
- package/development/tabs/tab/index.d.ts.map +1 -0
- package/development/tabs/tab/tab.d.ts +24 -0
- package/development/tabs/tab/tab.d.ts.map +1 -0
- package/development/tabs/tab-group/tab-group.d.ts +20 -15
- package/development/tabs/tab-group/tab-group.d.ts.map +1 -1
- package/development/tabs/tab-group.js +24 -14
- package/development/tabs/{tab-title/tab-title.d.ts → tab-label/tab-label.d.ts} +4 -4
- package/development/tabs/{tab-title/tab-title.d.ts.map → tab-label/tab-label.d.ts.map} +1 -1
- package/development/tabs/tab-label.d.ts +2 -0
- package/development/tabs/tab-label.d.ts.map +1 -0
- package/development/tabs/{tab-title.js → tab-label.js} +86 -86
- package/development/tabs/tab.d.ts +2 -0
- package/development/tabs/tab.d.ts.map +1 -0
- package/development/tabs/tab.js +71 -0
- package/development/tabs.d.ts +2 -1
- package/development/tabs.d.ts.map +1 -1
- package/development/tabs.js +3 -2
- package/development/train/train-formation/train-formation.d.ts.map +1 -1
- package/development/train/train-formation.js +12 -12
- package/index.d.ts +10 -8
- package/index.js +10 -8
- package/package.json +34 -19
- package/radio-button/common/radio-button-common.d.ts +22 -0
- package/radio-button/common/radio-button-common.d.ts.map +1 -0
- package/radio-button/common.d.ts +2 -0
- package/radio-button/common.d.ts.map +1 -0
- package/radio-button/common.js +105 -0
- package/radio-button/radio-button/radio-button.d.ts +2 -81
- package/radio-button/radio-button/radio-button.d.ts.map +1 -1
- package/radio-button/radio-button-group/radio-button-group.d.ts +6 -4
- package/radio-button/radio-button-group/radio-button-group.d.ts.map +1 -1
- package/radio-button/radio-button-group.js +64 -58
- package/radio-button/radio-button-panel/index.d.ts +2 -0
- package/radio-button/radio-button-panel/index.d.ts.map +1 -0
- package/radio-button/radio-button-panel/radio-button-panel.d.ts +29 -0
- package/radio-button/radio-button-panel/radio-button-panel.d.ts.map +1 -0
- package/radio-button/radio-button-panel.d.ts +2 -0
- package/radio-button/radio-button-panel.d.ts.map +1 -0
- package/radio-button/radio-button-panel.js +59 -0
- package/radio-button/radio-button.js +20 -143
- package/radio-button.d.ts +2 -0
- package/radio-button.d.ts.map +1 -1
- package/radio-button.js +2 -0
- package/{development/selection-panel/selection-panel.d.ts → selection-expansion-panel/selection-expansion-panel.d.ts} +9 -7
- package/selection-expansion-panel/selection-expansion-panel.d.ts.map +1 -0
- package/selection-expansion-panel.d.ts +2 -0
- package/selection-expansion-panel.d.ts.map +1 -0
- package/selection-expansion-panel.js +146 -0
- package/standard-theme.css +1 -1
- package/tabs/tab/index.d.ts +2 -0
- package/tabs/tab/index.d.ts.map +1 -0
- package/tabs/tab/tab.d.ts +24 -0
- package/tabs/tab/tab.d.ts.map +1 -0
- package/tabs/tab-group/tab-group.d.ts +20 -15
- package/tabs/tab-group/tab-group.d.ts.map +1 -1
- package/tabs/tab-group.js +39 -29
- package/tabs/{tab-title/tab-title.d.ts → tab-label/tab-label.d.ts} +4 -4
- package/tabs/{tab-title/tab-title.d.ts.map → tab-label/tab-label.d.ts.map} +1 -1
- package/tabs/tab-label.d.ts +2 -0
- package/tabs/tab-label.d.ts.map +1 -0
- package/tabs/tab-label.js +51 -0
- package/tabs/tab.d.ts +2 -0
- package/tabs/tab.d.ts.map +1 -0
- package/tabs/tab.js +41 -0
- package/tabs.d.ts +2 -1
- package/tabs.d.ts.map +1 -1
- package/tabs.js +2 -1
- package/train/train-formation/train-formation.d.ts.map +1 -1
- package/train/train-formation.js +32 -32
- package/development/selection-panel/selection-panel.d.ts.map +0 -1
- package/development/selection-panel.d.ts +0 -2
- package/development/selection-panel.d.ts.map +0 -1
- package/development/selection-panel.js +0 -376
- package/development/tabs/tab-title.d.ts +0 -2
- package/development/tabs/tab-title.d.ts.map +0 -1
- package/development/teaser-hero/teaser-hero.d.ts +0 -26
- package/development/teaser-hero/teaser-hero.d.ts.map +0 -1
- package/development/teaser-hero.d.ts +0 -2
- package/development/teaser-hero.d.ts.map +0 -1
- package/development/teaser-hero.js +0 -181
- package/development/teaser-paid/teaser-paid.d.ts +0 -20
- package/development/teaser-paid/teaser-paid.d.ts.map +0 -1
- package/development/teaser-paid.d.ts +0 -2
- package/development/teaser-paid.d.ts.map +0 -1
- package/development/teaser-paid.js +0 -91
- package/selection-panel/selection-panel.d.ts.map +0 -1
- package/selection-panel.d.ts +0 -2
- package/selection-panel.d.ts.map +0 -1
- package/selection-panel.js +0 -138
- package/tabs/tab-title.d.ts +0 -2
- package/tabs/tab-title.d.ts.map +0 -1
- package/tabs/tab-title.js +0 -51
- package/teaser-hero/teaser-hero.d.ts +0 -26
- package/teaser-hero/teaser-hero.d.ts.map +0 -1
- package/teaser-hero.d.ts +0 -2
- package/teaser-hero.d.ts.map +0 -1
- package/teaser-hero.js +0 -51
- package/teaser-paid/teaser-paid.d.ts +0 -20
- package/teaser-paid/teaser-paid.d.ts.map +0 -1
- package/teaser-paid.d.ts +0 -2
- package/teaser-paid.d.ts.map +0 -1
- package/teaser-paid.js +0 -28
|
@@ -31,17 +31,23 @@ const style = css`/**
|
|
|
31
31
|
--sbb-radio-button-group-gap: var(--sbb-spacing-fixed-3x) var(--sbb-spacing-fixed-6x);
|
|
32
32
|
display: block;
|
|
33
33
|
}
|
|
34
|
+
:host ::slotted(sbb-radio-button-panel) {
|
|
35
|
+
flex: auto;
|
|
36
|
+
}
|
|
34
37
|
|
|
35
38
|
:host([orientation=vertical]) {
|
|
36
39
|
--sbb-radio-button-group-orientation: column;
|
|
37
40
|
--sbb-radio-button-group-width: 100%;
|
|
38
41
|
}
|
|
42
|
+
:host([orientation=vertical]) ::slotted(sbb-radio-button-panel) {
|
|
43
|
+
width: 100%;
|
|
44
|
+
}
|
|
39
45
|
|
|
40
|
-
:host([data-has-
|
|
46
|
+
:host([data-has-panel]) {
|
|
41
47
|
--sbb-radio-button-group-width: 100%;
|
|
42
48
|
}
|
|
43
49
|
|
|
44
|
-
:host([data-has-
|
|
50
|
+
:host([data-has-panel][orientation=vertical]) {
|
|
45
51
|
--sbb-radio-button-group-gap: var(--sbb-spacing-fixed-2x) var(--sbb-spacing-fixed-4x);
|
|
46
52
|
}
|
|
47
53
|
|
|
@@ -49,7 +55,10 @@ const style = css`/**
|
|
|
49
55
|
:host([orientation=vertical][horizontal-from=zero]) {
|
|
50
56
|
--sbb-radio-button-group-orientation: row;
|
|
51
57
|
}
|
|
52
|
-
:host([orientation=vertical][horizontal-from=zero]
|
|
58
|
+
:host([orientation=vertical][horizontal-from=zero]) ::slotted(sbb-radio-button-panel) {
|
|
59
|
+
width: unset;
|
|
60
|
+
}
|
|
61
|
+
:host([orientation=vertical][horizontal-from=zero]:not([data-has-panel])) {
|
|
53
62
|
--sbb-radio-button-group-width: max-content;
|
|
54
63
|
}
|
|
55
64
|
}
|
|
@@ -57,7 +66,10 @@ const style = css`/**
|
|
|
57
66
|
:host([orientation=vertical][horizontal-from=micro]) {
|
|
58
67
|
--sbb-radio-button-group-orientation: row;
|
|
59
68
|
}
|
|
60
|
-
:host([orientation=vertical][horizontal-from=micro]
|
|
69
|
+
:host([orientation=vertical][horizontal-from=micro]) ::slotted(sbb-radio-button-panel) {
|
|
70
|
+
width: unset;
|
|
71
|
+
}
|
|
72
|
+
:host([orientation=vertical][horizontal-from=micro]:not([data-has-panel])) {
|
|
61
73
|
--sbb-radio-button-group-width: max-content;
|
|
62
74
|
}
|
|
63
75
|
}
|
|
@@ -65,7 +77,10 @@ const style = css`/**
|
|
|
65
77
|
:host([orientation=vertical][horizontal-from=small]) {
|
|
66
78
|
--sbb-radio-button-group-orientation: row;
|
|
67
79
|
}
|
|
68
|
-
:host([orientation=vertical][horizontal-from=small]
|
|
80
|
+
:host([orientation=vertical][horizontal-from=small]) ::slotted(sbb-radio-button-panel) {
|
|
81
|
+
width: unset;
|
|
82
|
+
}
|
|
83
|
+
:host([orientation=vertical][horizontal-from=small]:not([data-has-panel])) {
|
|
69
84
|
--sbb-radio-button-group-width: max-content;
|
|
70
85
|
}
|
|
71
86
|
}
|
|
@@ -73,7 +88,10 @@ const style = css`/**
|
|
|
73
88
|
:host([orientation=vertical][horizontal-from=medium]) {
|
|
74
89
|
--sbb-radio-button-group-orientation: row;
|
|
75
90
|
}
|
|
76
|
-
:host([orientation=vertical][horizontal-from=medium]
|
|
91
|
+
:host([orientation=vertical][horizontal-from=medium]) ::slotted(sbb-radio-button-panel) {
|
|
92
|
+
width: unset;
|
|
93
|
+
}
|
|
94
|
+
:host([orientation=vertical][horizontal-from=medium]:not([data-has-panel])) {
|
|
77
95
|
--sbb-radio-button-group-width: max-content;
|
|
78
96
|
}
|
|
79
97
|
}
|
|
@@ -81,7 +99,10 @@ const style = css`/**
|
|
|
81
99
|
:host([orientation=vertical][horizontal-from=large]) {
|
|
82
100
|
--sbb-radio-button-group-orientation: row;
|
|
83
101
|
}
|
|
84
|
-
:host([orientation=vertical][horizontal-from=large]
|
|
102
|
+
:host([orientation=vertical][horizontal-from=large]) ::slotted(sbb-radio-button-panel) {
|
|
103
|
+
width: unset;
|
|
104
|
+
}
|
|
105
|
+
:host([orientation=vertical][horizontal-from=large]:not([data-has-panel])) {
|
|
85
106
|
--sbb-radio-button-group-width: max-content;
|
|
86
107
|
}
|
|
87
108
|
}
|
|
@@ -89,7 +110,10 @@ const style = css`/**
|
|
|
89
110
|
:host([orientation=vertical][horizontal-from=wide]) {
|
|
90
111
|
--sbb-radio-button-group-orientation: row;
|
|
91
112
|
}
|
|
92
|
-
:host([orientation=vertical][horizontal-from=wide]
|
|
113
|
+
:host([orientation=vertical][horizontal-from=wide]) ::slotted(sbb-radio-button-panel) {
|
|
114
|
+
width: unset;
|
|
115
|
+
}
|
|
116
|
+
:host([orientation=vertical][horizontal-from=wide]:not([data-has-panel])) {
|
|
93
117
|
--sbb-radio-button-group-width: max-content;
|
|
94
118
|
}
|
|
95
119
|
}
|
|
@@ -97,7 +121,10 @@ const style = css`/**
|
|
|
97
121
|
:host([orientation=vertical][horizontal-from=ultra]) {
|
|
98
122
|
--sbb-radio-button-group-orientation: row;
|
|
99
123
|
}
|
|
100
|
-
:host([orientation=vertical][horizontal-from=ultra]
|
|
124
|
+
:host([orientation=vertical][horizontal-from=ultra]) ::slotted(sbb-radio-button-panel) {
|
|
125
|
+
width: unset;
|
|
126
|
+
}
|
|
127
|
+
:host([orientation=vertical][horizontal-from=ultra]:not([data-has-panel])) {
|
|
101
128
|
--sbb-radio-button-group-width: max-content;
|
|
102
129
|
}
|
|
103
130
|
}
|
|
@@ -133,7 +160,7 @@ let SbbRadioButtonGroupElement = class extends SbbDisabledMixin(LitElement) {
|
|
|
133
160
|
this.required = false;
|
|
134
161
|
this.size = "m";
|
|
135
162
|
this.orientation = "horizontal";
|
|
136
|
-
this.
|
|
163
|
+
this._hasSelectionExpansionPanelElement = false;
|
|
137
164
|
this._didLoad = false;
|
|
138
165
|
this._abort = new SbbConnectedAbortController(this);
|
|
139
166
|
this._didChange = new EventEmitter(
|
|
@@ -155,7 +182,7 @@ let SbbRadioButtonGroupElement = class extends SbbDisabledMixin(LitElement) {
|
|
|
155
182
|
*/
|
|
156
183
|
get radioButtons() {
|
|
157
184
|
var _a;
|
|
158
|
-
return Array.from(((_a = this.querySelectorAll) == null ? void 0 : _a.call(this, "sbb-radio-button")) ?? []).filter((el) => {
|
|
185
|
+
return Array.from(((_a = this.querySelectorAll) == null ? void 0 : _a.call(this, "sbb-radio-button, sbb-radio-button-panel")) ?? []).filter((el) => {
|
|
159
186
|
var _a2;
|
|
160
187
|
return ((_a2 = el.closest) == null ? void 0 : _a2.call(el, "sbb-radio-button-group")) === this;
|
|
161
188
|
});
|
|
@@ -173,7 +200,7 @@ let SbbRadioButtonGroupElement = class extends SbbDisabledMixin(LitElement) {
|
|
|
173
200
|
this._setFocusableRadio();
|
|
174
201
|
}
|
|
175
202
|
connectedCallback() {
|
|
176
|
-
var _a;
|
|
203
|
+
var _a, _b;
|
|
177
204
|
super.connectedCallback();
|
|
178
205
|
const signal = this._abort.signal;
|
|
179
206
|
this.addEventListener(
|
|
@@ -185,8 +212,14 @@ let SbbRadioButtonGroupElement = class extends SbbDisabledMixin(LitElement) {
|
|
|
185
212
|
}
|
|
186
213
|
);
|
|
187
214
|
this.addEventListener("keydown", (e) => this._handleKeyDown(e), { signal });
|
|
188
|
-
this.
|
|
189
|
-
|
|
215
|
+
this._hasSelectionExpansionPanelElement = !!((_a = this.querySelector) == null ? void 0 : _a.call(
|
|
216
|
+
this,
|
|
217
|
+
"sbb-selection-expansion-panel"
|
|
218
|
+
));
|
|
219
|
+
this.toggleAttribute(
|
|
220
|
+
"data-has-panel",
|
|
221
|
+
!!((_b = this.querySelector) == null ? void 0 : _b.call(this, "sbb-selection-expansion-panel, sbb-radio-button-panel"))
|
|
222
|
+
);
|
|
190
223
|
this._updateRadios(this.value);
|
|
191
224
|
}
|
|
192
225
|
willUpdate(changedProperties) {
|
|
@@ -266,25 +299,24 @@ let SbbRadioButtonGroupElement = class extends SbbDisabledMixin(LitElement) {
|
|
|
266
299
|
}
|
|
267
300
|
}
|
|
268
301
|
_getRadioTabIndex(radio) {
|
|
269
|
-
var _a;
|
|
270
302
|
const isSelected = radio.checked && !radio.disabled && !this.disabled;
|
|
271
|
-
|
|
272
|
-
return isSelected || this._hasSelectionPanel && isParentPanelWithContent ? 0 : -1;
|
|
303
|
+
return isSelected || this._hasSelectionExpansionPanelElement ? 0 : -1;
|
|
273
304
|
}
|
|
274
305
|
_handleKeyDown(evt) {
|
|
275
|
-
var _a
|
|
306
|
+
var _a;
|
|
276
307
|
const enabledRadios = this._enabledRadios;
|
|
277
308
|
if (!enabledRadios || !enabledRadios.length || // don't trap nested handling
|
|
278
|
-
evt.target !== this && evt.target.parentElement !== this && ((_a = evt.target.parentElement) == null ? void 0 : _a.
|
|
309
|
+
evt.target !== this && evt.target.parentElement !== this && ((_a = evt.target.parentElement) == null ? void 0 : _a.localName) !== "sbb-selection-expansion-panel") {
|
|
279
310
|
return;
|
|
280
311
|
}
|
|
281
312
|
if (!isArrowKeyPressed(evt)) {
|
|
282
313
|
return;
|
|
283
314
|
}
|
|
284
|
-
const current = enabledRadios.findIndex(
|
|
315
|
+
const current = enabledRadios.findIndex(
|
|
316
|
+
(e) => e === evt.target
|
|
317
|
+
);
|
|
285
318
|
const nextIndex = getNextElementIndex(evt, current, enabledRadios.length);
|
|
286
|
-
|
|
287
|
-
if (!this._hasSelectionPanel || this._hasSelectionPanel && allPanelsHaveNoContent) {
|
|
319
|
+
if (!this._hasSelectionExpansionPanelElement) {
|
|
288
320
|
enabledRadios[nextIndex].select();
|
|
289
321
|
}
|
|
290
322
|
enabledRadios[nextIndex].focus();
|
|
@@ -334,4 +366,4 @@ SbbRadioButtonGroupElement = __decorateClass([
|
|
|
334
366
|
export {
|
|
335
367
|
SbbRadioButtonGroupElement
|
|
336
368
|
};
|
|
337
|
-
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLWdyb3VwLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvcmFkaW8tYnV0dG9uL3JhZGlvLWJ1dHRvbi1ncm91cC9yYWRpby1idXR0b24tZ3JvdXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGh0bWwsIExpdEVsZW1lbnQgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGdldE5leHRFbGVtZW50SW5kZXgsIGlzQXJyb3dLZXlQcmVzc2VkIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciwgU2JiU2xvdFN0YXRlQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkhvcml6b250YWxGcm9tLCBTYmJPcmllbnRhdGlvbiwgU2JiU3RhdGVDaGFuZ2UgfSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMuanMnO1xuaW1wb3J0IHsgU2JiRGlzYWJsZWRNaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiU2VsZWN0aW9uUGFuZWxFbGVtZW50IH0gZnJvbSAnLi4vLi4vc2VsZWN0aW9uLXBhbmVsLmpzJztcbmltcG9ydCB0eXBlIHtcbiAgU2JiUmFkaW9CdXR0b25FbGVtZW50LFxuICBTYmJSYWRpb0J1dHRvblNpemUsXG4gIFNiYlJhZGlvQnV0dG9uU3RhdGVDaGFuZ2UsXG59IGZyb20gJy4uL3JhZGlvLWJ1dHRvbi5qcyc7XG5cbmltcG9ydCBzdHlsZSBmcm9tICcuL3JhZGlvLWJ1dHRvbi1ncm91cC5zY3NzP2xpdCZpbmxpbmUnO1xuXG5leHBvcnQgdHlwZSBTYmJSYWRpb0J1dHRvbkdyb3VwRXZlbnREZXRhaWwgPSB7XG4gIHZhbHVlOiBhbnkgfCBudWxsO1xuICByYWRpb0J1dHRvbjogU2JiUmFkaW9CdXR0b25FbGVtZW50O1xufTtcblxuLyoqXG4gKiBJdCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRhaW5lciBmb3Igb25lIG9yIG1vcmUgYHNiYi1yYWRpby1idXR0b25gLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItcmFkaW8tYnV0dG9uYCBlbGVtZW50cyB0byB0aGUgYHNiYi1yYWRpby1idXR0b24tZ3JvdXBgLlxuICogQHNsb3QgZXJyb3IgLSBVc2UgdGhpcyB0byBwcm92aWRlIGEgYHNiYi1mb3JtLWVycm9yYCB0byBzaG93IGFuIGVycm9yIG1lc3NhZ2UuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFNiYlJhZGlvQnV0dG9uR3JvdXBFdmVudERldGFpbD59IGRpZENoYW5nZSAtIERlcHJlY2F0ZWQuIE9ubHkgdXNlZCBmb3IgUmVhY3QuIFdpbGwgcHJvYmFibHkgYmUgcmVtb3ZlZCBvbmNlIFJlYWN0IDE5IGlzIGF2YWlsYWJsZS4gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItcmFkaW8tZ3JvdXBgIHZhbHVlIGNoYW5nZXMuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFNiYlJhZGlvQnV0dG9uR3JvdXBFdmVudERldGFpbD59IGNoYW5nZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXJhZGlvLWdyb3VwYCB2YWx1ZSBjaGFuZ2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxTYmJSYWRpb0J1dHRvbkdyb3VwRXZlbnREZXRhaWw+fSBpbnB1dCAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXJhZGlvLWdyb3VwYCB2YWx1ZSBjaGFuZ2VzLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLXJhZGlvLWJ1dHRvbi1ncm91cCcpXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICByb2xlOiAncmFkaW9ncm91cCcsXG59KVxuZXhwb3J0IGNsYXNzIFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBkaWRDaGFuZ2U6ICdkaWRDaGFuZ2UnLFxuICAgIGNoYW5nZTogJ2NoYW5nZScsXG4gICAgaW5wdXQ6ICdpbnB1dCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJhZGlvcyBjYW4gYmUgZGVzZWxlY3RlZC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FsbG93LWVtcHR5LXNlbGVjdGlvbicsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFsbG93RW1wdHlTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcmFkaW8gZ3JvdXAgaXMgcmVxdWlyZWQuXG4gICAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHJhZGlvIGdyb3VwLlxuICAgKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIHZhbHVlPzogYW55IHwgbnVsbDtcblxuICAvKipcbiAgICogU2l6ZSB2YXJpYW50LCBlaXRoZXIgbSBvciBzLlxuICAgKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIHNpemU6IFNiYlJhZGlvQnV0dG9uU2l6ZSA9ICdtJztcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBiZWhhdmlvdXIgb2YgYG9yaWVudGF0aW9uYCBwcm9wZXJ0eS5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hvcml6b250YWwtZnJvbScsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGhvcml6b250YWxGcm9tPzogU2JiSG9yaXpvbnRhbEZyb207XG5cbiAgLyoqXG4gICAqIFJhZGlvIGdyb3VwJ3Mgb3JpZW50YXRpb24sIGVpdGhlciBob3Jpem9udGFsIG9yIHZlcnRpY2FsLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgb3JpZW50YXRpb246IFNiYk9yaWVudGF0aW9uID0gJ2hvcml6b250YWwnO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGNvbnRhaW5lZCByYWRpbyBidXR0b25zLlxuICAgKi9cbiAgcHVibGljIGdldCByYWRpb0J1dHRvbnMoKTogU2JiUmFkaW9CdXR0b25FbGVtZW50W10ge1xuICAgIHJldHVybiAoXG4gICAgICBBcnJheS5mcm9tKHRoaXMucXVlcnlTZWxlY3RvckFsbD8uKCdzYmItcmFkaW8tYnV0dG9uJykgPz8gW10pIGFzIFNiYlJhZGlvQnV0dG9uRWxlbWVudFtdXG4gICAgKS5maWx0ZXIoKGVsKSA9PiBlbC5jbG9zZXN0Py4oJ3NiYi1yYWRpby1idXR0b24tZ3JvdXAnKSA9PT0gdGhpcyk7XG4gIH1cblxuICBwcml2YXRlIGdldCBfZW5hYmxlZFJhZGlvcygpOiBTYmJSYWRpb0J1dHRvbkVsZW1lbnRbXSB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm4gdGhpcy5yYWRpb0J1dHRvbnMuZmlsdGVyKChyKSA9PiAhci5kaXNhYmxlZCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfaGFzU2VsZWN0aW9uUGFuZWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZGlkTG9hZCA9IGZhbHNlO1xuICBwcml2YXRlIF9hYm9ydCA9IG5ldyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHJpdmF0ZSBfdmFsdWVDaGFuZ2VkKHZhbHVlOiBhbnkgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHJhZGlvIG9mIHRoaXMucmFkaW9CdXR0b25zKSB7XG4gICAgICByYWRpby5jaGVja2VkID0gcmFkaW8udmFsdWUgPT09IHZhbHVlO1xuICAgICAgcmFkaW8udGFiSW5kZXggPSB0aGlzLl9nZXRSYWRpb1RhYkluZGV4KHJhZGlvKTtcbiAgICB9XG4gICAgdGhpcy5fc2V0Rm9jdXNhYmxlUmFkaW8oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1yYWRpby1ncm91cGAgdmFsdWUgY2hhbmdlcy5cbiAgICogQGRlcHJlY2F0ZWQgb25seSB1c2VkIGZvciBSZWFjdC4gV2lsbCBwcm9iYWJseSBiZSByZW1vdmVkIG9uY2UgUmVhY3QgMTkgaXMgYXZhaWxhYmxlLlxuICAgKi9cbiAgcHJpdmF0ZSBfZGlkQ2hhbmdlOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFNiYlJhZGlvQnV0dG9uR3JvdXBFdmVudERldGFpbD4oXG4gICAgdGhpcyxcbiAgICBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudC5ldmVudHMuZGlkQ2hhbmdlLFxuICApO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1yYWRpby1ncm91cGAgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIHByaXZhdGUgX2NoYW5nZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxTYmJSYWRpb0J1dHRvbkdyb3VwRXZlbnREZXRhaWw+KFxuICAgIHRoaXMsXG4gICAgU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQuZXZlbnRzLmNoYW5nZSxcbiAgKTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItcmFkaW8tZ3JvdXBgIHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBwcml2YXRlIF9pbnB1dDogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxTYmJSYWRpb0J1dHRvbkdyb3VwRXZlbnREZXRhaWw+KFxuICAgIHRoaXMsXG4gICAgU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQuZXZlbnRzLmlucHV0LFxuICApO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIG5ldyBTYmJTbG90U3RhdGVDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgY29uc3Qgc2lnbmFsID0gdGhpcy5fYWJvcnQuc2lnbmFsO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdzdGF0ZUNoYW5nZScsXG4gICAgICAoZTogQ3VzdG9tRXZlbnQ8U2JiU3RhdGVDaGFuZ2U+KSA9PlxuICAgICAgICB0aGlzLl9vblJhZGlvQnV0dG9uU2VsZWN0KGUgYXMgQ3VzdG9tRXZlbnQ8U2JiUmFkaW9CdXR0b25TdGF0ZUNoYW5nZT4pLFxuICAgICAge1xuICAgICAgICBzaWduYWwsXG4gICAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGUpID0+IHRoaXMuX2hhbmRsZUtleURvd24oZSksIHsgc2lnbmFsIH0pO1xuICAgIHRoaXMuX2hhc1NlbGVjdGlvblBhbmVsID0gISF0aGlzLnF1ZXJ5U2VsZWN0b3I/Lignc2JiLXNlbGVjdGlvbi1wYW5lbCcpO1xuICAgIHRoaXMudG9nZ2xlQXR0cmlidXRlKCdkYXRhLWhhcy1zZWxlY3Rpb24tcGFuZWwnLCB0aGlzLl9oYXNTZWxlY3Rpb25QYW5lbCk7XG4gICAgdGhpcy5fdXBkYXRlUmFkaW9zKHRoaXMudmFsdWUpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHdpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIud2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCd2YWx1ZScpKSB7XG4gICAgICB0aGlzLl92YWx1ZUNoYW5nZWQodGhpcy52YWx1ZSk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2Rpc2FibGVkJykpIHtcbiAgICAgIGZvciAoY29uc3QgcmFkaW8gb2YgdGhpcy5yYWRpb0J1dHRvbnMpIHtcbiAgICAgICAgcmFkaW8udGFiSW5kZXggPSB0aGlzLl9nZXRSYWRpb1RhYkluZGV4KHJhZGlvKTtcbiAgICAgICAgcmFkaW8ucmVxdWVzdFVwZGF0ZT8uKCdkaXNhYmxlZCcpO1xuICAgICAgfVxuICAgICAgdGhpcy5fc2V0Rm9jdXNhYmxlUmFkaW8oKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygncmVxdWlyZWQnKSkge1xuICAgICAgdGhpcy5yYWRpb0J1dHRvbnMuZm9yRWFjaCgocikgPT4gci5yZXF1ZXN0VXBkYXRlPy4oJ3JlcXVpcmVkJykpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdzaXplJykpIHtcbiAgICAgIHRoaXMucmFkaW9CdXR0b25zLmZvckVhY2goKHIpID0+IHIucmVxdWVzdFVwZGF0ZT8uKCdzaXplJykpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSBmaXJzdFVwZGF0ZWQoY2hhbmdlZFByb3BlcnRpZXM6IFByb3BlcnR5VmFsdWVzPHRoaXM+KTogdm9pZCB7XG4gICAgc3VwZXIuZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIHRoaXMuX2RpZExvYWQgPSB0cnVlO1xuICAgIHRoaXMuX3VwZGF0ZVJhZGlvcyh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBkaXNjb25uZWN0ZWRDYWxsYmFjaygpOiB2b2lkIHtcbiAgICBzdXBlci5kaXNjb25uZWN0ZWRDYWxsYmFjaygpO1xuICB9XG5cbiAgcHJpdmF0ZSBfb25SYWRpb0J1dHRvblNlbGVjdChldmVudDogQ3VzdG9tRXZlbnQ8U2JiUmFkaW9CdXR0b25TdGF0ZUNoYW5nZT4pOiB2b2lkIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoZXZlbnQuZGV0YWlsLnR5cGUgIT09ICdjaGVja2VkJyB8fCAhdGhpcy5fZGlkTG9hZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJhZGlvQnV0dG9uID0gZXZlbnQudGFyZ2V0IGFzIFNiYlJhZGlvQnV0dG9uRWxlbWVudDtcblxuICAgIGlmIChldmVudC5kZXRhaWwuY2hlY2tlZCkge1xuICAgICAgdGhpcy52YWx1ZSA9IHJhZGlvQnV0dG9uLnZhbHVlO1xuICAgICAgdGhpcy5fZW1pdENoYW5nZShyYWRpb0J1dHRvbiwgdGhpcy52YWx1ZSk7XG4gICAgfSBlbHNlIGlmICh0aGlzLmFsbG93RW1wdHlTZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnJhZGlvQnV0dG9ucy5maW5kKChyYWRpbykgPT4gcmFkaW8uY2hlY2tlZCk/LnZhbHVlO1xuICAgICAgaWYgKCF0aGlzLnZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2VtaXRDaGFuZ2UocmFkaW9CdXR0b24pO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2VtaXRDaGFuZ2UocmFkaW9CdXR0b246IFNiYlJhZGlvQnV0dG9uRWxlbWVudCwgdmFsdWU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9jaGFuZ2UuZW1pdCh7IHZhbHVlLCByYWRpb0J1dHRvbiB9KTtcbiAgICB0aGlzLl9pbnB1dC5lbWl0KHsgdmFsdWUsIHJhZGlvQnV0dG9uIH0pO1xuICAgIHRoaXMuX2RpZENoYW5nZS5lbWl0KHsgdmFsdWUsIHJhZGlvQnV0dG9uIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfdXBkYXRlUmFkaW9zKGluaXRWYWx1ZT86IHN0cmluZyk6IHZvaWQge1xuICAgIGlmICghdGhpcy5fZGlkTG9hZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IHJhZGlvQnV0dG9ucyA9IHRoaXMucmFkaW9CdXR0b25zO1xuXG4gICAgdGhpcy52YWx1ZSA9IGluaXRWYWx1ZSA/PyByYWRpb0J1dHRvbnMuZmluZCgocmFkaW8pID0+IHJhZGlvLmNoZWNrZWQpPy52YWx1ZSA/PyB0aGlzLnZhbHVlO1xuXG4gICAgZm9yIChjb25zdCByYWRpbyBvZiByYWRpb0J1dHRvbnMpIHtcbiAgICAgIHJhZGlvLmNoZWNrZWQgPSByYWRpby52YWx1ZSA9PT0gdGhpcy52YWx1ZTtcbiAgICAgIHJhZGlvLnRhYkluZGV4ID0gdGhpcy5fZ2V0UmFkaW9UYWJJbmRleChyYWRpbyk7XG4gICAgfVxuXG4gICAgdGhpcy5fc2V0Rm9jdXNhYmxlUmFkaW8oKTtcbiAgfVxuXG4gIHByaXZhdGUgX3NldEZvY3VzYWJsZVJhZGlvKCk6IHZvaWQge1xuICAgIGNvbnN0IGNoZWNrZWQgPSB0aGlzLnJhZGlvQnV0dG9ucy5maW5kKChyYWRpbykgPT4gcmFkaW8uY2hlY2tlZCAmJiAhcmFkaW8uZGlzYWJsZWQpO1xuXG4gICAgY29uc3QgZW5hYmxlZFJhZGlvcyA9IHRoaXMuX2VuYWJsZWRSYWRpb3M7XG4gICAgaWYgKCFjaGVja2VkICYmIGVuYWJsZWRSYWRpb3M/Lmxlbmd0aCkge1xuICAgICAgZW5hYmxlZFJhZGlvc1swXS50YWJJbmRleCA9IDA7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0UmFkaW9UYWJJbmRleChyYWRpbzogU2JiUmFkaW9CdXR0b25FbGVtZW50KTogbnVtYmVyIHtcbiAgICBjb25zdCBpc1NlbGVjdGVkOiBib29sZWFuID0gcmFkaW8uY2hlY2tlZCAmJiAhcmFkaW8uZGlzYWJsZWQgJiYgIXRoaXMuZGlzYWJsZWQ7XG4gICAgY29uc3QgaXNQYXJlbnRQYW5lbFdpdGhDb250ZW50OiBib29sZWFuID1cbiAgICAgIHJhZGlvLnBhcmVudEVsZW1lbnQ/Lm5vZGVOYW1lID09PSAnU0JCLVNFTEVDVElPTi1QQU5FTCcgJiZcbiAgICAgIChyYWRpby5wYXJlbnRFbGVtZW50IGFzIFNiYlNlbGVjdGlvblBhbmVsRWxlbWVudCkuaGFzQ29udGVudDtcblxuICAgIHJldHVybiBpc1NlbGVjdGVkIHx8ICh0aGlzLl9oYXNTZWxlY3Rpb25QYW5lbCAmJiBpc1BhcmVudFBhbmVsV2l0aENvbnRlbnQpID8gMCA6IC0xO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGxlS2V5RG93bihldnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICBjb25zdCBlbmFibGVkUmFkaW9zID0gdGhpcy5fZW5hYmxlZFJhZGlvcztcblxuICAgIGlmIChcbiAgICAgICFlbmFibGVkUmFkaW9zIHx8XG4gICAgICAhZW5hYmxlZFJhZGlvcy5sZW5ndGggfHxcbiAgICAgIC8vIGRvbid0IHRyYXAgbmVzdGVkIGhhbmRsaW5nXG4gICAgICAoKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpICE9PSB0aGlzICYmXG4gICAgICAgIChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5wYXJlbnRFbGVtZW50ICE9PSB0aGlzICYmXG4gICAgICAgIChldnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5wYXJlbnRFbGVtZW50Py5ub2RlTmFtZSAhPT0gJ1NCQi1TRUxFQ1RJT04tUEFORUwnKVxuICAgICkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghaXNBcnJvd0tleVByZXNzZWQoZXZ0KSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGN1cnJlbnQ6IG51bWJlciA9IGVuYWJsZWRSYWRpb3MuZmluZEluZGV4KChlOiBTYmJSYWRpb0J1dHRvbkVsZW1lbnQpID0+IGUgPT09IGV2dC50YXJnZXQpO1xuICAgIGNvbnN0IG5leHRJbmRleDogbnVtYmVyID0gZ2V0TmV4dEVsZW1lbnRJbmRleChldnQsIGN1cnJlbnQsIGVuYWJsZWRSYWRpb3MubGVuZ3RoKTtcblxuICAgIC8vIFNlbGVjdGlvbiBvbiBhcnJvdyBrZXlwcmVzcyBpcyBhbGxvd2VkIG9ubHkgaWYgYWxsIHRoZSBzZWxlY3Rpb24tcGFuZWxzIGhhdmUgbm8gY29udGVudC5cbiAgICBjb25zdCBhbGxQYW5lbHNIYXZlTm9Db250ZW50OiBib29sZWFuID0gKFxuICAgICAgQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLXNlbGVjdGlvbi1wYW5lbCcpKSB8fCBbXVxuICAgICkuZXZlcnkoKGU6IFNiYlNlbGVjdGlvblBhbmVsRWxlbWVudCkgPT4gIWUuaGFzQ29udGVudCk7XG4gICAgaWYgKCF0aGlzLl9oYXNTZWxlY3Rpb25QYW5lbCB8fCAodGhpcy5faGFzU2VsZWN0aW9uUGFuZWwgJiYgYWxsUGFuZWxzSGF2ZU5vQ29udGVudCkpIHtcbiAgICAgIGVuYWJsZWRSYWRpb3NbbmV4dEluZGV4XS5zZWxlY3QoKTtcbiAgICB9XG5cbiAgICBlbmFibGVkUmFkaW9zW25leHRJbmRleF0uZm9jdXMoKTtcbiAgICBldnQucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBvdmVycmlkZSByZW5kZXIoKTogVGVtcGxhdGVSZXN1bHQge1xuICAgIHJldHVybiBodG1sYFxuICAgICAgPGRpdiBjbGFzcz1cInNiYi1yYWRpby1ncm91cFwiPlxuICAgICAgICA8c2xvdCBAc2xvdGNoYW5nZT0keygpID0+IHRoaXMuX3VwZGF0ZVJhZGlvcygpfT48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItcmFkaW8tZ3JvdXBfX2Vycm9yXCI+XG4gICAgICAgIDxzbG90IG5hbWU9XCJlcnJvclwiPjwvc2xvdD5cbiAgICAgIDwvZGl2PlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1yYWRpby1idXR0b24tZ3JvdXAnOiBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbIl9hIl0sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQXFDTyxJQUFNLDZCQUFOLGNBQXlDLGlCQUFpQixVQUFVLEVBQUU7QUFBQSxFQTZGcEUsY0FBYztBQUNiO0FBbEZSLFNBQU8sc0JBQStCO0FBS1QsU0FBTyxXQUFvQjtBQVU1QyxTQUFPLE9BQTJCO0FBWTlDLFNBQU8sY0FBOEI7QUFpQnJDLFNBQVEscUJBQThCO0FBQ3RDLFNBQVEsV0FBVztBQUNYLFNBQUEsU0FBUyxJQUFJLDRCQUE0QixJQUFJO0FBY3JELFNBQVEsYUFBMkIsSUFBSTtBQUFBLE1BQ3JDO0FBQUEsTUFDQSwyQkFBMkIsT0FBTztBQUFBLElBQUE7QUFNcEMsU0FBUSxVQUF3QixJQUFJO0FBQUEsTUFDbEM7QUFBQSxNQUNBLDJCQUEyQixPQUFPO0FBQUEsSUFBQTtBQU1wQyxTQUFRLFNBQXVCLElBQUk7QUFBQSxNQUNqQztBQUFBLE1BQ0EsMkJBQTJCLE9BQU87QUFBQSxJQUFBO0FBS2xDLFFBQUksdUJBQXVCLElBQUk7QUFBQSxFQUNqQztBQUFBO0FBQUE7QUFBQTtBQUFBLEVBcERBLElBQVcsZUFBd0M7O0FBQ2pELFdBQ0UsTUFBTSxPQUFLLFVBQUsscUJBQUwsOEJBQXdCLHdCQUF1QixDQUFFLENBQUEsRUFDNUQsT0FBTyxDQUFDLE9BQU87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
|
|
369
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLWdyb3VwLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvcmFkaW8tYnV0dG9uL3JhZGlvLWJ1dHRvbi1ncm91cC9yYWRpby1idXR0b24tZ3JvdXAudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBDU1NSZXN1bHRHcm91cCwgUHJvcGVydHlWYWx1ZXMsIFRlbXBsYXRlUmVzdWx0IH0gZnJvbSAnbGl0JztcbmltcG9ydCB7IExpdEVsZW1lbnQsIGh0bWwgfSBmcm9tICdsaXQnO1xuaW1wb3J0IHsgY3VzdG9tRWxlbWVudCwgcHJvcGVydHkgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IGdldE5leHRFbGVtZW50SW5kZXgsIGlzQXJyb3dLZXlQcmVzc2VkIH0gZnJvbSAnLi4vLi4vY29yZS9hMTF5LmpzJztcbmltcG9ydCB7IFNiYkNvbm5lY3RlZEFib3J0Q29udHJvbGxlciwgU2JiU2xvdFN0YXRlQ29udHJvbGxlciB9IGZyb20gJy4uLy4uL2NvcmUvY29udHJvbGxlcnMuanMnO1xuaW1wb3J0IHsgaG9zdEF0dHJpYnV0ZXMgfSBmcm9tICcuLi8uLi9jb3JlL2RlY29yYXRvcnMuanMnO1xuaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnLi4vLi4vY29yZS9ldmVudGluZy5qcyc7XG5pbXBvcnQgdHlwZSB7IFNiYkhvcml6b250YWxGcm9tLCBTYmJPcmllbnRhdGlvbiwgU2JiU3RhdGVDaGFuZ2UgfSBmcm9tICcuLi8uLi9jb3JlL2ludGVyZmFjZXMuanMnO1xuaW1wb3J0IHsgU2JiRGlzYWJsZWRNaXhpbiB9IGZyb20gJy4uLy4uL2NvcmUvbWl4aW5zLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiUmFkaW9CdXR0b25TaXplLCBTYmJSYWRpb0J1dHRvblN0YXRlQ2hhbmdlIH0gZnJvbSAnLi4vY29tbW9uLmpzJztcbmltcG9ydCB0eXBlIHsgU2JiUmFkaW9CdXR0b25QYW5lbEVsZW1lbnQgfSBmcm9tICcuLi9yYWRpby1idXR0b24tcGFuZWwuanMnO1xuaW1wb3J0IHR5cGUgeyBTYmJSYWRpb0J1dHRvbkVsZW1lbnQgfSBmcm9tICcuLi9yYWRpby1idXR0b24uanMnO1xuXG5pbXBvcnQgc3R5bGUgZnJvbSAnLi9yYWRpby1idXR0b24tZ3JvdXAuc2Nzcz9saXQmaW5saW5lJztcblxuZXhwb3J0IHR5cGUgU2JiUmFkaW9CdXR0b25Hcm91cEV2ZW50RGV0YWlsID0ge1xuICB2YWx1ZTogYW55IHwgbnVsbDtcbiAgcmFkaW9CdXR0b246IFNiYlJhZGlvQnV0dG9uRWxlbWVudCB8IFNiYlJhZGlvQnV0dG9uUGFuZWxFbGVtZW50O1xufTtcblxuLyoqXG4gKiBJdCBjYW4gYmUgdXNlZCBhcyBhIGNvbnRhaW5lciBmb3Igb25lIG9yIG1vcmUgYHNiYi1yYWRpby1idXR0b25gLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGBzYmItcmFkaW8tYnV0dG9uYCBlbGVtZW50cyB0byB0aGUgYHNiYi1yYWRpby1idXR0b24tZ3JvdXBgLlxuICogQHNsb3QgZXJyb3IgLSBVc2UgdGhpcyB0byBwcm92aWRlIGEgYHNiYi1mb3JtLWVycm9yYCB0byBzaG93IGFuIGVycm9yIG1lc3NhZ2UuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFNiYlJhZGlvQnV0dG9uR3JvdXBFdmVudERldGFpbD59IGRpZENoYW5nZSAtIERlcHJlY2F0ZWQuIE9ubHkgdXNlZCBmb3IgUmVhY3QuIFdpbGwgcHJvYmFibHkgYmUgcmVtb3ZlZCBvbmNlIFJlYWN0IDE5IGlzIGF2YWlsYWJsZS4gRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItcmFkaW8tZ3JvdXBgIHZhbHVlIGNoYW5nZXMuXG4gKiBAZXZlbnQge0N1c3RvbUV2ZW50PFNiYlJhZGlvQnV0dG9uR3JvdXBFdmVudERldGFpbD59IGNoYW5nZSAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXJhZGlvLWdyb3VwYCB2YWx1ZSBjaGFuZ2VzLlxuICogQGV2ZW50IHtDdXN0b21FdmVudDxTYmJSYWRpb0J1dHRvbkdyb3VwRXZlbnREZXRhaWw+fSBpbnB1dCAtIEVtaXRzIHdoZW5ldmVyIHRoZSBgc2JiLXJhZGlvLWdyb3VwYCB2YWx1ZSBjaGFuZ2VzLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLXJhZGlvLWJ1dHRvbi1ncm91cCcpXG5AaG9zdEF0dHJpYnV0ZXMoe1xuICByb2xlOiAncmFkaW9ncm91cCcsXG59KVxuZXhwb3J0IGNsYXNzIFNiYlJhZGlvQnV0dG9uR3JvdXBFbGVtZW50IGV4dGVuZHMgU2JiRGlzYWJsZWRNaXhpbihMaXRFbGVtZW50KSB7XG4gIHB1YmxpYyBzdGF0aWMgb3ZlcnJpZGUgc3R5bGVzOiBDU1NSZXN1bHRHcm91cCA9IHN0eWxlO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IGV2ZW50cyA9IHtcbiAgICBkaWRDaGFuZ2U6ICdkaWRDaGFuZ2UnLFxuICAgIGNoYW5nZTogJ2NoYW5nZScsXG4gICAgaW5wdXQ6ICdpbnB1dCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIHJhZGlvcyBjYW4gYmUgZGVzZWxlY3RlZC5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2FsbG93LWVtcHR5LXNlbGVjdGlvbicsIHR5cGU6IEJvb2xlYW4gfSlcbiAgcHVibGljIGFsbG93RW1wdHlTZWxlY3Rpb246IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogV2hldGhlciB0aGUgcmFkaW8gZ3JvdXAgaXMgcmVxdWlyZWQuXG4gICAqL1xuICBAcHJvcGVydHkoeyB0eXBlOiBCb29sZWFuIH0pIHB1YmxpYyByZXF1aXJlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiBUaGUgdmFsdWUgb2YgdGhlIHJhZGlvIGdyb3VwLlxuICAgKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIHZhbHVlPzogYW55IHwgbnVsbDtcblxuICAvKipcbiAgICogU2l6ZSB2YXJpYW50LCBlaXRoZXIgbSBvciBzLlxuICAgKi9cbiAgQHByb3BlcnR5KCkgcHVibGljIHNpemU6IFNiYlJhZGlvQnV0dG9uU2l6ZSA9ICdtJztcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBiZWhhdmlvdXIgb2YgYG9yaWVudGF0aW9uYCBwcm9wZXJ0eS5cbiAgICovXG4gIEBwcm9wZXJ0eSh7IGF0dHJpYnV0ZTogJ2hvcml6b250YWwtZnJvbScsIHJlZmxlY3Q6IHRydWUgfSlcbiAgcHVibGljIGhvcml6b250YWxGcm9tPzogU2JiSG9yaXpvbnRhbEZyb207XG5cbiAgLyoqXG4gICAqIFJhZGlvIGdyb3VwJ3Mgb3JpZW50YXRpb24sIGVpdGhlciBob3Jpem9udGFsIG9yIHZlcnRpY2FsLlxuICAgKi9cbiAgQHByb3BlcnR5KHsgcmVmbGVjdDogdHJ1ZSB9KVxuICBwdWJsaWMgb3JpZW50YXRpb246IFNiYk9yaWVudGF0aW9uID0gJ2hvcml6b250YWwnO1xuXG4gIC8qKlxuICAgKiBMaXN0IG9mIGNvbnRhaW5lZCByYWRpbyBidXR0b25zLlxuICAgKi9cbiAgcHVibGljIGdldCByYWRpb0J1dHRvbnMoKTogKFNiYlJhZGlvQnV0dG9uRWxlbWVudCB8IFNiYlJhZGlvQnV0dG9uUGFuZWxFbGVtZW50KVtdIHtcbiAgICByZXR1cm4gKFxuICAgICAgQXJyYXkuZnJvbSh0aGlzLnF1ZXJ5U2VsZWN0b3JBbGw/Lignc2JiLXJhZGlvLWJ1dHRvbiwgc2JiLXJhZGlvLWJ1dHRvbi1wYW5lbCcpID8/IFtdKSBhcyAoXG4gICAgICAgIHwgU2JiUmFkaW9CdXR0b25FbGVtZW50XG4gICAgICAgIHwgU2JiUmFkaW9CdXR0b25QYW5lbEVsZW1lbnRcbiAgICAgIClbXVxuICAgICkuZmlsdGVyKChlbCkgPT4gZWwuY2xvc2VzdD8uKCdzYmItcmFkaW8tYnV0dG9uLWdyb3VwJykgPT09IHRoaXMpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXQgX2VuYWJsZWRSYWRpb3MoKTogKFNiYlJhZGlvQnV0dG9uRWxlbWVudCB8IFNiYlJhZGlvQnV0dG9uUGFuZWxFbGVtZW50KVtdIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybiB0aGlzLnJhZGlvQnV0dG9ucy5maWx0ZXIoKHIpID0+ICFyLmRpc2FibGVkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9oYXNTZWxlY3Rpb25FeHBhbnNpb25QYW5lbEVsZW1lbnQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZGlkTG9hZCA9IGZhbHNlO1xuICBwcml2YXRlIF9hYm9ydCA9IG5ldyBTYmJDb25uZWN0ZWRBYm9ydENvbnRyb2xsZXIodGhpcyk7XG5cbiAgcHJpdmF0ZSBfdmFsdWVDaGFuZ2VkKHZhbHVlOiBhbnkgfCB1bmRlZmluZWQpOiB2b2lkIHtcbiAgICBmb3IgKGNvbnN0IHJhZGlvIG9mIHRoaXMucmFkaW9CdXR0b25zKSB7XG4gICAgICByYWRpby5jaGVja2VkID0gcmFkaW8udmFsdWUgPT09IHZhbHVlO1xuICAgICAgcmFkaW8udGFiSW5kZXggPSB0aGlzLl9nZXRSYWRpb1RhYkluZGV4KHJhZGlvKTtcbiAgICB9XG4gICAgdGhpcy5fc2V0Rm9jdXNhYmxlUmFkaW8oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1yYWRpby1ncm91cGAgdmFsdWUgY2hhbmdlcy5cbiAgICogQGRlcHJlY2F0ZWQgb25seSB1c2VkIGZvciBSZWFjdC4gV2lsbCBwcm9iYWJseSBiZSByZW1vdmVkIG9uY2UgUmVhY3QgMTkgaXMgYXZhaWxhYmxlLlxuICAgKi9cbiAgcHJpdmF0ZSBfZGlkQ2hhbmdlOiBFdmVudEVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFNiYlJhZGlvQnV0dG9uR3JvdXBFdmVudERldGFpbD4oXG4gICAgdGhpcyxcbiAgICBTYmJSYWRpb0J1dHRvbkdyb3VwRWxlbWVudC5ldmVudHMuZGlkQ2hhbmdlLFxuICApO1xuXG4gIC8qKlxuICAgKiBFbWl0cyB3aGVuZXZlciB0aGUgYHNiYi1yYWRpby1ncm91cGAgdmFsdWUgY2hhbmdlcy5cbiAgICovXG4gIHByaXZhdGUgX2NoYW5nZTogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxTYmJSYWRpb0J1dHRvbkdyb3VwRXZlbnREZXRhaWw+KFxuICAgIHRoaXMsXG4gICAgU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQuZXZlbnRzLmNoYW5nZSxcbiAgKTtcblxuICAvKipcbiAgICogRW1pdHMgd2hlbmV2ZXIgdGhlIGBzYmItcmFkaW8tZ3JvdXBgIHZhbHVlIGNoYW5nZXMuXG4gICAqL1xuICBwcml2YXRlIF9pbnB1dDogRXZlbnRFbWl0dGVyID0gbmV3IEV2ZW50RW1pdHRlcjxTYmJSYWRpb0J1dHRvbkdyb3VwRXZlbnREZXRhaWw+KFxuICAgIHRoaXMsXG4gICAgU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQuZXZlbnRzLmlucHV0LFxuICApO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIG5ldyBTYmJTbG90U3RhdGVDb250cm9sbGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGNvbm5lY3RlZENhbGxiYWNrKCk6IHZvaWQge1xuICAgIHN1cGVyLmNvbm5lY3RlZENhbGxiYWNrKCk7XG4gICAgY29uc3Qgc2lnbmFsID0gdGhpcy5fYWJvcnQuc2lnbmFsO1xuICAgIHRoaXMuYWRkRXZlbnRMaXN0ZW5lcihcbiAgICAgICdzdGF0ZUNoYW5nZScsXG4gICAgICAoZTogQ3VzdG9tRXZlbnQ8U2JiU3RhdGVDaGFuZ2U+KSA9PlxuICAgICAgICB0aGlzLl9vblJhZGlvQnV0dG9uU2VsZWN0KGUgYXMgQ3VzdG9tRXZlbnQ8U2JiUmFkaW9CdXR0b25TdGF0ZUNoYW5nZT4pLFxuICAgICAge1xuICAgICAgICBzaWduYWwsXG4gICAgICAgIHBhc3NpdmU6IHRydWUsXG4gICAgICB9LFxuICAgICk7XG4gICAgdGhpcy5hZGRFdmVudExpc3RlbmVyKCdrZXlkb3duJywgKGUpID0+IHRoaXMuX2hhbmRsZUtleURvd24oZSksIHsgc2lnbmFsIH0pO1xuICAgIHRoaXMuX2hhc1NlbGVjdGlvbkV4cGFuc2lvblBhbmVsRWxlbWVudCA9ICEhdGhpcy5xdWVyeVNlbGVjdG9yPy4oXG4gICAgICAnc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwnLFxuICAgICk7XG4gICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoXG4gICAgICAnZGF0YS1oYXMtcGFuZWwnLFxuICAgICAgISF0aGlzLnF1ZXJ5U2VsZWN0b3I/Lignc2JiLXNlbGVjdGlvbi1leHBhbnNpb24tcGFuZWwsIHNiYi1yYWRpby1idXR0b24tcGFuZWwnKSxcbiAgICApO1xuICAgIHRoaXMuX3VwZGF0ZVJhZGlvcyh0aGlzLnZhbHVlKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSB3aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLndpbGxVcGRhdGUoY2hhbmdlZFByb3BlcnRpZXMpO1xuXG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygndmFsdWUnKSkge1xuICAgICAgdGhpcy5fdmFsdWVDaGFuZ2VkKHRoaXMudmFsdWUpO1xuICAgIH1cbiAgICBpZiAoY2hhbmdlZFByb3BlcnRpZXMuaGFzKCdkaXNhYmxlZCcpKSB7XG4gICAgICBmb3IgKGNvbnN0IHJhZGlvIG9mIHRoaXMucmFkaW9CdXR0b25zKSB7XG4gICAgICAgIHJhZGlvLnRhYkluZGV4ID0gdGhpcy5fZ2V0UmFkaW9UYWJJbmRleChyYWRpbyk7XG4gICAgICAgIHJhZGlvLnJlcXVlc3RVcGRhdGU/LignZGlzYWJsZWQnKTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX3NldEZvY3VzYWJsZVJhZGlvKCk7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ3JlcXVpcmVkJykpIHtcbiAgICAgIHRoaXMucmFkaW9CdXR0b25zLmZvckVhY2goKHIpID0+IHIucmVxdWVzdFVwZGF0ZT8uKCdyZXF1aXJlZCcpKTtcbiAgICB9XG4gICAgaWYgKGNoYW5nZWRQcm9wZXJ0aWVzLmhhcygnc2l6ZScpKSB7XG4gICAgICB0aGlzLnJhZGlvQnV0dG9ucy5mb3JFYWNoKChyKSA9PiByLnJlcXVlc3RVcGRhdGU/Lignc2l6ZScpKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgZmlyc3RVcGRhdGVkKGNoYW5nZWRQcm9wZXJ0aWVzOiBQcm9wZXJ0eVZhbHVlczx0aGlzPik6IHZvaWQge1xuICAgIHN1cGVyLmZpcnN0VXBkYXRlZChjaGFuZ2VkUHJvcGVydGllcyk7XG5cbiAgICB0aGlzLl9kaWRMb2FkID0gdHJ1ZTtcbiAgICB0aGlzLl91cGRhdGVSYWRpb3ModGhpcy52YWx1ZSk7XG4gIH1cblxuICBwdWJsaWMgb3ZlcnJpZGUgZGlzY29ubmVjdGVkQ2FsbGJhY2soKTogdm9pZCB7XG4gICAgc3VwZXIuZGlzY29ubmVjdGVkQ2FsbGJhY2soKTtcbiAgfVxuXG4gIHByaXZhdGUgX29uUmFkaW9CdXR0b25TZWxlY3QoZXZlbnQ6IEN1c3RvbUV2ZW50PFNiYlJhZGlvQnV0dG9uU3RhdGVDaGFuZ2U+KTogdm9pZCB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgaWYgKGV2ZW50LmRldGFpbC50eXBlICE9PSAnY2hlY2tlZCcgfHwgIXRoaXMuX2RpZExvYWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByYWRpb0J1dHRvbiA9IGV2ZW50LnRhcmdldCBhcyBTYmJSYWRpb0J1dHRvbkVsZW1lbnQ7XG5cbiAgICBpZiAoZXZlbnQuZGV0YWlsLmNoZWNrZWQpIHtcbiAgICAgIHRoaXMudmFsdWUgPSByYWRpb0J1dHRvbi52YWx1ZTtcbiAgICAgIHRoaXMuX2VtaXRDaGFuZ2UocmFkaW9CdXR0b24sIHRoaXMudmFsdWUpO1xuICAgIH0gZWxzZSBpZiAodGhpcy5hbGxvd0VtcHR5U2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5yYWRpb0J1dHRvbnMuZmluZCgocmFkaW8pID0+IHJhZGlvLmNoZWNrZWQpPy52YWx1ZTtcbiAgICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgICB0aGlzLl9lbWl0Q2hhbmdlKHJhZGlvQnV0dG9uKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9lbWl0Q2hhbmdlKHJhZGlvQnV0dG9uOiBTYmJSYWRpb0J1dHRvbkVsZW1lbnQsIHZhbHVlPzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5fY2hhbmdlLmVtaXQoeyB2YWx1ZSwgcmFkaW9CdXR0b24gfSk7XG4gICAgdGhpcy5faW5wdXQuZW1pdCh7IHZhbHVlLCByYWRpb0J1dHRvbiB9KTtcbiAgICB0aGlzLl9kaWRDaGFuZ2UuZW1pdCh7IHZhbHVlLCByYWRpb0J1dHRvbiB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX3VwZGF0ZVJhZGlvcyhpbml0VmFsdWU/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuX2RpZExvYWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCByYWRpb0J1dHRvbnMgPSB0aGlzLnJhZGlvQnV0dG9ucztcblxuICAgIHRoaXMudmFsdWUgPSBpbml0VmFsdWUgPz8gcmFkaW9CdXR0b25zLmZpbmQoKHJhZGlvKSA9PiByYWRpby5jaGVja2VkKT8udmFsdWUgPz8gdGhpcy52YWx1ZTtcblxuICAgIGZvciAoY29uc3QgcmFkaW8gb2YgcmFkaW9CdXR0b25zKSB7XG4gICAgICByYWRpby5jaGVja2VkID0gcmFkaW8udmFsdWUgPT09IHRoaXMudmFsdWU7XG4gICAgICByYWRpby50YWJJbmRleCA9IHRoaXMuX2dldFJhZGlvVGFiSW5kZXgocmFkaW8pO1xuICAgIH1cblxuICAgIHRoaXMuX3NldEZvY3VzYWJsZVJhZGlvKCk7XG4gIH1cblxuICBwcml2YXRlIF9zZXRGb2N1c2FibGVSYWRpbygpOiB2b2lkIHtcbiAgICBjb25zdCBjaGVja2VkID0gdGhpcy5yYWRpb0J1dHRvbnMuZmluZCgocmFkaW8pID0+IHJhZGlvLmNoZWNrZWQgJiYgIXJhZGlvLmRpc2FibGVkKTtcblxuICAgIGNvbnN0IGVuYWJsZWRSYWRpb3MgPSB0aGlzLl9lbmFibGVkUmFkaW9zO1xuICAgIGlmICghY2hlY2tlZCAmJiBlbmFibGVkUmFkaW9zPy5sZW5ndGgpIHtcbiAgICAgIGVuYWJsZWRSYWRpb3NbMF0udGFiSW5kZXggPSAwO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX2dldFJhZGlvVGFiSW5kZXgocmFkaW86IFNiYlJhZGlvQnV0dG9uRWxlbWVudCB8IFNiYlJhZGlvQnV0dG9uUGFuZWxFbGVtZW50KTogbnVtYmVyIHtcbiAgICBjb25zdCBpc1NlbGVjdGVkOiBib29sZWFuID0gcmFkaW8uY2hlY2tlZCAmJiAhcmFkaW8uZGlzYWJsZWQgJiYgIXRoaXMuZGlzYWJsZWQ7XG5cbiAgICByZXR1cm4gaXNTZWxlY3RlZCB8fCB0aGlzLl9oYXNTZWxlY3Rpb25FeHBhbnNpb25QYW5lbEVsZW1lbnQgPyAwIDogLTE7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kbGVLZXlEb3duKGV2dDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IGVuYWJsZWRSYWRpb3MgPSB0aGlzLl9lbmFibGVkUmFkaW9zO1xuXG4gICAgaWYgKFxuICAgICAgIWVuYWJsZWRSYWRpb3MgfHxcbiAgICAgICFlbmFibGVkUmFkaW9zLmxlbmd0aCB8fFxuICAgICAgLy8gZG9uJ3QgdHJhcCBuZXN0ZWQgaGFuZGxpbmdcbiAgICAgICgoZXZ0LnRhcmdldCBhcyBIVE1MRWxlbWVudCkgIT09IHRoaXMgJiZcbiAgICAgICAgKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQgIT09IHRoaXMgJiZcbiAgICAgICAgKGV2dC50YXJnZXQgYXMgSFRNTEVsZW1lbnQpLnBhcmVudEVsZW1lbnQ/LmxvY2FsTmFtZSAhPT0gJ3NiYi1zZWxlY3Rpb24tZXhwYW5zaW9uLXBhbmVsJylcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAoIWlzQXJyb3dLZXlQcmVzc2VkKGV2dCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBjdXJyZW50OiBudW1iZXIgPSBlbmFibGVkUmFkaW9zLmZpbmRJbmRleChcbiAgICAgIChlOiBTYmJSYWRpb0J1dHRvbkVsZW1lbnQgfCBTYmJSYWRpb0J1dHRvblBhbmVsRWxlbWVudCkgPT4gZSA9PT0gZXZ0LnRhcmdldCxcbiAgICApO1xuICAgIGNvbnN0IG5leHRJbmRleDogbnVtYmVyID0gZ2V0TmV4dEVsZW1lbnRJbmRleChldnQsIGN1cnJlbnQsIGVuYWJsZWRSYWRpb3MubGVuZ3RoKTtcblxuICAgIGlmICghdGhpcy5faGFzU2VsZWN0aW9uRXhwYW5zaW9uUGFuZWxFbGVtZW50KSB7XG4gICAgICBlbmFibGVkUmFkaW9zW25leHRJbmRleF0uc2VsZWN0KCk7XG4gICAgfVxuXG4gICAgZW5hYmxlZFJhZGlvc1tuZXh0SW5kZXhdLmZvY3VzKCk7XG4gICAgZXZ0LnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgcmVuZGVyKCk6IFRlbXBsYXRlUmVzdWx0IHtcbiAgICByZXR1cm4gaHRtbGBcbiAgICAgIDxkaXYgY2xhc3M9XCJzYmItcmFkaW8tZ3JvdXBcIj5cbiAgICAgICAgPHNsb3QgQHNsb3RjaGFuZ2U9JHsoKSA9PiB0aGlzLl91cGRhdGVSYWRpb3MoKX0+PC9zbG90PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2JiLXJhZGlvLWdyb3VwX19lcnJvclwiPlxuICAgICAgICA8c2xvdCBuYW1lPVwiZXJyb3JcIj48L3Nsb3Q+XG4gICAgICA8L2Rpdj5cbiAgICBgO1xuICB9XG59XG5cbmRlY2xhcmUgZ2xvYmFsIHtcbiAgaW50ZXJmYWNlIEhUTUxFbGVtZW50VGFnTmFtZU1hcCB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uYW1pbmctY29udmVudGlvblxuICAgICdzYmItcmFkaW8tYnV0dG9uLWdyb3VwJzogU2JiUmFkaW9CdXR0b25Hcm91cEVsZW1lbnQ7XG4gIH1cbn1cbiJdLCJuYW1lcyI6WyJfYSJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFrQ08sSUFBTSw2QkFBTixjQUF5QyxpQkFBaUIsVUFBVSxFQUFFO0FBQUEsRUFnR3BFLGNBQWM7QUFDYjtBQXJGUixTQUFPLHNCQUErQjtBQUtULFNBQU8sV0FBb0I7QUFVNUMsU0FBTyxPQUEyQjtBQVk5QyxTQUFPLGNBQThCO0FBb0JyQyxTQUFRLHFDQUE4QztBQUN0RCxTQUFRLFdBQVc7QUFDWCxTQUFBLFNBQVMsSUFBSSw0QkFBNEIsSUFBSTtBQWNyRCxTQUFRLGFBQTJCLElBQUk7QUFBQSxNQUNyQztBQUFBLE1BQ0EsMkJBQTJCLE9BQU87QUFBQSxJQUFBO0FBTXBDLFNBQVEsVUFBd0IsSUFBSTtBQUFBLE1BQ2xDO0FBQUEsTUFDQSwyQkFBMkIsT0FBTztBQUFBLElBQUE7QUFNcEMsU0FBUSxTQUF1QixJQUFJO0FBQUEsTUFDakM7QUFBQSxNQUNBLDJCQUEyQixPQUFPO0FBQUEsSUFBQTtBQUtsQyxRQUFJLHVCQUF1QixJQUFJO0FBQUEsRUFDakM7QUFBQTtBQUFBO0FBQUE7QUFBQSxFQXZEQSxJQUFXLGVBQXVFOztBQUNoRixXQUNFLE1BQU0sT0FBSyxVQUFLLHFCQUFMLDhCQUF3QixnREFBK0MsQ0FBRSxDQUFBLEVBSXBGLE9BQU8sQ0FBQyxPQUFPOztBQUFBLGVBQUFBLE1BQUEsR0FBRyxZQUFILGdCQUFBQSxJQUFBLFNBQWEsK0JBQThCO0FBQUEsS0FBSTtBQUFBLEVBQ2xFO0FB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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/elements/radio-button/radio-button-panel/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { CSSResultGroup, LitElement, PropertyValues, TemplateResult } from 'lit';
|
|
2
|
+
|
|
3
|
+
declare const SbbRadioButtonPanelElement_base: import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbPanelMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../common.js').SbbRadioButtonCommonElementMixinType> & import('../../core/mixins.js').AbstractConstructor<import('../../core/mixins.js').SbbUpdateSchedulerMixinType> & typeof LitElement;
|
|
4
|
+
/**
|
|
5
|
+
/**
|
|
6
|
+
* It displays a radio button enhanced with the panel design.
|
|
7
|
+
*
|
|
8
|
+
* @slot - Use the unnamed slot to add content to the radio label.
|
|
9
|
+
* @slot subtext - Slot used to render a subtext under the label.
|
|
10
|
+
* @slot suffix - Slot used to render additional content after the label.
|
|
11
|
+
* @slot badge - Use this slot to provide a `sbb-card-badge` (optional).
|
|
12
|
+
*/
|
|
13
|
+
export declare class SbbRadioButtonPanelElement extends SbbRadioButtonPanelElement_base {
|
|
14
|
+
static styles: CSSResultGroup;
|
|
15
|
+
static readonly events: {
|
|
16
|
+
readonly stateChange: "stateChange";
|
|
17
|
+
readonly panelConnected: "panelConnected";
|
|
18
|
+
};
|
|
19
|
+
constructor();
|
|
20
|
+
protected willUpdate(changedProperties: PropertyValues<this>): Promise<void>;
|
|
21
|
+
protected render(): TemplateResult;
|
|
22
|
+
}
|
|
23
|
+
declare global {
|
|
24
|
+
interface HTMLElementTagNameMap {
|
|
25
|
+
'sbb-radio-button-panel': SbbRadioButtonPanelElement;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
export {};
|
|
29
|
+
//# sourceMappingURL=radio-button-panel.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-button-panel.d.ts","sourceRoot":"","sources":["../../../../../src/elements/radio-button/radio-button-panel/radio-button-panel.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,cAAc,EAEnB,UAAU,EAEV,KAAK,cAAc,EACnB,KAAK,cAAc,EACpB,MAAM,KAAK,CAAC;AAOb,OAAO,6BAA6B,CAAC;;AAErC;;;;;;;;GAQG;AACH,qBACa,0BAA2B,SAAQ,+BAE/C;IACC,OAAuB,MAAM,EAAE,cAAc,CAA8C;IAG3F,gBAAuB,MAAM;;;MAGlB;;cAOc,UAAU,CAAC,iBAAiB,EAAE,cAAc,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;cAQxE,MAAM,IAAI,cAAc;CA6B5C;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAE7B,wBAAwB,EAAE,0BAA0B,CAAC;KACtD;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"radio-button-panel.d.ts","sourceRoot":"","sources":["../../../../src/elements/radio-button/radio-button-panel.ts"],"names":[],"mappings":"AAAA,cAAc,4CAA4C,CAAC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { LitElement, html, nothing } from "lit";
|
|
2
|
+
import { customElement } from "lit/decorators.js";
|
|
3
|
+
import { SbbSlotStateController } from "../core/controllers.js";
|
|
4
|
+
import { SbbPanelMixin, SbbUpdateSchedulerMixin, panelCommonStyle } from "../core/mixins.js";
|
|
5
|
+
import { SbbRadioButtonCommonElementMixin, radioButtonCommonStyle } from "./common.js";
|
|
6
|
+
import "../screen-reader-only.js";
|
|
7
|
+
var __defProp = Object.defineProperty;
|
|
8
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
9
|
+
var __decorateClass = (decorators, target, key, kind) => {
|
|
10
|
+
var result = kind > 1 ? void 0 : kind ? __getOwnPropDesc(target, key) : target;
|
|
11
|
+
for (var i = decorators.length - 1, decorator; i >= 0; i--)
|
|
12
|
+
if (decorator = decorators[i])
|
|
13
|
+
result = (kind ? decorator(target, key, result) : decorator(result)) || result;
|
|
14
|
+
if (kind && result) __defProp(target, key, result);
|
|
15
|
+
return result;
|
|
16
|
+
};
|
|
17
|
+
let SbbRadioButtonPanelElement = class extends SbbPanelMixin(
|
|
18
|
+
SbbRadioButtonCommonElementMixin(SbbUpdateSchedulerMixin(LitElement))
|
|
19
|
+
) {
|
|
20
|
+
constructor() {
|
|
21
|
+
super();
|
|
22
|
+
new SbbSlotStateController(this);
|
|
23
|
+
}
|
|
24
|
+
async willUpdate(changedProperties) {
|
|
25
|
+
super.willUpdate(changedProperties);
|
|
26
|
+
if (changedProperties.has("checked")) {
|
|
27
|
+
this.toggleAttribute("data-checked", this.checked);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
render() {
|
|
31
|
+
return html`
|
|
32
|
+
<label class="sbb-selection-panel">
|
|
33
|
+
<div class="sbb-selection-panel__badge">
|
|
34
|
+
<slot name="badge"></slot>
|
|
35
|
+
</div>
|
|
36
|
+
<span class="sbb-radio-button">
|
|
37
|
+
<input
|
|
38
|
+
type="radio"
|
|
39
|
+
aria-hidden="true"
|
|
40
|
+
tabindex="-1"
|
|
41
|
+
?disabled=${this.disabled}
|
|
42
|
+
?required=${this.required}
|
|
43
|
+
?checked=${this.checked}
|
|
44
|
+
value=${this.value || nothing}
|
|
45
|
+
class="sbb-screen-reader-only"
|
|
46
|
+
/>
|
|
47
|
+
<span class="sbb-radio-button__label-slot">
|
|
48
|
+
<slot></slot>
|
|
49
|
+
<slot name="suffix"></slot>
|
|
50
|
+
</span>
|
|
51
|
+
<slot name="subtext"></slot>
|
|
52
|
+
${this.expansionState ? html`<sbb-screen-reader-only>${this.expansionState}</sbb-screen-reader-only>` : nothing}
|
|
53
|
+
</span>
|
|
54
|
+
</label>
|
|
55
|
+
`;
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
SbbRadioButtonPanelElement.styles = [radioButtonCommonStyle, panelCommonStyle];
|
|
59
|
+
SbbRadioButtonPanelElement.events = {
|
|
60
|
+
stateChange: "stateChange",
|
|
61
|
+
panelConnected: "panelConnected"
|
|
62
|
+
};
|
|
63
|
+
SbbRadioButtonPanelElement = __decorateClass([
|
|
64
|
+
customElement("sbb-radio-button-panel")
|
|
65
|
+
], SbbRadioButtonPanelElement);
|
|
66
|
+
export {
|
|
67
|
+
SbbRadioButtonPanelElement
|
|
68
|
+
};
|
|
69
|
+
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8tYnV0dG9uLXBhbmVsLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvZWxlbWVudHMvcmFkaW8tYnV0dG9uL3JhZGlvLWJ1dHRvbi1wYW5lbC9yYWRpby1idXR0b24tcGFuZWwudHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgdHlwZSBDU1NSZXN1bHRHcm91cCxcbiAgaHRtbCxcbiAgTGl0RWxlbWVudCxcbiAgbm90aGluZyxcbiAgdHlwZSBQcm9wZXJ0eVZhbHVlcyxcbiAgdHlwZSBUZW1wbGF0ZVJlc3VsdCxcbn0gZnJvbSAnbGl0JztcbmltcG9ydCB7IGN1c3RvbUVsZW1lbnQgfSBmcm9tICdsaXQvZGVjb3JhdG9ycy5qcyc7XG5cbmltcG9ydCB7IFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIgfSBmcm9tICcuLi8uLi9jb3JlL2NvbnRyb2xsZXJzLmpzJztcbmltcG9ydCB7IHBhbmVsQ29tbW9uU3R5bGUsIFNiYlBhbmVsTWl4aW4sIFNiYlVwZGF0ZVNjaGVkdWxlck1peGluIH0gZnJvbSAnLi4vLi4vY29yZS9taXhpbnMuanMnO1xuaW1wb3J0IHsgcmFkaW9CdXR0b25Db21tb25TdHlsZSwgU2JiUmFkaW9CdXR0b25Db21tb25FbGVtZW50TWl4aW4gfSBmcm9tICcuLi9jb21tb24uanMnO1xuXG5pbXBvcnQgJy4uLy4uL3NjcmVlbi1yZWFkZXItb25seS5qcyc7XG5cbi8qKlxuIC8qKlxuICogSXQgZGlzcGxheXMgYSByYWRpbyBidXR0b24gZW5oYW5jZWQgd2l0aCB0aGUgcGFuZWwgZGVzaWduLlxuICpcbiAqIEBzbG90IC0gVXNlIHRoZSB1bm5hbWVkIHNsb3QgdG8gYWRkIGNvbnRlbnQgdG8gdGhlIHJhZGlvIGxhYmVsLlxuICogQHNsb3Qgc3VidGV4dCAtIFNsb3QgdXNlZCB0byByZW5kZXIgYSBzdWJ0ZXh0IHVuZGVyIHRoZSBsYWJlbC5cbiAqIEBzbG90IHN1ZmZpeCAtIFNsb3QgdXNlZCB0byByZW5kZXIgYWRkaXRpb25hbCBjb250ZW50IGFmdGVyIHRoZSBsYWJlbC5cbiAqIEBzbG90IGJhZGdlIC0gVXNlIHRoaXMgc2xvdCB0byBwcm92aWRlIGEgYHNiYi1jYXJkLWJhZGdlYCAob3B0aW9uYWwpLlxuICovXG5AY3VzdG9tRWxlbWVudCgnc2JiLXJhZGlvLWJ1dHRvbi1wYW5lbCcpXG5leHBvcnQgY2xhc3MgU2JiUmFkaW9CdXR0b25QYW5lbEVsZW1lbnQgZXh0ZW5kcyBTYmJQYW5lbE1peGluKFxuICBTYmJSYWRpb0J1dHRvbkNvbW1vbkVsZW1lbnRNaXhpbihTYmJVcGRhdGVTY2hlZHVsZXJNaXhpbihMaXRFbGVtZW50KSksXG4pIHtcbiAgcHVibGljIHN0YXRpYyBvdmVycmlkZSBzdHlsZXM6IENTU1Jlc3VsdEdyb3VwID0gW3JhZGlvQnV0dG9uQ29tbW9uU3R5bGUsIHBhbmVsQ29tbW9uU3R5bGVdO1xuXG4gIC8vIEZJWE1FIHVzaW5nIC4uLnN1cGVyLmV2ZW50cyByZXF1aXJlczogaHR0cHM6Ly9naXRodWIuY29tL3NiYi1kZXNpZ24tc3lzdGVtcy9seW5lLWNvbXBvbmVudHMvaXNzdWVzLzI2MDBcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBldmVudHMgPSB7XG4gICAgc3RhdGVDaGFuZ2U6ICdzdGF0ZUNoYW5nZScsXG4gICAgcGFuZWxDb25uZWN0ZWQ6ICdwYW5lbENvbm5lY3RlZCcsXG4gIH0gYXMgY29uc3Q7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKCkge1xuICAgIHN1cGVyKCk7XG4gICAgbmV3IFNiYlNsb3RTdGF0ZUNvbnRyb2xsZXIodGhpcyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgb3ZlcnJpZGUgYXN5bmMgd2lsbFVwZGF0ZShjaGFuZ2VkUHJvcGVydGllczogUHJvcGVydHlWYWx1ZXM8dGhpcz4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBzdXBlci53aWxsVXBkYXRlKGNoYW5nZWRQcm9wZXJ0aWVzKTtcblxuICAgIGlmIChjaGFuZ2VkUHJvcGVydGllcy5oYXMoJ2NoZWNrZWQnKSkge1xuICAgICAgdGhpcy50b2dnbGVBdHRyaWJ1dGUoJ2RhdGEtY2hlY2tlZCcsIHRoaXMuY2hlY2tlZCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIHJlbmRlcigpOiBUZW1wbGF0ZVJlc3VsdCB7XG4gICAgcmV0dXJuIGh0bWxgXG4gICAgICA8bGFiZWwgY2xhc3M9XCJzYmItc2VsZWN0aW9uLXBhbmVsXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzYmItc2VsZWN0aW9uLXBhbmVsX19iYWRnZVwiPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJiYWRnZVwiPjwvc2xvdD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwic2JiLXJhZGlvLWJ1dHRvblwiPlxuICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgdHlwZT1cInJhZGlvXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgID9kaXNhYmxlZD0ke3RoaXMuZGlzYWJsZWR9XG4gICAgICAgICAgICA/cmVxdWlyZWQ9JHt0aGlzLnJlcXVpcmVkfVxuICAgICAgICAgICAgP2NoZWNrZWQ9JHt0aGlzLmNoZWNrZWR9XG4gICAgICAgICAgICB2YWx1ZT0ke3RoaXMudmFsdWUgfHwgbm90aGluZ31cbiAgICAgICAgICAgIGNsYXNzPVwic2JiLXNjcmVlbi1yZWFkZXItb25seVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInNiYi1yYWRpby1idXR0b25fX2xhYmVsLXNsb3RcIj5cbiAgICAgICAgICAgIDxzbG90Pjwvc2xvdD5cbiAgICAgICAgICAgIDxzbG90IG5hbWU9XCJzdWZmaXhcIj48L3Nsb3Q+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgIDxzbG90IG5hbWU9XCJzdWJ0ZXh0XCI+PC9zbG90PlxuICAgICAgICAgICR7dGhpcy5leHBhbnNpb25TdGF0ZVxuICAgICAgICAgICAgPyBodG1sYDxzYmItc2NyZWVuLXJlYWRlci1vbmx5PiR7dGhpcy5leHBhbnNpb25TdGF0ZX08L3NiYi1zY3JlZW4tcmVhZGVyLW9ubHk+YFxuICAgICAgICAgICAgOiBub3RoaW5nfVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L2xhYmVsPlxuICAgIGA7XG4gIH1cbn1cblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgSFRNTEVsZW1lbnRUYWdOYW1lTWFwIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gICAgJ3NiYi1yYWRpby1idXR0b24tcGFuZWwnOiBTYmJSYWRpb0J1dHRvblBhbmVsRWxlbWVudDtcbiAgfVxufVxuIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7QUEwQk8sSUFBTSw2QkFBTixjQUF5QztBQUFBLEVBQzlDLGlDQUFpQyx3QkFBd0IsVUFBVSxDQUFDO0FBQ3RFLEVBQUU7QUFBQSxFQVNPLGNBQWM7QUFDYjtBQUNOLFFBQUksdUJBQXVCLElBQUk7QUFBQSxFQUNqQztBQUFBLEVBRUEsTUFBeUIsV0FBVyxtQkFBd0Q7QUFDMUYsVUFBTSxXQUFXLGlCQUFpQjtBQUU5QixRQUFBLGtCQUFrQixJQUFJLFNBQVMsR0FBRztBQUMvQixXQUFBLGdCQUFnQixnQkFBZ0IsS0FBSyxPQUFPO0FBQUEsSUFDbkQ7QUFBQSxFQUNGO0FBQUEsRUFFbUIsU0FBeUI7QUFDbkMsV0FBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBLHdCQVVhLEtBQUssUUFBUTtBQUFBLHdCQUNiLEtBQUssUUFBUTtBQUFBLHVCQUNkLEtBQUssT0FBTztBQUFBLG9CQUNmLEtBQUssU0FBUyxPQUFPO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQTtBQUFBO0FBQUE7QUFBQSxZQVE3QixLQUFLLGlCQUNILCtCQUErQixLQUFLLGNBQWMsOEJBQ2xELE9BQU87QUFBQTtBQUFBO0FBQUE7QUFBQSxFQUluQjtBQUNGO0FBckRhLDJCQUdZLFNBQXlCLENBQUMsd0JBQXdCLGdCQUFnQjtBQUg5RSwyQkFNWSxTQUFTO0FBQUEsRUFDOUIsYUFBYTtBQUFBLEVBQ2IsZ0JBQWdCO0FBQ2xCO0FBVFcsNkJBQU4sZ0JBQUE7QUFBQSxFQUROLGNBQWMsd0JBQXdCO0FBQUEsR0FDMUIsMEJBQUE7In0=
|