@design-system-rte/angular 1.2.1-rc5 → 1.4.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.
Files changed (30) hide show
  1. package/esm2022/lib/components/dropdown/dropdown-item/dropdown-item.component.mjs +157 -14
  2. package/esm2022/lib/components/dropdown/dropdown-menu/dropdown-menu.component.mjs +71 -6
  3. package/esm2022/lib/components/dropdown/dropdown.directive.mjs +48 -39
  4. package/esm2022/lib/components/dropdown/dropdown.types.mjs +2 -0
  5. package/esm2022/lib/components/dropdown/index.mjs +1 -3
  6. package/esm2022/lib/components/icon/icon-map.mjs +112 -112
  7. package/esm2022/lib/components/modal/modal.component.mjs +3 -3
  8. package/esm2022/lib/components/segmented-control/segmented-control.component.mjs +5 -3
  9. package/esm2022/lib/components/side-nav/side-nav.component.mjs +1 -1
  10. package/esm2022/lib/components/stepper/stepper.component.mjs +3 -3
  11. package/esm2022/lib/components/tab/tab-item/tab-item.component.mjs +3 -3
  12. package/esm2022/lib/components/tab/tab.component.mjs +1 -1
  13. package/esm2022/lib/components/tag/tag.component.mjs +4 -3
  14. package/esm2022/public-api.mjs +9 -1
  15. package/fesm2022/design-system-rte-angular.mjs +431 -219
  16. package/fesm2022/design-system-rte-angular.mjs.map +1 -1
  17. package/lib/components/assistive-text/assistive-text.component.d.ts +1 -1
  18. package/lib/components/chip/chip.component.d.ts +1 -1
  19. package/lib/components/dropdown/dropdown-item/dropdown-item.component.d.ts +28 -16
  20. package/lib/components/dropdown/dropdown-menu/dropdown-menu.component.d.ts +14 -3
  21. package/lib/components/dropdown/dropdown.directive.d.ts +8 -4
  22. package/lib/components/dropdown/dropdown.types.d.ts +30 -0
  23. package/lib/components/dropdown/index.d.ts +1 -0
  24. package/lib/components/segmented-control/segmented-control.component.d.ts +3 -1
  25. package/lib/components/side-nav/side-nav.component.d.ts +2 -2
  26. package/lib/components/tab/tab.component.d.ts +1 -1
  27. package/lib/components/tag/tag.component.d.ts +2 -1
  28. package/lib/components/text-input/base-text-input/base-text-input.component.d.ts +1 -1
  29. package/package.json +2 -2
  30. package/public-api.d.ts +8 -0
@@ -48,20 +48,25 @@ export class DropdownDirective {
48
48
  };
49
49
  });
50
50
  this.dropdownMenuRef = null;
