@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
@@ -70,7 +70,7 @@ export class BasicDropdownComponent extends KeyboardSelectDirective {
70
70
  this.createNewOptionSelected.emit();
71
71
  }
72
72
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: BasicDropdownComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
73
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: BasicDropdownComponent, isStandalone: true, selector: "lx-basic-dropdown", inputs: { options: "options", initiallySelectedIndex: "initiallySelectedIndex", labelKey: "labelKey", itemKey: "itemKey", placeholder: "placeholder", loading: "loading", newOptionLabel: "newOptionLabel", padding: "padding", showCreateNewOption: "showCreateNewOption", disabledOptions: "disabledOptions", overlayPositioning: "overlayPositioning", truncateOptions: "truncateOptions", noResultsText: "noResultsText" }, outputs: { onItemSelected: "onItemSelected", triggerRequestForMoreEntries: "triggerRequestForMoreEntries", newOptionLabelSelected: "newOptionLabelSelected", createNewOptionSelected: "createNewOptionSelected" }, providers: [{ provide: KeyboardSelectDirective, useExisting: forwardRef(() => BasicDropdownComponent) }], queries: [{ propertyName: "optionTemplateRef", first: true, predicate: ["optionTemplate"], descendants: true }, { propertyName: "createNewOptionTemplateRef", first: true, predicate: ["createNewOptionTemplate"], descendants: true }, { propertyName: "descriptionTemplateRef", first: true, predicate: ["descriptionTemplateRef"], descendants: true }], viewQueries: [{ propertyName: "selectOrigin", first: true, predicate: ["selectOrigin"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container [ngTemplateOutlet]=\"dropdown\" *ngIf=\"!overlayPositioning\" />\n<ng-container *ngIf=\"overlayPositioning\">\n <div class=\"overlayOrigin\" cdkOverlayOrigin #selectOrigin=\"cdkOverlayOrigin\"></div>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"selectOrigin\"\n [cdkConnectedOverlayOpen]=\"!!(cdkOverlayOpen$ | async)\"\n [cdkConnectedOverlayWidth]=\"selectOrigin.elementRef.nativeElement.offsetWidth\"\n (positionChange)=\"onPositionChange($event)\"\n >\n <div class=\"overlayDropdown\" [ngClass]=\"{ top: isTopDropdown }\">\n <ng-container [ngTemplateOutlet]=\"dropdown\" />\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #dropdown>\n <ul\n class=\"options {{ padding }}Padding lxThinScrollbar\"\n #keyboardSelectContainer\n infinite-scroll\n [scrollWindow]=\"false\"\n [fromRoot]=\"true\"\n [ngClass]=\"{ truncateOptions: truncateOptions }\"\n (scrolled)=\"onScroll()\"\n >\n <li\n *ngIf=\"newOptionLabel && isNewItem\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n (click)=\"onNewItemSelected()\"\n (select)=\"onNewItemSelected()\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n class=\"option keyboardSelectable onTheFlyOption\"\n [attr.aria-label]=\"newOptionLabel\"\n >\n <span class=\"newEntryContent\">\n {{ newOptionLabel }}\n </span>\n <lx-counter class=\"lx-margin-left\" size=\"small\" [content]=\"'common.new' | translate | uppercase\" />\n </li>\n <li\n *ngIf=\"showCreateNewOption\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n (click)=\"onCreateNewOptionSelected()\"\n (select)=\"onCreateNewOptionSelected()\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n class=\"option keyboardSelectable newEntryOption\"\n >\n <span class=\"newEntryContent\">\n <ng-container *ngIf=\"createNewOptionTemplateRef; else defaultNewOption\">\n <ng-container *ngTemplateOutlet=\"createNewOptionTemplateRef\" />\n </ng-container>\n <ng-template #defaultNewOption>\n <span>\n {{ NAME + '.new' | translate }}\n </span>\n </ng-template>\n </span>\n </li>\n <li\n *ngIf=\"descriptionTemplateRef\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n class=\"option description disabledItem\"\n >\n <span class=\"descriptionContent\">\n <ng-container *ngTemplateOutlet=\"descriptionTemplateRef\" />\n </span>\n </li>\n <li\n *ngIf=\"options?.length === 0 && !newOptionLabel && !loading\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n class=\"option keyboardSelectable noOptionsAvailable\"\n [attr.aria-label]=\"noResultsText ?? (NAME + '.noResults' | translate)\"\n >\n {{ noResultsText ?? (NAME + '.noResults' | translate) }}\n </li>\n <li\n *ngIf=\"placeholder\"\n tabindex=\"-1\"\n class=\"option keyboardSelectable clearSelection\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n (click)=\"selectOption(null)\"\n (select)=\"selectOption(null)\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n [attr.aria-label]=\"placeholder\"\n >\n {{ placeholder }}\n </li>\n <li\n *ngFor=\"let option of options; let index = index; trackBy: trackByProp(itemKey)\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n class=\"option keyboardSelectable\"\n (click)=\"selectOption(option)\"\n (select)=\"selectOption(option)\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n [class.initiallySelected]=\"index === initiallySelectedIndex\"\n [class.disabledItem]=\"(itemKey && !!disabledOptions[option[itemKey]]) || this.disabledOptions[option]\"\n [attr.aria-label]=\"labelKey ? option[labelKey] : option\"\n >\n <ng-container *ngIf=\"optionTemplateRef; else simpleStringDisplay\">\n <ng-container *ngTemplateOutlet=\"optionTemplateRef; context: { $implicit: option, index: index }\" />\n </ng-container>\n <ng-template #simpleStringDisplay>\n <span>\n {{ labelKey ? option[labelKey] : option }}\n </span>\n </ng-template>\n </li>\n <lx-spinner *ngIf=\"loading\" [fadeBackground]=\"true\" />\n </ul>\n</ng-template>\n", styles: [":host(.noOptionPadding) .options .option{padding:0}.overlayDropdown{width:100%;background:#fff;border-radius:3px;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;margin:0 -1px;width:calc(100% + 2px)}.overlayDropdown:not(.top){box-shadow:0 6px 6px #21252933;border-top:0;border-bottom:solid 1px #e1e5eb;border-top-left-radius:0;border-top-right-radius:0}.overlayDropdown.top{box-shadow:0 -4px 6px #21252933;border-top:solid 1px #e1e5eb;border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.truncateOptions li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.defaultPadding .newEntryOption,.defaultPadding .onTheFlyOption,.defaultPadding .noOptionsAvailable{padding:4px 12px!important}.narrowPadding .newEntryOption,.narrowPadding .onTheFlyOption,.narrowPadding .noOptionsAvailable{padding:4px!important}.options{list-style:none;margin:0;padding:0;overflow-y:auto;max-height:250px}.options.defaultPadding .option{padding:4px 12px}.options.narrowPadding .option{padding:4px}.optionSearch{padding:2px}.option{cursor:pointer;display:block}.option:hover:not(.disabledItem){background-color:#e1e5eb!important}.option.selected{background:#eaedf1}.option.initiallySelected{color:var(--lx-primarybutton-backgroundcolor)}.option.disabledItem{cursor:default;opacity:.5}\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: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: InfiniteScrollModule }, { kind: "directive", type: i1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "directive", type: SelectableItemDirective, selector: "[lxSelectableItem]", inputs: ["scrollInContainer", "lxSelectableItem"], outputs: ["select"] }, { kind: "component", type: CounterComponent, selector: "lx-counter", inputs: ["content", "size", "color"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SpinnerComponent, selector: "lx-spinner", inputs: ["fadeBackground"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
73
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: BasicDropdownComponent, isStandalone: true, selector: "lx-basic-dropdown", inputs: { options: "options", initiallySelectedIndex: "initiallySelectedIndex", labelKey: "labelKey", itemKey: "itemKey", placeholder: "placeholder", loading: "loading", newOptionLabel: "newOptionLabel", padding: "padding", showCreateNewOption: "showCreateNewOption", disabledOptions: "disabledOptions", overlayPositioning: "overlayPositioning", truncateOptions: "truncateOptions", noResultsText: "noResultsText" }, outputs: { onItemSelected: "onItemSelected", triggerRequestForMoreEntries: "triggerRequestForMoreEntries", newOptionLabelSelected: "newOptionLabelSelected", createNewOptionSelected: "createNewOptionSelected" }, providers: [{ provide: KeyboardSelectDirective, useExisting: forwardRef(() => BasicDropdownComponent) }], queries: [{ propertyName: "optionTemplateRef", first: true, predicate: ["optionTemplate"], descendants: true }, { propertyName: "createNewOptionTemplateRef", first: true, predicate: ["createNewOptionTemplate"], descendants: true }, { propertyName: "descriptionTemplateRef", first: true, predicate: ["descriptionTemplateRef"], descendants: true }], viewQueries: [{ propertyName: "selectOrigin", first: true, predicate: ["selectOrigin"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container [ngTemplateOutlet]=\"dropdown\" *ngIf=\"!overlayPositioning\"></ng-container>\n<ng-container *ngIf=\"overlayPositioning\">\n <div class=\"overlayOrigin\" cdkOverlayOrigin #selectOrigin=\"cdkOverlayOrigin\"></div>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"selectOrigin\"\n [cdkConnectedOverlayOpen]=\"!!(cdkOverlayOpen$ | async)\"\n [cdkConnectedOverlayWidth]=\"selectOrigin.elementRef.nativeElement.offsetWidth\"\n (positionChange)=\"onPositionChange($event)\"\n >\n <div class=\"overlayDropdown\" [ngClass]=\"{ top: isTopDropdown }\">\n <ng-container [ngTemplateOutlet]=\"dropdown\"></ng-container>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #dropdown>\n <ul\n class=\"options {{ padding }}Padding lxThinScrollbar\"\n #keyboardSelectContainer\n infinite-scroll\n [scrollWindow]=\"false\"\n [fromRoot]=\"true\"\n [ngClass]=\"{ truncateOptions: truncateOptions }\"\n (scrolled)=\"onScroll()\"\n >\n <li\n *ngIf=\"newOptionLabel && isNewItem\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n (click)=\"onNewItemSelected()\"\n (select)=\"onNewItemSelected()\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n class=\"option keyboardSelectable onTheFlyOption\"\n [attr.aria-label]=\"newOptionLabel\"\n >\n <span class=\"newEntryContent\">\n {{ newOptionLabel }}\n </span>\n <lx-counter class=\"lx-margin-left\" size=\"small\" [content]=\"'common.new' | translate | uppercase\"></lx-counter>\n </li>\n <li\n *ngIf=\"showCreateNewOption\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n (click)=\"onCreateNewOptionSelected()\"\n (select)=\"onCreateNewOptionSelected()\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n class=\"option keyboardSelectable newEntryOption\"\n >\n <span class=\"newEntryContent\">\n <ng-container *ngIf=\"createNewOptionTemplateRef; else defaultNewOption\">\n <ng-container *ngTemplateOutlet=\"createNewOptionTemplateRef\"></ng-container>\n </ng-container>\n <ng-template #defaultNewOption>\n <span>\n {{ NAME + '.new' | translate }}\n </span>\n </ng-template>\n </span>\n </li>\n <li\n *ngIf=\"descriptionTemplateRef\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n class=\"option description disabledItem\"\n >\n <span class=\"descriptionContent\">\n <ng-container *ngTemplateOutlet=\"descriptionTemplateRef\"></ng-container>\n </span>\n </li>\n <li\n *ngIf=\"options?.length === 0 && !newOptionLabel && !loading\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n class=\"option keyboardSelectable noOptionsAvailable\"\n [attr.aria-label]=\"noResultsText ?? (NAME + '.noResults' | translate)\"\n >\n {{ noResultsText ?? (NAME + '.noResults' | translate) }}\n </li>\n <li\n *ngIf=\"placeholder\"\n tabindex=\"-1\"\n class=\"option keyboardSelectable clearSelection\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n (click)=\"selectOption(null)\"\n (select)=\"selectOption(null)\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n [attr.aria-label]=\"placeholder\"\n >\n {{ placeholder }}\n </li>\n <li\n *ngFor=\"let option of options; let index = index; trackBy: trackByProp(itemKey)\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n class=\"option keyboardSelectable\"\n (click)=\"selectOption(option)\"\n (select)=\"selectOption(option)\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n [class.initiallySelected]=\"index === initiallySelectedIndex\"\n [class.disabledItem]=\"(itemKey && !!disabledOptions[option[itemKey]]) || this.disabledOptions[option]\"\n [attr.aria-label]=\"labelKey ? option[labelKey] : option\"\n >\n <ng-container *ngIf=\"optionTemplateRef; else simpleStringDisplay\">\n <ng-container *ngTemplateOutlet=\"optionTemplateRef; context: { $implicit: option, index: index }\"></ng-container>\n </ng-container>\n <ng-template #simpleStringDisplay>\n <span>\n {{ labelKey ? option[labelKey] : option }}\n </span>\n </ng-template>\n </li>\n <lx-spinner *ngIf=\"loading\" [fadeBackground]=\"true\"></lx-spinner>\n </ul>\n</ng-template>\n", styles: [":host(.noOptionPadding) .options .option{padding:0}.overlayDropdown{width:100%;background:#fff;border-radius:3px;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;margin:0 -1px;width:calc(100% + 2px)}.overlayDropdown:not(.top){box-shadow:0 6px 6px #21252933;border-top:0;border-bottom:solid 1px #e1e5eb;border-top-left-radius:0;border-top-right-radius:0}.overlayDropdown.top{box-shadow:0 -4px 6px #21252933;border-top:solid 1px #e1e5eb;border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.truncateOptions li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.defaultPadding .newEntryOption,.defaultPadding .onTheFlyOption,.defaultPadding .noOptionsAvailable{padding:4px 12px!important}.narrowPadding .newEntryOption,.narrowPadding .onTheFlyOption,.narrowPadding .noOptionsAvailable{padding:4px!important}.options{list-style:none;margin:0;padding:0;overflow-y:auto;max-height:250px}.options.defaultPadding .option{padding:4px 12px}.options.narrowPadding .option{padding:4px}.optionSearch{padding:2px}.option{cursor:pointer;display:block}.option:hover:not(.disabledItem){background-color:#e1e5eb!important}.option.selected{background:#eaedf1}.option.initiallySelected{color:var(--lx-primarybutton-backgroundcolor)}.option.disabledItem{cursor:default;opacity:.5}\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: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: InfiniteScrollModule }, { kind: "directive", type: i1.InfiniteScrollDirective, selector: "[infiniteScroll], [infinite-scroll], [data-infinite-scroll]", inputs: ["infiniteScrollDistance", "infiniteScrollUpDistance", "infiniteScrollThrottle", "infiniteScrollDisabled", "infiniteScrollContainer", "scrollWindow", "immediateCheck", "horizontal", "alwaysCallback", "fromRoot"], outputs: ["scrolled", "scrolledUp"] }, { kind: "directive", type: SelectableItemDirective, selector: "[lxSelectableItem]", inputs: ["scrollInContainer", "lxSelectableItem"], outputs: ["select"] }, { kind: "component", type: CounterComponent, selector: "lx-counter", inputs: ["content", "size", "color"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: SpinnerComponent, selector: "lx-spinner", inputs: ["fadeBackground"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: UpperCasePipe, name: "uppercase" }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i2.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
74
74
  }
75
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: BasicDropdownComponent, decorators: [{
76
76
  type: Component,
@@ -88,7 +88,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
88
88
  AsyncPipe,
89
89
  UpperCasePipe,
90
90
  TranslateModule
91
- ], template: "<ng-container [ngTemplateOutlet]=\"dropdown\" *ngIf=\"!overlayPositioning\" />\n<ng-container *ngIf=\"overlayPositioning\">\n <div class=\"overlayOrigin\" cdkOverlayOrigin #selectOrigin=\"cdkOverlayOrigin\"></div>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"selectOrigin\"\n [cdkConnectedOverlayOpen]=\"!!(cdkOverlayOpen$ | async)\"\n [cdkConnectedOverlayWidth]=\"selectOrigin.elementRef.nativeElement.offsetWidth\"\n (positionChange)=\"onPositionChange($event)\"\n >\n <div class=\"overlayDropdown\" [ngClass]=\"{ top: isTopDropdown }\">\n <ng-container [ngTemplateOutlet]=\"dropdown\" />\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #dropdown>\n <ul\n class=\"options {{ padding }}Padding lxThinScrollbar\"\n #keyboardSelectContainer\n infinite-scroll\n [scrollWindow]=\"false\"\n [fromRoot]=\"true\"\n [ngClass]=\"{ truncateOptions: truncateOptions }\"\n (scrolled)=\"onScroll()\"\n >\n <li\n *ngIf=\"newOptionLabel && isNewItem\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n (click)=\"onNewItemSelected()\"\n (select)=\"onNewItemSelected()\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n class=\"option keyboardSelectable onTheFlyOption\"\n [attr.aria-label]=\"newOptionLabel\"\n >\n <span class=\"newEntryContent\">\n {{ newOptionLabel }}\n </span>\n <lx-counter class=\"lx-margin-left\" size=\"small\" [content]=\"'common.new' | translate | uppercase\" />\n </li>\n <li\n *ngIf=\"showCreateNewOption\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n (click)=\"onCreateNewOptionSelected()\"\n (select)=\"onCreateNewOptionSelected()\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n class=\"option keyboardSelectable newEntryOption\"\n >\n <span class=\"newEntryContent\">\n <ng-container *ngIf=\"createNewOptionTemplateRef; else defaultNewOption\">\n <ng-container *ngTemplateOutlet=\"createNewOptionTemplateRef\" />\n </ng-container>\n <ng-template #defaultNewOption>\n <span>\n {{ NAME + '.new' | translate }}\n </span>\n </ng-template>\n </span>\n </li>\n <li\n *ngIf=\"descriptionTemplateRef\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n class=\"option description disabledItem\"\n >\n <span class=\"descriptionContent\">\n <ng-container *ngTemplateOutlet=\"descriptionTemplateRef\" />\n </span>\n </li>\n <li\n *ngIf=\"options?.length === 0 && !newOptionLabel && !loading\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n class=\"option keyboardSelectable noOptionsAvailable\"\n [attr.aria-label]=\"noResultsText ?? (NAME + '.noResults' | translate)\"\n >\n {{ noResultsText ?? (NAME + '.noResults' | translate) }}\n </li>\n <li\n *ngIf=\"placeholder\"\n tabindex=\"-1\"\n class=\"option keyboardSelectable clearSelection\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n (click)=\"selectOption(null)\"\n (select)=\"selectOption(null)\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n [attr.aria-label]=\"placeholder\"\n >\n {{ placeholder }}\n </li>\n <li\n *ngFor=\"let option of options; let index = index; trackBy: trackByProp(itemKey)\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n class=\"option keyboardSelectable\"\n (click)=\"selectOption(option)\"\n (select)=\"selectOption(option)\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n [class.initiallySelected]=\"index === initiallySelectedIndex\"\n [class.disabledItem]=\"(itemKey && !!disabledOptions[option[itemKey]]) || this.disabledOptions[option]\"\n [attr.aria-label]=\"labelKey ? option[labelKey] : option\"\n >\n <ng-container *ngIf=\"optionTemplateRef; else simpleStringDisplay\">\n <ng-container *ngTemplateOutlet=\"optionTemplateRef; context: { $implicit: option, index: index }\" />\n </ng-container>\n <ng-template #simpleStringDisplay>\n <span>\n {{ labelKey ? option[labelKey] : option }}\n </span>\n </ng-template>\n </li>\n <lx-spinner *ngIf=\"loading\" [fadeBackground]=\"true\" />\n </ul>\n</ng-template>\n", styles: [":host(.noOptionPadding) .options .option{padding:0}.overlayDropdown{width:100%;background:#fff;border-radius:3px;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;margin:0 -1px;width:calc(100% + 2px)}.overlayDropdown:not(.top){box-shadow:0 6px 6px #21252933;border-top:0;border-bottom:solid 1px #e1e5eb;border-top-left-radius:0;border-top-right-radius:0}.overlayDropdown.top{box-shadow:0 -4px 6px #21252933;border-top:solid 1px #e1e5eb;border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.truncateOptions li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.defaultPadding .newEntryOption,.defaultPadding .onTheFlyOption,.defaultPadding .noOptionsAvailable{padding:4px 12px!important}.narrowPadding .newEntryOption,.narrowPadding .onTheFlyOption,.narrowPadding .noOptionsAvailable{padding:4px!important}.options{list-style:none;margin:0;padding:0;overflow-y:auto;max-height:250px}.options.defaultPadding .option{padding:4px 12px}.options.narrowPadding .option{padding:4px}.optionSearch{padding:2px}.option{cursor:pointer;display:block}.option:hover:not(.disabledItem){background-color:#e1e5eb!important}.option.selected{background:#eaedf1}.option.initiallySelected{color:var(--lx-primarybutton-backgroundcolor)}.option.disabledItem{cursor:default;opacity:.5}\n"] }]
91
+ ], template: "<ng-container [ngTemplateOutlet]=\"dropdown\" *ngIf=\"!overlayPositioning\"></ng-container>\n<ng-container *ngIf=\"overlayPositioning\">\n <div class=\"overlayOrigin\" cdkOverlayOrigin #selectOrigin=\"cdkOverlayOrigin\"></div>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"selectOrigin\"\n [cdkConnectedOverlayOpen]=\"!!(cdkOverlayOpen$ | async)\"\n [cdkConnectedOverlayWidth]=\"selectOrigin.elementRef.nativeElement.offsetWidth\"\n (positionChange)=\"onPositionChange($event)\"\n >\n <div class=\"overlayDropdown\" [ngClass]=\"{ top: isTopDropdown }\">\n <ng-container [ngTemplateOutlet]=\"dropdown\"></ng-container>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #dropdown>\n <ul\n class=\"options {{ padding }}Padding lxThinScrollbar\"\n #keyboardSelectContainer\n infinite-scroll\n [scrollWindow]=\"false\"\n [fromRoot]=\"true\"\n [ngClass]=\"{ truncateOptions: truncateOptions }\"\n (scrolled)=\"onScroll()\"\n >\n <li\n *ngIf=\"newOptionLabel && isNewItem\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n (click)=\"onNewItemSelected()\"\n (select)=\"onNewItemSelected()\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n class=\"option keyboardSelectable onTheFlyOption\"\n [attr.aria-label]=\"newOptionLabel\"\n >\n <span class=\"newEntryContent\">\n {{ newOptionLabel }}\n </span>\n <lx-counter class=\"lx-margin-left\" size=\"small\" [content]=\"'common.new' | translate | uppercase\"></lx-counter>\n </li>\n <li\n *ngIf=\"showCreateNewOption\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n (click)=\"onCreateNewOptionSelected()\"\n (select)=\"onCreateNewOptionSelected()\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n class=\"option keyboardSelectable newEntryOption\"\n >\n <span class=\"newEntryContent\">\n <ng-container *ngIf=\"createNewOptionTemplateRef; else defaultNewOption\">\n <ng-container *ngTemplateOutlet=\"createNewOptionTemplateRef\"></ng-container>\n </ng-container>\n <ng-template #defaultNewOption>\n <span>\n {{ NAME + '.new' | translate }}\n </span>\n </ng-template>\n </span>\n </li>\n <li\n *ngIf=\"descriptionTemplateRef\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n class=\"option description disabledItem\"\n >\n <span class=\"descriptionContent\">\n <ng-container *ngTemplateOutlet=\"descriptionTemplateRef\"></ng-container>\n </span>\n </li>\n <li\n *ngIf=\"options?.length === 0 && !newOptionLabel && !loading\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n class=\"option keyboardSelectable noOptionsAvailable\"\n [attr.aria-label]=\"noResultsText ?? (NAME + '.noResults' | translate)\"\n >\n {{ noResultsText ?? (NAME + '.noResults' | translate) }}\n </li>\n <li\n *ngIf=\"placeholder\"\n tabindex=\"-1\"\n class=\"option keyboardSelectable clearSelection\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n (click)=\"selectOption(null)\"\n (select)=\"selectOption(null)\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n [attr.aria-label]=\"placeholder\"\n >\n {{ placeholder }}\n </li>\n <li\n *ngFor=\"let option of options; let index = index; trackBy: trackByProp(itemKey)\"\n tabindex=\"-1\"\n lxSelectableItem\n [scrollInContainer]=\"keyboardSelectContainer\"\n #item\n class=\"option keyboardSelectable\"\n (click)=\"selectOption(option)\"\n (select)=\"selectOption(option)\"\n [class.selected]=\"isItemSelected(item, (selectedItem$ | async)?.element)\"\n [class.initiallySelected]=\"index === initiallySelectedIndex\"\n [class.disabledItem]=\"(itemKey && !!disabledOptions[option[itemKey]]) || this.disabledOptions[option]\"\n [attr.aria-label]=\"labelKey ? option[labelKey] : option\"\n >\n <ng-container *ngIf=\"optionTemplateRef; else simpleStringDisplay\">\n <ng-container *ngTemplateOutlet=\"optionTemplateRef; context: { $implicit: option, index: index }\"></ng-container>\n </ng-container>\n <ng-template #simpleStringDisplay>\n <span>\n {{ labelKey ? option[labelKey] : option }}\n </span>\n </ng-template>\n </li>\n <lx-spinner *ngIf=\"loading\" [fadeBackground]=\"true\"></lx-spinner>\n </ul>\n</ng-template>\n", styles: [":host(.noOptionPadding) .options .option{padding:0}.overlayDropdown{width:100%;background:#fff;border-radius:3px;border-left:solid 1px #e1e5eb;border-right:solid 1px #e1e5eb;margin:0 -1px;width:calc(100% + 2px)}.overlayDropdown:not(.top){box-shadow:0 6px 6px #21252933;border-top:0;border-bottom:solid 1px #e1e5eb;border-top-left-radius:0;border-top-right-radius:0}.overlayDropdown.top{box-shadow:0 -4px 6px #21252933;border-top:solid 1px #e1e5eb;border-bottom:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.truncateOptions li{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.defaultPadding .newEntryOption,.defaultPadding .onTheFlyOption,.defaultPadding .noOptionsAvailable{padding:4px 12px!important}.narrowPadding .newEntryOption,.narrowPadding .onTheFlyOption,.narrowPadding .noOptionsAvailable{padding:4px!important}.options{list-style:none;margin:0;padding:0;overflow-y:auto;max-height:250px}.options.defaultPadding .option{padding:4px 12px}.options.narrowPadding .option{padding:4px}.optionSearch{padding:2px}.option{cursor:pointer;display:block}.option:hover:not(.disabledItem){background-color:#e1e5eb!important}.option.selected{background:#eaedf1}.option.initiallySelected{color:var(--lx-primarybutton-backgroundcolor)}.option.disabledItem{cursor:default;opacity:.5}\n"] }]
92
92
  }], ctorParameters: () => [], propDecorators: { options: [{
93
93
  type: Input
94
94
  }], initiallySelectedIndex: [{
@@ -136,4 +136,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
136
136
  type: ViewChild,
137
137
  args: ['selectOrigin', { static: false }]
138
138
  }] } });
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvY29tcG9uZW50cy9iYXNpYy1kcm9wZG93bi9iYXNpYy1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2Jhc2ljLWRyb3Bkb3duL2Jhc2ljLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBa0MsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25HLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBQ1QsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDekYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFckYsT0FBTyxFQUFFLHVCQUF1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UTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ1ksa0JBQWtCO3NCQUFuQyxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLDRCQUE0QjtzQkFBckMsTUFBTTtnQkFDRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0csdUJBQXVCO3NCQUFoQyxNQUFNO2dCQUV5QixpQkFBaUI7c0JBQWhELFlBQVk7dUJBQUMsZ0JBQWdCO2dCQUNXLDBCQUEwQjtzQkFBbEUsWUFBWTt1QkFBQyx5QkFBeUI7Z0JBQ0Msc0JBQXNCO3NCQUE3RCxZQUFZO3VCQUFDLHdCQUF3QjtnQkFDUSxZQUFZO3NCQUF6RCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtDb25uZWN0ZWRPdmVybGF5LCBDZGtPdmVybGF5T3JpZ2luLCBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MsIE5nRm9yLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBVcHBlckNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBpc0VxdWFsLCBzb21lLCB0b0xvd2VyIH0gZnJvbSAnbG9kYXNoL2ZwJztcbmltcG9ydCB7IEluZmluaXRlU2Nyb2xsTW9kdWxlIH0gZnJvbSAnbmd4LWluZmluaXRlLXNjcm9sbCc7XG5pbXBvcnQgeyBDb3VudGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29yZS11aS9jb21wb25lbnRzL2NvdW50ZXIvY291bnRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvcmUtdWkvY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdGFibGVJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zZWxlY3RhYmxlLWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IFNpbmdsZVNlbGVjdFBhZGRpbmcgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2luZ2xlLXNlbGVjdC1wYWRkaW5nLmludGVyZmFjZSc7XG5pbXBvcnQgeyBLZXlib2FyZFNlbGVjdERpcmVjdGl2ZSB9IGZyb20gJy4uL2tleWJvYXJkLXNlbGVjdC5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1iYXNpYy1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnYmFzaWMtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnYmFzaWMtZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBLZXlib2FyZFNlbGVjdERpcmVjdGl2ZSwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQmFzaWNEcm9wZG93bkNvbXBvbmVudCkgfV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIENka092ZXJsYXlPcmlnaW4sXG4gICAgQ2RrQ29ubmVjdGVkT3ZlcmxheSxcbiAgICBOZ0NsYXNzLFxuICAgIEluZmluaXRlU2Nyb2xsTW9kdWxlLFxuICAgIFNlbGVjdGFibGVJdGVtRGlyZWN0aXZlLFxuICAgIENvdW50ZXJDb21wb25lbnQsXG4gICAgTmdGb3IsXG4gICAgU3Bpbm5lckNvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsXG4gICAgVXBwZXJDYXNlUGlwZSxcbiAgICBUcmFuc2xhdGVNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBCYXNpY0Ryb3Bkb3duQ29tcG9uZW50IGV4dGVuZHMgS2V5Ym9hcmRTZWxlY3REaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHVibGljIHN0YXRpYyBpc05ld0l0ZW0oaXRlbXM6IGFueVtdLCB0ZXJtOiBzdHJpbmcsIGtleT86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghdGVybSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBpc0VxdWFsSWdub3JpbmdDYXNlID0gKGl0ZW06IGFueSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBrZXkgPyBpdGVtW2tleV0gOiBpdGVtO1xuICAgICAgcmV0dXJuIGlzRXF1YWwodG9Mb3dlcih2YWx1ZSksIHRvTG93ZXIodGVybSkpO1xuICAgIH07XG4gICAgcmV0dXJuICFzb21lKGlzRXF1YWxJZ25vcmluZ0Nhc2UsIGl0ZW1zKTtcbiAgfVxuXG4gIHJlYWRvbmx5IE5BTUUgPSAnQmFzaWNEcm9wZG93bkNvbXBvbmVudCc7XG5cbiAgQElucHV0KCkgb3B0aW9uczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgaW5pdGlhbGx5U2VsZWN0ZWRJbmRleCA9IC0xO1xuICBASW5wdXQoKSBsYWJlbEtleT86IHN0cmluZztcbiAgQElucHV0KCkgaXRlbUtleT86IHN0cmluZztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbmV3T3B0aW9uTGFiZWwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBhZGRpbmc/OiBTaW5nbGVTZWxlY3RQYWRkaW5nID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBzaG93Q3JlYXRlTmV3T3B0aW9uID0gZmFsc2U7XG5cbiAgQElucHV0KCkgZGlzYWJsZWRPcHRpb25zOiB7IFtpdGVtS2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICBASW5wdXQoKSBvdmVycmlkZSBvdmVybGF5UG9zaXRpb25pbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgdHJ1bmNhdGVPcHRpb25zID0gZmFsc2U7XG4gIEBJbnB1dCgpIG5vUmVzdWx0c1RleHQ/OiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIG9uSXRlbVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSB0cmlnZ2VyUmVxdWVzdEZvck1vcmVFbnRyaWVzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgbmV3T3B0aW9uTGFiZWxTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgY3JlYXRlTmV3T3B0aW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQENvbnRlbnRDaGlsZCgnb3B0aW9uVGVtcGxhdGUnKSBvcHRpb25UZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBDb250ZW50Q2hpbGQoJ2NyZWF0ZU5ld09wdGlvblRlbXBsYXRlJykgY3JlYXRlTmV3T3B0aW9uVGVtcGxhdGVSZWYhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkKCdkZXNjcmlwdGlvblRlbXBsYXRlUmVmJykgZGVzY3JpcHRpb25UZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdE9yaWdpbicsIHsgc3RhdGljOiBmYWxzZSB9KSBzZWxlY3RPcmlnaW4hOiBDZGtPdmVybGF5T3JpZ2luO1xuICBpc1RvcERyb3Bkb3duID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHNlbGVjdE9wdGlvbihvcHRpb246IGFueSkge1xuICAgIGNvbnN0IGlzRGlzYWJsZWRPcHRpb24gPSBvcHRpb25cbiAgICAgID8gT2JqZWN0LmVudHJpZXModGhpcy5kaXNhYmxlZE9wdGlvbnMgfHwge30pLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgKCh0aGlzLml0ZW1LZXkgJiYgdGhpcy5kaXNhYmxlZE9wdGlvbnNbb3B0aW9uW3RoaXMuaXRlbUtleV1dKSB8fCB0aGlzLmRpc2FibGVkT3B0aW9uc1tvcHRpb25dKVxuICAgICAgOiBmYWxzZTtcblxuICAgIGlmICghb3B0aW9uIHx8ICFpc0Rpc2FibGVkT3B0aW9uKSB7XG4gICAgICB0aGlzLm9uSXRlbVNlbGVjdGVkLmVtaXQob3B0aW9uKTtcbiAgICB9XG4gIH1cblxuICBvblBvc2l0aW9uQ2hhbmdlKGV2ZW50OiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpIHtcbiAgICB0aGlzLmlzVG9wRHJvcGRvd24gPSBldmVudC5jb25uZWN0aW9uUGFpci5vcmlnaW5ZID09PSAndG9wJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNOZXdJdGVtKCkge1xuICAgIHJldHVybiBCYXNpY0Ryb3Bkb3duQ29tcG9uZW50LmlzTmV3SXRlbSh0aGlzLm9wdGlvbnMsIHRoaXMubmV3T3B0aW9uTGFiZWwsIHRoaXMubGFiZWxLZXkpO1xuICB9XG5cbiAgcHVibGljIHRyYWNrQnlQcm9wKHByb3A/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKGluZGV4OiBudW1iZXIsIHBpbGw6IGFueSkgPT4gKHByb3AgPyBwaWxsW3Byb3BdIDogaW5kZXgpO1xuICB9XG5cbiAgcHVibGljIG9uU2Nyb2xsKCkge1xuICAgIHRoaXMudHJpZ2dlclJlcXVlc3RGb3JNb3JlRW50cmllcy5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgb25OZXdJdGVtU2VsZWN0ZWQoKSB7XG4gICAgaWYgKCF0aGlzLmxvYWRpbmcpIHtcbiAgICAgIHRoaXMuc2VsZWN0T3B0aW9uKG51bGwpO1xuICAgICAgdGhpcy5uZXdPcHRpb25MYWJlbFNlbGVjdGVkLmVtaXQodGhpcy5uZXdPcHRpb25MYWJlbCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ3JlYXRlTmV3T3B0aW9uU2VsZWN0ZWQoKSB7XG4gICAgdGhpcy5jcmVhdGVOZXdPcHRpb25TZWxlY3RlZC5lbWl0KCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHJvcGRvd25cIiAqbmdJZj1cIiFvdmVybGF5UG9zaXRpb25pbmdcIiAvPlxuPG5nLWNvbnRhaW5lciAqbmdJZj1cIm92ZXJsYXlQb3NpdGlvbmluZ1wiPlxuICA8ZGl2IGNsYXNzPVwib3ZlcmxheU9yaWdpblwiIGNka092ZXJsYXlPcmlnaW4gI3NlbGVjdE9yaWdpbj1cImNka092ZXJsYXlPcmlnaW5cIj48L2Rpdj5cbiAgPG5nLXRlbXBsYXRlXG4gICAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3JpZ2luXT1cInNlbGVjdE9yaWdpblwiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cIiEhKGNka092ZXJsYXlPcGVuJCB8IGFzeW5jKVwiXG4gICAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlXaWR0aF09XCJzZWxlY3RPcmlnaW4uZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoXCJcbiAgICAocG9zaXRpb25DaGFuZ2UpPVwib25Qb3NpdGlvbkNoYW5nZSgkZXZlbnQpXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJvdmVybGF5RHJvcGRvd25cIiBbbmdDbGFzc109XCJ7IHRvcDogaXNUb3BEcm9wZG93biB9XCI+XG4gICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImRyb3Bkb3duXCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2Ryb3Bkb3duPlxuICA8dWxcbiAgICBjbGFzcz1cIm9wdGlvbnMge3sgcGFkZGluZyB9fVBhZGRpbmcgbHhUaGluU2Nyb2xsYmFyXCJcbiAgICAja2V5Ym9hcmRTZWxlY3RDb250YWluZXJcbiAgICBpbmZpbml0ZS1zY3JvbGxcbiAgICBbc2Nyb2xsV2luZG93XT1cImZhbHNlXCJcbiAgICBbZnJvbVJvb3RdPVwidHJ1ZVwiXG4gICAgW25nQ2xhc3NdPVwieyB0cnVuY2F0ZU9wdGlvbnM6IHRydW5jYXRlT3B0aW9ucyB9XCJcbiAgICAoc2Nyb2xsZWQpPVwib25TY3JvbGwoKVwiXG4gID5cbiAgICA8bGlcbiAgICAgICpuZ0lmPVwibmV3T3B0aW9uTGFiZWwgJiYgaXNOZXdJdGVtXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgbHhTZWxlY3RhYmxlSXRlbVxuICAgICAgW3Njcm9sbEluQ29udGFpbmVyXT1cImtleWJvYXJkU2VsZWN0Q29udGFpbmVyXCJcbiAgICAgICNpdGVtXG4gICAgICAoY2xpY2spPVwib25OZXdJdGVtU2VsZWN0ZWQoKVwiXG4gICAgICAoc2VsZWN0KT1cIm9uTmV3SXRlbVNlbGVjdGVkKClcIlxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImlzSXRlbVNlbGVjdGVkKGl0ZW0sIChzZWxlY3RlZEl0ZW0kIHwgYXN5bmMpPy5lbGVtZW50KVwiXG4gICAgICBjbGFzcz1cIm9wdGlvbiBrZXlib2FyZFNlbGVjdGFibGUgb25UaGVGbHlPcHRpb25cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJuZXdPcHRpb25MYWJlbFwiXG4gICAgPlxuICAgICAgPHNwYW4gY2xhc3M9XCJuZXdFbnRyeUNvbnRlbnRcIj5cbiAgICAgICAge3sgbmV3T3B0aW9uTGFiZWwgfX1cbiAgICAgIDwvc3Bhbj5cbiAgICAgIDxseC1jb3VudGVyIGNsYXNzPVwibHgtbWFyZ2luLWxlZnRcIiBzaXplPVwic21hbGxcIiBbY29udGVudF09XCInY29tbW9uLm5ldycgfCB0cmFuc2xhdGUgfCB1cHBlcmNhc2VcIiAvPlxuICAgIDwvbGk+XG4gICAgPGxpXG4gICAgICAqbmdJZj1cInNob3dDcmVhdGVOZXdPcHRpb25cIlxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICBseFNlbGVjdGFibGVJdGVtXG4gICAgICBbc2Nyb2xsSW5Db250YWluZXJdPVwia2V5Ym9hcmRTZWxlY3RDb250YWluZXJcIlxuICAgICAgI2l0ZW1cbiAgICAgIChjbGljayk9XCJvbkNyZWF0ZU5ld09wdGlvblNlbGVjdGVkKClcIlxuICAgICAgKHNlbGVjdCk9XCJvbkNyZWF0ZU5ld09wdGlvblNlbGVjdGVkKClcIlxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImlzSXRlbVNlbGVjdGVkKGl0ZW0sIChzZWxlY3RlZEl0ZW0kIHwgYXN5bmMpPy5lbGVtZW50KVwiXG4gICAgICBjbGFzcz1cIm9wdGlvbiBrZXlib2FyZFNlbGVjdGFibGUgbmV3RW50cnlPcHRpb25cIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwibmV3RW50cnlDb250ZW50XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjcmVhdGVOZXdPcHRpb25UZW1wbGF0ZVJlZjsgZWxzZSBkZWZhdWx0TmV3T3B0aW9uXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNyZWF0ZU5ld09wdGlvblRlbXBsYXRlUmVmXCIgLz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdE5ld09wdGlvbj5cbiAgICAgICAgICA8c3Bhbj5cbiAgICAgICAgICAgIHt7IE5BTUUgKyAnLm5ldycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICA8L3NwYW4+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L3NwYW4+XG4gICAgPC9saT5cbiAgICA8bGlcbiAgICAgICpuZ0lmPVwiZGVzY3JpcHRpb25UZW1wbGF0ZVJlZlwiXG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgIGx4U2VsZWN0YWJsZUl0ZW1cbiAgICAgIFtzY3JvbGxJbkNvbnRhaW5lcl09XCJrZXlib2FyZFNlbGVjdENvbnRhaW5lclwiXG4gICAgICAjaXRlbVxuICAgICAgY2xhc3M9XCJvcHRpb24gZGVzY3JpcHRpb24gZGlzYWJsZWRJdGVtXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cImRlc2NyaXB0aW9uQ29udGVudFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGVzY3JpcHRpb25UZW1wbGF0ZVJlZlwiIC8+XG4gICAgICA8L3NwYW4+XG4gICAgPC9saT5cbiAgICA8bGlcbiAgICAgICpuZ0lmPVwib3B0aW9ucz8ubGVuZ3RoID09PSAwICYmICFuZXdPcHRpb25MYWJlbCAmJiAhbG9hZGluZ1wiXG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgIGx4U2VsZWN0YWJsZUl0ZW1cbiAgICAgIFtzY3JvbGxJbkNvbnRhaW5lcl09XCJrZXlib2FyZFNlbGVjdENvbnRhaW5lclwiXG4gICAgICAjaXRlbVxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImlzSXRlbVNlbGVjdGVkKGl0ZW0sIChzZWxlY3RlZEl0ZW0kIHwgYXN5bmMpPy5lbGVtZW50KVwiXG4gICAgICBjbGFzcz1cIm9wdGlvbiBrZXlib2FyZFNlbGVjdGFibGUgbm9PcHRpb25zQXZhaWxhYmxlXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibm9SZXN1bHRzVGV4dCA/PyAoTkFNRSArICcubm9SZXN1bHRzJyB8IHRyYW5zbGF0ZSlcIlxuICAgID5cbiAgICAgIHt7IG5vUmVzdWx0c1RleHQgPz8gKE5BTUUgKyAnLm5vUmVzdWx0cycgfCB0cmFuc2xhdGUpIH19XG4gICAgPC9saT5cbiAgICA8bGlcbiAgICAgICpuZ0lmPVwicGxhY2Vob2xkZXJcIlxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICBjbGFzcz1cIm9wdGlvbiBrZXlib2FyZFNlbGVjdGFibGUgY2xlYXJTZWxlY3Rpb25cIlxuICAgICAgbHhTZWxlY3RhYmxlSXRlbVxuICAgICAgW3Njcm9sbEluQ29udGFpbmVyXT1cImtleWJvYXJkU2VsZWN0Q29udGFpbmVyXCJcbiAgICAgICNpdGVtXG4gICAgICAoY2xpY2spPVwic2VsZWN0T3B0aW9uKG51bGwpXCJcbiAgICAgIChzZWxlY3QpPVwic2VsZWN0T3B0aW9uKG51bGwpXCJcbiAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtLCAoc2VsZWN0ZWRJdGVtJCB8IGFzeW5jKT8uZWxlbWVudClcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwbGFjZWhvbGRlclwiXG4gICAgPlxuICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICA8L2xpPlxuICAgIDxsaVxuICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zOyBsZXQgaW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeVByb3AoaXRlbUtleSlcIlxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICBseFNlbGVjdGFibGVJdGVtXG4gICAgICBbc2Nyb2xsSW5Db250YWluZXJdPVwia2V5Ym9hcmRTZWxlY3RDb250YWluZXJcIlxuICAgICAgI2l0ZW1cbiAgICAgIGNsYXNzPVwib3B0aW9uIGtleWJvYXJkU2VsZWN0YWJsZVwiXG4gICAgICAoY2xpY2spPVwic2VsZWN0T3B0aW9uKG9wdGlvbilcIlxuICAgICAgKHNlbGVjdCk9XCJzZWxlY3RPcHRpb24ob3B0aW9uKVwiXG4gICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSwgKHNlbGVjdGVkSXRlbSQgfCBhc3luYyk/LmVsZW1lbnQpXCJcbiAgICAgIFtjbGFzcy5pbml0aWFsbHlTZWxlY3RlZF09XCJpbmRleCA9PT0gaW5pdGlhbGx5U2VsZWN0ZWRJbmRleFwiXG4gICAgICBbY2xhc3MuZGlzYWJsZWRJdGVtXT1cIihpdGVtS2V5ICYmICEhZGlzYWJsZWRPcHRpb25zW29wdGlvbltpdGVtS2V5XV0pIHx8IHRoaXMuZGlzYWJsZWRPcHRpb25zW29wdGlvbl1cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbEtleSA/IG9wdGlvbltsYWJlbEtleV0gOiBvcHRpb25cIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25UZW1wbGF0ZVJlZjsgZWxzZSBzaW1wbGVTdHJpbmdEaXNwbGF5XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvcHRpb25UZW1wbGF0ZVJlZjsgY29udGV4dDogeyAkaW1wbGljaXQ6IG9wdGlvbiwgaW5kZXg6IGluZGV4IH1cIiAvPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI3NpbXBsZVN0cmluZ0Rpc3BsYXk+XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIHt7IGxhYmVsS2V5ID8gb3B0aW9uW2xhYmVsS2V5XSA6IG9wdGlvbiB9fVxuICAgICAgICA8L3NwYW4+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbGk+XG4gICAgPGx4LXNwaW5uZXIgKm5nSWY9XCJsb2FkaW5nXCIgW2ZhZGVCYWNrZ3JvdW5kXT1cInRydWVcIiAvPlxuICA8L3VsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvY29tcG9uZW50cy9iYXNpYy1kcm9wZG93bi9iYXNpYy1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2Jhc2ljLWRyb3Bkb3duL2Jhc2ljLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBa0MsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25HLE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBQ1QsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDbkQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDekYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDekYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFFckYsT0FBTyxFQUFFLHVCQUF1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UTtzQkFBaEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ1ksa0JBQWtCO3NCQUFuQyxLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFFSSxjQUFjO3NCQUF2QixNQUFNO2dCQUNHLDRCQUE0QjtzQkFBckMsTUFBTTtnQkFDRyxzQkFBc0I7c0JBQS9CLE1BQU07Z0JBQ0csdUJBQXVCO3NCQUFoQyxNQUFNO2dCQUV5QixpQkFBaUI7c0JBQWhELFlBQVk7dUJBQUMsZ0JBQWdCO2dCQUNXLDBCQUEwQjtzQkFBbEUsWUFBWTt1QkFBQyx5QkFBeUI7Z0JBQ0Msc0JBQXNCO3NCQUE3RCxZQUFZO3VCQUFDLHdCQUF3QjtnQkFDUSxZQUFZO3NCQUF6RCxTQUFTO3VCQUFDLGNBQWMsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDZGtDb25uZWN0ZWRPdmVybGF5LCBDZGtPdmVybGF5T3JpZ2luLCBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nQ2xhc3MsIE5nRm9yLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBVcHBlckNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT3V0cHV0LFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBpc0VxdWFsLCBzb21lLCB0b0xvd2VyIH0gZnJvbSAnbG9kYXNoL2ZwJztcbmltcG9ydCB7IEluZmluaXRlU2Nyb2xsTW9kdWxlIH0gZnJvbSAnbmd4LWluZmluaXRlLXNjcm9sbCc7XG5pbXBvcnQgeyBDb3VudGVyQ29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vY29yZS11aS9jb21wb25lbnRzL2NvdW50ZXIvY291bnRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgU3Bpbm5lckNvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL2NvcmUtdWkvY29tcG9uZW50cy9zcGlubmVyL3NwaW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdGFibGVJdGVtRGlyZWN0aXZlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcy9zZWxlY3RhYmxlLWl0ZW0uZGlyZWN0aXZlJztcbmltcG9ydCB7IFNpbmdsZVNlbGVjdFBhZGRpbmcgfSBmcm9tICcuLi8uLi9tb2RlbHMvc2luZ2xlLXNlbGVjdC1wYWRkaW5nLmludGVyZmFjZSc7XG5pbXBvcnQgeyBLZXlib2FyZFNlbGVjdERpcmVjdGl2ZSB9IGZyb20gJy4uL2tleWJvYXJkLXNlbGVjdC5kaXJlY3RpdmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1iYXNpYy1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnYmFzaWMtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnYmFzaWMtZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBLZXlib2FyZFNlbGVjdERpcmVjdGl2ZSwgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQmFzaWNEcm9wZG93bkNvbXBvbmVudCkgfV0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgTmdJZixcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIENka092ZXJsYXlPcmlnaW4sXG4gICAgQ2RrQ29ubmVjdGVkT3ZlcmxheSxcbiAgICBOZ0NsYXNzLFxuICAgIEluZmluaXRlU2Nyb2xsTW9kdWxlLFxuICAgIFNlbGVjdGFibGVJdGVtRGlyZWN0aXZlLFxuICAgIENvdW50ZXJDb21wb25lbnQsXG4gICAgTmdGb3IsXG4gICAgU3Bpbm5lckNvbXBvbmVudCxcbiAgICBBc3luY1BpcGUsXG4gICAgVXBwZXJDYXNlUGlwZSxcbiAgICBUcmFuc2xhdGVNb2R1bGVcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBCYXNpY0Ryb3Bkb3duQ29tcG9uZW50IGV4dGVuZHMgS2V5Ym9hcmRTZWxlY3REaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgcHVibGljIHN0YXRpYyBpc05ld0l0ZW0oaXRlbXM6IGFueVtdLCB0ZXJtOiBzdHJpbmcsIGtleT86IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGlmICghdGVybSkge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICBjb25zdCBpc0VxdWFsSWdub3JpbmdDYXNlID0gKGl0ZW06IGFueSkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBrZXkgPyBpdGVtW2tleV0gOiBpdGVtO1xuICAgICAgcmV0dXJuIGlzRXF1YWwodG9Mb3dlcih2YWx1ZSksIHRvTG93ZXIodGVybSkpO1xuICAgIH07XG4gICAgcmV0dXJuICFzb21lKGlzRXF1YWxJZ25vcmluZ0Nhc2UsIGl0ZW1zKTtcbiAgfVxuXG4gIHJlYWRvbmx5IE5BTUUgPSAnQmFzaWNEcm9wZG93bkNvbXBvbmVudCc7XG5cbiAgQElucHV0KCkgb3B0aW9uczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgaW5pdGlhbGx5U2VsZWN0ZWRJbmRleCA9IC0xO1xuICBASW5wdXQoKSBsYWJlbEtleT86IHN0cmluZztcbiAgQElucHV0KCkgaXRlbUtleT86IHN0cmluZztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGxvYWRpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbmV3T3B0aW9uTGFiZWwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBhZGRpbmc/OiBTaW5nbGVTZWxlY3RQYWRkaW5nID0gJ2RlZmF1bHQnO1xuICBASW5wdXQoKSBzaG93Q3JlYXRlTmV3T3B0aW9uID0gZmFsc2U7XG5cbiAgQElucHV0KCkgZGlzYWJsZWRPcHRpb25zOiB7IFtpdGVtS2V5OiBzdHJpbmddOiBhbnkgfSA9IHt9O1xuICBASW5wdXQoKSBvdmVycmlkZSBvdmVybGF5UG9zaXRpb25pbmcgPSBmYWxzZTtcbiAgQElucHV0KCkgdHJ1bmNhdGVPcHRpb25zID0gZmFsc2U7XG4gIEBJbnB1dCgpIG5vUmVzdWx0c1RleHQ/OiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIG9uSXRlbVNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gIEBPdXRwdXQoKSB0cmlnZ2VyUmVxdWVzdEZvck1vcmVFbnRyaWVzID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgbmV3T3B0aW9uTGFiZWxTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgY3JlYXRlTmV3T3B0aW9uU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQENvbnRlbnRDaGlsZCgnb3B0aW9uVGVtcGxhdGUnKSBvcHRpb25UZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBDb250ZW50Q2hpbGQoJ2NyZWF0ZU5ld09wdGlvblRlbXBsYXRlJykgY3JlYXRlTmV3T3B0aW9uVGVtcGxhdGVSZWYhOiBUZW1wbGF0ZVJlZjxhbnk+O1xuICBAQ29udGVudENoaWxkKCdkZXNjcmlwdGlvblRlbXBsYXRlUmVmJykgZGVzY3JpcHRpb25UZW1wbGF0ZVJlZiE6IFRlbXBsYXRlUmVmPGFueT47XG4gIEBWaWV3Q2hpbGQoJ3NlbGVjdE9yaWdpbicsIHsgc3RhdGljOiBmYWxzZSB9KSBzZWxlY3RPcmlnaW4hOiBDZGtPdmVybGF5T3JpZ2luO1xuICBpc1RvcERyb3Bkb3duID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIHNlbGVjdE9wdGlvbihvcHRpb246IGFueSkge1xuICAgIGNvbnN0IGlzRGlzYWJsZWRPcHRpb24gPSBvcHRpb25cbiAgICAgID8gT2JqZWN0LmVudHJpZXModGhpcy5kaXNhYmxlZE9wdGlvbnMgfHwge30pLmxlbmd0aCA+IDAgJiZcbiAgICAgICAgKCh0aGlzLml0ZW1LZXkgJiYgdGhpcy5kaXNhYmxlZE9wdGlvbnNbb3B0aW9uW3RoaXMuaXRlbUtleV1dKSB8fCB0aGlzLmRpc2FibGVkT3B0aW9uc1tvcHRpb25dKVxuICAgICAgOiBmYWxzZTtcblxuICAgIGlmICghb3B0aW9uIHx8ICFpc0Rpc2FibGVkT3B0aW9uKSB7XG4gICAgICB0aGlzLm9uSXRlbVNlbGVjdGVkLmVtaXQob3B0aW9uKTtcbiAgICB9XG4gIH1cblxuICBvblBvc2l0aW9uQ2hhbmdlKGV2ZW50OiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpIHtcbiAgICB0aGlzLmlzVG9wRHJvcGRvd24gPSBldmVudC5jb25uZWN0aW9uUGFpci5vcmlnaW5ZID09PSAndG9wJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgaXNOZXdJdGVtKCkge1xuICAgIHJldHVybiBCYXNpY0Ryb3Bkb3duQ29tcG9uZW50LmlzTmV3SXRlbSh0aGlzLm9wdGlvbnMsIHRoaXMubmV3T3B0aW9uTGFiZWwsIHRoaXMubGFiZWxLZXkpO1xuICB9XG5cbiAgcHVibGljIHRyYWNrQnlQcm9wKHByb3A/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gKGluZGV4OiBudW1iZXIsIHBpbGw6IGFueSkgPT4gKHByb3AgPyBwaWxsW3Byb3BdIDogaW5kZXgpO1xuICB9XG5cbiAgcHVibGljIG9uU2Nyb2xsKCkge1xuICAgIHRoaXMudHJpZ2dlclJlcXVlc3RGb3JNb3JlRW50cmllcy5lbWl0KCk7XG4gIH1cblxuICBwdWJsaWMgb25OZXdJdGVtU2VsZWN0ZWQoKSB7XG4gICAgaWYgKCF0aGlzLmxvYWRpbmcpIHtcbiAgICAgIHRoaXMuc2VsZWN0T3B0aW9uKG51bGwpO1xuICAgICAgdGhpcy5uZXdPcHRpb25MYWJlbFNlbGVjdGVkLmVtaXQodGhpcy5uZXdPcHRpb25MYWJlbCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQ3JlYXRlTmV3T3B0aW9uU2VsZWN0ZWQoKSB7XG4gICAgdGhpcy5jcmVhdGVOZXdPcHRpb25TZWxlY3RlZC5lbWl0KCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZHJvcGRvd25cIiAqbmdJZj1cIiFvdmVybGF5UG9zaXRpb25pbmdcIj48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJvdmVybGF5UG9zaXRpb25pbmdcIj5cbiAgPGRpdiBjbGFzcz1cIm92ZXJsYXlPcmlnaW5cIiBjZGtPdmVybGF5T3JpZ2luICNzZWxlY3RPcmlnaW49XCJjZGtPdmVybGF5T3JpZ2luXCI+PC9kaXY+XG4gIDxuZy10ZW1wbGF0ZVxuICAgIGNka0Nvbm5lY3RlZE92ZXJsYXlcbiAgICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJzZWxlY3RPcmlnaW5cIlxuICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCIhIShjZGtPdmVybGF5T3BlbiQgfCBhc3luYylcIlxuICAgIFtjZGtDb25uZWN0ZWRPdmVybGF5V2lkdGhdPVwic2VsZWN0T3JpZ2luLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aFwiXG4gICAgKHBvc2l0aW9uQ2hhbmdlKT1cIm9uUG9zaXRpb25DaGFuZ2UoJGV2ZW50KVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwib3ZlcmxheURyb3Bkb3duXCIgW25nQ2xhc3NdPVwieyB0b3A6IGlzVG9wRHJvcGRvd24gfVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJkcm9wZG93blwiPjwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjZHJvcGRvd24+XG4gIDx1bFxuICAgIGNsYXNzPVwib3B0aW9ucyB7eyBwYWRkaW5nIH19UGFkZGluZyBseFRoaW5TY3JvbGxiYXJcIlxuICAgICNrZXlib2FyZFNlbGVjdENvbnRhaW5lclxuICAgIGluZmluaXRlLXNjcm9sbFxuICAgIFtzY3JvbGxXaW5kb3ddPVwiZmFsc2VcIlxuICAgIFtmcm9tUm9vdF09XCJ0cnVlXCJcbiAgICBbbmdDbGFzc109XCJ7IHRydW5jYXRlT3B0aW9uczogdHJ1bmNhdGVPcHRpb25zIH1cIlxuICAgIChzY3JvbGxlZCk9XCJvblNjcm9sbCgpXCJcbiAgPlxuICAgIDxsaVxuICAgICAgKm5nSWY9XCJuZXdPcHRpb25MYWJlbCAmJiBpc05ld0l0ZW1cIlxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICBseFNlbGVjdGFibGVJdGVtXG4gICAgICBbc2Nyb2xsSW5Db250YWluZXJdPVwia2V5Ym9hcmRTZWxlY3RDb250YWluZXJcIlxuICAgICAgI2l0ZW1cbiAgICAgIChjbGljayk9XCJvbk5ld0l0ZW1TZWxlY3RlZCgpXCJcbiAgICAgIChzZWxlY3QpPVwib25OZXdJdGVtU2VsZWN0ZWQoKVwiXG4gICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSwgKHNlbGVjdGVkSXRlbSQgfCBhc3luYyk/LmVsZW1lbnQpXCJcbiAgICAgIGNsYXNzPVwib3B0aW9uIGtleWJvYXJkU2VsZWN0YWJsZSBvblRoZUZseU9wdGlvblwiXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIm5ld09wdGlvbkxhYmVsXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cIm5ld0VudHJ5Q29udGVudFwiPlxuICAgICAgICB7eyBuZXdPcHRpb25MYWJlbCB9fVxuICAgICAgPC9zcGFuPlxuICAgICAgPGx4LWNvdW50ZXIgY2xhc3M9XCJseC1tYXJnaW4tbGVmdFwiIHNpemU9XCJzbWFsbFwiIFtjb250ZW50XT1cIidjb21tb24ubmV3JyB8IHRyYW5zbGF0ZSB8IHVwcGVyY2FzZVwiPjwvbHgtY291bnRlcj5cbiAgICA8L2xpPlxuICAgIDxsaVxuICAgICAgKm5nSWY9XCJzaG93Q3JlYXRlTmV3T3B0aW9uXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgbHhTZWxlY3RhYmxlSXRlbVxuICAgICAgW3Njcm9sbEluQ29udGFpbmVyXT1cImtleWJvYXJkU2VsZWN0Q29udGFpbmVyXCJcbiAgICAgICNpdGVtXG4gICAgICAoY2xpY2spPVwib25DcmVhdGVOZXdPcHRpb25TZWxlY3RlZCgpXCJcbiAgICAgIChzZWxlY3QpPVwib25DcmVhdGVOZXdPcHRpb25TZWxlY3RlZCgpXCJcbiAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtLCAoc2VsZWN0ZWRJdGVtJCB8IGFzeW5jKT8uZWxlbWVudClcIlxuICAgICAgY2xhc3M9XCJvcHRpb24ga2V5Ym9hcmRTZWxlY3RhYmxlIG5ld0VudHJ5T3B0aW9uXCJcbiAgICA+XG4gICAgICA8c3BhbiBjbGFzcz1cIm5ld0VudHJ5Q29udGVudFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY3JlYXRlTmV3T3B0aW9uVGVtcGxhdGVSZWY7IGVsc2UgZGVmYXVsdE5ld09wdGlvblwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjcmVhdGVOZXdPcHRpb25UZW1wbGF0ZVJlZlwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TmV3T3B0aW9uPlxuICAgICAgICAgIDxzcGFuPlxuICAgICAgICAgICAge3sgTkFNRSArICcubmV3JyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvc3Bhbj5cbiAgICA8L2xpPlxuICAgIDxsaVxuICAgICAgKm5nSWY9XCJkZXNjcmlwdGlvblRlbXBsYXRlUmVmXCJcbiAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgbHhTZWxlY3RhYmxlSXRlbVxuICAgICAgW3Njcm9sbEluQ29udGFpbmVyXT1cImtleWJvYXJkU2VsZWN0Q29udGFpbmVyXCJcbiAgICAgICNpdGVtXG4gICAgICBjbGFzcz1cIm9wdGlvbiBkZXNjcmlwdGlvbiBkaXNhYmxlZEl0ZW1cIlxuICAgID5cbiAgICAgIDxzcGFuIGNsYXNzPVwiZGVzY3JpcHRpb25Db250ZW50XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZXNjcmlwdGlvblRlbXBsYXRlUmVmXCI+PC9uZy1jb250YWluZXI+XG4gICAgICA8L3NwYW4+XG4gICAgPC9saT5cbiAgICA8bGlcbiAgICAgICpuZ0lmPVwib3B0aW9ucz8ubGVuZ3RoID09PSAwICYmICFuZXdPcHRpb25MYWJlbCAmJiAhbG9hZGluZ1wiXG4gICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgIGx4U2VsZWN0YWJsZUl0ZW1cbiAgICAgIFtzY3JvbGxJbkNvbnRhaW5lcl09XCJrZXlib2FyZFNlbGVjdENvbnRhaW5lclwiXG4gICAgICAjaXRlbVxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImlzSXRlbVNlbGVjdGVkKGl0ZW0sIChzZWxlY3RlZEl0ZW0kIHwgYXN5bmMpPy5lbGVtZW50KVwiXG4gICAgICBjbGFzcz1cIm9wdGlvbiBrZXlib2FyZFNlbGVjdGFibGUgbm9PcHRpb25zQXZhaWxhYmxlXCJcbiAgICAgIFthdHRyLmFyaWEtbGFiZWxdPVwibm9SZXN1bHRzVGV4dCA/PyAoTkFNRSArICcubm9SZXN1bHRzJyB8IHRyYW5zbGF0ZSlcIlxuICAgID5cbiAgICAgIHt7IG5vUmVzdWx0c1RleHQgPz8gKE5BTUUgKyAnLm5vUmVzdWx0cycgfCB0cmFuc2xhdGUpIH19XG4gICAgPC9saT5cbiAgICA8bGlcbiAgICAgICpuZ0lmPVwicGxhY2Vob2xkZXJcIlxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICBjbGFzcz1cIm9wdGlvbiBrZXlib2FyZFNlbGVjdGFibGUgY2xlYXJTZWxlY3Rpb25cIlxuICAgICAgbHhTZWxlY3RhYmxlSXRlbVxuICAgICAgW3Njcm9sbEluQ29udGFpbmVyXT1cImtleWJvYXJkU2VsZWN0Q29udGFpbmVyXCJcbiAgICAgICNpdGVtXG4gICAgICAoY2xpY2spPVwic2VsZWN0T3B0aW9uKG51bGwpXCJcbiAgICAgIChzZWxlY3QpPVwic2VsZWN0T3B0aW9uKG51bGwpXCJcbiAgICAgIFtjbGFzcy5zZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtLCAoc2VsZWN0ZWRJdGVtJCB8IGFzeW5jKT8uZWxlbWVudClcIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJwbGFjZWhvbGRlclwiXG4gICAgPlxuICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICA8L2xpPlxuICAgIDxsaVxuICAgICAgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zOyBsZXQgaW5kZXggPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeVByb3AoaXRlbUtleSlcIlxuICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICBseFNlbGVjdGFibGVJdGVtXG4gICAgICBbc2Nyb2xsSW5Db250YWluZXJdPVwia2V5Ym9hcmRTZWxlY3RDb250YWluZXJcIlxuICAgICAgI2l0ZW1cbiAgICAgIGNsYXNzPVwib3B0aW9uIGtleWJvYXJkU2VsZWN0YWJsZVwiXG4gICAgICAoY2xpY2spPVwic2VsZWN0T3B0aW9uKG9wdGlvbilcIlxuICAgICAgKHNlbGVjdCk9XCJzZWxlY3RPcHRpb24ob3B0aW9uKVwiXG4gICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSwgKHNlbGVjdGVkSXRlbSQgfCBhc3luYyk/LmVsZW1lbnQpXCJcbiAgICAgIFtjbGFzcy5pbml0aWFsbHlTZWxlY3RlZF09XCJpbmRleCA9PT0gaW5pdGlhbGx5U2VsZWN0ZWRJbmRleFwiXG4gICAgICBbY2xhc3MuZGlzYWJsZWRJdGVtXT1cIihpdGVtS2V5ICYmICEhZGlzYWJsZWRPcHRpb25zW29wdGlvbltpdGVtS2V5XV0pIHx8IHRoaXMuZGlzYWJsZWRPcHRpb25zW29wdGlvbl1cIlxuICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCJsYWJlbEtleSA/IG9wdGlvbltsYWJlbEtleV0gOiBvcHRpb25cIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvcHRpb25UZW1wbGF0ZVJlZjsgZWxzZSBzaW1wbGVTdHJpbmdEaXNwbGF5XCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJvcHRpb25UZW1wbGF0ZVJlZjsgY29udGV4dDogeyAkaW1wbGljaXQ6IG9wdGlvbiwgaW5kZXg6IGluZGV4IH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNzaW1wbGVTdHJpbmdEaXNwbGF5PlxuICAgICAgICA8c3Bhbj5cbiAgICAgICAgICB7eyBsYWJlbEtleSA/IG9wdGlvbltsYWJlbEtleV0gOiBvcHRpb24gfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2xpPlxuICAgIDxseC1zcGlubmVyICpuZ0lmPVwibG9hZGluZ1wiIFtmYWRlQmFja2dyb3VuZF09XCJ0cnVlXCI+PC9seC1zcGlubmVyPlxuICA8L3VsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -11,11 +11,11 @@ export class BasicDropdownItemComponent {
11
11
  return !!this.description;
12
12
  }
