@leanix/components 0.4.191 → 0.4.193

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 (41) hide show
  1. package/esm2022/lib/core-ui/components/button/button.component.mjs +3 -3
  2. package/esm2022/lib/core-ui/components/button-group/button-group.component.mjs +3 -3
  3. package/esm2022/lib/core-ui/components/card/card.component.mjs +3 -3
  4. package/esm2022/lib/core-ui/components/collapsible/collapsible.component.mjs +3 -3
  5. package/esm2022/lib/core-ui/components/colored-label/colored-label.component.mjs +3 -3
  6. package/esm2022/lib/core-ui/components/empty-state/empty-state.component.mjs +3 -3
  7. package/esm2022/lib/core-ui/components/spinner/spinner.component.mjs +3 -3
  8. package/esm2022/lib/core-ui/components/stepper/stepper.component.mjs +3 -3
  9. package/esm2022/lib/core-ui/components/table/table-header/table-header.component.mjs +3 -3
  10. package/esm2022/lib/forms-ui/components/basic-dropdown/basic-dropdown.component.mjs +3 -3
  11. package/esm2022/lib/forms-ui/components/basic-dropdown-item/basic-dropdown-item.component.mjs +3 -3
  12. package/esm2022/lib/forms-ui/components/cdk-options-dropdown/cdk-options-dropdown.component.mjs +3 -3
  13. package/esm2022/lib/forms-ui/components/cdk-options-sub-dropdown/cdk-options-sub-dropdown.component.mjs +3 -3
  14. package/esm2022/lib/forms-ui/components/currency/currency-input.component.mjs +3 -3
  15. package/esm2022/lib/forms-ui/components/date-input/date-input.component.mjs +3 -3
  16. package/esm2022/lib/forms-ui/components/date-picker-ui/datepicker-inner.component.mjs +3 -3
  17. package/esm2022/lib/forms-ui/components/date-picker-ui/datepicker.component.mjs +7 -7
  18. package/esm2022/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list-item/drag-and-drop-list-item.component.mjs +3 -3
  19. package/esm2022/lib/forms-ui/components/drag-and-drop-list/drag-and-drop-list.component.mjs +3 -3
  20. package/esm2022/lib/forms-ui/components/expanded-dropdown/expanded-dropdown.component.mjs +3 -3
  21. package/esm2022/lib/forms-ui/components/multi-select/multi-select.component.mjs +3 -3
  22. package/esm2022/lib/forms-ui/components/option/option.component.mjs +3 -3
  23. package/esm2022/lib/forms-ui/components/option-group/option-group.component.mjs +3 -3
  24. package/esm2022/lib/forms-ui/components/option-group-dropdown/option-group-dropdown.component.mjs +3 -3
  25. package/esm2022/lib/forms-ui/components/options-dropdown/options-dropdown.component.mjs +3 -3
  26. package/esm2022/lib/forms-ui/components/options-sub-dropdown/options-sub-dropdown.component.mjs +3 -3
  27. package/esm2022/lib/forms-ui/components/picker/picker.component.mjs +3 -3
  28. package/esm2022/lib/forms-ui/components/picker-option/picker-option.component.mjs +3 -3
  29. package/esm2022/lib/forms-ui/components/pill-list/pill-list.component.mjs +3 -3
  30. package/esm2022/lib/forms-ui/components/select-list/select-list.component.mjs +3 -3
  31. package/esm2022/lib/forms-ui/components/single-select/single-select.component.mjs +3 -3
  32. package/esm2022/lib/forms-ui/components/sorting-dropdown/sorting-dropdown.component.mjs +3 -3
  33. package/esm2022/lib/modal-ui/components/modal/modal.component.mjs +3 -3
  34. package/esm2022/lib/modal-ui/components/modal-footer/modal-footer.component.mjs +3 -3
  35. package/esm2022/lib/modal-ui/components/modal-header/modal-header.component.mjs +3 -3
  36. package/esm2022/lib/popover-ui/components/popover/popover.component.mjs +3 -3
  37. package/esm2022/lib/tab-ui/components/tab/tab.component.mjs +3 -3
  38. package/esm2022/lib/tab-ui/components/tab-group/tab-group.component.mjs +3 -3
  39. package/fesm2022/leanix-components.mjs +80 -80
  40. package/fesm2022/leanix-components.mjs.map +1 -1
  41. package/package.json +1 -1
@@ -238,11 +238,11 @@ export class OptionsDropdownComponent {
238
238
  this.lxButton?.dispatchEvent(newEvent);
239
239
  }
