@design-system-rte/angular 1.3.0 → 1.4.1-rc1
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/esm2022/lib/components/badge/badge.component.mjs +7 -3
- package/esm2022/lib/components/breadcrumbs/breadcrumb-item/breadcrumb-item.component.mjs +1 -1
- package/esm2022/lib/components/breadcrumbs/breadcrumbs.component.mjs +2 -2
- package/esm2022/lib/components/chip/chip.component.mjs +4 -3
- package/esm2022/lib/components/dropdown/dropdown-item/dropdown-item.component.mjs +158 -14
- package/esm2022/lib/components/dropdown/dropdown-menu/dropdown-menu.component.mjs +71 -6
- package/esm2022/lib/components/dropdown/dropdown.directive.mjs +54 -40
- package/esm2022/lib/components/dropdown/dropdown.types.mjs +2 -0
- package/esm2022/lib/components/dropdown/index.mjs +1 -3
- package/esm2022/lib/components/icon/icon-map.mjs +117 -112
- package/esm2022/lib/components/segmented-control/segmented-control.component.mjs +5 -3
- package/esm2022/lib/components/select/select-footer.directive.mjs +17 -0
- package/esm2022/lib/components/select/select-header.directive.mjs +17 -0
- package/esm2022/lib/components/select/select.component.mjs +177 -39
- package/esm2022/lib/components/side-nav/nav-item/nav-item.component.mjs +2 -2
- package/esm2022/lib/components/side-nav/nav-menu/nav-menu.component.mjs +2 -2
- package/esm2022/lib/components/split-button/split-button.component.mjs +2 -2
- package/esm2022/lib/components/stepper/stepper.component.mjs +3 -3
- package/esm2022/lib/components/tab/tab-item/tab-item.component.mjs +3 -3
- package/esm2022/lib/components/tab/tab.component.mjs +2 -2
- package/esm2022/lib/components/tag/tag.component.mjs +4 -3
- package/esm2022/public-api.mjs +9 -1
- package/fesm2022/design-system-rte-angular.mjs +654 -265
- package/fesm2022/design-system-rte-angular.mjs.map +1 -1
- package/lib/components/badge/badge.component.d.ts +3 -1
- package/lib/components/badge/badge.directive.d.ts +1 -1
- package/lib/components/chip/chip.component.d.ts +2 -1
- package/lib/components/dropdown/dropdown-item/dropdown-item.component.d.ts +28 -16
- package/lib/components/dropdown/dropdown-menu/dropdown-menu.component.d.ts +14 -3
- package/lib/components/dropdown/dropdown.directive.d.ts +18 -5
- package/lib/components/dropdown/dropdown.types.d.ts +30 -0
- package/lib/components/dropdown/index.d.ts +1 -0
- package/lib/components/icon/icon-map.d.ts +5 -0
- package/lib/components/icon-button/icon-button.component.d.ts +3 -3
- package/lib/components/icon-button-toggle/icon-button-toggle.component.d.ts +2 -2
- package/lib/components/popover/popover.component.d.ts +1 -1
- package/lib/components/segmented-control/segmented-control.component.d.ts +3 -1
- package/lib/components/select/select-footer.directive.d.ts +7 -0
- package/lib/components/select/select-header.directive.d.ts +7 -0
- package/lib/components/select/select.component.d.ts +35 -16
- package/lib/components/split-button/split-button.component.d.ts +2 -2
- package/lib/components/tab/tab.component.d.ts +1 -1
- package/lib/components/tag/tag.component.d.ts +4 -3
- package/lib/components/text-input/base-text-input/base-text-input.component.d.ts +2 -2
- package/lib/components/tooltip/tooltip.component.d.ts +1 -1
- package/package.json +2 -2
- package/public-api.d.ts +8 -0
|
@@ -23,6 +23,7 @@ export class DropdownDirective {
|
|
|
23
23
|
this.rteDropdownAutofocus = input(true);
|
|
24
24
|
this.rteDropdownAutoOpen = input(true);
|
|
25
25
|
this.rteDropdownWidth = input(null);
|
|
26
|
+
this.rteCloseOnItemClick = input(true);
|
|
26
27
|
this.menuEvent = output();
|
|
27
28
|
this.dropdownId = `dropdown_${++DropdownDirective.idCounter}`;
|
|
28
29
|
this.overlayService = inject(OverlayService);
|
|
@@ -34,6 +35,7 @@ export class DropdownDirective {
|
|
|
34
35
|
this.cdr = inject(ChangeDetectorRef);
|
|
35
36
|
this.clickedOutside = output();
|
|
36
37
|
this.closedDropdown = output();
|
|
38
|
+
this.menuChangeEvent = output();
|
|
37
39
|
this.isActive = signal(false);
|
|
38
40
|
this.menuInputs = computed(() => {
|
|
39
41
|
const menu = this.menu();
|
|
@@ -48,20 +50,25 @@ export class DropdownDirective {
|
|
|
48
50
|
};
|
|
49
51
|
});
|
|
50
52
|
this.dropdownMenuRef = null;
|
|
53
|
+
this.itemEventSubscription = null;
|
|
51
54
|
this.handleClickOutside = (event) => {
|
|
52
55
|
const target = event.target;
|
|
53
|
-
const isMenuItemClick = target.closest(".rte-dropdown-item") !== null;
|
|
54
|
-
if (isMenuItemClick) {
|
|
55
|
-
return;
|
|
56
|
-
}
|
|
57
56
|
const clickedInTrigger = this.hostElement.contains(target);
|
|
58
|
-
const
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
57
|
+
const dropdownMenuElement = this.dropdownMenuRef?.location.nativeElement;
|
|
58
|
+
const clickedInThisMenu = dropdownMenuElement ? dropdownMenuElement.contains(target) : false;
|
|
59
|
+
if (clickedInTrigger || clickedInThisMenu) {
|
|
60
|
+
return;
|
|
62
61
|
}
|
|
62
|
+
this.closeDropdown();
|
|
63
|
+
this.clickedOutside.emit();
|
|
63
64
|
};
|
|
64
65
|
this.hostElement = this.elementRef.nativeElement;
|
|
66
|
+
this.destroyRef.onDestroy(() => {
|
|
67
|
+
this.unsubscribeItemEvent();
|
|
68
|
+
this.removeClickOutsideListener();
|
|
69
|
+
this.dropdownMenuRef?.destroy();
|
|
70
|
+
this.dropdownMenuRef = null;
|
|
71
|
+
});
|
|
65
72
|
effect(() => {
|
|
66
73
|
const isOpen = this.rteDropdownIsOpen();
|
|
67
74
|
if (isOpen) {
|
|
@@ -92,9 +99,12 @@ export class DropdownDirective {
|
|
|
92
99
|
}
|
|
93
100
|
}
|
|
94
101
|
onTriggerKeyEvent(event) {
|
|
95
|
-
|
|
102
|
+
const shouldOpen = event.key === SPACE_KEY ||
|
|
96
103
|
event.key === ENTER_KEY ||
|
|
97
|
-
(event.key === ARROW_DOWN_KEY && this.trigger()?.rteDropdownTriggerActivateWithArrowDown())
|
|
104
|
+
(event.key === ARROW_DOWN_KEY && this.trigger()?.rteDropdownTriggerActivateWithArrowDown());
|
|
105
|
+
if (shouldOpen) {
|
|
106
|
+
event.preventDefault();
|
|
107
|
+
event.stopPropagation();
|
|
98
108
|
this.showDropdownMenu();
|
|
99
109
|
if (this.rteDropdownAutofocus()) {
|
|
100
110
|
waitForNextFrame(() => focusDropdownFirstElement(this.dropdownId));
|
|
@@ -103,31 +113,32 @@ export class DropdownDirective {
|
|
|
103
113
|
}
|
|
104
114
|
onMenuEvent(event) {
|
|
105
115
|
this.menuEvent.emit(event);
|
|
106
|
-
this.
|
|
107
|
-
|
|
116
|
+
if (!event.item?.children?.length && this.rteCloseOnItemClick()) {
|
|
117
|
+
this.isActive.set(false);
|
|
118
|
+
this.dropdownService.closeAllMenus();
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
onMenuChangeEvent(event) {
|
|
122
|
+
this.menuEvent.emit(event);
|
|
108
123
|
}
|
|
109
124
|
ngAfterContentInit() {
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
this.showDropdownMenu();
|
|
122
|
-
});
|
|
123
|
-
this.trigger()?.dropdownTriggerCloseDropdown.subscribe(() => {
|
|
124
|
-
this.closeDropdown();
|
|
125
|
-
});
|
|
126
|
-
}
|
|
125
|
+
const trigger = this.trigger();
|
|
126
|
+
if (!trigger)
|
|
127
|
+
return;
|
|
128
|
+
const triggerSubscriptions = [
|
|
129
|
+
trigger.dropdownTriggered.subscribe(() => this.onTrigger()),
|
|
130
|
+
trigger.dropdownKeyDown.subscribe((event) => this.onTriggerKeyEvent(event)),
|
|
131
|
+
trigger.dropdownTriggerClearContent.subscribe(() => this.closeDropdown()),
|
|
132
|
+
trigger.dropdownTriggerOpenDropdown.subscribe(() => this.showDropdownMenu()),
|
|
133
|
+
trigger.dropdownTriggerCloseDropdown.subscribe(() => this.closeDropdown()),
|
|
134
|
+
];
|
|
135
|
+
this.destroyRef.onDestroy(() => triggerSubscriptions.forEach((subscription) => subscription.unsubscribe()));
|
|
127
136
|
}
|
|
128
137
|
showDropdownMenu() {
|
|
138
|
+
this.unsubscribeItemEvent();
|
|
129
139
|
if (this.dropdownMenuRef) {
|
|
130
140
|
this.dropdownMenuRef.destroy();
|
|
141
|
+
this.dropdownMenuRef = null;
|
|
131
142
|
}
|
|
132
143
|
this.dropdownMenuRef = this.overlayService.create(DropdownMenuComponent, this.viewContainerRef);
|
|
133
144
|
const menuId = this.rteDropdownId() || this.dropdownId;
|
|
@@ -136,12 +147,11 @@ export class DropdownDirective {
|
|
|
136
147
|
this.assignInputs();
|
|
137
148
|
this.positionDropdownMenu(this.rteDropdownPosition());
|
|
138
149
|
this.addClickOutsideListener();
|
|
139
|
-
this.dropdownMenuRef.instance.itemEvent.subscribe((event) =>
|
|
140
|
-
this.onMenuEvent(event);
|
|
141
|
-
});
|
|
150
|
+
this.itemEventSubscription = this.dropdownMenuRef.instance.itemEvent.subscribe((event) => this.onMenuEvent(event));
|
|
142
151
|
const dropdownStateSubscription = this.dropdownService.state$.subscribe((state) => {
|
|
143
152
|
if (state === null) {
|
|
144
153
|
if (this.dropdownMenuRef) {
|
|
154
|
+
this.unsubscribeItemEvent();
|
|
145
155
|
this.dropdownMenuRef.destroy();
|
|
146
156
|
this.dropdownMenuRef = null;
|
|
147
157
|
this.removeClickOutsideListener();
|
|
@@ -187,7 +197,13 @@ export class DropdownDirective {
|
|
|
187
197
|
if (triggerElement) {
|
|
188
198
|
this.renderer.setStyle(dropdownMenuElement, "display", "block");
|
|
189
199
|
this.cdr.detectChanges();
|
|
190
|
-
const computedPosition = position === "auto"
|
|
200
|
+
const computedPosition = position === "auto"
|
|
201
|
+
? getAutoPlacementDropdown({
|
|
202
|
+
hostElement: triggerElement,
|
|
203
|
+
castedElement: dropdownMenuElement,
|
|
204
|
+
defaultPosition: "bottom",
|
|
205
|
+
})
|
|
206
|
+
: position;
|
|
191
207
|
const autoAlignment = this.rteDropdownAlignment() ?? getAutoAlignment(triggerElement, dropdownMenuElement, computedPosition);
|
|
192
208
|
const computedCoordinates = getCoordinates(computedPosition, triggerElement, dropdownMenuElement.children[0], this.rteDropdownOffset(), autoAlignment);
|
|
193
209
|
this.renderer.setStyle(dropdownMenuElement, "top", `${computedCoordinates.top}px`);
|
|
@@ -196,11 +212,9 @@ export class DropdownDirective {
|
|
|
196
212
|
}
|
|
197
213
|
}
|
|
198
214
|
}
|
|
199
|
-
|
|
200
|
-
this.
|
|
201
|
-
|
|
202
|
-
this.dropdownMenuRef.destroy();
|
|
203
|
-
}
|
|
215
|
+
unsubscribeItemEvent() {
|
|
216
|
+
this.itemEventSubscription?.unsubscribe();
|
|
217
|
+
this.itemEventSubscription = null;
|
|
204
218
|
}
|
|
205
219
|
addClickOutsideListener() {
|
|
206
220
|
document.addEventListener("mousedown", this.handleClickOutside);
|
|
@@ -216,7 +230,7 @@ export class DropdownDirective {
|
|
|
216
230
|
}, DROPDOWN_ANIMATION_DURATION);
|
|
217
231
|
}
|
|
218
232
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
219
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.14", type: DropdownDirective, isStandalone: true, selector: "[rteDropdown]", inputs: { rteDropdownId: { classPropertyName: "rteDropdownId", publicName: "rteDropdownId", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownPosition: { classPropertyName: "rteDropdownPosition", publicName: "rteDropdownPosition", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownAlignment: { classPropertyName: "rteDropdownAlignment", publicName: "rteDropdownAlignment", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownIsOpen: { classPropertyName: "rteDropdownIsOpen", publicName: "rteDropdownIsOpen", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownOffset: { classPropertyName: "rteDropdownOffset", publicName: "rteDropdownOffset", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownAutofocus: { classPropertyName: "rteDropdownAutofocus", publicName: "rteDropdownAutofocus", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownAutoOpen: { classPropertyName: "rteDropdownAutoOpen", publicName: "rteDropdownAutoOpen", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownWidth: { classPropertyName: "rteDropdownWidth", publicName: "rteDropdownWidth", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuEvent: "menuEvent", clickedOutside: "clickedOutside", closedDropdown: "closedDropdown" }, host: { properties: { "class.dropdown": "true", "attr.data-dropdown-id": "dropdownId" } }, queries: [{ propertyName: "trigger", first: true, predicate: DropdownTriggerDirective, descendants: true, isSignal: true }, { propertyName: "menu", first: true, predicate: DropdownMenuComponent, descendants: true, isSignal: true }], ngImport: i0 }); }
|
|
233
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.2.14", type: DropdownDirective, isStandalone: true, selector: "[rteDropdown]", inputs: { rteDropdownId: { classPropertyName: "rteDropdownId", publicName: "rteDropdownId", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownPosition: { classPropertyName: "rteDropdownPosition", publicName: "rteDropdownPosition", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownAlignment: { classPropertyName: "rteDropdownAlignment", publicName: "rteDropdownAlignment", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownIsOpen: { classPropertyName: "rteDropdownIsOpen", publicName: "rteDropdownIsOpen", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownOffset: { classPropertyName: "rteDropdownOffset", publicName: "rteDropdownOffset", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownAutofocus: { classPropertyName: "rteDropdownAutofocus", publicName: "rteDropdownAutofocus", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownAutoOpen: { classPropertyName: "rteDropdownAutoOpen", publicName: "rteDropdownAutoOpen", isSignal: true, isRequired: false, transformFunction: null }, rteDropdownWidth: { classPropertyName: "rteDropdownWidth", publicName: "rteDropdownWidth", isSignal: true, isRequired: false, transformFunction: null }, rteCloseOnItemClick: { classPropertyName: "rteCloseOnItemClick", publicName: "rteCloseOnItemClick", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { menuEvent: "menuEvent", clickedOutside: "clickedOutside", closedDropdown: "closedDropdown", menuChangeEvent: "menuChangeEvent" }, host: { properties: { "class.dropdown": "true", "attr.data-dropdown-id": "dropdownId" } }, queries: [{ propertyName: "trigger", first: true, predicate: DropdownTriggerDirective, descendants: true, isSignal: true }, { propertyName: "menu", first: true, predicate: DropdownMenuComponent, descendants: true, isSignal: true }], ngImport: i0 }); }
|
|
220
234
|
}
|
|
221
235
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: DropdownDirective, decorators: [{
|
|
222
236
|
type: Directive,
|
|
@@ -229,4 +243,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
|
|
|
229
243
|
standalone: true,
|
|
230
244
|
}]
|
|
231
245
|
}], ctorParameters: () => [] });
|
|
232
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFFakIsUUFBUSxFQUNSLFlBQVksRUFDWixVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDN0csT0FBTyxFQUNMLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNmLE1BQU0seURBQXlELENBQUM7QUFDakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDOUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFckgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFVN0QsTUFBTSxPQUFPLGlCQUFpQjthQUNiLGNBQVMsR0FBRyxDQUFDLEFBQUosQ0FBSztJQTRDN0I7UUExQ1MsWUFBTyxHQUFHLFlBQVksQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBQ2pELFNBQUksR0FBRyxZQUFZLENBQUMscUJBQXFCLENBQUMsQ0FBQztRQUUzQyxrQkFBYSxHQUFHLEtBQUssQ0FBcUIsU0FBUyxDQUFDLENBQUM7UUFDckQsd0JBQW1CLEdBQUcsS0FBSyxDQUFXLFFBQVEsQ0FBQyxDQUFDO1FBQ2hELHlCQUFvQixHQUFHLEtBQUssQ0FBWSxPQUFPLENBQUMsQ0FBQztRQUNqRCxzQkFBaUIsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDMUMsc0JBQWlCLEdBQUcsS0FBSyxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3JDLHlCQUFvQixHQUFHLEtBQUssQ0FBVSxJQUFJLENBQUMsQ0FBQztRQUM1Qyx3QkFBbUIsR0FBRyxLQUFLLENBQVUsSUFBSSxDQUFDLENBQUM7UUFDM0MscUJBQWdCLEdBQUcsS0FBSyxDQUFnQixJQUFJLENBQUMsQ0FBQztRQUU5QyxjQUFTLEdBQUcsTUFBTSxFQUFnQyxDQUFDO1FBQ25ELGVBQVUsR0FBRyxZQUFZLEVBQUUsaUJBQWlCLENBQUMsU0FBUyxFQUFFLENBQUM7UUFFekQsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDeEMsb0JBQWUsR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDMUMscUJBQWdCLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDNUMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNoQyxhQUFRLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRTdCLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDaEMsUUFBRyxHQUFHLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBRWhDLG1CQUFjLEdBQUcsTUFBTSxFQUFRLENBQUM7UUFDaEMsbUJBQWMsR0FBRyxNQUFNLEVBQVEsQ0FBQztRQUVoQyxhQUFRLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpCLGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFO1lBQ2xDLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7Z0JBQ1YsT0FBTyxJQUFJLENBQUM7WUFDZCxDQUFDO1lBQ0QsT0FBTztnQkFDTCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRTtnQkFDbkIsY0FBYyxFQUFFLElBQUksQ0FBQyxlQUFlLEVBQUUsRUFBRSxXQUFXO2dCQUNuRCxjQUFjLEVBQUUsSUFBSSxDQUFDLGVBQWUsRUFBRSxFQUFFLFdBQVc7Z0JBQ25ELEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFO2FBQ3BCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQTJCSCxvQkFBZSxHQUErQyxJQUFJLENBQUM7UUE0SmxELHVCQUFrQixHQUFHLENBQUMsS0FBaUIsRUFBUSxFQUFFO1lBQ2hFLE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxNQUFpQixDQUFDO1lBRXZDLE1BQU0sZUFBZSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsS0FBSyxJQUFJLENBQUM7WUFDdEUsSUFBSSxlQUFlLEVBQUUsQ0FBQztnQkFDcEIsT0FBTztZQUNULENBQUM7WUFFRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNELE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7WUFFcEYsSUFBSSxDQUFDLGdCQUFnQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQ3hDLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUM3QixDQUFDO1FBQ0gsQ0FBQyxDQUFDO1FBbk1BLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7UUFFakQsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3hDLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ1gsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDMUIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7b0JBQ3hCLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FBQzt3QkFDaEMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7b0JBQ3JFLENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7aUJBQU0sSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7Z0JBQ2hDLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkMsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNqQyxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksTUFBTSxFQUFFLENBQUM7Z0JBQ25DLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN0QixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBSUQsU0FBUztRQUNQLElBQUksSUFBSSxDQUFDLG1CQUFtQixFQUFFLEVBQUUsQ0FBQztZQUMvQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztRQUMxQixDQUFDO1FBQ0QsSUFBSSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsRUFBRSxDQUFDO1lBQ2hDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO1FBQ3JFLENBQUM7SUFDSCxDQUFDO0lBRUQsaUJBQWlCLENBQUMsS0FBb0I7UUFDcEMsSUFDRSxLQUFLLENBQUMsR0FBRyxLQUFLLFNBQVM7WUFDdkIsS0FBSyxDQUFDLEdBQUcsS0FBSyxTQUFTO1lBQ3ZCLENBQUMsS0FBSyxDQUFDLEdBQUcsS0FBSyxjQUFjLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLHVDQUF1QyxFQUFFLENBQUMsRUFDM0YsQ0FBQztZQUNELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsQ0FBQztnQkFDaEMsZ0JBQWdCLENBQUMsR0FBRyxFQUFFLENBQUMseUJBQXlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7WUFDckUsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQW1DO1FBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzNCLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdkMsQ0FBQztJQUVELGtCQUFrQjtRQUNoQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxDQUFDO1lBQ25CLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxpQkFBaUIsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUMvQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsZUFBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQW9CLEVBQUUsRUFBRTtnQkFDakUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxDQUFDO1lBRUgsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLDJCQUEyQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7Z0JBQ3pELElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUN2QixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSwyQkFBMkIsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUN6RCxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUMxQixDQUFDLENBQUMsQ0FBQztZQUNILElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSw0QkFBNEIsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO2dCQUMxRCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7WUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQjtRQUNkLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakMsQ0FBQztRQUVELElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFaEcsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGFBQWEsRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUM7UUFFdkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRWhELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXRDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUUvQixJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsS0FBbUMsRUFBRSxFQUFFO1lBQ3hGLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDMUIsQ0FBQyxDQUFDLENBQUM7UUFFSCxNQUFNLHlCQUF5QixHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2hGLElBQUksS0FBSyxLQUFLLElBQUksRUFBRSxDQUFDO2dCQUNuQixJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztvQkFDekIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDL0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7b0JBRTVCLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO29CQUNsQyx5QkFBeUIsQ0FBQyxXQUFXLEVBQUUsQ0FBQztvQkFDeEMsTUFBTSxhQUFhLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLFVBQVUsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQzdFLHVCQUF1QixDQUN4QixDQUFDLENBQUMsQ0FBZ0IsQ0FBQztvQkFDcEIsSUFBSSxhQUFhLEVBQUUsQ0FBQzt3QkFDbEIsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUN4QixDQUFDO3lCQUFNLENBQUM7d0JBQ04sSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7b0JBQ25ELENBQUM7Z0JBQ0gsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVPLFlBQVk7UUFDbEIsSUFBSSxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDekIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDOUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxFQUFFLGVBQWUsRUFBRSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1lBQzdGLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsRUFBRSxlQUFlLEVBQUUsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUMvRixDQUFDO1FBRUQsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDMUIsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsS0FBSyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2xFLElBQUksS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDMUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQzlDLGdCQUFnQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2hELENBQUM7SUFDSCxDQUFDO0lBRU8sb0JBQW9CLENBQUMsV0FBcUIsUUFBUTtRQUN4RCxJQUFJLElBQUksQ0FBQyxlQUFlLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUM7WUFDM0MsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUM7WUFDeEUsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLFVBQVUsQ0FBQyxhQUFhLENBQUM7WUFFaEUsSUFBSSxjQUFjLEVBQUUsQ0FBQztnQkFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLEVBQUUsU0FBUyxFQUFFLE9BQU8sQ0FBQyxDQUFDO2dCQUNoRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUN6QixNQUFNLGdCQUFnQixHQUNwQixRQUFRLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyx3QkFBd0IsQ0FBQyxjQUFjLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQztnQkFDM0csTUFBTSxhQUFhLEdBQ2pCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLGdCQUFnQixDQUFDLGNBQWMsRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUN6RyxNQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FDeEMsZ0JBQWdCLEVBQ2hCLGNBQWMsRUFDZCxtQkFBbUIsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLEVBQy9CLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxFQUN4QixhQUFhLENBQ2QsQ0FBQztnQkFFRixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxLQUFLLEVBQUUsR0FBRyxtQkFBbUIsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO2dCQUNuRixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsR0FBRyxtQkFBbUIsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDO2dCQUVyRixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDOUQsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ2xDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7SUFtQk8sdUJBQXVCO1FBQzdCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVPLDBCQUEwQjtRQUNoQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QyxDQUFDLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztJQUNsQyxDQUFDOytHQWxRVSxpQkFBaUI7bUdBQWpCLGlCQUFpQiw2aURBR0ksd0JBQXdCLHVGQUMzQixxQkFBcUI7OzRGQUp2QyxpQkFBaUI7a0JBUjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLElBQUksRUFBRTt3QkFDSixrQkFBa0IsRUFBRSxNQUFNO3dCQUMxQix5QkFBeUIsRUFBRSxZQUFZO3FCQUN4QztvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50UmVmLFxuICBjb21wdXRlZCxcbiAgY29udGVudENoaWxkLFxuICBEZXN0cm95UmVmLFxuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgT25EZXN0cm95LFxuICBvdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgc2lnbmFsLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQWxpZ25tZW50LCBQb3NpdGlvbiB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZVwiO1xuaW1wb3J0IHsgd2FpdEZvck5leHRGcmFtZSB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21tb24vYW5pbWF0aW9uXCI7XG5pbXBvcnQgeyBEUk9QRE9XTl9BTklNQVRJT05fRFVSQVRJT04gfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jb25zdGFudHNcIjtcbmltcG9ydCB7XG4gIGdldEF1dG9BbGlnbm1lbnQsXG4gIGdldEF1dG9QbGFjZW1lbnREcm9wZG93bixcbiAgZ2V0Q29vcmRpbmF0ZXMsXG59IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL3V0aWxzL2F1dG8tcGxhY2VtZW50XCI7XG5pbXBvcnQgeyBGT0NVU0FCTEVfQlVUVE9OU19RVUVSWSB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb25zdGFudHMvZG9tL2RvbS5jb25zdGFudHNcIjtcbmltcG9ydCB7IEFSUk9XX0RPV05fS0VZLCBFTlRFUl9LRVksIFNQQUNFX0tFWSB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb25zdGFudHMva2V5Ym9hcmQva2V5Ym9hcmQuY29uc3RhbnRzXCI7XG5cbmltcG9ydCB7IERyb3Bkb3duU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9kcm9wZG93bi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBPdmVybGF5U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9vdmVybGF5LnNlcnZpY2VcIjtcblxuaW1wb3J0IHsgRHJvcGRvd25NZW51Q29tcG9uZW50IH0gZnJvbSBcIi4vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRHJvcGRvd25UcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSBcIi4vZHJvcGRvd24tdHJpZ2dlci9kcm9wZG93bi10cmlnZ2VyLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgZm9jdXNEcm9wZG93bkZpcnN0RWxlbWVudCB9IGZyb20gXCIuL2Ryb3Bkb3duLnV0aWxzXCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJbcnRlRHJvcGRvd25dXCIsXG4gIGhvc3Q6IHtcbiAgICBcIltjbGFzcy5kcm9wZG93bl1cIjogXCJ0cnVlXCIsXG4gICAgXCJbYXR0ci5kYXRhLWRyb3Bkb3duLWlkXVwiOiBcImRyb3Bkb3duSWRcIixcbiAgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25EaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN0YXRpYyBpZENvdW50ZXIgPSAwO1xuXG4gIHJlYWRvbmx5IHRyaWdnZXIgPSBjb250ZW50Q2hpbGQoRHJvcGRvd25UcmlnZ2VyRGlyZWN0aXZlKTtcbiAgcmVhZG9ubHkgbWVudSA9IGNvbnRlbnRDaGlsZChEcm9wZG93bk1lbnVDb21wb25lbnQpO1xuXG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duSWQgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duUG9zaXRpb24gPSBpbnB1dDxQb3NpdGlvbj4oXCJib3R0b21cIik7XG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duQWxpZ25tZW50ID0gaW5wdXQ8QWxpZ25tZW50PihcInN0YXJ0XCIpO1xuICByZWFkb25seSBydGVEcm9wZG93bklzT3BlbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgcnRlRHJvcGRvd25PZmZzZXQgPSBpbnB1dDxudW1iZXI+KDApO1xuICByZWFkb25seSBydGVEcm9wZG93bkF1dG9mb2N1cyA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBydGVEcm9wZG93bkF1dG9PcGVuID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duV2lkdGggPSBpbnB1dDxudW1iZXIgfCBudWxsPihudWxsKTtcblxuICByZWFkb25seSBtZW51RXZlbnQgPSBvdXRwdXQ8eyBldmVudDogRXZlbnQ7IGlkOiBzdHJpbmcgfT4oKTtcbiAgcmVhZG9ubHkgZHJvcGRvd25JZCA9IGBkcm9wZG93bl8keysrRHJvcGRvd25EaXJlY3RpdmUuaWRDb3VudGVyfWA7XG5cbiAgcmVhZG9ubHkgb3ZlcmxheVNlcnZpY2UgPSBpbmplY3QoT3ZlcmxheVNlcnZpY2UpO1xuICByZWFkb25seSBkcm9wZG93blNlcnZpY2UgPSBpbmplY3QoRHJvcGRvd25TZXJ2aWNlKTtcbiAgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcmVhZG9ubHkgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIHJlYWRvbmx5IGNsaWNrZWRPdXRzaWRlID0gb3V0cHV0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5IGNsb3NlZERyb3Bkb3duID0gb3V0cHV0PHZvaWQ+KCk7XG5cbiAgcmVhZG9ubHkgaXNBY3RpdmUgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IG1lbnVJbnB1dHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbWVudSA9IHRoaXMubWVudSgpO1xuICAgIGlmICghbWVudSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBpdGVtczogbWVudS5pdGVtcygpLFxuICAgICAgaGVhZGVyVGVtcGxhdGU6IG1lbnUuaGVhZGVyRGlyZWN0aXZlKCk/LnRlbXBsYXRlUmVmLFxuICAgICAgZm9vdGVyVGVtcGxhdGU6IG1lbnUuZm9vdGVyRGlyZWN0aXZlKCk/LnRlbXBsYXRlUmVmLFxuICAgICAgd2lkdGg6IG1lbnUud2lkdGgoKSxcbiAgICB9O1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaXNPcGVuID0gdGhpcy5ydGVEcm9wZG93bklzT3BlbigpO1xuICAgICAgaWYgKGlzT3Blbikge1xuICAgICAgICBpZiAoIXRoaXMuZHJvcGRvd25NZW51UmVmKSB7XG4gICAgICAgICAgdGhpcy5zaG93RHJvcGRvd25NZW51KCk7XG4gICAgICAgICAgaWYgKHRoaXMucnRlRHJvcGRvd25BdXRvZm9jdXMoKSkge1xuICAgICAgICAgICAgd2FpdEZvck5leHRGcmFtZSgoKSA9PiBmb2N1c0Ryb3Bkb3duRmlyc3RFbGVtZW50KHRoaXMuZHJvcGRvd25JZCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5jbG9zZUFsbE1lbnVzKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXRzID0gdGhpcy5tZW51SW5wdXRzKCk7XG4gICAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYgJiYgaW5wdXRzKSB7XG4gICAgICAgIHRoaXMuYXNzaWduSW5wdXRzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBkcm9wZG93bk1lbnVSZWY6IENvbXBvbmVudFJlZjxEcm9wZG93bk1lbnVDb21wb25lbnQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgb25UcmlnZ2VyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJ0ZURyb3Bkb3duQXV0b09wZW4oKSkge1xuICAgICAgdGhpcy5zaG93RHJvcGRvd25NZW51KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJ0ZURyb3Bkb3duQXV0b2ZvY3VzKCkpIHtcbiAgICAgIHdhaXRGb3JOZXh0RnJhbWUoKCkgPT4gZm9jdXNEcm9wZG93bkZpcnN0RWxlbWVudCh0aGlzLmRyb3Bkb3duSWQpKTtcbiAgICB9XG4gIH1cblxuICBvblRyaWdnZXJLZXlFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LmtleSA9PT0gU1BBQ0VfS0VZIHx8XG4gICAgICBldmVudC5rZXkgPT09IEVOVEVSX0tFWSB8fFxuICAgICAgKGV2ZW50LmtleSA9PT0gQVJST1dfRE9XTl9LRVkgJiYgdGhpcy50cmlnZ2VyKCk/LnJ0ZURyb3Bkb3duVHJpZ2dlckFjdGl2YXRlV2l0aEFycm93RG93bigpKVxuICAgICkge1xuICAgICAgdGhpcy5zaG93RHJvcGRvd25NZW51KCk7XG4gICAgICBpZiAodGhpcy5ydGVEcm9wZG93bkF1dG9mb2N1cygpKSB7XG4gICAgICAgIHdhaXRGb3JOZXh0RnJhbWUoKCkgPT4gZm9jdXNEcm9wZG93bkZpcnN0RWxlbWVudCh0aGlzLmRyb3Bkb3duSWQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbk1lbnVFdmVudChldmVudDogeyBldmVudDogRXZlbnQ7IGlkOiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIHRoaXMubWVudUV2ZW50LmVtaXQoZXZlbnQpO1xuICAgIHRoaXMuaXNBY3RpdmUuc2V0KGZhbHNlKTtcbiAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5jbG9zZUFsbE1lbnVzKCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJpZ2dlcigpKSB7XG4gICAgICB0aGlzLnRyaWdnZXIoKT8uZHJvcGRvd25UcmlnZ2VyZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblRyaWdnZXIoKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnRyaWdnZXIoKT8uZHJvcGRvd25LZXlEb3duLnN1YnNjcmliZSgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5vblRyaWdnZXJLZXlFdmVudChldmVudCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy50cmlnZ2VyKCk/LmRyb3Bkb3duVHJpZ2dlckNsZWFyQ29udGVudC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy50cmlnZ2VyKCk/LmRyb3Bkb3duVHJpZ2dlck9wZW5Ecm9wZG93bi5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNob3dEcm9wZG93bk1lbnUoKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy50cmlnZ2VyKCk/LmRyb3Bkb3duVHJpZ2dlckNsb3NlRHJvcGRvd24uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzaG93RHJvcGRvd25NZW51KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIHRoaXMuZHJvcGRvd25NZW51UmVmID0gdGhpcy5vdmVybGF5U2VydmljZS5jcmVhdGUoRHJvcGRvd25NZW51Q29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuXG4gICAgY29uc3QgbWVudUlkID0gdGhpcy5ydGVEcm9wZG93bklkKCkgfHwgdGhpcy5kcm9wZG93bklkO1xuXG4gICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuc2V0SW5wdXQoXCJtZW51SWRcIiwgbWVudUlkKTtcblxuICAgIHRoaXMuZHJvcGRvd25TZXJ2aWNlLm9wZW5NZW51KG1lbnVJZCk7XG5cbiAgICB0aGlzLmFzc2lnbklucHV0cygpO1xuICAgIHRoaXMucG9zaXRpb25Ecm9wZG93bk1lbnUodGhpcy5ydGVEcm9wZG93blBvc2l0aW9uKCkpO1xuICAgIHRoaXMuYWRkQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcblxuICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLmluc3RhbmNlLml0ZW1FdmVudC5zdWJzY3JpYmUoKGV2ZW50OiB7IGV2ZW50OiBFdmVudDsgaWQ6IHN0cmluZyB9KSA9PiB7XG4gICAgICB0aGlzLm9uTWVudUV2ZW50KGV2ZW50KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGRyb3Bkb3duU3RhdGVTdWJzY3JpcHRpb24gPSB0aGlzLmRyb3Bkb3duU2VydmljZS5zdGF0ZSQuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgaWYgKHN0YXRlID09PSBudWxsKSB7XG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZiA9IG51bGw7XG5cbiAgICAgICAgICB0aGlzLnJlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCk7XG4gICAgICAgICAgZHJvcGRvd25TdGF0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIGNvbnN0IGJ1dHRvblRyaWdnZXIgPSB0aGlzLnRyaWdnZXIoKT8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICBGT0NVU0FCTEVfQlVUVE9OU19RVUVSWSxcbiAgICAgICAgICApWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgIGlmIChidXR0b25UcmlnZ2VyKSB7XG4gICAgICAgICAgICBidXR0b25UcmlnZ2VyLmZvY3VzKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlcigpPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gZHJvcGRvd25TdGF0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXNzaWduSW5wdXRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLm1lbnUoKT8uaXRlbXMoKSA/PyBbXTtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwiaXRlbXNcIiwgaXRlbXMpO1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuc2V0SW5wdXQoXCJoZWFkZXJUZW1wbGF0ZVwiLCB0aGlzLm1lbnUoKT8uaGVhZGVyRGlyZWN0aXZlKCk/LnRlbXBsYXRlUmVmKTtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwiZm9vdGVyVGVtcGxhdGVcIiwgdGhpcy5tZW51KCk/LmZvb3RlckRpcmVjdGl2ZSgpPy50ZW1wbGF0ZVJlZik7XG4gICAgfVxuXG4gICAgdGhpcy5hc3NpZ25XaWR0aCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3NpZ25XaWR0aCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZHJvcGRvd25NZW51UmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLm1lbnVJbnB1dHMoKT8ud2lkdGggPz8gdGhpcy5ydGVEcm9wZG93bldpZHRoKCk7XG4gICAgaWYgKHdpZHRoICE9PSB1bmRlZmluZWQgJiYgd2lkdGggIT09IG51bGwpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwid2lkdGhcIiwgd2lkdGgpO1xuICAgICAgd2FpdEZvck5leHRGcmFtZSgoKSA9PiB0aGlzLmRyb3Bkb3duTWVudVJlZj8uc2V0SW5wdXQoXCJpc09wZW5cIiwgdHJ1ZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5zZXRJbnB1dChcImlzT3BlblwiLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBvc2l0aW9uRHJvcGRvd25NZW51KHBvc2l0aW9uOiBQb3NpdGlvbiA9IFwiYm90dG9tXCIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYgJiYgdGhpcy50cmlnZ2VyKCkpIHtcbiAgICAgIGNvbnN0IGRyb3Bkb3duTWVudUVsZW1lbnQgPSB0aGlzLmRyb3Bkb3duTWVudVJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgICAgY29uc3QgdHJpZ2dlckVsZW1lbnQgPSB0aGlzLnRyaWdnZXIoKT8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICBpZiAodHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkcm9wZG93bk1lbnVFbGVtZW50LCBcImRpc3BsYXlcIiwgXCJibG9ja1wiKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBjb25zdCBjb21wdXRlZFBvc2l0aW9uOiBFeGNsdWRlPFBvc2l0aW9uLCBcImF1dG9cIj4gPVxuICAgICAgICAgIHBvc2l0aW9uID09PSBcImF1dG9cIiA/IGdldEF1dG9QbGFjZW1lbnREcm9wZG93bih0cmlnZ2VyRWxlbWVudCwgZHJvcGRvd25NZW51RWxlbWVudCwgXCJib3R0b21cIikgOiBwb3NpdGlvbjtcbiAgICAgICAgY29uc3QgYXV0b0FsaWdubWVudCA9XG4gICAgICAgICAgdGhpcy5ydGVEcm9wZG93bkFsaWdubWVudCgpID8/IGdldEF1dG9BbGlnbm1lbnQodHJpZ2dlckVsZW1lbnQsIGRyb3Bkb3duTWVudUVsZW1lbnQsIGNvbXB1dGVkUG9zaXRpb24pO1xuICAgICAgICBjb25zdCBjb21wdXRlZENvb3JkaW5hdGVzID0gZ2V0Q29vcmRpbmF0ZXMoXG4gICAgICAgICAgY29tcHV0ZWRQb3NpdGlvbixcbiAgICAgICAgICB0cmlnZ2VyRWxlbWVudCxcbiAgICAgICAgICBkcm9wZG93bk1lbnVFbGVtZW50LmNoaWxkcmVuWzBdLFxuICAgICAgICAgIHRoaXMucnRlRHJvcGRvd25PZmZzZXQoKSxcbiAgICAgICAgICBhdXRvQWxpZ25tZW50LFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZHJvcGRvd25NZW51RWxlbWVudCwgXCJ0b3BcIiwgYCR7Y29tcHV0ZWRDb29yZGluYXRlcy50b3B9cHhgKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkcm9wZG93bk1lbnVFbGVtZW50LCBcImxlZnRcIiwgYCR7Y29tcHV0ZWRDb29yZGluYXRlcy5sZWZ0fXB4YCk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkcm9wZG93bk1lbnVFbGVtZW50LCBcIm9wYWNpdHlcIiwgXCIxXCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcbiAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBFbGVtZW50O1xuXG4gICAgY29uc3QgaXNNZW51SXRlbUNsaWNrID0gdGFyZ2V0LmNsb3Nlc3QoXCIucnRlLWRyb3Bkb3duLWl0ZW1cIikgIT09IG51bGw7XG4gICAgaWYgKGlzTWVudUl0ZW1DbGljaykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNsaWNrZWRJblRyaWdnZXIgPSB0aGlzLmhvc3RFbGVtZW50LmNvbnRhaW5zKHRhcmdldCk7XG4gICAgY29uc3QgY2xpY2tlZEluTWVudSA9IHRoaXMuZHJvcGRvd25NZW51UmVmPy5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldCk7XG5cbiAgICBpZiAoIWNsaWNrZWRJblRyaWdnZXIgJiYgIWNsaWNrZWRJbk1lbnUpIHtcbiAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgdGhpcy5jbGlja2VkT3V0c2lkZS5lbWl0KCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgYWRkQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCB0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCk6IHZvaWQge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgdGhpcy5oYW5kbGVDbGlja091dHNpZGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZURyb3Bkb3duKCk6IHZvaWQge1xuICAgIHRoaXMuZHJvcGRvd25NZW51UmVmPy5zZXRJbnB1dChcImlzT3BlblwiLCBmYWxzZSk7XG4gICAgdGhpcy5pc0FjdGl2ZS5zZXQoZmFsc2UpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5jbG9zZUFsbE1lbnVzKCk7XG4gICAgfSwgRFJPUERPV05fQU5JTUFUSU9OX0RVUkFUSU9OKTtcbiAgfVxufVxuIl19
|
|
246
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFFakIsUUFBUSxFQUNSLFlBQVksRUFDWixVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDN0csT0FBTyxFQUNMLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNmLE1BQU0seURBQXlELENBQUM7QUFDakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDOUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFckgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUV6RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFVN0QsTUFBTSxPQUFPLGlCQUFpQjthQUNiLGNBQVMsR0FBRyxDQUFDLEFBQUosQ0FBSztJQStDN0I7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QUFDO0lBRU8sMEJBQTBCO1FBQ2hDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVPLGFBQWE7UUFDbkIsSUFBSSxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXpCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsZUFBZSxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQ3ZDLENBQUMsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7K0dBbFJVLGlCQUFpQjttR0FBakIsaUJBQWlCLG12REFHSSx3QkFBd0IsdUZBQzNCLHFCQUFxQjs7NEZBSnZDLGlCQUFpQjtrQkFSN0IsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZUFBZTtvQkFDekIsSUFBSSxFQUFFO3dCQUNKLGtCQUFrQixFQUFFLE1BQU07d0JBQzFCLHlCQUF5QixFQUFFLFlBQVk7cUJBQ3hDO29CQUNELFVBQVUsRUFBRSxJQUFJO2lCQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFmdGVyQ29udGVudEluaXQsXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnRSZWYsXG4gIGNvbXB1dGVkLFxuICBjb250ZW50Q2hpbGQsXG4gIERlc3Ryb3lSZWYsXG4gIERpcmVjdGl2ZSxcbiAgZWZmZWN0LFxuICBFbGVtZW50UmVmLFxuICBpbmplY3QsXG4gIGlucHV0LFxuICBvdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgc2lnbmFsLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQWxpZ25tZW50LCBQb3NpdGlvbiB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZVwiO1xuaW1wb3J0IHsgd2FpdEZvck5leHRGcmFtZSB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21tb24vYW5pbWF0aW9uXCI7XG5pbXBvcnQgeyBEUk9QRE9XTl9BTklNQVRJT05fRFVSQVRJT04gfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jb25zdGFudHNcIjtcbmltcG9ydCB7XG4gIGdldEF1dG9BbGlnbm1lbnQsXG4gIGdldEF1dG9QbGFjZW1lbnREcm9wZG93bixcbiAgZ2V0Q29vcmRpbmF0ZXMsXG59IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL3V0aWxzL2F1dG8tcGxhY2VtZW50XCI7XG5pbXBvcnQgeyBGT0NVU0FCTEVfQlVUVE9OU19RVUVSWSB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb25zdGFudHMvZG9tL2RvbS5jb25zdGFudHNcIjtcbmltcG9ydCB7IEFSUk9XX0RPV05fS0VZLCBFTlRFUl9LRVksIFNQQUNFX0tFWSB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb25zdGFudHMva2V5Ym9hcmQva2V5Ym9hcmQuY29uc3RhbnRzXCI7XG5cbmltcG9ydCB7IERyb3Bkb3duU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9kcm9wZG93bi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBPdmVybGF5U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9vdmVybGF5LnNlcnZpY2VcIjtcblxuaW1wb3J0IHsgRHJvcGRvd25NZW51Q29tcG9uZW50IH0gZnJvbSBcIi4vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRHJvcGRvd25UcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSBcIi4vZHJvcGRvd24tdHJpZ2dlci9kcm9wZG93bi10cmlnZ2VyLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgRHJvcGRvd25JdGVtQ29uZmlnIH0gZnJvbSBcIi4vZHJvcGRvd24udHlwZXNcIjtcbmltcG9ydCB7IGZvY3VzRHJvcGRvd25GaXJzdEVsZW1lbnQgfSBmcm9tIFwiLi9kcm9wZG93bi51dGlsc1wiO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiW3J0ZURyb3Bkb3duXVwiLFxuICBob3N0OiB7XG4gICAgXCJbY2xhc3MuZHJvcGRvd25dXCI6IFwidHJ1ZVwiLFxuICAgIFwiW2F0dHIuZGF0YS1kcm9wZG93bi1pZF1cIjogXCJkcm9wZG93bklkXCIsXG4gIH0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIERyb3Bkb3duRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIHByaXZhdGUgc3RhdGljIGlkQ291bnRlciA9IDA7XG5cbiAgcmVhZG9ubHkgdHJpZ2dlciA9IGNvbnRlbnRDaGlsZChEcm9wZG93blRyaWdnZXJEaXJlY3RpdmUpO1xuICByZWFkb25seSBtZW51ID0gY29udGVudENoaWxkKERyb3Bkb3duTWVudUNvbXBvbmVudCk7XG5cbiAgcmVhZG9ubHkgcnRlRHJvcGRvd25JZCA9IGlucHV0PHN0cmluZyB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcmVhZG9ubHkgcnRlRHJvcGRvd25Qb3NpdGlvbiA9IGlucHV0PFBvc2l0aW9uPihcImJvdHRvbVwiKTtcbiAgcmVhZG9ubHkgcnRlRHJvcGRvd25BbGlnbm1lbnQgPSBpbnB1dDxBbGlnbm1lbnQ+KFwic3RhcnRcIik7XG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duSXNPcGVuID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBydGVEcm9wZG93bk9mZnNldCA9IGlucHV0PG51bWJlcj4oMCk7XG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duQXV0b2ZvY3VzID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duQXV0b09wZW4gPSBpbnB1dDxib29sZWFuPih0cnVlKTtcbiAgcmVhZG9ubHkgcnRlRHJvcGRvd25XaWR0aCA9IGlucHV0PG51bWJlciB8IG51bGw+KG51bGwpO1xuICByZWFkb25seSBydGVDbG9zZU9uSXRlbUNsaWNrID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG5cbiAgcmVhZG9ubHkgbWVudUV2ZW50ID0gb3V0cHV0PHsgZXZlbnQ6IEV2ZW50OyBpZDogc3RyaW5nOyBpdGVtPzogRHJvcGRvd25JdGVtQ29uZmlnIH0+KCk7XG4gIHJlYWRvbmx5IGRyb3Bkb3duSWQgPSBgZHJvcGRvd25fJHsrK0Ryb3Bkb3duRGlyZWN0aXZlLmlkQ291bnRlcn1gO1xuXG4gIHJlYWRvbmx5IG92ZXJsYXlTZXJ2aWNlID0gaW5qZWN0KE92ZXJsYXlTZXJ2aWNlKTtcbiAgcmVhZG9ubHkgZHJvcGRvd25TZXJ2aWNlID0gaW5qZWN0KERyb3Bkb3duU2VydmljZSk7XG4gIHJlYWRvbmx5IHZpZXdDb250YWluZXJSZWYgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG4gIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZik7XG4gIHJlYWRvbmx5IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gIHJlYWRvbmx5IGhvc3RFbGVtZW50OiBIVE1MRWxlbWVudDtcbiAgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcbiAgcmVhZG9ubHkgY2RyID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICByZWFkb25seSBjbGlja2VkT3V0c2lkZSA9IG91dHB1dDx2b2lkPigpO1xuICByZWFkb25seSBjbG9zZWREcm9wZG93biA9IG91dHB1dDx2b2lkPigpO1xuXG4gIHJlYWRvbmx5IG1lbnVDaGFuZ2VFdmVudCA9IG91dHB1dDx7IGV2ZW50OiBFdmVudDsgaWQ6IHN0cmluZyB9PigpO1xuXG4gIHJlYWRvbmx5IGlzQWN0aXZlID0gc2lnbmFsKGZhbHNlKTtcblxuICByZWFkb25seSBtZW51SW5wdXRzID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IG1lbnUgPSB0aGlzLm1lbnUoKTtcbiAgICBpZiAoIW1lbnUpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgaXRlbXM6IG1lbnUuaXRlbXMoKSxcbiAgICAgIGhlYWRlclRlbXBsYXRlOiBtZW51LmhlYWRlckRpcmVjdGl2ZSgpPy50ZW1wbGF0ZVJlZixcbiAgICAgIGZvb3RlclRlbXBsYXRlOiBtZW51LmZvb3RlckRpcmVjdGl2ZSgpPy50ZW1wbGF0ZVJlZixcbiAgICAgIHdpZHRoOiBtZW51LndpZHRoKCksXG4gICAgfTtcbiAgfSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgdGhpcy5ob3N0RWxlbWVudCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICB0aGlzLnVuc3Vic2NyaWJlSXRlbUV2ZW50KCk7XG4gICAgICB0aGlzLnJlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCk7XG4gICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZj8uZGVzdHJveSgpO1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYgPSBudWxsO1xuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlzT3BlbiA9IHRoaXMucnRlRHJvcGRvd25Jc09wZW4oKTtcbiAgICAgIGlmIChpc09wZW4pIHtcbiAgICAgICAgaWYgKCF0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duTWVudSgpO1xuICAgICAgICAgIGlmICh0aGlzLnJ0ZURyb3Bkb3duQXV0b2ZvY3VzKCkpIHtcbiAgICAgICAgICAgIHdhaXRGb3JOZXh0RnJhbWUoKCkgPT4gZm9jdXNEcm9wZG93bkZpcnN0RWxlbWVudCh0aGlzLmRyb3Bkb3duSWQpKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgICAgdGhpcy5kcm9wZG93blNlcnZpY2UuY2xvc2VBbGxNZW51cygpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGlucHV0cyA9IHRoaXMubWVudUlucHV0cygpO1xuICAgICAgaWYgKHRoaXMuZHJvcGRvd25NZW51UmVmICYmIGlucHV0cykge1xuICAgICAgICB0aGlzLmFzc2lnbklucHV0cygpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgZHJvcGRvd25NZW51UmVmOiBDb21wb25lbnRSZWY8RHJvcGRvd25NZW51Q29tcG9uZW50PiB8IG51bGwgPSBudWxsO1xuICBwcml2YXRlIGl0ZW1FdmVudFN1YnNjcmlwdGlvbjogeyB1bnN1YnNjcmliZTogKCkgPT4gdm9pZCB9IHwgbnVsbCA9IG51bGw7XG5cbiAgb25UcmlnZ2VyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJ0ZURyb3Bkb3duQXV0b09wZW4oKSkge1xuICAgICAgdGhpcy5zaG93RHJvcGRvd25NZW51KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJ0ZURyb3Bkb3duQXV0b2ZvY3VzKCkpIHtcbiAgICAgIHdhaXRGb3JOZXh0RnJhbWUoKCkgPT4gZm9jdXNEcm9wZG93bkZpcnN0RWxlbWVudCh0aGlzLmRyb3Bkb3duSWQpKTtcbiAgICB9XG4gIH1cblxuICBvblRyaWdnZXJLZXlFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGNvbnN0IHNob3VsZE9wZW4gPVxuICAgICAgZXZlbnQua2V5ID09PSBTUEFDRV9LRVkgfHxcbiAgICAgIGV2ZW50LmtleSA9PT0gRU5URVJfS0VZIHx8XG4gICAgICAoZXZlbnQua2V5ID09PSBBUlJPV19ET1dOX0tFWSAmJiB0aGlzLnRyaWdnZXIoKT8ucnRlRHJvcGRvd25UcmlnZ2VyQWN0aXZhdGVXaXRoQXJyb3dEb3duKCkpO1xuXG4gICAgaWYgKHNob3VsZE9wZW4pIHtcbiAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duTWVudSgpO1xuICAgICAgaWYgKHRoaXMucnRlRHJvcGRvd25BdXRvZm9jdXMoKSkge1xuICAgICAgICB3YWl0Rm9yTmV4dEZyYW1lKCgpID0+IGZvY3VzRHJvcGRvd25GaXJzdEVsZW1lbnQodGhpcy5kcm9wZG93bklkKSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgb25NZW51RXZlbnQoZXZlbnQ6IHsgZXZlbnQ6IEV2ZW50OyBpZDogc3RyaW5nOyBpdGVtPzogRHJvcGRvd25JdGVtQ29uZmlnIH0pOiB2b2lkIHtcbiAgICB0aGlzLm1lbnVFdmVudC5lbWl0KGV2ZW50KTtcbiAgICBpZiAoIWV2ZW50Lml0ZW0/LmNoaWxkcmVuPy5sZW5ndGggJiYgdGhpcy5ydGVDbG9zZU9uSXRlbUNsaWNrKCkpIHtcbiAgICAgIHRoaXMuaXNBY3RpdmUuc2V0KGZhbHNlKTtcbiAgICAgIHRoaXMuZHJvcGRvd25TZXJ2aWNlLmNsb3NlQWxsTWVudXMoKTtcbiAgICB9XG4gIH1cblxuICBvbk1lbnVDaGFuZ2VFdmVudChldmVudDogeyBldmVudDogRXZlbnQ7IGlkOiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIHRoaXMubWVudUV2ZW50LmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IHRyaWdnZXIgPSB0aGlzLnRyaWdnZXIoKTtcbiAgICBpZiAoIXRyaWdnZXIpIHJldHVybjtcblxuICAgIGNvbnN0IHRyaWdnZXJTdWJzY3JpcHRpb25zID0gW1xuICAgICAgdHJpZ2dlci5kcm9wZG93blRyaWdnZXJlZC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5vblRyaWdnZXIoKSksXG4gICAgICB0cmlnZ2VyLmRyb3Bkb3duS2V5RG93bi5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB0aGlzLm9uVHJpZ2dlcktleUV2ZW50KGV2ZW50KSksXG4gICAgICB0cmlnZ2VyLmRyb3Bkb3duVHJpZ2dlckNsZWFyQ29udGVudC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZURyb3Bkb3duKCkpLFxuICAgICAgdHJpZ2dlci5kcm9wZG93blRyaWdnZXJPcGVuRHJvcGRvd24uc3Vic2NyaWJlKCgpID0+IHRoaXMuc2hvd0Ryb3Bkb3duTWVudSgpKSxcbiAgICAgIHRyaWdnZXIuZHJvcGRvd25UcmlnZ2VyQ2xvc2VEcm9wZG93bi5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZURyb3Bkb3duKCkpLFxuICAgIF07XG4gICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB0cmlnZ2VyU3Vic2NyaXB0aW9ucy5mb3JFYWNoKChzdWJzY3JpcHRpb24pID0+IHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKSk7XG4gIH1cblxuICBzaG93RHJvcGRvd25NZW51KCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzY3JpYmVJdGVtRXZlbnQoKTtcbiAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLmRlc3Ryb3koKTtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmID0gbnVsbDtcbiAgICB9XG5cbiAgICB0aGlzLmRyb3Bkb3duTWVudVJlZiA9IHRoaXMub3ZlcmxheVNlcnZpY2UuY3JlYXRlKERyb3Bkb3duTWVudUNvbXBvbmVudCwgdGhpcy52aWV3Q29udGFpbmVyUmVmKTtcblxuICAgIGNvbnN0IG1lbnVJZCA9IHRoaXMucnRlRHJvcGRvd25JZCgpIHx8IHRoaXMuZHJvcGRvd25JZDtcblxuICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwibWVudUlkXCIsIG1lbnVJZCk7XG5cbiAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5vcGVuTWVudShtZW51SWQpO1xuXG4gICAgdGhpcy5hc3NpZ25JbnB1dHMoKTtcbiAgICB0aGlzLnBvc2l0aW9uRHJvcGRvd25NZW51KHRoaXMucnRlRHJvcGRvd25Qb3NpdGlvbigpKTtcbiAgICB0aGlzLmFkZENsaWNrT3V0c2lkZUxpc3RlbmVyKCk7XG5cbiAgICB0aGlzLml0ZW1FdmVudFN1YnNjcmlwdGlvbiA9IHRoaXMuZHJvcGRvd25NZW51UmVmLmluc3RhbmNlLml0ZW1FdmVudC5zdWJzY3JpYmUoXG4gICAgICAoZXZlbnQ6IHsgZXZlbnQ6IEV2ZW50OyBpZDogc3RyaW5nOyBpdGVtPzogRHJvcGRvd25JdGVtQ29uZmlnIH0pID0+IHRoaXMub25NZW51RXZlbnQoZXZlbnQpLFxuICAgICk7XG5cbiAgICBjb25zdCBkcm9wZG93blN0YXRlU3Vic2NyaXB0aW9uID0gdGhpcy5kcm9wZG93blNlcnZpY2Uuc3RhdGUkLnN1YnNjcmliZSgoc3RhdGUpID0+IHtcbiAgICAgIGlmIChzdGF0ZSA9PT0gbnVsbCkge1xuICAgICAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgICAgICB0aGlzLnVuc3Vic2NyaWJlSXRlbUV2ZW50KCk7XG4gICAgICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuZGVzdHJveSgpO1xuICAgICAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmID0gbnVsbDtcblxuICAgICAgICAgIHRoaXMucmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcbiAgICAgICAgICBkcm9wZG93blN0YXRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgY29uc3QgYnV0dG9uVHJpZ2dlciA9IHRoaXMudHJpZ2dlcigpPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvckFsbChcbiAgICAgICAgICAgIEZPQ1VTQUJMRV9CVVRUT05TX1FVRVJZLFxuICAgICAgICAgIClbMF0gYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgaWYgKGJ1dHRvblRyaWdnZXIpIHtcbiAgICAgICAgICAgIGJ1dHRvblRyaWdnZXIuZm9jdXMoKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy50cmlnZ2VyKCk/LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuXG4gICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiBkcm9wZG93blN0YXRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3NpZ25JbnB1dHMoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZHJvcGRvd25NZW51UmVmKSB7XG4gICAgICBjb25zdCBpdGVtcyA9IHRoaXMubWVudSgpPy5pdGVtcygpID8/IFtdO1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuc2V0SW5wdXQoXCJpdGVtc1wiLCBpdGVtcyk7XG4gICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5zZXRJbnB1dChcImhlYWRlclRlbXBsYXRlXCIsIHRoaXMubWVudSgpPy5oZWFkZXJEaXJlY3RpdmUoKT8udGVtcGxhdGVSZWYpO1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuc2V0SW5wdXQoXCJmb290ZXJUZW1wbGF0ZVwiLCB0aGlzLm1lbnUoKT8uZm9vdGVyRGlyZWN0aXZlKCk/LnRlbXBsYXRlUmVmKTtcbiAgICB9XG5cbiAgICB0aGlzLmFzc2lnbldpZHRoKCk7XG4gIH1cblxuICBwcml2YXRlIGFzc2lnbldpZHRoKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCB3aWR0aCA9IHRoaXMubWVudUlucHV0cygpPy53aWR0aCA/PyB0aGlzLnJ0ZURyb3Bkb3duV2lkdGgoKTtcbiAgICBpZiAod2lkdGggIT09IHVuZGVmaW5lZCAmJiB3aWR0aCAhPT0gbnVsbCkge1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuc2V0SW5wdXQoXCJ3aWR0aFwiLCB3aWR0aCk7XG4gICAgICB3YWl0Rm9yTmV4dEZyYW1lKCgpID0+IHRoaXMuZHJvcGRvd25NZW51UmVmPy5zZXRJbnB1dChcImlzT3BlblwiLCB0cnVlKSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwiaXNPcGVuXCIsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcG9zaXRpb25Ecm9wZG93bk1lbnUocG9zaXRpb246IFBvc2l0aW9uID0gXCJib3R0b21cIik6IHZvaWQge1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTWVudVJlZiAmJiB0aGlzLnRyaWdnZXIoKSkge1xuICAgICAgY29uc3QgZHJvcGRvd25NZW51RWxlbWVudCA9IHRoaXMuZHJvcGRvd25NZW51UmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICBjb25zdCB0cmlnZ2VyRWxlbWVudCA9IHRoaXMudHJpZ2dlcigpPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICAgIGlmICh0cmlnZ2VyRWxlbWVudCkge1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRyb3Bkb3duTWVudUVsZW1lbnQsIFwiZGlzcGxheVwiLCBcImJsb2NrXCIpO1xuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgIGNvbnN0IGNvbXB1dGVkUG9zaXRpb246IEV4Y2x1ZGU8UG9zaXRpb24sIFwiYXV0b1wiPiA9XG4gICAgICAgICAgcG9zaXRpb24gPT09IFwiYXV0b1wiXG4gICAgICAgICAgICA/IGdldEF1dG9QbGFjZW1lbnREcm9wZG93bih7XG4gICAgICAgICAgICAgICAgaG9zdEVsZW1lbnQ6IHRyaWdnZXJFbGVtZW50LFxuICAgICAgICAgICAgICAgIGNhc3RlZEVsZW1lbnQ6IGRyb3Bkb3duTWVudUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgZGVmYXVsdFBvc2l0aW9uOiBcImJvdHRvbVwiLFxuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgOiBwb3NpdGlvbjtcbiAgICAgICAgY29uc3QgYXV0b0FsaWdubWVudCA9XG4gICAgICAgICAgdGhpcy5ydGVEcm9wZG93bkFsaWdubWVudCgpID8/IGdldEF1dG9BbGlnbm1lbnQodHJpZ2dlckVsZW1lbnQsIGRyb3Bkb3duTWVudUVsZW1lbnQsIGNvbXB1dGVkUG9zaXRpb24pO1xuICAgICAgICBjb25zdCBjb21wdXRlZENvb3JkaW5hdGVzID0gZ2V0Q29vcmRpbmF0ZXMoXG4gICAgICAgICAgY29tcHV0ZWRQb3NpdGlvbixcbiAgICAgICAgICB0cmlnZ2VyRWxlbWVudCxcbiAgICAgICAgICBkcm9wZG93bk1lbnVFbGVtZW50LmNoaWxkcmVuWzBdLFxuICAgICAgICAgIHRoaXMucnRlRHJvcGRvd25PZmZzZXQoKSxcbiAgICAgICAgICBhdXRvQWxpZ25tZW50LFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZHJvcGRvd25NZW51RWxlbWVudCwgXCJ0b3BcIiwgYCR7Y29tcHV0ZWRDb29yZGluYXRlcy50b3B9cHhgKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkcm9wZG93bk1lbnVFbGVtZW50LCBcImxlZnRcIiwgYCR7Y29tcHV0ZWRDb29yZGluYXRlcy5sZWZ0fXB4YCk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkcm9wZG93bk1lbnVFbGVtZW50LCBcIm9wYWNpdHlcIiwgXCIxXCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgdW5zdWJzY3JpYmVJdGVtRXZlbnQoKTogdm9pZCB7XG4gICAgdGhpcy5pdGVtRXZlbnRTdWJzY3JpcHRpb24/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5pdGVtRXZlbnRTdWJzY3JpcHRpb24gPSBudWxsO1xuICB9XG5cbiAgcHJpdmF0ZSByZWFkb25seSBoYW5kbGVDbGlja091dHNpZGUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkID0+IHtcbiAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgRWxlbWVudDtcblxuICAgIGNvbnN0IGNsaWNrZWRJblRyaWdnZXIgPSB0aGlzLmhvc3RFbGVtZW50LmNvbnRhaW5zKHRhcmdldCk7XG4gICAgY29uc3QgZHJvcGRvd25NZW51RWxlbWVudCA9IHRoaXMuZHJvcGRvd25NZW51UmVmPy5sb2NhdGlvbi5uYXRpdmVFbGVtZW50IGFzIEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkO1xuICAgIGNvbnN0IGNsaWNrZWRJblRoaXNNZW51ID0gZHJvcGRvd25NZW51RWxlbWVudCA/IGRyb3Bkb3duTWVudUVsZW1lbnQuY29udGFpbnModGFyZ2V0KSA6IGZhbHNlO1xuICAgIGlmIChjbGlja2VkSW5UcmlnZ2VyIHx8IGNsaWNrZWRJblRoaXNNZW51KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgdGhpcy5jbGlja2VkT3V0c2lkZS5lbWl0KCk7XG4gIH07XG5cbiAgcHJpdmF0ZSBhZGRDbGlja091dHNpZGVMaXN0ZW5lcigpOiB2b2lkIHtcbiAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKFwibW91c2Vkb3duXCIsIHRoaXMuaGFuZGxlQ2xpY2tPdXRzaWRlKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCB0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlRHJvcGRvd24oKTogdm9pZCB7XG4gICAgdGhpcy5kcm9wZG93bk1lbnVSZWY/LnNldElucHV0KFwiaXNPcGVuXCIsIGZhbHNlKTtcbiAgICB0aGlzLmlzQWN0aXZlLnNldChmYWxzZSk7XG5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuZHJvcGRvd25TZXJ2aWNlLmNsb3NlQWxsTWVudXMoKTtcbiAgICB9LCBEUk9QRE9XTl9BTklNQVRJT05fRFVSQVRJT04pO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24udHlwZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi50eXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBFdmVudEVtaXR0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgRHJvcGRvd25JdGVtUHJvcHMgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5pbnRlcmZhY2VcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTdWJtZW51Q3JlYXRlZFJlc3VsdCB7XG4gIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPHVua25vd24+O1xuICBob3N0RWxlbWVudDogSFRNTEVsZW1lbnQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3VibWVudVJlcXVlc3RFdmVudCB7XG4gIGNoaWxkcmVuOiBEcm9wZG93bkl0ZW1Db25maWdbXTtcbiAgY2hpbGRJZDogc3RyaW5nO1xuICB0cmlnZ2VyRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gIG9uQ3JlYXRlZDogKHJlc3VsdDogU3VibWVudUNyZWF0ZWRSZXN1bHQpID0+IHZvaWQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHJvcGRvd25JdGVtQ29uZmlnIGV4dGVuZHMgT21pdDxEcm9wZG93bkl0ZW1Qcm9wcywgXCJvbkNsaWNrXCI+IHtcbiAgaWQ/OiBzdHJpbmc7XG4gIHNlbGVjdGVkPzogYm9vbGVhbjtcbiAgbGFiZWw6IHN0cmluZztcbiAgbGVmdEljb24/OiBzdHJpbmc7XG4gIHRyYWlsaW5nVGV4dD86IHN0cmluZztcbiAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICBoYXNTZXBhcmF0b3I/OiBib29sZWFuO1xuICBoYXNJbmRlbnQ/OiBib29sZWFuO1xuICBsaW5rPzogc3RyaW5nO1xuICBjbGljaz86IEV2ZW50RW1pdHRlcjxFdmVudD47XG4gIGNoaWxkcmVuPzogRHJvcGRvd25JdGVtQ29uZmlnW107XG59XG5cbmV4cG9ydCB0eXBlIERyb3Bkb3duSXRlbUV2ZW50ID0ge1xuICBldmVudDogRXZlbnQ7XG4gIGlkOiBzdHJpbmc7XG4gIGl0ZW0/OiBEcm9wZG93bkl0ZW1Db25maWc7XG59O1xuIl19
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
// Main dropdown module - import this to get everything
|
|
2
1
|
export { DropdownModule } from "./dropdown.module";
|
|
3
|
-
// Individual exports for advanced use cases
|
|
4
2
|
export { DropdownDirective } from "./dropdown.directive";
|
|
5
3
|
export { DropdownTriggerDirective } from "./dropdown-trigger/dropdown-trigger.directive";
|
|
6
4
|
export { DropdownMenuComponent } from "./dropdown-menu/dropdown-menu.component";
|
|
7
5
|
export { DropdownItemComponent } from "./dropdown-item/dropdown-item.component";
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBEcm9wZG93bk1vZHVsZSB9IGZyb20gXCIuL2Ryb3Bkb3duLm1vZHVsZVwiO1xuXG5leHBvcnQgeyBEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gXCIuL2Ryb3Bkb3duLmRpcmVjdGl2ZVwiO1xuZXhwb3J0IHsgRHJvcGRvd25UcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSBcIi4vZHJvcGRvd24tdHJpZ2dlci9kcm9wZG93bi10cmlnZ2VyLmRpcmVjdGl2ZVwiO1xuZXhwb3J0IHsgRHJvcGRvd25NZW51Q29tcG9uZW50IH0gZnJvbSBcIi4vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgRHJvcGRvd25JdGVtQ29tcG9uZW50IH0gZnJvbSBcIi4vZHJvcGRvd24taXRlbS9kcm9wZG93bi1pdGVtLmNvbXBvbmVudFwiO1xuZXhwb3J0IHR5cGUgeyBEcm9wZG93bkl0ZW1Db25maWcgfSBmcm9tIFwiLi9kcm9wZG93bi50eXBlc1wiO1xuIl19
|