13
13
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: BasicDropdownItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: BasicDropdownItemComponent, isStandalone: true, selector: "lx-basic-dropdown-item", inputs: { label: "label", description: "description", highlightTerm: "highlightTerm", labelFontWeight: "labelFontWeight", descriptionFontStyle: "descriptionFontStyle", descriptionStyleOptions: "descriptionStyleOptions" }, host: { properties: { "class.hasDescription": "this.hasDescription" } }, queries: [{ propertyName: "optionLabelSuffix", first: true, predicate: ["optionLabelSuffix"], descendants: true }], ngImport: i0, template: "@if (optionLabelSuffix) {\n <div [class.boldLabel]=\"labelFontWeight === 'bold'\" class=\"optionLabel\">\n <div [innerHtml]=\"label | lxHighlightTerm: highlightTerm\"></div>\n <ng-content [select]=\"optionLabelSuffix\" />\n </div>\n} @else {\n <div [class.boldLabel]=\"labelFontWeight === 'bold'\" [innerHtml]=\"label | lxHighlightTerm: highlightTerm\"></div>\n}\n<div\n class=\"optionDescription\"\n [style.font-style]=\"descriptionFontStyle\"\n [ngClass]=\"{ maxTextLines: descriptionStyleOptions?.maxLines }\"\n [style.-webkit-line-clamp]=\"descriptionStyleOptions?.maxLines || 'inherit'\"\n [innerHtml]=\"description | lxHighlightTerm: (descriptionStyleOptions?.shouldHighlightTerm ? highlightTerm : undefined)\"\n></div>\n", styles: [":host{display:block;padding:2px 0}:host.hasDescription{padding:4px 0}.boldLabel{font-weight:700}.optionDescription{padding-top:2px;color:#61779d;font-size:12px}.optionDescription.maxTextLines{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:inherit;-webkit-box-orient:vertical}.optionLabel{display:flex;align-items:center;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: HighlightTermPipe, name: "lxHighlightTerm" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: BasicDropdownItemComponent, isStandalone: true, selector: "lx-basic-dropdown-item", inputs: { label: "label", description: "description", highlightTerm: "highlightTerm", labelFontWeight: "labelFontWeight", descriptionFontStyle: "descriptionFontStyle", descriptionStyleOptions: "descriptionStyleOptions" }, host: { properties: { "class.hasDescription": "this.hasDescription" } }, queries: [{ propertyName: "optionLabelSuffix", first: true, predicate: ["optionLabelSuffix"], descendants: true }], ngImport: i0, template: "@if (optionLabelSuffix) {\n <div [class.boldLabel]=\"labelFontWeight === 'bold'\" class=\"optionLabel\">\n <div [innerHtml]=\"label | lxHighlightTerm: highlightTerm\"></div>\n <ng-content [select]=\"optionLabelSuffix\"></ng-content>\n </div>\n} @else {\n <div [class.boldLabel]=\"labelFontWeight === 'bold'\" [innerHtml]=\"label | lxHighlightTerm: highlightTerm\"></div>\n}\n<div\n class=\"optionDescription\"\n [style.font-style]=\"descriptionFontStyle\"\n [ngClass]=\"{ maxTextLines: descriptionStyleOptions?.maxLines }\"\n [style.-webkit-line-clamp]=\"descriptionStyleOptions?.maxLines || 'inherit'\"\n [innerHtml]=\"description | lxHighlightTerm: (descriptionStyleOptions?.shouldHighlightTerm ? highlightTerm : undefined)\"\n></div>\n", styles: [":host{display:block;padding:2px 0}:host.hasDescription{padding:4px 0}.boldLabel{font-weight:700}.optionDescription{padding-top:2px;color:#61779d;font-size:12px}.optionDescription.maxTextLines{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:inherit;-webkit-box-orient:vertical}.optionLabel{display:flex;align-items:center;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: HighlightTermPipe, name: "lxHighlightTerm" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
15
15
  }
16
16
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: BasicDropdownItemComponent, decorators: [{
17
17
  type: Component,
18
- args: [{ selector: 'lx-basic-dropdown-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, NgIf, HighlightTermPipe], template: "@if (optionLabelSuffix) {\n <div [class.boldLabel]=\"labelFontWeight === 'bold'\" class=\"optionLabel\">\n <div [innerHtml]=\"label | lxHighlightTerm: highlightTerm\"></div>\n <ng-content [select]=\"optionLabelSuffix\" />\n </div>\n} @else {\n <div [class.boldLabel]=\"labelFontWeight === 'bold'\" [innerHtml]=\"label | lxHighlightTerm: highlightTerm\"></div>\n}\n<div\n class=\"optionDescription\"\n [style.font-style]=\"descriptionFontStyle\"\n [ngClass]=\"{ maxTextLines: descriptionStyleOptions?.maxLines }\"\n [style.-webkit-line-clamp]=\"descriptionStyleOptions?.maxLines || 'inherit'\"\n [innerHtml]=\"description | lxHighlightTerm: (descriptionStyleOptions?.shouldHighlightTerm ? highlightTerm : undefined)\"\n></div>\n", styles: [":host{display:block;padding:2px 0}:host.hasDescription{padding:4px 0}.boldLabel{font-weight:700}.optionDescription{padding-top:2px;color:#61779d;font-size:12px}.optionDescription.maxTextLines{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:inherit;-webkit-box-orient:vertical}.optionLabel{display:flex;align-items:center;justify-content:space-between}\n"] }]
18
+ args: [{ selector: 'lx-basic-dropdown-item', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgClass, NgIf, HighlightTermPipe], template: "@if (optionLabelSuffix) {\n <div [class.boldLabel]=\"labelFontWeight === 'bold'\" class=\"optionLabel\">\n <div [innerHtml]=\"label | lxHighlightTerm: highlightTerm\"></div>\n <ng-content [select]=\"optionLabelSuffix\"></ng-content>\n </div>\n} @else {\n <div [class.boldLabel]=\"labelFontWeight === 'bold'\" [innerHtml]=\"label | lxHighlightTerm: highlightTerm\"></div>\n}\n<div\n class=\"optionDescription\"\n [style.font-style]=\"descriptionFontStyle\"\n [ngClass]=\"{ maxTextLines: descriptionStyleOptions?.maxLines }\"\n [style.-webkit-line-clamp]=\"descriptionStyleOptions?.maxLines || 'inherit'\"\n [innerHtml]=\"description | lxHighlightTerm: (descriptionStyleOptions?.shouldHighlightTerm ? highlightTerm : undefined)\"\n></div>\n", styles: [":host{display:block;padding:2px 0}:host.hasDescription{padding:4px 0}.boldLabel{font-weight:700}.optionDescription{padding-top:2px;color:#61779d;font-size:12px}.optionDescription.maxTextLines{overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:inherit;-webkit-box-orient:vertical}.optionLabel{display:flex;align-items:center;justify-content:space-between}\n"] }]
19
19
  }], propDecorators: { label: [{
20
20
  type: Input
21
21
  }], description: [{
@@ -35,4 +35,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
35
35
  type: HostBinding,
36
36
  args: ['class.hasDescription']
37
37
  }] } });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtZHJvcGRvd24taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2Jhc2ljLWRyb3Bkb3duLWl0ZW0vYmFzaWMtZHJvcGRvd24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2Jhc2ljLWRyb3Bkb3duLWl0ZW0vYmFzaWMtZHJvcGRvd24taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7O0FBVS9FLE1BQU0sT0FBTywwQkFBMEI7SUFSdkM7UUFZVyxvQkFBZSxHQUFzQixNQUFNLENBQUM7UUFDNUMseUJBQW9CLEdBQXdCLFFBQVEsQ0FBQztLQVEvRDtJQUpDLElBQ0ksY0FBYztRQUNoQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7OEdBWlUsMEJBQTBCO2tHQUExQiwwQkFBMEIsNmVDWnZDLHV1QkFlQSx5YkRMWSxPQUFPLCtFQUFRLGlCQUFpQjs7MkZBRS9CLDBCQUEwQjtrQkFSdEMsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsQ0FBQzs4QkFHbEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQzZCLGlCQUFpQjtzQkFBbkQsWUFBWTt1QkFBQyxtQkFBbUI7Z0JBRzdCLGNBQWM7c0JBRGpCLFdBQVc7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhpZ2hsaWdodFRlcm1QaXBlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS11aS9waXBlcy9oaWdobGlnaHQtdGVybS5waXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtYmFzaWMtZHJvcGRvd24taXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnYmFzaWMtZHJvcGRvd24taXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydiYXNpYy1kcm9wZG93bi1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdDbGFzcywgTmdJZiwgSGlnaGxpZ2h0VGVybVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEJhc2ljRHJvcGRvd25JdGVtQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbGFiZWwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBASW5wdXQoKSBoaWdobGlnaHRUZXJtPzogc3RyaW5nO1xuICBASW5wdXQoKSBsYWJlbEZvbnRXZWlnaHQ6ICdib2xkJyB8ICdub3JtYWwnID0gJ2JvbGQnO1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbkZvbnRTdHlsZTogJ2l0YWxpYycgfCAnbm9ybWFsJyA9ICdub3JtYWwnO1xuICBASW5wdXQoKSBkZXNjcmlwdGlvblN0eWxlT3B0aW9ucz86IHsgbWF4TGluZXM/OiBudW1iZXI7IHNob3VsZEhpZ2hsaWdodFRlcm0/OiBib29sZWFuIH07XG4gIEBDb250ZW50Q2hpbGQoJ29wdGlvbkxhYmVsU3VmZml4Jykgb3B0aW9uTGFiZWxTdWZmaXghOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaGFzRGVzY3JpcHRpb24nKVxuICBnZXQgaGFzRGVzY3JpcHRpb24oKSB7XG4gICAgcmV0dXJuICEhdGhpcy5kZXNjcmlwdGlvbjtcbiAgfVxufVxuIiwiQGlmIChvcHRpb25MYWJlbFN1ZmZpeCkge1xuICA8ZGl2IFtjbGFzcy5ib2xkTGFiZWxdPVwibGFiZWxGb250V2VpZ2h0ID09PSAnYm9sZCdcIiBjbGFzcz1cIm9wdGlvbkxhYmVsXCI+XG4gICAgPGRpdiBbaW5uZXJIdG1sXT1cImxhYmVsIHwgbHhIaWdobGlnaHRUZXJtOiBoaWdobGlnaHRUZXJtXCI+PC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgW3NlbGVjdF09XCJvcHRpb25MYWJlbFN1ZmZpeFwiIC8+XG4gIDwvZGl2PlxufSBAZWxzZSB7XG4gIDxkaXYgW2NsYXNzLmJvbGRMYWJlbF09XCJsYWJlbEZvbnRXZWlnaHQgPT09ICdib2xkJ1wiIFtpbm5lckh0bWxdPVwibGFiZWwgfCBseEhpZ2hsaWdodFRlcm06IGhpZ2hsaWdodFRlcm1cIj48L2Rpdj5cbn1cbjxkaXZcbiAgY2xhc3M9XCJvcHRpb25EZXNjcmlwdGlvblwiXG4gIFtzdHlsZS5mb250LXN0eWxlXT1cImRlc2NyaXB0aW9uRm9udFN0eWxlXCJcbiAgW25nQ2xhc3NdPVwieyBtYXhUZXh0TGluZXM6IGRlc2NyaXB0aW9uU3R5bGVPcHRpb25zPy5tYXhMaW5lcyB9XCJcbiAgW3N0eWxlLi13ZWJraXQtbGluZS1jbGFtcF09XCJkZXNjcmlwdGlvblN0eWxlT3B0aW9ucz8ubWF4TGluZXMgfHwgJ2luaGVyaXQnXCJcbiAgW2lubmVySHRtbF09XCJkZXNjcmlwdGlvbiB8IGx4SGlnaGxpZ2h0VGVybTogKGRlc2NyaXB0aW9uU3R5bGVPcHRpb25zPy5zaG91bGRIaWdobGlnaHRUZXJtID8gaGlnaGxpZ2h0VGVybSA6IHVuZGVmaW5lZClcIlxuPjwvZGl2PlxuIl19
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzaWMtZHJvcGRvd24taXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2Jhc2ljLWRyb3Bkb3duLWl0ZW0vYmFzaWMtZHJvcGRvd24taXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2Jhc2ljLWRyb3Bkb3duLWl0ZW0vYmFzaWMtZHJvcGRvd24taXRlbS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ2hELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDbEgsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7O0FBVS9FLE1BQU0sT0FBTywwQkFBMEI7SUFSdkM7UUFZVyxvQkFBZSxHQUFzQixNQUFNLENBQUM7UUFDNUMseUJBQW9CLEdBQXdCLFFBQVEsQ0FBQztLQVEvRDtJQUpDLElBQ0ksY0FBYztRQUNoQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzVCLENBQUM7OEdBWlUsMEJBQTBCO2tHQUExQiwwQkFBMEIsNmVDWnZDLGt2QkFlQSx5YkRMWSxPQUFPLCtFQUFRLGlCQUFpQjs7MkZBRS9CLDBCQUEwQjtrQkFSdEMsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxpQkFBaUIsQ0FBQzs4QkFHbEMsS0FBSztzQkFBYixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLG9CQUFvQjtzQkFBNUIsS0FBSztnQkFDRyx1QkFBdUI7c0JBQS9CLEtBQUs7Z0JBQzZCLGlCQUFpQjtzQkFBbkQsWUFBWTt1QkFBQyxtQkFBbUI7Z0JBRzdCLGNBQWM7c0JBRGpCLFdBQVc7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdDbGFzcywgTmdJZiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGQsIEhvc3RCaW5kaW5nLCBJbnB1dCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEhpZ2hsaWdodFRlcm1QaXBlIH0gZnJvbSAnLi4vLi4vLi4vY29yZS11aS9waXBlcy9oaWdobGlnaHQtdGVybS5waXBlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbHgtYmFzaWMtZHJvcGRvd24taXRlbScsXG4gIHRlbXBsYXRlVXJsOiAnYmFzaWMtZHJvcGRvd24taXRlbS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydiYXNpYy1kcm9wZG93bi1pdGVtLmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbTmdDbGFzcywgTmdJZiwgSGlnaGxpZ2h0VGVybVBpcGVdXG59KVxuZXhwb3J0IGNsYXNzIEJhc2ljRHJvcGRvd25JdGVtQ29tcG9uZW50IHtcbiAgQElucHV0KCkgbGFiZWwhOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBASW5wdXQoKSBoaWdobGlnaHRUZXJtPzogc3RyaW5nO1xuICBASW5wdXQoKSBsYWJlbEZvbnRXZWlnaHQ6ICdib2xkJyB8ICdub3JtYWwnID0gJ2JvbGQnO1xuICBASW5wdXQoKSBkZXNjcmlwdGlvbkZvbnRTdHlsZTogJ2l0YWxpYycgfCAnbm9ybWFsJyA9ICdub3JtYWwnO1xuICBASW5wdXQoKSBkZXNjcmlwdGlvblN0eWxlT3B0aW9ucz86IHsgbWF4TGluZXM/OiBudW1iZXI7IHNob3VsZEhpZ2hsaWdodFRlcm0/OiBib29sZWFuIH07XG4gIEBDb250ZW50Q2hpbGQoJ29wdGlvbkxhYmVsU3VmZml4Jykgb3B0aW9uTGFiZWxTdWZmaXghOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuaGFzRGVzY3JpcHRpb24nKVxuICBnZXQgaGFzRGVzY3JpcHRpb24oKSB7XG4gICAgcmV0dXJuICEhdGhpcy5kZXNjcmlwdGlvbjtcbiAgfVxufVxuIiwiQGlmIChvcHRpb25MYWJlbFN1ZmZpeCkge1xuICA8ZGl2IFtjbGFzcy5ib2xkTGFiZWxdPVwibGFiZWxGb250V2VpZ2h0ID09PSAnYm9sZCdcIiBjbGFzcz1cIm9wdGlvbkxhYmVsXCI+XG4gICAgPGRpdiBbaW5uZXJIdG1sXT1cImxhYmVsIHwgbHhIaWdobGlnaHRUZXJtOiBoaWdobGlnaHRUZXJtXCI+PC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgW3NlbGVjdF09XCJvcHRpb25MYWJlbFN1ZmZpeFwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG59IEBlbHNlIHtcbiAgPGRpdiBbY2xhc3MuYm9sZExhYmVsXT1cImxhYmVsRm9udFdlaWdodCA9PT0gJ2JvbGQnXCIgW2lubmVySHRtbF09XCJsYWJlbCB8IGx4SGlnaGxpZ2h0VGVybTogaGlnaGxpZ2h0VGVybVwiPjwvZGl2PlxufVxuPGRpdlxuICBjbGFzcz1cIm9wdGlvbkRlc2NyaXB0aW9uXCJcbiAgW3N0eWxlLmZvbnQtc3R5bGVdPVwiZGVzY3JpcHRpb25Gb250U3R5bGVcIlxuICBbbmdDbGFzc109XCJ7IG1heFRleHRMaW5lczogZGVzY3JpcHRpb25TdHlsZU9wdGlvbnM/Lm1heExpbmVzIH1cIlxuICBbc3R5bGUuLXdlYmtpdC1saW5lLWNsYW1wXT1cImRlc2NyaXB0aW9uU3R5bGVPcHRpb25zPy5tYXhMaW5lcyB8fCAnaW5oZXJpdCdcIlxuICBbaW5uZXJIdG1sXT1cImRlc2NyaXB0aW9uIHwgbHhIaWdobGlnaHRUZXJtOiAoZGVzY3JpcHRpb25TdHlsZU9wdGlvbnM/LnNob3VsZEhpZ2hsaWdodFRlcm0gPyBoaWdobGlnaHRUZXJtIDogdW5kZWZpbmVkKVwiXG4+PC9kaXY+XG4iXX0=
@@ -183,11 +183,11 @@ export class CdkOptionsDropdownComponent {
183
183
  }
184
184
  }