240
240
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: OptionsDropdownComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.ScrollStrategyOptions }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Component }); }
241
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: OptionsDropdownComponent, isStandalone: true, selector: "lx-options-dropdown", inputs: { align: "align", closeOnScroll: "closeOnScroll", disabled: "disabled", maxHeight: "maxHeight", closeOnSelect: "closeOnSelect", overlayPositioning: "overlayPositioning", dropdownClass: "dropdownClass" }, outputs: { opened: "opened", closed: "closed", closedWithoutSelection: "closedWithoutSelection" }, queries: [{ propertyName: "trigger", first: true, predicate: KeyboardActionSourceDirective, descendants: true }, { propertyName: "_options", predicate: OptionComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"!overlayPositioning\">\n <div lxAutoclose (autoclose)=\"closeDropdown()\">\n <div class=\"triggerContainer\" (click)=\"toggleOpen()\">\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\" />\n </div>\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate\" />\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"overlayPositioning\">\n <div class=\"overlayOrigin triggerContainer\" (click)=\"toggleOpen()\" cdkOverlayOrigin #selectOrigin=\"cdkOverlayOrigin\">\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\" />\n </div>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"selectOrigin\"\n [cdkConnectedOverlayScrollStrategy]=\"overlayScrollStrategy\"\n [cdkConnectedOverlayOpen]=\"open\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n (overlayOutsideClick)=\"closeDropdown(); closedWithoutSelection.emit()\"\n >\n <div class=\"overlayDropdown\">\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate\" />\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #triggerTemplate>\n <ng-content select=\"[lxKeyboardActionSource]\" />\n</ng-template>\n\n<ng-template #dropdownTemplate>\n <ul\n *ngIf=\"open\"\n [id]=\"listboxId\"\n [class]=\"dropdownClass\"\n [class.left]=\"align === 'left'\"\n [class.showScrollbar]=\"maxHeight !== 'none'\"\n [style.max-height]=\"maxHeight\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.aria-owns]=\"optionIds.join(' ')\"\n >\n <ng-content />\n </ul>\n</ng-template>\n", styles: [":host{display:inline-block;position:relative}.overlayDropdown ul{position:static}ul{position:absolute;background-color:#fff;border-radius:3px;box-shadow:0 8px 12px 2px #00000026;border:solid 1px #e1e5eb;text-align:left;list-style:none;margin:0;padding-left:0;z-index:20;white-space:nowrap}ul::-webkit-scrollbar{width:.5em;height:.5em;background-color:transparent}ul::-webkit-scrollbar-thumb{background-color:#c2c9d6;border-radius:6px}ul::-webkit-scrollbar-track-piece{background-color:transparent}ul.left{right:0;padding-right:0}ul.showScrollbar{overflow-y:auto}.triggerContainer{display:inline-block}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: AutocloseDirective, selector: "[lxAutoclose]", inputs: ["autocloseGroup"], outputs: ["autoclose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
241
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: OptionsDropdownComponent, isStandalone: true, selector: "lx-options-dropdown", inputs: { align: "align", closeOnScroll: "closeOnScroll", disabled: "disabled", maxHeight: "maxHeight", closeOnSelect: "closeOnSelect", overlayPositioning: "overlayPositioning", dropdownClass: "dropdownClass" }, outputs: { opened: "opened", closed: "closed", closedWithoutSelection: "closedWithoutSelection" }, queries: [{ propertyName: "trigger", first: true, predicate: KeyboardActionSourceDirective, descendants: true }, { propertyName: "_options", predicate: OptionComponent, descendants: true }], ngImport: i0, template: "<ng-container *ngIf=\"!overlayPositioning\">\n <div lxAutoclose (autoclose)=\"closeDropdown()\">\n <div class=\"triggerContainer\" (click)=\"toggleOpen()\">\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\"></ng-container>\n </div>\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate\"></ng-container>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"overlayPositioning\">\n <div class=\"overlayOrigin triggerContainer\" (click)=\"toggleOpen()\" cdkOverlayOrigin #selectOrigin=\"cdkOverlayOrigin\">\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\"></ng-container>\n </div>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"selectOrigin\"\n [cdkConnectedOverlayScrollStrategy]=\"overlayScrollStrategy\"\n [cdkConnectedOverlayOpen]=\"open\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n (overlayOutsideClick)=\"closeDropdown(); closedWithoutSelection.emit()\"\n >\n <div class=\"overlayDropdown\">\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate\"></ng-container>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #triggerTemplate>\n <ng-content select=\"[lxKeyboardActionSource]\"></ng-content>\n</ng-template>\n\n<ng-template #dropdownTemplate>\n <ul\n *ngIf=\"open\"\n [id]=\"listboxId\"\n [class]=\"dropdownClass\"\n [class.left]=\"align === 'left'\"\n [class.showScrollbar]=\"maxHeight !== 'none'\"\n [style.max-height]=\"maxHeight\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.aria-owns]=\"optionIds.join(' ')\"\n >\n <ng-content></ng-content>\n </ul>\n</ng-template>\n", styles: [":host{display:inline-block;position:relative}.overlayDropdown ul{position:static}ul{position:absolute;background-color:#fff;border-radius:3px;box-shadow:0 8px 12px 2px #00000026;border:solid 1px #e1e5eb;text-align:left;list-style:none;margin:0;padding-left:0;z-index:20;white-space:nowrap}ul::-webkit-scrollbar{width:.5em;height:.5em;background-color:transparent}ul::-webkit-scrollbar-thumb{background-color:#c2c9d6;border-radius:6px}ul::-webkit-scrollbar-track-piece{background-color:transparent}ul.left{right:0;padding-right:0}ul.showScrollbar{overflow-y:auto}.triggerContainer{display:inline-block}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "directive", type: CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: AutocloseDirective, selector: "[lxAutoclose]", inputs: ["autocloseGroup"], outputs: ["autoclose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
242
242
  }
243
243
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: OptionsDropdownComponent, decorators: [{
244
244
  type: Component,
245
- args: [{ selector: 'lx-options-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, NgTemplateOutlet, CdkOverlayOrigin, CdkConnectedOverlay, AutocloseDirective], template: "<ng-container *ngIf=\"!overlayPositioning\">\n <div lxAutoclose (autoclose)=\"closeDropdown()\">\n <div class=\"triggerContainer\" (click)=\"toggleOpen()\">\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\" />\n </div>\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate\" />\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"overlayPositioning\">\n <div class=\"overlayOrigin triggerContainer\" (click)=\"toggleOpen()\" cdkOverlayOrigin #selectOrigin=\"cdkOverlayOrigin\">\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\" />\n </div>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"selectOrigin\"\n [cdkConnectedOverlayScrollStrategy]=\"overlayScrollStrategy\"\n [cdkConnectedOverlayOpen]=\"open\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n (overlayOutsideClick)=\"closeDropdown(); closedWithoutSelection.emit()\"\n >\n <div class=\"overlayDropdown\">\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate\" />\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #triggerTemplate>\n <ng-content select=\"[lxKeyboardActionSource]\" />\n</ng-template>\n\n<ng-template #dropdownTemplate>\n <ul\n *ngIf=\"open\"\n [id]=\"listboxId\"\n [class]=\"dropdownClass\"\n [class.left]=\"align === 'left'\"\n [class.showScrollbar]=\"maxHeight !== 'none'\"\n [style.max-height]=\"maxHeight\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.aria-owns]=\"optionIds.join(' ')\"\n >\n <ng-content />\n </ul>\n</ng-template>\n", styles: [":host{display:inline-block;position:relative}.overlayDropdown ul{position:static}ul{position:absolute;background-color:#fff;border-radius:3px;box-shadow:0 8px 12px 2px #00000026;border:solid 1px #e1e5eb;text-align:left;list-style:none;margin:0;padding-left:0;z-index:20;white-space:nowrap}ul::-webkit-scrollbar{width:.5em;height:.5em;background-color:transparent}ul::-webkit-scrollbar-thumb{background-color:#c2c9d6;border-radius:6px}ul::-webkit-scrollbar-track-piece{background-color:transparent}ul.left{right:0;padding-right:0}ul.showScrollbar{overflow-y:auto}.triggerContainer{display:inline-block}\n"] }]
245
+ args: [{ selector: 'lx-options-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, NgTemplateOutlet, CdkOverlayOrigin, CdkConnectedOverlay, AutocloseDirective], template: "<ng-container *ngIf=\"!overlayPositioning\">\n <div lxAutoclose (autoclose)=\"closeDropdown()\">\n <div class=\"triggerContainer\" (click)=\"toggleOpen()\">\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\"></ng-container>\n </div>\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate\"></ng-container>\n </div>\n</ng-container>\n\n<ng-container *ngIf=\"overlayPositioning\">\n <div class=\"overlayOrigin triggerContainer\" (click)=\"toggleOpen()\" cdkOverlayOrigin #selectOrigin=\"cdkOverlayOrigin\">\n <ng-container [ngTemplateOutlet]=\"triggerTemplate\"></ng-container>\n </div>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"selectOrigin\"\n [cdkConnectedOverlayScrollStrategy]=\"overlayScrollStrategy\"\n [cdkConnectedOverlayOpen]=\"open\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n (overlayOutsideClick)=\"closeDropdown(); closedWithoutSelection.emit()\"\n >\n <div class=\"overlayDropdown\">\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate\"></ng-container>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #triggerTemplate>\n <ng-content select=\"[lxKeyboardActionSource]\"></ng-content>\n</ng-template>\n\n<ng-template #dropdownTemplate>\n <ul\n *ngIf=\"open\"\n [id]=\"listboxId\"\n [class]=\"dropdownClass\"\n [class.left]=\"align === 'left'\"\n [class.showScrollbar]=\"maxHeight !== 'none'\"\n [style.max-height]=\"maxHeight\"\n role=\"listbox\"\n tabindex=\"-1\"\n [attr.aria-owns]=\"optionIds.join(' ')\"\n >\n <ng-content></ng-content>\n </ul>\n</ng-template>\n", styles: [":host{display:inline-block;position:relative}.overlayDropdown ul{position:static}ul{position:absolute;background-color:#fff;border-radius:3px;box-shadow:0 8px 12px 2px #00000026;border:solid 1px #e1e5eb;text-align:left;list-style:none;margin:0;padding-left:0;z-index:20;white-space:nowrap}ul::-webkit-scrollbar{width:.5em;height:.5em;background-color:transparent}ul::-webkit-scrollbar-thumb{background-color:#c2c9d6;border-radius:6px}ul::-webkit-scrollbar-track-piece{background-color:transparent}ul.left{right:0;padding-right:0}ul.showScrollbar{overflow-y:auto}.triggerContainer{display:inline-block}\n"] }]
246
246
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.ScrollStrategyOptions }, { type: i0.Renderer2 }], propDecorators: { align: [{
247
247
  type: Input
248
248
  }], closeOnScroll: [{
@@ -270,4 +270,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
270
270
  }], closedWithoutSelection: [{
271
271
  type: Output
272
272
  }] } });
273
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL29wdGlvbnMtZHJvcGRvd24vb3B0aW9ucy1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL29wdGlvbnMtZHJvcGRvd24vb3B0aW9ucy1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQTRELE1BQU0sc0JBQXNCLENBQUM7QUFDdkksT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6SSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtREFBbUQsQ0FB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O1FBQ0gsTUFBTSxRQUFRLEdBQUcsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztRQUVoRSxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6QyxDQUFDOzhHQWpVVSx3QkFBd0I7a0dBQXhCLHdCQUF3QiwyYUFVckIsNkJBQTZCLDhEQUMxQixlQUFlLGdEQzNDbEMsNGdEQThDQSxxcEJEaEJZLElBQUksNkZBQUUsZ0JBQWdCLG9KQUFFLGdCQUFnQix1SUFBRSxtQkFBbUIsNCtCQUFFLGtCQUFrQjs7MkZBRWhGLHdCQUF3QjtrQkFScEMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUM7a0pBS25GLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUN1QyxPQUFPO3NCQUFuRCxZQUFZO3VCQUFDLDZCQUE2QjtnQkFFM0MsUUFBUTtzQkFEUCxlQUFlO3VCQUFDLGVBQWUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSTdDLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csc0JBQXNCO3NCQUEvQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrQ29ubmVjdGVkT3ZlcmxheSwgQ2RrT3ZlcmxheU9yaWdpbiwgQ29ubmVjdGVkUG9zaXRpb24sIFNjcm9sbFN0cmF0ZWd5LCBTY3JvbGxTdHJhdGVneU9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcGljaywgdW5pcXVlSWQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmcm9tRXZlbnQsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRlbGF5LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXV0b2Nsb3NlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS11aS9kaXJlY3RpdmVzL2F1dG9jbG9zZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgS2V5Ym9hcmRBY3Rpb25Tb3VyY2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2tleWJvYXJkLWFjdGlvbi1zb3VyY2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEtleWJvYXJkU2VsZWN0QWN0aW9uIH0gZnJvbSAnLi4va2V5Ym9hcmQtc2VsZWN0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9vcHRpb24vb3B0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LW9wdGlvbnMtZHJvcGRvd24nLFxuICB0ZW1wbGF0ZVVybDogJ29wdGlvbnMtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnb3B0aW9ucy1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIENka092ZXJsYXlPcmlnaW4sIENka0Nvbm5lY3RlZE92ZXJsYXksIEF1dG9jbG9zZURpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgT3B0aW9uc0Ryb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgTkFNRSA9ICdPcHRpb25zRHJvcGRvd25Db21wb25lbnQnO1xuXG4gIEBJbnB1dCgpIGFsaWduOiAncmlnaHQnIHwgJ2xlZnQnID0gJ3JpZ2h0JztcbiAgQElucHV0KCkgY2xvc2VPblNjcm9sbDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtYXhIZWlnaHQ6IHN0cmluZyA9ICdub25lJztcbiAgQElucHV0KCkgY2xvc2VPblNlbGVjdDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIG92ZXJsYXlQb3NpdGlvbmluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkcm9wZG93bkNsYXNzOiBzdHJpbmcgPSAnJztcbiAgQENvbnRlbnRDaGlsZChLZXlib2FyZEFjdGlvblNvdXJjZURpcmVjdGl2ZSkgdHJpZ2dlciE6IEtleWJvYXJkQWN0aW9uU291cmNlRGlyZWN0aXZlO1xuICBAQ29udGVudENoaWxkcmVuKE9wdGlvbkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBfb3B0aW9ucyE6IFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ+O1xuICBvdmVybGF5U2Nyb2xsU3RyYXRlZ3k6IFNjcm9sbFN0cmF0ZWd5ID0gdGhpcy5jbG9zZU9uU2Nyb2xsID8gdGhpcy5zY3JvbGxTdHJhdGVnaWVzLmNsb3NlKCkgOiB0aGlzLnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpO1xuXG4gIEBPdXRwdXQoKSBvcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZWRXaXRob3V0U2VsZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGdldCBvdmVybGF5UG9zaXRpb25zKCk6IENvbm5lY3RlZFBvc2l0aW9uW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIG9yaWdpblg6IHRoaXMuYWxpZ24gPT09ICdyaWdodCcgPyAnc3RhcnQnIDogJ2VuZCcsXG4gICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICBvdmVybGF5WDogdGhpcy5hbGlnbiA9PT0gJ3JpZ2h0JyA/ICdzdGFydCcgOiAnZW5kJyxcbiAgICAgICAgb3ZlcmxheVk6ICd0b3AnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBvcmlnaW5YOiB0aGlzLmFsaWduID09PSAncmlnaHQnID8gJ3N0YXJ0JyA6ICdlbmQnLFxuICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgb3ZlcmxheVg6IHRoaXMuYWxpZ24gPT09ICdyaWdodCcgPyAnc3RhcnQnIDogJ2VuZCcsXG4gICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJ1xuICAgICAgfVxuICAgIF07XG4gIH1cblxuICBzZXQgb3Blbih2YWx1ZSkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fb3BlbiA9IHZhbHVlO1xuICAgIGlmICh0aGlzLmx4QnV0dG9uKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmx4QnV0dG9uLCAnYXJpYS1leHBhbmRlZCcsIHRoaXMuX29wZW4udG9TdHJpbmcoKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHJpZ2dlcikge1xuICAgICAgLy8gRG9uJ3QgZW1pdCBrZXlib2FyZCBhY3Rpb25zIHdoaWxlIHRoZSBkcm9wZG93biBpcyBub3Qgb3BlbiB5ZXQuXG4gICAgICB0aGlzLnRyaWdnZXIuZG9udEVtaXQgPSAhdGhpcy5vcGVuO1xuICAgIH1cbiAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICB0aGlzLmlzU3ViZHJvcGRvd25FeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXRJbml0aWFsSGlnaGxpZ2h0aW5nSW5kZXgoKTtcbiAgICAgIHRoaXMub3BlbmVkLmVtaXQoKTtcbiAgICB9XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rpb24ubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBnZXQgb3BlbigpIHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbjtcbiAgfVxuXG4gIGdldCBvcHRpb25zKCk6IE9wdGlvbkNvbXBvbmVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucz8udG9BcnJheSgpIHx8IFtdO1xuICB9XG5cbiAgZ2V0IG9wdGlvbklkcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5tYXAoKG8pID0+IG8ub3B0aW9uSWQpO1xuICB9XG5cbiAgZ2V0IGx4QnV0dG9uKCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy50cmlnZ2VyPy5uYXRpdmVFbGVtZW50KCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICBwcml2YXRlIF9vcGVuID0gZmFsc2U7XG4gIHByaXZhdGUgaXNTdWJkcm9wZG93bkV4cGFuZGVkID0gZmFsc2U7XG4gIHJlYWRvbmx5IGxpc3Rib3hJZDogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbFN0cmF0ZWdpZXM6IFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7XG4gICAgdGhpcy5saXN0Ym94SWQgPSB1bmlxdWVJZCgnbGlzdGJveCcpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMudHJpZ2dlci5kb250RW1pdCA9ICF0aGlzLm9wZW47XG5cbiAgICBjb25zdCBvcHRpb25zQ2hhbmdlcyQgPSB0aGlzLl9vcHRpb25zLmNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLl9vcHRpb25zKSxcbiAgICAgIG1hcCgob3B0aW9uczogUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudD4pID0+IG9wdGlvbnMudG9BcnJheSgpKVxuICAgICk7XG5cbiAgICB0aGlzLnRyaWdnZXIua2V5Ym9hcmRBY3Rpb25zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoa2V5Ym9hcmRTZWxlY3RBY3Rpb24pID0+IGtleWJvYXJkU2VsZWN0QWN0aW9uID09PSBLZXlib2FyZFNlbGVjdEFjdGlvbi5ORVhUKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JCwgb3B0aW9uc0NoYW5nZXMkLCAoXywgaW5kZXgsIG9wdGlvbnMpID0+IHRoaXMubmV4dChpbmRleCwgb3B0aW9ucykpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLmhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkKTtcblxuICAgIHRoaXMudHJpZ2dlci5rZXlib2FyZEFjdGlvbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChrZXlib2FyZFNlbGVjdEFjdGlvbikgPT4ga2V5Ym9hcmRTZWxlY3RBY3Rpb24gPT09IEtleWJvYXJkU2VsZWN0QWN0aW9uLlBSRVYpLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkLCBvcHRpb25zQ2hhbmdlcyQsIChfLCBpbmRleCwgb3B0aW9ucykgPT4gdGhpcy5wcmV2KGluZGV4LCBvcHRpb25zKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHRoaXMuaGlnaGxpZ2h0ZWRPcHRpb25JbmRleCQpO1xuXG4gICAgdGhpcy50cmlnZ2VyLmtleWJvYXJkQWN0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGtleWJvYXJkU2VsZWN0QWN0aW9uKSA9PiBrZXlib2FyZFNlbGVjdEFjdGlvbiA9PT0gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uRklSU1QpLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkLCBvcHRpb25zQ2hhbmdlcyQsIChfLCBfaW5kZXgsIF9vcHRpb25zKSA9PiAwKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JCk7XG5cbiAgICB0aGlzLnRyaWdnZXIua2V5Ym9hcmRBY3Rpb25zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoa2V5Ym9hcmRTZWxlY3RBY3Rpb24pID0+IGtleWJvYXJkU2VsZWN0QWN0aW9uID09PSBLZXlib2FyZFNlbGVjdEFjdGlvbi5MQVNUKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JCwgb3B0aW9uc0NoYW5nZXMkLCAoXywgX2luZGV4LCBfb3B0aW9ucykgPT4gdGhpcy5vcHRpb25zLmxlbmd0aCAtIDEpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLmhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkKTtcblxuICAgIHRoaXMudHJpZ2dlci5rZXlib2FyZEFjdGlvbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChrZXlib2FyZFNlbGVjdEFjdGlvbikgPT4ga2V5Ym9hcmRTZWxlY3RBY3Rpb24gPT09IEtleWJvYXJkU2VsZWN0QWN0aW9uLkxFRlQpLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkLCBvcHRpb25zQ2hhbmdlcyQsIChfLCBpbmRleCwgb3B0aW9ucykgPT5cbiAgICAgICAgICB0aGlzLmlzU3ViZHJvcGRvd25FeHBhbmRlZCA/IHRoaXMuY29sbGFwc2UoaW5kZXgsIG9wdGlvbnMpIDogdGhpcy5leHBhbmQoaW5kZXgsIG9wdGlvbnMpXG4gICAgICAgICksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHRoaXMuaGlnaGxpZ2h0ZWRPcHRpb25JbmRleCQpO1xuXG4gICAgdGhpcy50cmlnZ2VyLmtleWJvYXJkQWN0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGtleWJvYXJkU2VsZWN0QWN0aW9uKSA9PiBrZXlib2FyZFNlbGVjdEFjdGlvbiA9PT0gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uUklHSFQpLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkLCBvcHRpb25zQ2hhbmdlcyQsIChfLCBpbmRleCwgb3B0aW9ucykgPT5cbiAgICAgICAgICB0aGlzLmlzU3ViZHJvcGRvd25FeHBhbmRlZCA/IHRoaXMuY29sbGFwc2UoaW5kZXgsIG9wdGlvbnMpIDogdGhpcy5leHBhbmQoaW5kZXgsIG9wdGlvbnMpXG4gICAgICAgICksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHRoaXMuaGlnaGxpZ2h0ZWRPcHRpb25JbmRleCQpO1xuXG4gICAgdGhpcy50cmlnZ2VyLmtleWJvYXJkQWN0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGtleWJvYXJkU2VsZWN0QWN0aW9uKSA9PiBrZXlib2FyZFNlbGVjdEFjdGlvbiA9PT0gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uQ0xPU0UpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgICB0aGlzLmNsb3NlZFdpdGhvdXRTZWxlY3Rpb24uZW1pdCgpO1xuICAgICAgICB0aGlzLmx4QnV0dG9uPy5mb2N1cygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnRyaWdnZXIua2V5Ym9hcmRBY3Rpb25zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoa2V5Ym9hcmRTZWxlY3RBY3Rpb24pID0+IGtleWJvYXJkU2VsZWN0QWN0aW9uID09PSBLZXlib2FyZFNlbGVjdEFjdGlvbi5FWEVDVVRFKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JCwgKF8sIGluZGV4KSA9PiBpbmRleCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChpbmRleCkgPT4ge1xuICAgICAgICB0aGlzLm9wdGlvbnNbaW5kZXhdPy5zZWxlY3RPcHRpb24oKTtcbiAgICAgICAgdGhpcy5seEJ1dHRvbj8uZm9jdXMoKTtcbiAgICAgIH0pO1xuXG4gICAgLyoqIENvbWJpbmVkIHN0cmVhbSBvZiBhbGwgb2YgdGhlIGNoaWxkIG9wdGlvbnMnIHNlbGVjdCBvdXRwdXRzLiAqL1xuICAgIHRoaXMuX29wdGlvbnMuY2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLl9vcHRpb25zKSxcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuY2xvc2VPblNlbGVjdCksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiBtZXJnZSguLi50aGlzLl9vcHRpb25zLm1hcCgob3B0aW9uKSA9PiBvcHRpb24uc2VsZWN0KSwgLi4udGhpcy5fb3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLnNlbGVjdGVkQ2xpY2spKSksXG4gICAgICAgIGRlbGF5KDApLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoX3ZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLl9vcHRpb25zLmNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBzdGFydFdpdGgodGhpcy5fb3B0aW9ucyksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiBtZXJnZSguLi50aGlzLl9vcHRpb25zLm1hcCgob3B0aW9uKSA9PiBvcHRpb24ua2V5RG93bkFjdGlvbikpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlT3B0aW9uS2V5RG93bihldmVudCk7XG4gICAgICB9KTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW29wdGlvbnNDaGFuZ2VzJCwgdGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JF0pXG4gICAgICAucGlwZShcbiAgICAgICAgZGVsYXkoMCksXG4gICAgICAgIG1hcCgoW29wdGlvbnMsIGluZGV4XTogW09wdGlvbkNvbXBvbmVudFtdLCBudW1iZXJdKSA9PiBvcHRpb25zW2luZGV4XSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChvcHRpb25Ub0JlSGlnaGxpZ2h0ZWQpID0+IHtcbiAgICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2goKG9wdGlvbikgPT4gb3B0aW9uLnNldEhpZ2hsaWdodGVkKG9wdGlvblRvQmVIaWdobGlnaHRlZCA9PT0gb3B0aW9uKSk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICBpZiAodGhpcy5jbG9zZU9uU2Nyb2xsKSB7XG4gICAgICBmcm9tRXZlbnQod2luZG93LCAnc2Nyb2xsJylcbiAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnRyaWdnZXIuYmx1cigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnNldEluaXRpYWxBY2Nlc3NpYmlsaXR5QXR0cmlidXRlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGNsb3NlRHJvcGRvd24oKSB7XG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICB9XG5cbiAgdG9nZ2xlT3BlbigpIHtcbiAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgIGlmICghdGhpcy5vcGVuKSB7XG4gICAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gICAgICB0aGlzLmNsb3NlZFdpdGhvdXRTZWxlY3Rpb24uZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5pdGlhbEhpZ2hsaWdodGluZ0luZGV4KCkge1xuICAgIGxldCBpbml0aWFsSW5kZXggPSB0aGlzLm9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi5zZWxlY3RlZCAmJiB0aGlzLm9wdGlvbklzSGlnaGxpZ2h0YWJsZShvcHRpb24pKTtcbiAgICBpZiAoaW5pdGlhbEluZGV4ID09PSAtMSkge1xuICAgICAgaW5pdGlhbEluZGV4ID0gdGhpcy5vcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiB0aGlzLm9wdGlvbklzSGlnaGxpZ2h0YWJsZShvcHRpb24pKTtcbiAgICB9XG4gICAgdGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JC5uZXh0KGluaXRpYWxJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIHByZXYoY3VycmVudEluZGV4OiBudW1iZXIsIGl0ZW1zOiBPcHRpb25Db21wb25lbnRbXSk6IG51bWJlciB7XG4gICAgaWYgKGN1cnJlbnRJbmRleCA+IDApIHtcbiAgICAgIGNvbnN0IHByZXZFbmFibGVkSW5kZXggPSBpdGVtcy5tYXAoKG9wdGlvbikgPT4gIXRoaXMub3B0aW9uSXNIaWdobGlnaHRhYmxlKG9wdGlvbikpLmxhc3RJbmRleE9mKGZhbHNlLCBjdXJyZW50SW5kZXggLSAxKTtcbiAgICAgIHJldHVybiBwcmV2RW5hYmxlZEluZGV4ICE9PSAtMSA/IHByZXZFbmFibGVkSW5kZXggOiBjdXJyZW50SW5kZXg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjdXJyZW50SW5kZXg7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBuZXh0KGN1cnJlbnRJbmRleDogbnVtYmVyLCBpdGVtczogT3B0aW9uQ29tcG9uZW50W10pOiBudW1iZXIge1xuICAgIGlmIChjdXJyZW50SW5kZXggPCBpdGVtcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG5leHRFbmFibGVkSW5kZXggPSBpdGVtcy5tYXAoKG9wdGlvbikgPT4gIXRoaXMub3B0aW9uSXNIaWdobGlnaHRhYmxlKG9wdGlvbikpLmluZGV4T2YoZmFsc2UsIGN1cnJlbnRJbmRleCArIDEpO1xuICAgICAgcmV0dXJuIG5leHRFbmFibGVkSW5kZXggIT09IC0xID8gbmV4dEVuYWJsZWRJbmRleCA6IGN1cnJlbnRJbmRleDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGN1cnJlbnRJbmRleDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGV4cGFuZChjdXJyZW50SW5kZXg6IG51bWJlciwgaXRlbXM6IE9wdGlvbkNvbXBvbmVudFtdKSB7XG4gICAgaWYgKGl0ZW1zW2N1cnJlbnRJbmRleF0hLmhhc1N1YmRyb3Bkb3duKSB7XG4gICAgICB0aGlzLmlzU3ViZHJvcGRvd25FeHBhbmRlZCA9IHRydWU7XG4gICAgICByZXR1cm4gdGhpcy5uZXh0KGN1cnJlbnRJbmRleCwgaXRlbXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY3VycmVudEluZGV4O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29sbGFwc2UoY3VycmVudEluZGV4OiBudW1iZXIsIGl0ZW1zOiBPcHRpb25Db21wb25lbnRbXSkge1xuICAgIGlmICh0aGlzLmlzU3ViZHJvcGRvd25FeHBhbmRlZCkge1xuICAgICAgdGhpcy5pc1N1YmRyb3Bkb3duRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgIHJldHVybiB0aGlzLnByZXYoY3VycmVudEluZGV4LCBpdGVtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjdXJyZW50SW5kZXg7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvcHRpb25Jc0hpZ2hsaWdodGFibGUob3B0aW9uOiBPcHRpb25Db21wb25lbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc1RvcGxldmVsT3B0aW9uQW5kQWxsb3dlZCA9ICFvcHRpb24uaXNTdWJvcHRpb24gJiYgIXRoaXMuaXNTdWJkcm9wZG93bkV4cGFuZGVkO1xuICAgIGNvbnN0IGlzU2Vjb25kbGV2ZWxPcHRpb25BbmRBbGxvd2VkID0gb3B0aW9uLmlzU3Vib3B0aW9uICYmIHRoaXMuaXNTdWJkcm9wZG93bkV4cGFuZGVkO1xuICAgIHJldHVybiAhb3B0aW9uLmRpc2FibGVkICYmIChpc1RvcGxldmVsT3B0aW9uQW5kQWxsb3dlZCB8fCBpc1NlY29uZGxldmVsT3B0aW9uQW5kQWxsb3dlZCk7XG4gIH1cblxuICAvKipcbiAgICogUHJvZ3JhbW1hdGljYWxseSBzZXRzIGluaXRpYWwgYWNjZXNzaWJpbGl0eSBhdHRyaWJ1dGVzIG9uIHRoZSB0cmlnZ2VyIGJ1dHRvbiBzbyB0aGF0IHdlXG4gICAqIGRvbid0IGhhdmUgdG8gZG8gaXQgbWFudWFsbHkgZXZlcnkgdGltZSB3ZSBkZWNsYXJlIGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgY29tcG9uZW50XG4gICAqL1xuICBwcml2YXRlIHNldEluaXRpYWxBY2Nlc3NpYmlsaXR5QXR0cmlidXRlcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubHhCdXR0b24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmx4QnV0dG9uLCAncm9sZScsICdjb21ib2JveCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMubHhCdXR0b24sICdhcmlhLWhhc3BvcHVwJywgJ2xpc3Rib3gnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmx4QnV0dG9uLCAndGFiaW5kZXgnLCAnMCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMubHhCdXR0b24sICdhcmlhLWNvbnRyb2xzJywgdGhpcy5saXN0Ym94SWQpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMubHhCdXR0b24sICdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gIH1cblxuICBoYW5kbGVPcHRpb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgLy8gSW4gb3JkZXIgdG8ga2VlcCB0aGUgY2VudHJhbGl6ZWQga2V5Ym9hcmQgZXZlbnQgbWFuYWdlbWVudCBsb2dpYyBmcm9tIGBLZXlib2FyZEFjdGlvblNvdXJjZURpcmVjdGl2ZWBcbiAgICAvLyB3ZSBkdXBsaWNhdGUgdGhlIG9wdGlvbiBldmVudCBoZXJlIGFuZCB0cmlnZ2VyIGl0IGFnYWluIGZyb20gbHhCdXR0b24uXG4gICAgY29uc3QgbmV3RXZlbnRPcHRpb25zID0gcGljayhldmVudCwgW1xuICAgICAgJ2lzVHJ1c3RlZCcsXG4gICAgICAnYWx0S2V5JyxcbiAgICAgICdidWJibGVzJyxcbiAgICAgICdjaGFyQ29kZScsXG4gICAgICAnY2FuY2VsYWJsZScsXG4gICAgICAnY29tcG9zZWQnLFxuICAgICAgJ2tleScsXG4gICAgICAnY3RybEtleScsXG4gICAgICAnZGVmYXVsdFByZXZlbnRlZCcsXG4gICAgICAna2V5Q29kZScsXG4gICAgICAnY29kZSdcbiAgICBdKTtcbiAgICBjb25zdCBuZXdFdmVudCA9IG5ldyBLZXlib2FyZEV2ZW50KGV2ZW50LnR5cGUsIG5ld0V2ZW50T3B0aW9ucyk7XG5cbiAgICB0aGlzLmx4QnV0dG9uPy5kaXNwYXRjaEV2ZW50KG5ld0V2ZW50KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFvdmVybGF5UG9zaXRpb25pbmdcIj5cbiAgPGRpdiBseEF1dG9jbG9zZSAoYXV0b2Nsb3NlKT1cImNsb3NlRHJvcGRvd24oKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0cmlnZ2VyQ29udGFpbmVyXCIgKGNsaWNrKT1cInRvZ2dsZU9wZW4oKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0cmlnZ2VyVGVtcGxhdGVcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHJvcGRvd25UZW1wbGF0ZVwiIC8+XG4gIDwvZGl2PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJvdmVybGF5UG9zaXRpb25pbmdcIj5cbiAgPGRpdiBjbGFzcz1cIm92ZXJsYXlPcmlnaW4gdHJpZ2dlckNvbnRhaW5lclwiIChjbGljayk9XCJ0b2dnbGVPcGVuKClcIiBjZGtPdmVybGF5T3JpZ2luICNzZWxlY3RPcmlnaW49XCJjZGtPdmVybGF5T3JpZ2luXCI+XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0cmlnZ2VyVGVtcGxhdGVcIiAvPlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlXG4gICAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cInNlbGVjdE9yaWdpblwiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlTY3JvbGxTdHJhdGVneV09XCJvdmVybGF5U2Nyb2xsU3RyYXRlZ3lcIlxuICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJvcGVuXCJcbiAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109XCJvdmVybGF5UG9zaXRpb25zXCJcbiAgICAob3ZlcmxheU91dHNpZGVDbGljayk9XCJjbG9zZURyb3Bkb3duKCk7IGNsb3NlZFdpdGhvdXRTZWxlY3Rpb24uZW1pdCgpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5RHJvcGRvd25cIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHJvcGRvd25UZW1wbGF0ZVwiIC8+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICN0cmlnZ2VyVGVtcGxhdGU+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cIltseEtleWJvYXJkQWN0aW9uU291cmNlXVwiIC8+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duVGVtcGxhdGU+XG4gIDx1bFxuICAgICpuZ0lmPVwib3BlblwiXG4gICAgW2lkXT1cImxpc3Rib3hJZFwiXG4gICAgW2NsYXNzXT1cImRyb3Bkb3duQ2xhc3NcIlxuICAgIFtjbGFzcy5sZWZ0XT1cImFsaWduID09PSAnbGVmdCdcIlxuICAgIFtjbGFzcy5zaG93U2Nyb2xsYmFyXT1cIm1heEhlaWdodCAhPT0gJ25vbmUnXCJcbiAgICBbc3R5bGUubWF4LWhlaWdodF09XCJtYXhIZWlnaHRcIlxuICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICBbYXR0ci5hcmlhLW93bnNdPVwib3B0aW9uSWRzLmpvaW4oJyAnKVwiXG4gID5cbiAgICA8bmctY29udGVudCAvPlxuICA8L3VsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
273
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1kcm9wZG93bi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL29wdGlvbnMtZHJvcGRvd24vb3B0aW9ucy1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL29wdGlvbnMtZHJvcGRvd24vb3B0aW9ucy1kcm9wZG93bi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsZ0JBQWdCLEVBQTRELE1BQU0sc0JBQXNCLENBQUM7QUFDdkksT0FBTyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEVBR1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6SSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtREFBbUQsQ0FB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O1FBQ0gsTUFBTSxRQUFRLEdBQUcsSUFBSSxhQUFhLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxlQUFlLENBQUMsQ0FBQztRQUVoRSxJQUFJLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUN6QyxDQUFDOzhHQWpVVSx3QkFBd0I7a0dBQXhCLHdCQUF3QiwyYUFVckIsNkJBQTZCLDhEQUMxQixlQUFlLGdEQzNDbEMsc2xEQThDQSxxcEJEaEJZLElBQUksNkZBQUUsZ0JBQWdCLG9KQUFFLGdCQUFnQix1SUFBRSxtQkFBbUIsNCtCQUFFLGtCQUFrQjs7MkZBRWhGLHdCQUF3QjtrQkFScEMsU0FBUzsrQkFDRSxxQkFBcUIsbUJBR2QsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLEVBQUUsa0JBQWtCLENBQUM7a0pBS25GLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUN1QyxPQUFPO3NCQUFuRCxZQUFZO3VCQUFDLDZCQUE2QjtnQkFFM0MsUUFBUTtzQkFEUCxlQUFlO3VCQUFDLGVBQWUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBSTdDLE1BQU07c0JBQWYsTUFBTTtnQkFDRyxNQUFNO3NCQUFmLE1BQU07Z0JBQ0csc0JBQXNCO3NCQUEvQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrQ29ubmVjdGVkT3ZlcmxheSwgQ2RrT3ZlcmxheU9yaWdpbiwgQ29ubmVjdGVkUG9zaXRpb24sIFNjcm9sbFN0cmF0ZWd5LCBTY3JvbGxTdHJhdGVneU9wdGlvbnMgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIENvbnRlbnRDaGlsZHJlbixcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgUmVuZGVyZXIyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgcGljaywgdW5pcXVlSWQgfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBmcm9tRXZlbnQsIG1lcmdlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRlbGF5LCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgZmlsdGVyLCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwsIHdpdGhMYXRlc3RGcm9tIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQXV0b2Nsb3NlRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS11aS9kaXJlY3RpdmVzL2F1dG9jbG9zZS5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgS2V5Ym9hcmRBY3Rpb25Tb3VyY2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2tleWJvYXJkLWFjdGlvbi1zb3VyY2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEtleWJvYXJkU2VsZWN0QWN0aW9uIH0gZnJvbSAnLi4va2V5Ym9hcmQtc2VsZWN0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9vcHRpb24vb3B0aW9uLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LW9wdGlvbnMtZHJvcGRvd24nLFxuICB0ZW1wbGF0ZVVybDogJ29wdGlvbnMtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnb3B0aW9ucy1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW05nSWYsIE5nVGVtcGxhdGVPdXRsZXQsIENka092ZXJsYXlPcmlnaW4sIENka0Nvbm5lY3RlZE92ZXJsYXksIEF1dG9jbG9zZURpcmVjdGl2ZV1cbn0pXG5leHBvcnQgY2xhc3MgT3B0aW9uc0Ryb3Bkb3duQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcbiAgcmVhZG9ubHkgTkFNRSA9ICdPcHRpb25zRHJvcGRvd25Db21wb25lbnQnO1xuXG4gIEBJbnB1dCgpIGFsaWduOiAncmlnaHQnIHwgJ2xlZnQnID0gJ3JpZ2h0JztcbiAgQElucHV0KCkgY2xvc2VPblNjcm9sbDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBtYXhIZWlnaHQ6IHN0cmluZyA9ICdub25lJztcbiAgQElucHV0KCkgY2xvc2VPblNlbGVjdDogYm9vbGVhbiA9IHRydWU7XG4gIEBJbnB1dCgpIG92ZXJsYXlQb3NpdGlvbmluZzogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBkcm9wZG93bkNsYXNzOiBzdHJpbmcgPSAnJztcbiAgQENvbnRlbnRDaGlsZChLZXlib2FyZEFjdGlvblNvdXJjZURpcmVjdGl2ZSkgdHJpZ2dlciE6IEtleWJvYXJkQWN0aW9uU291cmNlRGlyZWN0aXZlO1xuICBAQ29udGVudENoaWxkcmVuKE9wdGlvbkNvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICBfb3B0aW9ucyE6IFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ+O1xuICBvdmVybGF5U2Nyb2xsU3RyYXRlZ3k6IFNjcm9sbFN0cmF0ZWd5ID0gdGhpcy5jbG9zZU9uU2Nyb2xsID8gdGhpcy5zY3JvbGxTdHJhdGVnaWVzLmNsb3NlKCkgOiB0aGlzLnNjcm9sbFN0cmF0ZWdpZXMucmVwb3NpdGlvbigpO1xuXG4gIEBPdXRwdXQoKSBvcGVuZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZWRXaXRob3V0U2VsZWN0aW9uID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGdldCBvdmVybGF5UG9zaXRpb25zKCk6IENvbm5lY3RlZFBvc2l0aW9uW10ge1xuICAgIHJldHVybiBbXG4gICAgICB7XG4gICAgICAgIG9yaWdpblg6IHRoaXMuYWxpZ24gPT09ICdyaWdodCcgPyAnc3RhcnQnIDogJ2VuZCcsXG4gICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICBvdmVybGF5WDogdGhpcy5hbGlnbiA9PT0gJ3JpZ2h0JyA/ICdzdGFydCcgOiAnZW5kJyxcbiAgICAgICAgb3ZlcmxheVk6ICd0b3AnXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBvcmlnaW5YOiB0aGlzLmFsaWduID09PSAncmlnaHQnID8gJ3N0YXJ0JyA6ICdlbmQnLFxuICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgb3ZlcmxheVg6IHRoaXMuYWxpZ24gPT09ICdyaWdodCcgPyAnc3RhcnQnIDogJ2VuZCcsXG4gICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJ1xuICAgICAgfVxuICAgIF07XG4gIH1cblxuICBzZXQgb3Blbih2YWx1ZSkge1xuICAgIGlmICh0aGlzLmRpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5fb3BlbiA9IHZhbHVlO1xuICAgIGlmICh0aGlzLmx4QnV0dG9uKSB7XG4gICAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmx4QnV0dG9uLCAnYXJpYS1leHBhbmRlZCcsIHRoaXMuX29wZW4udG9TdHJpbmcoKSk7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMudHJpZ2dlcikge1xuICAgICAgLy8gRG9uJ3QgZW1pdCBrZXlib2FyZCBhY3Rpb25zIHdoaWxlIHRoZSBkcm9wZG93biBpcyBub3Qgb3BlbiB5ZXQuXG4gICAgICB0aGlzLnRyaWdnZXIuZG9udEVtaXQgPSAhdGhpcy5vcGVuO1xuICAgIH1cbiAgICBpZiAodGhpcy5vcGVuKSB7XG4gICAgICB0aGlzLmlzU3ViZHJvcGRvd25FeHBhbmRlZCA9IGZhbHNlO1xuICAgICAgdGhpcy5zZXRJbml0aWFsSGlnaGxpZ2h0aW5nSW5kZXgoKTtcbiAgICAgIHRoaXMub3BlbmVkLmVtaXQoKTtcbiAgICB9XG4gICAgdGhpcy5jaGFuZ2VEZXRlY3Rpb24ubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBnZXQgb3BlbigpIHtcbiAgICByZXR1cm4gdGhpcy5fb3BlbjtcbiAgfVxuXG4gIGdldCBvcHRpb25zKCk6IE9wdGlvbkNvbXBvbmVudFtdIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9ucz8udG9BcnJheSgpIHx8IFtdO1xuICB9XG5cbiAgZ2V0IG9wdGlvbklkcygpOiBzdHJpbmdbXSB7XG4gICAgcmV0dXJuIHRoaXMub3B0aW9ucy5tYXAoKG8pID0+IG8ub3B0aW9uSWQpO1xuICB9XG5cbiAgZ2V0IGx4QnV0dG9uKCk6IEhUTUxFbGVtZW50IHtcbiAgICByZXR1cm4gdGhpcy50cmlnZ2VyPy5uYXRpdmVFbGVtZW50KCk7XG4gIH1cblxuICBwcml2YXRlIHJlYWRvbmx5IGhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxudW1iZXI+KDApO1xuICBwcml2YXRlIF9vcGVuID0gZmFsc2U7XG4gIHByaXZhdGUgaXNTdWJkcm9wZG93bkV4cGFuZGVkID0gZmFsc2U7XG4gIHJlYWRvbmx5IGxpc3Rib3hJZDogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNjcm9sbFN0cmF0ZWdpZXM6IFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyxcbiAgICBwcml2YXRlIHJlbmRlcmVyOiBSZW5kZXJlcjJcbiAgKSB7XG4gICAgdGhpcy5saXN0Ym94SWQgPSB1bmlxdWVJZCgnbGlzdGJveCcpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMudHJpZ2dlci5kb250RW1pdCA9ICF0aGlzLm9wZW47XG5cbiAgICBjb25zdCBvcHRpb25zQ2hhbmdlcyQgPSB0aGlzLl9vcHRpb25zLmNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLl9vcHRpb25zKSxcbiAgICAgIG1hcCgob3B0aW9uczogUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudD4pID0+IG9wdGlvbnMudG9BcnJheSgpKVxuICAgICk7XG5cbiAgICB0aGlzLnRyaWdnZXIua2V5Ym9hcmRBY3Rpb25zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoa2V5Ym9hcmRTZWxlY3RBY3Rpb24pID0+IGtleWJvYXJkU2VsZWN0QWN0aW9uID09PSBLZXlib2FyZFNlbGVjdEFjdGlvbi5ORVhUKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JCwgb3B0aW9uc0NoYW5nZXMkLCAoXywgaW5kZXgsIG9wdGlvbnMpID0+IHRoaXMubmV4dChpbmRleCwgb3B0aW9ucykpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLmhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkKTtcblxuICAgIHRoaXMudHJpZ2dlci5rZXlib2FyZEFjdGlvbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChrZXlib2FyZFNlbGVjdEFjdGlvbikgPT4ga2V5Ym9hcmRTZWxlY3RBY3Rpb24gPT09IEtleWJvYXJkU2VsZWN0QWN0aW9uLlBSRVYpLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkLCBvcHRpb25zQ2hhbmdlcyQsIChfLCBpbmRleCwgb3B0aW9ucykgPT4gdGhpcy5wcmV2KGluZGV4LCBvcHRpb25zKSksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHRoaXMuaGlnaGxpZ2h0ZWRPcHRpb25JbmRleCQpO1xuXG4gICAgdGhpcy50cmlnZ2VyLmtleWJvYXJkQWN0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGtleWJvYXJkU2VsZWN0QWN0aW9uKSA9PiBrZXlib2FyZFNlbGVjdEFjdGlvbiA9PT0gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uRklSU1QpLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkLCBvcHRpb25zQ2hhbmdlcyQsIChfLCBfaW5kZXgsIF9vcHRpb25zKSA9PiAwKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JCk7XG5cbiAgICB0aGlzLnRyaWdnZXIua2V5Ym9hcmRBY3Rpb25zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoa2V5Ym9hcmRTZWxlY3RBY3Rpb24pID0+IGtleWJvYXJkU2VsZWN0QWN0aW9uID09PSBLZXlib2FyZFNlbGVjdEFjdGlvbi5MQVNUKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JCwgb3B0aW9uc0NoYW5nZXMkLCAoXywgX2luZGV4LCBfb3B0aW9ucykgPT4gdGhpcy5vcHRpb25zLmxlbmd0aCAtIDEpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLmhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkKTtcblxuICAgIHRoaXMudHJpZ2dlci5rZXlib2FyZEFjdGlvbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChrZXlib2FyZFNlbGVjdEFjdGlvbikgPT4ga2V5Ym9hcmRTZWxlY3RBY3Rpb24gPT09IEtleWJvYXJkU2VsZWN0QWN0aW9uLkxFRlQpLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkLCBvcHRpb25zQ2hhbmdlcyQsIChfLCBpbmRleCwgb3B0aW9ucykgPT5cbiAgICAgICAgICB0aGlzLmlzU3ViZHJvcGRvd25FeHBhbmRlZCA/IHRoaXMuY29sbGFwc2UoaW5kZXgsIG9wdGlvbnMpIDogdGhpcy5leHBhbmQoaW5kZXgsIG9wdGlvbnMpXG4gICAgICAgICksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHRoaXMuaGlnaGxpZ2h0ZWRPcHRpb25JbmRleCQpO1xuXG4gICAgdGhpcy50cmlnZ2VyLmtleWJvYXJkQWN0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGtleWJvYXJkU2VsZWN0QWN0aW9uKSA9PiBrZXlib2FyZFNlbGVjdEFjdGlvbiA9PT0gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uUklHSFQpLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkLCBvcHRpb25zQ2hhbmdlcyQsIChfLCBpbmRleCwgb3B0aW9ucykgPT5cbiAgICAgICAgICB0aGlzLmlzU3ViZHJvcGRvd25FeHBhbmRlZCA/IHRoaXMuY29sbGFwc2UoaW5kZXgsIG9wdGlvbnMpIDogdGhpcy5leHBhbmQoaW5kZXgsIG9wdGlvbnMpXG4gICAgICAgICksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHRoaXMuaGlnaGxpZ2h0ZWRPcHRpb25JbmRleCQpO1xuXG4gICAgdGhpcy50cmlnZ2VyLmtleWJvYXJkQWN0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGtleWJvYXJkU2VsZWN0QWN0aW9uKSA9PiBrZXlib2FyZFNlbGVjdEFjdGlvbiA9PT0gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uQ0xPU0UpLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgICB0aGlzLmNsb3NlZFdpdGhvdXRTZWxlY3Rpb24uZW1pdCgpO1xuICAgICAgICB0aGlzLmx4QnV0dG9uPy5mb2N1cygpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnRyaWdnZXIua2V5Ym9hcmRBY3Rpb25zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoa2V5Ym9hcmRTZWxlY3RBY3Rpb24pID0+IGtleWJvYXJkU2VsZWN0QWN0aW9uID09PSBLZXlib2FyZFNlbGVjdEFjdGlvbi5FWEVDVVRFKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JCwgKF8sIGluZGV4KSA9PiBpbmRleCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChpbmRleCkgPT4ge1xuICAgICAgICB0aGlzLm9wdGlvbnNbaW5kZXhdPy5zZWxlY3RPcHRpb24oKTtcbiAgICAgICAgdGhpcy5seEJ1dHRvbj8uZm9jdXMoKTtcbiAgICAgIH0pO1xuXG4gICAgLyoqIENvbWJpbmVkIHN0cmVhbSBvZiBhbGwgb2YgdGhlIGNoaWxkIG9wdGlvbnMnIHNlbGVjdCBvdXRwdXRzLiAqL1xuICAgIHRoaXMuX29wdGlvbnMuY2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLl9vcHRpb25zKSxcbiAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMuY2xvc2VPblNlbGVjdCksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiBtZXJnZSguLi50aGlzLl9vcHRpb25zLm1hcCgob3B0aW9uKSA9PiBvcHRpb24uc2VsZWN0KSwgLi4udGhpcy5fb3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLnNlbGVjdGVkQ2xpY2spKSksXG4gICAgICAgIGRlbGF5KDApLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoX3ZhbHVlKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLl9vcHRpb25zLmNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBzdGFydFdpdGgodGhpcy5fb3B0aW9ucyksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiBtZXJnZSguLi50aGlzLl9vcHRpb25zLm1hcCgob3B0aW9uKSA9PiBvcHRpb24ua2V5RG93bkFjdGlvbikpKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAgIHRoaXMuaGFuZGxlT3B0aW9uS2V5RG93bihldmVudCk7XG4gICAgICB9KTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW29wdGlvbnNDaGFuZ2VzJCwgdGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JF0pXG4gICAgICAucGlwZShcbiAgICAgICAgZGVsYXkoMCksXG4gICAgICAgIG1hcCgoW29wdGlvbnMsIGluZGV4XTogW09wdGlvbkNvbXBvbmVudFtdLCBudW1iZXJdKSA9PiBvcHRpb25zW2luZGV4XSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChvcHRpb25Ub0JlSGlnaGxpZ2h0ZWQpID0+IHtcbiAgICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2goKG9wdGlvbikgPT4gb3B0aW9uLnNldEhpZ2hsaWdodGVkKG9wdGlvblRvQmVIaWdobGlnaHRlZCA9PT0gb3B0aW9uKSk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICBpZiAodGhpcy5jbG9zZU9uU2Nyb2xsKSB7XG4gICAgICBmcm9tRXZlbnQod2luZG93LCAnc2Nyb2xsJylcbiAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnRyaWdnZXIuYmx1cigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnNldEluaXRpYWxBY2Nlc3NpYmlsaXR5QXR0cmlidXRlcygpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgICB0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIGNsb3NlRHJvcGRvd24oKSB7XG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gICAgdGhpcy5jbG9zZWQuZW1pdCgpO1xuICB9XG5cbiAgdG9nZ2xlT3BlbigpIHtcbiAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgIGlmICghdGhpcy5vcGVuKSB7XG4gICAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XG4gICAgICB0aGlzLmNsb3NlZFdpdGhvdXRTZWxlY3Rpb24uZW1pdCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0SW5pdGlhbEhpZ2hsaWdodGluZ0luZGV4KCkge1xuICAgIGxldCBpbml0aWFsSW5kZXggPSB0aGlzLm9wdGlvbnMuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi5zZWxlY3RlZCAmJiB0aGlzLm9wdGlvbklzSGlnaGxpZ2h0YWJsZShvcHRpb24pKTtcbiAgICBpZiAoaW5pdGlhbEluZGV4ID09PSAtMSkge1xuICAgICAgaW5pdGlhbEluZGV4ID0gdGhpcy5vcHRpb25zLmZpbmRJbmRleCgob3B0aW9uKSA9PiB0aGlzLm9wdGlvbklzSGlnaGxpZ2h0YWJsZShvcHRpb24pKTtcbiAgICB9XG4gICAgdGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JC5uZXh0KGluaXRpYWxJbmRleCk7XG4gIH1cblxuICBwcml2YXRlIHByZXYoY3VycmVudEluZGV4OiBudW1iZXIsIGl0ZW1zOiBPcHRpb25Db21wb25lbnRbXSk6IG51bWJlciB7XG4gICAgaWYgKGN1cnJlbnRJbmRleCA+IDApIHtcbiAgICAgIGNvbnN0IHByZXZFbmFibGVkSW5kZXggPSBpdGVtcy5tYXAoKG9wdGlvbikgPT4gIXRoaXMub3B0aW9uSXNIaWdobGlnaHRhYmxlKG9wdGlvbikpLmxhc3RJbmRleE9mKGZhbHNlLCBjdXJyZW50SW5kZXggLSAxKTtcbiAgICAgIHJldHVybiBwcmV2RW5hYmxlZEluZGV4ICE9PSAtMSA/IHByZXZFbmFibGVkSW5kZXggOiBjdXJyZW50SW5kZXg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjdXJyZW50SW5kZXg7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBuZXh0KGN1cnJlbnRJbmRleDogbnVtYmVyLCBpdGVtczogT3B0aW9uQ29tcG9uZW50W10pOiBudW1iZXIge1xuICAgIGlmIChjdXJyZW50SW5kZXggPCBpdGVtcy5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IG5leHRFbmFibGVkSW5kZXggPSBpdGVtcy5tYXAoKG9wdGlvbikgPT4gIXRoaXMub3B0aW9uSXNIaWdobGlnaHRhYmxlKG9wdGlvbikpLmluZGV4T2YoZmFsc2UsIGN1cnJlbnRJbmRleCArIDEpO1xuICAgICAgcmV0dXJuIG5leHRFbmFibGVkSW5kZXggIT09IC0xID8gbmV4dEVuYWJsZWRJbmRleCA6IGN1cnJlbnRJbmRleDtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGN1cnJlbnRJbmRleDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGV4cGFuZChjdXJyZW50SW5kZXg6IG51bWJlciwgaXRlbXM6IE9wdGlvbkNvbXBvbmVudFtdKSB7XG4gICAgaWYgKGl0ZW1zW2N1cnJlbnRJbmRleF0hLmhhc1N1YmRyb3Bkb3duKSB7XG4gICAgICB0aGlzLmlzU3ViZHJvcGRvd25FeHBhbmRlZCA9IHRydWU7XG4gICAgICByZXR1cm4gdGhpcy5uZXh0KGN1cnJlbnRJbmRleCwgaXRlbXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY3VycmVudEluZGV4O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY29sbGFwc2UoY3VycmVudEluZGV4OiBudW1iZXIsIGl0ZW1zOiBPcHRpb25Db21wb25lbnRbXSkge1xuICAgIGlmICh0aGlzLmlzU3ViZHJvcGRvd25FeHBhbmRlZCkge1xuICAgICAgdGhpcy5pc1N1YmRyb3Bkb3duRXhwYW5kZWQgPSBmYWxzZTtcbiAgICAgIHJldHVybiB0aGlzLnByZXYoY3VycmVudEluZGV4LCBpdGVtcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjdXJyZW50SW5kZXg7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBvcHRpb25Jc0hpZ2hsaWdodGFibGUob3B0aW9uOiBPcHRpb25Db21wb25lbnQpOiBib29sZWFuIHtcbiAgICBjb25zdCBpc1RvcGxldmVsT3B0aW9uQW5kQWxsb3dlZCA9ICFvcHRpb24uaXNTdWJvcHRpb24gJiYgIXRoaXMuaXNTdWJkcm9wZG93bkV4cGFuZGVkO1xuICAgIGNvbnN0IGlzU2Vjb25kbGV2ZWxPcHRpb25BbmRBbGxvd2VkID0gb3B0aW9uLmlzU3Vib3B0aW9uICYmIHRoaXMuaXNTdWJkcm9wZG93bkV4cGFuZGVkO1xuICAgIHJldHVybiAhb3B0aW9uLmRpc2FibGVkICYmIChpc1RvcGxldmVsT3B0aW9uQW5kQWxsb3dlZCB8fCBpc1NlY29uZGxldmVsT3B0aW9uQW5kQWxsb3dlZCk7XG4gIH1cblxuICAvKipcbiAgICogUHJvZ3JhbW1hdGljYWxseSBzZXRzIGluaXRpYWwgYWNjZXNzaWJpbGl0eSBhdHRyaWJ1dGVzIG9uIHRoZSB0cmlnZ2VyIGJ1dHRvbiBzbyB0aGF0IHdlXG4gICAqIGRvbid0IGhhdmUgdG8gZG8gaXQgbWFudWFsbHkgZXZlcnkgdGltZSB3ZSBkZWNsYXJlIGEgbmV3IGluc3RhbmNlIG9mIHRoaXMgY29tcG9uZW50XG4gICAqL1xuICBwcml2YXRlIHNldEluaXRpYWxBY2Nlc3NpYmlsaXR5QXR0cmlidXRlcygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubHhCdXR0b24pIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmx4QnV0dG9uLCAncm9sZScsICdjb21ib2JveCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMubHhCdXR0b24sICdhcmlhLWhhc3BvcHVwJywgJ2xpc3Rib3gnKTtcbiAgICB0aGlzLnJlbmRlcmVyLnNldEF0dHJpYnV0ZSh0aGlzLmx4QnV0dG9uLCAndGFiaW5kZXgnLCAnMCcpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMubHhCdXR0b24sICdhcmlhLWNvbnRyb2xzJywgdGhpcy5saXN0Ym94SWQpO1xuICAgIHRoaXMucmVuZGVyZXIuc2V0QXR0cmlidXRlKHRoaXMubHhCdXR0b24sICdhcmlhLWV4cGFuZGVkJywgJ2ZhbHNlJyk7XG4gIH1cblxuICBoYW5kbGVPcHRpb25LZXlEb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgLy8gSW4gb3JkZXIgdG8ga2VlcCB0aGUgY2VudHJhbGl6ZWQga2V5Ym9hcmQgZXZlbnQgbWFuYWdlbWVudCBsb2dpYyBmcm9tIGBLZXlib2FyZEFjdGlvblNvdXJjZURpcmVjdGl2ZWBcbiAgICAvLyB3ZSBkdXBsaWNhdGUgdGhlIG9wdGlvbiBldmVudCBoZXJlIGFuZCB0cmlnZ2VyIGl0IGFnYWluIGZyb20gbHhCdXR0b24uXG4gICAgY29uc3QgbmV3RXZlbnRPcHRpb25zID0gcGljayhldmVudCwgW1xuICAgICAgJ2lzVHJ1c3RlZCcsXG4gICAgICAnYWx0S2V5JyxcbiAgICAgICdidWJibGVzJyxcbiAgICAgICdjaGFyQ29kZScsXG4gICAgICAnY2FuY2VsYWJsZScsXG4gICAgICAnY29tcG9zZWQnLFxuICAgICAgJ2tleScsXG4gICAgICAnY3RybEtleScsXG4gICAgICAnZGVmYXVsdFByZXZlbnRlZCcsXG4gICAgICAna2V5Q29kZScsXG4gICAgICAnY29kZSdcbiAgICBdKTtcbiAgICBjb25zdCBuZXdFdmVudCA9IG5ldyBLZXlib2FyZEV2ZW50KGV2ZW50LnR5cGUsIG5ld0V2ZW50T3B0aW9ucyk7XG5cbiAgICB0aGlzLmx4QnV0dG9uPy5kaXNwYXRjaEV2ZW50KG5ld0V2ZW50KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFvdmVybGF5UG9zaXRpb25pbmdcIj5cbiAgPGRpdiBseEF1dG9jbG9zZSAoYXV0b2Nsb3NlKT1cImNsb3NlRHJvcGRvd24oKVwiPlxuICAgIDxkaXYgY2xhc3M9XCJ0cmlnZ2VyQ29udGFpbmVyXCIgKGNsaWNrKT1cInRvZ2dsZU9wZW4oKVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJ0cmlnZ2VyVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRyb3Bkb3duVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIm92ZXJsYXlQb3NpdGlvbmluZ1wiPlxuICA8ZGl2IGNsYXNzPVwib3ZlcmxheU9yaWdpbiB0cmlnZ2VyQ29udGFpbmVyXCIgKGNsaWNrKT1cInRvZ2dsZU9wZW4oKVwiIGNka092ZXJsYXlPcmlnaW4gI3NlbGVjdE9yaWdpbj1cImNka092ZXJsYXlPcmlnaW5cIj5cbiAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cInRyaWdnZXJUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbiAgPG5nLXRlbXBsYXRlXG4gICAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cInNlbGVjdE9yaWdpblwiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlTY3JvbGxTdHJhdGVneV09XCJvdmVybGF5U2Nyb2xsU3RyYXRlZ3lcIlxuICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJvcGVuXCJcbiAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uc109XCJvdmVybGF5UG9zaXRpb25zXCJcbiAgICAob3ZlcmxheU91dHNpZGVDbGljayk9XCJjbG9zZURyb3Bkb3duKCk7IGNsb3NlZFdpdGhvdXRTZWxlY3Rpb24uZW1pdCgpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5RHJvcGRvd25cIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHJvcGRvd25UZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjdHJpZ2dlclRlbXBsYXRlPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJbbHhLZXlib2FyZEFjdGlvblNvdXJjZV1cIj48L25nLWNvbnRlbnQ+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duVGVtcGxhdGU+XG4gIDx1bFxuICAgICpuZ0lmPVwib3BlblwiXG4gICAgW2lkXT1cImxpc3Rib3hJZFwiXG4gICAgW2NsYXNzXT1cImRyb3Bkb3duQ2xhc3NcIlxuICAgIFtjbGFzcy5sZWZ0XT1cImFsaWduID09PSAnbGVmdCdcIlxuICAgIFtjbGFzcy5zaG93U2Nyb2xsYmFyXT1cIm1heEhlaWdodCAhPT0gJ25vbmUnXCJcbiAgICBbc3R5bGUubWF4LWhlaWdodF09XCJtYXhIZWlnaHRcIlxuICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICB0YWJpbmRleD1cIi0xXCJcbiAgICBbYXR0ci5hcmlhLW93bnNdPVwib3B0aW9uSWRzLmpvaW4oJyAnKVwiXG4gID5cbiAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gIDwvdWw+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -67,11 +67,11 @@ export class OptionsSubDropdownComponent {
67
67
  this.hidden = true;
68
68
  }
69
69
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: OptionsSubDropdownComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
70
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: OptionsSubDropdownComponent, isStandalone: true, selector: "lx-options-sub-dropdown", inputs: { trigger: "trigger", align: "align" }, host: { listeners: { "mouseenter": "mouseenter()", "mouseleave": "mouseleave()" }, properties: { "class.hidden": "this.hidden" } }, queries: [{ propertyName: "options", predicate: OptionComponent, descendants: true }], ngImport: i0, template: "<div #spacingContainer class=\"spacingContainer\" [class.left]=\"align === 'left'\">\n <ul\n #subDropdown\n class=\"sub-dropdown\"\n lxAutoclose\n [class.showScrollbar]=\"(maxHeight$ | async) !== 'none'\"\n [style.max-height]=\"(maxHeight$ | async) ?? 'none'\"\n (autoclose)=\"closeDropdown()\"\n >\n <ng-content />\n </ul>\n</div>\n", styles: [":host{display:block}:host.hidden{display:none}.spacingContainer{position:absolute;left:100%;transform:translateY(-32px);padding:0 0 0 4px}.spacingContainer.left{left:auto;right:100%;padding:0 4px 0 0}.sub-dropdown{position:relative;padding:0;background-color:#fff;border:solid 1px #e1e5eb;border-radius:3px;box-shadow:0 8px 12px 2px #00000026;text-align:left;list-style:none}.sub-dropdown::-webkit-scrollbar{width:.5em;height:.5em;background-color:transparent}.sub-dropdown::-webkit-scrollbar-thumb{background-color:#c2c9d6;border-radius:6px}.sub-dropdown::-webkit-scrollbar-track-piece{background-color:transparent}.sub-dropdown.showScrollbar{overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: AutocloseDirective, selector: "[lxAutoclose]", inputs: ["autocloseGroup"], outputs: ["autoclose"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
70
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: OptionsSubDropdownComponent, isStandalone: true, selector: "lx-options-sub-dropdown", inputs: { trigger: "trigger", align: "align" }, host: { listeners: { "mouseenter": "mouseenter()", "mouseleave": "mouseleave()" }, properties: { "class.hidden": "this.hidden" } }, queries: [{ propertyName: "options", predicate: OptionComponent, descendants: true }], ngImport: i0, template: "<div #spacingContainer class=\"spacingContainer\" [class.left]=\"align === 'left'\">\n <ul\n #subDropdown\n class=\"sub-dropdown\"\n lxAutoclose\n [class.showScrollbar]=\"(maxHeight$ | async) !== 'none'\"\n [style.max-height]=\"(maxHeight$ | async) ?? 'none'\"\n (autoclose)=\"closeDropdown()\"\n >\n <ng-content></ng-content>\n </ul>\n</div>\n", styles: [":host{display:block}:host.hidden{display:none}.spacingContainer{position:absolute;left:100%;transform:translateY(-32px);padding:0 0 0 4px}.spacingContainer.left{left:auto;right:100%;padding:0 4px 0 0}.sub-dropdown{position:relative;padding:0;background-color:#fff;border:solid 1px #e1e5eb;border-radius:3px;box-shadow:0 8px 12px 2px #00000026;text-align:left;list-style:none}.sub-dropdown::-webkit-scrollbar{width:.5em;height:.5em;background-color:transparent}.sub-dropdown::-webkit-scrollbar-thumb{background-color:#c2c9d6;border-radius:6px}.sub-dropdown::-webkit-scrollbar-track-piece{background-color:transparent}.sub-dropdown.showScrollbar{overflow-y:auto}\n"], dependencies: [{ kind: "directive", type: AutocloseDirective, selector: "[lxAutoclose]", inputs: ["autocloseGroup"], outputs: ["autoclose"] }, { kind: "pipe", type: AsyncPipe, name: "async" }] }); }
71
71
  }
72
72
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: OptionsSubDropdownComponent, decorators: [{
73
73
  type: Component,
74
- args: [{ selector: 'lx-options-sub-dropdown', standalone: true, imports: [AutocloseDirective, AsyncPipe], template: "<div #spacingContainer class=\"spacingContainer\" [class.left]=\"align === 'left'\">\n <ul\n #subDropdown\n class=\"sub-dropdown\"\n lxAutoclose\n [class.showScrollbar]=\"(maxHeight$ | async) !== 'none'\"\n [style.max-height]=\"(maxHeight$ | async) ?? 'none'\"\n (autoclose)=\"closeDropdown()\"\n >\n <ng-content />\n </ul>\n</div>\n", styles: [":host{display:block}:host.hidden{display:none}.spacingContainer{position:absolute;left:100%;transform:translateY(-32px);padding:0 0 0 4px}.spacingContainer.left{left:auto;right:100%;padding:0 4px 0 0}.sub-dropdown{position:relative;padding:0;background-color:#fff;border:solid 1px #e1e5eb;border-radius:3px;box-shadow:0 8px 12px 2px #00000026;text-align:left;list-style:none}.sub-dropdown::-webkit-scrollbar{width:.5em;height:.5em;background-color:transparent}.sub-dropdown::-webkit-scrollbar-thumb{background-color:#c2c9d6;border-radius:6px}.sub-dropdown::-webkit-scrollbar-track-piece{background-color:transparent}.sub-dropdown.showScrollbar{overflow-y:auto}\n"] }]
74
+ args: [{ selector: 'lx-options-sub-dropdown', standalone: true, imports: [AutocloseDirective, AsyncPipe], template: "<div #spacingContainer class=\"spacingContainer\" [class.left]=\"align === 'left'\">\n <ul\n #subDropdown\n class=\"sub-dropdown\"\n lxAutoclose\n [class.showScrollbar]=\"(maxHeight$ | async) !== 'none'\"\n [style.max-height]=\"(maxHeight$ | async) ?? 'none'\"\n (autoclose)=\"closeDropdown()\"\n >\n <ng-content></ng-content>\n </ul>\n</div>\n", styles: [":host{display:block}:host.hidden{display:none}.spacingContainer{position:absolute;left:100%;transform:translateY(-32px);padding:0 0 0 4px}.spacingContainer.left{left:auto;right:100%;padding:0 4px 0 0}.sub-dropdown{position:relative;padding:0;background-color:#fff;border:solid 1px #e1e5eb;border-radius:3px;box-shadow:0 8px 12px 2px #00000026;text-align:left;list-style:none}.sub-dropdown::-webkit-scrollbar{width:.5em;height:.5em;background-color:transparent}.sub-dropdown::-webkit-scrollbar-thumb{background-color:#c2c9d6;border-radius:6px}.sub-dropdown::-webkit-scrollbar-track-piece{background-color:transparent}.sub-dropdown.showScrollbar{overflow-y:auto}\n"] }]
75
75
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { trigger: [{
76
76
  type: Input
77
77
  }], align: [{
@@ -89,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
89
89
  type: HostListener,
90
90
  args: ['mouseleave']
91
91
  }] } });
92
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1zdWItZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvY29tcG9uZW50cy9vcHRpb25zLXN1Yi1kcm9wZG93bi9vcHRpb25zLXN1Yi1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL29wdGlvbnMtc3ViLWRyb3Bkb3duL29wdGlvbnMtc3ViLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBR0wsU0FBUyxFQUNULGVBQWUsRUFFZixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRixPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFTN0QsTUFBTSxPQUFPLDJCQUEyQjtJQWF0QyxZQUFvQixlQUFrQztRQUFsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUFYN0MsVUFBSyxHQUFxQixPQUFPLENBQUM7UUFJM0MsV0FBTSxHQUFHLElBQUksQ0FB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LFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZyb21FdmVudCwgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBdXRvY2xvc2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9jb3JlLXVpL2RpcmVjdGl2ZXMvYXV0b2Nsb3NlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBleGVjdXRlT25OZXh0VGljayB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9taXNjLWhlbHBlcnMnO1xuaW1wb3J0IHsgT3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vb3B0aW9uL29wdGlvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1vcHRpb25zLXN1Yi1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnb3B0aW9ucy1zdWItZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnb3B0aW9ucy1zdWItZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0F1dG9jbG9zZURpcmVjdGl2ZSwgQXN5bmNQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBPcHRpb25zU3ViRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB0cmlnZ2VyITogT3B0aW9uQ29tcG9uZW50O1xuICBASW5wdXQoKSBhbGlnbjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdyaWdodCc7XG4gIEBDb250ZW50Q2hpbGRyZW4oT3B0aW9uQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIG9wdGlvbnMhOiBRdWVyeUxpc3Q8T3B0aW9uQ29tcG9uZW50PjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmhpZGRlbicpXG4gIGhpZGRlbiA9IHRydWU7XG5cbiAgcHJpdmF0ZSBtb3VzZUluc2lkZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcmVhZG9ubHkgbWF4SGVpZ2h0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignbm9uZScpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcbiAgbW91c2VlbnRlcigpIHtcbiAgICB0aGlzLm1vdXNlSW5zaWRlJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIG1vdXNlbGVhdmUoKSB7XG4gICAgdGhpcy5tb3VzZUluc2lkZSQubmV4dChmYWxzZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIC8vIFRvIGF2b2lkIGBFeHByZXNzaW9uIGhhcyBjaGFuZ2VkIGFmdGVyIGl0IHdhcyBjaGVja2VkYFxuICAgIGV4ZWN1dGVPbk5leHRUaWNrKCgpID0+IHtcbiAgICAgIHRoaXMudHJpZ2dlci5oYXNTdWJkcm9wZG93biA9IHRydWU7XG4gICAgfSk7XG5cbiAgICBtZXJnZSh0aGlzLnNob3dCeUtleWJvYXJkKCksIHRoaXMuc2hvd0J5TW91c2UoKSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgoc2hvdykgPT4ge1xuICAgICAgICB0aGlzLmhpZGRlbiA9ICFzaG93O1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdGlvbi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgaWYgKHNob3cpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZU1heEhlaWdodCh0aGlzLnRyaWdnZXIuZWxlbWVudFJlZik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVNYXhIZWlnaHQoZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIGNvbnN0IG1hcmdpbkJvdHRvbSA9IDg7XG4gICAgY29uc3Qgb3B0aW9uVG9wUG9zaXRpb24gPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuICAgIGNvbnN0IHNjcmVlbkhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICBjb25zdCBtYXhIZWlnaHQgPSBgJHtzY3JlZW5IZWlnaHQgLSBvcHRpb25Ub3BQb3NpdGlvbiAtIG1hcmdpbkJvdHRvbX1weGA7XG4gICAgaWYgKHRoaXMubWF4SGVpZ2h0JC5nZXRWYWx1ZSgpICE9PSBtYXhIZWlnaHQpIHtcbiAgICAgIHRoaXMubWF4SGVpZ2h0JC5uZXh0KG1heEhlaWdodCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzaG93QnlLZXlib2FyZCgpIHtcbiAgICBjb25zdCBvcHRpb25DaGFuZ2UkID0gdGhpcy5vcHRpb25zLmNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLm9wdGlvbnMpLFxuICAgICAgbWFwKChvcHRpb25zOiBRdWVyeUxpc3Q8T3B0aW9uQ29tcG9uZW50PikgPT4gb3B0aW9ucy50b0FycmF5KCkpLFxuICAgICAgbWFwKChvcHRpb25zKSA9PlxuICAgICAgICBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgb3B0aW9uLmlzU3Vib3B0aW9uID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm4gb3B0aW9uO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbdGhpcy50cmlnZ2VyLmhpZ2hsaWdodC5hc09ic2VydmFibGUoKSwgb3B0aW9uQ2hhbmdlJF0pLnBpcGUoXG4gICAgICBkZWxheSgwKSwgLy8gTmVlZCB0aWNrIGRlbGF5IHRvIGdldCBvcHRpb24gaGlnaGxpZ2h0ZWQgYW5kIGZpbHRlciBpdCBvdXQgYWZ0ZXJcbiAgICAgIG1hcCgoW2lzSGlnaGxpZ2h0ZWQsIG9wdGlvbnNdKSA9PiBpc0hpZ2hsaWdodGVkIHx8IG9wdGlvbnMuc29tZSgob3B0aW9uKSA9PiBvcHRpb24uaXNIaWdobGlnaHRlZCkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvd0J5TW91c2UoKSB7XG4gICAgY29uc3QgbW91c2VFbnRlclRyaWdnZXIkID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMudHJpZ2dlci5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWVudGVyJyk7XG4gICAgY29uc3QgbW91c2VMZWF2ZVRyaWdnZXIkID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMudHJpZ2dlci5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWxlYXZlJyk7XG5cbiAgICBjb25zdCBzaG93T25FbnRlck1vdXNlJCA9IG1vdXNlRW50ZXJUcmlnZ2VyJC5waXBlKG1hcCgoKSA9PiB0cnVlKSk7XG4gICAgY29uc3Qgc2hvd09uRW50ZXJTdWJtZW51JCA9IG1vdXNlRW50ZXJUcmlnZ2VyJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IG1vdXNlTGVhdmVUcmlnZ2VyJCksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5tb3VzZUluc2lkZSQpXG4gICAgKTtcblxuICAgIHJldHVybiBtZXJnZShzaG93T25FbnRlck1vdXNlJCwgc2hvd09uRW50ZXJTdWJtZW51JCk7XG4gIH1cblxuICBjbG9zZURyb3Bkb3duKCkge1xuICAgIHRoaXMuaGlkZGVuID0gdHJ1ZTtcbiAgfVxufVxuIiwiPGRpdiAjc3BhY2luZ0NvbnRhaW5lciBjbGFzcz1cInNwYWNpbmdDb250YWluZXJcIiBbY2xhc3MubGVmdF09XCJhbGlnbiA9PT0gJ2xlZnQnXCI+XG4gIDx1bFxuICAgICNzdWJEcm9wZG93blxuICAgIGNsYXNzPVwic3ViLWRyb3Bkb3duXCJcbiAgICBseEF1dG9jbG9zZVxuICAgIFtjbGFzcy5zaG93U2Nyb2xsYmFyXT1cIihtYXhIZWlnaHQkIHwgYXN5bmMpICE9PSAnbm9uZSdcIlxuICAgIFtzdHlsZS5tYXgtaGVpZ2h0XT1cIihtYXhIZWlnaHQkIHwgYXN5bmMpID8/ICdub25lJ1wiXG4gICAgKGF1dG9jbG9zZSk9XCJjbG9zZURyb3Bkb3duKClcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQgLz5cbiAgPC91bD5cbjwvZGl2PlxuIl19
92
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy1zdWItZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvY29tcG9uZW50cy9vcHRpb25zLXN1Yi1kcm9wZG93bi9vcHRpb25zLXN1Yi1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL29wdGlvbnMtc3ViLWRyb3Bkb3duL29wdGlvbnMtc3ViLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1QyxPQUFPLEVBR0wsU0FBUyxFQUNULGVBQWUsRUFFZixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNqRixPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQzs7QUFTN0QsTUFBTSxPQUFPLDJCQUEyQjtJQWF0QyxZQUFvQixlQUFrQztRQUFsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBbUI7UUFYN0MsVUFBSyxHQUFxQixPQUFPLENBQUM7UUFJM0MsV0FBTSxHQUFHLElBQUksQ0FB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LFlBQVkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIGZyb21FdmVudCwgbWVyZ2UsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRlbGF5LCBtYXAsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBdXRvY2xvc2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9jb3JlLXVpL2RpcmVjdGl2ZXMvYXV0b2Nsb3NlLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBleGVjdXRlT25OZXh0VGljayB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9taXNjLWhlbHBlcnMnO1xuaW1wb3J0IHsgT3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vb3B0aW9uL29wdGlvbi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1vcHRpb25zLXN1Yi1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnb3B0aW9ucy1zdWItZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnb3B0aW9ucy1zdWItZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0F1dG9jbG9zZURpcmVjdGl2ZSwgQXN5bmNQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBPcHRpb25zU3ViRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB0cmlnZ2VyITogT3B0aW9uQ29tcG9uZW50O1xuICBASW5wdXQoKSBhbGlnbjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdyaWdodCc7XG4gIEBDb250ZW50Q2hpbGRyZW4oT3B0aW9uQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pIG9wdGlvbnMhOiBRdWVyeUxpc3Q8T3B0aW9uQ29tcG9uZW50PjtcblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmhpZGRlbicpXG4gIGhpZGRlbiA9IHRydWU7XG5cbiAgcHJpdmF0ZSBtb3VzZUluc2lkZSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcblxuICByZWFkb25seSBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgcmVhZG9ubHkgbWF4SGVpZ2h0JCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignbm9uZScpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcbiAgbW91c2VlbnRlcigpIHtcbiAgICB0aGlzLm1vdXNlSW5zaWRlJC5uZXh0KHRydWUpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScpXG4gIG1vdXNlbGVhdmUoKSB7XG4gICAgdGhpcy5tb3VzZUluc2lkZSQubmV4dChmYWxzZSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIC8vIFRvIGF2b2lkIGBFeHByZXNzaW9uIGhhcyBjaGFuZ2VkIGFmdGVyIGl0IHdhcyBjaGVja2VkYFxuICAgIGV4ZWN1dGVPbk5leHRUaWNrKCgpID0+IHtcbiAgICAgIHRoaXMudHJpZ2dlci5oYXNTdWJkcm9wZG93biA9IHRydWU7XG4gICAgfSk7XG5cbiAgICBtZXJnZSh0aGlzLnNob3dCeUtleWJvYXJkKCksIHRoaXMuc2hvd0J5TW91c2UoKSlcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgLnN1YnNjcmliZSgoc2hvdykgPT4ge1xuICAgICAgICB0aGlzLmhpZGRlbiA9ICFzaG93O1xuICAgICAgICB0aGlzLmNoYW5nZURldGVjdGlvbi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgaWYgKHNob3cpIHtcbiAgICAgICAgICB0aGlzLnVwZGF0ZU1heEhlaWdodCh0aGlzLnRyaWdnZXIuZWxlbWVudFJlZik7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSB1cGRhdGVNYXhIZWlnaHQoZWxlbWVudFJlZjogRWxlbWVudFJlZikge1xuICAgIGNvbnN0IG1hcmdpbkJvdHRvbSA9IDg7XG4gICAgY29uc3Qgb3B0aW9uVG9wUG9zaXRpb24gPSBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkudG9wO1xuICAgIGNvbnN0IHNjcmVlbkhlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodDtcbiAgICBjb25zdCBtYXhIZWlnaHQgPSBgJHtzY3JlZW5IZWlnaHQgLSBvcHRpb25Ub3BQb3NpdGlvbiAtIG1hcmdpbkJvdHRvbX1weGA7XG4gICAgaWYgKHRoaXMubWF4SGVpZ2h0JC5nZXRWYWx1ZSgpICE9PSBtYXhIZWlnaHQpIHtcbiAgICAgIHRoaXMubWF4SGVpZ2h0JC5uZXh0KG1heEhlaWdodCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzaG93QnlLZXlib2FyZCgpIHtcbiAgICBjb25zdCBvcHRpb25DaGFuZ2UkID0gdGhpcy5vcHRpb25zLmNoYW5nZXMucGlwZShcbiAgICAgIHN0YXJ0V2l0aCh0aGlzLm9wdGlvbnMpLFxuICAgICAgbWFwKChvcHRpb25zOiBRdWVyeUxpc3Q8T3B0aW9uQ29tcG9uZW50PikgPT4gb3B0aW9ucy50b0FycmF5KCkpLFxuICAgICAgbWFwKChvcHRpb25zKSA9PlxuICAgICAgICBvcHRpb25zLm1hcCgob3B0aW9uKSA9PiB7XG4gICAgICAgICAgb3B0aW9uLmlzU3Vib3B0aW9uID0gdHJ1ZTtcbiAgICAgICAgICByZXR1cm4gb3B0aW9uO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICk7XG5cbiAgICByZXR1cm4gY29tYmluZUxhdGVzdChbdGhpcy50cmlnZ2VyLmhpZ2hsaWdodC5hc09ic2VydmFibGUoKSwgb3B0aW9uQ2hhbmdlJF0pLnBpcGUoXG4gICAgICBkZWxheSgwKSwgLy8gTmVlZCB0aWNrIGRlbGF5IHRvIGdldCBvcHRpb24gaGlnaGxpZ2h0ZWQgYW5kIGZpbHRlciBpdCBvdXQgYWZ0ZXJcbiAgICAgIG1hcCgoW2lzSGlnaGxpZ2h0ZWQsIG9wdGlvbnNdKSA9PiBpc0hpZ2hsaWdodGVkIHx8IG9wdGlvbnMuc29tZSgob3B0aW9uKSA9PiBvcHRpb24uaXNIaWdobGlnaHRlZCkpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgc2hvd0J5TW91c2UoKSB7XG4gICAgY29uc3QgbW91c2VFbnRlclRyaWdnZXIkID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMudHJpZ2dlci5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWVudGVyJyk7XG4gICAgY29uc3QgbW91c2VMZWF2ZVRyaWdnZXIkID0gZnJvbUV2ZW50PE1vdXNlRXZlbnQ+KHRoaXMudHJpZ2dlci5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdtb3VzZWxlYXZlJyk7XG5cbiAgICBjb25zdCBzaG93T25FbnRlck1vdXNlJCA9IG1vdXNlRW50ZXJUcmlnZ2VyJC5waXBlKG1hcCgoKSA9PiB0cnVlKSk7XG4gICAgY29uc3Qgc2hvd09uRW50ZXJTdWJtZW51JCA9IG1vdXNlRW50ZXJUcmlnZ2VyJC5waXBlKFxuICAgICAgc3dpdGNoTWFwKCgpID0+IG1vdXNlTGVhdmVUcmlnZ2VyJCksXG4gICAgICBzd2l0Y2hNYXAoKCkgPT4gdGhpcy5tb3VzZUluc2lkZSQpXG4gICAgKTtcblxuICAgIHJldHVybiBtZXJnZShzaG93T25FbnRlck1vdXNlJCwgc2hvd09uRW50ZXJTdWJtZW51JCk7XG4gIH1cblxuICBjbG9zZURyb3Bkb3duKCkge1xuICAgIHRoaXMuaGlkZGVuID0gdHJ1ZTtcbiAgfVxufVxuIiwiPGRpdiAjc3BhY2luZ0NvbnRhaW5lciBjbGFzcz1cInNwYWNpbmdDb250YWluZXJcIiBbY2xhc3MubGVmdF09XCJhbGlnbiA9PT0gJ2xlZnQnXCI+XG4gIDx1bFxuICAgICNzdWJEcm9wZG93blxuICAgIGNsYXNzPVwic3ViLWRyb3Bkb3duXCJcbiAgICBseEF1dG9jbG9zZVxuICAgIFtjbGFzcy5zaG93U2Nyb2xsYmFyXT1cIihtYXhIZWlnaHQkIHwgYXN5bmMpICE9PSAnbm9uZSdcIlxuICAgIFtzdHlsZS5tYXgtaGVpZ2h0XT1cIihtYXhIZWlnaHQkIHwgYXN5bmMpID8/ICdub25lJ1wiXG4gICAgKGF1dG9jbG9zZSk9XCJjbG9zZURyb3Bkb3duKClcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L3VsPlxuPC9kaXY+XG4iXX0=
@@ -171,7 +171,7 @@ export class PickerComponent {
171
171
  multi: true,
172
172
  useExisting: forwardRef(() => PickerComponent)
173
173
  }
174
- ], queries: [{ propertyName: "_trigger", first: true, predicate: PickerTriggerDirective, descendants: true }, { propertyName: "options", predicate: PickerOptionComponent }], ngImport: i0, template: "<div class=\"pickerContainer\">\n <ng-content select=\"[lxPickerTrigger]\" />\n <ul\n class=\"pickerOptions\"\n *ngIf=\"open\"\n lxAutoclose\n (autoclose)=\"closePicker()\"\n role=\"listbox\"\n [style.margin-left]=\"leftOffset\"\n [attr.aria-activedescendant]=\"activeDescendantsId\"\n [attr.aria-label]=\"listBoxAriaLabel\"\n [attr.aria-labelledby]=\"listBoxAriaLabelledBy\"\n >\n <ng-content />\n </ul>\n</div>\n", styles: [":host{display:inline-block;width:100%;position:relative}.pickerOptions{position:absolute;background-color:#fff;border-radius:3px;box-shadow:0 8px 12px 2px #00000026;border:solid 1px #e1e5eb;padding:4px;z-index:20;width:185px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: AutocloseDirective, selector: "[lxAutoclose]", inputs: ["autocloseGroup"], outputs: ["autoclose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
174
+ ], queries: [{ propertyName: "_trigger", first: true, predicate: PickerTriggerDirective, descendants: true }, { propertyName: "options", predicate: PickerOptionComponent }], ngImport: i0, template: "<div class=\"pickerContainer\">\n <ng-content select=\"[lxPickerTrigger]\"></ng-content>\n <ul\n class=\"pickerOptions\"\n *ngIf=\"open\"\n lxAutoclose\n (autoclose)=\"closePicker()\"\n role=\"listbox\"\n [style.margin-left]=\"leftOffset\"\n [attr.aria-activedescendant]=\"activeDescendantsId\"\n [attr.aria-label]=\"listBoxAriaLabel\"\n [attr.aria-labelledby]=\"listBoxAriaLabelledBy\"\n >\n <ng-content></ng-content>\n </ul>\n</div>\n", styles: [":host{display:inline-block;width:100%;position:relative}.pickerOptions{position:absolute;background-color:#fff;border-radius:3px;box-shadow:0 8px 12px 2px #00000026;border:solid 1px #e1e5eb;padding:4px;z-index:20;width:185px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: AutocloseDirective, selector: "[lxAutoclose]", inputs: ["autocloseGroup"], outputs: ["autoclose"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
175
175
  }
176
176
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: PickerComponent, decorators: [{
177
177
  type: Component,
@@ -181,7 +181,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
181
181
  multi: true,
182
182
  useExisting: forwardRef(() => PickerComponent)
183
183
  }
184
- ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, AutocloseDirective], template: "<div class=\"pickerContainer\">\n <ng-content select=\"[lxPickerTrigger]\" />\n <ul\n class=\"pickerOptions\"\n *ngIf=\"open\"\n lxAutoclose\n (autoclose)=\"closePicker()\"\n role=\"listbox\"\n [style.margin-left]=\"leftOffset\"\n [attr.aria-activedescendant]=\"activeDescendantsId\"\n [attr.aria-label]=\"listBoxAriaLabel\"\n [attr.aria-labelledby]=\"listBoxAriaLabelledBy\"\n >\n <ng-content />\n </ul>\n</div>\n", styles: [":host{display:inline-block;width:100%;position:relative}.pickerOptions{position:absolute;background-color:#fff;border-radius:3px;box-shadow:0 8px 12px 2px #00000026;border:solid 1px #e1e5eb;padding:4px;z-index:20;width:185px}\n"] }]
184
+ ], changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, AutocloseDirective], template: "<div class=\"pickerContainer\">\n <ng-content select=\"[lxPickerTrigger]\"></ng-content>\n <ul\n class=\"pickerOptions\"\n *ngIf=\"open\"\n lxAutoclose\n (autoclose)=\"closePicker()\"\n role=\"listbox\"\n [style.margin-left]=\"leftOffset\"\n [attr.aria-activedescendant]=\"activeDescendantsId\"\n [attr.aria-label]=\"listBoxAriaLabel\"\n [attr.aria-labelledby]=\"listBoxAriaLabelledBy\"\n >\n <ng-content></ng-content>\n </ul>\n</div>\n", styles: [":host{display:inline-block;width:100%;position:relative}.pickerOptions{position:absolute;background-color:#fff;border-radius:3px;box-shadow:0 8px 12px 2px #00000026;border:solid 1px #e1e5eb;padding:4px;z-index:20;width:185px}\n"] }]
185
185
  }], ctorParameters: () => [{ type: i1.Directionality }, { type: i0.ChangeDetectorRef }], propDecorators: { listBoxAriaLabel: [{
186
186
  type: Input
187
187
  }], listBoxAriaLabelledBy: [{
@@ -198,4 +198,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
198
198
  type: HostListener,
199
199
  args: ['document:keydown', ['$event']]
200
200
  }] } });