51
+ this.itemEventSubscription = null;
51
52
  this.handleClickOutside = (event) => {
52
53
  const target = event.target;
53
- const isMenuItemClick = target.closest(".rte-dropdown-item") !== null;
54
- if (isMenuItemClick) {
55
- return;
56
- }
57
54
  const clickedInTrigger = this.hostElement.contains(target);
58
- const clickedInMenu = this.dropdownMenuRef?.location.nativeElement.contains(target);
59
- if (!clickedInTrigger && !clickedInMenu) {
60
- this.closeDropdown();
61
- this.clickedOutside.emit();
55
+ const dropdownMenuElement = this.dropdownMenuRef?.location.nativeElement;
56
+ const clickedInThisMenu = dropdownMenuElement ? dropdownMenuElement.contains(target) : false;
57
+ if (clickedInTrigger || clickedInThisMenu) {
58
+ return;
62
59
  }
60
+ this.closeDropdown();
61
+ this.clickedOutside.emit();
63
62
  };
64
63
  this.hostElement = this.elementRef.nativeElement;
64
+ this.destroyRef.onDestroy(() => {
65
+ this.unsubscribeItemEvent();
66
+ this.removeClickOutsideListener();
67
+ this.dropdownMenuRef?.destroy();
68
+ this.dropdownMenuRef = null;
69
+ });
65
70
  effect(() => {
66
71
  const isOpen = this.rteDropdownIsOpen();
67
72
  if (isOpen) {
@@ -92,9 +97,12 @@ export class DropdownDirective {
92
97
  }
93
98
  }
94
99
  onTriggerKeyEvent(event) {
95
- if (event.key === SPACE_KEY ||
100
+ const shouldOpen = event.key === SPACE_KEY ||
96
101
  event.key === ENTER_KEY ||
97
- (event.key === ARROW_DOWN_KEY && this.trigger()?.rteDropdownTriggerActivateWithArrowDown())) {
102
+ (event.key === ARROW_DOWN_KEY && this.trigger()?.rteDropdownTriggerActivateWithArrowDown());
103
+ if (shouldOpen) {
104
+ event.preventDefault();
105
+ event.stopPropagation();
98
106
  this.showDropdownMenu();
99
107
  if (this.rteDropdownAutofocus()) {
100
108
  waitForNextFrame(() => focusDropdownFirstElement(this.dropdownId));
@@ -103,31 +111,29 @@ export class DropdownDirective {
103
111
  }
104
112
  onMenuEvent(event) {
105
113
  this.menuEvent.emit(event);
106
- this.isActive.set(false);
107
- this.dropdownService.closeAllMenus();
114
+ if (!event.item?.children?.length) {
115
+ this.isActive.set(false);
116
+ this.dropdownService.closeAllMenus();
117
+ }
108
118
  }
109
119
  ngAfterContentInit() {
110
- if (this.trigger()) {
111
- this.trigger()?.dropdownTriggered.subscribe(() => {
112
- this.onTrigger();
113
- });
114
- this.trigger()?.dropdownKeyDown.subscribe((event) => {
115
- this.onTriggerKeyEvent(event);
116
- });
117
- this.trigger()?.dropdownTriggerClearContent.subscribe(() => {
118
- this.closeDropdown();
119
- });
120
- this.trigger()?.dropdownTriggerOpenDropdown.subscribe(() => {
121
- this.showDropdownMenu();
122
- });
123
- this.trigger()?.dropdownTriggerCloseDropdown.subscribe(() => {
124
- this.closeDropdown();
125
- });
126
- }
120
+ const trigger = this.trigger();
121
+ if (!trigger)
122
+ return;
123
+ const triggerSubscriptions = [
124
+ trigger.dropdownTriggered.subscribe(() => this.onTrigger()),
125
+ trigger.dropdownKeyDown.subscribe((event) => this.onTriggerKeyEvent(event)),
126
+ trigger.dropdownTriggerClearContent.subscribe(() => this.closeDropdown()),
127
+ trigger.dropdownTriggerOpenDropdown.subscribe(() => this.showDropdownMenu()),
128
+ trigger.dropdownTriggerCloseDropdown.subscribe(() => this.closeDropdown()),
129
+ ];
130
+ this.destroyRef.onDestroy(() => triggerSubscriptions.forEach((subscription) => subscription.unsubscribe()));
127
131
  }
128
132
  showDropdownMenu() {
133
+ this.unsubscribeItemEvent();
129
134
  if (this.dropdownMenuRef) {
130
135
  this.dropdownMenuRef.destroy();
136
+ this.dropdownMenuRef = null;
131
137
  }
132
138
  this.dropdownMenuRef = this.overlayService.create(DropdownMenuComponent, this.viewContainerRef);
133
139
  const menuId = this.rteDropdownId() || this.dropdownId;
@@ -136,12 +142,11 @@ export class DropdownDirective {
136
142
  this.assignInputs();
137
143
  this.positionDropdownMenu(this.rteDropdownPosition());
138
144
  this.addClickOutsideListener();
139
- this.dropdownMenuRef.instance.itemEvent.subscribe((event) => {
140
- this.onMenuEvent(event);
141
- });
145
+ this.itemEventSubscription = this.dropdownMenuRef.instance.itemEvent.subscribe((event) => this.onMenuEvent(event));
142
146
  const dropdownStateSubscription = this.dropdownService.state$.subscribe((state) => {
143
147
  if (state === null) {
144
148
  if (this.dropdownMenuRef) {
149
+ this.unsubscribeItemEvent();
145
150
  this.dropdownMenuRef.destroy();
146
151
  this.dropdownMenuRef = null;
147
152
  this.removeClickOutsideListener();
@@ -187,7 +192,13 @@ export class DropdownDirective {
187
192
  if (triggerElement) {
188
193
  this.renderer.setStyle(dropdownMenuElement, "display", "block");
189
194
  this.cdr.detectChanges();
190
- const computedPosition = position === "auto" ? getAutoPlacementDropdown(triggerElement, dropdownMenuElement, "bottom") : position;
195
+ const computedPosition = position === "auto"
196
+ ? getAutoPlacementDropdown({
197
+ hostElement: triggerElement,
198
+ castedElement: dropdownMenuElement,
199
+ defaultPosition: "bottom",
200
+ })
201
+ : position;
191
202
  const autoAlignment = this.rteDropdownAlignment() ?? getAutoAlignment(triggerElement, dropdownMenuElement, computedPosition);
192
203
  const computedCoordinates = getCoordinates(computedPosition, triggerElement, dropdownMenuElement.children[0], this.rteDropdownOffset(), autoAlignment);
193
204
  this.renderer.setStyle(dropdownMenuElement, "top", `${computedCoordinates.top}px`);
@@ -196,11 +207,9 @@ export class DropdownDirective {
196
207
  }
197
208
  }
198
209
  }
199
- ngOnDestroy() {
200
- this.removeClickOutsideListener();
201
- if (this.dropdownMenuRef) {
202
- this.dropdownMenuRef.destroy();
203
- }
210
+ unsubscribeItemEvent() {
211
+ this.itemEventSubscription?.unsubscribe();
212
+ this.itemEventSubscription = null;
204
213
  }
205
214
  addClickOutsideListener() {
206
215
  document.addEventListener("mousedown", this.handleClickOutside);
@@ -229,4 +238,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImpo
229
238
  standalone: true,
230
239
  }]
231
240
  }], ctorParameters: () => [] });
232
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFFakIsUUFBUSxFQUNSLFlBQVksRUFDWixVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDN0csT0FBTyxFQUNMLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNmLE1BQU0seURBQXlELENBQUM7QUFDakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDOUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFckgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFVN0QsTUFBTSxPQUFPLGlCQUFpQjthQUNiLGNBQVMsR0FBRyxDQUFDLEFBQUosQ0FBSztJQTRDN0I7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QUNULElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ2xDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDakMsQ0FBQztJQUNILENBQUM7SUFtQk8sdUJBQXVCO1FBQzdCLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVPLDBCQUEwQjtRQUNoQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTyxhQUFhO1FBQ25CLElBQUksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLFFBQVEsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoRCxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QyxDQUFDLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztJQUNsQyxDQUFDOytHQWxRVSxpQkFBaUI7bUdBQWpCLGlCQUFpQiw2aURBR0ksd0JBQXdCLHVGQUMzQixxQkFBcUI7OzRGQUp2QyxpQkFBaUI7a0JBUjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLElBQUksRUFBRTt3QkFDSixrQkFBa0IsRUFBRSxNQUFNO3dCQUMxQix5QkFBeUIsRUFBRSxZQUFZO3FCQUN4QztvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50UmVmLFxuICBjb21wdXRlZCxcbiAgY29udGVudENoaWxkLFxuICBEZXN0cm95UmVmLFxuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgT25EZXN0cm95LFxuICBvdXRwdXQsXG4gIFJlbmRlcmVyMixcbiAgc2lnbmFsLFxuICBWaWV3Q29udGFpbmVyUmVmLFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQWxpZ25tZW50LCBQb3NpdGlvbiB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZVwiO1xuaW1wb3J0IHsgd2FpdEZvck5leHRGcmFtZSB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21tb24vYW5pbWF0aW9uXCI7XG5pbXBvcnQgeyBEUk9QRE9XTl9BTklNQVRJT05fRFVSQVRJT04gfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy9kcm9wZG93bi9kcm9wZG93bi5jb25zdGFudHNcIjtcbmltcG9ydCB7XG4gIGdldEF1dG9BbGlnbm1lbnQsXG4gIGdldEF1dG9QbGFjZW1lbnREcm9wZG93bixcbiAgZ2V0Q29vcmRpbmF0ZXMsXG59IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb21wb25lbnRzL3V0aWxzL2F1dG8tcGxhY2VtZW50XCI7XG5pbXBvcnQgeyBGT0NVU0FCTEVfQlVUVE9OU19RVUVSWSB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb25zdGFudHMvZG9tL2RvbS5jb25zdGFudHNcIjtcbmltcG9ydCB7IEFSUk9XX0RPV05fS0VZLCBFTlRFUl9LRVksIFNQQUNFX0tFWSB9IGZyb20gXCJAZGVzaWduLXN5c3RlbS1ydGUvY29yZS9jb25zdGFudHMva2V5Ym9hcmQva2V5Ym9hcmQuY29uc3RhbnRzXCI7XG5cbmltcG9ydCB7IERyb3Bkb3duU2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9kcm9wZG93bi5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBPdmVybGF5U2VydmljZSB9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9vdmVybGF5LnNlcnZpY2VcIjtcblxuaW1wb3J0IHsgRHJvcGRvd25NZW51Q29tcG9uZW50IH0gZnJvbSBcIi4vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRHJvcGRvd25UcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSBcIi4vZHJvcGRvd24tdHJpZ2dlci9kcm9wZG93bi10cmlnZ2VyLmRpcmVjdGl2ZVwiO1xuaW1wb3J0IHsgZm9jdXNEcm9wZG93bkZpcnN0RWxlbWVudCB9IGZyb20gXCIuL2Ryb3Bkb3duLnV0aWxzXCI7XG5cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogXCJbcnRlRHJvcGRvd25dXCIsXG4gIGhvc3Q6IHtcbiAgICBcIltjbGFzcy5kcm9wZG93bl1cIjogXCJ0cnVlXCIsXG4gICAgXCJbYXR0ci5kYXRhLWRyb3Bkb3duLWlkXVwiOiBcImRyb3Bkb3duSWRcIixcbiAgfSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgRHJvcGRvd25EaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIHN0YXRpYyBpZENvdW50ZXIgPSAwO1xuXG4gIHJlYWRvbmx5IHRyaWdnZXIgPSBjb250ZW50Q2hpbGQoRHJvcGRvd25UcmlnZ2VyRGlyZWN0aXZlKTtcbiAgcmVhZG9ubHkgbWVudSA9IGNvbnRlbnRDaGlsZChEcm9wZG93bk1lbnVDb21wb25lbnQpO1xuXG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duSWQgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duUG9zaXRpb24gPSBpbnB1dDxQb3NpdGlvbj4oXCJib3R0b21cIik7XG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duQWxpZ25tZW50ID0gaW5wdXQ8QWxpZ25tZW50PihcInN0YXJ0XCIpO1xuICByZWFkb25seSBydGVEcm9wZG93bklzT3BlbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgcnRlRHJvcGRvd25PZmZzZXQgPSBpbnB1dDxudW1iZXI+KDApO1xuICByZWFkb25seSBydGVEcm9wZG93bkF1dG9mb2N1cyA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBydGVEcm9wZG93bkF1dG9PcGVuID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duV2lkdGggPSBpbnB1dDxudW1iZXIgfCBudWxsPihudWxsKTtcblxuICByZWFkb25seSBtZW51RXZlbnQgPSBvdXRwdXQ8eyBldmVudDogRXZlbnQ7IGlkOiBzdHJpbmcgfT4oKTtcbiAgcmVhZG9ubHkgZHJvcGRvd25JZCA9IGBkcm9wZG93bl8keysrRHJvcGRvd25EaXJlY3RpdmUuaWRDb3VudGVyfWA7XG5cbiAgcmVhZG9ubHkgb3ZlcmxheVNlcnZpY2UgPSBpbmplY3QoT3ZlcmxheVNlcnZpY2UpO1xuICByZWFkb25seSBkcm9wZG93blNlcnZpY2UgPSBpbmplY3QoRHJvcGRvd25TZXJ2aWNlKTtcbiAgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcmVhZG9ubHkgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIHJlYWRvbmx5IGNsaWNrZWRPdXRzaWRlID0gb3V0cHV0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5IGNsb3NlZERyb3Bkb3duID0gb3V0cHV0PHZvaWQ+KCk7XG5cbiAgcmVhZG9ubHkgaXNBY3RpdmUgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IG1lbnVJbnB1dHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbWVudSA9IHRoaXMubWVudSgpO1xuICAgIGlmICghbWVudSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBpdGVtczogbWVudS5pdGVtcygpLFxuICAgICAgaGVhZGVyVGVtcGxhdGU6IG1lbnUuaGVhZGVyRGlyZWN0aXZlKCk/LnRlbXBsYXRlUmVmLFxuICAgICAgZm9vdGVyVGVtcGxhdGU6IG1lbnUuZm9vdGVyRGlyZWN0aXZlKCk/LnRlbXBsYXRlUmVmLFxuICAgICAgd2lkdGg6IG1lbnUud2lkdGgoKSxcbiAgICB9O1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaXNPcGVuID0gdGhpcy5ydGVEcm9wZG93bklzT3BlbigpO1xuICAgICAgaWYgKGlzT3Blbikge1xuICAgICAgICBpZiAoIXRoaXMuZHJvcGRvd25NZW51UmVmKSB7XG4gICAgICAgICAgdGhpcy5zaG93RHJvcGRvd25NZW51KCk7XG4gICAgICAgICAgaWYgKHRoaXMucnRlRHJvcGRvd25BdXRvZm9jdXMoKSkge1xuICAgICAgICAgICAgd2FpdEZvck5leHRGcmFtZSgoKSA9PiBmb2N1c0Ryb3Bkb3duRmlyc3RFbGVtZW50KHRoaXMuZHJvcGRvd25JZCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5jbG9zZUFsbE1lbnVzKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXRzID0gdGhpcy5tZW51SW5wdXRzKCk7XG4gICAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYgJiYgaW5wdXRzKSB7XG4gICAgICAgIHRoaXMuYXNzaWduSW5wdXRzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBkcm9wZG93bk1lbnVSZWY6IENvbXBvbmVudFJlZjxEcm9wZG93bk1lbnVDb21wb25lbnQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgb25UcmlnZ2VyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnJ0ZURyb3Bkb3duQXV0b09wZW4oKSkge1xuICAgICAgdGhpcy5zaG93RHJvcGRvd25NZW51KCk7XG4gICAgfVxuICAgIGlmICh0aGlzLnJ0ZURyb3Bkb3duQXV0b2ZvY3VzKCkpIHtcbiAgICAgIHdhaXRGb3JOZXh0RnJhbWUoKCkgPT4gZm9jdXNEcm9wZG93bkZpcnN0RWxlbWVudCh0aGlzLmRyb3Bkb3duSWQpKTtcbiAgICB9XG4gIH1cblxuICBvblRyaWdnZXJLZXlFdmVudChldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuICAgIGlmIChcbiAgICAgIGV2ZW50LmtleSA9PT0gU1BBQ0VfS0VZIHx8XG4gICAgICBldmVudC5rZXkgPT09IEVOVEVSX0tFWSB8fFxuICAgICAgKGV2ZW50LmtleSA9PT0gQVJST1dfRE9XTl9LRVkgJiYgdGhpcy50cmlnZ2VyKCk/LnJ0ZURyb3Bkb3duVHJpZ2dlckFjdGl2YXRlV2l0aEFycm93RG93bigpKVxuICAgICkge1xuICAgICAgdGhpcy5zaG93RHJvcGRvd25NZW51KCk7XG4gICAgICBpZiAodGhpcy5ydGVEcm9wZG93bkF1dG9mb2N1cygpKSB7XG4gICAgICAgIHdhaXRGb3JOZXh0RnJhbWUoKCkgPT4gZm9jdXNEcm9wZG93bkZpcnN0RWxlbWVudCh0aGlzLmRyb3Bkb3duSWQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbk1lbnVFdmVudChldmVudDogeyBldmVudDogRXZlbnQ7IGlkOiBzdHJpbmcgfSk6IHZvaWQge1xuICAgIHRoaXMubWVudUV2ZW50LmVtaXQoZXZlbnQpO1xuICAgIHRoaXMuaXNBY3RpdmUuc2V0KGZhbHNlKTtcbiAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5jbG9zZUFsbE1lbnVzKCk7XG4gIH1cblxuICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudHJpZ2dlcigpKSB7XG4gICAgICB0aGlzLnRyaWdnZXIoKT8uZHJvcGRvd25UcmlnZ2VyZWQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5vblRyaWdnZXIoKTtcbiAgICAgIH0pO1xuXG4gICAgICB0aGlzLnRyaWdnZXIoKT8uZHJvcGRvd25LZXlEb3duLnN1YnNjcmliZSgoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5vblRyaWdnZXJLZXlFdmVudChldmVudCk7XG4gICAgICB9KTtcblxuICAgICAgdGhpcy50cmlnZ2VyKCk/LmRyb3Bkb3duVHJpZ2dlckNsZWFyQ29udGVudC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlRHJvcGRvd24oKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy50cmlnZ2VyKCk/LmRyb3Bkb3duVHJpZ2dlck9wZW5Ecm9wZG93bi5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLnNob3dEcm9wZG93bk1lbnUoKTtcbiAgICAgIH0pO1xuICAgICAgdGhpcy50cmlnZ2VyKCk/LmRyb3Bkb3duVHJpZ2dlckNsb3NlRHJvcGRvd24uc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBzaG93RHJvcGRvd25NZW51KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIHRoaXMuZHJvcGRvd25NZW51UmVmID0gdGhpcy5vdmVybGF5U2VydmljZS5jcmVhdGUoRHJvcGRvd25NZW51Q29tcG9uZW50LCB0aGlzLnZpZXdDb250YWluZXJSZWYpO1xuXG4gICAgY29uc3QgbWVudUlkID0gdGhpcy5ydGVEcm9wZG93bklkKCkgfHwgdGhpcy5kcm9wZG93bklkO1xuXG4gICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuc2V0SW5wdXQoXCJtZW51SWRcIiwgbWVudUlkKTtcblxuICAgIHRoaXMuZHJvcGRvd25TZXJ2aWNlLm9wZW5NZW51KG1lbnVJZCk7XG5cbiAgICB0aGlzLmFzc2lnbklucHV0cygpO1xuICAgIHRoaXMucG9zaXRpb25Ecm9wZG93bk1lbnUodGhpcy5ydGVEcm9wZG93blBvc2l0aW9uKCkpO1xuICAgIHRoaXMuYWRkQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcblxuICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLmluc3RhbmNlLml0ZW1FdmVudC5zdWJzY3JpYmUoKGV2ZW50OiB7IGV2ZW50OiBFdmVudDsgaWQ6IHN0cmluZyB9KSA9PiB7XG4gICAgICB0aGlzLm9uTWVudUV2ZW50KGV2ZW50KTtcbiAgICB9KTtcblxuICAgIGNvbnN0IGRyb3Bkb3duU3RhdGVTdWJzY3JpcHRpb24gPSB0aGlzLmRyb3Bkb3duU2VydmljZS5zdGF0ZSQuc3Vic2NyaWJlKChzdGF0ZSkgPT4ge1xuICAgICAgaWYgKHN0YXRlID09PSBudWxsKSB7XG4gICAgICAgIGlmICh0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZiA9IG51bGw7XG5cbiAgICAgICAgICB0aGlzLnJlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCk7XG4gICAgICAgICAgZHJvcGRvd25TdGF0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIGNvbnN0IGJ1dHRvblRyaWdnZXIgPSB0aGlzLnRyaWdnZXIoKT8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICBGT0NVU0FCTEVfQlVUVE9OU19RVUVSWSxcbiAgICAgICAgICApWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgIGlmIChidXR0b25UcmlnZ2VyKSB7XG4gICAgICAgICAgICBidXR0b25UcmlnZ2VyLmZvY3VzKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlcigpPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gZHJvcGRvd25TdGF0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXNzaWduSW5wdXRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLm1lbnUoKT8uaXRlbXMoKSA/PyBbXTtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwiaXRlbXNcIiwgaXRlbXMpO1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuc2V0SW5wdXQoXCJoZWFkZXJUZW1wbGF0ZVwiLCB0aGlzLm1lbnUoKT8uaGVhZGVyRGlyZWN0aXZlKCk/LnRlbXBsYXRlUmVmKTtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwiZm9vdGVyVGVtcGxhdGVcIiwgdGhpcy5tZW51KCk/LmZvb3RlckRpcmVjdGl2ZSgpPy50ZW1wbGF0ZVJlZik7XG4gICAgfVxuXG4gICAgdGhpcy5hc3NpZ25XaWR0aCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3NpZ25XaWR0aCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZHJvcGRvd25NZW51UmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLm1lbnVJbnB1dHMoKT8ud2lkdGggPz8gdGhpcy5ydGVEcm9wZG93bldpZHRoKCk7XG4gICAgaWYgKHdpZHRoICE9PSB1bmRlZmluZWQgJiYgd2lkdGggIT09IG51bGwpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwid2lkdGhcIiwgd2lkdGgpO1xuICAgICAgd2FpdEZvck5leHRGcmFtZSgoKSA9PiB0aGlzLmRyb3Bkb3duTWVudVJlZj8uc2V0SW5wdXQoXCJpc09wZW5cIiwgdHJ1ZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5zZXRJbnB1dChcImlzT3BlblwiLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBvc2l0aW9uRHJvcGRvd25NZW51KHBvc2l0aW9uOiBQb3NpdGlvbiA9IFwiYm90dG9tXCIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYgJiYgdGhpcy50cmlnZ2VyKCkpIHtcbiAgICAgIGNvbnN0IGRyb3Bkb3duTWVudUVsZW1lbnQgPSB0aGlzLmRyb3Bkb3duTWVudVJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgICAgY29uc3QgdHJpZ2dlckVsZW1lbnQgPSB0aGlzLnRyaWdnZXIoKT8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICBpZiAodHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkcm9wZG93bk1lbnVFbGVtZW50LCBcImRpc3BsYXlcIiwgXCJibG9ja1wiKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBjb25zdCBjb21wdXRlZFBvc2l0aW9uOiBFeGNsdWRlPFBvc2l0aW9uLCBcImF1dG9cIj4gPVxuICAgICAgICAgIHBvc2l0aW9uID09PSBcImF1dG9cIiA/IGdldEF1dG9QbGFjZW1lbnREcm9wZG93bih0cmlnZ2VyRWxlbWVudCwgZHJvcGRvd25NZW51RWxlbWVudCwgXCJib3R0b21cIikgOiBwb3NpdGlvbjtcbiAgICAgICAgY29uc3QgYXV0b0FsaWdubWVudCA9XG4gICAgICAgICAgdGhpcy5ydGVEcm9wZG93bkFsaWdubWVudCgpID8/IGdldEF1dG9BbGlnbm1lbnQodHJpZ2dlckVsZW1lbnQsIGRyb3Bkb3duTWVudUVsZW1lbnQsIGNvbXB1dGVkUG9zaXRpb24pO1xuICAgICAgICBjb25zdCBjb21wdXRlZENvb3JkaW5hdGVzID0gZ2V0Q29vcmRpbmF0ZXMoXG4gICAgICAgICAgY29tcHV0ZWRQb3NpdGlvbixcbiAgICAgICAgICB0cmlnZ2VyRWxlbWVudCxcbiAgICAgICAgICBkcm9wZG93bk1lbnVFbGVtZW50LmNoaWxkcmVuWzBdLFxuICAgICAgICAgIHRoaXMucnRlRHJvcGRvd25PZmZzZXQoKSxcbiAgICAgICAgICBhdXRvQWxpZ25tZW50LFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZHJvcGRvd25NZW51RWxlbWVudCwgXCJ0b3BcIiwgYCR7Y29tcHV0ZWRDb29yZGluYXRlcy50b3B9cHhgKTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkcm9wZG93bk1lbnVFbGVtZW50LCBcImxlZnRcIiwgYCR7Y29tcHV0ZWRDb29yZGluYXRlcy5sZWZ0fXB4YCk7XG5cbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkcm9wZG93bk1lbnVFbGVtZW50LCBcIm9wYWNpdHlcIiwgXCIxXCIpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMucmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcbiAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLmRlc3Ryb3koKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZUNsaWNrT3V0c2lkZSA9IChldmVudDogTW91c2VFdmVudCk6IHZvaWQgPT4ge1xuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBFbGVtZW50O1xuXG4gICAgY29uc3QgaXNNZW51SXRlbUNsaWNrID0gdGFyZ2V0LmNsb3Nlc3QoXCIucnRlLWRyb3Bkb3duLWl0ZW1cIikgIT09IG51bGw7XG4gICAgaWYgKGlzTWVudUl0ZW1DbGljaykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGNsaWNrZWRJblRyaWdnZXIgPSB0aGlzLmhvc3RFbGVtZW50LmNvbnRhaW5zKHRhcmdldCk7XG4gICAgY29uc3QgY2xpY2tlZEluTWVudSA9IHRoaXMuZHJvcGRvd25NZW51UmVmPy5sb2NhdGlvbi5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldCk7XG5cbiAgICBpZiAoIWNsaWNrZWRJblRyaWdnZXIgJiYgIWNsaWNrZWRJbk1lbnUpIHtcbiAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgdGhpcy5jbGlja2VkT3V0c2lkZS5lbWl0KCk7XG4gICAgfVxuICB9O1xuXG4gIHByaXZhdGUgYWRkQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCB0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCk6IHZvaWQge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgdGhpcy5oYW5kbGVDbGlja091dHNpZGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZURyb3Bkb3duKCk6IHZvaWQge1xuICAgIHRoaXMuZHJvcGRvd25NZW51UmVmPy5zZXRJbnB1dChcImlzT3BlblwiLCBmYWxzZSk7XG4gICAgdGhpcy5pc0FjdGl2ZS5zZXQoZmFsc2UpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5jbG9zZUFsbE1lbnVzKCk7XG4gICAgfSwgRFJPUERPV05fQU5JTUFUSU9OX0RVUkFUSU9OKTtcbiAgfVxufVxuIl19
241
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJvcGRvd24uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZHMtcnRlLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxpQkFBaUIsRUFFakIsUUFBUSxFQUNSLFlBQVksRUFDWixVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULE1BQU0sRUFDTixnQkFBZ0IsR0FDakIsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFDNUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sZ0VBQWdFLENBQUM7QUFDN0csT0FBTyxFQUNMLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsY0FBYyxHQUNmLE1BQU0seURBQXlELENBQUM7QUFDakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDOUYsT0FBTyxFQUFFLGNBQWMsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sK0RBQStELENBQUM7QUFFckgsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVoRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUV6RixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFVN0QsTUFBTSxPQUFPLGlCQUFpQjthQUNiLGNBQVMsR0FBRyxDQUFDLEFBQUosQ0FBSztJQTRDN0I7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LEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUV6QixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN2QyxDQUFDLEVBQUUsMkJBQTJCLENBQUMsQ0FBQztJQUNsQyxDQUFDOytHQTNRVSxpQkFBaUI7bUdBQWpCLGlCQUFpQiw2aURBR0ksd0JBQXdCLHVGQUMzQixxQkFBcUI7OzRGQUp2QyxpQkFBaUI7a0JBUjdCLFNBQVM7bUJBQUM7b0JBQ1QsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLElBQUksRUFBRTt3QkFDSixrQkFBa0IsRUFBRSxNQUFNO3dCQUMxQix5QkFBeUIsRUFBRSxZQUFZO3FCQUN4QztvQkFDRCxVQUFVLEVBQUUsSUFBSTtpQkFDakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50UmVmLFxuICBjb21wdXRlZCxcbiAgY29udGVudENoaWxkLFxuICBEZXN0cm95UmVmLFxuICBEaXJlY3RpdmUsXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgb3V0cHV0LFxuICBSZW5kZXJlcjIsXG4gIHNpZ25hbCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IEFsaWdubWVudCwgUG9zaXRpb24gfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmVcIjtcbmltcG9ydCB7IHdhaXRGb3JOZXh0RnJhbWUgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tbW9uL2FuaW1hdGlvblwiO1xuaW1wb3J0IHsgRFJPUERPV05fQU5JTUFUSU9OX0RVUkFUSU9OIH0gZnJvbSBcIkBkZXNpZ24tc3lzdGVtLXJ0ZS9jb3JlL2NvbXBvbmVudHMvZHJvcGRvd24vZHJvcGRvd24uY29uc3RhbnRzXCI7XG5pbXBvcnQge1xuICBnZXRBdXRvQWxpZ25tZW50LFxuICBnZXRBdXRvUGxhY2VtZW50RHJvcGRvd24sXG4gIGdldENvb3JkaW5hdGVzLFxufSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29tcG9uZW50cy91dGlscy9hdXRvLXBsYWNlbWVudFwiO1xuaW1wb3J0IHsgRk9DVVNBQkxFX0JVVFRPTlNfUVVFUlkgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29uc3RhbnRzL2RvbS9kb20uY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBBUlJPV19ET1dOX0tFWSwgRU5URVJfS0VZLCBTUEFDRV9LRVkgfSBmcm9tIFwiQGRlc2lnbi1zeXN0ZW0tcnRlL2NvcmUvY29uc3RhbnRzL2tleWJvYXJkL2tleWJvYXJkLmNvbnN0YW50c1wiO1xuXG5pbXBvcnQgeyBEcm9wZG93blNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvZHJvcGRvd24uc2VydmljZVwiO1xuaW1wb3J0IHsgT3ZlcmxheVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvb3ZlcmxheS5zZXJ2aWNlXCI7XG5cbmltcG9ydCB7IERyb3Bkb3duTWVudUNvbXBvbmVudCB9IGZyb20gXCIuL2Ryb3Bkb3duLW1lbnUvZHJvcGRvd24tbWVudS5jb21wb25lbnRcIjtcbmltcG9ydCB7IERyb3Bkb3duVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gXCIuL2Ryb3Bkb3duLXRyaWdnZXIvZHJvcGRvd24tdHJpZ2dlci5kaXJlY3RpdmVcIjtcbmltcG9ydCB7IERyb3Bkb3duSXRlbUNvbmZpZyB9IGZyb20gXCIuL2Ryb3Bkb3duLnR5cGVzXCI7XG5pbXBvcnQgeyBmb2N1c0Ryb3Bkb3duRmlyc3RFbGVtZW50IH0gZnJvbSBcIi4vZHJvcGRvd24udXRpbHNcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcIltydGVEcm9wZG93bl1cIixcbiAgaG9zdDoge1xuICAgIFwiW2NsYXNzLmRyb3Bkb3duXVwiOiBcInRydWVcIixcbiAgICBcIlthdHRyLmRhdGEtZHJvcGRvd24taWRdXCI6IFwiZHJvcGRvd25JZFwiLFxuICB9LFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBEcm9wZG93bkRpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICBwcml2YXRlIHN0YXRpYyBpZENvdW50ZXIgPSAwO1xuXG4gIHJlYWRvbmx5IHRyaWdnZXIgPSBjb250ZW50Q2hpbGQoRHJvcGRvd25UcmlnZ2VyRGlyZWN0aXZlKTtcbiAgcmVhZG9ubHkgbWVudSA9IGNvbnRlbnRDaGlsZChEcm9wZG93bk1lbnVDb21wb25lbnQpO1xuXG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duSWQgPSBpbnB1dDxzdHJpbmcgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duUG9zaXRpb24gPSBpbnB1dDxQb3NpdGlvbj4oXCJib3R0b21cIik7XG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duQWxpZ25tZW50ID0gaW5wdXQ8QWxpZ25tZW50PihcInN0YXJ0XCIpO1xuICByZWFkb25seSBydGVEcm9wZG93bklzT3BlbiA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgcnRlRHJvcGRvd25PZmZzZXQgPSBpbnB1dDxudW1iZXI+KDApO1xuICByZWFkb25seSBydGVEcm9wZG93bkF1dG9mb2N1cyA9IGlucHV0PGJvb2xlYW4+KHRydWUpO1xuICByZWFkb25seSBydGVEcm9wZG93bkF1dG9PcGVuID0gaW5wdXQ8Ym9vbGVhbj4odHJ1ZSk7XG4gIHJlYWRvbmx5IHJ0ZURyb3Bkb3duV2lkdGggPSBpbnB1dDxudW1iZXIgfCBudWxsPihudWxsKTtcblxuICByZWFkb25seSBtZW51RXZlbnQgPSBvdXRwdXQ8eyBldmVudDogRXZlbnQ7IGlkOiBzdHJpbmc7IGl0ZW0/OiBEcm9wZG93bkl0ZW1Db25maWcgfT4oKTtcbiAgcmVhZG9ubHkgZHJvcGRvd25JZCA9IGBkcm9wZG93bl8keysrRHJvcGRvd25EaXJlY3RpdmUuaWRDb3VudGVyfWA7XG5cbiAgcmVhZG9ubHkgb3ZlcmxheVNlcnZpY2UgPSBpbmplY3QoT3ZlcmxheVNlcnZpY2UpO1xuICByZWFkb25seSBkcm9wZG93blNlcnZpY2UgPSBpbmplY3QoRHJvcGRvd25TZXJ2aWNlKTtcbiAgcmVhZG9ubHkgdmlld0NvbnRhaW5lclJlZiA9IGluamVjdChWaWV3Q29udGFpbmVyUmVmKTtcbiAgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcbiAgcmVhZG9ubHkgcmVuZGVyZXIgPSBpbmplY3QoUmVuZGVyZXIyKTtcbiAgcmVhZG9ubHkgaG9zdEVsZW1lbnQ6IEhUTUxFbGVtZW50O1xuICByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuICByZWFkb25seSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXG4gIHJlYWRvbmx5IGNsaWNrZWRPdXRzaWRlID0gb3V0cHV0PHZvaWQ+KCk7XG4gIHJlYWRvbmx5IGNsb3NlZERyb3Bkb3duID0gb3V0cHV0PHZvaWQ+KCk7XG5cbiAgcmVhZG9ubHkgaXNBY3RpdmUgPSBzaWduYWwoZmFsc2UpO1xuXG4gIHJlYWRvbmx5IG1lbnVJbnB1dHMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgY29uc3QgbWVudSA9IHRoaXMubWVudSgpO1xuICAgIGlmICghbWVudSkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICBpdGVtczogbWVudS5pdGVtcygpLFxuICAgICAgaGVhZGVyVGVtcGxhdGU6IG1lbnUuaGVhZGVyRGlyZWN0aXZlKCk/LnRlbXBsYXRlUmVmLFxuICAgICAgZm9vdGVyVGVtcGxhdGU6IG1lbnUuZm9vdGVyRGlyZWN0aXZlKCk/LnRlbXBsYXRlUmVmLFxuICAgICAgd2lkdGg6IG1lbnUud2lkdGgoKSxcbiAgICB9O1xuICB9KTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmhvc3RFbGVtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cbiAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgIHRoaXMudW5zdWJzY3JpYmVJdGVtRXZlbnQoKTtcbiAgICAgIHRoaXMucmVtb3ZlQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmPy5kZXN0cm95KCk7XG4gICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZiA9IG51bGw7XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaXNPcGVuID0gdGhpcy5ydGVEcm9wZG93bklzT3BlbigpO1xuICAgICAgaWYgKGlzT3Blbikge1xuICAgICAgICBpZiAoIXRoaXMuZHJvcGRvd25NZW51UmVmKSB7XG4gICAgICAgICAgdGhpcy5zaG93RHJvcGRvd25NZW51KCk7XG4gICAgICAgICAgaWYgKHRoaXMucnRlRHJvcGRvd25BdXRvZm9jdXMoKSkge1xuICAgICAgICAgICAgd2FpdEZvck5leHRGcmFtZSgoKSA9PiBmb2N1c0Ryb3Bkb3duRmlyc3RFbGVtZW50KHRoaXMuZHJvcGRvd25JZCkpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIGlmICh0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5jbG9zZUFsbE1lbnVzKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3QgaW5wdXRzID0gdGhpcy5tZW51SW5wdXRzKCk7XG4gICAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYgJiYgaW5wdXRzKSB7XG4gICAgICAgIHRoaXMuYXNzaWduSW5wdXRzKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBkcm9wZG93bk1lbnVSZWY6IENvbXBvbmVudFJlZjxEcm9wZG93bk1lbnVDb21wb25lbnQ+IHwgbnVsbCA9IG51bGw7XG4gIHByaXZhdGUgaXRlbUV2ZW50U3Vic2NyaXB0aW9uOiB7IHVuc3Vic2NyaWJlOiAoKSA9PiB2b2lkIH0gfCBudWxsID0gbnVsbDtcblxuICBvblRyaWdnZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMucnRlRHJvcGRvd25BdXRvT3BlbigpKSB7XG4gICAgICB0aGlzLnNob3dEcm9wZG93bk1lbnUoKTtcbiAgICB9XG4gICAgaWYgKHRoaXMucnRlRHJvcGRvd25BdXRvZm9jdXMoKSkge1xuICAgICAgd2FpdEZvck5leHRGcmFtZSgoKSA9PiBmb2N1c0Ryb3Bkb3duRmlyc3RFbGVtZW50KHRoaXMuZHJvcGRvd25JZCkpO1xuICAgIH1cbiAgfVxuXG4gIG9uVHJpZ2dlcktleUV2ZW50KGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgY29uc3Qgc2hvdWxkT3BlbiA9XG4gICAgICBldmVudC5rZXkgPT09IFNQQUNFX0tFWSB8fFxuICAgICAgZXZlbnQua2V5ID09PSBFTlRFUl9LRVkgfHxcbiAgICAgIChldmVudC5rZXkgPT09IEFSUk9XX0RPV05fS0VZICYmIHRoaXMudHJpZ2dlcigpPy5ydGVEcm9wZG93blRyaWdnZXJBY3RpdmF0ZVdpdGhBcnJvd0Rvd24oKSk7XG5cbiAgICBpZiAoc2hvdWxkT3Blbikge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgdGhpcy5zaG93RHJvcGRvd25NZW51KCk7XG4gICAgICBpZiAodGhpcy5ydGVEcm9wZG93bkF1dG9mb2N1cygpKSB7XG4gICAgICAgIHdhaXRGb3JOZXh0RnJhbWUoKCkgPT4gZm9jdXNEcm9wZG93bkZpcnN0RWxlbWVudCh0aGlzLmRyb3Bkb3duSWQpKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBvbk1lbnVFdmVudChldmVudDogeyBldmVudDogRXZlbnQ7IGlkOiBzdHJpbmc7IGl0ZW0/OiBEcm9wZG93bkl0ZW1Db25maWcgfSk6IHZvaWQge1xuICAgIHRoaXMubWVudUV2ZW50LmVtaXQoZXZlbnQpO1xuICAgIGlmICghZXZlbnQuaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aCkge1xuICAgICAgdGhpcy5pc0FjdGl2ZS5zZXQoZmFsc2UpO1xuICAgICAgdGhpcy5kcm9wZG93blNlcnZpY2UuY2xvc2VBbGxNZW51cygpO1xuICAgIH1cbiAgfVxuXG4gIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCB0cmlnZ2VyID0gdGhpcy50cmlnZ2VyKCk7XG4gICAgaWYgKCF0cmlnZ2VyKSByZXR1cm47XG5cbiAgICBjb25zdCB0cmlnZ2VyU3Vic2NyaXB0aW9ucyA9IFtcbiAgICAgIHRyaWdnZXIuZHJvcGRvd25UcmlnZ2VyZWQuc3Vic2NyaWJlKCgpID0+IHRoaXMub25UcmlnZ2VyKCkpLFxuICAgICAgdHJpZ2dlci5kcm9wZG93bktleURvd24uc3Vic2NyaWJlKChldmVudDogS2V5Ym9hcmRFdmVudCkgPT4gdGhpcy5vblRyaWdnZXJLZXlFdmVudChldmVudCkpLFxuICAgICAgdHJpZ2dlci5kcm9wZG93blRyaWdnZXJDbGVhckNvbnRlbnQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2VEcm9wZG93bigpKSxcbiAgICAgIHRyaWdnZXIuZHJvcGRvd25UcmlnZ2VyT3BlbkRyb3Bkb3duLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNob3dEcm9wZG93bk1lbnUoKSksXG4gICAgICB0cmlnZ2VyLmRyb3Bkb3duVHJpZ2dlckNsb3NlRHJvcGRvd24uc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2VEcm9wZG93bigpKSxcbiAgICBdO1xuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gdHJpZ2dlclN1YnNjcmlwdGlvbnMuZm9yRWFjaCgoc3Vic2NyaXB0aW9uKSA9PiBzdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKSkpO1xuICB9XG5cbiAgc2hvd0Ryb3Bkb3duTWVudSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlSXRlbUV2ZW50KCk7XG4gICAgaWYgKHRoaXMuZHJvcGRvd25NZW51UmVmKSB7XG4gICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5kZXN0cm95KCk7XG4gICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZiA9IG51bGw7XG4gICAgfVxuXG4gICAgdGhpcy5kcm9wZG93bk1lbnVSZWYgPSB0aGlzLm92ZXJsYXlTZXJ2aWNlLmNyZWF0ZShEcm9wZG93bk1lbnVDb21wb25lbnQsIHRoaXMudmlld0NvbnRhaW5lclJlZik7XG5cbiAgICBjb25zdCBtZW51SWQgPSB0aGlzLnJ0ZURyb3Bkb3duSWQoKSB8fCB0aGlzLmRyb3Bkb3duSWQ7XG5cbiAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5zZXRJbnB1dChcIm1lbnVJZFwiLCBtZW51SWQpO1xuXG4gICAgdGhpcy5kcm9wZG93blNlcnZpY2Uub3Blbk1lbnUobWVudUlkKTtcblxuICAgIHRoaXMuYXNzaWduSW5wdXRzKCk7XG4gICAgdGhpcy5wb3NpdGlvbkRyb3Bkb3duTWVudSh0aGlzLnJ0ZURyb3Bkb3duUG9zaXRpb24oKSk7XG4gICAgdGhpcy5hZGRDbGlja091dHNpZGVMaXN0ZW5lcigpO1xuXG4gICAgdGhpcy5pdGVtRXZlbnRTdWJzY3JpcHRpb24gPSB0aGlzLmRyb3Bkb3duTWVudVJlZi5pbnN0YW5jZS5pdGVtRXZlbnQuc3Vic2NyaWJlKFxuICAgICAgKGV2ZW50OiB7IGV2ZW50OiBFdmVudDsgaWQ6IHN0cmluZzsgaXRlbT86IERyb3Bkb3duSXRlbUNvbmZpZyB9KSA9PiB0aGlzLm9uTWVudUV2ZW50KGV2ZW50KSxcbiAgICApO1xuXG4gICAgY29uc3QgZHJvcGRvd25TdGF0ZVN1YnNjcmlwdGlvbiA9IHRoaXMuZHJvcGRvd25TZXJ2aWNlLnN0YXRlJC5zdWJzY3JpYmUoKHN0YXRlKSA9PiB7XG4gICAgICBpZiAoc3RhdGUgPT09IG51bGwpIHtcbiAgICAgICAgaWYgKHRoaXMuZHJvcGRvd25NZW51UmVmKSB7XG4gICAgICAgICAgdGhpcy51bnN1YnNjcmliZUl0ZW1FdmVudCgpO1xuICAgICAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZiA9IG51bGw7XG5cbiAgICAgICAgICB0aGlzLnJlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCk7XG4gICAgICAgICAgZHJvcGRvd25TdGF0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgIGNvbnN0IGJ1dHRvblRyaWdnZXIgPSB0aGlzLnRyaWdnZXIoKT8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3JBbGwoXG4gICAgICAgICAgICBGT0NVU0FCTEVfQlVUVE9OU19RVUVSWSxcbiAgICAgICAgICApWzBdIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgIGlmIChidXR0b25UcmlnZ2VyKSB7XG4gICAgICAgICAgICBidXR0b25UcmlnZ2VyLmZvY3VzKCk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMudHJpZ2dlcigpPy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuZGVzdHJveVJlZi5vbkRlc3Ryb3koKCkgPT4gZHJvcGRvd25TdGF0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpKTtcbiAgfVxuXG4gIHByaXZhdGUgYXNzaWduSW5wdXRzKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRyb3Bkb3duTWVudVJlZikge1xuICAgICAgY29uc3QgaXRlbXMgPSB0aGlzLm1lbnUoKT8uaXRlbXMoKSA/PyBbXTtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwiaXRlbXNcIiwgaXRlbXMpO1xuICAgICAgdGhpcy5kcm9wZG93bk1lbnVSZWYuc2V0SW5wdXQoXCJoZWFkZXJUZW1wbGF0ZVwiLCB0aGlzLm1lbnUoKT8uaGVhZGVyRGlyZWN0aXZlKCk/LnRlbXBsYXRlUmVmKTtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwiZm9vdGVyVGVtcGxhdGVcIiwgdGhpcy5tZW51KCk/LmZvb3RlckRpcmVjdGl2ZSgpPy50ZW1wbGF0ZVJlZik7XG4gICAgfVxuXG4gICAgdGhpcy5hc3NpZ25XaWR0aCgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3NpZ25XaWR0aCgpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZHJvcGRvd25NZW51UmVmKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgd2lkdGggPSB0aGlzLm1lbnVJbnB1dHMoKT8ud2lkdGggPz8gdGhpcy5ydGVEcm9wZG93bldpZHRoKCk7XG4gICAgaWYgKHdpZHRoICE9PSB1bmRlZmluZWQgJiYgd2lkdGggIT09IG51bGwpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25NZW51UmVmLnNldElucHV0KFwid2lkdGhcIiwgd2lkdGgpO1xuICAgICAgd2FpdEZvck5leHRGcmFtZSgoKSA9PiB0aGlzLmRyb3Bkb3duTWVudVJlZj8uc2V0SW5wdXQoXCJpc09wZW5cIiwgdHJ1ZSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmRyb3Bkb3duTWVudVJlZi5zZXRJbnB1dChcImlzT3BlblwiLCB0cnVlKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHBvc2l0aW9uRHJvcGRvd25NZW51KHBvc2l0aW9uOiBQb3NpdGlvbiA9IFwiYm90dG9tXCIpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kcm9wZG93bk1lbnVSZWYgJiYgdGhpcy50cmlnZ2VyKCkpIHtcbiAgICAgIGNvbnN0IGRyb3Bkb3duTWVudUVsZW1lbnQgPSB0aGlzLmRyb3Bkb3duTWVudVJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xuICAgICAgY29uc3QgdHJpZ2dlckVsZW1lbnQgPSB0aGlzLnRyaWdnZXIoKT8uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuXG4gICAgICBpZiAodHJpZ2dlckVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkcm9wZG93bk1lbnVFbGVtZW50LCBcImRpc3BsYXlcIiwgXCJibG9ja1wiKTtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICBjb25zdCBjb21wdXRlZFBvc2l0aW9uOiBFeGNsdWRlPFBvc2l0aW9uLCBcImF1dG9cIj4gPVxuICAgICAgICAgIHBvc2l0aW9uID09PSBcImF1dG9cIlxuICAgICAgICAgICAgPyBnZXRBdXRvUGxhY2VtZW50RHJvcGRvd24oe1xuICAgICAgICAgICAgICAgIGhvc3RFbGVtZW50OiB0cmlnZ2VyRWxlbWVudCxcbiAgICAgICAgICAgICAgICBjYXN0ZWRFbGVtZW50OiBkcm9wZG93bk1lbnVFbGVtZW50LFxuICAgICAgICAgICAgICAgIGRlZmF1bHRQb3NpdGlvbjogXCJib3R0b21cIixcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIDogcG9zaXRpb247XG4gICAgICAgIGNvbnN0IGF1dG9BbGlnbm1lbnQgPVxuICAgICAgICAgIHRoaXMucnRlRHJvcGRvd25BbGlnbm1lbnQoKSA/PyBnZXRBdXRvQWxpZ25tZW50KHRyaWdnZXJFbGVtZW50LCBkcm9wZG93bk1lbnVFbGVtZW50LCBjb21wdXRlZFBvc2l0aW9uKTtcbiAgICAgICAgY29uc3QgY29tcHV0ZWRDb29yZGluYXRlcyA9IGdldENvb3JkaW5hdGVzKFxuICAgICAgICAgIGNvbXB1dGVkUG9zaXRpb24sXG4gICAgICAgICAgdHJpZ2dlckVsZW1lbnQsXG4gICAgICAgICAgZHJvcGRvd25NZW51RWxlbWVudC5jaGlsZHJlblswXSxcbiAgICAgICAgICB0aGlzLnJ0ZURyb3Bkb3duT2Zmc2V0KCksXG4gICAgICAgICAgYXV0b0FsaWdubWVudCxcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRyb3Bkb3duTWVudUVsZW1lbnQsIFwidG9wXCIsIGAke2NvbXB1dGVkQ29vcmRpbmF0ZXMudG9wfXB4YCk7XG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZHJvcGRvd25NZW51RWxlbWVudCwgXCJsZWZ0XCIsIGAke2NvbXB1dGVkQ29vcmRpbmF0ZXMubGVmdH1weGApO1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZHJvcGRvd25NZW51RWxlbWVudCwgXCJvcGFjaXR5XCIsIFwiMVwiKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHVuc3Vic2NyaWJlSXRlbUV2ZW50KCk6IHZvaWQge1xuICAgIHRoaXMuaXRlbUV2ZW50U3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuaXRlbUV2ZW50U3Vic2NyaXB0aW9uID0gbnVsbDtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGFuZGxlQ2xpY2tPdXRzaWRlID0gKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCA9PiB7XG4gICAgY29uc3QgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEVsZW1lbnQ7XG5cbiAgICBjb25zdCBjbGlja2VkSW5UcmlnZ2VyID0gdGhpcy5ob3N0RWxlbWVudC5jb250YWlucyh0YXJnZXQpO1xuICAgIGNvbnN0IGRyb3Bkb3duTWVudUVsZW1lbnQgPSB0aGlzLmRyb3Bkb3duTWVudVJlZj8ubG9jYXRpb24ubmF0aXZlRWxlbWVudCBhcyBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZDtcbiAgICBjb25zdCBjbGlja2VkSW5UaGlzTWVudSA9IGRyb3Bkb3duTWVudUVsZW1lbnQgPyBkcm9wZG93bk1lbnVFbGVtZW50LmNvbnRhaW5zKHRhcmdldCkgOiBmYWxzZTtcbiAgICBpZiAoY2xpY2tlZEluVHJpZ2dlciB8fCBjbGlja2VkSW5UaGlzTWVudSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgIHRoaXMuY2xpY2tlZE91dHNpZGUuZW1pdCgpO1xuICB9O1xuXG4gIHByaXZhdGUgYWRkQ2xpY2tPdXRzaWRlTGlzdGVuZXIoKTogdm9pZCB7XG4gICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcihcIm1vdXNlZG93blwiLCB0aGlzLmhhbmRsZUNsaWNrT3V0c2lkZSk7XG4gIH1cblxuICBwcml2YXRlIHJlbW92ZUNsaWNrT3V0c2lkZUxpc3RlbmVyKCk6IHZvaWQge1xuICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoXCJtb3VzZWRvd25cIiwgdGhpcy5oYW5kbGVDbGlja091dHNpZGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBjbG9zZURyb3Bkb3duKCk6IHZvaWQge1xuICAgIHRoaXMuZHJvcGRvd25NZW51UmVmPy5zZXRJbnB1dChcImlzT3BlblwiLCBmYWxzZSk7XG4gICAgdGhpcy5pc0FjdGl2ZS5zZXQoZmFsc2UpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRyb3Bkb3duU2VydmljZS5jbG9zZUFsbE1lbnVzKCk7XG4gICAgfSwgRFJPUERPV05fQU5JTUFUSU9OX0RVUkFUSU9OKTtcbiAgfVxufVxuIl19
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELDRDQUE0QztBQUM1QyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN6RCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUN6RixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUNoRixPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIE1haW4gZHJvcGRvd24gbW9kdWxlIC0gaW1wb3J0IHRoaXMgdG8gZ2V0IGV2ZXJ5dGhpbmdcbmV4cG9ydCB7IERyb3Bkb3duTW9kdWxlIH0gZnJvbSBcIi4vZHJvcGRvd24ubW9kdWxlXCI7XG5cbi8vIEluZGl2aWR1YWwgZXhwb3J0cyBmb3IgYWR2YW5jZWQgdXNlIGNhc2VzXG5leHBvcnQgeyBEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gXCIuL2Ryb3Bkb3duLmRpcmVjdGl2ZVwiO1xuZXhwb3J0IHsgRHJvcGRvd25UcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSBcIi4vZHJvcGRvd24tdHJpZ2dlci9kcm9wZG93bi10cmlnZ2VyLmRpcmVjdGl2ZVwiO1xuZXhwb3J0IHsgRHJvcGRvd25NZW51Q29tcG9uZW50IH0gZnJvbSBcIi4vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgRHJvcGRvd25JdGVtQ29tcG9uZW50IH0gZnJvbSBcIi4vZHJvcGRvd24taXRlbS9kcm9wZG93bi1pdGVtLmNvbXBvbmVudFwiO1xuIl19
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kcy1ydGUtbGliL3NyYy9saWIvY29tcG9uZW50cy9kcm9wZG93bi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFbkQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDekYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDaEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgeyBEcm9wZG93bk1vZHVsZSB9IGZyb20gXCIuL2Ryb3Bkb3duLm1vZHVsZVwiO1xuXG5leHBvcnQgeyBEcm9wZG93bkRpcmVjdGl2ZSB9IGZyb20gXCIuL2Ryb3Bkb3duLmRpcmVjdGl2ZVwiO1xuZXhwb3J0IHsgRHJvcGRvd25UcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSBcIi4vZHJvcGRvd24tdHJpZ2dlci9kcm9wZG93bi10cmlnZ2VyLmRpcmVjdGl2ZVwiO1xuZXhwb3J0IHsgRHJvcGRvd25NZW51Q29tcG9uZW50IH0gZnJvbSBcIi4vZHJvcGRvd24tbWVudS9kcm9wZG93bi1tZW51LmNvbXBvbmVudFwiO1xuZXhwb3J0IHsgRHJvcGRvd25JdGVtQ29tcG9uZW50IH0gZnJvbSBcIi4vZHJvcGRvd24taXRlbS9kcm9wZG93bi1pdGVtLmNvbXBvbmVudFwiO1xuZXhwb3J0IHR5cGUgeyBEcm9wZG93bkl0ZW1Db25maWcgfSBmcm9tIFwiLi9kcm9wZG93bi50eXBlc1wiO1xuIl19