185
185
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CdkOptionsDropdownComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
186
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CdkOptionsDropdownComponent, isStandalone: true, selector: "lx-cdk-options-dropdown", inputs: { align: "align", closeOnScroll: "closeOnScroll", disabled: "disabled", maxHeight: "maxHeight" }, queries: [{ propertyName: "trigger", first: true, predicate: KeyboardActionSourceDirective, descendants: true }, { propertyName: "_options", predicate: OptionComponent, descendants: true }, { propertyName: "tooltips", predicate: TooltipDirective, descendants: true }], viewQueries: [{ propertyName: "dropdownContainer", first: true, predicate: ["dropdown"], descendants: true }, { propertyName: "overlay", first: true, predicate: CdkConnectedOverlay, descendants: true }], ngImport: i0, template: "<div (click)=\"open = !open\" class=\"triggerContainer\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\n <ng-content select=\"[lxKeyboardActionSource]\" />\n</div>\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open\"\n (overlayOutsideClick)=\"closeDropdown()\"\n>\n <ul\n #dropdown\n [class.showScrollbar]=\"maxHeight !== 'none'\"\n [style.max-height]=\"maxHeight\"\n [style.visibility]=\"isPositionComputed ? null : 'hidden'\"\n >\n <ng-content />\n </ul>\n</ng-template>\n", styles: [":host{display:inline-block;position:relative}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: 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
186
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CdkOptionsDropdownComponent, isStandalone: true, selector: "lx-cdk-options-dropdown", inputs: { align: "align", closeOnScroll: "closeOnScroll", disabled: "disabled", maxHeight: "maxHeight" }, queries: [{ propertyName: "trigger", first: true, predicate: KeyboardActionSourceDirective, descendants: true }, { propertyName: "_options", predicate: OptionComponent, descendants: true }, { propertyName: "tooltips", predicate: TooltipDirective, descendants: true }], viewQueries: [{ propertyName: "dropdownContainer", first: true, predicate: ["dropdown"], descendants: true }, { propertyName: "overlay", first: true, predicate: CdkConnectedOverlay, descendants: true }], ngImport: i0, template: "<div (click)=\"open = !open\" class=\"triggerContainer\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\n <ng-content select=\"[lxKeyboardActionSource]\"></ng-content>\n</div>\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open\"\n (overlayOutsideClick)=\"closeDropdown()\"\n>\n <ul\n #dropdown\n [class.showScrollbar]=\"maxHeight !== 'none'\"\n [style.max-height]=\"maxHeight\"\n [style.visibility]=\"isPositionComputed ? null : 'hidden'\"\n >\n <ng-content></ng-content>\n </ul>\n</ng-template>\n", styles: [":host{display:inline-block;position:relative}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: 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
187
187
  }
188
188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CdkOptionsDropdownComponent, decorators: [{
189
189
  type: Component,
190
- args: [{ selector: 'lx-cdk-options-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CdkOverlayOrigin, CdkConnectedOverlay], template: "<div (click)=\"open = !open\" class=\"triggerContainer\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\n <ng-content select=\"[lxKeyboardActionSource]\" />\n</div>\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open\"\n (overlayOutsideClick)=\"closeDropdown()\"\n>\n <ul\n #dropdown\n [class.showScrollbar]=\"maxHeight !== 'none'\"\n [style.max-height]=\"maxHeight\"\n [style.visibility]=\"isPositionComputed ? null : 'hidden'\"\n >\n <ng-content />\n </ul>\n</ng-template>\n", styles: [":host{display:inline-block;position:relative}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"] }]
190
+ args: [{ selector: 'lx-cdk-options-dropdown', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [CdkOverlayOrigin, CdkConnectedOverlay], template: "<div (click)=\"open = !open\" class=\"triggerContainer\" cdkOverlayOrigin #trigger=\"cdkOverlayOrigin\">\n <ng-content select=\"[lxKeyboardActionSource]\"></ng-content>\n</div>\n<ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"open\"\n (overlayOutsideClick)=\"closeDropdown()\"\n>\n <ul\n #dropdown\n [class.showScrollbar]=\"maxHeight !== 'none'\"\n [style.max-height]=\"maxHeight\"\n [style.visibility]=\"isPositionComputed ? null : 'hidden'\"\n >\n <ng-content></ng-content>\n </ul>\n</ng-template>\n", styles: [":host{display:inline-block;position:relative}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"] }]
191
191
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { dropdownContainer: [{
192
192
  type: ViewChild,
193
193
  args: ['dropdown']
@@ -212,4 +212,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
212
212
  type: ContentChildren,
213
213
  args: [TooltipDirective, { descendants: true }]
214
214
  }] } });
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW9wdGlvbnMtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvY29tcG9uZW50cy9jZGstb3B0aW9ucy1kcm9wZG93bi9jZGstb3B0aW9ucy1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2Nkay1vcHRpb25zLWRyb3Bkb3duL2Nkay1vcHRpb25zLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBcUIsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRyxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUVmLEtBQUssRUFHTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6SSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRTdE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O1lBQ3RDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQzs4R0F0TlUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsa09BNEJ4Qiw2QkFBNkIsOERBRzFCLGVBQWUsOERBR2YsZ0JBQWdCLHlMQUx0QixtQkFBbUIsZ0RDekZoQyxtakJBa0JBLGluQkR3Q1ksZ0JBQWdCLHVJQUFFLG1CQUFtQjs7MkZBRXBDLDJCQUEyQjtrQkFSdkMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUM7c0ZBR3pCLGlCQUFpQjtzQkFBdkMsU0FBUzt1QkFBQyxVQUFVO2dCQUVaLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFzQnVDLE9BQU87c0JBQW5ELFlBQVk7dUJBQUMsNkJBQTZCO2dCQUNYLE9BQU87c0JBQXRDLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUc5QixRQUFRO3NCQURQLGVBQWU7dUJBQUMsZUFBZSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFJdkQsUUFBUTtzQkFEUCxlQUFlO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0Nvbm5lY3RlZE92ZXJsYXksIENka092ZXJsYXlPcmlnaW4sIENvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZnJvbUV2ZW50LCBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkZWxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9jb3JlLXVpL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgS2V5Ym9hcmRBY3Rpb25Tb3VyY2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2tleWJvYXJkLWFjdGlvbi1zb3VyY2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEtleWJvYXJkU2VsZWN0QWN0aW9uIH0gZnJvbSAnLi4va2V5Ym9hcmQtc2VsZWN0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9vcHRpb24vb3B0aW9uLmNvbXBvbmVudCc7XG5cbmNvbnN0IEJPVFRPTV9MRUZUX1BPU0lUSU9OOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgb3JpZ2luWDogJ2VuZCcsXG4gIG92ZXJsYXlYOiAnZW5kJyxcbiAgb3JpZ2luWTogJ2JvdHRvbScsXG4gIG92ZXJsYXlZOiAndG9wJ1xufTtcblxuY29uc3QgQk9UVE9NX1JJR0hUX1BPU0lUSU9OOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgb3ZlcmxheVg6ICdzdGFydCcsXG4gIG9yaWdpblk6ICdib3R0b20nLFxuICBvdmVybGF5WTogJ3RvcCdcbn07XG5cbmNvbnN0IFRPUF9MRUZUX1BPU0lUSU9OOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgb3JpZ2luWDogJ2VuZCcsXG4gIG92ZXJsYXlYOiAnZW5kJyxcbiAgb3JpZ2luWTogJ3RvcCcsXG4gIG92ZXJsYXlZOiAnYm90dG9tJ1xufTtcblxuY29uc3QgVE9QX1JJR0hUX1BPU0lUSU9OOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgb3ZlcmxheVg6ICdzdGFydCcsXG4gIG9yaWdpblk6ICd0b3AnLFxuICBvdmVybGF5WTogJ2JvdHRvbSdcbn07XG5cbmNvbnN0IExFRlRfQUxJR05fUE9TSVRJT05TOiBDb25uZWN0ZWRQb3NpdGlvbltdID0gW0JPVFRPTV9MRUZUX1BPU0lUSU9OLCBUT1BfTEVGVF9QT1NJVElPTiwgQk9UVE9NX1JJR0hUX1BPU0lUSU9OLCBUT1BfUklHSFRfUE9TSVRJT05dO1xuY29uc3QgUklHSFRfQUxJR05fUE9TSVRJT05TOiBDb25uZWN0ZWRQb3NpdGlvbltdID0gW0JPVFRPTV9SSUdIVF9QT1NJVElPTiwgVE9QX1JJR0hUX1BPU0lUSU9OLCBCT1RUT01fTEVGVF9QT1NJVElPTiwgVE9QX0xFRlRfUE9TSVRJT05dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1jZGstb3B0aW9ucy1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnY2RrLW9wdGlvbnMtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnY2RrLW9wdGlvbnMtZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDZGtPdmVybGF5T3JpZ2luLCBDZGtDb25uZWN0ZWRPdmVybGF5XVxufSlcbmV4cG9ydCBjbGFzcyBDZGtPcHRpb25zRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdkcm9wZG93bicpIGRyb3Bkb3duQ29udGFpbmVyITogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKSBhbGlnbjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdyaWdodCc7XG4gIEBJbnB1dCgpIGNsb3NlT25TY3JvbGw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWF4SGVpZ2h0OiBzdHJpbmcgPSAnbm9uZSc7XG5cbiAgc2V0IG9wZW4odmFsdWUpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX29wZW4gPSB2YWx1ZTtcbiAgICBpZiAodGhpcy50cmlnZ2VyKSB7XG4gICAgICAvLyBEb24ndCBlbWl0IGtleWJvYXJkIGFjdGlvbnMgd2hpbGUgdGhlIGRyb3Bkb3duIGlzIG5vdCBvcGVuIHlldC5cbiAgICAgIHRoaXMudHJpZ2dlci5kb250RW1pdCA9ICF0aGlzLm9wZW47XG4gICAgfVxuICAgIGlmICh0aGlzLm9wZW4pIHtcbiAgICAgIHRoaXMuaXNTdWJkcm9wZG93bkV4cGFuZGVkID0gZmFsc2U7XG4gICAgICB0aGlzLnNldEluaXRpYWxIaWdobGlnaHRpbmdJbmRleCgpO1xuICAgIH1cbiAgICB0aGlzLnJlbG9hZE92ZXJsYXlQb3NpdGlvbih0aGlzLm9wZW4pO1xuICB9XG4gIGdldCBvcGVuKCkge1xuICAgIHJldHVybiB0aGlzLl9vcGVuO1xuICB9XG5cbiAgQENvbnRlbnRDaGlsZChLZXlib2FyZEFjdGlvblNvdXJjZURpcmVjdGl2ZSkgdHJpZ2dlciE6IEtleWJvYXJkQWN0aW9uU291cmNlRGlyZWN0aXZlO1xuICBAVmlld0NoaWxkKENka0Nvbm5lY3RlZE92ZXJsYXkpIG92ZXJsYXkhOiBDZGtDb25uZWN0ZWRPdmVybGF5O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oT3B0aW9uQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIF9vcHRpb25zITogUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudD47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUb29sdGlwRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHRvb2x0aXBzITogUXVlcnlMaXN0PFRvb2x0aXBEaXJlY3RpdmU+O1xuXG4gIGdldCBvcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zLnRvQXJyYXkoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGlnaGxpZ2h0ZWRPcHRpb25JbmRleCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gIHByaXZhdGUgX29wZW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc1N1YmRyb3Bkb3duRXhwYW5kZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGlzUG9zaXRpb25Db21wdXRlZCA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnRyaWdnZXIuZG9udEVtaXQgPSAhdGhpcy5vcGVuO1xuXG4gICAgdGhpcy5vdmVybGF5LnBvc2l0aW9ucyA9IHRoaXMuYWxpZ24gPT09ICdsZWZ0JyA/IExFRlRfQUxJR05fUE9TSVRJT05TIDogUklHSFRfQUxJR05fUE9TSVRJT05TO1xuXG4gICAgY29uc3Qgb3B0aW9uc0NoYW5nZXMkID0gdGhpcy5fb3B0aW9ucy5jaGFuZ2VzLnBpcGUoXG4gICAgICBzdGFydFdpdGgodGhpcy5fb3B0aW9ucyksXG4gICAgICBtYXAoKG9wdGlvbnM6IFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ+KSA9PiBvcHRpb25zLnRvQXJyYXkoKSlcbiAgICApO1xuXG4gICAgdGhpcy50cmlnZ2VyLmtleWJvYXJkQWN0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGtleWJvYXJkU2VsZWN0QWN0aW9uKSA9PiBrZXlib2FyZFNlbGVjdEFjdGlvbiA9PT0gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uTkVYVCksXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuaGlnaGxpZ2h0ZWRPcHRpb25JbmRleCQsIG9wdGlvbnNDaGFuZ2VzJCwgKF8sIGluZGV4LCBvcHRpb25zKSA9PiB0aGlzLm5leHQoaW5kZXgsIG9wdGlvbnMpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLmhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkKTtcblxuICAgIHRoaXMudHJpZ2dlci5rZXlib2FyZEFjdGlvbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChrZXlib2FyZFNlbGVjdEFjdGlvbikgPT4ga2V5Ym9hcmRTZWxlY3RBY3Rpb24gPT09IEtleWJvYXJkU2VsZWN0QWN0aW9uLlBSRVYpLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkLCBvcHRpb25zQ2hhbmdlcyQsIChfLCBpbmRleCwgb3B0aW9ucykgPT4gdGhpcy5wcmV2KGluZGV4LCBvcHRpb25zKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JCk7XG5cbiAgICB0aGlzLnRyaWdnZXIua2V5Ym9hcmRBY3Rpb25zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoa2V5Ym9hcmRTZWxlY3RBY3Rpb24pID0+IGtleWJvYXJkU2VsZWN0QWN0aW9uID09PSBLZXlib2FyZFNlbGVjdEFjdGlvbi5MRUZUKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JCwgb3B0aW9uc0NoYW5nZXMkLCAoXywgaW5kZXgsIG9wdGlvbnMpID0+XG4gICAgICAgICAgdGhpcy5pc1N1YmRyb3Bkb3duRXhwYW5kZWQgPyB0aGlzLmNvbGxhcHNlKGluZGV4LCBvcHRpb25zKSA6IHRoaXMuZXhwYW5kKGluZGV4LCBvcHRpb25zKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHRoaXMuaGlnaGxpZ2h0ZWRPcHRpb25JbmRleCQpO1xuXG4gICAgdGhpcy50cmlnZ2VyLmtleWJvYXJkQWN0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGtleWJvYXJkU2VsZWN0QWN0aW9uKSA9PiBrZXlib2FyZFNlbGVjdEFjdGlvbiA9PT0gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uUklHSFQpLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkLCBvcHRpb25zQ2hhbmdlcyQsIChfLCBpbmRleCwgb3B0aW9ucykgPT5cbiAgICAgICAgICB0aGlzLmlzU3ViZHJvcGRvd25FeHBhbmRlZCA/IHRoaXMuY29sbGFwc2UoaW5kZXgsIG9wdGlvbnMpIDogdGhpcy5leHBhbmQoaW5kZXgsIG9wdGlvbnMpXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JCk7XG5cbiAgICB0aGlzLnRyaWdnZXIua2V5Ym9hcmRBY3Rpb25zJFxuICAgICAgLnBpcGUoZmlsdGVyKChrZXlib2FyZFNlbGVjdEFjdGlvbikgPT4ga2V5Ym9hcmRTZWxlY3RBY3Rpb24gPT09IEtleWJvYXJkU2VsZWN0QWN0aW9uLkNMT1NFKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZURyb3Bkb3duKCkpO1xuXG4gICAgdGhpcy50cmlnZ2VyLmtleWJvYXJkQWN0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGtleWJvYXJkU2VsZWN0QWN0aW9uKSA9PiBrZXlib2FyZFNlbGVjdEFjdGlvbiA9PT0gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uRVhFQ1VURSksXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuaGlnaGxpZ2h0ZWRPcHRpb25JbmRleCQsIChfLCBpbmRleCkgPT4gaW5kZXgpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChpbmRleCkgPT4ge1xuICAgICAgICB0aGlzLm9wdGlvbnNbaW5kZXhdPy5zZWxlY3RPcHRpb24oKTtcbiAgICAgIH0pO1xuXG4gICAgLyoqIENvbWJpbmVkIHN0cmVhbSBvZiBhbGwgb2YgdGhlIGNoaWxkIG9wdGlvbnMnIHNlbGVjdCBvdXRwdXRzLiAqL1xuICAgIHRoaXMuX29wdGlvbnMuY2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLl9vcHRpb25zKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IG1lcmdlKC4uLnRoaXMuX29wdGlvbnMubWFwKChvcHRpb24pID0+IG9wdGlvbi5zZWxlY3QpLCAuLi50aGlzLl9vcHRpb25zLm1hcCgob3B0aW9uKSA9PiBvcHRpb24uc2VsZWN0ZWRDbGljaykpKSxcbiAgICAgICAgZGVsYXkoMCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChfdmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICB9KTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW29wdGlvbnNDaGFuZ2VzJCwgdGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JF0pXG4gICAgICAucGlwZShcbiAgICAgICAgZGVsYXkoMCksXG4gICAgICAgIG1hcCgoW29wdGlvbnMsIGluZGV4XTogW09wdGlvbkNvbXBvbmVudFtdLCBudW1iZXJdKSA9PiBvcHRpb25zW2luZGV4XSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChvcHRpb25Ub0JlSGlnaGxpZ2h0ZWQpID0+IHtcbiAgICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2goKG9wdGlvbikgPT4gb3B0aW9uLnNldEhpZ2hsaWdodGVkKG9wdGlvblRvQmVIaWdobGlnaHRlZCA9PT0gb3B0aW9uKSk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICBpZiAodGhpcy5jbG9zZU9uU2Nyb2xsKSB7XG4gICAgICBmcm9tRXZlbnQod2luZG93LCAnc2Nyb2xsJylcbiAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnRyaWdnZXIuYmx1cigpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG5cbiAgY2xvc2VEcm9wZG93bigpIHtcbiAgICB0aGlzLnRvb2x0aXBzLnRvQXJyYXkoKS5mb3JFYWNoKCh0b29sdGlwKSA9PiB0b29sdGlwLmhpZGUoKSk7XG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHNldEluaXRpYWxIaWdobGlnaHRpbmdJbmRleCgpIHtcbiAgICBjb25zdCBmaXJzdEF2YWlsYWJsZUluZGV4ID0gdGhpcy5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiAhdGhpcy5vcHRpb25Jc0hpZ2hsaWdodGFibGUob3B0aW9uKSkuaW5kZXhPZihmYWxzZSwgMCk7XG4gICAgdGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JC5uZXh0KGZpcnN0QXZhaWxhYmxlSW5kZXgpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmV2KGN1cnJlbnRJbmRleDogbnVtYmVyLCBpdGVtczogT3B0aW9uQ29tcG9uZW50W10pOiBudW1iZXIge1xuICAgIGlmIChjdXJyZW50SW5kZXggPiAwKSB7XG4gICAgICBjb25zdCBwcmV2RW5hYmxlZEluZGV4ID0gaXRlbXMubWFwKChvcHRpb24pID0+ICF0aGlzLm9wdGlvbklzSGlnaGxpZ2h0YWJsZShvcHRpb24pKS5sYXN0SW5kZXhPZihmYWxzZSwgY3VycmVudEluZGV4IC0gMSk7XG4gICAgICByZXR1cm4gcHJldkVuYWJsZWRJbmRleCAhPT0gLTEgPyBwcmV2RW5hYmxlZEluZGV4IDogY3VycmVudEluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY3VycmVudEluZGV4O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbmV4dChjdXJyZW50SW5kZXg6IG51bWJlciwgaXRlbXM6IE9wdGlvbkNvbXBvbmVudFtdKTogbnVtYmVyIHtcbiAgICBpZiAoY3VycmVudEluZGV4IDwgaXRlbXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBuZXh0RW5hYmxlZEluZGV4ID0gaXRlbXMubWFwKChvcHRpb24pID0+ICF0aGlzLm9wdGlvbklzSGlnaGxpZ2h0YWJsZShvcHRpb24pKS5pbmRleE9mKGZhbHNlLCBjdXJyZW50SW5kZXggKyAxKTtcbiAgICAgIHJldHVybiBuZXh0RW5hYmxlZEluZGV4ICE9PSAtMSA/IG5leHRFbmFibGVkSW5kZXggOiBjdXJyZW50SW5kZXg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjdXJyZW50SW5kZXg7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBleHBhbmQoY3VycmVudEluZGV4OiBudW1iZXIsIGl0ZW1zOiBPcHRpb25Db21wb25lbnRbXSkge1xuICAgIGlmIChpdGVtc1tjdXJyZW50SW5kZXhdPy5oYXNTdWJkcm9wZG93bikge1xuICAgICAgdGhpcy5pc1N1YmRyb3Bkb3duRXhwYW5kZWQgPSB0cnVlO1xuICAgICAgcmV0dXJuIHRoaXMubmV4dChjdXJyZW50SW5kZXgsIGl0ZW1zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGN1cnJlbnRJbmRleDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbGxhcHNlKGN1cnJlbnRJbmRleDogbnVtYmVyLCBpdGVtczogT3B0aW9uQ29tcG9uZW50W10pIHtcbiAgICBpZiAodGhpcy5pc1N1YmRyb3Bkb3duRXhwYW5kZWQpIHtcbiAgICAgIHRoaXMuaXNTdWJkcm9wZG93bkV4cGFuZGVkID0gZmFsc2U7XG4gICAgICByZXR1cm4gdGhpcy5wcmV2KGN1cnJlbnRJbmRleCwgaXRlbXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY3VycmVudEluZGV4O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb3B0aW9uSXNIaWdobGlnaHRhYmxlKG9wdGlvbjogT3B0aW9uQ29tcG9uZW50KTogYm9vbGVhbiB7XG4gICAgY29uc3QgaXNUb3BsZXZlbE9wdGlvbkFuZEFsbG93ZWQgPSAhb3B0aW9uLmlzU3Vib3B0aW9uICYmICF0aGlzLmlzU3ViZHJvcGRvd25FeHBhbmRlZDtcbiAgICBjb25zdCBpc1NlY29uZGxldmVsT3B0aW9uQW5kQWxsb3dlZCA9IG9wdGlvbi5pc1N1Ym9wdGlvbiAmJiB0aGlzLmlzU3ViZHJvcGRvd25FeHBhbmRlZDtcbiAgICByZXR1cm4gIW9wdGlvbi5kaXNhYmxlZCAmJiAoaXNUb3BsZXZlbE9wdGlvbkFuZEFsbG93ZWQgfHwgaXNTZWNvbmRsZXZlbE9wdGlvbkFuZEFsbG93ZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWxvYWRPdmVybGF5UG9zaXRpb24ob3BlbjogYm9vbGVhbikge1xuICAgIGlmIChvcGVuKSB7XG4gICAgICB0aGlzLmlzUG9zaXRpb25Db21wdXRlZCA9IGZhbHNlO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRyb3Bkb3duRWxlbWVudCA9IHRoaXMuZHJvcGRvd25Db250YWluZXIubmF0aXZlRWxlbWVudDtcblxuICAgICAgICB0aGlzLm92ZXJsYXkub3ZlcmxheVJlZi51cGRhdGVTaXplKHtcbiAgICAgICAgICBoZWlnaHQ6IGRyb3Bkb3duRWxlbWVudC5vZmZzZXRIZWlnaHQsXG4gICAgICAgICAgd2lkdGg6IGRyb3Bkb3duRWxlbWVudC5vZmZzZXRXaWR0aFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vdmVybGF5Lm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKTtcblxuICAgICAgICB0aGlzLmlzUG9zaXRpb25Db21wdXRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAoY2xpY2spPVwib3BlbiA9ICFvcGVuXCIgY2xhc3M9XCJ0cmlnZ2VyQ29udGFpbmVyXCIgY2RrT3ZlcmxheU9yaWdpbiAjdHJpZ2dlcj1cImNka092ZXJsYXlPcmlnaW5cIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2x4S2V5Ym9hcmRBY3Rpb25Tb3VyY2VdXCIgLz5cbjwvZGl2PlxuPG5nLXRlbXBsYXRlXG4gIGNka0Nvbm5lY3RlZE92ZXJsYXlcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwidHJpZ2dlclwiXG4gIFtjZGtDb25uZWN0ZWRPdmVybGF5T3Blbl09XCJvcGVuXCJcbiAgKG92ZXJsYXlPdXRzaWRlQ2xpY2spPVwiY2xvc2VEcm9wZG93bigpXCJcbj5cbiAgPHVsXG4gICAgI2Ryb3Bkb3duXG4gICAgW2NsYXNzLnNob3dTY3JvbGxiYXJdPVwibWF4SGVpZ2h0ICE9PSAnbm9uZSdcIlxuICAgIFtzdHlsZS5tYXgtaGVpZ2h0XT1cIm1heEhlaWdodFwiXG4gICAgW3N0eWxlLnZpc2liaWxpdHldPVwiaXNQb3NpdGlvbkNvbXB1dGVkID8gbnVsbCA6ICdoaWRkZW4nXCJcbiAgPlxuICAgIDxuZy1jb250ZW50IC8+XG4gIDwvdWw+XG48L25nLXRlbXBsYXRlPlxuIl19
215
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW9wdGlvbnMtZHJvcGRvd24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybXMtdWkvY29tcG9uZW50cy9jZGstb3B0aW9ucy1kcm9wZG93bi9jZGstb3B0aW9ucy1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2Nkay1vcHRpb25zLWRyb3Bkb3duL2Nkay1vcHRpb25zLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxnQkFBZ0IsRUFBcUIsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRyxPQUFPLEVBRUwsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUVmLEtBQUssRUFHTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakYsT0FBTyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6SSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxtREFBbUQsQ0FBQztBQUNsRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRTdE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O1lBQ3RDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNQO2FBQU07WUFDTCxJQUFJLENBQUMsZUFBZSxDQUFDLFlBQVksRUFBRSxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQzs4R0F0TlUsMkJBQTJCO2tHQUEzQiwyQkFBMkIsa09BNEJ4Qiw2QkFBNkIsOERBRzFCLGVBQWUsOERBR2YsZ0JBQWdCLHlMQUx0QixtQkFBbUIsZ0RDekZoQyx5a0JBa0JBLGluQkR3Q1ksZ0JBQWdCLHVJQUFFLG1CQUFtQjs7MkZBRXBDLDJCQUEyQjtrQkFSdkMsU0FBUzsrQkFDRSx5QkFBeUIsbUJBR2xCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQLENBQUMsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUM7c0ZBR3pCLGlCQUFpQjtzQkFBdkMsU0FBUzt1QkFBQyxVQUFVO2dCQUVaLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFzQnVDLE9BQU87c0JBQW5ELFlBQVk7dUJBQUMsNkJBQTZCO2dCQUNYLE9BQU87c0JBQXRDLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUc5QixRQUFRO3NCQURQLGVBQWU7dUJBQUMsZUFBZSxFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRTtnQkFJdkQsUUFBUTtzQkFEUCxlQUFlO3VCQUFDLGdCQUFnQixFQUFFLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENka0Nvbm5lY3RlZE92ZXJsYXksIENka092ZXJsYXlPcmlnaW4sIENvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFbGVtZW50UmVmLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBRdWVyeUxpc3QsXG4gIFZpZXdDaGlsZFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgZnJvbUV2ZW50LCBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkZWxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwLCBzdGFydFdpdGgsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB3aXRoTGF0ZXN0RnJvbSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFRvb2x0aXBEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi8uLi9jb3JlLXVpL3Rvb2x0aXAvdG9vbHRpcC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgS2V5Ym9hcmRBY3Rpb25Tb3VyY2VEaXJlY3RpdmUgfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzL2tleWJvYXJkLWFjdGlvbi1zb3VyY2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IEtleWJvYXJkU2VsZWN0QWN0aW9uIH0gZnJvbSAnLi4va2V5Ym9hcmQtc2VsZWN0LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9vcHRpb24vb3B0aW9uLmNvbXBvbmVudCc7XG5cbmNvbnN0IEJPVFRPTV9MRUZUX1BPU0lUSU9OOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgb3JpZ2luWDogJ2VuZCcsXG4gIG92ZXJsYXlYOiAnZW5kJyxcbiAgb3JpZ2luWTogJ2JvdHRvbScsXG4gIG92ZXJsYXlZOiAndG9wJ1xufTtcblxuY29uc3QgQk9UVE9NX1JJR0hUX1BPU0lUSU9OOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgb3ZlcmxheVg6ICdzdGFydCcsXG4gIG9yaWdpblk6ICdib3R0b20nLFxuICBvdmVybGF5WTogJ3RvcCdcbn07XG5cbmNvbnN0IFRPUF9MRUZUX1BPU0lUSU9OOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgb3JpZ2luWDogJ2VuZCcsXG4gIG92ZXJsYXlYOiAnZW5kJyxcbiAgb3JpZ2luWTogJ3RvcCcsXG4gIG92ZXJsYXlZOiAnYm90dG9tJ1xufTtcblxuY29uc3QgVE9QX1JJR0hUX1BPU0lUSU9OOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgb3ZlcmxheVg6ICdzdGFydCcsXG4gIG9yaWdpblk6ICd0b3AnLFxuICBvdmVybGF5WTogJ2JvdHRvbSdcbn07XG5cbmNvbnN0IExFRlRfQUxJR05fUE9TSVRJT05TOiBDb25uZWN0ZWRQb3NpdGlvbltdID0gW0JPVFRPTV9MRUZUX1BPU0lUSU9OLCBUT1BfTEVGVF9QT1NJVElPTiwgQk9UVE9NX1JJR0hUX1BPU0lUSU9OLCBUT1BfUklHSFRfUE9TSVRJT05dO1xuY29uc3QgUklHSFRfQUxJR05fUE9TSVRJT05TOiBDb25uZWN0ZWRQb3NpdGlvbltdID0gW0JPVFRPTV9SSUdIVF9QT1NJVElPTiwgVE9QX1JJR0hUX1BPU0lUSU9OLCBCT1RUT01fTEVGVF9QT1NJVElPTiwgVE9QX0xFRlRfUE9TSVRJT05dO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdseC1jZGstb3B0aW9ucy1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnY2RrLW9wdGlvbnMtZHJvcGRvd24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnY2RrLW9wdGlvbnMtZHJvcGRvd24uY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtDZGtPdmVybGF5T3JpZ2luLCBDZGtDb25uZWN0ZWRPdmVybGF5XVxufSlcbmV4cG9ydCBjbGFzcyBDZGtPcHRpb25zRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKCdkcm9wZG93bicpIGRyb3Bkb3duQ29udGFpbmVyITogRWxlbWVudFJlZjtcblxuICBASW5wdXQoKSBhbGlnbjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdyaWdodCc7XG4gIEBJbnB1dCgpIGNsb3NlT25TY3JvbGw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgbWF4SGVpZ2h0OiBzdHJpbmcgPSAnbm9uZSc7XG5cbiAgc2V0IG9wZW4odmFsdWUpIHtcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuX29wZW4gPSB2YWx1ZTtcbiAgICBpZiAodGhpcy50cmlnZ2VyKSB7XG4gICAgICAvLyBEb24ndCBlbWl0IGtleWJvYXJkIGFjdGlvbnMgd2hpbGUgdGhlIGRyb3Bkb3duIGlzIG5vdCBvcGVuIHlldC5cbiAgICAgIHRoaXMudHJpZ2dlci5kb250RW1pdCA9ICF0aGlzLm9wZW47XG4gICAgfVxuICAgIGlmICh0aGlzLm9wZW4pIHtcbiAgICAgIHRoaXMuaXNTdWJkcm9wZG93bkV4cGFuZGVkID0gZmFsc2U7XG4gICAgICB0aGlzLnNldEluaXRpYWxIaWdobGlnaHRpbmdJbmRleCgpO1xuICAgIH1cbiAgICB0aGlzLnJlbG9hZE92ZXJsYXlQb3NpdGlvbih0aGlzLm9wZW4pO1xuICB9XG4gIGdldCBvcGVuKCkge1xuICAgIHJldHVybiB0aGlzLl9vcGVuO1xuICB9XG5cbiAgQENvbnRlbnRDaGlsZChLZXlib2FyZEFjdGlvblNvdXJjZURpcmVjdGl2ZSkgdHJpZ2dlciE6IEtleWJvYXJkQWN0aW9uU291cmNlRGlyZWN0aXZlO1xuICBAVmlld0NoaWxkKENka0Nvbm5lY3RlZE92ZXJsYXkpIG92ZXJsYXkhOiBDZGtDb25uZWN0ZWRPdmVybGF5O1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oT3B0aW9uQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIF9vcHRpb25zITogUXVlcnlMaXN0PE9wdGlvbkNvbXBvbmVudD47XG5cbiAgQENvbnRlbnRDaGlsZHJlbihUb29sdGlwRGlyZWN0aXZlLCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gIHRvb2x0aXBzITogUXVlcnlMaXN0PFRvb2x0aXBEaXJlY3RpdmU+O1xuXG4gIGdldCBvcHRpb25zKCkge1xuICAgIHJldHVybiB0aGlzLl9vcHRpb25zLnRvQXJyYXkoKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVhZG9ubHkgaGlnaGxpZ2h0ZWRPcHRpb25JbmRleCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PG51bWJlcj4oMCk7XG4gIHByaXZhdGUgX29wZW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBpc1N1YmRyb3Bkb3duRXhwYW5kZWQgPSBmYWxzZTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGlzUG9zaXRpb25Db21wdXRlZCA9IHRydWU7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLnRyaWdnZXIuZG9udEVtaXQgPSAhdGhpcy5vcGVuO1xuXG4gICAgdGhpcy5vdmVybGF5LnBvc2l0aW9ucyA9IHRoaXMuYWxpZ24gPT09ICdsZWZ0JyA/IExFRlRfQUxJR05fUE9TSVRJT05TIDogUklHSFRfQUxJR05fUE9TSVRJT05TO1xuXG4gICAgY29uc3Qgb3B0aW9uc0NoYW5nZXMkID0gdGhpcy5fb3B0aW9ucy5jaGFuZ2VzLnBpcGUoXG4gICAgICBzdGFydFdpdGgodGhpcy5fb3B0aW9ucyksXG4gICAgICBtYXAoKG9wdGlvbnM6IFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ+KSA9PiBvcHRpb25zLnRvQXJyYXkoKSlcbiAgICApO1xuXG4gICAgdGhpcy50cmlnZ2VyLmtleWJvYXJkQWN0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGtleWJvYXJkU2VsZWN0QWN0aW9uKSA9PiBrZXlib2FyZFNlbGVjdEFjdGlvbiA9PT0gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uTkVYVCksXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuaGlnaGxpZ2h0ZWRPcHRpb25JbmRleCQsIG9wdGlvbnNDaGFuZ2VzJCwgKF8sIGluZGV4LCBvcHRpb25zKSA9PiB0aGlzLm5leHQoaW5kZXgsIG9wdGlvbnMpKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSh0aGlzLmhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkKTtcblxuICAgIHRoaXMudHJpZ2dlci5rZXlib2FyZEFjdGlvbnMkXG4gICAgICAucGlwZShcbiAgICAgICAgZmlsdGVyKChrZXlib2FyZFNlbGVjdEFjdGlvbikgPT4ga2V5Ym9hcmRTZWxlY3RBY3Rpb24gPT09IEtleWJvYXJkU2VsZWN0QWN0aW9uLlBSRVYpLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkLCBvcHRpb25zQ2hhbmdlcyQsIChfLCBpbmRleCwgb3B0aW9ucykgPT4gdGhpcy5wcmV2KGluZGV4LCBvcHRpb25zKSlcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JCk7XG5cbiAgICB0aGlzLnRyaWdnZXIua2V5Ym9hcmRBY3Rpb25zJFxuICAgICAgLnBpcGUoXG4gICAgICAgIGZpbHRlcigoa2V5Ym9hcmRTZWxlY3RBY3Rpb24pID0+IGtleWJvYXJkU2VsZWN0QWN0aW9uID09PSBLZXlib2FyZFNlbGVjdEFjdGlvbi5MRUZUKSxcbiAgICAgICAgd2l0aExhdGVzdEZyb20odGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JCwgb3B0aW9uc0NoYW5nZXMkLCAoXywgaW5kZXgsIG9wdGlvbnMpID0+XG4gICAgICAgICAgdGhpcy5pc1N1YmRyb3Bkb3duRXhwYW5kZWQgPyB0aGlzLmNvbGxhcHNlKGluZGV4LCBvcHRpb25zKSA6IHRoaXMuZXhwYW5kKGluZGV4LCBvcHRpb25zKVxuICAgICAgICApXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKHRoaXMuaGlnaGxpZ2h0ZWRPcHRpb25JbmRleCQpO1xuXG4gICAgdGhpcy50cmlnZ2VyLmtleWJvYXJkQWN0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGtleWJvYXJkU2VsZWN0QWN0aW9uKSA9PiBrZXlib2FyZFNlbGVjdEFjdGlvbiA9PT0gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uUklHSFQpLFxuICAgICAgICB3aXRoTGF0ZXN0RnJvbSh0aGlzLmhpZ2hsaWdodGVkT3B0aW9uSW5kZXgkLCBvcHRpb25zQ2hhbmdlcyQsIChfLCBpbmRleCwgb3B0aW9ucykgPT5cbiAgICAgICAgICB0aGlzLmlzU3ViZHJvcGRvd25FeHBhbmRlZCA/IHRoaXMuY29sbGFwc2UoaW5kZXgsIG9wdGlvbnMpIDogdGhpcy5leHBhbmQoaW5kZXgsIG9wdGlvbnMpXG4gICAgICAgIClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUodGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JCk7XG5cbiAgICB0aGlzLnRyaWdnZXIua2V5Ym9hcmRBY3Rpb25zJFxuICAgICAgLnBpcGUoZmlsdGVyKChrZXlib2FyZFNlbGVjdEFjdGlvbikgPT4ga2V5Ym9hcmRTZWxlY3RBY3Rpb24gPT09IEtleWJvYXJkU2VsZWN0QWN0aW9uLkNMT1NFKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5jbG9zZURyb3Bkb3duKCkpO1xuXG4gICAgdGhpcy50cmlnZ2VyLmtleWJvYXJkQWN0aW9ucyRcbiAgICAgIC5waXBlKFxuICAgICAgICBmaWx0ZXIoKGtleWJvYXJkU2VsZWN0QWN0aW9uKSA9PiBrZXlib2FyZFNlbGVjdEFjdGlvbiA9PT0gS2V5Ym9hcmRTZWxlY3RBY3Rpb24uRVhFQ1VURSksXG4gICAgICAgIHdpdGhMYXRlc3RGcm9tKHRoaXMuaGlnaGxpZ2h0ZWRPcHRpb25JbmRleCQsIChfLCBpbmRleCkgPT4gaW5kZXgpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChpbmRleCkgPT4ge1xuICAgICAgICB0aGlzLm9wdGlvbnNbaW5kZXhdPy5zZWxlY3RPcHRpb24oKTtcbiAgICAgIH0pO1xuXG4gICAgLyoqIENvbWJpbmVkIHN0cmVhbSBvZiBhbGwgb2YgdGhlIGNoaWxkIG9wdGlvbnMnIHNlbGVjdCBvdXRwdXRzLiAqL1xuICAgIHRoaXMuX29wdGlvbnMuY2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHN0YXJ0V2l0aCh0aGlzLl9vcHRpb25zKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IG1lcmdlKC4uLnRoaXMuX29wdGlvbnMubWFwKChvcHRpb24pID0+IG9wdGlvbi5zZWxlY3QpLCAuLi50aGlzLl9vcHRpb25zLm1hcCgob3B0aW9uKSA9PiBvcHRpb24uc2VsZWN0ZWRDbGljaykpKSxcbiAgICAgICAgZGVsYXkoMCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChfdmFsdWUpID0+IHtcbiAgICAgICAgdGhpcy5jbG9zZURyb3Bkb3duKCk7XG4gICAgICB9KTtcblxuICAgIGNvbWJpbmVMYXRlc3QoW29wdGlvbnNDaGFuZ2VzJCwgdGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JF0pXG4gICAgICAucGlwZShcbiAgICAgICAgZGVsYXkoMCksXG4gICAgICAgIG1hcCgoW29wdGlvbnMsIGluZGV4XTogW09wdGlvbkNvbXBvbmVudFtdLCBudW1iZXJdKSA9PiBvcHRpb25zW2luZGV4XSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKCksXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKChvcHRpb25Ub0JlSGlnaGxpZ2h0ZWQpID0+IHtcbiAgICAgICAgdGhpcy5vcHRpb25zLmZvckVhY2goKG9wdGlvbikgPT4gb3B0aW9uLnNldEhpZ2hsaWdodGVkKG9wdGlvblRvQmVIaWdobGlnaHRlZCA9PT0gb3B0aW9uKSk7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSk7XG5cbiAgICBpZiAodGhpcy5jbG9zZU9uU2Nyb2xsKSB7XG4gICAgICBmcm9tRXZlbnQod2luZG93LCAnc2Nyb2xsJylcbiAgICAgICAgLnBpcGUoZGVib3VuY2VUaW1lKDEwMCksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3llZCQpKVxuICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICAgICAgICB0aGlzLnRyaWdnZXIuYmx1cigpO1xuICAgICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuICB9XG5cbiAgY2xvc2VEcm9wZG93bigpIHtcbiAgICB0aGlzLnRvb2x0aXBzLnRvQXJyYXkoKS5mb3JFYWNoKCh0b29sdGlwKSA9PiB0b29sdGlwLmhpZGUoKSk7XG4gICAgdGhpcy5vcGVuID0gZmFsc2U7XG4gIH1cblxuICBwcml2YXRlIHNldEluaXRpYWxIaWdobGlnaHRpbmdJbmRleCgpIHtcbiAgICBjb25zdCBmaXJzdEF2YWlsYWJsZUluZGV4ID0gdGhpcy5vcHRpb25zLm1hcCgob3B0aW9uKSA9PiAhdGhpcy5vcHRpb25Jc0hpZ2hsaWdodGFibGUob3B0aW9uKSkuaW5kZXhPZihmYWxzZSwgMCk7XG4gICAgdGhpcy5oaWdobGlnaHRlZE9wdGlvbkluZGV4JC5uZXh0KGZpcnN0QXZhaWxhYmxlSW5kZXgpO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmV2KGN1cnJlbnRJbmRleDogbnVtYmVyLCBpdGVtczogT3B0aW9uQ29tcG9uZW50W10pOiBudW1iZXIge1xuICAgIGlmIChjdXJyZW50SW5kZXggPiAwKSB7XG4gICAgICBjb25zdCBwcmV2RW5hYmxlZEluZGV4ID0gaXRlbXMubWFwKChvcHRpb24pID0+ICF0aGlzLm9wdGlvbklzSGlnaGxpZ2h0YWJsZShvcHRpb24pKS5sYXN0SW5kZXhPZihmYWxzZSwgY3VycmVudEluZGV4IC0gMSk7XG4gICAgICByZXR1cm4gcHJldkVuYWJsZWRJbmRleCAhPT0gLTEgPyBwcmV2RW5hYmxlZEluZGV4IDogY3VycmVudEluZGV4O1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY3VycmVudEluZGV4O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbmV4dChjdXJyZW50SW5kZXg6IG51bWJlciwgaXRlbXM6IE9wdGlvbkNvbXBvbmVudFtdKTogbnVtYmVyIHtcbiAgICBpZiAoY3VycmVudEluZGV4IDwgaXRlbXMubGVuZ3RoKSB7XG4gICAgICBjb25zdCBuZXh0RW5hYmxlZEluZGV4ID0gaXRlbXMubWFwKChvcHRpb24pID0+ICF0aGlzLm9wdGlvbklzSGlnaGxpZ2h0YWJsZShvcHRpb24pKS5pbmRleE9mKGZhbHNlLCBjdXJyZW50SW5kZXggKyAxKTtcbiAgICAgIHJldHVybiBuZXh0RW5hYmxlZEluZGV4ICE9PSAtMSA/IG5leHRFbmFibGVkSW5kZXggOiBjdXJyZW50SW5kZXg7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBjdXJyZW50SW5kZXg7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBleHBhbmQoY3VycmVudEluZGV4OiBudW1iZXIsIGl0ZW1zOiBPcHRpb25Db21wb25lbnRbXSkge1xuICAgIGlmIChpdGVtc1tjdXJyZW50SW5kZXhdPy5oYXNTdWJkcm9wZG93bikge1xuICAgICAgdGhpcy5pc1N1YmRyb3Bkb3duRXhwYW5kZWQgPSB0cnVlO1xuICAgICAgcmV0dXJuIHRoaXMubmV4dChjdXJyZW50SW5kZXgsIGl0ZW1zKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGN1cnJlbnRJbmRleDtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGNvbGxhcHNlKGN1cnJlbnRJbmRleDogbnVtYmVyLCBpdGVtczogT3B0aW9uQ29tcG9uZW50W10pIHtcbiAgICBpZiAodGhpcy5pc1N1YmRyb3Bkb3duRXhwYW5kZWQpIHtcbiAgICAgIHRoaXMuaXNTdWJkcm9wZG93bkV4cGFuZGVkID0gZmFsc2U7XG4gICAgICByZXR1cm4gdGhpcy5wcmV2KGN1cnJlbnRJbmRleCwgaXRlbXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gY3VycmVudEluZGV4O1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgb3B0aW9uSXNIaWdobGlnaHRhYmxlKG9wdGlvbjogT3B0aW9uQ29tcG9uZW50KTogYm9vbGVhbiB7XG4gICAgY29uc3QgaXNUb3BsZXZlbE9wdGlvbkFuZEFsbG93ZWQgPSAhb3B0aW9uLmlzU3Vib3B0aW9uICYmICF0aGlzLmlzU3ViZHJvcGRvd25FeHBhbmRlZDtcbiAgICBjb25zdCBpc1NlY29uZGxldmVsT3B0aW9uQW5kQWxsb3dlZCA9IG9wdGlvbi5pc1N1Ym9wdGlvbiAmJiB0aGlzLmlzU3ViZHJvcGRvd25FeHBhbmRlZDtcbiAgICByZXR1cm4gIW9wdGlvbi5kaXNhYmxlZCAmJiAoaXNUb3BsZXZlbE9wdGlvbkFuZEFsbG93ZWQgfHwgaXNTZWNvbmRsZXZlbE9wdGlvbkFuZEFsbG93ZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWxvYWRPdmVybGF5UG9zaXRpb24ob3BlbjogYm9vbGVhbikge1xuICAgIGlmIChvcGVuKSB7XG4gICAgICB0aGlzLmlzUG9zaXRpb25Db21wdXRlZCA9IGZhbHNlO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRyb3Bkb3duRWxlbWVudCA9IHRoaXMuZHJvcGRvd25Db250YWluZXIubmF0aXZlRWxlbWVudDtcblxuICAgICAgICB0aGlzLm92ZXJsYXkub3ZlcmxheVJlZi51cGRhdGVTaXplKHtcbiAgICAgICAgICBoZWlnaHQ6IGRyb3Bkb3duRWxlbWVudC5vZmZzZXRIZWlnaHQsXG4gICAgICAgICAgd2lkdGg6IGRyb3Bkb3duRWxlbWVudC5vZmZzZXRXaWR0aFxuICAgICAgICB9KTtcbiAgICAgICAgdGhpcy5vdmVybGF5Lm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKTtcblxuICAgICAgICB0aGlzLmlzUG9zaXRpb25Db21wdXRlZCA9IHRydWU7XG4gICAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uLm1hcmtGb3JDaGVjaygpO1xuICAgICAgfSwgMCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY2hhbmdlRGV0ZWN0aW9uLm1hcmtGb3JDaGVjaygpO1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiAoY2xpY2spPVwib3BlbiA9ICFvcGVuXCIgY2xhc3M9XCJ0cmlnZ2VyQ29udGFpbmVyXCIgY2RrT3ZlcmxheU9yaWdpbiAjdHJpZ2dlcj1cImNka092ZXJsYXlPcmlnaW5cIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2x4S2V5Ym9hcmRBY3Rpb25Tb3VyY2VdXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG48bmctdGVtcGxhdGVcbiAgY2RrQ29ubmVjdGVkT3ZlcmxheVxuICBbY2RrQ29ubmVjdGVkT3ZlcmxheU9yaWdpbl09XCJ0cmlnZ2VyXCJcbiAgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cIm9wZW5cIlxuICAob3ZlcmxheU91dHNpZGVDbGljayk9XCJjbG9zZURyb3Bkb3duKClcIlxuPlxuICA8dWxcbiAgICAjZHJvcGRvd25cbiAgICBbY2xhc3Muc2hvd1Njcm9sbGJhcl09XCJtYXhIZWlnaHQgIT09ICdub25lJ1wiXG4gICAgW3N0eWxlLm1heC1oZWlnaHRdPVwibWF4SGVpZ2h0XCJcbiAgICBbc3R5bGUudmlzaWJpbGl0eV09XCJpc1Bvc2l0aW9uQ29tcHV0ZWQgPyBudWxsIDogJ2hpZGRlbidcIlxuICA+XG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICA8L3VsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -113,11 +113,11 @@ export class CdkOptionsSubDropdownComponent {
113
113
  this.mouseInside$.next(false);
114
114
  }
115
115
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CdkOptionsSubDropdownComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
116
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CdkOptionsSubDropdownComponent, isStandalone: true, selector: "lx-cdk-options-sub-dropdown", inputs: { trigger: "trigger", align: "align" }, queries: [{ propertyName: "options", predicate: OptionComponent, descendants: true }], viewQueries: [{ propertyName: "overlay", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "dropdownContainer", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger.elementRef\" [cdkConnectedOverlayOpen]=\"open\">\n <ul\n (mouseenter)=\"mouseenter()\"\n (mouseleave)=\"mouseleave()\"\n class=\"sub-dropdown\"\n [style.visibility]=\"isPositionComputed ? '' : 'hidden'\"\n lxAutoclose\n (autoclose)=\"closeDropdown()\"\n #dropdown\n >\n <ng-content />\n </ul>\n</ng-template>\n", styles: [".sub-dropdown{height:100%;padding:0;margin:0;background-color:#fff;border:solid 1px #e1e5eb;border-radius:3px;box-shadow:0 8px 12px 2px #00000026;text-align:left;list-style:none;max-height:50vh;overflow-y:auto}\n"], dependencies: [{ 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"] }] }); }
116
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: CdkOptionsSubDropdownComponent, isStandalone: true, selector: "lx-cdk-options-sub-dropdown", inputs: { trigger: "trigger", align: "align" }, queries: [{ propertyName: "options", predicate: OptionComponent, descendants: true }], viewQueries: [{ propertyName: "overlay", first: true, predicate: CdkConnectedOverlay, descendants: true }, { propertyName: "dropdownContainer", first: true, predicate: ["dropdown"], descendants: true }], ngImport: i0, template: "<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger.elementRef\" [cdkConnectedOverlayOpen]=\"open\">\n <ul\n (mouseenter)=\"mouseenter()\"\n (mouseleave)=\"mouseleave()\"\n class=\"sub-dropdown\"\n [style.visibility]=\"isPositionComputed ? '' : 'hidden'\"\n lxAutoclose\n (autoclose)=\"closeDropdown()\"\n #dropdown\n >\n <ng-content></ng-content>\n </ul>\n</ng-template>\n", styles: [".sub-dropdown{height:100%;padding:0;margin:0;background-color:#fff;border:solid 1px #e1e5eb;border-radius:3px;box-shadow:0 8px 12px 2px #00000026;text-align:left;list-style:none;max-height:50vh;overflow-y:auto}\n"], dependencies: [{ 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"] }] }); }
117
117
  }
118
118
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: CdkOptionsSubDropdownComponent, decorators: [{
119
119
  type: Component,
120
- args: [{ selector: 'lx-cdk-options-sub-dropdown', standalone: true, imports: [CdkConnectedOverlay, AutocloseDirective], template: "<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger.elementRef\" [cdkConnectedOverlayOpen]=\"open\">\n <ul\n (mouseenter)=\"mouseenter()\"\n (mouseleave)=\"mouseleave()\"\n class=\"sub-dropdown\"\n [style.visibility]=\"isPositionComputed ? '' : 'hidden'\"\n lxAutoclose\n (autoclose)=\"closeDropdown()\"\n #dropdown\n >\n <ng-content />\n </ul>\n</ng-template>\n", styles: [".sub-dropdown{height:100%;padding:0;margin:0;background-color:#fff;border:solid 1px #e1e5eb;border-radius:3px;box-shadow:0 8px 12px 2px #00000026;text-align:left;list-style:none;max-height:50vh;overflow-y:auto}\n"] }]
120
+ args: [{ selector: 'lx-cdk-options-sub-dropdown', standalone: true, imports: [CdkConnectedOverlay, AutocloseDirective], template: "<ng-template cdkConnectedOverlay [cdkConnectedOverlayOrigin]=\"trigger.elementRef\" [cdkConnectedOverlayOpen]=\"open\">\n <ul\n (mouseenter)=\"mouseenter()\"\n (mouseleave)=\"mouseleave()\"\n class=\"sub-dropdown\"\n [style.visibility]=\"isPositionComputed ? '' : 'hidden'\"\n lxAutoclose\n (autoclose)=\"closeDropdown()\"\n #dropdown\n >\n <ng-content></ng-content>\n </ul>\n</ng-template>\n", styles: [".sub-dropdown{height:100%;padding:0;margin:0;background-color:#fff;border:solid 1px #e1e5eb;border-radius:3px;box-shadow:0 8px 12px 2px #00000026;text-align:left;list-style:none;max-height:50vh;overflow-y:auto}\n"] }]
121
121
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { trigger: [{
122
122
  type: Input
123
123
  }], align: [{
@@ -132,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
132
132
  type: ViewChild,
133
133
  args: ['dropdown']
134
134
  }] } });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW9wdGlvbnMtc3ViLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL2NvbXBvbmVudHMvY2RrLW9wdGlvbnMtc3ViLWRyb3Bkb3duL2Nkay1vcHRpb25zLXN1Yi1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2Nkay1vcHRpb25zLXN1Yi1kcm9wZG93bi9jZGstb3B0aW9ucy1zdWItZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFxQixNQUFNLHNCQUFzQixDQUFDO0FBQzlFLE9BQU8sRUFHTCxTQUFTLEVBQ1QsZUFBZSxFQUVmLEtBQUssRUFHTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRTdELE1BQU0sb0JBQW9CLEdBQXNCO0lBQzlDLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsT0FBTyxFQUFFLEtBQUs7SUFDZCxRQUFR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QU0sRUFBRSxlQUFlLENBQUMsWUFBWTtvQkFDcEMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxXQUFXO2lCQUNuQyxDQUFDLENBQUM7Z0JBRUgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7WUFDakMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ1A7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OEdBL0dVLDhCQUE4QjtrR0FBOUIsOEJBQThCLCtKQUl4QixlQUFlLHlGQUNyQixtQkFBbUIsZ0pDakVoQywwWkFhQSw4UUQ2Q1ksbUJBQW1CLDQrQkFBRSxrQkFBa0I7OzJGQUV0Qyw4QkFBOEI7a0JBUDFDLFNBQVM7K0JBQ0UsNkJBQTZCLGNBRzNCLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLGtCQUFrQixDQUFDO3NGQUd6QyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVtRCxPQUFPO3NCQUEvRCxlQUFlO3VCQUFDLGVBQWUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBQ3ZCLE9BQU87c0JBQXRDLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUNQLGlCQUFpQjtzQkFBdkMsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrQ29ubmVjdGVkT3ZlcmxheSwgQ29ubmVjdGVkUG9zaXRpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgZnJvbUV2ZW50LCBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkZWxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEF1dG9jbG9zZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUtdWkvZGlyZWN0aXZlcy9hdXRvY2xvc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IGV4ZWN1dGVPbk5leHRUaWNrIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21pc2MtaGVscGVycyc7XG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9vcHRpb24vb3B0aW9uLmNvbXBvbmVudCc7XG5cbmNvbnN0IEJPVFRPTV9MRUZUX1BPU0lUSU9OOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgb3ZlcmxheVg6ICdlbmQnLFxuICBvcmlnaW5ZOiAndG9wJyxcbiAgb3ZlcmxheVk6ICd0b3AnLFxuICBvZmZzZXRYOiAtNFxufTtcblxuY29uc3QgQk9UVE9NX1JJR0hUX1BPU0lUSU9OOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgb3JpZ2luWDogJ2VuZCcsXG4gIG92ZXJsYXlYOiAnc3RhcnQnLFxuICBvcmlnaW5ZOiAndG9wJyxcbiAgb3ZlcmxheVk6ICd0b3AnLFxuICBvZmZzZXRYOiA0XG59O1xuXG5jb25zdCBUT1BfTEVGVF9QT1NJVElPTjogQ29ubmVjdGVkUG9zaXRpb24gPSB7XG4gIG9yaWdpblg6ICdzdGFydCcsXG4gIG92ZXJsYXlYOiAnZW5kJyxcbiAgb3JpZ2luWTogJ2JvdHRvbScsXG4gIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgb2Zmc2V0WDogLTRcbn07XG5cbmNvbnN0IFRPUF9SSUdIVF9QT1NJVElPTjogQ29ubmVjdGVkUG9zaXRpb24gPSB7XG4gIG9yaWdpblg6ICdlbmQnLFxuICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgb3JpZ2luWTogJ2JvdHRvbScsXG4gIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgb2Zmc2V0WDogNFxufTtcblxuY29uc3QgTEVGVF9BTElHTl9QT1NJVElPTlM6IENvbm5lY3RlZFBvc2l0aW9uW10gPSBbQk9UVE9NX0xFRlRfUE9TSVRJT04sIFRPUF9MRUZUX1BPU0lUSU9OLCBCT1RUT01fUklHSFRfUE9TSVRJT04sIFRPUF9SSUdIVF9QT1NJVElPTl07XG5jb25zdCBSSUdIVF9BTElHTl9QT1NJVElPTlM6IENvbm5lY3RlZFBvc2l0aW9uW10gPSBbQk9UVE9NX1JJR0hUX1BPU0lUSU9OLCBUT1BfUklHSFRfUE9TSVRJT04sIEJPVFRPTV9MRUZUX1BPU0lUSU9OLCBUT1BfTEVGVF9QT1NJVElPTl07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LWNkay1vcHRpb25zLXN1Yi1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnY2RrLW9wdGlvbnMtc3ViLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2Nkay1vcHRpb25zLXN1Yi1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ2RrQ29ubmVjdGVkT3ZlcmxheSwgQXV0b2Nsb3NlRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBDZGtPcHRpb25zU3ViRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB0cmlnZ2VyITogT3B0aW9uQ29tcG9uZW50O1xuICBASW5wdXQoKSBhbGlnbjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdyaWdodCc7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihPcHRpb25Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgb3B0aW9ucyE6IFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ+O1xuICBAVmlld0NoaWxkKENka0Nvbm5lY3RlZE92ZXJsYXkpIG92ZXJsYXkhOiBDZGtDb25uZWN0ZWRPdmVybGF5O1xuICBAVmlld0NoaWxkKCdkcm9wZG93bicpIGRyb3Bkb3duQ29udGFpbmVyITogRWxlbWVudFJlZjtcblxuICBvcGVuID0gZmFsc2U7XG4gIGlzUG9zaXRpb25Db21wdXRlZCA9IHRydWU7XG5cbiAgcHJpdmF0ZSBtb3VzZUluc2lkZSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIHJlYWRvbmx5IGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBtb3VzZWVudGVyKCkge1xuICAgIHRoaXMubW91c2VJbnNpZGUkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBtb3VzZWxlYXZlKCkge1xuICAgIHRoaXMubW91c2VJbnNpZGUkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyBUbyBhdm9pZCBgRXhwcmVzc2lvbiBoYXMgY2hhbmdlZCBhZnRlciBpdCB3YXMgY2hlY2tlZGBcbiAgICBleGVjdXRlT25OZXh0VGljaygoKSA9PiB7XG4gICAgICB0aGlzLnRyaWdnZXIuaGFzU3ViZHJvcGRvd24gPSB0cnVlO1xuICAgICAgdGhpcy5vdmVybGF5LnBvc2l0aW9ucyA9IHRoaXMuYWxpZ24gPT09ICdsZWZ0JyA/IExFRlRfQUxJR05fUE9TSVRJT05TIDogUklHSFRfQUxJR05fUE9TSVRJT05TO1xuICAgIH0pO1xuXG4gICAgbWVyZ2UodGhpcy5zaG93QnlNb3VzZSgpLCB0aGlzLnNob3dCeUtleWJvYXJkKCkpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHNob3cpID0+IHtcbiAgICAgICAgdGhpcy5vcGVuID0gc2hvdztcbiAgICAgICAgdGhpcy5yZWxvYWRPdmVybGF5UG9zaXRpb24odGhpcy5vcGVuKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5vcHRpb25zLmNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBzdGFydFdpdGgodGhpcy5vcHRpb25zKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IG1lcmdlKC4uLnRoaXMub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLnNlbGVjdCksIC4uLnRoaXMub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLnNlbGVjdGVkQ2xpY2spKSksXG4gICAgICAgIGRlbGF5KDApLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNob3dCeUtleWJvYXJkKCkge1xuICAgIGNvbnN0IG9wdGlvbkNoYW5nZSQgPSB0aGlzLm9wdGlvbnMuY2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKHRoaXMub3B0aW9ucyksXG4gICAgICBtYXAoKG9wdGlvbnM6IFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ+KSA9PiBvcHRpb25zLnRvQXJyYXkoKSksXG4gICAgICBtYXAoKG9wdGlvbnMpID0+XG4gICAgICAgIG9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICBvcHRpb24uaXNTdWJvcHRpb24gPSB0cnVlO1xuICAgICAgICAgIHJldHVybiBvcHRpb247XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcblxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFt0aGlzLnRyaWdnZXIuaGlnaGxpZ2h0LmFzT2JzZXJ2YWJsZSgpLCBvcHRpb25DaGFuZ2UkXSkucGlwZShcbiAgICAgIGRlbGF5KDApLCAvLyBOZWVkIHRpY2sgZGVsYXkgdG8gZ2V0IG9wdGlvbiBoaWdobGlnaHRlZCBhbmQgZmlsdGVyIGl0IG91dCBhZnRlclxuICAgICAgbWFwKChbaXNIaWdobGlnaHRlZCwgb3B0aW9uc10pID0+IGlzSGlnaGxpZ2h0ZWQgfHwgb3B0aW9ucy5zb21lKChvcHRpb24pID0+IG9wdGlvbi5pc0hpZ2hsaWdodGVkKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93QnlNb3VzZSgpIHtcbiAgICBjb25zdCBtb3VzZUVudGVyVHJpZ2dlciQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy50cmlnZ2VyLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlZW50ZXInKTtcbiAgICBjb25zdCBtb3VzZUxlYXZlVHJpZ2dlciQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy50cmlnZ2VyLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlbGVhdmUnKTtcblxuICAgIGNvbnN0IHNob3dPbkVudGVyTW91c2UkID0gbW91c2VFbnRlclRyaWdnZXIkLnBpcGUobWFwKCgpID0+IHRydWUpKTtcbiAgICBjb25zdCBoaWRlT25MZWF2ZU1vdXNlJCA9IG1vdXNlTGVhdmVUcmlnZ2VyJC5waXBlKG1hcCgoKSA9PiBmYWxzZSkpO1xuXG4gICAgLy8gcmVhY3QgdG8gdHJpZ2dlciBtb3VzZSBsZWF2ZSBldmVudHMsIGFuZCBtb3VzZSBlbnRlciBldmVudHMgaW4gdGhlIHN1Yi1kcm9wZG93bi4gV2UnbGwgdXNlIGEgMzAwbXNcbiAgICAvLyBkZWJvdW5jZSwgc28gdGhhdCB3aGlsZSBuYXZpZ2F0aW5nIGZyb20gdGhlIHRyaWdnZXIgdG8gdGhlIHN1Yi1kcm9wZG93biwgYWxsIHRoZSBpbnRlcm1lZGlhdGUgZXZlbnRzXG4gICAgLy8gYXJlIGlnbm9yZWQuXG4gICAgY29uc3Qgc2hvd1N1YmRyb3Bkb3duJCA9IG1lcmdlKGhpZGVPbkxlYXZlTW91c2UkLCB0aGlzLm1vdXNlSW5zaWRlJCkucGlwZShkZWJvdW5jZVRpbWUoMzAwKSk7XG5cbiAgICBjb25zdCBzaG93T25FbnRlclN1YmRyb3Bkb3duJCA9IG1vdXNlRW50ZXJUcmlnZ2VyJC5waXBlKHN3aXRjaE1hcCgoKSA9PiBzaG93U3ViZHJvcGRvd24kKSk7XG5cbiAgICByZXR1cm4gbWVyZ2Uoc2hvd09uRW50ZXJNb3VzZSQsIHNob3dPbkVudGVyU3ViZHJvcGRvd24kKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVsb2FkT3ZlcmxheVBvc2l0aW9uKG9wZW46IGJvb2xlYW4pIHtcbiAgICAvLyBmb3JjZSBhIHJlbmRlcmluZyBzbyB0aGF0IHRoZSBkcm9wZG93biBjb250YWluZXIncyBkaW1lbnNpb25zIGFyZSBjb21wdXRlZC5cbiAgICB0aGlzLmNoYW5nZURldGVjdGlvbi5tYXJrRm9yQ2hlY2soKTtcbiAgICBpZiAob3BlbiAmJiB0aGlzLmRyb3Bkb3duQ29udGFpbmVyKSB7XG4gICAgICB0aGlzLmlzUG9zaXRpb25Db21wdXRlZCA9IGZhbHNlO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRyb3Bkb3duRWxlbWVudCA9IHRoaXMuZHJvcGRvd25Db250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICAgICAgdGhpcy5vdmVybGF5Lm92ZXJsYXlSZWYudXBkYXRlU2l6ZSh7XG4gICAgICAgICAgaGVpZ2h0OiBkcm9wZG93bkVsZW1lbnQub2Zmc2V0SGVpZ2h0LFxuICAgICAgICAgIHdpZHRoOiBkcm9wZG93bkVsZW1lbnQub2Zmc2V0V2lkdGhcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5vdmVybGF5Lm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgdGhpcy5pc1Bvc2l0aW9uQ29tcHV0ZWQgPSB0cnVlO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VEcm9wZG93bigpIHtcbiAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLm1vdXNlSW5zaWRlJC5uZXh0KGZhbHNlKTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIGNka0Nvbm5lY3RlZE92ZXJsYXkgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwidHJpZ2dlci5lbGVtZW50UmVmXCIgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cIm9wZW5cIj5cbiAgPHVsXG4gICAgKG1vdXNlZW50ZXIpPVwibW91c2VlbnRlcigpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJtb3VzZWxlYXZlKClcIlxuICAgIGNsYXNzPVwic3ViLWRyb3Bkb3duXCJcbiAgICBbc3R5bGUudmlzaWJpbGl0eV09XCJpc1Bvc2l0aW9uQ29tcHV0ZWQgPyAnJyA6ICdoaWRkZW4nXCJcbiAgICBseEF1dG9jbG9zZVxuICAgIChhdXRvY2xvc2UpPVwiY2xvc2VEcm9wZG93bigpXCJcbiAgICAjZHJvcGRvd25cbiAgPlxuICAgIDxuZy1jb250ZW50IC8+XG4gIDwvdWw+XG48L25nLXRlbXBsYXRlPlxuIl19
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLW9wdGlvbnMtc3ViLWRyb3Bkb3duLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9zcmMvbGliL2Zvcm1zLXVpL2NvbXBvbmVudHMvY2RrLW9wdGlvbnMtc3ViLWRyb3Bkb3duL2Nkay1vcHRpb25zLXN1Yi1kcm9wZG93bi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3Jtcy11aS9jb21wb25lbnRzL2Nkay1vcHRpb25zLXN1Yi1kcm9wZG93bi9jZGstb3B0aW9ucy1zdWItZHJvcGRvd24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLG1CQUFtQixFQUFxQixNQUFNLHNCQUFzQixDQUFDO0FBQzlFLE9BQU8sRUFHTCxTQUFTLEVBQ1QsZUFBZSxFQUVmLEtBQUssRUFHTCxTQUFTLEVBQ1YsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNqSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBRTdELE1BQU0sb0JBQW9CLEdBQXNCO0lBQzlDLE9BQU8sRUFBRSxPQUFPO0lBQ2hCLFFBQVEsRUFBRSxLQUFLO0lBQ2YsT0FBTyxFQUFFLEtBQUs7SUFDZCxRQUFR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QU0sRUFBRSxlQUFlLENBQUMsWUFBWTtvQkFDcEMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxXQUFXO2lCQUNuQyxDQUFDLENBQUM7Z0JBRUgsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLENBQUM7Z0JBQ3pDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7WUFDakMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1NBQ1A7SUFDSCxDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ2hDLENBQUM7OEdBL0dVLDhCQUE4QjtrR0FBOUIsOEJBQThCLCtKQUl4QixlQUFlLHlGQUNyQixtQkFBbUIsZ0pDakVoQyxxYUFhQSw4UUQ2Q1ksbUJBQW1CLDQrQkFBRSxrQkFBa0I7OzJGQUV0Qyw4QkFBOEI7a0JBUDFDLFNBQVM7K0JBQ0UsNkJBQTZCLGNBRzNCLElBQUksV0FDUCxDQUFDLG1CQUFtQixFQUFFLGtCQUFrQixDQUFDO3NGQUd6QyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUVtRCxPQUFPO3NCQUEvRCxlQUFlO3VCQUFDLGVBQWUsRUFBRSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUU7Z0JBQ3ZCLE9BQU87c0JBQXRDLFNBQVM7dUJBQUMsbUJBQW1CO2dCQUNQLGlCQUFpQjtzQkFBdkMsU0FBUzt1QkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2RrQ29ubmVjdGVkT3ZlcmxheSwgQ29ubmVjdGVkUG9zaXRpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCwgZnJvbUV2ZW50LCBtZXJnZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBkZWxheSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc3RhcnRXaXRoLCBzd2l0Y2hNYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEF1dG9jbG9zZURpcmVjdGl2ZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUtdWkvZGlyZWN0aXZlcy9hdXRvY2xvc2UuZGlyZWN0aXZlJztcbmltcG9ydCB7IGV4ZWN1dGVPbk5leHRUaWNrIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21pc2MtaGVscGVycyc7XG5pbXBvcnQgeyBPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9vcHRpb24vb3B0aW9uLmNvbXBvbmVudCc7XG5cbmNvbnN0IEJPVFRPTV9MRUZUX1BPU0lUSU9OOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgb3ZlcmxheVg6ICdlbmQnLFxuICBvcmlnaW5ZOiAndG9wJyxcbiAgb3ZlcmxheVk6ICd0b3AnLFxuICBvZmZzZXRYOiAtNFxufTtcblxuY29uc3QgQk9UVE9NX1JJR0hUX1BPU0lUSU9OOiBDb25uZWN0ZWRQb3NpdGlvbiA9IHtcbiAgb3JpZ2luWDogJ2VuZCcsXG4gIG92ZXJsYXlYOiAnc3RhcnQnLFxuICBvcmlnaW5ZOiAndG9wJyxcbiAgb3ZlcmxheVk6ICd0b3AnLFxuICBvZmZzZXRYOiA0XG59O1xuXG5jb25zdCBUT1BfTEVGVF9QT1NJVElPTjogQ29ubmVjdGVkUG9zaXRpb24gPSB7XG4gIG9yaWdpblg6ICdzdGFydCcsXG4gIG92ZXJsYXlYOiAnZW5kJyxcbiAgb3JpZ2luWTogJ2JvdHRvbScsXG4gIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgb2Zmc2V0WDogLTRcbn07XG5cbmNvbnN0IFRPUF9SSUdIVF9QT1NJVElPTjogQ29ubmVjdGVkUG9zaXRpb24gPSB7XG4gIG9yaWdpblg6ICdlbmQnLFxuICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgb3JpZ2luWTogJ2JvdHRvbScsXG4gIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgb2Zmc2V0WDogNFxufTtcblxuY29uc3QgTEVGVF9BTElHTl9QT1NJVElPTlM6IENvbm5lY3RlZFBvc2l0aW9uW10gPSBbQk9UVE9NX0xFRlRfUE9TSVRJT04sIFRPUF9MRUZUX1BPU0lUSU9OLCBCT1RUT01fUklHSFRfUE9TSVRJT04sIFRPUF9SSUdIVF9QT1NJVElPTl07XG5jb25zdCBSSUdIVF9BTElHTl9QT1NJVElPTlM6IENvbm5lY3RlZFBvc2l0aW9uW10gPSBbQk9UVE9NX1JJR0hUX1BPU0lUSU9OLCBUT1BfUklHSFRfUE9TSVRJT04sIEJPVFRPTV9MRUZUX1BPU0lUSU9OLCBUT1BfTEVGVF9QT1NJVElPTl07XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2x4LWNkay1vcHRpb25zLXN1Yi1kcm9wZG93bicsXG4gIHRlbXBsYXRlVXJsOiAnY2RrLW9wdGlvbnMtc3ViLWRyb3Bkb3duLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2Nkay1vcHRpb25zLXN1Yi1kcm9wZG93bi5jb21wb25lbnQuc2NzcyddLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ2RrQ29ubmVjdGVkT3ZlcmxheSwgQXV0b2Nsb3NlRGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBDZGtPcHRpb25zU3ViRHJvcGRvd25Db21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKSB0cmlnZ2VyITogT3B0aW9uQ29tcG9uZW50O1xuICBASW5wdXQoKSBhbGlnbjogJ3JpZ2h0JyB8ICdsZWZ0JyA9ICdyaWdodCc7XG5cbiAgQENvbnRlbnRDaGlsZHJlbihPcHRpb25Db21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSkgb3B0aW9ucyE6IFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ+O1xuICBAVmlld0NoaWxkKENka0Nvbm5lY3RlZE92ZXJsYXkpIG92ZXJsYXkhOiBDZGtDb25uZWN0ZWRPdmVybGF5O1xuICBAVmlld0NoaWxkKCdkcm9wZG93bicpIGRyb3Bkb3duQ29udGFpbmVyITogRWxlbWVudFJlZjtcblxuICBvcGVuID0gZmFsc2U7XG4gIGlzUG9zaXRpb25Db21wdXRlZCA9IHRydWU7XG5cbiAgcHJpdmF0ZSBtb3VzZUluc2lkZSQgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIHJlYWRvbmx5IGRlc3Ryb3llZCQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3RvclJlZikge31cblxuICBtb3VzZWVudGVyKCkge1xuICAgIHRoaXMubW91c2VJbnNpZGUkLm5leHQodHJ1ZSk7XG4gIH1cblxuICBtb3VzZWxlYXZlKCkge1xuICAgIHRoaXMubW91c2VJbnNpZGUkLm5leHQoZmFsc2UpO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICAvLyBUbyBhdm9pZCBgRXhwcmVzc2lvbiBoYXMgY2hhbmdlZCBhZnRlciBpdCB3YXMgY2hlY2tlZGBcbiAgICBleGVjdXRlT25OZXh0VGljaygoKSA9PiB7XG4gICAgICB0aGlzLnRyaWdnZXIuaGFzU3ViZHJvcGRvd24gPSB0cnVlO1xuICAgICAgdGhpcy5vdmVybGF5LnBvc2l0aW9ucyA9IHRoaXMuYWxpZ24gPT09ICdsZWZ0JyA/IExFRlRfQUxJR05fUE9TSVRJT05TIDogUklHSFRfQUxJR05fUE9TSVRJT05TO1xuICAgIH0pO1xuXG4gICAgbWVyZ2UodGhpcy5zaG93QnlNb3VzZSgpLCB0aGlzLnNob3dCeUtleWJvYXJkKCkpXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcbiAgICAgIC5zdWJzY3JpYmUoKHNob3cpID0+IHtcbiAgICAgICAgdGhpcy5vcGVuID0gc2hvdztcbiAgICAgICAgdGhpcy5yZWxvYWRPdmVybGF5UG9zaXRpb24odGhpcy5vcGVuKTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5vcHRpb25zLmNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICBzdGFydFdpdGgodGhpcy5vcHRpb25zKSxcbiAgICAgICAgc3dpdGNoTWFwKCgpID0+IG1lcmdlKC4uLnRoaXMub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLnNlbGVjdCksIC4uLnRoaXMub3B0aW9ucy5tYXAoKG9wdGlvbikgPT4gb3B0aW9uLnNlbGVjdGVkQ2xpY2spKSksXG4gICAgICAgIGRlbGF5KDApLFxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMuY2xvc2VEcm9wZG93bigpO1xuICAgICAgfSk7XG4gIH1cblxuICBwcml2YXRlIHNob3dCeUtleWJvYXJkKCkge1xuICAgIGNvbnN0IG9wdGlvbkNoYW5nZSQgPSB0aGlzLm9wdGlvbnMuY2hhbmdlcy5waXBlKFxuICAgICAgc3RhcnRXaXRoKHRoaXMub3B0aW9ucyksXG4gICAgICBtYXAoKG9wdGlvbnM6IFF1ZXJ5TGlzdDxPcHRpb25Db21wb25lbnQ+KSA9PiBvcHRpb25zLnRvQXJyYXkoKSksXG4gICAgICBtYXAoKG9wdGlvbnMpID0+XG4gICAgICAgIG9wdGlvbnMubWFwKChvcHRpb24pID0+IHtcbiAgICAgICAgICBvcHRpb24uaXNTdWJvcHRpb24gPSB0cnVlO1xuICAgICAgICAgIHJldHVybiBvcHRpb247XG4gICAgICAgIH0pXG4gICAgICApXG4gICAgKTtcblxuICAgIHJldHVybiBjb21iaW5lTGF0ZXN0KFt0aGlzLnRyaWdnZXIuaGlnaGxpZ2h0LmFzT2JzZXJ2YWJsZSgpLCBvcHRpb25DaGFuZ2UkXSkucGlwZShcbiAgICAgIGRlbGF5KDApLCAvLyBOZWVkIHRpY2sgZGVsYXkgdG8gZ2V0IG9wdGlvbiBoaWdobGlnaHRlZCBhbmQgZmlsdGVyIGl0IG91dCBhZnRlclxuICAgICAgbWFwKChbaXNIaWdobGlnaHRlZCwgb3B0aW9uc10pID0+IGlzSGlnaGxpZ2h0ZWQgfHwgb3B0aW9ucy5zb21lKChvcHRpb24pID0+IG9wdGlvbi5pc0hpZ2hsaWdodGVkKSlcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBzaG93QnlNb3VzZSgpIHtcbiAgICBjb25zdCBtb3VzZUVudGVyVHJpZ2dlciQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy50cmlnZ2VyLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlZW50ZXInKTtcbiAgICBjb25zdCBtb3VzZUxlYXZlVHJpZ2dlciQgPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4odGhpcy50cmlnZ2VyLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCwgJ21vdXNlbGVhdmUnKTtcblxuICAgIGNvbnN0IHNob3dPbkVudGVyTW91c2UkID0gbW91c2VFbnRlclRyaWdnZXIkLnBpcGUobWFwKCgpID0+IHRydWUpKTtcbiAgICBjb25zdCBoaWRlT25MZWF2ZU1vdXNlJCA9IG1vdXNlTGVhdmVUcmlnZ2VyJC5waXBlKG1hcCgoKSA9PiBmYWxzZSkpO1xuXG4gICAgLy8gcmVhY3QgdG8gdHJpZ2dlciBtb3VzZSBsZWF2ZSBldmVudHMsIGFuZCBtb3VzZSBlbnRlciBldmVudHMgaW4gdGhlIHN1Yi1kcm9wZG93bi4gV2UnbGwgdXNlIGEgMzAwbXNcbiAgICAvLyBkZWJvdW5jZSwgc28gdGhhdCB3aGlsZSBuYXZpZ2F0aW5nIGZyb20gdGhlIHRyaWdnZXIgdG8gdGhlIHN1Yi1kcm9wZG93biwgYWxsIHRoZSBpbnRlcm1lZGlhdGUgZXZlbnRzXG4gICAgLy8gYXJlIGlnbm9yZWQuXG4gICAgY29uc3Qgc2hvd1N1YmRyb3Bkb3duJCA9IG1lcmdlKGhpZGVPbkxlYXZlTW91c2UkLCB0aGlzLm1vdXNlSW5zaWRlJCkucGlwZShkZWJvdW5jZVRpbWUoMzAwKSk7XG5cbiAgICBjb25zdCBzaG93T25FbnRlclN1YmRyb3Bkb3duJCA9IG1vdXNlRW50ZXJUcmlnZ2VyJC5waXBlKHN3aXRjaE1hcCgoKSA9PiBzaG93U3ViZHJvcGRvd24kKSk7XG5cbiAgICByZXR1cm4gbWVyZ2Uoc2hvd09uRW50ZXJNb3VzZSQsIHNob3dPbkVudGVyU3ViZHJvcGRvd24kKTtcbiAgfVxuXG4gIHByaXZhdGUgcmVsb2FkT3ZlcmxheVBvc2l0aW9uKG9wZW46IGJvb2xlYW4pIHtcbiAgICAvLyBmb3JjZSBhIHJlbmRlcmluZyBzbyB0aGF0IHRoZSBkcm9wZG93biBjb250YWluZXIncyBkaW1lbnNpb25zIGFyZSBjb21wdXRlZC5cbiAgICB0aGlzLmNoYW5nZURldGVjdGlvbi5tYXJrRm9yQ2hlY2soKTtcbiAgICBpZiAob3BlbiAmJiB0aGlzLmRyb3Bkb3duQ29udGFpbmVyKSB7XG4gICAgICB0aGlzLmlzUG9zaXRpb25Db21wdXRlZCA9IGZhbHNlO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRyb3Bkb3duRWxlbWVudCA9IHRoaXMuZHJvcGRvd25Db250YWluZXIubmF0aXZlRWxlbWVudDtcbiAgICAgICAgdGhpcy5vdmVybGF5Lm92ZXJsYXlSZWYudXBkYXRlU2l6ZSh7XG4gICAgICAgICAgaGVpZ2h0OiBkcm9wZG93bkVsZW1lbnQub2Zmc2V0SGVpZ2h0LFxuICAgICAgICAgIHdpZHRoOiBkcm9wZG93bkVsZW1lbnQub2Zmc2V0V2lkdGhcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5vdmVybGF5Lm92ZXJsYXlSZWYudXBkYXRlUG9zaXRpb24oKTtcbiAgICAgICAgdGhpcy5pc1Bvc2l0aW9uQ29tcHV0ZWQgPSB0cnVlO1xuICAgICAgfSwgMCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2VEcm9wZG93bigpIHtcbiAgICB0aGlzLm9wZW4gPSBmYWxzZTtcbiAgICB0aGlzLm1vdXNlSW5zaWRlJC5uZXh0KGZhbHNlKTtcbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIGNka0Nvbm5lY3RlZE92ZXJsYXkgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcmlnaW5dPVwidHJpZ2dlci5lbGVtZW50UmVmXCIgW2Nka0Nvbm5lY3RlZE92ZXJsYXlPcGVuXT1cIm9wZW5cIj5cbiAgPHVsXG4gICAgKG1vdXNlZW50ZXIpPVwibW91c2VlbnRlcigpXCJcbiAgICAobW91c2VsZWF2ZSk9XCJtb3VzZWxlYXZlKClcIlxuICAgIGNsYXNzPVwic3ViLWRyb3Bkb3duXCJcbiAgICBbc3R5bGUudmlzaWJpbGl0eV09XCJpc1Bvc2l0aW9uQ29tcHV0ZWQgPyAnJyA6ICdoaWRkZW4nXCJcbiAgICBseEF1dG9jbG9zZVxuICAgIChhdXRvY2xvc2UpPVwiY2xvc2VEcm9wZG93bigpXCJcbiAgICAjZHJvcGRvd25cbiAgPlxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgPC91bD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=