201
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL2NvbXBvbmVudHMvcGlja2VyL3BpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL3BpY2tlci9waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFL0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFFcEU7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBZ0JILE1BQU0sT0FBTyxlQUFlO0lBYTFCLElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFJLG1CQUFtQixDQUFDLEtBQXlCO1FBQy9DLElBQUksQ0FB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QUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDO2FBQy9DO1NBQ0YsZ0VBOENhLHNCQUFzQiw2REFKbkIscUJBQXFCLDZCQzdGeEMsa2NBZ0JBLDZSRHNDWSxJQUFJLDZGQUFFLGtCQUFrQjs7MkZBRXZCLGVBQWU7a0JBZjNCLFNBQVM7K0JBQ0UsV0FBVyxhQUdWO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDO3lCQUMvQztxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUM7bUhBTzFCLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFLRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkEyQkUsT0FBTztzQkFEZCxlQUFlO3VCQUFDLHFCQUFxQjtnQkFLOUIsUUFBUTtzQkFEZixZQUFZO3VCQUFDLHNCQUFzQjtnQkFlcEMsb0JBQW9CO3NCQURuQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFF1ZXJ5TGlzdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEF1dG9jbG9zZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUtdWkvZGlyZWN0aXZlcy9hdXRvY2xvc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBpY2tlck9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3BpY2tlci1vcHRpb24vcGlja2VyLW9wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGlja2VyVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4vcGlja2VyLXRyaWdnZXIuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBIb3cgdG8gdXNlOlxuICogUHJvdmlkZSB0aGUgbHgtcGlja2VyIHdpdGggdHdvIGtpbmRzIG9mIENvbnRlbnRDaGlsZHJlbjpcbiAqIDEuIEEgbHhQaWNrZXJUcmlnZ2VyLCBwcmVmZXJhYmx5IGEgYnV0dG9uIGVsZW1lbnQsIHdoaWNoIHdlIHVzZSB0byBvcGVuIHRoZSBkcm9wZG93biBvbiBjbGljayBvciBlbnRlci5cbiAqIDIuIEEgbGlzdCBvZiA8bGk+IGVsZW1lbnRzIHdpdGggYW4gbHgtcGlja2VyLW9wdGlvbiBhdHRyaWJ1dGUgdGhhdCBvd24gdGhlIG9wdGlvbiB0ZW1wbGF0ZSBhcyBjb250ZW50IGNoaWxkcmVuLlxuICpcbiAqIFlvdSBjYW4gdXNlIHRoaXMgY29tcG9uZW50IGFzIHBhcnQgb2YgYSBGb3JtR3JvdXAgb3Igd2lyZSBpdCB1cCB5b3Vyc2VsZiBieSBsaXN0ZW5pbmcgb24gdGhlIChzZWxlY3QpIG91dHB1dCBvZiB0aGUgb3B0aW9ucy5cbiAqXG4gKiBFeGFtcGxlIHVzYWdlIChub24gRm9ybUdyb3VwIHN0eWxlKTpcbiAqIDxseC1waWNrZXIgbGlzdEJveEFyaWFMYWJlbD1cIkF3ZXNvbWUgcGlja2VyXCI+XG4gKiAgIDxidXR0b24gbHhQaWNrZXJUcmlnZ2VyIGx4LWJ1dHRvbiBtb2RlPVwib3V0bGluZVwiIHNpemU9XCJsYXJnZVwiIFtzcXVhcmVdPVwidHJ1ZVwiIGFyaWEtbGFiZWw9XCJBd2Vzb21lIHBpY2tlclwiIHRpdGxlPVwiQXdlc29tZSBwaWNrZXJcIj5cbiAqICAgICAgIDxseC1pY29uIFtuYW1lXT1cInNlbGVjdGlvbi5sYWJlbFwiIFtjb2xvcl09XCJzZWxlY3Rpb24udmFsdWVcIiBmb250QXdzb21lU3R5bGU9XCJzb2xpZFwiPjwvbHgtaWNvbj5cbiAqICAgIDwvYnV0dG9uPlxuICogICAgPGxpICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIGx4LXBpY2tlci1vcHRpb24gW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiIFtzZWxlY3RlZF09XCJzZWxlY3Rpb24gPT09IG9wdGlvblwiIChzZWxlY3QpPVwic2VsZWN0aW9uID0gb3B0aW9uXCIgW29wdGlvbklkXT1cIm9wdGlvbi5pZFwiPlxuICogICAgICAgPGx4LWljb24gbHgtcGlja2VyLW9wdGlvbiBbbmFtZV09XCJvcHRpb24ubGFiZWxcIiBbY29sb3JdPVwib3B0aW9uLnZhbHVlXCIgZm9udEF3c29tZVN0eWxlPVwic29saWRcIj48L2x4LWljb24+XG4gKiAgICA8L2xpPlxuICogPC9seC1waWNrZXI+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAncGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3BpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUGlja2VyQ29tcG9uZW50KVxuICAgIH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmLCBBdXRvY2xvc2VEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIFBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogQSBodW1hbi1yZWFkYWJsZSBzdHJpbmcgdmFsdWUgd2hpY2ggaWRlbnRpZmllcyB0aGUgbGlzdGJveC5cbiAgICogSWYgdGhlcmUncyBhIHZpc2libGUgbGFiZWwsIHRoZW4gYXJpYS1sYWJlbGxlZGJ5IHNob3VsZCBiZSB1c2VkIGluc3RlYWQgdG8gcmVmZXIgdG8gdGhhdCBsYWJlbC5cbiAgICovXG4gIEBJbnB1dCgpIGxpc3RCb3hBcmlhTGFiZWw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIHRoZSB2aXNpYmxlIGVsZW1lbnQgd2hpY2ggaWRlbnRpZmllcyB0aGUgbGlzdGJveC5cbiAgICogSWYgdGhlcmUncyBubyB2aXNpYmxlIGxhYmVsLCB0aGVuIGFyaWEtbGFiZWwgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCB0byBpbmNsdWRlIGEgbGFiZWwuXG4gICAqL1xuICBASW5wdXQoKSBsaXN0Qm94QXJpYUxhYmVsbGVkQnk/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9wZW5EaXJlY3Rpb246ICdsZWZ0JyB8ICdyaWdodCcgPSAncmlnaHQnO1xuXG4gIGdldCBhY3RpdmVEZXNjZW5kYW50c0lkKCkge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVEZXNjZW5kYW50c0lkO1xuICB9XG4gIHNldCBhY3RpdmVEZXNjZW5kYW50c0lkKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9hY3RpdmVEZXNjZW5kYW50c0lkID0gdmFsdWU7XG4gICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldCBvcGVuKCkge1xuICAgIHJldHVybiB0aGlzLl9vcGVuO1xuICB9XG4gIHNldCBvcGVuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fb3BlbiA9IHZhbHVlO1xuICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIG5lZ2F0aXZlIG1hcmdpbiwgdGhhdCBpcyB1c2VkIHRvIG1vdmUgdGhlIHBpY2tlciBkcm9wZG93biB0byB0aGUgbGVmdCBzaWRlIG9mIHRoZSBwaWNrZXIgdHJpZ2dlci5cbiAgICovXG4gIGdldCBsZWZ0T2Zmc2V0KCkge1xuICAgIGNvbnN0IGRyb3Bkb3duV2lkdGggPSAxODU7XG4gICAgcmV0dXJuIHRoaXMub3BlbkRpcmVjdGlvbiA9PT0gJ2xlZnQnID8gYC0ke2Ryb3Bkb3duV2lkdGggLSB0aGlzLl90cmlnZ2VyLndpZHRofXB4YCA6ICcwcHgnO1xuICB9XG5cbiAgQENvbnRlbnRDaGlsZHJlbihQaWNrZXJPcHRpb25Db21wb25lbnQpXG4gIHByaXZhdGUgb3B0aW9ucyE6IFF1ZXJ5TGlzdDxQaWNrZXJPcHRpb25Db21wb25lbnQ+O1xuICBrZXlNYW5hZ2VyITogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8UGlja2VyT3B0aW9uQ29tcG9uZW50PjtcblxuICBAQ29udGVudENoaWxkKFBpY2tlclRyaWdnZXJEaXJlY3RpdmUpXG4gIHByaXZhdGUgX3RyaWdnZXIhOiBQaWNrZXJUcmlnZ2VyRGlyZWN0aXZlO1xuICBwcml2YXRlIF9pc0Zvcm1Db250cm9sID0gZmFsc2U7XG4gIHByaXZhdGUgX29wZW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfYWN0aXZlRGVzY2VuZGFudHNJZD86IHN0cmluZztcbiAgcHJpdmF0ZSBfbGFzdFNlbGVjdFdhc0J5S2V5TWFuYWdlciA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5IGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGlyOiBEaXJlY3Rpb25hbGl0eSxcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG1hbmFnZUtleWJvYXJkRXZlbnRzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMub3Blbikge1xuICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLmtleU1hbmFnZXIuYWN0aXZlSXRlbUluZGV4IHx8IDA7XG4gICAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUGlja2VyKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgICAgdGhpcy5zZXRBY3RpdmVQaWNrZXJPcHRpb24oLTEpO1xuICAgICAgICAgIHRoaXMuY2xvc2VQaWNrZXIoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGNvbnN0IG5ld0Rvd25JbmRleCA9IHRoaXMua2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXggPT09IC0xID8gMCA6IGFjdGl2ZUluZGV4ICsgNTtcbiAgICAgICAgICB0aGlzLnNldEFjdGl2ZVBpY2tlck9wdGlvbihuZXdEb3duSW5kZXggPCB0aGlzLm9wdGlvbnMubGVuZ3RoID8gbmV3RG93bkluZGV4IDogYWN0aXZlSW5kZXgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGNvbnN0IG5ld1VwSW5kZXggPSB0aGlzLmtleU1hbmFnZXIuYWN0aXZlSXRlbUluZGV4ID09PSAtMSA/IHRoaXMub3B0aW9ucy5sZW5ndGggLSAxIDogYWN0aXZlSW5kZXggLSA1O1xuICAgICAgICAgIHRoaXMuc2V0QWN0aXZlUGlja2VyT3B0aW9uKG5ld1VwSW5kZXggPj0gMCA/IG5ld1VwSW5kZXggOiBhY3RpdmVJbmRleCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgICAgaWYgKHRoaXMua2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICB0aGlzLnNldEFjdGl2ZVBpY2tlck9wdGlvbih0aGlzLm9wdGlvbnMubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMua2V5TWFuYWdlci5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50c0lkID0gdGhpcy5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lm9wdGlvbklkO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB0aGlzLnNldEFjdGl2ZVBpY2tlck9wdGlvbigwKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnRW5kJzpcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIHRoaXMuc2V0QWN0aXZlUGlja2VyT3B0aW9uKHRoaXMub3B0aW9ucy5sZW5ndGggLSAxKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAvLyBtYXRjaGVzIEFycm93UmlnaHRcbiAgICAgICAgICB0aGlzLmtleU1hbmFnZXIub25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRzSWQgPSB0aGlzLmtleU1hbmFnZXIuYWN0aXZlSXRlbT8ub3B0aW9uSWQ7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0pIHtcbiAgICAgICAgdGhpcy5fbGFzdFNlbGVjdFdhc0J5S2V5TWFuYWdlciA9IHRydWU7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMua2V5TWFuYWdlci5hY3RpdmVJdGVtLnZhbHVlKTtcbiAgICAgICAgaWYgKCF0aGlzLl9pc0Zvcm1Db250cm9sKSB7XG4gICAgICAgICAgdGhpcy5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc2VsZWN0T3B0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5rZXlNYW5hZ2VyID0gbmV3IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyKHRoaXMub3B0aW9ucykud2l0aEhvcml6b250YWxPcmllbnRhdGlvbih0aGlzLmRpci52YWx1ZSkud2l0aFZlcnRpY2FsT3JpZW50YXRpb24odHJ1ZSk7XG5cbiAgICB0aGlzLm9wdGlvbnMubWFwKChpdGVtOiBQaWNrZXJPcHRpb25Db21wb25lbnQpID0+IHtcbiAgICAgIGl0ZW0uc2VsZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/LnZhbHVlIHx8ICF0aGlzLl9sYXN0U2VsZWN0V2FzQnlLZXlNYW5hZ2VyKSB7XG4gICAgICAgICAgdGhpcy5jbG9zZVBpY2tlcigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2xhc3RTZWxlY3RXYXNCeUtleU1hbmFnZXIgPSBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fdHJpZ2dlci5jbGlja0V2ZW50JC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy50b2dnbGVPcGVuKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG5cbiAgY2xvc2VQaWNrZXIoKSB7XG4gICAgdGhpcy5zZXRBY3RpdmVQaWNrZXJPcHRpb24oLTEpO1xuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICB9XG5cbiAgdG9nZ2xlT3BlbigpIHtcbiAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgIGlmICh0aGlzLm9wZW4pIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuICAgIHRoaXMuc2V0QWN0aXZlUGlja2VyT3B0aW9uKHRoaXMub3BlbiA9PT0gZmFsc2UgPyAtMSA6IHRoaXMub3B0aW9ucy50b0FycmF5KCkuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi5zZWxlY3RlZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3RpdmVQaWNrZXJPcHRpb24oaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMua2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGluZGV4KTtcbiAgICBpZiAodGhpcy5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0pIHtcbiAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudHNJZCA9IHRoaXMua2V5TWFuYWdlci5hY3RpdmVJdGVtLm9wdGlvbklkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRzSWQgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8jcmVnaW9uIEFuZ3VsYXIgRm9ybXMgQVBJLiBUaGlzIGlzIG9ubHkgdXNlZCB3aGVuIHVzaW5nIHRoZSBQaWNrZXIgaW5zaWRlIGEgRm9ybUdyb3VwXG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5vcHRpb25zPy50b0FycmF5KCkuZm9yRWFjaCgob3B0aW9uKSA9PiAob3B0aW9uLnNlbGVjdGVkID0gb3B0aW9uLnZhbHVlID09PSB2YWx1ZSkpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgICB0aGlzLl9pc0Zvcm1Db250cm9sID0gdHJ1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9wYWdhdGVDaGFuZ2UoX3ZhbHVlOiBhbnkpIHt9XG4gIHByaXZhdGUgb25Ub3VjaGVkKCkge31cblxuICAvLyNlbmRyZWdpb25cbn1cbiIsIjxkaXYgY2xhc3M9XCJwaWNrZXJDb250YWluZXJcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2x4UGlja2VyVHJpZ2dlcl1cIiAvPlxuICA8dWxcbiAgICBjbGFzcz1cInBpY2tlck9wdGlvbnNcIlxuICAgICpuZ0lmPVwib3BlblwiXG4gICAgbHhBdXRvY2xvc2VcbiAgICAoYXV0b2Nsb3NlKT1cImNsb3NlUGlja2VyKClcIlxuICAgIHJvbGU9XCJsaXN0Ym94XCJcbiAgICBbc3R5bGUubWFyZ2luLWxlZnRdPVwibGVmdE9mZnNldFwiXG4gICAgW2F0dHIuYXJpYS1hY3RpdmVkZXNjZW5kYW50XT1cImFjdGl2ZURlc2NlbmRhbnRzSWRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibGlzdEJveEFyaWFMYWJlbFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImxpc3RCb3hBcmlhTGFiZWxsZWRCeVwiXG4gID5cbiAgICA8bmctY29udGVudCAvPlxuICA8L3VsPlxuPC9kaXY+XG4iXX0=
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL2NvbXBvbmVudHMvcGlja2VyL3BpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL3BpY2tlci9waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFFL0QsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZDLE9BQU8sRUFFTCx1QkFBdUIsRUFFdkIsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBQ2YsVUFBVSxFQUNWLFlBQVksRUFDWixLQUFLLEVBR04sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlEQUFpRCxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFFcEU7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBZ0JILE1BQU0sT0FBTyxlQUFlO0lBYTFCLElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFDRCxJQUFJLG1CQUFtQixDQUFDLEtBQXlCO1FBQy9DLElBQUksQ0FB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QUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLEtBQUssRUFBRSxJQUFJO2dCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsZUFBZSxDQUFDO2FBQy9DO1NBQ0YsZ0VBOENhLHNCQUFzQiw2REFKbkIscUJBQXFCLDZCQzdGeEMsd2RBZ0JBLDZSRHNDWSxJQUFJLDZGQUFFLGtCQUFrQjs7MkZBRXZCLGVBQWU7a0JBZjNCLFNBQVM7K0JBQ0UsV0FBVyxhQUdWO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLEtBQUssRUFBRSxJQUFJOzRCQUNYLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDO3lCQUMvQztxQkFDRixtQkFDZ0IsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLENBQUM7bUhBTzFCLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFLRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkEyQkUsT0FBTztzQkFEZCxlQUFlO3VCQUFDLHFCQUFxQjtnQkFLOUIsUUFBUTtzQkFEZixZQUFZO3VCQUFDLHNCQUFzQjtnQkFlcEMsb0JBQW9CO3NCQURuQixZQUFZO3VCQUFDLGtCQUFrQixFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQgeyBEaXJlY3Rpb25hbGl0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9iaWRpJztcbmltcG9ydCB7IE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBmb3J3YXJkUmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFF1ZXJ5TGlzdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEF1dG9jbG9zZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUtdWkvZGlyZWN0aXZlcy9hdXRvY2xvc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IFBpY2tlck9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL3BpY2tlci1vcHRpb24vcGlja2VyLW9wdGlvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgUGlja2VyVHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4vcGlja2VyLXRyaWdnZXIuZGlyZWN0aXZlJztcblxuLyoqXG4gKiBIb3cgdG8gdXNlOlxuICogUHJvdmlkZSB0aGUgbHgtcGlja2VyIHdpdGggdHdvIGtpbmRzIG9mIENvbnRlbnRDaGlsZHJlbjpcbiAqIDEuIEEgbHhQaWNrZXJUcmlnZ2VyLCBwcmVmZXJhYmx5IGEgYnV0dG9uIGVsZW1lbnQsIHdoaWNoIHdlIHVzZSB0byBvcGVuIHRoZSBkcm9wZG93biBvbiBjbGljayBvciBlbnRlci5cbiAqIDIuIEEgbGlzdCBvZiA8bGk+IGVsZW1lbnRzIHdpdGggYW4gbHgtcGlja2VyLW9wdGlvbiBhdHRyaWJ1dGUgdGhhdCBvd24gdGhlIG9wdGlvbiB0ZW1wbGF0ZSBhcyBjb250ZW50IGNoaWxkcmVuLlxuICpcbiAqIFlvdSBjYW4gdXNlIHRoaXMgY29tcG9uZW50IGFzIHBhcnQgb2YgYSBGb3JtR3JvdXAgb3Igd2lyZSBpdCB1cCB5b3Vyc2VsZiBieSBsaXN0ZW5pbmcgb24gdGhlIChzZWxlY3QpIG91dHB1dCBvZiB0aGUgb3B0aW9ucy5cbiAqXG4gKiBFeGFtcGxlIHVzYWdlIChub24gRm9ybUdyb3VwIHN0eWxlKTpcbiAqIDxseC1waWNrZXIgbGlzdEJveEFyaWFMYWJlbD1cIkF3ZXNvbWUgcGlja2VyXCI+XG4gKiAgIDxidXR0b24gbHhQaWNrZXJUcmlnZ2VyIGx4LWJ1dHRvbiBtb2RlPVwib3V0bGluZVwiIHNpemU9XCJsYXJnZVwiIFtzcXVhcmVdPVwidHJ1ZVwiIGFyaWEtbGFiZWw9XCJBd2Vzb21lIHBpY2tlclwiIHRpdGxlPVwiQXdlc29tZSBwaWNrZXJcIj5cbiAqICAgICAgIDxseC1pY29uIFtuYW1lXT1cInNlbGVjdGlvbi5sYWJlbFwiIFtjb2xvcl09XCJzZWxlY3Rpb24udmFsdWVcIiBmb250QXdzb21lU3R5bGU9XCJzb2xpZFwiPjwvbHgtaWNvbj5cbiAqICAgIDwvYnV0dG9uPlxuICogICAgPGxpICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uc1wiIGx4LXBpY2tlci1vcHRpb24gW3ZhbHVlXT1cIm9wdGlvbi52YWx1ZVwiIFtzZWxlY3RlZF09XCJzZWxlY3Rpb24gPT09IG9wdGlvblwiIChzZWxlY3QpPVwic2VsZWN0aW9uID0gb3B0aW9uXCIgW29wdGlvbklkXT1cIm9wdGlvbi5pZFwiPlxuICogICAgICAgPGx4LWljb24gbHgtcGlja2VyLW9wdGlvbiBbbmFtZV09XCJvcHRpb24ubGFiZWxcIiBbY29sb3JdPVwib3B0aW9uLnZhbHVlXCIgZm9udEF3c29tZVN0eWxlPVwic29saWRcIj48L2x4LWljb24+XG4gKiAgICA8L2xpPlxuICogPC9seC1waWNrZXI+XG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAncGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ3BpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUGlja2VyQ29tcG9uZW50KVxuICAgIH1cbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtOZ0lmLCBBdXRvY2xvc2VEaXJlY3RpdmVdXG59KVxuZXhwb3J0IGNsYXNzIFBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBPbkRlc3Ryb3kge1xuICAvKipcbiAgICogQSBodW1hbi1yZWFkYWJsZSBzdHJpbmcgdmFsdWUgd2hpY2ggaWRlbnRpZmllcyB0aGUgbGlzdGJveC5cbiAgICogSWYgdGhlcmUncyBhIHZpc2libGUgbGFiZWwsIHRoZW4gYXJpYS1sYWJlbGxlZGJ5IHNob3VsZCBiZSB1c2VkIGluc3RlYWQgdG8gcmVmZXIgdG8gdGhhdCBsYWJlbC5cbiAgICovXG4gIEBJbnB1dCgpIGxpc3RCb3hBcmlhTGFiZWw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBJZGVudGlmaWVzIHRoZSB2aXNpYmxlIGVsZW1lbnQgd2hpY2ggaWRlbnRpZmllcyB0aGUgbGlzdGJveC5cbiAgICogSWYgdGhlcmUncyBubyB2aXNpYmxlIGxhYmVsLCB0aGVuIGFyaWEtbGFiZWwgc2hvdWxkIGJlIHVzZWQgaW5zdGVhZCB0byBpbmNsdWRlIGEgbGFiZWwuXG4gICAqL1xuICBASW5wdXQoKSBsaXN0Qm94QXJpYUxhYmVsbGVkQnk/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIG9wZW5EaXJlY3Rpb246ICdsZWZ0JyB8ICdyaWdodCcgPSAncmlnaHQnO1xuXG4gIGdldCBhY3RpdmVEZXNjZW5kYW50c0lkKCkge1xuICAgIHJldHVybiB0aGlzLl9hY3RpdmVEZXNjZW5kYW50c0lkO1xuICB9XG4gIHNldCBhY3RpdmVEZXNjZW5kYW50c0lkKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9hY3RpdmVEZXNjZW5kYW50c0lkID0gdmFsdWU7XG4gICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIGdldCBvcGVuKCkge1xuICAgIHJldHVybiB0aGlzLl9vcGVuO1xuICB9XG4gIHNldCBvcGVuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fb3BlbiA9IHZhbHVlO1xuICAgIHRoaXMuY2RSZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIG5lZ2F0aXZlIG1hcmdpbiwgdGhhdCBpcyB1c2VkIHRvIG1vdmUgdGhlIHBpY2tlciBkcm9wZG93biB0byB0aGUgbGVmdCBzaWRlIG9mIHRoZSBwaWNrZXIgdHJpZ2dlci5cbiAgICovXG4gIGdldCBsZWZ0T2Zmc2V0KCkge1xuICAgIGNvbnN0IGRyb3Bkb3duV2lkdGggPSAxODU7XG4gICAgcmV0dXJuIHRoaXMub3BlbkRpcmVjdGlvbiA9PT0gJ2xlZnQnID8gYC0ke2Ryb3Bkb3duV2lkdGggLSB0aGlzLl90cmlnZ2VyLndpZHRofXB4YCA6ICcwcHgnO1xuICB9XG5cbiAgQENvbnRlbnRDaGlsZHJlbihQaWNrZXJPcHRpb25Db21wb25lbnQpXG4gIHByaXZhdGUgb3B0aW9ucyE6IFF1ZXJ5TGlzdDxQaWNrZXJPcHRpb25Db21wb25lbnQ+O1xuICBrZXlNYW5hZ2VyITogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8UGlja2VyT3B0aW9uQ29tcG9uZW50PjtcblxuICBAQ29udGVudENoaWxkKFBpY2tlclRyaWdnZXJEaXJlY3RpdmUpXG4gIHByaXZhdGUgX3RyaWdnZXIhOiBQaWNrZXJUcmlnZ2VyRGlyZWN0aXZlO1xuICBwcml2YXRlIF9pc0Zvcm1Db250cm9sID0gZmFsc2U7XG4gIHByaXZhdGUgX29wZW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfYWN0aXZlRGVzY2VuZGFudHNJZD86IHN0cmluZztcbiAgcHJpdmF0ZSBfbGFzdFNlbGVjdFdhc0J5S2V5TWFuYWdlciA9IGZhbHNlO1xuXG4gIHJlYWRvbmx5IGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZGlyOiBEaXJlY3Rpb25hbGl0eSxcbiAgICBwcml2YXRlIGNkUmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6a2V5ZG93bicsIFsnJGV2ZW50J10pXG4gIG1hbmFnZUtleWJvYXJkRXZlbnRzKGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKHRoaXMub3Blbikge1xuICAgICAgY29uc3QgYWN0aXZlSW5kZXggPSB0aGlzLmtleU1hbmFnZXIuYWN0aXZlSXRlbUluZGV4IHx8IDA7XG4gICAgICBzd2l0Y2ggKGV2ZW50LmtleSkge1xuICAgICAgICBjYXNlICdFbnRlcic6XG4gICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNsb3NlUGlja2VyKCk7XG4gICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0VzY2FwZSc6XG4gICAgICAgIGNhc2UgJ1RhYic6XG4gICAgICAgICAgdGhpcy5zZXRBY3RpdmVQaWNrZXJPcHRpb24oLTEpO1xuICAgICAgICAgIHRoaXMuY2xvc2VQaWNrZXIoKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnQXJyb3dEb3duJzpcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGNvbnN0IG5ld0Rvd25JbmRleCA9IHRoaXMua2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXggPT09IC0xID8gMCA6IGFjdGl2ZUluZGV4ICsgNTtcbiAgICAgICAgICB0aGlzLnNldEFjdGl2ZVBpY2tlck9wdGlvbihuZXdEb3duSW5kZXggPCB0aGlzLm9wdGlvbnMubGVuZ3RoID8gbmV3RG93bkluZGV4IDogYWN0aXZlSW5kZXgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgICBjYXNlICdBcnJvd1VwJzpcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIGNvbnN0IG5ld1VwSW5kZXggPSB0aGlzLmtleU1hbmFnZXIuYWN0aXZlSXRlbUluZGV4ID09PSAtMSA/IHRoaXMub3B0aW9ucy5sZW5ndGggLSAxIDogYWN0aXZlSW5kZXggLSA1O1xuICAgICAgICAgIHRoaXMuc2V0QWN0aXZlUGlja2VyT3B0aW9uKG5ld1VwSW5kZXggPj0gMCA/IG5ld1VwSW5kZXggOiBhY3RpdmVJbmRleCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ0Fycm93TGVmdCc6XG4gICAgICAgICAgaWYgKHRoaXMua2V5TWFuYWdlci5hY3RpdmVJdGVtSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICB0aGlzLnNldEFjdGl2ZVBpY2tlck9wdGlvbih0aGlzLm9wdGlvbnMubGVuZ3RoIC0gMSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMua2V5TWFuYWdlci5vbktleWRvd24oZXZlbnQpO1xuICAgICAgICAgICAgdGhpcy5hY3RpdmVEZXNjZW5kYW50c0lkID0gdGhpcy5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/Lm9wdGlvbklkO1xuICAgICAgICAgIH1cbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnSG9tZSc6XG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB0aGlzLnNldEFjdGl2ZVBpY2tlck9wdGlvbigwKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnRW5kJzpcbiAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICAgIHRoaXMuc2V0QWN0aXZlUGlja2VyT3B0aW9uKHRoaXMub3B0aW9ucy5sZW5ndGggLSAxKTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAvLyBtYXRjaGVzIEFycm93UmlnaHRcbiAgICAgICAgICB0aGlzLmtleU1hbmFnZXIub25LZXlkb3duKGV2ZW50KTtcbiAgICAgICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRzSWQgPSB0aGlzLmtleU1hbmFnZXIuYWN0aXZlSXRlbT8ub3B0aW9uSWQ7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0pIHtcbiAgICAgICAgdGhpcy5fbGFzdFNlbGVjdFdhc0J5S2V5TWFuYWdlciA9IHRydWU7XG4gICAgICAgIHRoaXMucHJvcGFnYXRlQ2hhbmdlKHRoaXMua2V5TWFuYWdlci5hY3RpdmVJdGVtLnZhbHVlKTtcbiAgICAgICAgaWYgKCF0aGlzLl9pc0Zvcm1Db250cm9sKSB7XG4gICAgICAgICAgdGhpcy5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0uc2VsZWN0T3B0aW9uKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgdGhpcy5rZXlNYW5hZ2VyID0gbmV3IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyKHRoaXMub3B0aW9ucykud2l0aEhvcml6b250YWxPcmllbnRhdGlvbih0aGlzLmRpci52YWx1ZSkud2l0aFZlcnRpY2FsT3JpZW50YXRpb24odHJ1ZSk7XG5cbiAgICB0aGlzLm9wdGlvbnMubWFwKChpdGVtOiBQaWNrZXJPcHRpb25Db21wb25lbnQpID0+IHtcbiAgICAgIGl0ZW0uc2VsZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJCkpLnN1YnNjcmliZSgodmFsdWU6IGFueSkgPT4ge1xuICAgICAgICB0aGlzLnByb3BhZ2F0ZUNoYW5nZSh2YWx1ZSk7XG4gICAgICAgIGlmICh2YWx1ZSAhPT0gdGhpcy5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0/LnZhbHVlIHx8ICF0aGlzLl9sYXN0U2VsZWN0V2FzQnlLZXlNYW5hZ2VyKSB7XG4gICAgICAgICAgdGhpcy5jbG9zZVBpY2tlcigpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuX2xhc3RTZWxlY3RXYXNCeUtleU1hbmFnZXIgPSBmYWxzZTtcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fdHJpZ2dlci5jbGlja0V2ZW50JC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy50b2dnbGVPcGVuKCk7XG4gICAgfSk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG5cbiAgY2xvc2VQaWNrZXIoKSB7XG4gICAgdGhpcy5zZXRBY3RpdmVQaWNrZXJPcHRpb24oLTEpO1xuICAgIHRoaXMub3BlbiA9IGZhbHNlO1xuICB9XG5cbiAgdG9nZ2xlT3BlbigpIHtcbiAgICB0aGlzLm9wZW4gPSAhdGhpcy5vcGVuO1xuICAgIGlmICh0aGlzLm9wZW4pIHtcbiAgICAgIHRoaXMub25Ub3VjaGVkKCk7XG4gICAgfVxuICAgIHRoaXMuc2V0QWN0aXZlUGlja2VyT3B0aW9uKHRoaXMub3BlbiA9PT0gZmFsc2UgPyAtMSA6IHRoaXMub3B0aW9ucy50b0FycmF5KCkuZmluZEluZGV4KChvcHRpb24pID0+IG9wdGlvbi5zZWxlY3RlZCkpO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRBY3RpdmVQaWNrZXJPcHRpb24oaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMua2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKGluZGV4KTtcbiAgICBpZiAodGhpcy5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0pIHtcbiAgICAgIHRoaXMuYWN0aXZlRGVzY2VuZGFudHNJZCA9IHRoaXMua2V5TWFuYWdlci5hY3RpdmVJdGVtLm9wdGlvbklkO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFjdGl2ZURlc2NlbmRhbnRzSWQgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgLy8jcmVnaW9uIEFuZ3VsYXIgRm9ybXMgQVBJLiBUaGlzIGlzIG9ubHkgdXNlZCB3aGVuIHVzaW5nIHRoZSBQaWNrZXIgaW5zaWRlIGEgRm9ybUdyb3VwXG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KSB7XG4gICAgdGhpcy5vcHRpb25zPy50b0FycmF5KCkuZm9yRWFjaCgob3B0aW9uKSA9PiAob3B0aW9uLnNlbGVjdGVkID0gb3B0aW9uLnZhbHVlID09PSB2YWx1ZSkpO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5wcm9wYWdhdGVDaGFuZ2UgPSBmbjtcbiAgICB0aGlzLl9pc0Zvcm1Db250cm9sID0gdHJ1ZTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IGZuO1xuICB9XG5cbiAgcHJpdmF0ZSBwcm9wYWdhdGVDaGFuZ2UoX3ZhbHVlOiBhbnkpIHt9XG4gIHByaXZhdGUgb25Ub3VjaGVkKCkge31cblxuICAvLyNlbmRyZWdpb25cbn1cbiIsIjxkaXYgY2xhc3M9XCJwaWNrZXJDb250YWluZXJcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2x4UGlja2VyVHJpZ2dlcl1cIj48L25nLWNvbnRlbnQ+XG4gIDx1bFxuICAgIGNsYXNzPVwicGlja2VyT3B0aW9uc1wiXG4gICAgKm5nSWY9XCJvcGVuXCJcbiAgICBseEF1dG9jbG9zZVxuICAgIChhdXRvY2xvc2UpPVwiY2xvc2VQaWNrZXIoKVwiXG4gICAgcm9sZT1cImxpc3Rib3hcIlxuICAgIFtzdHlsZS5tYXJnaW4tbGVmdF09XCJsZWZ0T2Zmc2V0XCJcbiAgICBbYXR0ci5hcmlhLWFjdGl2ZWRlc2NlbmRhbnRdPVwiYWN0aXZlRGVzY2VuZGFudHNJZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsaXN0Qm94QXJpYUxhYmVsXCJcbiAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwibGlzdEJveEFyaWFMYWJlbGxlZEJ5XCJcbiAgPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC91bD5cbjwvZGl2PlxuIl19
@@ -70,11 +70,11 @@ export class PickerOptionComponent {
70
70
  this.select.emit(this.value);
71
71
  }
