@koobiq/components 18.13.0 → 18.14.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/accordion/accordion.component.d.ts +5 -5
- package/button/button.component.d.ts +3 -2
- package/button-toggle/button-toggle.component.d.ts +3 -2
- package/core/locales/formatters.d.ts +36 -0
- package/core/locales/index.d.ts +1 -0
- package/core/locales/locale-service.d.ts +79 -0
- package/core/locales/tk-TM.d.ts +45 -0
- package/core/pop-up/constants.d.ts +6 -0
- package/core/pop-up/pop-up-trigger.d.ts +6 -0
- package/esm2022/accordion/accordion.component.mjs +11 -10
- package/esm2022/button/button.component.mjs +3 -1
- package/esm2022/button-toggle/button-toggle.component.mjs +4 -2
- package/esm2022/core/locales/formatters.mjs +37 -1
- package/esm2022/core/locales/index.mjs +2 -1
- package/esm2022/core/locales/locale-service.mjs +7 -4
- package/esm2022/core/locales/tk-TM.mjs +44 -0
- package/esm2022/core/option/action.mjs +3 -4
- package/esm2022/core/pop-up/constants.mjs +8 -1
- package/esm2022/core/pop-up/pop-up-trigger.mjs +50 -3
- package/esm2022/core/version.mjs +2 -2
- package/esm2022/form-field/form-field.mjs +3 -3
- package/esm2022/icon/icon-button.component.mjs +3 -1
- package/esm2022/link/link.component.mjs +4 -2
- package/esm2022/navbar/navbar-item.component.mjs +4 -2
- package/esm2022/navbar/navbar.component.mjs +6 -4
- package/esm2022/overflow-items/index.mjs +3 -0
- package/esm2022/overflow-items/koobiq-components-overflow-items.mjs +5 -0
- package/esm2022/overflow-items/module.mjs +25 -0
- package/esm2022/overflow-items/overflow-items.mjs +269 -0
- package/esm2022/popover/popover.component.mjs +4 -2
- package/esm2022/select/select-option.directive.mjs +17 -19
- package/esm2022/tabs/tab-nav-bar.mjs +16 -16
- package/esm2022/timezone/timezone-option.directive.mjs +15 -12
- package/esm2022/title/title.directive.mjs +9 -18
- package/esm2022/toggle/toggle.component.mjs +12 -10
- package/esm2022/tooltip/tooltip.component.mjs +30 -27
- package/fesm2022/koobiq-components-accordion.mjs +9 -7
- package/fesm2022/koobiq-components-accordion.mjs.map +1 -1
- package/fesm2022/koobiq-components-button-toggle.mjs +3 -1
- package/fesm2022/koobiq-components-button-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-button.mjs +2 -0
- package/fesm2022/koobiq-components-button.mjs.map +1 -1
- package/fesm2022/koobiq-components-core.mjs +143 -8
- package/fesm2022/koobiq-components-core.mjs.map +1 -1
- package/fesm2022/koobiq-components-form-field.mjs +2 -2
- package/fesm2022/koobiq-components-form-field.mjs.map +1 -1
- package/fesm2022/koobiq-components-icon.mjs +2 -0
- package/fesm2022/koobiq-components-icon.mjs.map +1 -1
- package/fesm2022/koobiq-components-link.mjs +3 -1
- package/fesm2022/koobiq-components-link.mjs.map +1 -1
- package/fesm2022/koobiq-components-navbar.mjs +8 -4
- package/fesm2022/koobiq-components-navbar.mjs.map +1 -1
- package/fesm2022/koobiq-components-overflow-items.mjs +298 -0
- package/fesm2022/koobiq-components-overflow-items.mjs.map +1 -0
- package/fesm2022/koobiq-components-popover.mjs +3 -1
- package/fesm2022/koobiq-components-popover.mjs.map +1 -1
- package/fesm2022/koobiq-components-select.mjs +16 -18
- package/fesm2022/koobiq-components-select.mjs.map +1 -1
- package/fesm2022/koobiq-components-tabs.mjs +15 -15
- package/fesm2022/koobiq-components-tabs.mjs.map +1 -1
- package/fesm2022/koobiq-components-timezone.mjs +14 -11
- package/fesm2022/koobiq-components-timezone.mjs.map +1 -1
- package/fesm2022/koobiq-components-title.mjs +8 -17
- package/fesm2022/koobiq-components-title.mjs.map +1 -1
- package/fesm2022/koobiq-components-toggle.mjs +11 -9
- package/fesm2022/koobiq-components-toggle.mjs.map +1 -1
- package/fesm2022/koobiq-components-tooltip.mjs +30 -27
- package/fesm2022/koobiq-components-tooltip.mjs.map +1 -1
- package/icon/icon-button.component.d.ts +3 -2
- package/link/link.component.d.ts +3 -2
- package/navbar/navbar-item.component.d.ts +2 -1
- package/navbar/navbar.component.d.ts +2 -1
- package/overflow-items/index.d.ts +2 -0
- package/overflow-items/module.d.ts +7 -0
- package/overflow-items/overflow-items.d.ts +132 -0
- package/overflow-items/overflow-items.scss +20 -0
- package/package.json +10 -4
- package/popover/popover.component.d.ts +1 -0
- package/schematics/ng-add/index.js +4 -4
- package/select/select-option.directive.d.ts +3 -1
- package/tabs/tab-nav-bar.d.ts +0 -1
- package/timezone/timezone-option.directive.d.ts +1 -0
- package/title/title.directive.d.ts +2 -2
- package/toggle/toggle.component.d.ts +6 -5
- package/tooltip/tooltip.component.d.ts +3 -3
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import { ContentObserver } from '@angular/cdk/observers';
|
|
2
|
+
import { SharedResizeObserver } from '@angular/cdk/observers/private';
|
|
3
|
+
import { NgTemplateOutlet } from '@angular/common';
|
|
4
|
+
import { booleanAttribute, ChangeDetectionStrategy, Component, computed, contentChild, contentChildren, Directive, ElementRef, inject, input, signal, TemplateRef, viewChild, viewChildren } from '@angular/core';
|
|
5
|
+
import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
|
|
6
|
+
import { debounceTime, merge, skip } from 'rxjs';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
/**
|
|
9
|
+
* Directive for providing `KbqOverflowItemsResultContext` to the `KbqOverflowItems` component.
|
|
10
|
+
*
|
|
11
|
+
* @see `KbqOverflowItemsResultContext`
|
|
12
|
+
*/
|
|
13
|
+
export class KbqOverflowItemsResult {
|
|
14
|
+
constructor() {
|
|
15
|
+
/**
|
|
16
|
+
* TemplateRef for the overflow result.
|
|
17
|
+
*
|
|
18
|
+
* @docs-private
|
|
19
|
+
*/
|
|
20
|
+
this.templateRef = inject(TemplateRef);
|
|
21
|
+
}
|
|
22
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqOverflowItemsResult, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
23
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.6", type: KbqOverflowItemsResult, isStandalone: true, selector: "ng-template[kbqOverflowItemsResult]", ngImport: i0 }); }
|
|
24
|
+
}
|
|
25
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqOverflowItemsResult, decorators: [{
|
|
26
|
+
type: Directive,
|
|
27
|
+
args: [{
|
|
28
|
+
standalone: true,
|
|
29
|
+
selector: 'ng-template[kbqOverflowItemsResult]'
|
|
30
|
+
}]
|
|
31
|
+
}] });
|
|
32
|
+
/**
|
|
33
|
+
* Structure directive for providing items to the `KbqOverflowItems`.
|
|
34
|
+
*/
|
|
35
|
+
export class KbqOverflowItem {
|
|
36
|
+
constructor() {
|
|
37
|
+
/**
|
|
38
|
+
* Identifier for the item.
|
|
39
|
+
*/
|
|
40
|
+
this.id = input.required({ alias: 'kbqOverflowItem' });
|
|
41
|
+
/**
|
|
42
|
+
* Whether the item is hidden.
|
|
43
|
+
*
|
|
44
|
+
* @docs-private
|
|
45
|
+
*/
|
|
46
|
+
this.hidden = signal(false);
|
|
47
|
+
/**
|
|
48
|
+
* TemplateRef for the item.
|
|
49
|
+
*
|
|
50
|
+
* @docs-private
|
|
51
|
+
*/
|
|
52
|
+
this.templateRef = inject(TemplateRef);
|
|
53
|
+
}
|
|
54
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqOverflowItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
55
|
+
/** @nocollapse */ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.6", type: KbqOverflowItem, isStandalone: true, selector: "[kbqOverflowItem]", inputs: { id: { classPropertyName: "id", publicName: "kbqOverflowItem", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
|
|
56
|
+
}
|
|
57
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqOverflowItem, decorators: [{
|
|
58
|
+
type: Directive,
|
|
59
|
+
args: [{
|
|
60
|
+
standalone: true,
|
|
61
|
+
selector: '[kbqOverflowItem]'
|
|
62
|
+
}]
|
|
63
|
+
}] });
|
|
64
|
+
/**
|
|
65
|
+
* Component for automatically hiding elements with dynamic adaptation to the container width.
|
|
66
|
+
*/
|
|
67
|
+
export class KbqOverflowItems {
|
|
68
|
+
constructor() {
|
|
69
|
+
this.itemElementRefs = viewChildren('itemRef', { read: ElementRef });
|
|
70
|
+
/**
|
|
71
|
+
* `KbqOverflowItem` directive references.
|
|
72
|
+
*
|
|
73
|
+
* @docs-private
|
|
74
|
+
*/
|
|
75
|
+
this.items = contentChildren(KbqOverflowItem);
|
|
76
|
+
/**
|
|
77
|
+
* `KbqOverflowItemsResult` directive reference.
|
|
78
|
+
*
|
|
79
|
+
* @docs-private
|
|
80
|
+
*/
|
|
81
|
+
this.result = contentChild(KbqOverflowItemsResult);
|
|
82
|
+
this.resultElementRef = viewChild('resultRef', { read: ElementRef });
|
|
83
|
+
/**
|
|
84
|
+
* Template context for the `KbqOverflowItemsResult` directive.
|
|
85
|
+
*
|
|
86
|
+
* @docs-private
|
|
87
|
+
*/
|
|
88
|
+
this.resultTemplateContext = computed(() => {
|
|
89
|
+
const hiddenItemIDs = new Set(this.items()
|
|
90
|
+
.filter(({ hidden }) => hidden())
|
|
91
|
+
.map(({ id }) => id()));
|
|
92
|
+
return {
|
|
93
|
+
$implicit: hiddenItemIDs,
|
|
94
|
+
hiddenItemIDs: hiddenItemIDs
|
|
95
|
+
};
|
|
96
|
+
});
|
|
97
|
+
/**
|
|
98
|
+
* Whether the overflow result is hidden.
|
|
99
|
+
*
|
|
100
|
+
* @docs-private
|
|
101
|
+
*/
|
|
102
|
+
this.resultHidden = computed(() => !this.items().some(({ hidden }) => hidden()));
|
|
103
|
+
/**
|
|
104
|
+
* Whether the overflow order should be reversed.
|
|
105
|
+
* Also changes the position of the `resultTemplateRef`.
|
|
106
|
+
*
|
|
107
|
+
* @default false
|
|
108
|
+
*/
|
|
109
|
+
this.reverseOverflowOrder = input(false, { transform: booleanAttribute });
|
|
110
|
+
this.elementRef = inject(ElementRef);
|
|
111
|
+
this.resizeObserver = inject(SharedResizeObserver);
|
|
112
|
+
this.contentObserver = inject(ContentObserver);
|
|
113
|
+
toObservable(this.reverseOverflowOrder)
|
|
114
|
+
.pipe(skip(1), takeUntilDestroyed())
|
|
115
|
+
.subscribe(() => {
|
|
116
|
+
this.items().forEach(({ hidden }) => hidden.set(false));
|
|
117
|
+
});
|
|
118
|
+
merge(toObservable(this.items), this.resizeObserver.observe(this.elementRef.nativeElement), this.contentObserver.observe(this.elementRef.nativeElement).pipe(debounceTime(0)))
|
|
119
|
+
.pipe(takeUntilDestroyed())
|
|
120
|
+
.subscribe(() => {
|
|
121
|
+
this.updateItemsVisibility();
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Updates the visibility of items based on the container width.
|
|
126
|
+
*
|
|
127
|
+
* This method calculates whether items should be hidden or shown by comparing the scroll width of the container
|
|
128
|
+
* with its visible width. It determines which items are visible and which are hidden, and applies the hiding logic
|
|
129
|
+
* based on the `reverseOverflowOrder` flag.
|
|
130
|
+
*
|
|
131
|
+
* The function operates recursively to adjust the visibility of items until the overflow condition is resolved.
|
|
132
|
+
*
|
|
133
|
+
* - If the container is overflown, it hides the last visible item from the end (or start if `reverseOverflowOrder`)
|
|
134
|
+
* and checks if further adjustments are needed.
|
|
135
|
+
* - If the container is not overflown, it reveals the first hidden item from the start
|
|
136
|
+
* (or end if `reverseOverflowOrder`), ensuring it fits within the visible area.
|
|
137
|
+
*/
|
|
138
|
+
updateItemsVisibility() {
|
|
139
|
+
const itemElementRefs = this.itemElementRefs();
|
|
140
|
+
const items = this.items().map(({ hidden }, index, _items) => {
|
|
141
|
+
return {
|
|
142
|
+
hidden,
|
|
143
|
+
isFirst: index === 0,
|
|
144
|
+
isLast: index === _items.length - 1,
|
|
145
|
+
elementRef: itemElementRefs[index]
|
|
146
|
+
};
|
|
147
|
+
});
|
|
148
|
+
const reverseOverflowOrder = this.reverseOverflowOrder();
|
|
149
|
+
const isEdgeItem = ({ isFirst, isLast }) => (reverseOverflowOrder ? isFirst : isLast);
|
|
150
|
+
const { offsetWidth: totalWidth, scrollWidth } = this.elementRef.nativeElement;
|
|
151
|
+
const isOverflown = scrollWidth > totalWidth;
|
|
152
|
+
if (isOverflown) {
|
|
153
|
+
const isVisibleItem = ({ hidden }) => !hidden();
|
|
154
|
+
const lastVisibleItem = !reverseOverflowOrder
|
|
155
|
+
? this.findLast(items, isVisibleItem)
|
|
156
|
+
: items.find(isVisibleItem);
|
|
157
|
+
if (lastVisibleItem) {
|
|
158
|
+
lastVisibleItem.hidden.set(true);
|
|
159
|
+
if (!isEdgeItem(lastVisibleItem)) {
|
|
160
|
+
this.updateItemsVisibility();
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
const isHiddenItem = ({ hidden }) => hidden();
|
|
166
|
+
const firstHiddenItem = !reverseOverflowOrder
|
|
167
|
+
? items.find(isHiddenItem)
|
|
168
|
+
: this.findLast(items, isHiddenItem);
|
|
169
|
+
if (firstHiddenItem) {
|
|
170
|
+
const firstHiddenItemWidth = firstHiddenItem.elementRef.nativeElement.offsetWidth;
|
|
171
|
+
const visibleItemsTotalWidth = items
|
|
172
|
+
.filter(({ hidden }) => !hidden())
|
|
173
|
+
.reduce((width, { elementRef }) => width + elementRef.nativeElement.offsetWidth, 0);
|
|
174
|
+
const _isEdgeItem = isEdgeItem(firstHiddenItem);
|
|
175
|
+
const resultWidth = _isEdgeItem ? 0 : this.resultElementRef()?.nativeElement.offsetWidth || 0;
|
|
176
|
+
if (firstHiddenItemWidth + visibleItemsTotalWidth + resultWidth <= totalWidth) {
|
|
177
|
+
firstHiddenItem.hidden.set(false);
|
|
178
|
+
if (!_isEdgeItem) {
|
|
179
|
+
this.updateItemsVisibility();
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
/** @TODO Should use `Array.prototype.findLast` after migrating to ES2023 */
|
|
186
|
+
findLast(array, predicate) {
|
|
187
|
+
for (let i = array.length - 1; i >= 0; i--) {
|
|
188
|
+
if (predicate(array[i], i, array)) {
|
|
189
|
+
return array[i];
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
return undefined;
|
|
193
|
+
}
|
|
194
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqOverflowItems, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
195
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.6", type: KbqOverflowItems, isStandalone: true, selector: "kbq-overflow-items", inputs: { reverseOverflowOrder: { classPropertyName: "reverseOverflowOrder", publicName: "reverseOverflowOrder", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "kbq-overflow-items" }, queries: [{ propertyName: "items", predicate: KbqOverflowItem, isSignal: true }, { propertyName: "result", first: true, predicate: KbqOverflowItemsResult, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "itemElementRefs", predicate: ["itemRef"], descendants: true, read: ElementRef, isSignal: true }, { propertyName: "resultElementRef", first: true, predicate: ["resultRef"], descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: `
|
|
196
|
+
@if (reverseOverflowOrder()) {
|
|
197
|
+
<ng-container [ngTemplateOutlet]="template" />
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
@for (item of items(); track item.id()) {
|
|
201
|
+
<div
|
|
202
|
+
class="kbq-overflow-items__item"
|
|
203
|
+
#itemRef
|
|
204
|
+
[attr.aria-hidden]="item.hidden()"
|
|
205
|
+
[class.kbq-overflow-items__item_hidden]="item.hidden()"
|
|
206
|
+
>
|
|
207
|
+
<ng-container [ngTemplateOutlet]="item.templateRef" />
|
|
208
|
+
</div>
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
@if (!reverseOverflowOrder()) {
|
|
212
|
+
<ng-container [ngTemplateOutlet]="template" />
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
<ng-template #template>
|
|
216
|
+
<div
|
|
217
|
+
class="kbq-overflow-items__result"
|
|
218
|
+
#resultRef
|
|
219
|
+
[attr.aria-hidden]="resultHidden()"
|
|
220
|
+
[class.kbq-overflow-items__result_hidden]="resultHidden()"
|
|
221
|
+
>
|
|
222
|
+
<ng-container
|
|
223
|
+
[ngTemplateOutlet]="result()?.templateRef || null"
|
|
224
|
+
[ngTemplateOutletContext]="resultTemplateContext()"
|
|
225
|
+
/>
|
|
226
|
+
</div>
|
|
227
|
+
</ng-template>
|
|
228
|
+
`, isInline: true, styles: [":host{position:relative;display:flex;flex-grow:1;overflow:hidden;flex-wrap:nowrap;white-space:nowrap}.kbq-overflow-items__item,.kbq-overflow-items__result{display:flex;align-items:center}.kbq-overflow-items__item.kbq-overflow-items__item_hidden,.kbq-overflow-items__item.kbq-overflow-items__result_hidden,.kbq-overflow-items__result.kbq-overflow-items__item_hidden,.kbq-overflow-items__result.kbq-overflow-items__result_hidden{visibility:hidden;position:absolute}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
229
|
+
}
|
|
230
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImport: i0, type: KbqOverflowItems, decorators: [{
|
|
231
|
+
type: Component,
|
|
232
|
+
args: [{ standalone: true, selector: 'kbq-overflow-items', imports: [NgTemplateOutlet], template: `
|
|
233
|
+
@if (reverseOverflowOrder()) {
|
|
234
|
+
<ng-container [ngTemplateOutlet]="template" />
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
@for (item of items(); track item.id()) {
|
|
238
|
+
<div
|
|
239
|
+
class="kbq-overflow-items__item"
|
|
240
|
+
#itemRef
|
|
241
|
+
[attr.aria-hidden]="item.hidden()"
|
|
242
|
+
[class.kbq-overflow-items__item_hidden]="item.hidden()"
|
|
243
|
+
>
|
|
244
|
+
<ng-container [ngTemplateOutlet]="item.templateRef" />
|
|
245
|
+
</div>
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
@if (!reverseOverflowOrder()) {
|
|
249
|
+
<ng-container [ngTemplateOutlet]="template" />
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
<ng-template #template>
|
|
253
|
+
<div
|
|
254
|
+
class="kbq-overflow-items__result"
|
|
255
|
+
#resultRef
|
|
256
|
+
[attr.aria-hidden]="resultHidden()"
|
|
257
|
+
[class.kbq-overflow-items__result_hidden]="resultHidden()"
|
|
258
|
+
>
|
|
259
|
+
<ng-container
|
|
260
|
+
[ngTemplateOutlet]="result()?.templateRef || null"
|
|
261
|
+
[ngTemplateOutletContext]="resultTemplateContext()"
|
|
262
|
+
/>
|
|
263
|
+
</div>
|
|
264
|
+
</ng-template>
|
|
265
|
+
`, host: {
|
|
266
|
+
class: 'kbq-overflow-items'
|
|
267
|
+
}, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{position:relative;display:flex;flex-grow:1;overflow:hidden;flex-wrap:nowrap;white-space:nowrap}.kbq-overflow-items__item,.kbq-overflow-items__result{display:flex;align-items:center}.kbq-overflow-items__item.kbq-overflow-items__item_hidden,.kbq-overflow-items__item.kbq-overflow-items__result_hidden,.kbq-overflow-items__result.kbq-overflow-items__item_hidden,.kbq-overflow-items__result.kbq-overflow-items__result_hidden{visibility:hidden;position:absolute}\n"] }]
|
|
268
|
+
}], ctorParameters: () => [] });
|
|
269
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmZsb3ctaXRlbXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL292ZXJmbG93LWl0ZW1zL292ZXJmbG93LWl0ZW1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNuRCxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsUUFBUSxFQUNSLFlBQVksRUFDWixlQUFlLEVBQ2YsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxFQUNULFlBQVksRUFDZixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUUsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQWtDakQ7Ozs7R0FJRztBQUtILE1BQU0sT0FBTyxzQkFBc0I7SUFKbkM7UUFLSTs7OztXQUlHO1FBQ00sZ0JBQVcsR0FBRyxNQUFNLENBQTZDLFdBQVcsQ0FBQyxDQUFDO0tBQzFGO2lJQVBZLHNCQUFzQjtxSEFBdEIsc0JBQXNCOzsyRkFBdEIsc0JBQXNCO2tCQUpsQyxTQUFTO21CQUFDO29CQUNQLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUscUNBQXFDO2lCQUNsRDs7QUFVRDs7R0FFRztBQUtILE1BQU0sT0FBTyxlQUFlO0lBSjVCO1FBS0k7O1dBRUc7UUFDTSxPQUFFLEdBQUcsS0FBSyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxp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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb250ZW50T2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb2JzZXJ2ZXJzJztcbmltcG9ydCB7IFNoYXJlZFJlc2l6ZU9ic2VydmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL29ic2VydmVycy9wcml2YXRlJztcbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBjb21wdXRlZCxcbiAgICBjb250ZW50Q2hpbGQsXG4gICAgY29udGVudENoaWxkcmVuLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIGluamVjdCxcbiAgICBpbnB1dCxcbiAgICBzaWduYWwsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgdmlld0NoaWxkLFxuICAgIHZpZXdDaGlsZHJlblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCwgdG9PYnNlcnZhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtZXJnZSwgc2tpcCB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFRlbXBsYXRlIGNvbnRleHQgZm9yIHRoZSBgS2JxT3ZlcmZsb3dJdGVtc1Jlc3VsdGAgZGlyZWN0aXZlLlxuICpcbiAqIEBzZWUgYEticU92ZXJmbG93SXRlbXNSZXN1bHRgXG4gKi9cbmV4cG9ydCB0eXBlIEticU92ZXJmbG93SXRlbXNSZXN1bHRDb250ZXh0ID0ge1xuICAgIC8qKlxuICAgICAqIFNldCBvZiBoaWRkZW4gaXRlbSBJRCdzLlxuICAgICAqXG4gICAgICogRXhhbXBsZTpcbiAgICAgKlxuICAgICAqIGBgYGh0bWxcbiAgICAgKiA8bmctdGVtcGxhdGUga2JxT3ZlcmZsb3dJdGVtc1Jlc3VsdCBsZXQtaGlkZGVuSXRlbUlEcz5cbiAgICAgKiAge3sgaGlkZGVuSXRlbUlEcy5zaXplIH19XG4gICAgICogPC9uZy10ZW1wbGF0ZT5cbiAgICAgKiBgYGBgXG4gICAgICovXG4gICAgJGltcGxpY2l0OiBSZWFkb25seVNldDx1bmtub3duPjtcbiAgICAvKipcbiAgICAgKiBTZXQgb2YgaGlkZGVuIGl0ZW0gSUQncy5cbiAgICAgKlxuICAgICAqIEV4YW1wbGU6XG4gICAgICpcbiAgICAgKiBgYGBodG1sXG4gICAgICogPG5nLXRlbXBsYXRlIGticU92ZXJmbG93SXRlbXNSZXN1bHQgbGV0LWhpZGRlbkl0ZW1JRHM9XCJoaWRkZW5JdGVtSURzXCI+XG4gICAgICogIEBpZiAoaGlkZGVuSXRlbUlEcy5oYXMoU09NRV9JRCkpIHsuLi59XG4gICAgICogPC9uZy10ZW1wbGF0ZT5cbiAgICAgKiBgYGBgXG4gICAgICovXG4gICAgaGlkZGVuSXRlbUlEczogUmVhZG9ubHlTZXQ8dW5rbm93bj47XG59O1xuXG4vKipcbiAqIERpcmVjdGl2ZSBmb3IgcHJvdmlkaW5nIGBLYnFPdmVyZmxvd0l0ZW1zUmVzdWx0Q29udGV4dGAgdG8gdGhlIGBLYnFPdmVyZmxvd0l0ZW1zYCBjb21wb25lbnQuXG4gKlxuICogQHNlZSBgS2JxT3ZlcmZsb3dJdGVtc1Jlc3VsdENvbnRleHRgXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICduZy10ZW1wbGF0ZVtrYnFPdmVyZmxvd0l0ZW1zUmVzdWx0XSdcbn0pXG5leHBvcnQgY2xhc3MgS2JxT3ZlcmZsb3dJdGVtc1Jlc3VsdCB7XG4gICAgLyoqXG4gICAgICogVGVtcGxhdGVSZWYgZm9yIHRoZSBvdmVyZmxvdyByZXN1bHQuXG4gICAgICpcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgcmVhZG9ubHkgdGVtcGxhdGVSZWYgPSBpbmplY3Q8VGVtcGxhdGVSZWY8S2JxT3ZlcmZsb3dJdGVtc1Jlc3VsdENvbnRleHQ+PihUZW1wbGF0ZVJlZik7XG59XG5cbi8qKlxuICogU3RydWN0dXJlIGRpcmVjdGl2ZSBmb3IgcHJvdmlkaW5nIGl0ZW1zIHRvIHRoZSBgS2JxT3ZlcmZsb3dJdGVtc2AuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdba2JxT3ZlcmZsb3dJdGVtXSdcbn0pXG5leHBvcnQgY2xhc3MgS2JxT3ZlcmZsb3dJdGVtIHtcbiAgICAvKipcbiAgICAgKiBJZGVudGlmaWVyIGZvciB0aGUgaXRlbS5cbiAgICAgKi9cbiAgICByZWFkb25seSBpZCA9IGlucHV0LnJlcXVpcmVkKHsgYWxpYXM6ICdrYnFPdmVyZmxvd0l0ZW0nIH0pO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgaXRlbSBpcyBoaWRkZW4uXG4gICAgICpcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgcmVhZG9ubHkgaGlkZGVuID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICAgIC8qKlxuICAgICAqIFRlbXBsYXRlUmVmIGZvciB0aGUgaXRlbS5cbiAgICAgKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICByZWFkb25seSB0ZW1wbGF0ZVJlZiA9IGluamVjdChUZW1wbGF0ZVJlZik7XG59XG5cbi8qKlxuICogQ29tcG9uZW50IGZvciBhdXRvbWF0aWNhbGx5IGhpZGluZyBlbGVtZW50cyB3aXRoIGR5bmFtaWMgYWRhcHRhdGlvbiB0byB0aGUgY29udGFpbmVyIHdpZHRoLlxuICovXG5AQ29tcG9uZW50KHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAna2JxLW92ZXJmbG93LWl0ZW1zJyxcbiAgICBpbXBvcnRzOiBbTmdUZW1wbGF0ZU91dGxldF0sXG4gICAgdGVtcGxhdGU6IGBcbiAgICAgICAgQGlmIChyZXZlcnNlT3ZlcmZsb3dPcmRlcigpKSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRlbXBsYXRlXCIgLz5cbiAgICAgICAgfVxuXG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgaXRlbXMoKTsgdHJhY2sgaXRlbS5pZCgpKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJrYnEtb3ZlcmZsb3ctaXRlbXNfX2l0ZW1cIlxuICAgICAgICAgICAgICAgICNpdGVtUmVmXG4gICAgICAgICAgICAgICAgW2F0dHIuYXJpYS1oaWRkZW5dPVwiaXRlbS5oaWRkZW4oKVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmticS1vdmVyZmxvdy1pdGVtc19faXRlbV9oaWRkZW5dPVwiaXRlbS5oaWRkZW4oKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtLnRlbXBsYXRlUmVmXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmICghcmV2ZXJzZU92ZXJmbG93T3JkZXIoKSkge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0ZW1wbGF0ZVwiIC8+XG4gICAgICAgIH1cblxuICAgICAgICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlPlxuICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwia2JxLW92ZXJmbG93LWl0ZW1zX19yZXN1bHRcIlxuICAgICAgICAgICAgICAgICNyZXN1bHRSZWZcbiAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWhpZGRlbl09XCJyZXN1bHRIaWRkZW4oKVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmticS1vdmVyZmxvdy1pdGVtc19fcmVzdWx0X2hpZGRlbl09XCJyZXN1bHRIaWRkZW4oKVwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICBbbmdUZW1wbGF0ZU91dGxldF09XCJyZXN1bHQoKT8udGVtcGxhdGVSZWYgfHwgbnVsbFwiXG4gICAgICAgICAgICAgICAgICAgIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJyZXN1bHRUZW1wbGF0ZUNvbnRleHQoKVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIGAsXG4gICAgc3R5bGVVcmw6ICcuL292ZXJmbG93LWl0ZW1zLnNjc3MnLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgY2xhc3M6ICdrYnEtb3ZlcmZsb3ctaXRlbXMnXG4gICAgfSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBLYnFPdmVyZmxvd0l0ZW1zIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1FbGVtZW50UmVmcyA9IHZpZXdDaGlsZHJlbjxzdHJpbmcsIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PignaXRlbVJlZicsIHsgcmVhZDogRWxlbWVudFJlZiB9KTtcblxuICAgIC8qKlxuICAgICAqIGBLYnFPdmVyZmxvd0l0ZW1gIGRpcmVjdGl2ZSByZWZlcmVuY2VzLlxuICAgICAqXG4gICAgICogQGRvY3MtcHJpdmF0ZVxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBpdGVtcyA9IGNvbnRlbnRDaGlsZHJlbihLYnFPdmVyZmxvd0l0ZW0pO1xuXG4gICAgLyoqXG4gICAgICogYEticU92ZXJmbG93SXRlbXNSZXN1bHRgIGRpcmVjdGl2ZSByZWZlcmVuY2UuXG4gICAgICpcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlc3VsdCA9IGNvbnRlbnRDaGlsZChLYnFPdmVyZmxvd0l0ZW1zUmVzdWx0KTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVzdWx0RWxlbWVudFJlZiA9IHZpZXdDaGlsZDxzdHJpbmcsIEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PigncmVzdWx0UmVmJywgeyByZWFkOiBFbGVtZW50UmVmIH0pO1xuXG4gICAgLyoqXG4gICAgICogVGVtcGxhdGUgY29udGV4dCBmb3IgdGhlIGBLYnFPdmVyZmxvd0l0ZW1zUmVzdWx0YCBkaXJlY3RpdmUuXG4gICAgICpcbiAgICAgKiBAZG9jcy1wcml2YXRlXG4gICAgICovXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHJlc3VsdFRlbXBsYXRlQ29udGV4dCA9IGNvbXB1dGVkPEticU92ZXJmbG93SXRlbXNSZXN1bHRDb250ZXh0PigoKSA9PiB7XG4gICAgICAgIGNvbnN0IGhpZGRlbkl0ZW1JRHMgPSBuZXcgU2V0KFxuICAgICAgICAgICAgdGhpcy5pdGVtcygpXG4gICAgICAgICAgICAgICAgLmZpbHRlcigoeyBoaWRkZW4gfSkgPT4gaGlkZGVuKCkpXG4gICAgICAgICAgICAgICAgLm1hcCgoeyBpZCB9KSA9PiBpZCgpKVxuICAgICAgICApO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgJGltcGxpY2l0OiBoaWRkZW5JdGVtSURzLFxuICAgICAgICAgICAgaGlkZGVuSXRlbUlEczogaGlkZGVuSXRlbUlEc1xuICAgICAgICB9O1xuICAgIH0pO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgb3ZlcmZsb3cgcmVzdWx0IGlzIGhpZGRlbi5cbiAgICAgKlxuICAgICAqIEBkb2NzLXByaXZhdGVcbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgcmVzdWx0SGlkZGVuID0gY29tcHV0ZWQoKCkgPT4gIXRoaXMuaXRlbXMoKS5zb21lKCh7IGhpZGRlbiB9KSA9PiBoaWRkZW4oKSkpO1xuXG4gICAgLyoqXG4gICAgICogV2hldGhlciB0aGUgb3ZlcmZsb3cgb3JkZXIgc2hvdWxkIGJlIHJldmVyc2VkLlxuICAgICAqIEFsc28gY2hhbmdlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGByZXN1bHRUZW1wbGF0ZVJlZmAuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IHJldmVyc2VPdmVyZmxvd09yZGVyID0gaW5wdXQoZmFsc2UsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlc2l6ZU9ic2VydmVyID0gaW5qZWN0KFNoYXJlZFJlc2l6ZU9ic2VydmVyKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbnRlbnRPYnNlcnZlciA9IGluamVjdChDb250ZW50T2JzZXJ2ZXIpO1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRvT2JzZXJ2YWJsZSh0aGlzLnJldmVyc2VPdmVyZmxvd09yZGVyKVxuICAgICAgICAgICAgLnBpcGUoc2tpcCgxKSwgdGFrZVVudGlsRGVzdHJveWVkKCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLml0ZW1zKCkuZm9yRWFjaCgoeyBoaWRkZW4gfSkgPT4gaGlkZGVuLnNldChmYWxzZSkpO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgbWVyZ2UoXG4gICAgICAgICAgICB0b09ic2VydmFibGUodGhpcy5pdGVtcyksXG4gICAgICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyLm9ic2VydmUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpLFxuICAgICAgICAgICAgdGhpcy5jb250ZW50T2JzZXJ2ZXIub2JzZXJ2ZSh0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCkucGlwZShkZWJvdW5jZVRpbWUoMCkpXG4gICAgICAgIClcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCgpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVJdGVtc1Zpc2liaWxpdHkoKTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZXMgdGhlIHZpc2liaWxpdHkgb2YgaXRlbXMgYmFzZWQgb24gdGhlIGNvbnRhaW5lciB3aWR0aC5cbiAgICAgKlxuICAgICAqIFRoaXMgbWV0aG9kIGNhbGN1bGF0ZXMgd2hldGhlciBpdGVtcyBzaG91bGQgYmUgaGlkZGVuIG9yIHNob3duIGJ5IGNvbXBhcmluZyB0aGUgc2Nyb2xsIHdpZHRoIG9mIHRoZSBjb250YWluZXJcbiAgICAgKiB3aXRoIGl0cyB2aXNpYmxlIHdpZHRoLiBJdCBkZXRlcm1pbmVzIHdoaWNoIGl0ZW1zIGFyZSB2aXNpYmxlIGFuZCB3aGljaCBhcmUgaGlkZGVuLCBhbmQgYXBwbGllcyB0aGUgaGlkaW5nIGxvZ2ljXG4gICAgICogYmFzZWQgb24gdGhlIGByZXZlcnNlT3ZlcmZsb3dPcmRlcmAgZmxhZy5cbiAgICAgKlxuICAgICAqIFRoZSBmdW5jdGlvbiBvcGVyYXRlcyByZWN1cnNpdmVseSB0byBhZGp1c3QgdGhlIHZpc2liaWxpdHkgb2YgaXRlbXMgdW50aWwgdGhlIG92ZXJmbG93IGNvbmRpdGlvbiBpcyByZXNvbHZlZC5cbiAgICAgKlxuICAgICAqIC0gSWYgdGhlIGNvbnRhaW5lciBpcyBvdmVyZmxvd24sIGl0IGhpZGVzIHRoZSBsYXN0IHZpc2libGUgaXRlbSBmcm9tIHRoZSBlbmQgKG9yIHN0YXJ0IGlmIGByZXZlcnNlT3ZlcmZsb3dPcmRlcmApXG4gICAgICogYW5kIGNoZWNrcyBpZiBmdXJ0aGVyIGFkanVzdG1lbnRzIGFyZSBuZWVkZWQuXG4gICAgICogLSBJZiB0aGUgY29udGFpbmVyIGlzIG5vdCBvdmVyZmxvd24sIGl0IHJldmVhbHMgdGhlIGZpcnN0IGhpZGRlbiBpdGVtIGZyb20gdGhlIHN0YXJ0XG4gICAgICogKG9yIGVuZCBpZiBgcmV2ZXJzZU92ZXJmbG93T3JkZXJgKSwgZW5zdXJpbmcgaXQgZml0cyB3aXRoaW4gdGhlIHZpc2libGUgYXJlYS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHVwZGF0ZUl0ZW1zVmlzaWJpbGl0eSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgaXRlbUVsZW1lbnRSZWZzID0gdGhpcy5pdGVtRWxlbWVudFJlZnMoKTtcbiAgICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLml0ZW1zKCkubWFwKCh7IGhpZGRlbiB9LCBpbmRleCwgX2l0ZW1zKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIGhpZGRlbixcbiAgICAgICAgICAgICAgICBpc0ZpcnN0OiBpbmRleCA9PT0gMCxcbiAgICAgICAgICAgICAgICBpc0xhc3Q6IGluZGV4ID09PSBfaXRlbXMubGVuZ3RoIC0gMSxcbiAgICAgICAgICAgICAgICBlbGVtZW50UmVmOiBpdGVtRWxlbWVudFJlZnNbaW5kZXhdXG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICAgICAgY29uc3QgcmV2ZXJzZU92ZXJmbG93T3JkZXIgPSB0aGlzLnJldmVyc2VPdmVyZmxvd09yZGVyKCk7XG4gICAgICAgIGNvbnN0IGlzRWRnZUl0ZW0gPSAoeyBpc0ZpcnN0LCBpc0xhc3QgfTogKHR5cGVvZiBpdGVtcylbbnVtYmVyXSkgPT4gKHJldmVyc2VPdmVyZmxvd09yZGVyID8gaXNGaXJzdCA6IGlzTGFzdCk7XG4gICAgICAgIGNvbnN0IHsgb2Zmc2V0V2lkdGg6IHRvdGFsV2lkdGgsIHNjcm9sbFdpZHRoIH0gPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudDtcbiAgICAgICAgY29uc3QgaXNPdmVyZmxvd24gPSBzY3JvbGxXaWR0aCA+IHRvdGFsV2lkdGg7XG4gICAgICAgIGlmIChpc092ZXJmbG93bikge1xuICAgICAgICAgICAgY29uc3QgaXNWaXNpYmxlSXRlbSA9ICh7IGhpZGRlbiB9OiAodHlwZW9mIGl0ZW1zKVtudW1iZXJdKSA9PiAhaGlkZGVuKCk7XG4gICAgICAgICAgICBjb25zdCBsYXN0VmlzaWJsZUl0ZW0gPSAhcmV2ZXJzZU92ZXJmbG93T3JkZXJcbiAgICAgICAgICAgICAgICA/IHRoaXMuZmluZExhc3QoaXRlbXMsIGlzVmlzaWJsZUl0ZW0pXG4gICAgICAgICAgICAgICAgOiBpdGVtcy5maW5kKGlzVmlzaWJsZUl0ZW0pO1xuICAgICAgICAgICAgaWYgKGxhc3RWaXNpYmxlSXRlbSkge1xuICAgICAgICAgICAgICAgIGxhc3RWaXNpYmxlSXRlbS5oaWRkZW4uc2V0KHRydWUpO1xuICAgICAgICAgICAgICAgIGlmICghaXNFZGdlSXRlbShsYXN0VmlzaWJsZUl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSXRlbXNWaXNpYmlsaXR5KCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29uc3QgaXNIaWRkZW5JdGVtID0gKHsgaGlkZGVuIH06ICh0eXBlb2YgaXRlbXMpW251bWJlcl0pID0+IGhpZGRlbigpO1xuICAgICAgICAgICAgY29uc3QgZmlyc3RIaWRkZW5JdGVtID0gIXJldmVyc2VPdmVyZmxvd09yZGVyXG4gICAgICAgICAgICAgICAgPyBpdGVtcy5maW5kKGlzSGlkZGVuSXRlbSlcbiAgICAgICAgICAgICAgICA6IHRoaXMuZmluZExhc3QoaXRlbXMsIGlzSGlkZGVuSXRlbSk7XG4gICAgICAgICAgICBpZiAoZmlyc3RIaWRkZW5JdGVtKSB7XG4gICAgICAgICAgICAgICAgY29uc3QgZmlyc3RIaWRkZW5JdGVtV2lkdGggPSBmaXJzdEhpZGRlbkl0ZW0uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuICAgICAgICAgICAgICAgIGNvbnN0IHZpc2libGVJdGVtc1RvdGFsV2lkdGggPSBpdGVtc1xuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKCh7IGhpZGRlbiB9KSA9PiAhaGlkZGVuKCkpXG4gICAgICAgICAgICAgICAgICAgIC5yZWR1Y2UoKHdpZHRoLCB7IGVsZW1lbnRSZWYgfSkgPT4gd2lkdGggKyBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgsIDApO1xuICAgICAgICAgICAgICAgIGNvbnN0IF9pc0VkZ2VJdGVtID0gaXNFZGdlSXRlbShmaXJzdEhpZGRlbkl0ZW0pO1xuICAgICAgICAgICAgICAgIGNvbnN0IHJlc3VsdFdpZHRoID0gX2lzRWRnZUl0ZW0gPyAwIDogdGhpcy5yZXN1bHRFbGVtZW50UmVmKCk/Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGggfHwgMDtcbiAgICAgICAgICAgICAgICBpZiAoZmlyc3RIaWRkZW5JdGVtV2lkdGggKyB2aXNpYmxlSXRlbXNUb3RhbFdpZHRoICsgcmVzdWx0V2lkdGggPD0gdG90YWxXaWR0aCkge1xuICAgICAgICAgICAgICAgICAgICBmaXJzdEhpZGRlbkl0ZW0uaGlkZGVuLnNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgICAgIGlmICghX2lzRWRnZUl0ZW0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXBkYXRlSXRlbXNWaXNpYmlsaXR5KCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogQFRPRE8gU2hvdWxkIHVzZSBgQXJyYXkucHJvdG90eXBlLmZpbmRMYXN0YCBhZnRlciBtaWdyYXRpbmcgdG8gRVMyMDIzICovXG4gICAgcHJpdmF0ZSBmaW5kTGFzdDxUPihhcnJheTogVFtdLCBwcmVkaWNhdGU6ICh2YWx1ZTogVCwgaW5kZXg6IG51bWJlciwgYXJyYXk6IFRbXSkgPT4gYm9vbGVhbik6IFQgfCB1bmRlZmluZWQge1xuICAgICAgICBmb3IgKGxldCBpID0gYXJyYXkubGVuZ3RoIC0gMTsgaSA+PSAwOyBpLS0pIHtcbiAgICAgICAgICAgIGlmIChwcmVkaWNhdGUoYXJyYXlbaV0sIGksIGFycmF5KSkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhcnJheVtpXTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgIH1cbn1cbiJdfQ==
|
|
@@ -86,6 +86,8 @@ export class KbqPopoverTrigger extends KbqPopUpTrigger {
|
|
|
86
86
|
this._hasCloseButton = false;
|
|
87
87
|
this._closeOnScroll = null;
|
|
88
88
|
this.backdropClass = 'cdk-overlay-transparent-backdrop';
|
|
89
|
+
// @TODO add realization for arrow (#DS-2514)
|
|
90
|
+
this.arrow = true;
|
|
89
91
|
this.placementChange = new EventEmitter();
|
|
90
92
|
this.visibleChange = new EventEmitter();
|
|
91
93
|
this.originSelector = '.kbq-popover';
|
|
@@ -233,7 +235,7 @@ export class KbqPopoverTrigger extends KbqPopUpTrigger {
|
|
|
233
235
|
updatePosition(reapplyPosition = false) {
|
|
234
236
|
this.overlayRef = this.createOverlay();
|
|
235
237
|
const position = this.overlayRef.getConfig().positionStrategy
|
|
236
|
-
.withPositions(this.
|
|
238
|
+
.withPositions(this.getAdjustedPositions())
|
|
237
239
|
.withPush(true);
|
|
238
240
|
if (reapplyPosition) {
|
|
239
241
|
setTimeout(() => position.reapplyLastPosition());
|
|
@@ -321,4 +323,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
321
323
|
type: Output,
|
|
322
324
|
args: ['kbqPopoverVisibleChange']
|
|
323
325
|
}] } });
|
|
324
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBR0gsT0FBTyxFQUdWLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUdILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLGNBQWMsRUFDZCxLQUFLLEVBQ0wsTUFBTSxFQUdOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsUUFBUSxFQUNSLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLFVBQVUsRUFDVixhQUFhLEVBQ2hCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQWM1RCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsUUFBUTtJQVpqRDs7UUFhSSxXQUFNLEdBQUcsYUFBYSxDQUFDO1FBS3ZCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBSXhC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O3VCQUFDLHFCQUFxQjtnQkFVeEIsd0JBQXdCO3NCQUQzQixLQUFLO3VCQUFDLDZCQUE2QjtnQkFVaEMsV0FBVztzQkFEZCxLQUFLO2dCQVlGLE1BQU07c0JBRFQsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBY3JCLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxtQkFBbUI7Z0JBWXRCLE1BQU07c0JBRFQsS0FBSzt1QkFBQyxrQkFBa0I7Z0JBY3JCLFFBQVE7c0JBRFgsS0FBSzt1QkFBQyxvQkFBb0I7Z0JBY3ZCLE9BQU87c0JBRFYsS0FBSzt1QkFBQyxZQUFZO2dCQWtCZixJQUFJO3NCQURQLEtBQUs7dUJBQUMsZ0JBQWdCO2dCQWtCbkIsV0FBVztzQkFEZCxLQUFLO3VCQUFDLGlCQUFpQjtnQkFZcEIsY0FBYztzQkFEakIsS0FBSztnQkFnQkYsYUFBYTtzQkFEaEIsS0FBSztnQkFlRyxhQUFhO3NCQUFyQixLQUFLO2dCQUUrQixlQUFlO3NCQUFuRCxNQUFNO3VCQUFDLDJCQUEyQjtnQkFFQSxhQUFhO3NCQUEvQyxNQUFNO3VCQUFDLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQge1xuICAgIENka1Njcm9sbGFibGUsXG4gICAgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5LFxuICAgIE92ZXJsYXksXG4gICAgT3ZlcmxheUNvbmZpZyxcbiAgICBTY3JvbGxTdHJhdGVneVxufSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRGVzdHJveVJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFRlbXBsYXRlUmVmLFxuICAgIFR5cGUsXG4gICAgVmlld0NoaWxkLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gICAgS2JxQ29tcG9uZW50Q29sb3JzLFxuICAgIEticVBvcFVwLFxuICAgIEticVBvcFVwVHJpZ2dlcixcbiAgICBQT1NJVElPTl9UT19DU1NfTUFQLFxuICAgIFBvcFVwUGxhY2VtZW50cyxcbiAgICBQb3BVcFNpemVzLFxuICAgIFBvcFVwVHJpZ2dlcnNcbn0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgTkVWRVIsIGZyb21FdmVudCwgbWVyZ2UgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGticVBvcG92ZXJBbmltYXRpb25zIH0gZnJvbSAnLi9wb3BvdmVyLWFuaW1hdGlvbnMnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2ticS1wb3BvdmVyLWNvbXBvbmVudCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3BvcG92ZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHByZXNlcnZlV2hpdGVzcGFjZXM6IGZhbHNlLFxuICAgIHN0eWxlVXJsczogWycuL3BvcG92ZXIuc2NzcycsICcuL3BvcG92ZXItdG9rZW5zLnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgICcoa2V5ZG93bi5lc2MpJzogJ2hpZGUoMCknXG4gICAgfSxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGFuaW1hdGlvbnM6IFtrYnFQb3BvdmVyQW5pbWF0aW9ucy5wb3BvdmVyU3RhdGVdXG59KVxuZXhwb3J0IGNsYXNzIEticVBvcG92ZXJDb21wb25lbnQgZXh0ZW5kcyBLYnFQb3BVcCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICAgIHByZWZpeCA9ICdrYnEtcG9wb3Zlcic7XG5cbiAgICBoZWFkZXI6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG4gICAgZm9vdGVyOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgaXNUcmFwRm9jdXM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBoYXNDbG9zZUJ1dHRvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQFZpZXdDaGlsZCgncG9wb3ZlckNvbnRlbnQnKSBwb3BvdmVyQ29udGVudDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgICBwcml2YXRlIGRlYm91bmNlVGltZSA9IDE1O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgICBpc0NvbnRlbnRUb3BPdmVyZmxvdzogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGlzQ29udGVudEJvdHRvbU92ZXJmbG93OiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIGlmICghdGhpcy5wb3BvdmVyQ29udGVudCkgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuY2hlY2tDb250ZW50T3ZlcmZsb3codGhpcy5wb3BvdmVyQ29udGVudC5uYXRpdmVFbGVtZW50KTtcblxuICAgICAgICBmcm9tRXZlbnQodGhpcy5wb3BvdmVyQ29udGVudC5uYXRpdmVFbGVtZW50LCAnc2Nyb2xsJylcbiAgICAgICAgICAgIC5waXBlKGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlVGltZSksIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoZXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmNoZWNrQ29udGVudE92ZXJmbG93KGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCk7XG4gICAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBvbkNvbnRlbnRDaGFuZ2UoKSB7XG4gICAgICAgIHRoaXMuY2hlY2tDb250ZW50T3ZlcmZsb3codGhpcy5wb3BvdmVyQ29udGVudC5uYXRpdmVFbGVtZW50KTtcbiAgICB9XG5cbiAgICBjaGVja0NvbnRlbnRPdmVyZmxvdyhjb250ZW50RWxlbWVudDogSFRNTEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgeyBzY3JvbGxUb3AsIG9mZnNldEhlaWdodCwgc2Nyb2xsSGVpZ2h0IH0gPSBjb250ZW50RWxlbWVudDtcblxuICAgICAgICB0aGlzLmlzQ29udGVudFRvcE92ZXJmbG93ID0gc2Nyb2xsVG9wID4gMDtcblxuICAgICAgICB0aGlzLmlzQ29udGVudEJvdHRvbU92ZXJmbG93ID0gc2Nyb2xsVG9wICsgb2Zmc2V0SGVpZ2h0IDwgc2Nyb2xsSGVpZ2h0O1xuXG4gICAgICAgIHN1cGVyLmRldGVjdENoYW5nZXMoKTtcbiAgICB9XG5cbiAgICB1cGRhdGVDbGFzc01hcChwbGFjZW1lbnQ6IHN0cmluZywgY3VzdG9tQ2xhc3M6IHN0cmluZywgc2l6ZTogUG9wVXBTaXplcykge1xuICAgICAgICBzdXBlci51cGRhdGVDbGFzc01hcChwbGFjZW1lbnQsIGN1c3RvbUNsYXNzLCB7IFtgJHt0aGlzLnByZWZpeH1fJHtzaXplfWBdOiAhIXNpemUgfSk7XG4gICAgfVxuXG4gICAgdXBkYXRlVHJhcEZvY3VzKGlzVHJhcEZvY3VzOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNUcmFwRm9jdXMgPSBpc1RyYXBGb2N1cztcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29tcG9uZW50Q29sb3JzID0gS2JxQ29tcG9uZW50Q29sb3JzO1xufVxuXG5leHBvcnQgY29uc3QgS0JRX1BPUE9WRVJfU0NST0xMX1NUUkFURUdZID0gbmV3IEluamVjdGlvblRva2VuPCgpID0+IFNjcm9sbFN0cmF0ZWd5Pigna2JxLXBvcG92ZXItc2Nyb2xsLXN0cmF0ZWd5Jyk7XG5cbi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgZnVuY3Rpb24ga2JxUG9wb3ZlclNjcm9sbFN0cmF0ZWd5RmFjdG9yeShvdmVybGF5OiBPdmVybGF5KTogKCkgPT4gU2Nyb2xsU3RyYXRlZ3kge1xuICAgIHJldHVybiAoKSA9PiBvdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbih7IHNjcm9sbFRocm90dGxlOiAyMCB9KTtcbn1cblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBjb25zdCBLQlFfUE9QT1ZFUl9TQ1JPTExfU1RSQVRFR1lfRkFDVE9SWV9QUk9WSURFUiA9IHtcbiAgICBwcm92aWRlOiBLQlFfUE9QT1ZFUl9TQ1JPTExfU1RSQVRFR1ksXG4gICAgZGVwczogW092ZXJsYXldLFxuICAgIHVzZUZhY3Rvcnk6IGticVBvcG92ZXJTY3JvbGxTdHJhdGVneUZhY3Rvcnlcbn07XG5cbi8qKiBDcmVhdGVzIGFuIGVycm9yIHRvIGJlIHRocm93biBpZiB0aGUgdXNlciBzdXBwbGllZCBhbiBpbnZhbGlkIHBvcG92ZXIgcG9zaXRpb24uICovXG5leHBvcnQgZnVuY3Rpb24gZ2V0S2JxUG9wb3ZlckludmFsaWRQb3NpdGlvbkVycm9yKHBvc2l0aW9uOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gRXJyb3IoYEticVBvcG92ZXIgcG9zaXRpb24gXCIke3Bvc2l0aW9ufVwiIGlzIGludmFsaWQuYCk7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW2ticVBvcG92ZXJdJyxcbiAgICBleHBvcnRBczogJ2ticVBvcG92ZXInLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tjbGFzcy5rYnEtcG9wb3Zlcl9vcGVuXSc6ICdpc09wZW4nLFxuICAgICAgICAnW2NsYXNzLmticS1hY3RpdmVdJzogJ2hhc0NsaWNrVHJpZ2dlciAmJiBpc09wZW4nLFxuICAgICAgICAnKGtleWRvd24pJzogJ2hhbmRsZUtleWRvd24oJGV2ZW50KScsXG4gICAgICAgICcodG91Y2hlbmQpJzogJ2hhbmRsZVRvdWNoZW5kKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBLYnFQb3BvdmVyVHJpZ2dlciBleHRlbmRzIEticVBvcFVwVHJpZ2dlcjxLYnFQb3BvdmVyQ29tcG9uZW50PiBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIHByb3RlY3RlZCBzY3JvbGxTdHJhdGVneTogKCkgPT4gU2Nyb2xsU3RyYXRlZ3kgPSBpbmplY3QoS0JRX1BPUE9WRVJfU0NST0xMX1NUUkFURUdZKTtcblxuICAgIEBJbnB1dCgna2JxUG9wb3ZlclZpc2libGUnKVxuICAgIGdldCBwb3BvdmVyVmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmlzaWJsZTtcbiAgICB9XG5cbiAgICBzZXQgcG9wb3ZlclZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgc3VwZXIudXBkYXRlVmlzaWJsZSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KCdrYnFQb3BvdmVyUGxhY2VtZW50JylcbiAgICBnZXQgcG9wb3ZlclBsYWNlbWVudCgpOiBQb3BVcFBsYWNlbWVudHMge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGFjZW1lbnQ7XG4gICAgfVxuXG4gICAgc2V0IHBvcG92ZXJQbGFjZW1lbnQodmFsdWU6IFBvcFVwUGxhY2VtZW50cykge1xuICAgICAgICBzdXBlci51cGRhdGVQbGFjZW1lbnQodmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgna2JxUG9wb3ZlclBsYWNlbWVudFByaW9yaXR5JylcbiAgICBnZXQgcG9wb3ZlclBsYWNlbWVudFByaW9yaXR5KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGFjZW1lbnRQcmlvcml0eTtcbiAgICB9XG5cbiAgICBzZXQgcG9wb3ZlclBsYWNlbWVudFByaW9yaXR5KHZhbHVlKSB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZVBsYWNlbWVudFByaW9yaXR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBoYXNCYWNrZHJvcCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc0JhY2tkcm9wO1xuICAgIH1cblxuICAgIHNldCBoYXNCYWNrZHJvcCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9oYXNCYWNrZHJvcCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGFzQmFja2Ryb3A6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgna2JxUG9wb3ZlckhlYWRlcicpXG4gICAgZ2V0IGhlYWRlcigpOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hlYWRlcjtcbiAgICB9XG5cbiAgICBzZXQgaGVhZGVyKHZhbHVlOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIHRoaXMuX2hlYWRlciA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMudXBkYXRlRGF0YSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2hlYWRlcjogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIEBJbnB1dCgna2JxUG9wb3ZlckNvbnRlbnQnKVxuICAgIGdldCBjb250ZW50KCk6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fY29udGVudDtcbiAgICB9XG5cbiAgICBzZXQgY29udGVudCh2YWx1ZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pikge1xuICAgICAgICB0aGlzLl9jb250ZW50ID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgfVxuXG4gICAgQElucHV0KCdrYnFQb3BvdmVyRm9vdGVyJylcbiAgICBnZXQgZm9vdGVyKCk6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZm9vdGVyO1xuICAgIH1cblxuICAgIHNldCBmb290ZXIodmFsdWU6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgdGhpcy5fZm9vdGVyID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZm9vdGVyOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQElucHV0KCdrYnFQb3BvdmVyRGlzYWJsZWQnKVxuICAgIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cblxuICAgIHNldCBkaXNhYmxlZCh2YWx1ZSkge1xuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgna2JxVHJpZ2dlcicpXG4gICAgZ2V0IHRyaWdnZXIoKTogc3RyaW5nIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3RyaWdnZXI7XG4gICAgfVxuXG4gICAgc2V0IHRyaWdnZXIodmFsdWU6IHN0cmluZykge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIgPSB2YWx1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3RyaWdnZXIgPSBgJHtQb3BVcFRyaWdnZXJzLkNsaWNrfSwgJHtQb3BVcFRyaWdnZXJzLktleWRvd259YDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5pdExpc3RlbmVycygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX3RyaWdnZXI6IHN0cmluZyA9IGAke1BvcFVwVHJpZ2dlcnMuQ2xpY2t9LCAke1BvcFVwVHJpZ2dlcnMuS2V5ZG93bn1gO1xuXG4gICAgQElucHV0KCdrYnFQb3BvdmVyU2l6ZScpXG4gICAgZ2V0IHNpemUoKTogUG9wVXBTaXplcyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zaXplO1xuICAgIH1cblxuICAgIHNldCBzaXplKHZhbHVlOiBQb3BVcFNpemVzKSB7XG4gICAgICAgIGlmIChbUG9wVXBTaXplcy5TbWFsbCwgUG9wVXBTaXplcy5NZWRpdW0sIFBvcFVwU2l6ZXMuTGFyZ2VdLmluY2x1ZGVzKHZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5fc2l6ZSA9IHZhbHVlO1xuXG4gICAgICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzTWFwKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLl9zaXplID0gUG9wVXBTaXplcy5NZWRpdW07XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9zaXplOiBQb3BVcFNpemVzID0gUG9wVXBTaXplcy5NZWRpdW07XG5cbiAgICBASW5wdXQoJ2ticVBvcG92ZXJDbGFzcycpXG4gICAgZ2V0IGN1c3RvbUNsYXNzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5fY3VzdG9tQ2xhc3M7XG4gICAgfVxuXG4gICAgc2V0IGN1c3RvbUNsYXNzKHZhbHVlOiBzdHJpbmcpIHtcbiAgICAgICAgdGhpcy5fY3VzdG9tQ2xhc3MgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLnVwZGF0ZUNsYXNzTWFwKCk7XG4gICAgfVxuXG4gICAgQElucHV0KClcbiAgICBnZXQgaGFzQ2xvc2VCdXR0b24oKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9oYXNDbG9zZUJ1dHRvbjtcbiAgICB9XG4gICAgc2V0IGhhc0Nsb3NlQnV0dG9uKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2hhc0Nsb3NlQnV0dG9uID0gdmFsdWU7XG4gICAgICAgIHRoaXMudXBkYXRlRGF0YSgpO1xuICAgIH1cbiAgICBwcml2YXRlIF9oYXNDbG9zZUJ1dHRvbiA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogQ29udHJvbHMgdGhlIGJlaGF2aW9yIG9mIGNsb3NpbmcgdGhlIGNvbXBvbmVudCBvbiBzY3JvbGwuXG4gICAgICogVGhlIGRlZmF1bHQgdmFsdWUgaXMgYGZhbHNlYC5cbiAgICAgKiBVc2UgQ2xvc2VTY3JvbGxTdHJhdGVneSBhcyBhbHRlcm5hdGl2ZVxuICAgICAqL1xuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGNsb3NlT25TY3JvbGwoKTogYm9vbGVhbiB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fY2xvc2VPblNjcm9sbDtcbiAgICB9XG5cbiAgICBzZXQgY2xvc2VPblNjcm9sbCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9jbG9zZU9uU2Nyb2xsID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9jbG9zZU9uU2Nyb2xsOiBib29sZWFuIHwgbnVsbCA9IG51bGw7XG5cbiAgICBnZXQgaGFzQ2xpY2tUcmlnZ2VyKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy50cmlnZ2VyLmluY2x1ZGVzKFBvcFVwVHJpZ2dlcnMuQ2xpY2spO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGJhY2tkcm9wQ2xhc3M6IHN0cmluZyA9ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCc7XG5cbiAgICBAT3V0cHV0KCdrYnFQb3BvdmVyUGxhY2VtZW50Q2hhbmdlJykgcGxhY2VtZW50Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgQE91dHB1dCgna2JxUG9wb3ZlclZpc2libGVDaGFuZ2UnKSB2aXNpYmxlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgcHJvdGVjdGVkIG9yaWdpblNlbGVjdG9yID0gJy5rYnEtcG9wb3Zlcic7XG5cbiAgICBwcm90ZWN0ZWQgZ2V0IG92ZXJsYXlDb25maWcoKTogT3ZlcmxheUNvbmZpZyB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBwYW5lbENsYXNzOiAna2JxLXBvcG92ZXJfX3BhbmVsJyxcbiAgICAgICAgICAgIGhhc0JhY2tkcm9wOiB0aGlzLmhhc0JhY2tkcm9wLFxuICAgICAgICAgICAgYmFja2Ryb3BDbGFzczogdGhpcy5iYWNrZHJvcENsYXNzXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5jbG9zZU9uU2Nyb2xsID09PSBudWxsKSB7XG4gICAgICAgICAgICB0aGlzLnNjcm9sbERpc3BhdGNoZXIuc2Nyb2xsZWQoKS5zdWJzY3JpYmUoKHNjcm9sbGFibGU6IENka1Njcm9sbGFibGUgfCB2b2lkKSA9PiB7XG4gICAgICAgICAgICAgICAgaWYgKCFzY3JvbGxhYmxlPy5nZXRFbGVtZW50UmVmKCkubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuY29udGFpbnMoJ2ticS1oaWRlLW5lc3RlZC1wb3B1cCcpKSByZXR1cm47XG5cbiAgICAgICAgICAgICAgICBjb25zdCBwYXJlbnRSZWN0cyA9IHNjcm9sbGFibGUuZ2V0RWxlbWVudFJlZigpLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgICAgICAgICAgY29uc3QgY2hpbGRSZWN0cyA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuXG4gICAgICAgICAgICAgICAgaWYgKGNoaWxkUmVjdHMuYm90dG9tIDwgcGFyZW50UmVjdHMudG9wIHx8IGNoaWxkUmVjdHMudG9wID4gcGFyZW50UmVjdHMuYm90dG9tKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgdXBkYXRlRGF0YSgpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluc3RhbmNlLmhlYWRlciA9IHRoaXMuaGVhZGVyO1xuICAgICAgICB0aGlzLmluc3RhbmNlLmNvbnRlbnQgPSB0aGlzLmNvbnRlbnQ7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UuZm9vdGVyID0gdGhpcy5mb290ZXI7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UuaGFzQ2xvc2VCdXR0b24gPSB0aGlzLmhhc0Nsb3NlQnV0dG9uO1xuXG4gICAgICAgIHRoaXMuaW5zdGFuY2UudXBkYXRlVHJhcEZvY3VzKHRoaXMudHJpZ2dlciAhPT0gUG9wVXBUcmlnZ2Vycy5Gb2N1cyk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICB0aGlzLnVwZGF0ZVBvc2l0aW9uKHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqIFVwZGF0ZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSBjdXJyZW50IHBvcG92ZXIuICovXG4gICAgdXBkYXRlUG9zaXRpb24ocmVhcHBseVBvc2l0aW9uOiBib29sZWFuID0gZmFsc2UpIHtcbiAgICAgICAgdGhpcy5vdmVybGF5UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5KCk7XG5cbiAgICAgICAgY29uc3QgcG9zaXRpb24gPSAodGhpcy5vdmVybGF5UmVmLmdldENvbmZpZygpLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5KVxuICAgICAgICAgICAgLndpdGhQb3NpdGlvbnModGhpcy5nZXRQcmlvcml0aXplZFBvc2l0aW9ucygpKVxuICAgICAgICAgICAgLndpdGhQdXNoKHRydWUpO1xuXG4gICAgICAgIGlmIChyZWFwcGx5UG9zaXRpb24pIHtcbiAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4gcG9zaXRpb24ucmVhcHBseUxhc3RQb3NpdGlvbigpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldE92ZXJsYXlIYW5kbGVDb21wb25lbnRUeXBlKCk6IFR5cGU8S2JxUG9wb3ZlckNvbXBvbmVudD4ge1xuICAgICAgICByZXR1cm4gS2JxUG9wb3ZlckNvbXBvbmVudDtcbiAgICB9XG5cbiAgICB1cGRhdGVDbGFzc01hcChuZXdQbGFjZW1lbnQ6IHN0cmluZyA9IHRoaXMucGxhY2VtZW50KSB7XG4gICAgICAgIGlmICghdGhpcy5pbnN0YW5jZSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbnN0YW5jZS51cGRhdGVDbGFzc01hcChQT1NJVElPTl9UT19DU1NfTUFQW25ld1BsYWNlbWVudF0sIHRoaXMuY3VzdG9tQ2xhc3MsIHRoaXMuc2l6ZSk7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UubWFya0ZvckNoZWNrKCk7XG4gICAgfVxuXG4gICAgY2xvc2luZ0FjdGlvbnNGb3JDbGljaygpIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzQ2xpY2tUcmlnZ2VyKSB7XG4gICAgICAgICAgICByZXR1cm4gW1xuICAgICAgICAgICAgICAgIHRoaXMub3ZlcmxheVJlZiEuYmFja2Ryb3BDbGljaygpLFxuICAgICAgICAgICAgICAgIHRoaXMuaGFzQmFja2Ryb3AgPyBORVZFUiA6IHRoaXMub3ZlcmxheVJlZiEub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxuICAgICAgICAgICAgXTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjbG9zaW5nQWN0aW9ucygpIHtcbiAgICAgICAgcmV0dXJuIG1lcmdlKC4uLnRoaXMuY2xvc2luZ0FjdGlvbnNGb3JDbGljaygpLCB0aGlzLmNsb3NlT25TY3JvbGwgPyB0aGlzLnNjcm9sbERpc3BhdGNoZXIuc2Nyb2xsZWQoKSA6IE5FVkVSKTtcbiAgICB9XG59XG4iLCI8ZGl2XG4gICAgY2xhc3M9XCJrYnEtcG9wb3ZlclwiXG4gICAgW2Nka1RyYXBGb2N1c109XCJpc1RyYXBGb2N1c1wiXG4gICAgW2Nka1RyYXBGb2N1c0F1dG9DYXB0dXJlXT1cImlzVHJhcEZvY3VzXCJcbiAgICBbbmdDbGFzc109XCJjbGFzc01hcFwiXG4gICAgKEBzdGF0ZS5kb25lKT1cImFuaW1hdGlvbkRvbmUoJGV2ZW50KVwiXG4gICAgKEBzdGF0ZS5zdGFydCk9XCJhbmltYXRpb25TdGFydCgpXCJcbiAgICBbQHN0YXRlXT1cInZpc2liaWxpdHlcIlxuPlxuICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJrYnEtcG9wb3Zlcl9fY29udGFpbmVyXCJcbiAgICAgICAgW2NsYXNzLmticS1wb3BvdmVyX19jb250YWluZXJfd2l0aC1mb290ZXJdPVwiZm9vdGVyXCJcbiAgICAgICAgW2NsYXNzLmticS1wb3BvdmVyX19jb250YWluZXJfd2l0aC1oZWFkZXJdPVwiaGVhZGVyXCJcbiAgICA+XG4gICAgICAgIEBpZiAoaGVhZGVyKSB7XG4gICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJrYnEtcG9wb3Zlcl9faGVhZGVyXCJcbiAgICAgICAgICAgICAgICBbY2xhc3Mua2JxLXBvcG92ZXJfX2hlYWRlcl90b3Atb3ZlcmZsb3ddPVwiaXNDb250ZW50VG9wT3ZlcmZsb3dcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5rYnEtcG9wb3Zlcl9faGVhZGVyX3dpdGgtY2xvc2UtYnV0dG9uXT1cImhhc0Nsb3NlQnV0dG9uXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICBAaWYgKGlzVGVtcGxhdGVSZWYoaGVhZGVyKSkge1xuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoaGVhZGVyKVwiIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoIWlzVGVtcGxhdGVSZWYoaGVhZGVyKSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLXBvcG92ZXJfX2hlYWRlci10ZXh0XCI+e3sgaGVhZGVyIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKGNvbnRlbnQpIHtcbiAgICAgICAgICAgIDxkaXYgI3BvcG92ZXJDb250ZW50IGNsYXNzPVwia2JxLXBvcG92ZXJfX2NvbnRlbnQga2JxLXNjcm9sbGJhclwiIChjZGtPYnNlcnZlQ29udGVudCk9XCJvbkNvbnRlbnRDaGFuZ2UoKVwiPlxuICAgICAgICAgICAgICAgIEBpZiAoaGFzQ2xvc2VCdXR0b24gJiYgIWhlYWRlcikge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLXBvcG92ZXJfX2Nsb3NlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNsb3NlQnV0dG9uXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoaXNUZW1wbGF0ZVJlZihjb250ZW50KSkge1xuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoY29udGVudClcIiAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKCFpc1RlbXBsYXRlUmVmKGNvbnRlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3sgY29udGVudCB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG5cbiAgICAgICAgQGlmIChmb290ZXIpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtcG9wb3Zlcl9fZm9vdGVyXCIgW2NsYXNzLmticS1wb3BvdmVyX19mb290ZXJfYm90dG9tLW92ZXJmbG93XT1cImlzQ29udGVudEJvdHRvbU92ZXJmbG93XCI+XG4gICAgICAgICAgICAgICAgQGlmIChpc1RlbXBsYXRlUmVmKGZvb3RlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCIkYW55KGZvb3RlcilcIiAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBAaWYgKCFpc1RlbXBsYXRlUmVmKGZvb3RlcikpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdj57eyBmb290ZXIgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuICAgIDwvZGl2PlxuXG4gICAgQGlmIChoYXNDbG9zZUJ1dHRvbiAmJiBoZWFkZXIpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1wb3BvdmVyX19jbG9zZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjbG9zZUJ1dHRvblwiIC8+XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxuZy10ZW1wbGF0ZSAjY2xvc2VCdXR0b24+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtcG9wb3Zlcl9fY2xvc2VcIj5cbiAgICAgICAgICAgIDxidXR0b24ga2JxLWJ1dHRvbiBjbGFzcz1cImticS1idXR0b25fdHJhbnNwYXJlbnRcIiBbY29sb3JdPVwiY29tcG9uZW50Q29sb3JzLkNvbnRyYXN0XCIgKGNsaWNrKT1cImhpZGUoMClcIj5cbiAgICAgICAgICAgICAgICA8aSBrYnEtaWNvbj1cImticS14bWFya18xNlwiIFtjb2xvcl09XCJjb21wb25lbnRDb2xvcnMuQ29udHJhc3RcIj48L2k+XG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cblxuICAgIDxkaXYgY2xhc3M9XCJrYnEtcG9wb3Zlcl9fYXJyb3dcIj48L2Rpdj5cbjwvZGl2PlxuIl19
|
|
326
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3BvcG92ZXIvcG9wb3Zlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM5RCxPQUFPLEVBR0gsT0FBTyxFQUdWLE1BQU0sc0JBQXNCLENBQUM7QUFDOUIsT0FBTyxFQUdILHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsVUFBVSxFQUNWLFNBQVMsRUFDVCxVQUFVLEVBQ1YsWUFBWSxFQUNaLGNBQWMsRUFDZCxLQUFLLEVBQ0wsTUFBTSxFQUdOLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsUUFBUSxFQUNSLGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsZUFBZSxFQUNmLFVBQVUsRUFDVixhQUFhLEVBQ2hCLE1BQU0seUJBQXlCLENBQUM7QUFDakMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM5QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7OztBQWM1RCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsUUFBUTtJQVpqRDs7UUFhSSxXQUFNLEdBQUcsYUFBYSxDQUFDO1FBS3ZCLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBQzdCLG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBSXhC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dUJBQUMsbUJBQW1CO2dCQVV0QixnQkFBZ0I7c0JBRG5CLEtBQUs7dUJBQUMscUJBQXFCO2dCQVV4Qix3QkFBd0I7c0JBRDNCLEtBQUs7dUJBQUMsNkJBQTZCO2dCQVVoQyxXQUFXO3NCQURkLEtBQUs7Z0JBWUYsTUFBTTtzQkFEVCxLQUFLO3VCQUFDLGtCQUFrQjtnQkFjckIsT0FBTztzQkFEVixLQUFLO3VCQUFDLG1CQUFtQjtnQkFZdEIsTUFBTTtzQkFEVCxLQUFLO3VCQUFDLGtCQUFrQjtnQkFjckIsUUFBUTtzQkFEWCxLQUFLO3VCQUFDLG9CQUFvQjtnQkFjdkIsT0FBTztzQkFEVixLQUFLO3VCQUFDLFlBQVk7Z0JBa0JmLElBQUk7c0JBRFAsS0FBSzt1QkFBQyxnQkFBZ0I7Z0JBa0JuQixXQUFXO3NCQURkLEtBQUs7dUJBQUMsaUJBQWlCO2dCQVlwQixjQUFjO3NCQURqQixLQUFLO2dCQWdCRixhQUFhO3NCQURoQixLQUFLO2dCQWVHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBSytCLGVBQWU7c0JBQW5ELE1BQU07dUJBQUMsMkJBQTJCO2dCQUVBLGFBQWE7c0JBQS9DLE1BQU07dUJBQUMseUJBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29lcmNlQm9vbGVhblByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcbmltcG9ydCB7XG4gICAgQ2RrU2Nyb2xsYWJsZSxcbiAgICBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3ksXG4gICAgT3ZlcmxheSxcbiAgICBPdmVybGF5Q29uZmlnLFxuICAgIFNjcm9sbFN0cmF0ZWd5XG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBBZnRlclZpZXdJbml0LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIENvbXBvbmVudCxcbiAgICBEZXN0cm95UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgVGVtcGxhdGVSZWYsXG4gICAgVHlwZSxcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgaW5qZWN0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdGFrZVVudGlsRGVzdHJveWVkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgICBLYnFDb21wb25lbnRDb2xvcnMsXG4gICAgS2JxUG9wVXAsXG4gICAgS2JxUG9wVXBUcmlnZ2VyLFxuICAgIFBPU0lUSU9OX1RPX0NTU19NQVAsXG4gICAgUG9wVXBQbGFjZW1lbnRzLFxuICAgIFBvcFVwU2l6ZXMsXG4gICAgUG9wVXBUcmlnZ2Vyc1xufSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvY29yZSc7XG5pbXBvcnQgeyBORVZFUiwgZnJvbUV2ZW50LCBtZXJnZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsga2JxUG9wb3ZlckFuaW1hdGlvbnMgfSBmcm9tICcuL3BvcG92ZXItYW5pbWF0aW9ucyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAna2JxLXBvcG92ZXItY29tcG9uZW50JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vcG9wb3Zlci5jb21wb25lbnQuaHRtbCcsXG4gICAgcHJlc2VydmVXaGl0ZXNwYWNlczogZmFsc2UsXG4gICAgc3R5bGVVcmxzOiBbJy4vcG9wb3Zlci5zY3NzJywgJy4vcG9wb3Zlci10b2tlbnMuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJyhrZXlkb3duLmVzYyknOiAnaGlkZSgwKSdcbiAgICB9LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gICAgYW5pbWF0aW9uczogW2ticVBvcG92ZXJBbmltYXRpb25zLnBvcG92ZXJTdGF0ZV1cbn0pXG5leHBvcnQgY2xhc3MgS2JxUG9wb3ZlckNvbXBvbmVudCBleHRlbmRzIEticVBvcFVwIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gICAgcHJlZml4ID0gJ2ticS1wb3BvdmVyJztcblxuICAgIGhlYWRlcjogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PjtcbiAgICBmb290ZXI6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBpc1RyYXBGb2N1czogYm9vbGVhbiA9IGZhbHNlO1xuICAgIGhhc0Nsb3NlQnV0dG9uOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBAVmlld0NoaWxkKCdwb3BvdmVyQ29udGVudCcpIHBvcG92ZXJDb250ZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICAgIHByaXZhdGUgZGVib3VuY2VUaW1lID0gMTU7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICAgIGlzQ29udGVudFRvcE92ZXJmbG93OiBib29sZWFuID0gZmFsc2U7XG4gICAgaXNDb250ZW50Qm90dG9tT3ZlcmZsb3c6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAgICAgaWYgKCF0aGlzLnBvcG92ZXJDb250ZW50KSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5jaGVja0NvbnRlbnRPdmVyZmxvdyh0aGlzLnBvcG92ZXJDb250ZW50Lm5hdGl2ZUVsZW1lbnQpO1xuXG4gICAgICAgIGZyb21FdmVudCh0aGlzLnBvcG92ZXJDb250ZW50Lm5hdGl2ZUVsZW1lbnQsICdzY3JvbGwnKVxuICAgICAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuZGVib3VuY2VUaW1lKSwgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuY2hlY2tDb250ZW50T3ZlcmZsb3coZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIG9uQ29udGVudENoYW5nZSgpIHtcbiAgICAgICAgdGhpcy5jaGVja0NvbnRlbnRPdmVyZmxvdyh0aGlzLnBvcG92ZXJDb250ZW50Lm5hdGl2ZUVsZW1lbnQpO1xuICAgIH1cblxuICAgIGNoZWNrQ29udGVudE92ZXJmbG93KGNvbnRlbnRFbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgICAgICBjb25zdCB7IHNjcm9sbFRvcCwgb2Zmc2V0SGVpZ2h0LCBzY3JvbGxIZWlnaHQgfSA9IGNvbnRlbnRFbGVtZW50O1xuXG4gICAgICAgIHRoaXMuaXNDb250ZW50VG9wT3ZlcmZsb3cgPSBzY3JvbGxUb3AgPiAwO1xuXG4gICAgICAgIHRoaXMuaXNDb250ZW50Qm90dG9tT3ZlcmZsb3cgPSBzY3JvbGxUb3AgKyBvZmZzZXRIZWlnaHQgPCBzY3JvbGxIZWlnaHQ7XG5cbiAgICAgICAgc3VwZXIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH1cblxuICAgIHVwZGF0ZUNsYXNzTWFwKHBsYWNlbWVudDogc3RyaW5nLCBjdXN0b21DbGFzczogc3RyaW5nLCBzaXplOiBQb3BVcFNpemVzKSB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZUNsYXNzTWFwKHBsYWNlbWVudCwgY3VzdG9tQ2xhc3MsIHsgW2Ake3RoaXMucHJlZml4fV8ke3NpemV9YF06ICEhc2l6ZSB9KTtcbiAgICB9XG5cbiAgICB1cGRhdGVUcmFwRm9jdXMoaXNUcmFwRm9jdXM6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc1RyYXBGb2N1cyA9IGlzVHJhcEZvY3VzO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZWFkb25seSBjb21wb25lbnRDb2xvcnMgPSBLYnFDb21wb25lbnRDb2xvcnM7XG59XG5cbmV4cG9ydCBjb25zdCBLQlFfUE9QT1ZFUl9TQ1JPTExfU1RSQVRFR1kgPSBuZXcgSW5qZWN0aW9uVG9rZW48KCkgPT4gU2Nyb2xsU3RyYXRlZ3k+KCdrYnEtcG9wb3Zlci1zY3JvbGwtc3RyYXRlZ3knKTtcblxuLyoqIEBkb2NzLXByaXZhdGUgKi9cbmV4cG9ydCBmdW5jdGlvbiBrYnFQb3BvdmVyU2Nyb2xsU3RyYXRlZ3lGYWN0b3J5KG92ZXJsYXk6IE92ZXJsYXkpOiAoKSA9PiBTY3JvbGxTdHJhdGVneSB7XG4gICAgcmV0dXJuICgpID0+IG92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKHsgc2Nyb2xsVGhyb3R0bGU6IDIwIH0pO1xufVxuXG4vKiogQGRvY3MtcHJpdmF0ZSAqL1xuZXhwb3J0IGNvbnN0IEtCUV9QT1BPVkVSX1NDUk9MTF9TVFJBVEVHWV9GQUNUT1JZX1BST1ZJREVSID0ge1xuICAgIHByb3ZpZGU6IEtCUV9QT1BPVkVSX1NDUk9MTF9TVFJBVEVHWSxcbiAgICBkZXBzOiBbT3ZlcmxheV0sXG4gICAgdXNlRmFjdG9yeToga2JxUG9wb3ZlclNjcm9sbFN0cmF0ZWd5RmFjdG9yeVxufTtcblxuLyoqIENyZWF0ZXMgYW4gZXJyb3IgdG8gYmUgdGhyb3duIGlmIHRoZSB1c2VyIHN1cHBsaWVkIGFuIGludmFsaWQgcG9wb3ZlciBwb3NpdGlvbi4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRLYnFQb3BvdmVySW52YWxpZFBvc2l0aW9uRXJyb3IocG9zaXRpb246IHN0cmluZykge1xuICAgIHJldHVybiBFcnJvcihgS2JxUG9wb3ZlciBwb3NpdGlvbiBcIiR7cG9zaXRpb259XCIgaXMgaW52YWxpZC5gKTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdba2JxUG9wb3Zlcl0nLFxuICAgIGV4cG9ydEFzOiAna2JxUG9wb3ZlcicsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2NsYXNzLmticS1wb3BvdmVyX29wZW5dJzogJ2lzT3BlbicsXG4gICAgICAgICdbY2xhc3Mua2JxLWFjdGl2ZV0nOiAnaGFzQ2xpY2tUcmlnZ2VyICYmIGlzT3BlbicsXG4gICAgICAgICcoa2V5ZG93biknOiAnaGFuZGxlS2V5ZG93bigkZXZlbnQpJyxcbiAgICAgICAgJyh0b3VjaGVuZCknOiAnaGFuZGxlVG91Y2hlbmQoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticVBvcG92ZXJUcmlnZ2VyIGV4dGVuZHMgS2JxUG9wVXBUcmlnZ2VyPEticVBvcG92ZXJDb21wb25lbnQ+IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgcHJvdGVjdGVkIHNjcm9sbFN0cmF0ZWd5OiAoKSA9PiBTY3JvbGxTdHJhdGVneSA9IGluamVjdChLQlFfUE9QT1ZFUl9TQ1JPTExfU1RSQVRFR1kpO1xuXG4gICAgQElucHV0KCdrYnFQb3BvdmVyVmlzaWJsZScpXG4gICAgZ2V0IHBvcG92ZXJWaXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy52aXNpYmxlO1xuICAgIH1cblxuICAgIHNldCBwb3BvdmVyVmlzaWJsZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBzdXBlci51cGRhdGVWaXNpYmxlKHZhbHVlKTtcbiAgICB9XG5cbiAgICBASW5wdXQoJ2ticVBvcG92ZXJQbGFjZW1lbnQnKVxuICAgIGdldCBwb3BvdmVyUGxhY2VtZW50KCk6IFBvcFVwUGxhY2VtZW50cyB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYWNlbWVudDtcbiAgICB9XG5cbiAgICBzZXQgcG9wb3ZlclBsYWNlbWVudCh2YWx1ZTogUG9wVXBQbGFjZW1lbnRzKSB7XG4gICAgICAgIHN1cGVyLnVwZGF0ZVBsYWNlbWVudCh2YWx1ZSk7XG4gICAgfVxuXG4gICAgQElucHV0KCdrYnFQb3BvdmVyUGxhY2VtZW50UHJpb3JpdHknKVxuICAgIGdldCBwb3BvdmVyUGxhY2VtZW50UHJpb3JpdHkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYWNlbWVudFByaW9yaXR5O1xuICAgIH1cblxuICAgIHNldCBwb3BvdmVyUGxhY2VtZW50UHJpb3JpdHkodmFsdWUpIHtcbiAgICAgICAgc3VwZXIudXBkYXRlUGxhY2VtZW50UHJpb3JpdHkodmFsdWUpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpXG4gICAgZ2V0IGhhc0JhY2tkcm9wKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGFzQmFja2Ryb3A7XG4gICAgfVxuXG4gICAgc2V0IGhhc0JhY2tkcm9wKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2hhc0JhY2tkcm9wID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9oYXNCYWNrZHJvcDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCdrYnFQb3BvdmVySGVhZGVyJylcbiAgICBnZXQgaGVhZGVyKCk6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5faGVhZGVyO1xuICAgIH1cblxuICAgIHNldCBoZWFkZXIodmFsdWU6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT4pIHtcbiAgICAgICAgdGhpcy5faGVhZGVyID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfaGVhZGVyOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQElucHV0KCdrYnFQb3BvdmVyQ29udGVudCcpXG4gICAgZ2V0IGNvbnRlbnQoKTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jb250ZW50O1xuICAgIH1cblxuICAgIHNldCBjb250ZW50KHZhbHVlOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+KSB7XG4gICAgICAgIHRoaXMuX2NvbnRlbnQgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcbiAgICB9XG5cbiAgICBASW5wdXQoJ2ticVBvcG92ZXJGb290ZXInKVxuICAgIGdldCBmb290ZXIoKTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9mb290ZXI7XG4gICAgfVxuXG4gICAgc2V0IGZvb3Rlcih2YWx1ZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pikge1xuICAgICAgICB0aGlzLl9mb290ZXIgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLnVwZGF0ZURhdGEoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9mb290ZXI6IHN0cmluZyB8IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBASW5wdXQoJ2ticVBvcG92ZXJEaXNhYmxlZCcpXG4gICAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gICAgfVxuXG4gICAgc2V0IGRpc2FibGVkKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX2Rpc2FibGVkID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcblxuICAgICAgICBpZiAodGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHRoaXMuaGlkZSgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgQElucHV0KCdrYnFUcmlnZ2VyJylcbiAgICBnZXQgdHJpZ2dlcigpOiBzdHJpbmcge1xuICAgICAgICByZXR1cm4gdGhpcy5fdHJpZ2dlcjtcbiAgICB9XG5cbiAgICBzZXQgdHJpZ2dlcih2YWx1ZTogc3RyaW5nKSB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fdHJpZ2dlciA9IHZhbHVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fdHJpZ2dlciA9IGAke1BvcFVwVHJpZ2dlcnMuQ2xpY2t9LCAke1BvcFVwVHJpZ2dlcnMuS2V5ZG93bn1gO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5pbml0TGlzdGVuZXJzKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfdHJpZ2dlcjogc3RyaW5nID0gYCR7UG9wVXBUcmlnZ2Vycy5DbGlja30sICR7UG9wVXBUcmlnZ2Vycy5LZXlkb3dufWA7XG5cbiAgICBASW5wdXQoJ2ticVBvcG92ZXJTaXplJylcbiAgICBnZXQgc2l6ZSgpOiBQb3BVcFNpemVzIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3NpemU7XG4gICAgfVxuXG4gICAgc2V0IHNpemUodmFsdWU6IFBvcFVwU2l6ZXMpIHtcbiAgICAgICAgaWYgKFtQb3BVcFNpemVzLlNtYWxsLCBQb3BVcFNpemVzLk1lZGl1bSwgUG9wVXBTaXplcy5MYXJnZV0uaW5jbHVkZXModmFsdWUpKSB7XG4gICAgICAgICAgICB0aGlzLl9zaXplID0gdmFsdWU7XG5cbiAgICAgICAgICAgIHRoaXMudXBkYXRlQ2xhc3NNYXAoKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuX3NpemUgPSBQb3BVcFNpemVzLk1lZGl1bTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgX3NpemU6IFBvcFVwU2l6ZXMgPSBQb3BVcFNpemVzLk1lZGl1bTtcblxuICAgIEBJbnB1dCgna2JxUG9wb3ZlckNsYXNzJylcbiAgICBnZXQgY3VzdG9tQ2xhc3MoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jdXN0b21DbGFzcztcbiAgICB9XG5cbiAgICBzZXQgY3VzdG9tQ2xhc3ModmFsdWU6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9jdXN0b21DbGFzcyA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMudXBkYXRlQ2xhc3NNYXAoKTtcbiAgICB9XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBoYXNDbG9zZUJ1dHRvbigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hhc0Nsb3NlQnV0dG9uO1xuICAgIH1cbiAgICBzZXQgaGFzQ2xvc2VCdXR0b24odmFsdWUpIHtcbiAgICAgICAgdGhpcy5faGFzQ2xvc2VCdXR0b24gPSB2YWx1ZTtcbiAgICAgICAgdGhpcy51cGRhdGVEYXRhKCk7XG4gICAgfVxuICAgIHByaXZhdGUgX2hhc0Nsb3NlQnV0dG9uID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBDb250cm9scyB0aGUgYmVoYXZpb3Igb2YgY2xvc2luZyB0aGUgY29tcG9uZW50IG9uIHNjcm9sbC5cbiAgICAgKiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgZmFsc2VgLlxuICAgICAqIFVzZSBDbG9zZVNjcm9sbFN0cmF0ZWd5IGFzIGFsdGVybmF0aXZlXG4gICAgICovXG4gICAgQElucHV0KClcbiAgICBnZXQgY2xvc2VPblNjcm9sbCgpOiBib29sZWFuIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jbG9zZU9uU2Nyb2xsO1xuICAgIH1cblxuICAgIHNldCBjbG9zZU9uU2Nyb2xsKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2Nsb3NlT25TY3JvbGwgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2Nsb3NlT25TY3JvbGw6IGJvb2xlYW4gfCBudWxsID0gbnVsbDtcblxuICAgIGdldCBoYXNDbGlja1RyaWdnZXIoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnRyaWdnZXIuaW5jbHVkZXMoUG9wVXBUcmlnZ2Vycy5DbGljayk7XG4gICAgfVxuXG4gICAgQElucHV0KCkgYmFja2Ryb3BDbGFzczogc3RyaW5nID0gJ2Nkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wJztcblxuICAgIC8vIEBUT0RPIGFkZCByZWFsaXphdGlvbiBmb3IgYXJyb3cgKCNEUy0yNTE0KVxuICAgIGFycm93OiBib29sZWFuID0gdHJ1ZTtcblxuICAgIEBPdXRwdXQoJ2ticVBvcG92ZXJQbGFjZW1lbnRDaGFuZ2UnKSBwbGFjZW1lbnRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBAT3V0cHV0KCdrYnFQb3BvdmVyVmlzaWJsZUNoYW5nZScpIHZpc2libGVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBwcm90ZWN0ZWQgb3JpZ2luU2VsZWN0b3IgPSAnLmticS1wb3BvdmVyJztcblxuICAgIHByb3RlY3RlZCBnZXQgb3ZlcmxheUNvbmZpZygpOiBPdmVybGF5Q29uZmlnIHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHBhbmVsQ2xhc3M6ICdrYnEtcG9wb3Zlcl9fcGFuZWwnLFxuICAgICAgICAgICAgaGFzQmFja2Ryb3A6IHRoaXMuaGFzQmFja2Ryb3AsXG4gICAgICAgICAgICBiYWNrZHJvcENsYXNzOiB0aGlzLmJhY2tkcm9wQ2xhc3NcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmNsb3NlT25TY3JvbGwgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMuc2Nyb2xsRGlzcGF0Y2hlci5zY3JvbGxlZCgpLnN1YnNjcmliZSgoc2Nyb2xsYWJsZTogQ2RrU2Nyb2xsYWJsZSB8IHZvaWQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoIXNjcm9sbGFibGU/LmdldEVsZW1lbnRSZWYoKS5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5jb250YWlucygna2JxLWhpZGUtbmVzdGVkLXBvcHVwJykpIHJldHVybjtcblxuICAgICAgICAgICAgICAgIGNvbnN0IHBhcmVudFJlY3RzID0gc2Nyb2xsYWJsZS5nZXRFbGVtZW50UmVmKCkubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjaGlsZFJlY3RzID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoY2hpbGRSZWN0cy5ib3R0b20gPCBwYXJlbnRSZWN0cy50b3AgfHwgY2hpbGRSZWN0cy50b3AgPiBwYXJlbnRSZWN0cy5ib3R0b20pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5oaWRlKCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICB1cGRhdGVEYXRhKCkge1xuICAgICAgICBpZiAoIXRoaXMuaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuaW5zdGFuY2UuaGVhZGVyID0gdGhpcy5oZWFkZXI7XG4gICAgICAgIHRoaXMuaW5zdGFuY2UuY29udGVudCA9IHRoaXMuY29udGVudDtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5mb290ZXIgPSB0aGlzLmZvb3RlcjtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5oYXNDbG9zZUJ1dHRvbiA9IHRoaXMuaGFzQ2xvc2VCdXR0b247XG5cbiAgICAgICAgdGhpcy5pbnN0YW5jZS51cGRhdGVUcmFwRm9jdXModGhpcy50cmlnZ2VyICE9PSBQb3BVcFRyaWdnZXJzLkZvY3VzKTtcblxuICAgICAgICBpZiAodGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgIHRoaXMudXBkYXRlUG9zaXRpb24odHJ1ZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogVXBkYXRlcyB0aGUgcG9zaXRpb24gb2YgdGhlIGN1cnJlbnQgcG9wb3Zlci4gKi9cbiAgICB1cGRhdGVQb3NpdGlvbihyZWFwcGx5UG9zaXRpb246IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgICAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLmNyZWF0ZU92ZXJsYXkoKTtcblxuICAgICAgICBjb25zdCBwb3NpdGlvbiA9ICh0aGlzLm92ZXJsYXlSZWYuZ2V0Q29uZmlnKCkucG9zaXRpb25TdHJhdGVneSBhcyBGbGV4aWJsZUNvbm5lY3RlZFBvc2l0aW9uU3RyYXRlZ3kpXG4gICAgICAgICAgICAud2l0aFBvc2l0aW9ucyh0aGlzLmdldEFkanVzdGVkUG9zaXRpb25zKCkpXG4gICAgICAgICAgICAud2l0aFB1c2godHJ1ZSk7XG5cbiAgICAgICAgaWYgKHJlYXBwbHlQb3NpdGlvbikge1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiBwb3NpdGlvbi5yZWFwcGx5TGFzdFBvc2l0aW9uKCkpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0T3ZlcmxheUhhbmRsZUNvbXBvbmVudFR5cGUoKTogVHlwZTxLYnFQb3BvdmVyQ29tcG9uZW50PiB7XG4gICAgICAgIHJldHVybiBLYnFQb3BvdmVyQ29tcG9uZW50O1xuICAgIH1cblxuICAgIHVwZGF0ZUNsYXNzTWFwKG5ld1BsYWNlbWVudDogc3RyaW5nID0gdGhpcy5wbGFjZW1lbnQpIHtcbiAgICAgICAgaWYgKCF0aGlzLmluc3RhbmNlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmluc3RhbmNlLnVwZGF0ZUNsYXNzTWFwKFBPU0lUSU9OX1RPX0NTU19NQVBbbmV3UGxhY2VtZW50XSwgdGhpcy5jdXN0b21DbGFzcywgdGhpcy5zaXplKTtcbiAgICAgICAgdGhpcy5pbnN0YW5jZS5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICBjbG9zaW5nQWN0aW9uc0ZvckNsaWNrKCkge1xuICAgICAgICBpZiAodGhpcy5oYXNDbGlja1RyaWdnZXIpIHtcbiAgICAgICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAgICAgdGhpcy5vdmVybGF5UmVmIS5iYWNrZHJvcENsaWNrKCksXG4gICAgICAgICAgICAgICAgdGhpcy5oYXNCYWNrZHJvcCA/IE5FVkVSIDogdGhpcy5vdmVybGF5UmVmIS5vdXRzaWRlUG9pbnRlckV2ZW50cygpXG4gICAgICAgICAgICBdO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIFtdO1xuICAgIH1cblxuICAgIGNsb3NpbmdBY3Rpb25zKCkge1xuICAgICAgICByZXR1cm4gbWVyZ2UoLi4udGhpcy5jbG9zaW5nQWN0aW9uc0ZvckNsaWNrKCksIHRoaXMuY2xvc2VPblNjcm9sbCA/IHRoaXMuc2Nyb2xsRGlzcGF0Y2hlci5zY3JvbGxlZCgpIDogTkVWRVIpO1xuICAgIH1cbn1cbiIsIjxkaXZcbiAgICBjbGFzcz1cImticS1wb3BvdmVyXCJcbiAgICBbY2RrVHJhcEZvY3VzXT1cImlzVHJhcEZvY3VzXCJcbiAgICBbY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVdPVwiaXNUcmFwRm9jdXNcIlxuICAgIFtuZ0NsYXNzXT1cImNsYXNzTWFwXCJcbiAgICAoQHN0YXRlLmRvbmUpPVwiYW5pbWF0aW9uRG9uZSgkZXZlbnQpXCJcbiAgICAoQHN0YXRlLnN0YXJ0KT1cImFuaW1hdGlvblN0YXJ0KClcIlxuICAgIFtAc3RhdGVdPVwidmlzaWJpbGl0eVwiXG4+XG4gICAgPGRpdlxuICAgICAgICBjbGFzcz1cImticS1wb3BvdmVyX19jb250YWluZXJcIlxuICAgICAgICBbY2xhc3Mua2JxLXBvcG92ZXJfX2NvbnRhaW5lcl93aXRoLWZvb3Rlcl09XCJmb290ZXJcIlxuICAgICAgICBbY2xhc3Mua2JxLXBvcG92ZXJfX2NvbnRhaW5lcl93aXRoLWhlYWRlcl09XCJoZWFkZXJcIlxuICAgID5cbiAgICAgICAgQGlmIChoZWFkZXIpIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cImticS1wb3BvdmVyX19oZWFkZXJcIlxuICAgICAgICAgICAgICAgIFtjbGFzcy5rYnEtcG9wb3Zlcl9faGVhZGVyX3RvcC1vdmVyZmxvd109XCJpc0NvbnRlbnRUb3BPdmVyZmxvd1wiXG4gICAgICAgICAgICAgICAgW2NsYXNzLmticS1wb3BvdmVyX19oZWFkZXJfd2l0aC1jbG9zZS1idXR0b25dPVwiaGFzQ2xvc2VCdXR0b25cIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIEBpZiAoaXNUZW1wbGF0ZVJlZihoZWFkZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShoZWFkZXIpXCIgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmICghaXNUZW1wbGF0ZVJlZihoZWFkZXIpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtcG9wb3Zlcl9faGVhZGVyLXRleHRcIj57eyBoZWFkZXIgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfVxuXG4gICAgICAgIEBpZiAoY29udGVudCkge1xuICAgICAgICAgICAgPGRpdiAjcG9wb3ZlckNvbnRlbnQgY2xhc3M9XCJrYnEtcG9wb3Zlcl9fY29udGVudCBrYnEtc2Nyb2xsYmFyXCIgKGNka09ic2VydmVDb250ZW50KT1cIm9uQ29udGVudENoYW5nZSgpXCI+XG4gICAgICAgICAgICAgICAgQGlmIChoYXNDbG9zZUJ1dHRvbiAmJiAhaGVhZGVyKSB7XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJrYnEtcG9wb3Zlcl9fY2xvc2UtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiY2xvc2VCdXR0b25cIiAvPlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgQGlmIChpc1RlbXBsYXRlUmVmKGNvbnRlbnQpKSB7XG4gICAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiJGFueShjb250ZW50KVwiIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoIWlzVGVtcGxhdGVSZWYoY29udGVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgPGRpdj57eyBjb250ZW50IH19PC9kaXY+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cblxuICAgICAgICBAaWYgKGZvb3Rlcikge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImticS1wb3BvdmVyX19mb290ZXJcIiBbY2xhc3Mua2JxLXBvcG92ZXJfX2Zvb3Rlcl9ib3R0b20tb3ZlcmZsb3ddPVwiaXNDb250ZW50Qm90dG9tT3ZlcmZsb3dcIj5cbiAgICAgICAgICAgICAgICBAaWYgKGlzVGVtcGxhdGVSZWYoZm9vdGVyKSkge1xuICAgICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cIiRhbnkoZm9vdGVyKVwiIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIEBpZiAoIWlzVGVtcGxhdGVSZWYoZm9vdGVyKSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7IGZvb3RlciB9fTwvZGl2PlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG5cbiAgICBAaWYgKGhhc0Nsb3NlQnV0dG9uICYmIGhlYWRlcikge1xuICAgICAgICA8ZGl2IGNsYXNzPVwia2JxLXBvcG92ZXJfX2Nsb3NlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNsb3NlQnV0dG9uXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgPG5nLXRlbXBsYXRlICNjbG9zZUJ1dHRvbj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImticS1wb3BvdmVyX19jbG9zZVwiPlxuICAgICAgICAgICAgPGJ1dHRvbiBrYnEtYnV0dG9uIGNsYXNzPVwia2JxLWJ1dHRvbl90cmFuc3BhcmVudFwiIFtjb2xvcl09XCJjb21wb25lbnRDb2xvcnMuQ29udHJhc3RcIiAoY2xpY2spPVwiaGlkZSgwKVwiPlxuICAgICAgICAgICAgICAgIDxpIGticS1pY29uPVwia2JxLXhtYXJrXzE2XCIgW2NvbG9yXT1cImNvbXBvbmVudENvbG9ycy5Db250cmFzdFwiPjwvaT5cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L25nLXRlbXBsYXRlPlxuXG4gICAgPGRpdiBjbGFzcz1cImticS1wb3BvdmVyX19hcnJvd1wiPjwvZGl2PlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ContentObserver } from '@angular/cdk/observers';
|
|
2
|
+
import { SharedResizeObserver } from '@angular/cdk/observers/private';
|
|
3
|
+
import { Directive, inject } from '@angular/core';
|
|
2
4
|
import { KbqOption } from '@koobiq/components/core';
|
|
3
5
|
import { KbqTooltipTrigger } from '@koobiq/components/tooltip';
|
|
4
6
|
import * as i0 from "@angular/core";
|
|
@@ -13,34 +15,30 @@ export class KbqOptionTooltip extends KbqTooltipTrigger {
|
|
|
13
15
|
constructor(option) {
|
|
14
16
|
super();
|
|
15
17
|
this.option = option;
|
|
18
|
+
this.resizeObserver = inject(SharedResizeObserver);
|
|
19
|
+
this.resizeObserverSubscription = null;
|
|
20
|
+
this.contentObserver = inject(ContentObserver);
|
|
21
|
+
this.contentObserverSubscription = null;
|
|
16
22
|
}
|
|
17
23
|
ngAfterViewInit() {
|
|
18
24
|
this.content = this.option.viewValue;
|
|
19
|
-
this.
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
characterData: true,
|
|
23
|
-
attributes: false,
|
|
24
|
-
childList: true,
|
|
25
|
-
subtree: true
|
|
26
|
-
});
|
|
25
|
+
this.contentObserverSubscription = this.contentObserver
|
|
26
|
+
.observe(this.textElement)
|
|
27
|
+
.subscribe(() => (this.content = this.option.viewValue));
|
|
27
28
|
}
|
|
28
29
|
ngOnDestroy() {
|
|
29
30
|
super.ngOnDestroy();
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
this.resizeObserver.disconnect();
|
|
33
|
-
}
|
|
34
|
-
if (this.mutationObserver) {
|
|
35
|
-
this.mutationObserver.disconnect();
|
|
36
|
-
}
|
|
31
|
+
this.resizeObserverSubscription?.unsubscribe();
|
|
32
|
+
this.contentObserverSubscription?.unsubscribe();
|
|
37
33
|
}
|
|
38
34
|
onMouseEnter() {
|
|
39
|
-
this.
|
|
35
|
+
this.resizeObserverSubscription = this.resizeObserver
|
|
36
|
+
.observe(this.textElement)
|
|
37
|
+
.subscribe(() => (this.disabled = !this.isOverflown));
|
|
40
38
|
this.disabled = !this.isOverflown;
|
|
41
39
|
}
|
|
42
40
|
onMouseLeave() {
|
|
43
|
-
this.
|
|
41
|
+
this.resizeObserverSubscription?.unsubscribe();
|
|
44
42
|
this.disabled = true;
|
|
45
43
|
}
|
|
46
44
|
onFocus() {
|
|
@@ -68,4 +66,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.6", ngImpor
|
|
|
68
66
|
}
|
|
69
67
|
}]
|
|
70
68
|
}], ctorParameters: () => [{ type: i1.KbqOption }] });
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
69
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LW9wdGlvbi5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL3NlbGVjdC9zZWxlY3Qtb3B0aW9uLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxFQUFhLE1BQU0sZUFBZSxDQUFDO0FBQzVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7O0FBWS9ELE1BQU0sT0FBTyxnQkFBaUIsU0FBUSxpQkFBaUI7SUFPbkQsSUFBSSxXQUFXO1FBQ1gsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUM7SUFDakQsQ0FBQztJQUVELElBQUksV0FBVztRQUNYLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxXQUFXLENBQUM7SUFDdkUsQ0FBQztJQUVELFlBQW9CLE1BQWlCO1FBQ2pDLEtBQUssRUFBRSxDQUFDO1FBRFEsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQWQ3QixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzlDLCtCQUEwQixHQUF3QixJQUFJLENBQUM7UUFFdkQsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUMsZ0NBQTJCLEdBQXdCLElBQUksQ0FBQztJQVloRSxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFFckMsSUFBSSxDQUFDLDJCQUEyQixHQUFHLElBQUksQ0FBQyxlQUFlO2FBQ2xELE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO2FBQ3pCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxXQUFXO1FBQ1AsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRXBCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUMvQyxJQUFJLENBQUMsMkJBQTJCLEVBQUUsV0FBVyxFQUFFLENBQUM7SUFDcEQsQ0FBQztJQUVELFlBQVk7UUFDUixJQUFJLENBQUMsMEJBQTBCLEdBQUcsSUFBSSxDQUFDLGNBQWM7YUFDaEQsT0FBTyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7YUFDekIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO1FBRTFELElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxZQUFZO1FBQ1IsSUFBSSxDQUFDLDBCQUEwQixFQUFFLFdBQVcsRUFBRSxDQUFDO1FBRS9DLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxPQUFPO1FBQ0gsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUM7UUFFbEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDaEIsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hCLENBQUM7aUlBM0RRLGdCQUFnQjtxSEFBaEIsZ0JBQWdCOzsyRkFBaEIsZ0JBQWdCO2tCQVQ1QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxZQUFZO29CQUN0QixJQUFJLEVBQUU7d0JBQ0YsY0FBYyxFQUFFLGdCQUFnQjt3QkFDaEMsY0FBYyxFQUFFLGdCQUFnQjt3QkFDaEMsU0FBUyxFQUFFLFdBQVc7d0JBQ3RCLFFBQVEsRUFBRSxVQUFVO3FCQUN2QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbnRlbnRPYnNlcnZlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vYnNlcnZlcnMnO1xuaW1wb3J0IHsgU2hhcmVkUmVzaXplT2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvb2JzZXJ2ZXJzL3ByaXZhdGUnO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBpbmplY3QsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgS2JxT3B0aW9uIH0gZnJvbSAnQGtvb2JpcS9jb21wb25lbnRzL2NvcmUnO1xuaW1wb3J0IHsgS2JxVG9vbHRpcFRyaWdnZXIgfSBmcm9tICdAa29vYmlxL2NvbXBvbmVudHMvdG9vbHRpcCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdrYnEtb3B0aW9uJyxcbiAgICBob3N0OiB7XG4gICAgICAgICcobW91c2VlbnRlciknOiAnb25Nb3VzZUVudGVyKCknLFxuICAgICAgICAnKG1vdXNlbGVhdmUpJzogJ29uTW91c2VMZWF2ZSgpJyxcbiAgICAgICAgJyhmb2N1cyknOiAnb25Gb2N1cygpJyxcbiAgICAgICAgJyhibHVyKSc6ICdvbkJsdXIoKSdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIEticU9wdGlvblRvb2x0aXAgZXh0ZW5kcyBLYnFUb29sdGlwVHJpZ2dlciBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZXNpemVPYnNlcnZlciA9IGluamVjdChTaGFyZWRSZXNpemVPYnNlcnZlcik7XG4gICAgcHJpdmF0ZSByZXNpemVPYnNlcnZlclN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uIHwgbnVsbCA9IG51bGw7XG5cbiAgICBwcml2YXRlIGNvbnRlbnRPYnNlcnZlciA9IGluamVjdChDb250ZW50T2JzZXJ2ZXIpO1xuICAgIHByaXZhdGUgY29udGVudE9ic2VydmVyU3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb24gfCBudWxsID0gbnVsbDtcblxuICAgIGdldCB0ZXh0RWxlbWVudCgpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIHJldHVybiB0aGlzLm9wdGlvbi50ZXh0RWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIH1cblxuICAgIGdldCBpc092ZXJmbG93bigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudGV4dEVsZW1lbnQuY2xpZW50V2lkdGggPCB0aGlzLnRleHRFbGVtZW50LnNjcm9sbFdpZHRoO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgb3B0aW9uOiBLYnFPcHRpb24pIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgICAgIHRoaXMuY29udGVudCA9IHRoaXMub3B0aW9uLnZpZXdWYWx1ZTtcblxuICAgICAgICB0aGlzLmNvbnRlbnRPYnNlcnZlclN1YnNjcmlwdGlvbiA9IHRoaXMuY29udGVudE9ic2VydmVyXG4gICAgICAgICAgICAub2JzZXJ2ZSh0aGlzLnRleHRFbGVtZW50KVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiAodGhpcy5jb250ZW50ID0gdGhpcy5vcHRpb24udmlld1ZhbHVlKSk7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKSB7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG5cbiAgICAgICAgdGhpcy5yZXNpemVPYnNlcnZlclN1YnNjcmlwdGlvbj8udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy5jb250ZW50T2JzZXJ2ZXJTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuXG4gICAgb25Nb3VzZUVudGVyKCkge1xuICAgICAgICB0aGlzLnJlc2l6ZU9ic2VydmVyU3Vic2NyaXB0aW9uID0gdGhpcy5yZXNpemVPYnNlcnZlclxuICAgICAgICAgICAgLm9ic2VydmUodGhpcy50ZXh0RWxlbWVudClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gKHRoaXMuZGlzYWJsZWQgPSAhdGhpcy5pc092ZXJmbG93bikpO1xuXG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSAhdGhpcy5pc092ZXJmbG93bjtcbiAgICB9XG5cbiAgICBvbk1vdXNlTGVhdmUoKSB7XG4gICAgICAgIHRoaXMucmVzaXplT2JzZXJ2ZXJTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9IHRydWU7XG4gICAgfVxuXG4gICAgb25Gb2N1cygpIHtcbiAgICAgICAgdGhpcy5kaXNhYmxlZCA9ICF0aGlzLmlzT3ZlcmZsb3duO1xuXG4gICAgICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgdGhpcy5zaG93KCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkJsdXIoKSB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmhpZGUoKTtcbiAgICB9XG59XG4iXX0=
|