72
72
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: PickerOptionComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Component }); }
73
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: PickerOptionComponent, isStandalone: true, selector: "li[lx-picker-option]", inputs: { optionId: "optionId", ariaLabel: "ariaLabel", value: "value", selected: "selected", isClearOption: "isClearOption" }, outputs: { select: "select" }, host: { listeners: { "click": "manageClickEvents()" }, properties: { "attr.role": "this.role", "attr.aria-selected": "this.ariaSelected", "attr.aria-label": "this.ariaLabelValue", "attr.title": "this.titleValue", "id": "this.id", "class.selected": "this.selected", "class.clearOption": "this.isClearOption", "class.highlighted": "this.highlighted" } }, ngImport: i0, template: "<lx-icon *ngIf=\"isClearOption\" name=\"slash\" color=\"#d8d8d8\" />\n<ng-content *ngIf=\"!isClearOption\" />\n", styles: [":host{display:inline-block;cursor:pointer;width:35px;height:35px;line-height:35px;text-align:center;border:1px solid transparent;border-radius:3px}:host.clearOption{border:1px solid #cfd5df}:host.highlighted,:host.selected{border:1px solid #b2bccc;cursor:default}:host:hover{border:1px solid #b2bccc}:host:focus{outline:0}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "lx-icon", inputs: ["name", "color", "fontAwsomeStyle", "size", "title"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: PickerOptionComponent, isStandalone: true, selector: "li[lx-picker-option]", inputs: { optionId: "optionId", ariaLabel: "ariaLabel", value: "value", selected: "selected", isClearOption: "isClearOption" }, outputs: { select: "select" }, host: { listeners: { "click": "manageClickEvents()" }, properties: { "attr.role": "this.role", "attr.aria-selected": "this.ariaSelected", "attr.aria-label": "this.ariaLabelValue", "attr.title": "this.titleValue", "id": "this.id", "class.selected": "this.selected", "class.clearOption": "this.isClearOption", "class.highlighted": "this.highlighted" } }, ngImport: i0, template: "<lx-icon *ngIf=\"isClearOption\" name=\"slash\" color=\"#d8d8d8\"></lx-icon>\n<ng-content *ngIf=\"!isClearOption\"></ng-content>\n", styles: [":host{display:inline-block;cursor:pointer;width:35px;height:35px;line-height:35px;text-align:center;border:1px solid transparent;border-radius:3px}:host.clearOption{border:1px solid #cfd5df}:host.highlighted,:host.selected{border:1px solid #b2bccc;cursor:default}:host:hover{border:1px solid #b2bccc}:host:focus{outline:0}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: IconComponent, selector: "lx-icon", inputs: ["name", "color", "fontAwsomeStyle", "size", "title"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
74
74
  }
75
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: PickerOptionComponent, decorators: [{
76
76
  type: Component,
77
- args: [{ selector: 'li[lx-picker-option]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, IconComponent], template: "<lx-icon *ngIf=\"isClearOption\" name=\"slash\" color=\"#d8d8d8\" />\n<ng-content *ngIf=\"!isClearOption\" />\n", styles: [":host{display:inline-block;cursor:pointer;width:35px;height:35px;line-height:35px;text-align:center;border:1px solid transparent;border-radius:3px}:host.clearOption{border:1px solid #cfd5df}:host.highlighted,:host.selected{border:1px solid #b2bccc;cursor:default}:host:hover{border:1px solid #b2bccc}:host:focus{outline:0}\n"] }]
77
+ args: [{ selector: 'li[lx-picker-option]', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgIf, IconComponent], template: "<lx-icon *ngIf=\"isClearOption\" name=\"slash\" color=\"#d8d8d8\"></lx-icon>\n<ng-content *ngIf=\"!isClearOption\"></ng-content>\n", styles: [":host{display:inline-block;cursor:pointer;width:35px;height:35px;line-height:35px;text-align:center;border:1px solid transparent;border-radius:3px}:host.clearOption{border:1px solid #cfd5df}:host.highlighted,:host.selected{border:1px solid #b2bccc;cursor:default}:host:hover{border:1px solid #b2bccc}:host:focus{outline:0}\n"] }]
78
78
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.TranslateService }], propDecorators: { role: [{
79
79
  type: HostBinding,
80
80
  args: ['attr.role']
@@ -115,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
115
115
  type: HostListener,
116
116
  args: ['click']
117
117
  }] } });
118
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLW9wdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL3BpY2tlci1vcHRpb24vcGlja2VyLW9wdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL3BpY2tlci1vcHRpb24vcGlja2VyLW9wdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQVV2RCxNQUFNLE9BQU8scUJBQXFCO0lBSWhDLElBQ1csY0FBYztRQUN2QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksb0JBQW9CLENBQUMsQ0FBQztTQUN4RTtRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFDVyxVQUFVO1FBQ25CLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUNXLEVBQUU7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQWVEOzs7OztPQUtHO0lBQ0gsSUFDSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUFjO1FBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUdELFlBQ1UsS0FBd0IsRUFDeEIsZ0JBQWtDO1FBRGxDLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFyRG5DLFNBQUksR0FBRyx1QkFBdUIsQ0FBQztRQUNkLFNBQUksR0FBRyxRQUFRLENBQUM7UUFDUCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQTJCaEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNkLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ2pFOztXQUVHO1FBQ08sV0FBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFlbkMsaUJBQVksR0FBRyxLQUFLLENBQUM7SUFLMUIsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBR0QsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZO1FBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7OEdBcEZVLHFCQUFxQjtrR0FBckIscUJBQXFCLGdsQkN4QmxDLGlIQUVBLDhYRG9CWSxJQUFJLDZGQUFFLGFBQWE7OzJGQUVsQixxQkFBcUI7a0JBVGpDLFNBQVM7K0JBRUUsc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQztxSEFJSixJQUFJO3NCQUE3QixXQUFXO3VCQUFDLFdBQVc7Z0JBQ1csWUFBWTtzQkFBOUMsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBRXRCLGNBQWM7c0JBRHhCLFdBQVc7dUJBQUMsaUJBQWlCO2dCQVFuQixVQUFVO3NCQURwQixXQUFXO3VCQUFDLFlBQVk7Z0JBUWQsRUFBRTtzQkFEWixXQUFXO3VCQUFDLElBQUk7Z0JBU1IsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDa0MsUUFBUTtzQkFBL0MsV0FBVzt1QkFBQyxnQkFBZ0I7O3NCQUFHLEtBQUs7Z0JBQ00sYUFBYTtzQkFBdkQsV0FBVzt1QkFBQyxtQkFBbUI7O3NCQUFHLEtBQUs7Z0JBSTlCLE1BQU07c0JBQWYsTUFBTTtnQkFRSCxXQUFXO3NCQURkLFdBQVc7dUJBQUMsbUJBQW1CO2dCQXNCaEMsaUJBQWlCO3NCQURoQixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIaWdobGlnaHRhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaVtseC1waWNrZXItb3B0aW9uXScsXG4gIHRlbXBsYXRlVXJsOiAncGlja2VyLW9wdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydwaWNrZXItb3B0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJZiwgSWNvbkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgUGlja2VyT3B0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgSGlnaGxpZ2h0YWJsZSwgT25Jbml0IHtcbiAgcmVhZG9ubHkgTkFNRSA9ICdQaWNrZXJPcHRpb25Db21wb25lbnQnO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpIHJvbGUgPSAnb3B0aW9uJztcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtc2VsZWN0ZWQnKSBhcmlhU2VsZWN0ZWQgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWwnKVxuICBwdWJsaWMgZ2V0IGFyaWFMYWJlbFZhbHVlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuaXNDbGVhck9wdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGAke3RoaXMuTkFNRX0uY2xlYXJPcHRpb24ubGFiZWxgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXJpYUxhYmVsO1xuICB9XG4gIEBIb3N0QmluZGluZygnYXR0ci50aXRsZScpXG4gIHB1YmxpYyBnZXQgdGl0bGVWYWx1ZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLmlzQ2xlYXJPcHRpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgJHt0aGlzLk5BTUV9LmNsZWFyT3B0aW9uLmxhYmVsYCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFyaWFMYWJlbDtcbiAgfVxuICBASG9zdEJpbmRpbmcoJ2lkJylcbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbklkO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgb3B0aW9uSWQgbXVzdCBiZSBzZXQgdG8gYSB1bmlxdWUgdmFsdWUuIEl0J3MgdXNlZCBhcyB2YWx1ZSBmb3IgdGhlIGlkIHByb3BlcnR5IG9mIGFuIG9wdGlvbi5cbiAgICogQXMgdGhlIHVzZXIgbmF2aWdhdGVzIHRocm91Z2ggdGhlIGxpc3QgdmlhIGFycm93IGtleXMsIHRoZSBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQgcHJvcGVydHkgZm9yIHRoZVxuICAgKiBidXR0b24gaW4gdGhlIFBpY2tlckNvbXBvbmVudCBpcyBhZGp1c3RlZCB0byByZWZsZWN0IHRoZSBpZCBhdHRyaWJ1dGUgb2YgdGhlIGFjdGl2ZSBvcHRpb24uXG4gICAqL1xuICBASW5wdXQoKSBvcHRpb25JZCE6IHN0cmluZztcbiAgQElucHV0KCkgYXJpYUxhYmVsPzogc3RyaW5nO1xuICBASW5wdXQoKSB2YWx1ZSE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zZWxlY3RlZCcpIEBJbnB1dCgpIHNlbGVjdGVkID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuY2xlYXJPcHRpb24nKSBASW5wdXQoKSBpc0NsZWFyT3B0aW9uID0gZmFsc2U7XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgdmFsdWUuXG4gICAqL1xuICBAT3V0cHV0KCkgc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIC8qKlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIHRydWUsIHdoZW4gdGhlIG9wdGlvbiB3YXMgc2VsZWN0ZWQgYnkgbW91c2UgY2xpY2sgb3IgYnkgdGhlXG4gICAqIEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIGNhbGxpbmcgc2V0QWN0aXZlU3R5bGVzKCkuXG4gICAqIEl0J3MgZmFsc2Ugd2hlbiB0aGUgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgY2FsbHMgc2V0SW5hY3RpdmVTdHlsZXMoKS5cbiAgICogSXMgdXNlZCBieSB0aGUgUGlja2VyQ29tcG9uZW50IHRvIGZpbmQgdGhlIGN1cnJlbnQgYWN0aXZlIG9wdGlvbi5cbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaGlnaGxpZ2h0ZWQnKVxuICBnZXQgaGlnaGxpZ2h0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hpZ2hsaWdodGVkO1xuICB9XG4gIHNldCBoaWdobGlnaHRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2hpZ2hsaWdodGVkID0gdmFsdWU7XG4gICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuICBwcml2YXRlIF9oaWdobGlnaHRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuYXJpYVNlbGVjdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIG1hbmFnZUNsaWNrRXZlbnRzKCkge1xuICAgIHRoaXMuc2VsZWN0T3B0aW9uKCk7XG4gIH1cblxuICBzZXRBY3RpdmVTdHlsZXMoKSB7XG4gICAgdGhpcy5hcmlhU2VsZWN0ZWQgPSB0cnVlO1xuICAgIHRoaXMuaGlnaGxpZ2h0ZWQgPSB0cnVlO1xuICB9XG5cbiAgc2V0SW5hY3RpdmVTdHlsZXMoKSB7XG4gICAgdGhpcy5hcmlhU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICB0aGlzLmhpZ2hsaWdodGVkID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcnMgdGhlIEV2ZW50RW1pdHRlciBzZWxlY3QoKSB0aGF0IHNob3VsZCBlbWl0LCB3aGVuIGFuIG9wdGlvbiB3YXMgc2VsZWN0ZWQuXG4gICAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBpbiB0aGUgUGlja2VyQ29tcG9uZW50IHdoZW4gYW4gb3B0aW9uIHdhcyBzZWxlY3RlZC5cbiAgICovXG4gIHNlbGVjdE9wdGlvbigpIHtcbiAgICB0aGlzLnNlbGVjdC5lbWl0KHRoaXMudmFsdWUpO1xuICB9XG59XG4iLCI8bHgtaWNvbiAqbmdJZj1cImlzQ2xlYXJPcHRpb25cIiBuYW1lPVwic2xhc2hcIiBjb2xvcj1cIiNkOGQ4ZDhcIiAvPlxuPG5nLWNvbnRlbnQgKm5nSWY9XCIhaXNDbGVhck9wdGlvblwiIC8+XG4iXX0=
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLW9wdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL3BpY2tlci1vcHRpb24vcGlja2VyLW9wdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL3BpY2tlci1vcHRpb24vcGlja2VyLW9wdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDdkMsT0FBTyxFQUNMLHVCQUF1QixFQUV2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7OztBQVV2RCxNQUFNLE9BQU8scUJBQXFCO0lBSWhDLElBQ1csY0FBYztRQUN2QixJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUU7WUFDdEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksb0JBQW9CLENBQUMsQ0FBQztTQUN4RTtRQUNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDO0lBQ0QsSUFDVyxVQUFVO1FBQ25CLElBQUksSUFBSSxDQUFDLGFBQWEsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxvQkFBb0IsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUNXLEVBQUU7UUFDWCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQWVEOzs7OztPQUtHO0lBQ0gsSUFDSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFDRCxJQUFJLFdBQVcsQ0FBQyxLQUFjO1FBQzVCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUdELFlBQ1UsS0FBd0IsRUFDeEIsZ0JBQWtDO1FBRGxDLFVBQUssR0FBTCxLQUFLLENBQW1CO1FBQ3hCLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFyRG5DLFNBQUksR0FBRyx1QkFBdUIsQ0FBQztRQUNkLFNBQUksR0FBRyxRQUFRLENBQUM7UUFDUCxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQTJCaEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNkLGtCQUFhLEdBQUcsS0FBSyxDQUFDO1FBQ2pFOztXQUVHO1FBQ08sV0FBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFlbkMsaUJBQVksR0FBRyxLQUFLLENBQUM7SUFLMUIsQ0FBQztJQUVKLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDakIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7U0FDMUI7SUFDSCxDQUFDO0lBR0QsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3RCLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7SUFDMUIsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7O09BR0c7SUFDSCxZQUFZO1FBQ1YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQy9CLENBQUM7OEdBcEZVLHFCQUFxQjtrR0FBckIscUJBQXFCLGdsQkN4QmxDLG9JQUVBLDhYRG9CWSxJQUFJLDZGQUFFLGFBQWE7OzJGQUVsQixxQkFBcUI7a0JBVGpDLFNBQVM7K0JBRUUsc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsSUFBSSxFQUFFLGFBQWEsQ0FBQztxSEFJSixJQUFJO3NCQUE3QixXQUFXO3VCQUFDLFdBQVc7Z0JBQ1csWUFBWTtzQkFBOUMsV0FBVzt1QkFBQyxvQkFBb0I7Z0JBRXRCLGNBQWM7c0JBRHhCLFdBQVc7dUJBQUMsaUJBQWlCO2dCQVFuQixVQUFVO3NCQURwQixXQUFXO3VCQUFDLFlBQVk7Z0JBUWQsRUFBRTtzQkFEWixXQUFXO3VCQUFDLElBQUk7Z0JBU1IsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDa0MsUUFBUTtzQkFBL0MsV0FBVzt1QkFBQyxnQkFBZ0I7O3NCQUFHLEtBQUs7Z0JBQ00sYUFBYTtzQkFBdkQsV0FBVzt1QkFBQyxtQkFBbUI7O3NCQUFHLEtBQUs7Z0JBSTlCLE1BQU07c0JBQWYsTUFBTTtnQkFRSCxXQUFXO3NCQURkLFdBQVc7dUJBQUMsbUJBQW1CO2dCQXNCaEMsaUJBQWlCO3NCQURoQixZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIaWdobGlnaHRhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xuaW1wb3J0IHsgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJY29uQ29tcG9uZW50IH0gZnJvbSAnLi4vaWNvbi9pY29uLmNvbXBvbmVudCc7XG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaVtseC1waWNrZXItb3B0aW9uXScsXG4gIHRlbXBsYXRlVXJsOiAncGlja2VyLW9wdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydwaWNrZXItb3B0aW9uLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdJZiwgSWNvbkNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgUGlja2VyT3B0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgSGlnaGxpZ2h0YWJsZSwgT25Jbml0IHtcbiAgcmVhZG9ubHkgTkFNRSA9ICdQaWNrZXJPcHRpb25Db21wb25lbnQnO1xuICBASG9zdEJpbmRpbmcoJ2F0dHIucm9sZScpIHJvbGUgPSAnb3B0aW9uJztcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtc2VsZWN0ZWQnKSBhcmlhU2VsZWN0ZWQgPSBmYWxzZTtcbiAgQEhvc3RCaW5kaW5nKCdhdHRyLmFyaWEtbGFiZWwnKVxuICBwdWJsaWMgZ2V0IGFyaWFMYWJlbFZhbHVlKCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgaWYgKHRoaXMuaXNDbGVhck9wdGlvbikge1xuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KGAke3RoaXMuTkFNRX0uY2xlYXJPcHRpb24ubGFiZWxgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuYXJpYUxhYmVsO1xuICB9XG4gIEBIb3N0QmluZGluZygnYXR0ci50aXRsZScpXG4gIHB1YmxpYyBnZXQgdGl0bGVWYWx1ZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIGlmICh0aGlzLmlzQ2xlYXJPcHRpb24pIHtcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChgJHt0aGlzLk5BTUV9LmNsZWFyT3B0aW9uLmxhYmVsYCk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmFyaWFMYWJlbDtcbiAgfVxuICBASG9zdEJpbmRpbmcoJ2lkJylcbiAgcHVibGljIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLm9wdGlvbklkO1xuICB9XG4gIC8qKlxuICAgKiBUaGUgb3B0aW9uSWQgbXVzdCBiZSBzZXQgdG8gYSB1bmlxdWUgdmFsdWUuIEl0J3MgdXNlZCBhcyB2YWx1ZSBmb3IgdGhlIGlkIHByb3BlcnR5IG9mIGFuIG9wdGlvbi5cbiAgICogQXMgdGhlIHVzZXIgbmF2aWdhdGVzIHRocm91Z2ggdGhlIGxpc3QgdmlhIGFycm93IGtleXMsIHRoZSBhcmlhLWFjdGl2ZWRlc2NlbmRhbnQgcHJvcGVydHkgZm9yIHRoZVxuICAgKiBidXR0b24gaW4gdGhlIFBpY2tlckNvbXBvbmVudCBpcyBhZGp1c3RlZCB0byByZWZsZWN0IHRoZSBpZCBhdHRyaWJ1dGUgb2YgdGhlIGFjdGl2ZSBvcHRpb24uXG4gICAqL1xuICBASW5wdXQoKSBvcHRpb25JZCE6IHN0cmluZztcbiAgQElucHV0KCkgYXJpYUxhYmVsPzogc3RyaW5nO1xuICBASW5wdXQoKSB2YWx1ZSE6IGFueTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5zZWxlY3RlZCcpIEBJbnB1dCgpIHNlbGVjdGVkID0gZmFsc2U7XG4gIEBIb3N0QmluZGluZygnY2xhc3MuY2xlYXJPcHRpb24nKSBASW5wdXQoKSBpc0NsZWFyT3B0aW9uID0gZmFsc2U7XG4gIC8qKlxuICAgKiBFbWl0cyB0aGUgdmFsdWUuXG4gICAqL1xuICBAT3V0cHV0KCkgc2VsZWN0ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIC8qKlxuICAgKiBUaGlzIHByb3BlcnR5IGlzIHRydWUsIHdoZW4gdGhlIG9wdGlvbiB3YXMgc2VsZWN0ZWQgYnkgbW91c2UgY2xpY2sgb3IgYnkgdGhlXG4gICAqIEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIGNhbGxpbmcgc2V0QWN0aXZlU3R5bGVzKCkuXG4gICAqIEl0J3MgZmFsc2Ugd2hlbiB0aGUgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgY2FsbHMgc2V0SW5hY3RpdmVTdHlsZXMoKS5cbiAgICogSXMgdXNlZCBieSB0aGUgUGlja2VyQ29tcG9uZW50IHRvIGZpbmQgdGhlIGN1cnJlbnQgYWN0aXZlIG9wdGlvbi5cbiAgICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaGlnaGxpZ2h0ZWQnKVxuICBnZXQgaGlnaGxpZ2h0ZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2hpZ2hsaWdodGVkO1xuICB9XG4gIHNldCBoaWdobGlnaHRlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2hpZ2hsaWdodGVkID0gdmFsdWU7XG4gICAgdGhpcy5jZFJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuICBwcml2YXRlIF9oaWdobGlnaHRlZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZVxuICApIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWQpIHtcbiAgICAgIHRoaXMuYXJpYVNlbGVjdGVkID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIG1hbmFnZUNsaWNrRXZlbnRzKCkge1xuICAgIHRoaXMuc2VsZWN0T3B0aW9uKCk7XG4gIH1cblxuICBzZXRBY3RpdmVTdHlsZXMoKSB7XG4gICAgdGhpcy5hcmlhU2VsZWN0ZWQgPSB0cnVlO1xuICAgIHRoaXMuaGlnaGxpZ2h0ZWQgPSB0cnVlO1xuICB9XG5cbiAgc2V0SW5hY3RpdmVTdHlsZXMoKSB7XG4gICAgdGhpcy5hcmlhU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICB0aGlzLmhpZ2hsaWdodGVkID0gZmFsc2U7XG4gIH1cblxuICAvKipcbiAgICogVHJpZ2dlcnMgdGhlIEV2ZW50RW1pdHRlciBzZWxlY3QoKSB0aGF0IHNob3VsZCBlbWl0LCB3aGVuIGFuIG9wdGlvbiB3YXMgc2VsZWN0ZWQuXG4gICAqIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCBpbiB0aGUgUGlja2VyQ29tcG9uZW50IHdoZW4gYW4gb3B0aW9uIHdhcyBzZWxlY3RlZC5cbiAgICovXG4gIHNlbGVjdE9wdGlvbigpIHtcbiAgICB0aGlzLnNlbGVjdC5lbWl0KHRoaXMudmFsdWUpO1xuICB9XG59XG4iLCI8bHgtaWNvbiAqbmdJZj1cImlzQ2xlYXJPcHRpb25cIiBuYW1lPVwic2xhc2hcIiBjb2xvcj1cIiNkOGQ4ZDhcIj48L2x4LWljb24+XG48bmctY29udGVudCAqbmdJZj1cIiFpc0NsZWFyT3B0aW9uXCI+PC9uZy1jb250ZW50PlxuIl19
@@ -30,11 +30,11 @@ export class PillListComponent extends KeyboardSelectDirective {
30
30
  return (index, pill) => (prop ? pill[prop] : index);
31
31
  }
32
32
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: PillListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
33
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: PillListComponent, isStandalone: true, selector: "lx-pill-list", inputs: { pills: "pills", labelKey: "labelKey", itemKey: "itemKey", disabled: "disabled" }, outputs: { remove: "remove" }, host: { properties: { "class.disabled": "this.disabled" } }, queries: [{ propertyName: "pillTemplate", first: true, predicate: ["pillTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "contentItems", predicate: PillItemComponent }], usesInheritance: true, ngImport: i0, template: "<ul class=\"pills\" #keyboardSelectContainer>\n <li\n *ngFor=\"let pill of pills; let index = index; trackBy: trackByProp(itemKey)\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n (select)=\"removePillViaKeyboard(pill)\"\n class=\"pill\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n >\n <ng-container *ngIf=\"pillTemplate; else defaultTemplate\">\n <ng-container *ngTemplateOutlet=\"pillTemplate; context: { $implicit: pill, index: index }\" />\n </ng-container>\n <ng-template #defaultTemplate>\n <lx-pill-item [item]=\"pill\" [label]=\"labelKey ? pill[labelKey] : pill\" [disabled]=\"disabled\" (remove)=\"removePill($event)\" />\n </ng-template>\n </li>\n</ul>\n", styles: [":host .pill{display:inline}:host.disabled{cursor:not-allowed}:host .pills{display:inline;margin:0!important;padding:0!important}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: SelectableItemDirective, selector: "[lxSelectableItem]", inputs: ["scrollInContainer", "lxSelectableItem"], outputs: ["select"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PillItemComponent, selector: "lx-pill-item", inputs: ["item", "label", "disabled"], outputs: ["remove"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
33
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: PillListComponent, isStandalone: true, selector: "lx-pill-list", inputs: { pills: "pills", labelKey: "labelKey", itemKey: "itemKey", disabled: "disabled" }, outputs: { remove: "remove" }, host: { properties: { "class.disabled": "this.disabled" } }, queries: [{ propertyName: "pillTemplate", first: true, predicate: ["pillTemplate"], descendants: true, read: TemplateRef, static: true }, { propertyName: "contentItems", predicate: PillItemComponent }], usesInheritance: true, ngImport: i0, template: "<ul class=\"pills\" #keyboardSelectContainer>\n <li\n *ngFor=\"let pill of pills; let index = index; trackBy: trackByProp(itemKey)\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n (select)=\"removePillViaKeyboard(pill)\"\n class=\"pill\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n >\n <ng-container *ngIf=\"pillTemplate; else defaultTemplate\">\n <ng-container *ngTemplateOutlet=\"pillTemplate; context: { $implicit: pill, index: index }\"></ng-container>\n </ng-container>\n <ng-template #defaultTemplate>\n <lx-pill-item\n [item]=\"pill\"\n [label]=\"labelKey ? pill[labelKey] : pill\"\n [disabled]=\"disabled\"\n (remove)=\"removePill($event)\"\n ></lx-pill-item>\n </ng-template>\n </li>\n</ul>\n", styles: [":host .pill{display:inline}:host.disabled{cursor:not-allowed}:host .pills{display:inline;margin:0!important;padding:0!important}\n"], dependencies: [{ kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: SelectableItemDirective, selector: "[lxSelectableItem]", inputs: ["scrollInContainer", "lxSelectableItem"], outputs: ["select"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: PillItemComponent, selector: "lx-pill-item", inputs: ["item", "label", "disabled"], outputs: ["remove"] }, { kind: "pipe", type: AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
34
34
  }
35
35
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: PillListComponent, decorators: [{
36
36
  type: Component,
37
- args: [{ selector: 'lx-pill-list', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgFor, SelectableItemDirective, NgIf, NgTemplateOutlet, PillItemComponent, AsyncPipe], template: "<ul class=\"pills\" #keyboardSelectContainer>\n <li\n *ngFor=\"let pill of pills; let index = index; trackBy: trackByProp(itemKey)\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n (select)=\"removePillViaKeyboard(pill)\"\n class=\"pill\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n >\n <ng-container *ngIf=\"pillTemplate; else defaultTemplate\">\n <ng-container *ngTemplateOutlet=\"pillTemplate; context: { $implicit: pill, index: index }\" />\n </ng-container>\n <ng-template #defaultTemplate>\n <lx-pill-item [item]=\"pill\" [label]=\"labelKey ? pill[labelKey] : pill\" [disabled]=\"disabled\" (remove)=\"removePill($event)\" />\n </ng-template>\n </li>\n</ul>\n", styles: [":host .pill{display:inline}:host.disabled{cursor:not-allowed}:host .pills{display:inline;margin:0!important;padding:0!important}\n"] }]
37
+ args: [{ selector: 'lx-pill-list', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgFor, SelectableItemDirective, NgIf, NgTemplateOutlet, PillItemComponent, AsyncPipe], template: "<ul class=\"pills\" #keyboardSelectContainer>\n <li\n *ngFor=\"let pill of pills; let index = index; trackBy: trackByProp(itemKey)\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n (select)=\"removePillViaKeyboard(pill)\"\n class=\"pill\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n >\n <ng-container *ngIf=\"pillTemplate; else defaultTemplate\">\n <ng-container *ngTemplateOutlet=\"pillTemplate; context: { $implicit: pill, index: index }\"></ng-container>\n </ng-container>\n <ng-template #defaultTemplate>\n <lx-pill-item\n [item]=\"pill\"\n [label]=\"labelKey ? pill[labelKey] : pill\"\n [disabled]=\"disabled\"\n (remove)=\"removePill($event)\"\n ></lx-pill-item>\n </ng-template>\n </li>\n</ul>\n", styles: [":host .pill{display:inline}:host.disabled{cursor:not-allowed}:host .pills{display:inline;margin:0!important;padding:0!important}\n"] }]
38
38
  }], propDecorators: { pills: [{
39
39
  type: Input
40
40
  }], labelKey: [{
@@ -55,4 +55,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
55
55
  type: ContentChildren,
56
56
  args: [PillItemComponent, { emitDistinctChangesOnly: true }]
57
57
  }] } });
58
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlsbC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL2NvbXBvbmVudHMvcGlsbC1saXN0L3BpbGwtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL3BpbGwtbGlzdC9waWxsLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0UsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBRU4sV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQVVyRSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsdUJBQXVCO0lBUjlEOztRQVNXLFVBQUssR0FBVSxFQUFFLENBQUM7UUFPYSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRXhELFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBOEIsQ0FBQztLQXFDbkU7SUF4QlUsZUFBZTtRQUN0QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLE1BQU0sZ0JBQWdCLEdBQTJDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDN0YsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFDNUIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUN2RSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ1IsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDM0IsQ0FBQztZQUNGLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFpQztRQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQscUJBQXFCLENBQUMsSUFBUztRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFhO1FBQzlCLE9BQU8sQ0FBQyxLQUFhLEVBQUUsSUFBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRSxDQUFDOzhHQTlDVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixxVkFvQlUsV0FBVyw2REFDaEMsaUJBQWlCLG9EQ2xEcEMsNHdCQWtCQSw0TERTWSxLQUFLLG1IQUFFLHVCQUF1Qix1SUFBRSxJQUFJLDZGQUFFLGdCQUFnQixvSkFBRSxpQkFBaUIsZ0hBQUUsU0FBUzs7MkZBRW5GLGlCQUFpQjtrQkFSN0IsU0FBUzsrQkFDRSxjQUFjLG1CQUVQLHVCQUF1QixDQUFDLE1BQU0sY0FFbkMsSUFBSSxXQUNQLENBQUMsS0FBSyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLENBQUM7OEJBR3RGLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFDa0MsUUFBUTtzQkFBL0MsV0FBVzt1QkFBQyxnQkFBZ0I7O3NCQUFHLEtBQUs7Z0JBRTNCLE1BQU07c0JBQWYsTUFBTTtnQkFVNEQsWUFBWTtzQkFBOUUsWUFBWTt1QkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ00sWUFBWTtzQkFBbEYsZUFBZTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdGb3IsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtZXJnZSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVsYXksIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTZWxlY3RhYmxlSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvc2VsZWN0YWJsZS1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBLZXlib2FyZFNlbGVjdERpcmVjdGl2ZSB9IGZyb20gJy4uL2tleWJvYXJkLXNlbGVjdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTXVsdGlTZWxlY3RSZW1vdmVJdGVtRXZlbnQgfSBmcm9tICcuLi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaWxsSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL3BpbGwtaXRlbS9waWxsLWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtcGlsbC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICdwaWxsLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3R5bGVVcmxzOiBbJ3BpbGwtbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdGb3IsIFNlbGVjdGFibGVJdGVtRGlyZWN0aXZlLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBQaWxsSXRlbUNvbXBvbmVudCwgQXN5bmNQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBQaWxsTGlzdENvbXBvbmVudCBleHRlbmRzIEtleWJvYXJkU2VsZWN0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHBpbGxzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBsYWJlbEtleT86IHN0cmluZztcbiAgLyoqXG4gICAqIFByb3ZpZGUgYW4gaXRlbUtleSB3aGljaCBjb250YWlucyB0aGUgcHJvcGVydHkgbmFtZSBpbiBlYWNoIG9iamVjdCB0byB1bmlxdWVseSBpZGVudGlmeSBpdC5cbiAgICogVGhpcyB3aWxsIGJlIHVzZWQgaW4gdGhlIHRyYWNrQnkgZnVuY3Rpb24uXG4gICAqL1xuICBASW5wdXQoKSBpdGVtS2V5Pzogc3RyaW5nO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRpc2FibGVkJykgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjxNdWx0aVNlbGVjdFJlbW92ZUl0ZW1FdmVudD4oKTtcblxuICAvKipcbiAgICogSWYgeW91IHByb3ZpZGUgYW4gPG5nLXRlbXBsYXRlICNwaWxsVGVtcGxhdGU+LCBpdCB3aWxsIGJlIHVzZWQgdG8gcmVuZGVyIHRoZSBpbmRpdmlkdWFsIHBpbGxzIGluc2lkZSBvZiB0aGUgbHgtbXVsdGktc2VsZWN0LlxuICAgKiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCB0byBhcHBseSBzcGVjaWFsIGF0dHJpYnV0ZXMgb3IgQ1NTIHN0eWxpbmcgdG8gaW5kaXZpZHVhbCBwaWxscy5cbiAgICogRXhhbXBsZTpcbiAgICogPG5nLXRlbXBsYXRlICNwaWxsVGVtcGxhdGUgbGV0LXBpbGw+XG4gICAqICAgIDxseC1waWxsLWl0ZW0gW2NsYXNzLnJlYWRPbmx5XT1cIml0ZW0ucmVhZE9ubHlcIiBbbGFiZWxdPVwiaXRlbS5sYWJlbFwiIFtpdGVtXT1cIml0ZW1cIj48L2x4LXBpbGwtaXRlbT5cbiAgICogPC9uZy10ZW1wbGF0ZT5cbiAgICovXG4gIEBDb250ZW50Q2hpbGQoJ3BpbGxUZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KSBwaWxsVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkcmVuKFBpbGxJdGVtQ29tcG9uZW50LCB7IGVtaXREaXN0aW5jdENoYW5nZXNPbmx5OiB0cnVlIH0pIGNvbnRlbnRJdGVtcyE6IFF1ZXJ5TGlzdDxQaWxsSXRlbUNvbXBvbmVudD47XG5cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIGlmICh0aGlzLnBpbGxUZW1wbGF0ZSkge1xuICAgICAgY29uc3QgcmVtb3ZlUGlsbEV2ZW50czogT2JzZXJ2YWJsZTxNdWx0aVNlbGVjdFJlbW92ZUl0ZW1FdmVudD4gPSB0aGlzLmNvbnRlbnRJdGVtcy5jaGFuZ2VzLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLmNvbnRlbnRJdGVtcyksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiBtZXJnZSguLi50aGlzLmNvbnRlbnRJdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0ucmVtb3ZlKSkpLFxuICAgICAgICBkZWxheSgwKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgICk7XG4gICAgICByZW1vdmVQaWxsRXZlbnRzLnN1YnNjcmliZSh0aGlzLnJlbW92ZVBpbGwuYmluZCh0aGlzKSk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlUGlsbChldmVudDogTXVsdGlTZWxlY3RSZW1vdmVJdGVtRXZlbnQpIHtcbiAgICB0aGlzLnJlbW92ZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHJlbW92ZVBpbGxWaWFLZXlib2FyZChwaWxsOiBhbnkpIHtcbiAgICB0aGlzLnJlbW92ZS5lbWl0KHsgaXRlbTogcGlsbCwgaXNNb3VzZTogZmFsc2UgfSk7XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeVByb3AocHJvcD86IHN0cmluZykge1xuICAgIHJldHVybiAoaW5kZXg6IG51bWJlciwgcGlsbDogYW55KSA9PiAocHJvcCA/IHBpbGxbcHJvcF0gOiBpbmRleCk7XG4gIH1cbn1cbiIsIjx1bCBjbGFzcz1cInBpbGxzXCIgI2tleWJvYXJkU2VsZWN0Q29udGFpbmVyPlxuICA8bGlcbiAgICAqbmdGb3I9XCJsZXQgcGlsbCBvZiBwaWxsczsgbGV0IGluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlQcm9wKGl0ZW1LZXkpXCJcbiAgICBseFNlbGVjdGFibGVJdGVtXG4gICAgW3Njcm9sbEluQ29udGFpbmVyXT1cImtleWJvYXJkU2VsZWN0Q29udGFpbmVyXCJcbiAgICAjaXRlbVxuICAgIChzZWxlY3QpPVwicmVtb3ZlUGlsbFZpYUtleWJvYXJkKHBpbGwpXCJcbiAgICBjbGFzcz1cInBpbGxcIlxuICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtLCAoc2VsZWN0ZWRJdGVtJCB8IGFzeW5jKT8uZWxlbWVudClcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBpbGxUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0VGVtcGxhdGVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwaWxsVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBwaWxsLCBpbmRleDogaW5kZXggfVwiIC8+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VGVtcGxhdGU+XG4gICAgICA8bHgtcGlsbC1pdGVtIFtpdGVtXT1cInBpbGxcIiBbbGFiZWxdPVwibGFiZWxLZXkgPyBwaWxsW2xhYmVsS2V5XSA6IHBpbGxcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAocmVtb3ZlKT1cInJlbW92ZVBpbGwoJGV2ZW50KVwiIC8+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9saT5cbjwvdWw+XG4iXX0=
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlsbC1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL2NvbXBvbmVudHMvcGlsbC1saXN0L3BpbGwtbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL3BpbGwtbGlzdC9waWxsLWxpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0UsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixZQUFZLEVBQ1osV0FBVyxFQUNYLEtBQUssRUFDTCxNQUFNLEVBRU4sV0FBVyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxLQUFLLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDekMsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQ3JGLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBRXZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOztBQVVyRSxNQUFNLE9BQU8saUJBQWtCLFNBQVEsdUJBQXVCO0lBUjlEOztRQVNXLFVBQUssR0FBVSxFQUFFLENBQUM7UUFPYSxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRXhELFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBOEIsQ0FBQztLQXFDbkU7SUF4QlUsZUFBZTtRQUN0QixLQUFLLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLE1BQU0sZ0JBQWdCLEdBQTJDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDN0YsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFDNUIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUN2RSxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQ1IsU0FBUyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FDM0IsQ0FBQztZQUNGLGdCQUFnQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQ3hEO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxLQUFpQztRQUMxQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxQixDQUFDO0lBRUQscUJBQXFCLENBQUMsSUFBUztRQUM3QixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVNLFdBQVcsQ0FBQyxJQUFhO1FBQzlCLE9BQU8sQ0FBQyxLQUFhLEVBQUUsSUFBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNuRSxDQUFDOzhHQTlDVSxpQkFBaUI7a0dBQWpCLGlCQUFpQixxVkFvQlUsV0FBVyw2REFDaEMsaUJBQWlCLG9EQ2xEcEMsazFCQXVCQSw0TERJWSxLQUFLLG1IQUFFLHVCQUF1Qix1SUFBRSxJQUFJLDZGQUFFLGdCQUFnQixvSkFBRSxpQkFBaUIsZ0hBQUUsU0FBUzs7MkZBRW5GLGlCQUFpQjtrQkFSN0IsU0FBUzsrQkFDRSxjQUFjLG1CQUVQLHVCQUF1QixDQUFDLE1BQU0sY0FFbkMsSUFBSSxXQUNQLENBQUMsS0FBSyxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLENBQUM7OEJBR3RGLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFDa0MsUUFBUTtzQkFBL0MsV0FBVzt1QkFBQyxnQkFBZ0I7O3NCQUFHLEtBQUs7Z0JBRTNCLE1BQU07c0JBQWYsTUFBTTtnQkFVNEQsWUFBWTtzQkFBOUUsWUFBWTt1QkFBQyxjQUFjLEVBQUUsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ00sWUFBWTtzQkFBbEYsZUFBZTt1QkFBQyxpQkFBaUIsRUFBRSxFQUFFLHVCQUF1QixFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdGb3IsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdEJpbmRpbmcsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVGVtcGxhdGVSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBtZXJnZSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVsYXksIHN0YXJ0V2l0aCwgc3dpdGNoTWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTZWxlY3RhYmxlSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMvc2VsZWN0YWJsZS1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBLZXlib2FyZFNlbGVjdERpcmVjdGl2ZSB9IGZyb20gJy4uL2tleWJvYXJkLXNlbGVjdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgTXVsdGlTZWxlY3RSZW1vdmVJdGVtRXZlbnQgfSBmcm9tICcuLi9tdWx0aS1zZWxlY3QvbXVsdGktc2VsZWN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaWxsSXRlbUNvbXBvbmVudCB9IGZyb20gJy4uL3BpbGwtaXRlbS9waWxsLWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtcGlsbC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICdwaWxsLWxpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3R5bGVVcmxzOiBbJ3BpbGwtbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdGb3IsIFNlbGVjdGFibGVJdGVtRGlyZWN0aXZlLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBQaWxsSXRlbUNvbXBvbmVudCwgQXN5bmNQaXBlXVxufSlcbmV4cG9ydCBjbGFzcyBQaWxsTGlzdENvbXBvbmVudCBleHRlbmRzIEtleWJvYXJkU2VsZWN0RGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpIHBpbGxzOiBhbnlbXSA9IFtdO1xuICBASW5wdXQoKSBsYWJlbEtleT86IHN0cmluZztcbiAgLyoqXG4gICAqIFByb3ZpZGUgYW4gaXRlbUtleSB3aGljaCBjb250YWlucyB0aGUgcHJvcGVydHkgbmFtZSBpbiBlYWNoIG9iamVjdCB0byB1bmlxdWVseSBpZGVudGlmeSBpdC5cbiAgICogVGhpcyB3aWxsIGJlIHVzZWQgaW4gdGhlIHRyYWNrQnkgZnVuY3Rpb24uXG4gICAqL1xuICBASW5wdXQoKSBpdGVtS2V5Pzogc3RyaW5nO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmRpc2FibGVkJykgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBAT3V0cHV0KCkgcmVtb3ZlID0gbmV3IEV2ZW50RW1pdHRlcjxNdWx0aVNlbGVjdFJlbW92ZUl0ZW1FdmVudD4oKTtcblxuICAvKipcbiAgICogSWYgeW91IHByb3ZpZGUgYW4gPG5nLXRlbXBsYXRlICNwaWxsVGVtcGxhdGU+LCBpdCB3aWxsIGJlIHVzZWQgdG8gcmVuZGVyIHRoZSBpbmRpdmlkdWFsIHBpbGxzIGluc2lkZSBvZiB0aGUgbHgtbXVsdGktc2VsZWN0LlxuICAgKiBUaGlzIGlzIHVzZWZ1bCBpZiB5b3Ugd2FudCB0byBhcHBseSBzcGVjaWFsIGF0dHJpYnV0ZXMgb3IgQ1NTIHN0eWxpbmcgdG8gaW5kaXZpZHVhbCBwaWxscy5cbiAgICogRXhhbXBsZTpcbiAgICogPG5nLXRlbXBsYXRlICNwaWxsVGVtcGxhdGUgbGV0LXBpbGw+XG4gICAqICAgIDxseC1waWxsLWl0ZW0gW2NsYXNzLnJlYWRPbmx5XT1cIml0ZW0ucmVhZE9ubHlcIiBbbGFiZWxdPVwiaXRlbS5sYWJlbFwiIFtpdGVtXT1cIml0ZW1cIj48L2x4LXBpbGwtaXRlbT5cbiAgICogPC9uZy10ZW1wbGF0ZT5cbiAgICovXG4gIEBDb250ZW50Q2hpbGQoJ3BpbGxUZW1wbGF0ZScsIHsgcmVhZDogVGVtcGxhdGVSZWYsIHN0YXRpYzogdHJ1ZSB9KSBwaWxsVGVtcGxhdGU/OiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkcmVuKFBpbGxJdGVtQ29tcG9uZW50LCB7IGVtaXREaXN0aW5jdENoYW5nZXNPbmx5OiB0cnVlIH0pIGNvbnRlbnRJdGVtcyE6IFF1ZXJ5TGlzdDxQaWxsSXRlbUNvbXBvbmVudD47XG5cbiAgb3ZlcnJpZGUgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHN1cGVyLm5nQWZ0ZXJWaWV3SW5pdCgpO1xuICAgIGlmICh0aGlzLnBpbGxUZW1wbGF0ZSkge1xuICAgICAgY29uc3QgcmVtb3ZlUGlsbEV2ZW50czogT2JzZXJ2YWJsZTxNdWx0aVNlbGVjdFJlbW92ZUl0ZW1FdmVudD4gPSB0aGlzLmNvbnRlbnRJdGVtcy5jaGFuZ2VzLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLmNvbnRlbnRJdGVtcyksXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiBtZXJnZSguLi50aGlzLmNvbnRlbnRJdGVtcy5tYXAoKGl0ZW0pID0+IGl0ZW0ucmVtb3ZlKSkpLFxuICAgICAgICBkZWxheSgwKSxcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveWVkJClcbiAgICAgICk7XG4gICAgICByZW1vdmVQaWxsRXZlbnRzLnN1YnNjcmliZSh0aGlzLnJlbW92ZVBpbGwuYmluZCh0aGlzKSk7XG4gICAgfVxuICB9XG5cbiAgcmVtb3ZlUGlsbChldmVudDogTXVsdGlTZWxlY3RSZW1vdmVJdGVtRXZlbnQpIHtcbiAgICB0aGlzLnJlbW92ZS5lbWl0KGV2ZW50KTtcbiAgfVxuXG4gIHJlbW92ZVBpbGxWaWFLZXlib2FyZChwaWxsOiBhbnkpIHtcbiAgICB0aGlzLnJlbW92ZS5lbWl0KHsgaXRlbTogcGlsbCwgaXNNb3VzZTogZmFsc2UgfSk7XG4gIH1cblxuICBwdWJsaWMgdHJhY2tCeVByb3AocHJvcD86IHN0cmluZykge1xuICAgIHJldHVybiAoaW5kZXg6IG51bWJlciwgcGlsbDogYW55KSA9PiAocHJvcCA/IHBpbGxbcHJvcF0gOiBpbmRleCk7XG4gIH1cbn1cbiIsIjx1bCBjbGFzcz1cInBpbGxzXCIgI2tleWJvYXJkU2VsZWN0Q29udGFpbmVyPlxuICA8bGlcbiAgICAqbmdGb3I9XCJsZXQgcGlsbCBvZiBwaWxsczsgbGV0IGluZGV4ID0gaW5kZXg7IHRyYWNrQnk6IHRyYWNrQnlQcm9wKGl0ZW1LZXkpXCJcbiAgICBseFNlbGVjdGFibGVJdGVtXG4gICAgW3Njcm9sbEluQ29udGFpbmVyXT1cImtleWJvYXJkU2VsZWN0Q29udGFpbmVyXCJcbiAgICAjaXRlbVxuICAgIChzZWxlY3QpPVwicmVtb3ZlUGlsbFZpYUtleWJvYXJkKHBpbGwpXCJcbiAgICBjbGFzcz1cInBpbGxcIlxuICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtLCAoc2VsZWN0ZWRJdGVtJCB8IGFzeW5jKT8uZWxlbWVudClcIlxuICA+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBpbGxUZW1wbGF0ZTsgZWxzZSBkZWZhdWx0VGVtcGxhdGVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwaWxsVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBwaWxsLCBpbmRleDogaW5kZXggfVwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXBsYXRlPlxuICAgICAgPGx4LXBpbGwtaXRlbVxuICAgICAgICBbaXRlbV09XCJwaWxsXCJcbiAgICAgICAgW2xhYmVsXT1cImxhYmVsS2V5ID8gcGlsbFtsYWJlbEtleV0gOiBwaWxsXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgKHJlbW92ZSk9XCJyZW1vdmVQaWxsKCRldmVudClcIlxuICAgICAgPjwvbHgtcGlsbC1pdGVtPlxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbGk+XG48L3VsPlxuIl19