@updevs/components 1.0.0-alpha.51 → 1.0.0-alpha.53

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 (32) hide show
  1. package/dropdown/dropdown.component.d.ts +1 -0
  2. package/esm2022/dropdown/dropdown.component.mjs +11 -6
  3. package/esm2022/form/components/dynamic-field/dynamic-field.component.mjs +3 -3
  4. package/esm2022/form/models/select-field.model.mjs +1 -1
  5. package/esm2022/form-controls/select/components/single/select.component.mjs +9 -3
  6. package/esm2022/form-controls/select/models/abstractions/base-select.component.mjs +8 -5
  7. package/esm2022/list/list.component.mjs +4 -3
  8. package/esm2022/list/models/list-item.mjs +1 -1
  9. package/esm2022/list/models/list-item.model.mjs +7 -2
  10. package/esm2022/paginator/paginator.component.mjs +1 -1
  11. package/esm2022/popover/popover.directive.mjs +7 -5
  12. package/esm2022/table/components/filter-row/filter-row.component.mjs +1 -1
  13. package/fesm2022/updevs-components-dropdown.mjs +10 -5
  14. package/fesm2022/updevs-components-dropdown.mjs.map +1 -1
  15. package/fesm2022/updevs-components-form-controls-select.mjs +15 -6
  16. package/fesm2022/updevs-components-form-controls-select.mjs.map +1 -1
  17. package/fesm2022/updevs-components-form.mjs +2 -2
  18. package/fesm2022/updevs-components-form.mjs.map +1 -1
  19. package/fesm2022/updevs-components-list.mjs +9 -3
  20. package/fesm2022/updevs-components-list.mjs.map +1 -1
  21. package/fesm2022/updevs-components-paginator.mjs +1 -1
  22. package/fesm2022/updevs-components-paginator.mjs.map +1 -1
  23. package/fesm2022/updevs-components-popover.mjs +6 -4
  24. package/fesm2022/updevs-components-popover.mjs.map +1 -1
  25. package/fesm2022/updevs-components-table.mjs +1 -1
  26. package/fesm2022/updevs-components-table.mjs.map +1 -1
  27. package/form/models/select-field.model.d.ts +2 -1
  28. package/form-controls/select/components/single/select.component.d.ts +3 -1
  29. package/form-controls/select/models/abstractions/base-select.component.d.ts +1 -0
  30. package/list/models/list-item.d.ts +1 -0
  31. package/list/models/list-item.model.d.ts +1 -0
  32. package/package.json +30 -30
@@ -11,6 +11,9 @@ export class SelectComponent extends BaseSelectComponent {
11
11
  set selected(item) {
12
12
  this.currentSelection = item;
13
13
  }
14
+ get canTruncateText() {
15
+ return this.shouldTruncateSelectedText === true || this.shouldTruncateSelectedText === undefined;
16
+ }
14
17
  constructor() {
15
18
  super();
16
19
  /**
@@ -18,6 +21,7 @@ export class SelectComponent extends BaseSelectComponent {
18
21
  */
19
22
  this.useSystemStyle = false;
20
23
  this.shouldShowClearButton = true;
24
+ this.shouldTruncateSelectedText = true;
21
25
  this.isCompact = false;
22
26
  /**
23
27
  * Triggered when an item is selected.
@@ -53,15 +57,17 @@ export class SelectComponent extends BaseSelectComponent {
53
57
  this.selectedItem.emit(undefined);
54
58
  }
55
59
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
56
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SelectComponent, selector: "upd-select", inputs: { useSystemStyle: "useSystemStyle", shouldShowClearButton: "shouldShowClearButton", isCompact: "isCompact", selected: "selected" }, outputs: { selectedItem: "selectedItem" }, usesInheritance: true, ngImport: i0, template: "@if (!!labelText) {\n @if (!!hintText || !!hintTemplate()) {\n <div class=\"row g-2\">\n <div class=\"col-auto\">\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n </div>\n <div class=\"col-auto\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n }\n}\n\n@if (!useSystemStyle) {\n <div class=\"dropdown\" [attr.id]=\"name()\" [ngClass]=\"layoutClasses()\">\n @if (!labelText && (!!hintText || !!hintTemplate())) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n }\n\n <div #searchBox>\n <div #searchBoxChild [style.visibility]=\"isDropdownOpen ? 'visible' : 'hidden'\" class=\"select-search-box\">\n <upd-input [placeholder]=\"placeholder()\" [isInputGroupFlat]=\"true\" (valueChange)=\"search($event)\">\n <ng-template updInputPrepend>\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </ng-template>\n </upd-input>\n </div>\n </div>\n <upd-list #list [items]=\"listItems\" [maxHeight]=\"dropdownMaxHeight() + 'px'\" (selectedItem)=\"onSelectItem($event)\"\n [wrapperClasses]=\"dropdownClasses\" [isVisible]=\"isDropdownOpen\" [shouldOverflow]=\"true\" [shouldDisplayItemsCounter]=\"true\">\n </upd-list>\n </div>\n} @else {\n @if (!labelText && (!!hintText || !!hintTemplate())) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"contentDefaultStyleTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentDefaultStyleTpl\"></ng-template>\n }\n}\n\n<ng-template #contentTpl>\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\" [class.disabled]=\"isDisabled()\"\n [class.pe-none]=\"isDisabled()\" [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\" (click)=\"openDropdown()\">\n @if (!!currentSelection) {\n <span>{{ currentSelection.text }}</span>\n }\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (!!currentSelection && shouldShowClearButton) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"clearSelection()\"\n customClasses=\"link-secondary\">\n <upd-icon [model]=\"{tablerIcon:'x'}\"></upd-icon>\n </upd-button>\n }\n @if (!isLoading) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"openDropdown()\"\n customClasses=\"link-secondary ms-2\">\n <upd-icon [model]=\"{tablerIcon:'chevron-down'}\"></upd-icon>\n </upd-button>\n } @else {\n <div class=\"select-loader-wrapper\">\n <div class=\"spinner-border spinner-border-sm text-muted select-loader\" role=\"status\"></div>\n </div>\n }\n </div>\n </div>\n</ng-template>\n\n<ng-template #contentDefaultStyleTpl>\n <select class=\"form-select\" [class.compact]=\"isCompact\" [attr.placeholder]=\"placeholder()\" [attr.name]=\"name()\"\n [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\" (change)=\"onSystemSelect($event)\">\n @for (item of localItems; track item) {\n @if ((item.children?.length || 0) > 0) {\n <optgroup [label]=\"item.text\">\n @for (child of item.children; track child) {\n <option [attr.selected]=\"!!currentSelection && child.value === currentSelection.value ? true : undefined\"\n [value]=\"child.value\">\n {{ child.text }}\n </option>\n }\n </optgroup>\n } @else {\n <option [attr.selected]=\"!!currentSelection && item.value === currentSelection.value ? true : undefined\"\n [value]=\"item.value\">\n {{ item.text }}\n </option>\n }\n }\n </select>\n</ng-template>\n", styles: [".select-dropdown-content{position:absolute!important;background-color:var(--upd-card-bg);z-index:1;border:var(--upd-card-border-width) solid var(--upd-card-border-color)!important;border-radius:var(--upd-card-border-radius)!important;box-shadow:0 1px 1px #0000002e}.select-dropdown-content-open{display:block!important}.select-loader-wrapper{height:24px}.select-loader-wrapper .select-loader{height:24px;width:24px}.select-search-box{position:absolute;z-index:1;padding:.5rem;margin-top:-1px;background:var(--upd-body-bg);border:var(--upd-border-width) var(--upd-border-style) var(--upd-border-color)}.remove-bottom-radius{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.remove-top-radius{border-top-left-radius:0!important;border-top-right-radius:0!important}.compact{padding:.25rem 2rem .25rem .75rem!important}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ListComponent, selector: "upd-list", inputs: ["items", "shouldOverflow", "isFlush", "isVisible", "isHoverable", "shouldDisplayItemsCounter", "wrapperClasses", "maxHeight"], outputs: ["checkboxChanged", "selectedItem"] }, { kind: "component", type: i3.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "directive", type: i3.InputPrependDirective, selector: "ng-template[updInputPrepend]" }, { kind: "component", type: i4.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i5.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "directive", type: i6.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
60
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: SelectComponent, selector: "upd-select", inputs: { useSystemStyle: "useSystemStyle", shouldShowClearButton: "shouldShowClearButton", shouldTruncateSelectedText: "shouldTruncateSelectedText", isCompact: "isCompact", selected: "selected" }, outputs: { selectedItem: "selectedItem" }, usesInheritance: true, ngImport: i0, template: "@if (!!labelText) {\n @if (!!hintText || !!hintTemplate()) {\n <div class=\"row g-2\">\n <div class=\"col-auto\">\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n </div>\n <div class=\"col-auto\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n }\n}\n\n@if (!useSystemStyle) {\n <div class=\"dropdown\" [attr.id]=\"name()\" [ngClass]=\"layoutClasses()\">\n @if (!labelText && (!!hintText || !!hintTemplate())) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n }\n\n <div #searchBox>\n <div #searchBoxChild [style.visibility]=\"isDropdownOpen ? 'visible' : 'hidden'\" class=\"select-search-box\">\n <upd-input [placeholder]=\"placeholder()\" [isInputGroupFlat]=\"true\" (valueChange)=\"search($event)\">\n <ng-template updInputPrepend>\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </ng-template>\n </upd-input>\n </div>\n </div>\n <upd-list #list [items]=\"listItems\" [maxHeight]=\"dropdownMaxHeight() + 'px'\" (selectedItem)=\"onSelectItem($event)\"\n [wrapperClasses]=\"dropdownClasses\" [isVisible]=\"isDropdownOpen\" [shouldOverflow]=\"true\" [shouldDisplayItemsCounter]=\"true\">\n </upd-list>\n </div>\n} @else {\n @if (!labelText && (!!hintText || !!hintTemplate())) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"contentDefaultStyleTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentDefaultStyleTpl\"></ng-template>\n }\n}\n\n<ng-template #contentTpl>\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\" [class.disabled]=\"isDisabled()\"\n [class.pe-none]=\"isDisabled()\" [class.select-cursor-default]=\"!isDisabled()\"\n [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\" (click)=\"openDropdown()\">\n @if (!!currentSelection) {\n <span [ngClass]=\"canTruncateText ? 'd-block text-truncate' : ''\">{{ currentSelection.text }}</span>\n }\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (!!currentSelection && shouldShowClearButton) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"clearSelection()\"\n customClasses=\"link-secondary\" [class.select-cursor-pointer]=\"!isDisabled()\">\n <upd-icon [model]=\"{tablerIcon:'x'}\"></upd-icon>\n </upd-button>\n }\n @if (!isLoading) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"openDropdown()\"\n customClasses=\"link-secondary ms-2\" [class.select-cursor-pointer]=\"!isDisabled()\">\n <upd-icon [model]=\"{tablerIcon:'chevron-down'}\"></upd-icon>\n </upd-button>\n } @else {\n <div class=\"select-loader-wrapper\">\n <div class=\"spinner-border spinner-border-sm text-muted select-loader\" role=\"status\"></div>\n </div>\n }\n </div>\n </div>\n</ng-template>\n\n<ng-template #contentDefaultStyleTpl>\n <select class=\"form-select\" [class.compact]=\"isCompact\" [attr.placeholder]=\"placeholder()\" [attr.name]=\"name()\"\n [class.select-cursor-pointer]=\"!isDisabled()\" [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\"\n (change)=\"onSystemSelect($event)\">\n @for (item of localItems; track item) {\n @if ((item.children?.length || 0) > 0) {\n <optgroup [label]=\"item.text\">\n @for (child of item.children; track child) {\n <option [attr.selected]=\"!!currentSelection && child.value === currentSelection.value ? true : undefined\"\n [value]=\"child.value\">\n {{ child.text }}\n </option>\n }\n </optgroup>\n } @else {\n <option [attr.selected]=\"!!currentSelection && item.value === currentSelection.value ? true : undefined\"\n [value]=\"item.value\">\n {{ item.text }}\n </option>\n }\n }\n </select>\n</ng-template>\n", styles: [".select-dropdown-content{position:absolute!important;background-color:var(--upd-card-bg);z-index:1;border:var(--upd-card-border-width) solid var(--upd-card-border-color)!important;border-radius:var(--upd-card-border-radius)!important;box-shadow:0 1px 1px #0000002e}.select-dropdown-content-open{display:block!important}.select-loader-wrapper{height:24px}.select-loader-wrapper .select-loader{height:24px;width:24px}.select-search-box{position:absolute;z-index:1;padding:.5rem;margin-top:-1px;background:var(--upd-body-bg);border:var(--upd-border-width) var(--upd-border-style) var(--upd-border-color)}.remove-bottom-radius{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.remove-top-radius{border-top-left-radius:0!important;border-top-right-radius:0!important}.compact{padding:.25rem 2rem .25rem .75rem!important}.select-cursor-default{cursor:default}.select-cursor-pointer{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2.ListComponent, selector: "upd-list", inputs: ["items", "shouldOverflow", "isFlush", "isVisible", "isHoverable", "shouldDisplayItemsCounter", "wrapperClasses", "maxHeight"], outputs: ["checkboxChanged", "selectedItem"] }, { kind: "component", type: i3.InputComponent, selector: "upd-input", inputs: ["type", "mask", "maskConfig", "value", "size", "customClasses", "wrapperClasses", "maxLength", "isPlainText", "isReadOnly", "isLoading", "isRound", "isFlush", "isInputGroupFlat", "isPrependButton", "isAppendButton", "isFloating", "loaderPosition", "prependIconModel", "appendIconModel", "isValidationStatusLight", "layout"], outputs: ["valueChange", "blurred", "keyDown", "keyDownEsc", "keyUpEnter"] }, { kind: "directive", type: i3.InputPrependDirective, selector: "ng-template[updInputPrepend]" }, { kind: "component", type: i4.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i5.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "directive", type: i6.PopoverDirective, selector: "[updPopover]", inputs: ["updPopover", "updPopoverTitle", "updPopoverTitleTemplate", "updPopoverTemplate", "updPopoverPlacement", "updPopoverCustomClasses", "updPopoverActAsTooltip"] }], encapsulation: i0.ViewEncapsulation.None }); }
57
61
  }
58
62
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: SelectComponent, decorators: [{
59
63
  type: Component,
60
- args: [{ selector: 'upd-select', encapsulation: ViewEncapsulation.None, template: "@if (!!labelText) {\n @if (!!hintText || !!hintTemplate()) {\n <div class=\"row g-2\">\n <div class=\"col-auto\">\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n </div>\n <div class=\"col-auto\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n }\n}\n\n@if (!useSystemStyle) {\n <div class=\"dropdown\" [attr.id]=\"name()\" [ngClass]=\"layoutClasses()\">\n @if (!labelText && (!!hintText || !!hintTemplate())) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n }\n\n <div #searchBox>\n <div #searchBoxChild [style.visibility]=\"isDropdownOpen ? 'visible' : 'hidden'\" class=\"select-search-box\">\n <upd-input [placeholder]=\"placeholder()\" [isInputGroupFlat]=\"true\" (valueChange)=\"search($event)\">\n <ng-template updInputPrepend>\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </ng-template>\n </upd-input>\n </div>\n </div>\n <upd-list #list [items]=\"listItems\" [maxHeight]=\"dropdownMaxHeight() + 'px'\" (selectedItem)=\"onSelectItem($event)\"\n [wrapperClasses]=\"dropdownClasses\" [isVisible]=\"isDropdownOpen\" [shouldOverflow]=\"true\" [shouldDisplayItemsCounter]=\"true\">\n </upd-list>\n </div>\n} @else {\n @if (!labelText && (!!hintText || !!hintTemplate())) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"contentDefaultStyleTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentDefaultStyleTpl\"></ng-template>\n }\n}\n\n<ng-template #contentTpl>\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\" [class.disabled]=\"isDisabled()\"\n [class.pe-none]=\"isDisabled()\" [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\" (click)=\"openDropdown()\">\n @if (!!currentSelection) {\n <span>{{ currentSelection.text }}</span>\n }\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (!!currentSelection && shouldShowClearButton) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"clearSelection()\"\n customClasses=\"link-secondary\">\n <upd-icon [model]=\"{tablerIcon:'x'}\"></upd-icon>\n </upd-button>\n }\n @if (!isLoading) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"openDropdown()\"\n customClasses=\"link-secondary ms-2\">\n <upd-icon [model]=\"{tablerIcon:'chevron-down'}\"></upd-icon>\n </upd-button>\n } @else {\n <div class=\"select-loader-wrapper\">\n <div class=\"spinner-border spinner-border-sm text-muted select-loader\" role=\"status\"></div>\n </div>\n }\n </div>\n </div>\n</ng-template>\n\n<ng-template #contentDefaultStyleTpl>\n <select class=\"form-select\" [class.compact]=\"isCompact\" [attr.placeholder]=\"placeholder()\" [attr.name]=\"name()\"\n [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\" (change)=\"onSystemSelect($event)\">\n @for (item of localItems; track item) {\n @if ((item.children?.length || 0) > 0) {\n <optgroup [label]=\"item.text\">\n @for (child of item.children; track child) {\n <option [attr.selected]=\"!!currentSelection && child.value === currentSelection.value ? true : undefined\"\n [value]=\"child.value\">\n {{ child.text }}\n </option>\n }\n </optgroup>\n } @else {\n <option [attr.selected]=\"!!currentSelection && item.value === currentSelection.value ? true : undefined\"\n [value]=\"item.value\">\n {{ item.text }}\n </option>\n }\n }\n </select>\n</ng-template>\n", styles: [".select-dropdown-content{position:absolute!important;background-color:var(--upd-card-bg);z-index:1;border:var(--upd-card-border-width) solid var(--upd-card-border-color)!important;border-radius:var(--upd-card-border-radius)!important;box-shadow:0 1px 1px #0000002e}.select-dropdown-content-open{display:block!important}.select-loader-wrapper{height:24px}.select-loader-wrapper .select-loader{height:24px;width:24px}.select-search-box{position:absolute;z-index:1;padding:.5rem;margin-top:-1px;background:var(--upd-body-bg);border:var(--upd-border-width) var(--upd-border-style) var(--upd-border-color)}.remove-bottom-radius{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.remove-top-radius{border-top-left-radius:0!important;border-top-right-radius:0!important}.compact{padding:.25rem 2rem .25rem .75rem!important}\n"] }]
64
+ args: [{ selector: 'upd-select', encapsulation: ViewEncapsulation.None, template: "@if (!!labelText) {\n @if (!!hintText || !!hintTemplate()) {\n <div class=\"row g-2\">\n <div class=\"col-auto\">\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n </div>\n <div class=\"col-auto\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <label [ngClass]=\"labelSizeClasses\">{{ labelText }}</label>\n }\n}\n\n@if (!useSystemStyle) {\n <div class=\"dropdown\" [attr.id]=\"name()\" [ngClass]=\"layoutClasses()\">\n @if (!labelText && (!!hintText || !!hintTemplate())) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentTpl\"></ng-template>\n }\n\n <div #searchBox>\n <div #searchBoxChild [style.visibility]=\"isDropdownOpen ? 'visible' : 'hidden'\" class=\"select-search-box\">\n <upd-input [placeholder]=\"placeholder()\" [isInputGroupFlat]=\"true\" (valueChange)=\"search($event)\">\n <ng-template updInputPrepend>\n <upd-icon tablerIcon=\"search\"></upd-icon>\n </ng-template>\n </upd-input>\n </div>\n </div>\n <upd-list #list [items]=\"listItems\" [maxHeight]=\"dropdownMaxHeight() + 'px'\" (selectedItem)=\"onSelectItem($event)\"\n [wrapperClasses]=\"dropdownClasses\" [isVisible]=\"isDropdownOpen\" [shouldOverflow]=\"true\" [shouldDisplayItemsCounter]=\"true\">\n </upd-list>\n </div>\n} @else {\n @if (!labelText && (!!hintText || !!hintTemplate())) {\n <div class=\"row g-2\">\n <div class=\"col\">\n <ng-template [ngTemplateOutlet]=\"contentDefaultStyleTpl\"></ng-template>\n </div>\n <div class=\"col-auto align-self-center\">\n <span class=\"form-help\" [updPopover]=\"hintText\" [updPopoverTemplate]=\"hintTemplate()\"\n [updPopoverActAsTooltip]=\"hintAsTooltip()\">\n ?\n </span>\n </div>\n </div>\n } @else {\n <ng-template [ngTemplateOutlet]=\"contentDefaultStyleTpl\"></ng-template>\n }\n}\n\n<ng-template #contentTpl>\n <div #componentBox class=\"input-group input-group-flat\">\n <div class=\"form-control\" [class.remove-bottom-radius]=\"isDropdownOpen\" [class.disabled]=\"isDisabled()\"\n [class.pe-none]=\"isDisabled()\" [class.select-cursor-default]=\"!isDisabled()\"\n [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\" (click)=\"openDropdown()\">\n @if (!!currentSelection) {\n <span [ngClass]=\"canTruncateText ? 'd-block text-truncate' : ''\">{{ currentSelection.text }}</span>\n }\n </div>\n <div class=\"input-group-text\" [class.remove-bottom-radius]=\"isDropdownOpen\">\n @if (!!currentSelection && shouldShowClearButton) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"clearSelection()\"\n customClasses=\"link-secondary\" [class.select-cursor-pointer]=\"!isDisabled()\">\n <upd-icon [model]=\"{tablerIcon:'x'}\"></upd-icon>\n </upd-button>\n }\n @if (!isLoading) {\n <upd-button [shouldIgnoreBtnClass]=\"true\" [isDisabled]=\"isDisabled()\" (clicked)=\"openDropdown()\"\n customClasses=\"link-secondary ms-2\" [class.select-cursor-pointer]=\"!isDisabled()\">\n <upd-icon [model]=\"{tablerIcon:'chevron-down'}\"></upd-icon>\n </upd-button>\n } @else {\n <div class=\"select-loader-wrapper\">\n <div class=\"spinner-border spinner-border-sm text-muted select-loader\" role=\"status\"></div>\n </div>\n }\n </div>\n </div>\n</ng-template>\n\n<ng-template #contentDefaultStyleTpl>\n <select class=\"form-select\" [class.compact]=\"isCompact\" [attr.placeholder]=\"placeholder()\" [attr.name]=\"name()\"\n [class.select-cursor-pointer]=\"!isDisabled()\" [attr.disabled]=\"isDisabled() ? 'disabled' : undefined\"\n (change)=\"onSystemSelect($event)\">\n @for (item of localItems; track item) {\n @if ((item.children?.length || 0) > 0) {\n <optgroup [label]=\"item.text\">\n @for (child of item.children; track child) {\n <option [attr.selected]=\"!!currentSelection && child.value === currentSelection.value ? true : undefined\"\n [value]=\"child.value\">\n {{ child.text }}\n </option>\n }\n </optgroup>\n } @else {\n <option [attr.selected]=\"!!currentSelection && item.value === currentSelection.value ? true : undefined\"\n [value]=\"item.value\">\n {{ item.text }}\n </option>\n }\n }\n </select>\n</ng-template>\n", styles: [".select-dropdown-content{position:absolute!important;background-color:var(--upd-card-bg);z-index:1;border:var(--upd-card-border-width) solid var(--upd-card-border-color)!important;border-radius:var(--upd-card-border-radius)!important;box-shadow:0 1px 1px #0000002e}.select-dropdown-content-open{display:block!important}.select-loader-wrapper{height:24px}.select-loader-wrapper .select-loader{height:24px;width:24px}.select-search-box{position:absolute;z-index:1;padding:.5rem;margin-top:-1px;background:var(--upd-body-bg);border:var(--upd-border-width) var(--upd-border-style) var(--upd-border-color)}.remove-bottom-radius{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important}.remove-top-radius{border-top-left-radius:0!important;border-top-right-radius:0!important}.compact{padding:.25rem 2rem .25rem .75rem!important}.select-cursor-default{cursor:default}.select-cursor-pointer{cursor:pointer}\n"] }]
61
65
  }], ctorParameters: () => [], propDecorators: { useSystemStyle: [{
62
66
  type: Input
63
67
  }], shouldShowClearButton: [{
64
68
  type: Input
69
+ }], shouldTruncateSelectedText: [{
70
+ type: Input
65
71
  }], isCompact: [{
66
72
  type: Input
67
73
  }], selected: [{
@@ -69,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
69
75
  }], selectedItem: [{
70
76
  type: Output
71
77
  }] } });
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL3NlbGVjdC9zcmMvY29tcG9uZW50cy9zaW5nbGUvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL3NlbGVjdC9zcmMvY29tcG9uZW50cy9zaW5nbGUvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLGlCQUFpQixFQUNqQixNQUFNLEVBQ04sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOzs7Ozs7OztBQVN0RixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxtQkFBbUI7SUFPcEQsSUFBYSxRQUFRLENBQUMsSUFBOEI7UUFDaEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUNqQyxDQUFDO0lBU0Q7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQWxCWjs7V0FFRztRQUNNLG1CQUFjLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLDBCQUFxQixHQUFHLElBQUksQ0FBQztRQUM3QixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBSzNCOztXQUVHO1FBQ2dCLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQTRCLENBQUM7SUFNL0UsQ0FBQztJQUVELFlBQVksQ0FBQyxJQUFjO1FBQ3ZCLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztRQUU1QixLQUFLLE1BQU0sZUFBZSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ25ELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxFQUFFLE1BQU0sSUFBSSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztnQkFDOUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGVBQWUsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBRWpGLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO29CQUMxQixNQUFNO2dCQUNWLENBQUM7WUFDTCxDQUFDO2lCQUFNLElBQUksZUFBZSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7Z0JBQzNDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxlQUFlLENBQUM7Z0JBQ3hDLE1BQU07WUFDVixDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxjQUFjLENBQUMsS0FBVTtRQUNyQixrQ0FBa0M7UUFDbEMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ2pGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxjQUFjO1FBQ1YsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztRQUNsQyxJQUFJLENBQUMsWUFBWSxHQUFHLFNBQVMsQ0FBQztRQUU5QixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDZCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUN0QyxDQUFDOzhHQXREUSxlQUFlO2tHQUFmLGVBQWUsZ1FDbkI1QixzN0tBc0hBOzsyRkRuR2EsZUFBZTtrQkFOM0IsU0FBUzsrQkFDSSxZQUFZLGlCQUdQLGlCQUFpQixDQUFDLElBQUk7d0RBTTVCLGNBQWM7c0JBQXRCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ08sUUFBUTtzQkFBcEIsS0FBSztnQkFPYSxZQUFZO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9wdGlvbmFsVHlwZSB9IGZyb20gJ0B1cGRldnMvc2RrL3R5cGVzJztcbmltcG9ydCB7IExpc3RJdGVtIH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzL2xpc3QnO1xuXG5pbXBvcnQgeyBCYXNlU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Fic3RyYWN0aW9ucy9iYXNlLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0SXRlbSB9IGZyb20gJy4uLy4uL21vZGVscy9zZWxlY3QtaXRlbSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndXBkLXNlbGVjdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VsZWN0Q29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCBpdCdsbCB1c2UgdGhlIGRlZmF1bHQgc3R5bGUgb2YgdGhlIE9TLCBubyBzZWFyY2ggY2FwYWJpbGl0aWVzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHVzZVN5c3RlbVN0eWxlID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2hvdWxkU2hvd0NsZWFyQnV0dG9uID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBpc0NvbXBhY3QgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzZXQgc2VsZWN0ZWQoaXRlbTogT3B0aW9uYWxUeXBlPFNlbGVjdEl0ZW0+KSB7XG4gICAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbiA9IGl0ZW07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVHJpZ2dlcmVkIHdoZW4gYW4gaXRlbSBpcyBzZWxlY3RlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VsZWN0ZWRJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxPcHRpb25hbFR5cGU8U2VsZWN0SXRlbT4+KCk7XG5cbiAgICBjdXJyZW50U2VsZWN0aW9uPzogU2VsZWN0SXRlbTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBzdXBlcigpO1xuICAgIH1cblxuICAgIG9uU2VsZWN0SXRlbShpdGVtOiBMaXN0SXRlbSk6IHZvaWQge1xuICAgICAgICB0aGlzLl9jdXJyZW50VGVybSA9IGl0ZW0udGV4dDtcbiAgICAgICAgdGhpcy5pc0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xuXG4gICAgICAgIGZvciAoY29uc3QgbG9jYWxCYWNrdXBJdGVtIG9mIHRoaXMuX2xvY2FsQmFja3VwSXRlbXMpIHtcbiAgICAgICAgICAgIGlmICgobG9jYWxCYWNrdXBJdGVtLmNoaWxkcmVuPy5sZW5ndGggfHwgMCkgPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uID0gbG9jYWxCYWNrdXBJdGVtLmNoaWxkcmVuPy5maW5kKGMgPT4gYy52YWx1ZSA9PT0gaXRlbS5pZCk7XG5cbiAgICAgICAgICAgICAgICBpZiAoISF0aGlzLmN1cnJlbnRTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSBlbHNlIGlmIChsb2NhbEJhY2t1cEl0ZW0udmFsdWUgPT09IGl0ZW0uaWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb24gPSBsb2NhbEJhY2t1cEl0ZW07XG4gICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbS5lbWl0KHRoaXMuY3VycmVudFNlbGVjdGlvbik7XG4gICAgfVxuXG4gICAgb25TeXN0ZW1TZWxlY3QoZXZlbnQ6IGFueSk6IHZvaWQge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgZXFlcWVxXG4gICAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbiA9IHRoaXMubG9jYWxJdGVtcy5maW5kKGMgPT4gYy52YWx1ZSA9PSBldmVudC50YXJnZXQudmFsdWUpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbS5lbWl0KHRoaXMuY3VycmVudFNlbGVjdGlvbik7XG4gICAgfVxuXG4gICAgY2xlYXJTZWxlY3Rpb24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgICAgdGhpcy5fY3VycmVudFRlcm0gPSB1bmRlZmluZWQ7XG5cbiAgICAgICAgdGhpcy5zZWFyY2goKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0uZW1pdCh1bmRlZmluZWQpO1xuICAgIH1cbn1cbiIsIkBpZiAoISFsYWJlbFRleHQpIHtcbiAgICBAaWYgKCEhaGludFRleHQgfHwgISFoaW50VGVtcGxhdGUoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvXCI+XG4gICAgICAgICAgICAgICAgPGxhYmVsIFtuZ0NsYXNzXT1cImxhYmVsU2l6ZUNsYXNzZXNcIj57eyBsYWJlbFRleHQgfX08L2xhYmVsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0taGVscFwiIFt1cGRQb3BvdmVyXT1cImhpbnRUZXh0XCIgW3VwZFBvcG92ZXJUZW1wbGF0ZV09XCJoaW50VGVtcGxhdGUoKVwiXG4gICAgICAgICAgICAgICAgICAgIFt1cGRQb3BvdmVyQWN0QXNUb29sdGlwXT1cImhpbnRBc1Rvb2x0aXAoKVwiPlxuICAgICAgICAgICAgICAgICAgICA/XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIH0gQGVsc2Uge1xuICAgICAgICA8bGFiZWwgW25nQ2xhc3NdPVwibGFiZWxTaXplQ2xhc3Nlc1wiPnt7IGxhYmVsVGV4dCB9fTwvbGFiZWw+XG4gICAgfVxufVxuXG5AaWYgKCF1c2VTeXN0ZW1TdHlsZSkge1xuICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93blwiIFthdHRyLmlkXT1cIm5hbWUoKVwiIFtuZ0NsYXNzXT1cImxheW91dENsYXNzZXMoKVwiPlxuICAgICAgICBAaWYgKCFsYWJlbFRleHQgJiYgKCEhaGludFRleHQgfHwgISFoaW50VGVtcGxhdGUoKSkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgZy0yXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvIGFsaWduLXNlbGYtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1oZWxwXCIgW3VwZFBvcG92ZXJdPVwiaGludFRleHRcIiBbdXBkUG9wb3ZlclRlbXBsYXRlXT1cImhpbnRUZW1wbGF0ZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFt1cGRQb3BvdmVyQWN0QXNUb29sdGlwXT1cImhpbnRBc1Rvb2x0aXAoKVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgP1xuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgIH1cblxuICAgICAgICA8ZGl2ICNzZWFyY2hCb3g+XG4gICAgICAgICAgICA8ZGl2ICNzZWFyY2hCb3hDaGlsZCBbc3R5bGUudmlzaWJpbGl0eV09XCJpc0Ryb3Bkb3duT3BlbiA/ICd2aXNpYmxlJyA6ICdoaWRkZW4nXCIgY2xhc3M9XCJzZWxlY3Qtc2VhcmNoLWJveFwiPlxuICAgICAgICAgICAgICAgIDx1cGQtaW5wdXQgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIiBbaXNJbnB1dEdyb3VwRmxhdF09XCJ0cnVlXCIgKHZhbHVlQ2hhbmdlKT1cInNlYXJjaCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSB1cGRJbnB1dFByZXBlbmQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8dXBkLWljb24gdGFibGVySWNvbj1cInNlYXJjaFwiPjwvdXBkLWljb24+XG4gICAgICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgPC91cGQtaW5wdXQ+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDx1cGQtbGlzdCAjbGlzdCBbaXRlbXNdPVwibGlzdEl0ZW1zXCIgW21heEhlaWdodF09XCJkcm9wZG93bk1heEhlaWdodCgpICsgJ3B4J1wiIChzZWxlY3RlZEl0ZW0pPVwib25TZWxlY3RJdGVtKCRldmVudClcIlxuICAgICAgICAgICAgW3dyYXBwZXJDbGFzc2VzXT1cImRyb3Bkb3duQ2xhc3Nlc1wiIFtpc1Zpc2libGVdPVwiaXNEcm9wZG93bk9wZW5cIiBbc2hvdWxkT3ZlcmZsb3ddPVwidHJ1ZVwiIFtzaG91bGREaXNwbGF5SXRlbXNDb3VudGVyXT1cInRydWVcIj5cbiAgICAgICAgPC91cGQtbGlzdD5cbiAgICA8L2Rpdj5cbn0gQGVsc2Uge1xuICAgIEBpZiAoIWxhYmVsVGV4dCAmJiAoISFoaW50VGV4dCB8fCAhIWhpbnRUZW1wbGF0ZSgpKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctMlwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50RGVmYXVsdFN0eWxlVHBsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvIGFsaWduLXNlbGYtY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWhlbHBcIiBbdXBkUG9wb3Zlcl09XCJoaW50VGV4dFwiIFt1cGRQb3BvdmVyVGVtcGxhdGVdPVwiaGludFRlbXBsYXRlKClcIlxuICAgICAgICAgICAgICAgICAgICBbdXBkUG9wb3ZlckFjdEFzVG9vbHRpcF09XCJoaW50QXNUb29sdGlwKClcIj5cbiAgICAgICAgICAgICAgICAgICAgP1xuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnREZWZhdWx0U3R5bGVUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgIH1cbn1cblxuPG5nLXRlbXBsYXRlICNjb250ZW50VHBsPlxuICAgIDxkaXYgI2NvbXBvbmVudEJveCBjbGFzcz1cImlucHV0LWdyb3VwIGlucHV0LWdyb3VwLWZsYXRcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbFwiIFtjbGFzcy5yZW1vdmUtYm90dG9tLXJhZGl1c109XCJpc0Ryb3Bkb3duT3BlblwiIFtjbGFzcy5kaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIlxuICAgICAgICAgICAgW2NsYXNzLnBlLW5vbmVdPVwiaXNEaXNhYmxlZCgpXCIgW2F0dHIuZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCgpID8gJ2Rpc2FibGVkJyA6IHVuZGVmaW5lZFwiIChjbGljayk9XCJvcGVuRHJvcGRvd24oKVwiPlxuICAgICAgICAgICAgQGlmICghIWN1cnJlbnRTZWxlY3Rpb24pIHtcbiAgICAgICAgICAgICAgICA8c3Bhbj57eyBjdXJyZW50U2VsZWN0aW9uLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtdGV4dFwiIFtjbGFzcy5yZW1vdmUtYm90dG9tLXJhZGl1c109XCJpc0Ryb3Bkb3duT3BlblwiPlxuICAgICAgICAgICAgQGlmICghIWN1cnJlbnRTZWxlY3Rpb24gJiYgc2hvdWxkU2hvd0NsZWFyQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgPHVwZC1idXR0b24gW3Nob3VsZElnbm9yZUJ0bkNsYXNzXT1cInRydWVcIiBbaXNEaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIiAoY2xpY2tlZCk9XCJjbGVhclNlbGVjdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgY3VzdG9tQ2xhc3Nlcz1cImxpbmstc2Vjb25kYXJ5XCI+XG4gICAgICAgICAgICAgICAgICAgIDx1cGQtaWNvbiBbbW9kZWxdPVwie3RhYmxlckljb246J3gnfVwiPjwvdXBkLWljb24+XG4gICAgICAgICAgICAgICAgPC91cGQtYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICghaXNMb2FkaW5nKSB7XG4gICAgICAgICAgICAgICAgPHVwZC1idXR0b24gW3Nob3VsZElnbm9yZUJ0bkNsYXNzXT1cInRydWVcIiBbaXNEaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIiAoY2xpY2tlZCk9XCJvcGVuRHJvcGRvd24oKVwiXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbUNsYXNzZXM9XCJsaW5rLXNlY29uZGFyeSBtcy0yXCI+XG4gICAgICAgICAgICAgICAgICAgIDx1cGQtaWNvbiBbbW9kZWxdPVwie3RhYmxlckljb246J2NoZXZyb24tZG93bid9XCI+PC91cGQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L3VwZC1idXR0b24+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LWxvYWRlci13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyLWJvcmRlciBzcGlubmVyLWJvcmRlci1zbSB0ZXh0LW11dGVkIHNlbGVjdC1sb2FkZXJcIiByb2xlPVwic3RhdHVzXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50RGVmYXVsdFN0eWxlVHBsPlxuICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIFtjbGFzcy5jb21wYWN0XT1cImlzQ29tcGFjdFwiIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIiBbYXR0ci5uYW1lXT1cIm5hbWUoKVwiXG4gICAgICAgIFthdHRyLmRpc2FibGVkXT1cImlzRGlzYWJsZWQoKSA/ICdkaXNhYmxlZCcgOiB1bmRlZmluZWRcIiAoY2hhbmdlKT1cIm9uU3lzdGVtU2VsZWN0KCRldmVudClcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBsb2NhbEl0ZW1zOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICBAaWYgKChpdGVtLmNoaWxkcmVuPy5sZW5ndGggfHwgMCkgPiAwKSB7XG4gICAgICAgICAgICAgICAgPG9wdGdyb3VwIFtsYWJlbF09XCJpdGVtLnRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoY2hpbGQgb2YgaXRlbS5jaGlsZHJlbjsgdHJhY2sgY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW2F0dHIuc2VsZWN0ZWRdPVwiISFjdXJyZW50U2VsZWN0aW9uICYmIGNoaWxkLnZhbHVlID09PSBjdXJyZW50U2VsZWN0aW9uLnZhbHVlID8gdHJ1ZSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNoaWxkLnZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY2hpbGQudGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L29wdGdyb3VwPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbYXR0ci5zZWxlY3RlZF09XCIhIWN1cnJlbnRTZWxlY3Rpb24gJiYgaXRlbS52YWx1ZSA9PT0gY3VycmVudFNlbGVjdGlvbi52YWx1ZSA/IHRydWUgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRleHQgfX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIDwvc2VsZWN0PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL3NlbGVjdC9zcmMvY29tcG9uZW50cy9zaW5nbGUvc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL3NlbGVjdC9zcmMvY29tcG9uZW50cy9zaW5nbGUvc2VsZWN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsS0FBSyxFQUNMLGlCQUFpQixFQUNqQixNQUFNLEVBQ04sWUFBWSxFQUNmLE1BQU0sZUFBZSxDQUFDO0FBSXZCLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlEQUFpRCxDQUFDOzs7Ozs7OztBQVN0RixNQUFNLE9BQU8sZUFBZ0IsU0FBUSxtQkFBbUI7SUFRcEQsSUFBYSxRQUFRLENBQUMsSUFBOEI7UUFDaEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLElBQUksQ0FBQztJQUNqQyxDQUFDO0lBUUQsSUFBSSxlQUFlO1FBQ2YsT0FBTyxJQUFJLENBQUMsMEJBQTBCLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQywwQkFBMEIsS0FBSyxTQUFTLENBQUM7SUFDckcsQ0FBQztJQUVEO1FBQ0ksS0FBSyxFQUFFLENBQUM7UUF0Qlo7O1dBRUc7UUFDTSxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2QiwwQkFBcUIsR0FBRyxJQUFJLENBQUM7UUFDN0IsK0JBQTBCLEdBQUksSUFBSSxDQUFDO1FBQ25DLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFLM0I7O1dBRUc7UUFDZ0IsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBNEIsQ0FBQztJQVMvRSxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQWM7UUFDdkIsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsS0FBSyxDQUFDO1FBRTVCLEtBQUssTUFBTSxlQUFlLElBQUksSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDbkQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUM5QyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztnQkFFakYsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7b0JBQzFCLE1BQU07Z0JBQ1YsQ0FBQztZQUNMLENBQUM7aUJBQU0sSUFBSSxlQUFlLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQztnQkFDM0MsSUFBSSxDQUFDLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztnQkFDeEMsTUFBTTtZQUNWLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFVO1FBQ3JCLGtDQUFrQztRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakYsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELGNBQWM7UUFDVixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsU0FBUyxDQUFDO1FBQ2xDLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBRTlCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7OEdBMURRLGVBQWU7a0dBQWYsZUFBZSwwVENuQjVCLHlzTEF3SEE7OzJGRHJHYSxlQUFlO2tCQU4zQixTQUFTOytCQUNJLFlBQVksaUJBR1AsaUJBQWlCLENBQUMsSUFBSTt3REFNNUIsY0FBYztzQkFBdEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBQ0csMEJBQTBCO3NCQUFsQyxLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ08sUUFBUTtzQkFBcEIsS0FBSztnQkFPYSxZQUFZO3NCQUE5QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBDb21wb25lbnQsXG4gICAgSW5wdXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9wdGlvbmFsVHlwZSB9IGZyb20gJ0B1cGRldnMvc2RrL3R5cGVzJztcbmltcG9ydCB7IExpc3RJdGVtIH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzL2xpc3QnO1xuXG5pbXBvcnQgeyBCYXNlU2VsZWN0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vbW9kZWxzL2Fic3RyYWN0aW9ucy9iYXNlLXNlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2VsZWN0SXRlbSB9IGZyb20gJy4uLy4uL21vZGVscy9zZWxlY3QtaXRlbSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndXBkLXNlbGVjdCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBTZWxlY3RDb21wb25lbnQgZXh0ZW5kcyBCYXNlU2VsZWN0Q29tcG9uZW50IHtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCBpdCdsbCB1c2UgdGhlIGRlZmF1bHQgc3R5bGUgb2YgdGhlIE9TLCBubyBzZWFyY2ggY2FwYWJpbGl0aWVzLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIHVzZVN5c3RlbVN0eWxlID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2hvdWxkU2hvd0NsZWFyQnV0dG9uID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBzaG91bGRUcnVuY2F0ZVNlbGVjdGVkVGV4dD8gPSB0cnVlO1xuICAgIEBJbnB1dCgpIGlzQ29tcGFjdCA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHNldCBzZWxlY3RlZChpdGVtOiBPcHRpb25hbFR5cGU8U2VsZWN0SXRlbT4pIHtcbiAgICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uID0gaXRlbTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUcmlnZ2VyZWQgd2hlbiBhbiBpdGVtIGlzIHNlbGVjdGVkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBzZWxlY3RlZEl0ZW0gPSBuZXcgRXZlbnRFbWl0dGVyPE9wdGlvbmFsVHlwZTxTZWxlY3RJdGVtPj4oKTtcblxuICAgIGN1cnJlbnRTZWxlY3Rpb24/OiBTZWxlY3RJdGVtO1xuICAgIGdldCBjYW5UcnVuY2F0ZVRleHQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLnNob3VsZFRydW5jYXRlU2VsZWN0ZWRUZXh0ID09PSB0cnVlIHx8IHRoaXMuc2hvdWxkVHJ1bmNhdGVTZWxlY3RlZFRleHQgPT09IHVuZGVmaW5lZDtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICB9XG5cbiAgICBvblNlbGVjdEl0ZW0oaXRlbTogTGlzdEl0ZW0pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fY3VycmVudFRlcm0gPSBpdGVtLnRleHQ7XG4gICAgICAgIHRoaXMuaXNEcm9wZG93bk9wZW4gPSBmYWxzZTtcblxuICAgICAgICBmb3IgKGNvbnN0IGxvY2FsQmFja3VwSXRlbSBvZiB0aGlzLl9sb2NhbEJhY2t1cEl0ZW1zKSB7XG4gICAgICAgICAgICBpZiAoKGxvY2FsQmFja3VwSXRlbS5jaGlsZHJlbj8ubGVuZ3RoIHx8IDApID4gMCkge1xuICAgICAgICAgICAgICAgIHRoaXMuY3VycmVudFNlbGVjdGlvbiA9IGxvY2FsQmFja3VwSXRlbS5jaGlsZHJlbj8uZmluZChjID0+IGMudmFsdWUgPT09IGl0ZW0uaWQpO1xuXG4gICAgICAgICAgICAgICAgaWYgKCEhdGhpcy5jdXJyZW50U2VsZWN0aW9uKSB7XG4gICAgICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0gZWxzZSBpZiAobG9jYWxCYWNrdXBJdGVtLnZhbHVlID09PSBpdGVtLmlkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jdXJyZW50U2VsZWN0aW9uID0gbG9jYWxCYWNrdXBJdGVtO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0uZW1pdCh0aGlzLmN1cnJlbnRTZWxlY3Rpb24pO1xuICAgIH1cblxuICAgIG9uU3lzdGVtU2VsZWN0KGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIGVxZXFlcVxuICAgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb24gPSB0aGlzLmxvY2FsSXRlbXMuZmluZChjID0+IGMudmFsdWUgPT0gZXZlbnQudGFyZ2V0LnZhbHVlKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEl0ZW0uZW1pdCh0aGlzLmN1cnJlbnRTZWxlY3Rpb24pO1xuICAgIH1cblxuICAgIGNsZWFyU2VsZWN0aW9uKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmN1cnJlbnRTZWxlY3Rpb24gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRUZXJtID0gdW5kZWZpbmVkO1xuXG4gICAgICAgIHRoaXMuc2VhcmNoKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtLmVtaXQodW5kZWZpbmVkKTtcbiAgICB9XG59XG4iLCJAaWYgKCEhbGFiZWxUZXh0KSB7XG4gICAgQGlmICghIWhpbnRUZXh0IHx8ICEhaGludFRlbXBsYXRlKCkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnLTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0b1wiPlxuICAgICAgICAgICAgICAgIDxsYWJlbCBbbmdDbGFzc109XCJsYWJlbFNpemVDbGFzc2VzXCI+e3sgbGFiZWxUZXh0IH19PC9sYWJlbD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvXCI+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb3JtLWhlbHBcIiBbdXBkUG9wb3Zlcl09XCJoaW50VGV4dFwiIFt1cGRQb3BvdmVyVGVtcGxhdGVdPVwiaGludFRlbXBsYXRlKClcIlxuICAgICAgICAgICAgICAgICAgICBbdXBkUG9wb3ZlckFjdEFzVG9vbHRpcF09XCJoaW50QXNUb29sdGlwKClcIj5cbiAgICAgICAgICAgICAgICAgICAgP1xuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICB9IEBlbHNlIHtcbiAgICAgICAgPGxhYmVsIFtuZ0NsYXNzXT1cImxhYmVsU2l6ZUNsYXNzZXNcIj57eyBsYWJlbFRleHQgfX08L2xhYmVsPlxuICAgIH1cbn1cblxuQGlmICghdXNlU3lzdGVtU3R5bGUpIHtcbiAgICA8ZGl2IGNsYXNzPVwiZHJvcGRvd25cIiBbYXR0ci5pZF09XCJuYW1lKClcIiBbbmdDbGFzc109XCJsYXlvdXRDbGFzc2VzKClcIj5cbiAgICAgICAgQGlmICghbGFiZWxUZXh0ICYmICghIWhpbnRUZXh0IHx8ICEhaGludFRlbXBsYXRlKCkpKSB7XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93IGctMlwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0byBhbGlnbi1zZWxmLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0taGVscFwiIFt1cGRQb3BvdmVyXT1cImhpbnRUZXh0XCIgW3VwZFBvcG92ZXJUZW1wbGF0ZV09XCJoaW50VGVtcGxhdGUoKVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbdXBkUG9wb3ZlckFjdEFzVG9vbHRpcF09XCJoaW50QXNUb29sdGlwKClcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgID9cbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRUcGxcIj48L25nLXRlbXBsYXRlPlxuICAgICAgICB9XG5cbiAgICAgICAgPGRpdiAjc2VhcmNoQm94PlxuICAgICAgICAgICAgPGRpdiAjc2VhcmNoQm94Q2hpbGQgW3N0eWxlLnZpc2liaWxpdHldPVwiaXNEcm9wZG93bk9wZW4gPyAndmlzaWJsZScgOiAnaGlkZGVuJ1wiIGNsYXNzPVwic2VsZWN0LXNlYXJjaC1ib3hcIj5cbiAgICAgICAgICAgICAgICA8dXBkLWlucHV0IFtwbGFjZWhvbGRlcl09XCJwbGFjZWhvbGRlcigpXCIgW2lzSW5wdXRHcm91cEZsYXRdPVwidHJ1ZVwiICh2YWx1ZUNoYW5nZSk9XCJzZWFyY2goJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgdXBkSW5wdXRQcmVwZW5kPlxuICAgICAgICAgICAgICAgICAgICAgICAgPHVwZC1pY29uIHRhYmxlckljb249XCJzZWFyY2hcIj48L3VwZC1pY29uPlxuICAgICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICAgIDwvdXBkLWlucHV0PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8dXBkLWxpc3QgI2xpc3QgW2l0ZW1zXT1cImxpc3RJdGVtc1wiIFttYXhIZWlnaHRdPVwiZHJvcGRvd25NYXhIZWlnaHQoKSArICdweCdcIiAoc2VsZWN0ZWRJdGVtKT1cIm9uU2VsZWN0SXRlbSgkZXZlbnQpXCJcbiAgICAgICAgICAgIFt3cmFwcGVyQ2xhc3Nlc109XCJkcm9wZG93bkNsYXNzZXNcIiBbaXNWaXNpYmxlXT1cImlzRHJvcGRvd25PcGVuXCIgW3Nob3VsZE92ZXJmbG93XT1cInRydWVcIiBbc2hvdWxkRGlzcGxheUl0ZW1zQ291bnRlcl09XCJ0cnVlXCI+XG4gICAgICAgIDwvdXBkLWxpc3Q+XG4gICAgPC9kaXY+XG59IEBlbHNlIHtcbiAgICBAaWYgKCFsYWJlbFRleHQgJiYgKCEhaGludFRleHQgfHwgISFoaW50VGVtcGxhdGUoKSkpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBnLTJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudERlZmF1bHRTdHlsZVRwbFwiPjwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtYXV0byBhbGlnbi1zZWxmLWNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1oZWxwXCIgW3VwZFBvcG92ZXJdPVwiaGludFRleHRcIiBbdXBkUG9wb3ZlclRlbXBsYXRlXT1cImhpbnRUZW1wbGF0ZSgpXCJcbiAgICAgICAgICAgICAgICAgICAgW3VwZFBvcG92ZXJBY3RBc1Rvb2x0aXBdPVwiaGludEFzVG9vbHRpcCgpXCI+XG4gICAgICAgICAgICAgICAgICAgID9cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgfSBAZWxzZSB7XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBbbmdUZW1wbGF0ZU91dGxldF09XCJjb250ZW50RGVmYXVsdFN0eWxlVHBsXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICB9XG59XG5cbjxuZy10ZW1wbGF0ZSAjY29udGVudFRwbD5cbiAgICA8ZGl2ICNjb21wb25lbnRCb3ggY2xhc3M9XCJpbnB1dC1ncm91cCBpbnB1dC1ncm91cC1mbGF0XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbY2xhc3MucmVtb3ZlLWJvdHRvbS1yYWRpdXNdPVwiaXNEcm9wZG93bk9wZW5cIiBbY2xhc3MuZGlzYWJsZWRdPVwiaXNEaXNhYmxlZCgpXCJcbiAgICAgICAgICAgIFtjbGFzcy5wZS1ub25lXT1cImlzRGlzYWJsZWQoKVwiIFtjbGFzcy5zZWxlY3QtY3Vyc29yLWRlZmF1bHRdPVwiIWlzRGlzYWJsZWQoKVwiXG4gICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJpc0Rpc2FibGVkKCkgPyAnZGlzYWJsZWQnIDogdW5kZWZpbmVkXCIgKGNsaWNrKT1cIm9wZW5Ecm9wZG93bigpXCI+XG4gICAgICAgICAgICBAaWYgKCEhY3VycmVudFNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cImNhblRydW5jYXRlVGV4dCA/ICdkLWJsb2NrIHRleHQtdHJ1bmNhdGUnIDogJydcIj57eyBjdXJyZW50U2VsZWN0aW9uLnRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXAtdGV4dFwiIFtjbGFzcy5yZW1vdmUtYm90dG9tLXJhZGl1c109XCJpc0Ryb3Bkb3duT3BlblwiPlxuICAgICAgICAgICAgQGlmICghIWN1cnJlbnRTZWxlY3Rpb24gJiYgc2hvdWxkU2hvd0NsZWFyQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgPHVwZC1idXR0b24gW3Nob3VsZElnbm9yZUJ0bkNsYXNzXT1cInRydWVcIiBbaXNEaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIiAoY2xpY2tlZCk9XCJjbGVhclNlbGVjdGlvbigpXCJcbiAgICAgICAgICAgICAgICAgICAgY3VzdG9tQ2xhc3Nlcz1cImxpbmstc2Vjb25kYXJ5XCIgW2NsYXNzLnNlbGVjdC1jdXJzb3ItcG9pbnRlcl09XCIhaXNEaXNhYmxlZCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDx1cGQtaWNvbiBbbW9kZWxdPVwie3RhYmxlckljb246J3gnfVwiPjwvdXBkLWljb24+XG4gICAgICAgICAgICAgICAgPC91cGQtYnV0dG9uPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgQGlmICghaXNMb2FkaW5nKSB7XG4gICAgICAgICAgICAgICAgPHVwZC1idXR0b24gW3Nob3VsZElnbm9yZUJ0bkNsYXNzXT1cInRydWVcIiBbaXNEaXNhYmxlZF09XCJpc0Rpc2FibGVkKClcIiAoY2xpY2tlZCk9XCJvcGVuRHJvcGRvd24oKVwiXG4gICAgICAgICAgICAgICAgICAgIGN1c3RvbUNsYXNzZXM9XCJsaW5rLXNlY29uZGFyeSBtcy0yXCIgW2NsYXNzLnNlbGVjdC1jdXJzb3ItcG9pbnRlcl09XCIhaXNEaXNhYmxlZCgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDx1cGQtaWNvbiBbbW9kZWxdPVwie3RhYmxlckljb246J2NoZXZyb24tZG93bid9XCI+PC91cGQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L3VwZC1idXR0b24+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VsZWN0LWxvYWRlci13cmFwcGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzcGlubmVyLWJvcmRlciBzcGlubmVyLWJvcmRlci1zbSB0ZXh0LW11dGVkIHNlbGVjdC1sb2FkZXJcIiByb2xlPVwic3RhdHVzXCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG5nLXRlbXBsYXRlICNjb250ZW50RGVmYXVsdFN0eWxlVHBsPlxuICAgIDxzZWxlY3QgY2xhc3M9XCJmb3JtLXNlbGVjdFwiIFtjbGFzcy5jb21wYWN0XT1cImlzQ29tcGFjdFwiIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyKClcIiBbYXR0ci5uYW1lXT1cIm5hbWUoKVwiXG4gICAgICAgIFtjbGFzcy5zZWxlY3QtY3Vyc29yLXBvaW50ZXJdPVwiIWlzRGlzYWJsZWQoKVwiIFthdHRyLmRpc2FibGVkXT1cImlzRGlzYWJsZWQoKSA/ICdkaXNhYmxlZCcgOiB1bmRlZmluZWRcIlxuICAgICAgICAoY2hhbmdlKT1cIm9uU3lzdGVtU2VsZWN0KCRldmVudClcIj5cbiAgICAgICAgQGZvciAoaXRlbSBvZiBsb2NhbEl0ZW1zOyB0cmFjayBpdGVtKSB7XG4gICAgICAgICAgICBAaWYgKChpdGVtLmNoaWxkcmVuPy5sZW5ndGggfHwgMCkgPiAwKSB7XG4gICAgICAgICAgICAgICAgPG9wdGdyb3VwIFtsYWJlbF09XCJpdGVtLnRleHRcIj5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoY2hpbGQgb2YgaXRlbS5jaGlsZHJlbjsgdHJhY2sgY2hpbGQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxvcHRpb24gW2F0dHIuc2VsZWN0ZWRdPVwiISFjdXJyZW50U2VsZWN0aW9uICYmIGNoaWxkLnZhbHVlID09PSBjdXJyZW50U2VsZWN0aW9uLnZhbHVlID8gdHJ1ZSA6IHVuZGVmaW5lZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNoaWxkLnZhbHVlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3sgY2hpbGQudGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L29wdGdyb3VwPlxuICAgICAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICAgICAgPG9wdGlvbiBbYXR0ci5zZWxlY3RlZF09XCIhIWN1cnJlbnRTZWxlY3Rpb24gJiYgaXRlbS52YWx1ZSA9PT0gY3VycmVudFNlbGVjdGlvbi52YWx1ZSA/IHRydWUgOiB1bmRlZmluZWRcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXRlbS52YWx1ZVwiPlxuICAgICAgICAgICAgICAgICAgICB7eyBpdGVtLnRleHQgfX1cbiAgICAgICAgICAgICAgICA8L29wdGlvbj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIDwvc2VsZWN0PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -1,4 +1,4 @@
1
- import { Directive, HostBinding, ElementRef, Output, EventEmitter, inject, NgZone, Renderer2, RendererStyleFlags2, input, viewChild, computed, effect } from '@angular/core';
1
+ import { Directive, HostBinding, ElementRef, Output, EventEmitter, inject, NgZone, Renderer2, RendererStyleFlags2, input, viewChild, computed, effect, afterNextRender, Injector } from '@angular/core';
2
2
  import { DomEventsService, PositioningService } from '@updevs/sdk/layout';
3
3
  import { Tools } from '@updevs/sdk/core';
4
4
  import { ColumnSizeHelper } from '@updevs/components';
@@ -82,6 +82,7 @@ export class BaseSelectComponent extends BaseControl {
82
82
  this.ngZone = inject(NgZone);
83
83
  this.domEventsService = inject(DomEventsService);
84
84
  this.positioningService = inject(PositioningService);
85
+ this.injector = inject(Injector);
85
86
  effect(() => {
86
87
  if (!!this.items()) {
87
88
  this._setupLocalItems(this.items());
@@ -112,9 +113,11 @@ export class BaseSelectComponent extends BaseControl {
112
113
  const outsideClickSub = this.domEventsService.startOutsideClickListener(() => this.ngZone.run(() => this.isDropdownOpen = false), this.list()?.nativeElement, true, this.componentBox()?.nativeElement, this.searchBox()?.nativeElement);
113
114
  this.addSubscriptions(outsideClickSub);
114
115
  }
115
- this.ngZone.runOutsideAngular(() => this.positioningService
116
- .computePosition(this.componentBox(), this.list(), { placement: 'bottom' })
117
- .subscribe(resp => this.updatePosition(resp)));
116
+ afterNextRender(() => {
117
+ this.ngZone.runOutsideAngular(() => this.positioningService
118
+ .computePosition(this.componentBox(), this.list(), { placement: 'bottom' })
119
+ .subscribe(resp => this.updatePosition(resp)));
120
+ }, { injector: this.injector });
118
121
  }
119
122
  search(term) {
120
123
  if (this.hasExternalList) {
@@ -212,4 +215,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
212
215
  }], dropdownOpenStatusChange: [{
213
216
  type: Output
214
217
  }] } });
215
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvc2VsZWN0L3NyYy9tb2RlbHMvYWJzdHJhY3Rpb25zL2Jhc2Utc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFdBQVcsRUFDWCxVQUFVLEVBRVYsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsRUFDVCxtQkFBbUIsRUFDbkIsS0FBSyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBQUUsTUFBTSxFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCLEVBQXlCLE1BQU0sb0JBQW9CLENBQUM7QUFDakcsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBRXpDLE9BQU8sRUFBMEIsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUU5RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sK0NBQStDLENBQUM7QUFDNUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxZQUFZLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR2xELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFdkMsSUFBTyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQzs7QUFHM0IsTUFBTSxPQUFnQixtQkFBb0IsU0FBUSxXQUFXO0lBQ3pELElBQTBCLGNBQWM7UUFDcEMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBNENELElBQUksY0FBYztRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQztJQUNoQyxDQUFDO0lBQ0QsSUFBSSxjQUFjLENBQUMsS0FBYztRQUM3QixJQUFJ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SyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxxQkFBcUIsQ0FBQyxZQUFZLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5SCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuSCxDQUFDOzhHQXRQaUIsbUJBQW1CO2tHQUFuQixtQkFBbUIscW5EQU1ZLFVBQVUsaUhBQ2hCLFVBQVUsMkhBQ0EsVUFBVSx1R0FDOUIsVUFBVTs7MkZBVHpCLG1CQUFtQjtrQkFEeEMsU0FBUzt3REFFb0IsY0FBYztzQkFBdkMsV0FBVzt1QkFBQyxPQUFPO2dCQUdELHdCQUF3QjtzQkFBMUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIE5nWm9uZSxcbiAgICBSZW5kZXJlcjIsXG4gICAgUmVuZGVyZXJTdHlsZUZsYWdzMixcbiAgICBpbnB1dCxcbiAgICB2aWV3Q2hpbGQsXG4gICAgY29tcHV0ZWQsIGVmZmVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERvbUV2ZW50c1NlcnZpY2UsIFBvc2l0aW9uaW5nU2VydmljZSwgQ29tcHV0ZVBvc2l0aW9uUmVzdWx0IH0gZnJvbSAnQHVwZGV2cy9zZGsvbGF5b3V0JztcbmltcG9ydCB7IFRvb2xzIH0gZnJvbSAnQHVwZGV2cy9zZGsvY29yZSc7XG5pbXBvcnQgeyBCYXNlU2VhcmNoU3RvcmUsIE9ic2VydmFibGVTZWFyY2hUeXBlIH0gZnJvbSAnQHVwZGV2cy9zZGsvc3RvcmVzJztcbmltcG9ydCB7IEhvcml6b250YWxWZXJ0aWNhbFR5cGUsIENvbHVtblNpemVIZWxwZXIgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMnO1xuaW1wb3J0IHsgTGlzdEl0ZW0gfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvbGlzdCc7XG5pbXBvcnQgeyBCYXNlQ29udHJvbCB9IGZyb20gJ0B1cGRldnMvY29tcG9uZW50cy9mb3JtLWNvbnRyb2xzL2Fic3RyYWN0aW9ucyc7XG5pbXBvcnQgeyB0YXAsIGRlYm91bmNlVGltZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTZWxlY3RJdGVtIH0gZnJvbSAnLi4vc2VsZWN0LWl0ZW0nO1xuaW1wb3J0IHsgRGVmYXVsdHMgfSBmcm9tICcuLi9kZWZhdWx0cyc7XG5cbmltcG9ydCBVdGlscyA9IFRvb2xzLlV0aWxzO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBCYXNlU2VsZWN0Q29tcG9uZW50IGV4dGVuZHMgQmFzZUNvbnRyb2wgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBnZXQgd3JhcHBlckNsYXNzZXMoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmhvc3RXcmFwcGVyQ2xhc3NlcygpO1xuICAgIH1cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgZHJvcGRvd25PcGVuU3RhdHVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgY29tcG9uZW50Qm94ID0gdmlld0NoaWxkKCdjb21wb25lbnRCb3gnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSk7XG4gICAgc2VhcmNoQm94ID0gdmlld0NoaWxkKCdzZWFyY2hCb3gnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSk7XG4gICAgc2VhcmNoQm94Q2hpbGQgPSB2aWV3Q2hpbGQoJ3NlYXJjaEJveENoaWxkJywgeyByZWFkOiBFbGVtZW50UmVmIH0pO1xuICAgIGxpc3QgPSB2aWV3Q2hpbGQoJ2xpc3QnLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSk7XG5cbiAgICAvKipcbiAgICAgKiBTZWxlY3QgaXRlbXMuXG4gICAgICogSWYgcHJvdmlkZWQsIHRoZSBzZWxlY3Qgd2lsbCBiZSBjb25zaWRlcmVkIHN0YXRpYy5cbiAgICAgKi9cbiAgICBpdGVtcyA9IGlucHV0PFNlbGVjdEl0ZW1bXT4oKTtcbiAgICAvKipcbiAgICAgKiBTdG9yZSB1c2VkIHRvIGxvYWQvZmlsdGVyIHRoZSBpdGVtcy5cbiAgICAgKi9cbiAgICBzdG9yZSA9IGlucHV0PEJhc2VTZWFyY2hTdG9yZT4oKTtcbiAgICAvKipcbiAgICAgKiBPYnNlcnZhYmxlIHVzZWQgdG8gbG9hZC9maWx0ZXIgdGhlIGl0ZW1zLlxuICAgICAqL1xuICAgIG9ic2VydmFibGUgPSBpbnB1dDxPYnNlcnZhYmxlU2VhcmNoVHlwZT4oKTtcbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBwcm9wZXJ0eSBpbiB0aGUgb2JqZWN0IHRoYXQgcmVwcmVzZW50cyB0aGUgSUQva2V5IG9mIHRoZSBvcHRpb24uXG4gICAgICogKipOb3RlOioqIHVzZWQgb25seSBmb3IgcmVtb3RlIGRhdGEuXG4gICAgICovXG4gICAgaXRlbUtleSA9IGlucHV0PHN0cmluZz4oKTtcbiAgICAvKipcbiAgICAgKiBOYW1lIG9mIHRoZSBwcm9wZXJ0eSBpbiB0aGUgb2JqZWN0IHRoYXQgcmVwcmVzZW50cyB0aGUgdmFsdWUvZGVzY3JpcHRpb24gb2YgdGhlIG9wdGlvbi5cbiAgICAgKiAqKk5vdGU6KiogdXNlZCBvbmx5IGZvciByZW1vdGUgZGF0YS5cbiAgICAgKi9cbiAgICBpdGVtVmFsdWUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgLyoqXG4gICAgICogTWF4aW11bSBoZWlnaHQgb2YgdGhlIGRyb3Bkb3duLlxuICAgICAqL1xuICAgIGRyb3Bkb3duTWF4SGVpZ2h0ID0gaW5wdXQoRGVmYXVsdHMuZHJvcGRvd25NYXhIZWlnaHQpO1xuICAgIHR5cGVhaGVhZERlYm91bmNlID0gaW5wdXQoRGVmYXVsdHMudHlwZWFoZWFkRGVib3VuY2UpO1xuICAgIHNob3VsZEF1dG9TZWFyY2ggPSBpbnB1dChEZWZhdWx0cy5zaG91bGRBdXRvU2VhcmNoKTtcbiAgICBzaG91bGRDbG9zZU9uT3V0c2lkZUNsaWNrID0gaW5wdXQoRGVmYXVsdHMuc2hvdWxkQ2xvc2VPbk91dHNpZGVDbGljayk7XG4gICAgbGF5b3V0ID0gaW5wdXQ8SG9yaXpvbnRhbFZlcnRpY2FsVHlwZT4oRGVmYXVsdHMubGF5b3V0KTtcbiAgICBsYXlvdXRDbGFzc2VzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5sYXlvdXQoKSA9PT0gJ2hvcml6b250YWwnID8gWydjb2wnLCAnYWxpZ24tc2VsZi1jZW50ZXInXSA6IFtdKTtcbiAgICBpc0xvYWRpbmcgPSBmYWxzZTtcbiAgICBsb2NhbEl0ZW1zOiBTZWxlY3RJdGVtW10gPSBbXTtcbiAgICBsaXN0SXRlbXM6IExpc3RJdGVtW10gPSBbXTtcbiAgICBkcm9wZG93bkNsYXNzZXMgPSAnc2VsZWN0LWRyb3Bkb3duLWNvbnRlbnQgcmVtb3ZlLXRvcC1yYWRpdXMnO1xuICAgIGdldCBpc0Ryb3Bkb3duT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2lzRHJvcGRvd25PcGVuO1xuICAgIH1cbiAgICBzZXQgaXNEcm9wZG93bk9wZW4odmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgdGhpcy5faXNEcm9wZG93bk9wZW4gPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLmRyb3Bkb3duT3BlblN0YXR1c0NoYW5nZS5lbWl0KHZhbHVlKTtcblxuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuZHJvcGRvd25DbGFzc2VzICs9ICcgc2VsZWN0LWRyb3Bkb3duLWNvbnRlbnQtb3Blbic7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQ2xhc3NlcyA9IHRoaXMuZHJvcGRvd25DbGFzc2VzLnJlcGxhY2UoJyBzZWxlY3QtZHJvcGRvd24tY29udGVudC1vcGVuJywgJycpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBsYWJlbFNpemVDbGFzc2VzKCk6IHN0cmluZyB7XG4gICAgICAgIGlmICh0aGlzLmxheW91dCgpICE9PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICAgIHJldHVybiAnZm9ybS1sYWJlbCc7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gQ29sdW1uU2l6ZUhlbHBlci5nZXRDbGFzc2VzKFxuICAgICAgICAgICAgJ2NvbC1mb3JtLWxhYmVsJyxcbiAgICAgICAgICAgIENvbHVtblNpemVIZWxwZXIuZ2V0U2l6ZUNsYXNzZXModGhpcy5sYWJlbENvbFNpemUoKSwgMylcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgX2N1cnJlbnRUZXJtPzogc3RyaW5nO1xuICAgIHByb3RlY3RlZCBfbG9jYWxCYWNrdXBJdGVtczogU2VsZWN0SXRlbVtdID0gW107XG5cbiAgICBwcml2YXRlIGhhc0V4dGVybmFsTGlzdCA9IGZhbHNlO1xuICAgIHByaXZhdGUgX2lzRHJvcGRvd25PcGVuID0gZmFsc2U7XG4gICAgcHJpdmF0ZSBob3N0V3JhcHBlckNsYXNzZXMgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmxheW91dCgpID09PSAnaG9yaXpvbnRhbCcgPyAncm93JyA6ICcnKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHNlYXJjaElucHV0U3ViamVjdCA9IG5ldyBTdWJqZWN0PHN0cmluZz4oKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBuZ1pvbmUgPSBpbmplY3QoTmdab25lKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRvbUV2ZW50c1NlcnZpY2UgPSBpbmplY3QoRG9tRXZlbnRzU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBwb3NpdGlvbmluZ1NlcnZpY2UgPSBpbmplY3QoUG9zaXRpb25pbmdTZXJ2aWNlKTtcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgaWYgKCEhdGhpcy5pdGVtcygpKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fc2V0dXBMb2NhbEl0ZW1zKHRoaXMuaXRlbXMoKSEpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5oYXNFeHRlcm5hbExpc3QgPSAhdGhpcy5vYnNlcnZhYmxlKCkgJiYgIXRoaXMuc3RvcmUoKTtcblxuICAgICAgICBpZiAodGhpcy5zaG91bGRBdXRvU2VhcmNoKCkpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmhhc0V4dGVybmFsTGlzdCkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NldHVwTG9jYWxJdGVtcyh0aGlzLml0ZW1zKCkhKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWFyY2hSZW1vdGUoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmhhc0V4dGVybmFsTGlzdCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgdHlwZWFoZWFkU3Vic2NyaXB0aW9uID0gdGhpcy5zZWFyY2hJbnB1dFN1YmplY3RcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCh2YWx1ZSA9PiB0aGlzLl9jdXJyZW50VGVybSA9IHZhbHVlKSxcbiAgICAgICAgICAgICAgICBkZWJvdW5jZVRpbWUodGhpcy50eXBlYWhlYWREZWJvdW5jZSgpKVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNlYXJjaFJlbW90ZSgpKTtcblxuICAgICAgICB0aGlzLmFkZFN1YnNjcmlwdGlvbnModHlwZWFoZWFkU3Vic2NyaXB0aW9uKTtcbiAgICB9XG5cbiAgICBvcGVuRHJvcGRvd24oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaXNEcm9wZG93bk9wZW4gPSB0cnVlO1xuXG4gICAgICAgIGlmICh0aGlzLnNob3VsZENsb3NlT25PdXRzaWRlQ2xpY2soKSkge1xuICAgICAgICAgICAgY29uc3Qgb3V0c2lkZUNsaWNrU3ViID0gdGhpcy5kb21FdmVudHNTZXJ2aWNlLnN0YXJ0T3V0c2lkZUNsaWNrTGlzdGVuZXIoXG4gICAgICAgICAgICAgICAgKCkgPT4gdGhpcy5uZ1pvbmUucnVuKCgpID0+IHRoaXMuaXNEcm9wZG93bk9wZW4gPSBmYWxzZSksXG4gICAgICAgICAgICAgICAgdGhpcy5saXN0KCk/Lm5hdGl2ZUVsZW1lbnQsXG4gICAgICAgICAgICAgICAgdHJ1ZSxcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBvbmVudEJveCgpPy5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoQm94KCk/Lm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICB0aGlzLmFkZFN1YnNjcmlwdGlvbnMob3V0c2lkZUNsaWNrU3ViKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+XG4gICAgICAgICAgICB0aGlzLnBvc2l0aW9uaW5nU2VydmljZVxuICAgICAgICAgICAgICAgIC5jb21wdXRlUG9zaXRpb24odGhpcy5jb21wb25lbnRCb3goKSEsIHRoaXMubGlzdCgpISwgeyBwbGFjZW1lbnQ6ICdib3R0b20nIH0pXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShyZXNwID0+IHRoaXMudXBkYXRlUG9zaXRpb24ocmVzcCkpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc2VhcmNoKHRlcm0/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzRXh0ZXJuYWxMaXN0KSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaExvY2FsKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0U3ViamVjdC5uZXh0KHRlcm0gfHwgJycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9zZXR1cExvY2FsSXRlbXMoaXRlbXM6IFNlbGVjdEl0ZW1bXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvY2FsSXRlbXMgPSBVdGlscy5kZWVwQ29weShpdGVtcyk7XG4gICAgICAgIHRoaXMuX2xvY2FsQmFja3VwSXRlbXMgPSBVdGlscy5kZWVwQ29weShpdGVtcyk7XG4gICAgICAgIGNvbnN0IHRlbXBJdGVtczogTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLl9sb2NhbEJhY2t1cEl0ZW1zKSB7XG4gICAgICAgICAgICBjb25zdCBsaXN0SXRlbSA9IHRoaXMuZ2V0TGlzdEl0ZW0oaXRlbSk7XG4gICAgICAgICAgICBpdGVtLmxpc3RJdGVtID0gT2JqZWN0LmFzc2lnbihsaXN0SXRlbSwge30pO1xuXG4gICAgICAgICAgICB0ZW1wSXRlbXMucHVzaChsaXN0SXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxpc3RJdGVtcyA9IFsuLi50ZW1wSXRlbXNdO1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VhcmNoTG9jYWwoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fY3VycmVudFRlcm0pIHtcbiAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1zID0gVXRpbHMuZGVlcENvcHkodGhpcy5fbG9jYWxCYWNrdXBJdGVtcy5tYXAobGkgPT4gbGkubGlzdEl0ZW0hKSk7XG4gICAgICAgICAgICB0aGlzLmxvY2FsSXRlbXMgPSBVdGlscy5kZWVwQ29weSh0aGlzLl9sb2NhbEJhY2t1cEl0ZW1zKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1zID0gVXRpbHMuZGVlcENvcHk8U2VsZWN0SXRlbVtdPih0aGlzLl9sb2NhbEJhY2t1cEl0ZW1zKS5maWx0ZXIoc2kgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBoYXNDaGlsZHJlbkluU2VhcmNoID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICBpZiAoKHNpLmNoaWxkcmVuPy5sZW5ndGggfHwgMCkgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGhhc0NoaWxkcmVuSW5TZWFyY2ggPSBzaS5jaGlsZHJlbiEuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgY2kgPT4gY2kudGV4dCEudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLl9jdXJyZW50VGVybSEudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgICAgICAgICAgKS5sZW5ndGggPiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBzaS50ZXh0IS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuX2N1cnJlbnRUZXJtIS50b0xvd2VyQ2FzZSgpKSB8fCBoYXNDaGlsZHJlbkluU2VhcmNoO1xuICAgICAgICAgICAgfSkubWFwKHNpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBia3BJdGVtID0gdGhpcy5fbG9jYWxCYWNrdXBJdGVtcy5maW5kKGxiaSA9PiBsYmkudmFsdWUgPT09IHNpLnZhbHVlKTtcblxuICAgICAgICAgICAgICAgIGlmICgoYmtwSXRlbT8uY2hpbGRyZW4/Lmxlbmd0aCB8fCAwKSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgc2kuY2hpbGRyZW4gPSBbLi4uYmtwSXRlbSEuY2hpbGRyZW4hXS5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICBjaSA9PiBjaS50ZXh0IS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuX2N1cnJlbnRUZXJtIS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldExpc3RJdGVtKHNpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlYXJjaFJlbW90ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0geyBkZXNjcmlwdGlvbjogdGhpcy5fY3VycmVudFRlcm0gfTtcbiAgICAgICAgY29uc3Qgb2JzZXJ2YWJsZSA9ICEhdGhpcy5vYnNlcnZhYmxlKCkgPyB0aGlzLm9ic2VydmFibGUoKSEocmVxdWVzdCkgOiB0aGlzLnN0b3JlKCkhLnNlYXJjaChyZXF1ZXN0KTtcblxuICAgICAgICBvYnNlcnZhYmxlLnN1YnNjcmliZShyID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1zOiBTZWxlY3RJdGVtW10gPSBbXTtcblxuICAgICAgICAgICAgci5yZWNvcmRzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBpdGVtW3RoaXMuaXRlbUtleSgpIV0sXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IGl0ZW1bdGhpcy5pdGVtVmFsdWUoKSFdLFxuICAgICAgICAgICAgICAgICAgICBvYmplY3REYXRhOiBpdGVtXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX3NldHVwTG9jYWxJdGVtcyhpdGVtcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TGlzdEl0ZW0oaXRlbTogU2VsZWN0SXRlbSk6IExpc3RJdGVtIHtcbiAgICAgICAgbGV0IGxpc3RJdGVtOiBMaXN0SXRlbTtcblxuICAgICAgICBpZiAoISFpdGVtLmxpc3RJdGVtKSB7XG4gICAgICAgICAgICBsaXN0SXRlbSA9IGl0ZW0ubGlzdEl0ZW07XG4gICAgICAgICAgICBsaXN0SXRlbS5pZCA9IGl0ZW0udmFsdWU7XG4gICAgICAgICAgICBsaXN0SXRlbS50ZXh0ID0gaXRlbS50ZXh0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGlzdEl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgaWQ6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICAgICAgdGV4dDogaXRlbS50ZXh0XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKChpdGVtLmNoaWxkcmVuPy5sZW5ndGggfHwgMCkgPiAwKSB7XG4gICAgICAgICAgICBsaXN0SXRlbS5jaGlsZHJlbiA9IFsuLi5pdGVtLmNoaWxkcmVuIV0ubWFwKGMgPT4gdGhpcy5nZXRMaXN0SXRlbShjKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbGlzdEl0ZW07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVQb3NpdGlvbihyZXN1bHQ6IENvbXB1dGVQb3NpdGlvblJlc3VsdCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb21wb25lbnRCb3ggPSB0aGlzLmNvbXBvbmVudEJveCgpIS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBzZWFyY2hCb3hDaGlsZEVsZW1lbnQgPSB0aGlzLnNlYXJjaEJveENoaWxkKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGRkRWxlbWVudCA9IHRoaXMubGlzdCgpIS5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc2VhcmNoQm94Q2hpbGRFbGVtZW50LCAnd2lkdGgnLCBgJHtNYXRoLmFicyhjb21wb25lbnRCb3gud2lkdGgpfXB4YCwgUmVuZGVyZXJTdHlsZUZsYWdzMi5JbXBvcnRhbnQpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRkRWxlbWVudCwgJ3RvcCcsIGAke3Jlc3VsdC55ICsgc2VhcmNoQm94Q2hpbGRFbGVtZW50LnNjcm9sbEhlaWdodH1weGAsIFJlbmRlcmVyU3R5bGVGbGFnczIuSW1wb3J0YW50KTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkZEVsZW1lbnQsICdsZWZ0JywgMCwgUmVuZGVyZXJTdHlsZUZsYWdzMi5JbXBvcnRhbnQpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRkRWxlbWVudCwgJ3dpZHRoJywgYCR7TWF0aC5hYnMoY29tcG9uZW50Qm94LndpZHRoKX1weGAsIFJlbmRlcmVyU3R5bGVGbGFnczIuSW1wb3J0YW50KTtcbiAgICB9XG5cbiAgICBhYnN0cmFjdCBjbGVhclNlbGVjdGlvbigpOiB2b2lkO1xuICAgIGFic3RyYWN0IG9uU2VsZWN0SXRlbShpdGVtOiBMaXN0SXRlbSk6IHZvaWQ7XG59XG4iXX0=
218
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1zZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2Zvcm0tY29udHJvbHMvc2VsZWN0L3NyYy9tb2RlbHMvYWJzdHJhY3Rpb25zL2Jhc2Utc2VsZWN0LmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFdBQVcsRUFDWCxVQUFVLEVBRVYsTUFBTSxFQUNOLFlBQVksRUFDWixNQUFNLEVBQ04sTUFBTSxFQUNOLFNBQVMsRUFDVCxtQkFBbUIsRUFDbkIsS0FBSyxFQUNMLFNBQVMsRUFDVCxRQUFRLEVBQUUsTUFBTSxFQUNoQixlQUFlLEVBQ2YsUUFBUSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxrQkFBa0IsRUFBeUIsTUFBTSxvQkFBb0IsQ0FBQztBQUNqRyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFFekMsT0FBTyxFQUEwQixnQkFBZ0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRTlFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSwrQ0FBK0MsQ0FBQztBQUM1RSxPQUFPLEVBQUUsR0FBRyxFQUFFLFlBQVksRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFHbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUV2QyxJQUFPLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDOztBQUczQixNQUFNLE9BQWdCLG1CQUFvQixTQUFRLFdBQVc7SUFDekQsSUFBMEIsY0FBYztRQUNwQyxPQUFPLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUE0Q0QsSUFBSSxjQUFjO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxJQUFJLGNBQWMs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QXFCLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUMzSCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLEdBQUcsTUFBTSxDQUFDLENBQUMsR0FBRyxxQkFBcUIsQ0FBQyxZQUFZLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM5SCxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM1RSxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNuSCxDQUFDOzhHQXpQaUIsbUJBQW1CO2tHQUFuQixtQkFBbUIscW5EQU1ZLFVBQVUsaUhBQ2hCLFVBQVUsMkhBQ0EsVUFBVSx1R0FDOUIsVUFBVTs7MkZBVHpCLG1CQUFtQjtrQkFEeEMsU0FBUzt3REFFb0IsY0FBYztzQkFBdkMsV0FBVzt1QkFBQyxPQUFPO2dCQUdELHdCQUF3QjtzQkFBMUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgT25Jbml0LFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgaW5qZWN0LFxuICAgIE5nWm9uZSxcbiAgICBSZW5kZXJlcjIsXG4gICAgUmVuZGVyZXJTdHlsZUZsYWdzMixcbiAgICBpbnB1dCxcbiAgICB2aWV3Q2hpbGQsXG4gICAgY29tcHV0ZWQsIGVmZmVjdCxcbiAgICBhZnRlck5leHRSZW5kZXIsXG4gICAgSW5qZWN0b3Jcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21FdmVudHNTZXJ2aWNlLCBQb3NpdGlvbmluZ1NlcnZpY2UsIENvbXB1dGVQb3NpdGlvblJlc3VsdCB9IGZyb20gJ0B1cGRldnMvc2RrL2xheW91dCc7XG5pbXBvcnQgeyBUb29scyB9IGZyb20gJ0B1cGRldnMvc2RrL2NvcmUnO1xuaW1wb3J0IHsgQmFzZVNlYXJjaFN0b3JlLCBPYnNlcnZhYmxlU2VhcmNoVHlwZSB9IGZyb20gJ0B1cGRldnMvc2RrL3N0b3Jlcyc7XG5pbXBvcnQgeyBIb3Jpem9udGFsVmVydGljYWxUeXBlLCBDb2x1bW5TaXplSGVscGVyIH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzJztcbmltcG9ydCB7IExpc3RJdGVtIH0gZnJvbSAnQHVwZGV2cy9jb21wb25lbnRzL2xpc3QnO1xuaW1wb3J0IHsgQmFzZUNvbnRyb2wgfSBmcm9tICdAdXBkZXZzL2NvbXBvbmVudHMvZm9ybS1jb250cm9scy9hYnN0cmFjdGlvbnMnO1xuaW1wb3J0IHsgdGFwLCBkZWJvdW5jZVRpbWUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgU2VsZWN0SXRlbSB9IGZyb20gJy4uL3NlbGVjdC1pdGVtJztcbmltcG9ydCB7IERlZmF1bHRzIH0gZnJvbSAnLi4vZGVmYXVsdHMnO1xuXG5pbXBvcnQgVXRpbHMgPSBUb29scy5VdGlscztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQmFzZVNlbGVjdENvbXBvbmVudCBleHRlbmRzIEJhc2VDb250cm9sIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgZ2V0IHdyYXBwZXJDbGFzc2VzKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5ob3N0V3JhcHBlckNsYXNzZXMoKTtcbiAgICB9XG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGRyb3Bkb3duT3BlblN0YXR1c0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIGNvbXBvbmVudEJveCA9IHZpZXdDaGlsZCgnY29tcG9uZW50Qm94JywgeyByZWFkOiBFbGVtZW50UmVmIH0pO1xuICAgIHNlYXJjaEJveCA9IHZpZXdDaGlsZCgnc2VhcmNoQm94JywgeyByZWFkOiBFbGVtZW50UmVmIH0pO1xuICAgIHNlYXJjaEJveENoaWxkID0gdmlld0NoaWxkKCdzZWFyY2hCb3hDaGlsZCcsIHsgcmVhZDogRWxlbWVudFJlZiB9KTtcbiAgICBsaXN0ID0gdmlld0NoaWxkKCdsaXN0JywgeyByZWFkOiBFbGVtZW50UmVmIH0pO1xuXG4gICAgLyoqXG4gICAgICogU2VsZWN0IGl0ZW1zLlxuICAgICAqIElmIHByb3ZpZGVkLCB0aGUgc2VsZWN0IHdpbGwgYmUgY29uc2lkZXJlZCBzdGF0aWMuXG4gICAgICovXG4gICAgaXRlbXMgPSBpbnB1dDxTZWxlY3RJdGVtW10+KCk7XG4gICAgLyoqXG4gICAgICogU3RvcmUgdXNlZCB0byBsb2FkL2ZpbHRlciB0aGUgaXRlbXMuXG4gICAgICovXG4gICAgc3RvcmUgPSBpbnB1dDxCYXNlU2VhcmNoU3RvcmU+KCk7XG4gICAgLyoqXG4gICAgICogT2JzZXJ2YWJsZSB1c2VkIHRvIGxvYWQvZmlsdGVyIHRoZSBpdGVtcy5cbiAgICAgKi9cbiAgICBvYnNlcnZhYmxlID0gaW5wdXQ8T2JzZXJ2YWJsZVNlYXJjaFR5cGU+KCk7XG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgcHJvcGVydHkgaW4gdGhlIG9iamVjdCB0aGF0IHJlcHJlc2VudHMgdGhlIElEL2tleSBvZiB0aGUgb3B0aW9uLlxuICAgICAqICoqTm90ZToqKiB1c2VkIG9ubHkgZm9yIHJlbW90ZSBkYXRhLlxuICAgICAqL1xuICAgIGl0ZW1LZXkgPSBpbnB1dDxzdHJpbmc+KCk7XG4gICAgLyoqXG4gICAgICogTmFtZSBvZiB0aGUgcHJvcGVydHkgaW4gdGhlIG9iamVjdCB0aGF0IHJlcHJlc2VudHMgdGhlIHZhbHVlL2Rlc2NyaXB0aW9uIG9mIHRoZSBvcHRpb24uXG4gICAgICogKipOb3RlOioqIHVzZWQgb25seSBmb3IgcmVtb3RlIGRhdGEuXG4gICAgICovXG4gICAgaXRlbVZhbHVlID0gaW5wdXQ8c3RyaW5nPigpO1xuICAgIC8qKlxuICAgICAqIE1heGltdW0gaGVpZ2h0IG9mIHRoZSBkcm9wZG93bi5cbiAgICAgKi9cbiAgICBkcm9wZG93bk1heEhlaWdodCA9IGlucHV0KERlZmF1bHRzLmRyb3Bkb3duTWF4SGVpZ2h0KTtcbiAgICB0eXBlYWhlYWREZWJvdW5jZSA9IGlucHV0KERlZmF1bHRzLnR5cGVhaGVhZERlYm91bmNlKTtcbiAgICBzaG91bGRBdXRvU2VhcmNoID0gaW5wdXQoRGVmYXVsdHMuc2hvdWxkQXV0b1NlYXJjaCk7XG4gICAgc2hvdWxkQ2xvc2VPbk91dHNpZGVDbGljayA9IGlucHV0KERlZmF1bHRzLnNob3VsZENsb3NlT25PdXRzaWRlQ2xpY2spO1xuICAgIGxheW91dCA9IGlucHV0PEhvcml6b250YWxWZXJ0aWNhbFR5cGU+KERlZmF1bHRzLmxheW91dCk7XG4gICAgbGF5b3V0Q2xhc3NlcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMubGF5b3V0KCkgPT09ICdob3Jpem9udGFsJyA/IFsnY29sJywgJ2FsaWduLXNlbGYtY2VudGVyJ10gOiBbXSk7XG4gICAgaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgbG9jYWxJdGVtczogU2VsZWN0SXRlbVtdID0gW107XG4gICAgbGlzdEl0ZW1zOiBMaXN0SXRlbVtdID0gW107XG4gICAgZHJvcGRvd25DbGFzc2VzID0gJ3NlbGVjdC1kcm9wZG93bi1jb250ZW50IHJlbW92ZS10b3AtcmFkaXVzJztcbiAgICBnZXQgaXNEcm9wZG93bk9wZW4oKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9pc0Ryb3Bkb3duT3BlbjtcbiAgICB9XG4gICAgc2V0IGlzRHJvcGRvd25PcGVuKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMuX2lzRHJvcGRvd25PcGVuID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy5kcm9wZG93bk9wZW5TdGF0dXNDaGFuZ2UuZW1pdCh2YWx1ZSk7XG5cbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmRyb3Bkb3duQ2xhc3NlcyArPSAnIHNlbGVjdC1kcm9wZG93bi1jb250ZW50LW9wZW4nO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5kcm9wZG93bkNsYXNzZXMgPSB0aGlzLmRyb3Bkb3duQ2xhc3Nlcy5yZXBsYWNlKCcgc2VsZWN0LWRyb3Bkb3duLWNvbnRlbnQtb3BlbicsICcnKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBnZXQgbGFiZWxTaXplQ2xhc3NlcygpOiBzdHJpbmcge1xuICAgICAgICBpZiAodGhpcy5sYXlvdXQoKSAhPT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgICByZXR1cm4gJ2Zvcm0tbGFiZWwnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIENvbHVtblNpemVIZWxwZXIuZ2V0Q2xhc3NlcyhcbiAgICAgICAgICAgICdjb2wtZm9ybS1sYWJlbCcsXG4gICAgICAgICAgICBDb2x1bW5TaXplSGVscGVyLmdldFNpemVDbGFzc2VzKHRoaXMubGFiZWxDb2xTaXplKCksIDMpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9jdXJyZW50VGVybT86IHN0cmluZztcbiAgICBwcm90ZWN0ZWQgX2xvY2FsQmFja3VwSXRlbXM6IFNlbGVjdEl0ZW1bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBoYXNFeHRlcm5hbExpc3QgPSBmYWxzZTtcbiAgICBwcml2YXRlIF9pc0Ryb3Bkb3duT3BlbiA9IGZhbHNlO1xuICAgIHByaXZhdGUgaG9zdFdyYXBwZXJDbGFzc2VzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5sYXlvdXQoKSA9PT0gJ2hvcml6b250YWwnID8gJ3JvdycgOiAnJyk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBzZWFyY2hJbnB1dFN1YmplY3QgPSBuZXcgU3ViamVjdDxzdHJpbmc+KCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkb21FdmVudHNTZXJ2aWNlID0gaW5qZWN0KERvbUV2ZW50c1NlcnZpY2UpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcG9zaXRpb25pbmdTZXJ2aWNlID0gaW5qZWN0KFBvc2l0aW9uaW5nU2VydmljZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBpbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHN1cGVyKCk7XG5cbiAgICAgICAgZWZmZWN0KCgpID0+IHtcbiAgICAgICAgICAgIGlmICghIXRoaXMuaXRlbXMoKSkge1xuICAgICAgICAgICAgICAgIHRoaXMuX3NldHVwTG9jYWxJdGVtcyh0aGlzLml0ZW1zKCkhKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuaGFzRXh0ZXJuYWxMaXN0ID0gIXRoaXMub2JzZXJ2YWJsZSgpICYmICF0aGlzLnN0b3JlKCk7XG5cbiAgICAgICAgaWYgKHRoaXMuc2hvdWxkQXV0b1NlYXJjaCgpKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5oYXNFeHRlcm5hbExpc3QpIHtcbiAgICAgICAgICAgICAgICB0aGlzLl9zZXR1cExvY2FsSXRlbXModGhpcy5pdGVtcygpISk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRoaXMuc2VhcmNoUmVtb3RlKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5oYXNFeHRlcm5hbExpc3QpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IHR5cGVhaGVhZFN1YnNjcmlwdGlvbiA9IHRoaXMuc2VhcmNoSW5wdXRTdWJqZWN0XG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAodmFsdWUgPT4gdGhpcy5fY3VycmVudFRlcm0gPSB2YWx1ZSksXG4gICAgICAgICAgICAgICAgZGVib3VuY2VUaW1lKHRoaXMudHlwZWFoZWFkRGVib3VuY2UoKSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKCkgPT4gdGhpcy5zZWFyY2hSZW1vdGUoKSk7XG5cbiAgICAgICAgdGhpcy5hZGRTdWJzY3JpcHRpb25zKHR5cGVhaGVhZFN1YnNjcmlwdGlvbik7XG4gICAgfVxuXG4gICAgb3BlbkRyb3Bkb3duKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmlzRHJvcGRvd25PcGVuID0gdHJ1ZTtcblxuICAgICAgICBpZiAodGhpcy5zaG91bGRDbG9zZU9uT3V0c2lkZUNsaWNrKCkpIHtcbiAgICAgICAgICAgIGNvbnN0IG91dHNpZGVDbGlja1N1YiA9IHRoaXMuZG9tRXZlbnRzU2VydmljZS5zdGFydE91dHNpZGVDbGlja0xpc3RlbmVyKFxuICAgICAgICAgICAgICAgICgpID0+IHRoaXMubmdab25lLnJ1bigoKSA9PiB0aGlzLmlzRHJvcGRvd25PcGVuID0gZmFsc2UpLFxuICAgICAgICAgICAgICAgIHRoaXMubGlzdCgpPy5uYXRpdmVFbGVtZW50LFxuICAgICAgICAgICAgICAgIHRydWUsXG4gICAgICAgICAgICAgICAgdGhpcy5jb21wb25lbnRCb3goKT8ubmF0aXZlRWxlbWVudCxcbiAgICAgICAgICAgICAgICB0aGlzLnNlYXJjaEJveCgpPy5uYXRpdmVFbGVtZW50XG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgdGhpcy5hZGRTdWJzY3JpcHRpb25zKG91dHNpZGVDbGlja1N1Yik7XG4gICAgICAgIH1cblxuICAgICAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuT3V0c2lkZUFuZ3VsYXIoKCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnBvc2l0aW9uaW5nU2VydmljZVxuICAgICAgICAgICAgICAgICAgICAuY29tcHV0ZVBvc2l0aW9uKHRoaXMuY29tcG9uZW50Qm94KCkhLCB0aGlzLmxpc3QoKSEsIHsgcGxhY2VtZW50OiAnYm90dG9tJyB9KVxuICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKHJlc3AgPT4gdGhpcy51cGRhdGVQb3NpdGlvbihyZXNwKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0sIHsgaW5qZWN0b3I6IHRoaXMuaW5qZWN0b3IgfSk7XG4gICAgfVxuXG4gICAgc2VhcmNoKHRlcm0/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuaGFzRXh0ZXJuYWxMaXN0KSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaExvY2FsKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaElucHV0U3ViamVjdC5uZXh0KHRlcm0gfHwgJycpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIF9zZXR1cExvY2FsSXRlbXMoaXRlbXM6IFNlbGVjdEl0ZW1bXSk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvY2FsSXRlbXMgPSBVdGlscy5kZWVwQ29weShpdGVtcyk7XG4gICAgICAgIHRoaXMuX2xvY2FsQmFja3VwSXRlbXMgPSBVdGlscy5kZWVwQ29weShpdGVtcyk7XG4gICAgICAgIGNvbnN0IHRlbXBJdGVtczogTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiB0aGlzLl9sb2NhbEJhY2t1cEl0ZW1zKSB7XG4gICAgICAgICAgICBjb25zdCBsaXN0SXRlbSA9IHRoaXMuZ2V0TGlzdEl0ZW0oaXRlbSk7XG4gICAgICAgICAgICBpdGVtLmxpc3RJdGVtID0gT2JqZWN0LmFzc2lnbihsaXN0SXRlbSwge30pO1xuXG4gICAgICAgICAgICB0ZW1wSXRlbXMucHVzaChsaXN0SXRlbSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmxpc3RJdGVtcyA9IFsuLi50ZW1wSXRlbXNdO1xuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2VhcmNoTG9jYWwoKTogdm9pZCB7XG4gICAgICAgIGlmICghdGhpcy5fY3VycmVudFRlcm0pIHtcbiAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1zID0gVXRpbHMuZGVlcENvcHkodGhpcy5fbG9jYWxCYWNrdXBJdGVtcy5tYXAobGkgPT4gbGkubGlzdEl0ZW0hKSk7XG4gICAgICAgICAgICB0aGlzLmxvY2FsSXRlbXMgPSBVdGlscy5kZWVwQ29weSh0aGlzLl9sb2NhbEJhY2t1cEl0ZW1zKTtcblxuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMubGlzdEl0ZW1zID0gVXRpbHMuZGVlcENvcHk8U2VsZWN0SXRlbVtdPih0aGlzLl9sb2NhbEJhY2t1cEl0ZW1zKS5maWx0ZXIoc2kgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBoYXNDaGlsZHJlbkluU2VhcmNoID0gZmFsc2U7XG5cbiAgICAgICAgICAgICAgICBpZiAoKHNpLmNoaWxkcmVuPy5sZW5ndGggfHwgMCkgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIGhhc0NoaWxkcmVuSW5TZWFyY2ggPSBzaS5jaGlsZHJlbiEuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAgICAgY2kgPT4gY2kudGV4dCEudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0aGlzLl9jdXJyZW50VGVybSEudG9Mb3dlckNhc2UoKSlcbiAgICAgICAgICAgICAgICAgICAgKS5sZW5ndGggPiAwO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiBzaS50ZXh0IS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuX2N1cnJlbnRUZXJtIS50b0xvd2VyQ2FzZSgpKSB8fCBoYXNDaGlsZHJlbkluU2VhcmNoO1xuICAgICAgICAgICAgfSkubWFwKHNpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBia3BJdGVtID0gdGhpcy5fbG9jYWxCYWNrdXBJdGVtcy5maW5kKGxiaSA9PiBsYmkudmFsdWUgPT09IHNpLnZhbHVlKTtcblxuICAgICAgICAgICAgICAgIGlmICgoYmtwSXRlbT8uY2hpbGRyZW4/Lmxlbmd0aCB8fCAwKSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgc2kuY2hpbGRyZW4gPSBbLi4uYmtwSXRlbSEuY2hpbGRyZW4hXS5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgICAgICBjaSA9PiBjaS50ZXh0IS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRoaXMuX2N1cnJlbnRUZXJtIS50b0xvd2VyQ2FzZSgpKVxuICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmdldExpc3RJdGVtKHNpKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNlYXJjaFJlbW90ZSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSB0cnVlO1xuICAgICAgICBjb25zdCByZXF1ZXN0ID0geyBkZXNjcmlwdGlvbjogdGhpcy5fY3VycmVudFRlcm0gfTtcbiAgICAgICAgY29uc3Qgb2JzZXJ2YWJsZSA9ICEhdGhpcy5vYnNlcnZhYmxlKCkgPyB0aGlzLm9ic2VydmFibGUoKSEocmVxdWVzdCkgOiB0aGlzLnN0b3JlKCkhLnNlYXJjaChyZXF1ZXN0KTtcblxuICAgICAgICBvYnNlcnZhYmxlLnN1YnNjcmliZShyID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGl0ZW1zOiBTZWxlY3RJdGVtW10gPSBbXTtcblxuICAgICAgICAgICAgci5yZWNvcmRzLmZvckVhY2goaXRlbSA9PiB7XG4gICAgICAgICAgICAgICAgaXRlbXMucHVzaCh7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBpdGVtW3RoaXMuaXRlbUtleSgpIV0sXG4gICAgICAgICAgICAgICAgICAgIHRleHQ6IGl0ZW1bdGhpcy5pdGVtVmFsdWUoKSFdLFxuICAgICAgICAgICAgICAgICAgICBvYmplY3REYXRhOiBpdGVtXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX3NldHVwTG9jYWxJdGVtcyhpdGVtcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0TGlzdEl0ZW0oaXRlbTogU2VsZWN0SXRlbSk6IExpc3RJdGVtIHtcbiAgICAgICAgbGV0IGxpc3RJdGVtOiBMaXN0SXRlbTtcblxuICAgICAgICBpZiAoISFpdGVtLmxpc3RJdGVtKSB7XG4gICAgICAgICAgICBsaXN0SXRlbSA9IGl0ZW0ubGlzdEl0ZW07XG4gICAgICAgICAgICBsaXN0SXRlbS5pZCA9IGl0ZW0udmFsdWU7XG4gICAgICAgICAgICBsaXN0SXRlbS50ZXh0ID0gaXRlbS50ZXh0O1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGlzdEl0ZW0gPSB7XG4gICAgICAgICAgICAgICAgaWQ6IGl0ZW0udmFsdWUsXG4gICAgICAgICAgICAgICAgdGV4dDogaXRlbS50ZXh0XG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKChpdGVtLmNoaWxkcmVuPy5sZW5ndGggfHwgMCkgPiAwKSB7XG4gICAgICAgICAgICBsaXN0SXRlbS5jaGlsZHJlbiA9IFsuLi5pdGVtLmNoaWxkcmVuIV0ubWFwKGMgPT4gdGhpcy5nZXRMaXN0SXRlbShjKSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gbGlzdEl0ZW07XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGVQb3NpdGlvbihyZXN1bHQ6IENvbXB1dGVQb3NpdGlvblJlc3VsdCk6IHZvaWQge1xuICAgICAgICBjb25zdCBjb21wb25lbnRCb3ggPSB0aGlzLmNvbXBvbmVudEJveCgpIS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xuICAgICAgICBjb25zdCBzZWFyY2hCb3hDaGlsZEVsZW1lbnQgPSB0aGlzLnNlYXJjaEJveENoaWxkKCk/Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGNvbnN0IGRkRWxlbWVudCA9IHRoaXMubGlzdCgpIS5uYXRpdmVFbGVtZW50O1xuXG4gICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoc2VhcmNoQm94Q2hpbGRFbGVtZW50LCAnd2lkdGgnLCBgJHtNYXRoLmFicyhjb21wb25lbnRCb3gud2lkdGgpfXB4YCwgUmVuZGVyZXJTdHlsZUZsYWdzMi5JbXBvcnRhbnQpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRkRWxlbWVudCwgJ3RvcCcsIGAke3Jlc3VsdC55ICsgc2VhcmNoQm94Q2hpbGRFbGVtZW50LnNjcm9sbEhlaWdodH1weGAsIFJlbmRlcmVyU3R5bGVGbGFnczIuSW1wb3J0YW50KTtcbiAgICAgICAgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShkZEVsZW1lbnQsICdsZWZ0JywgMCwgUmVuZGVyZXJTdHlsZUZsYWdzMi5JbXBvcnRhbnQpO1xuICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGRkRWxlbWVudCwgJ3dpZHRoJywgYCR7TWF0aC5hYnMoY29tcG9uZW50Qm94LndpZHRoKX1weGAsIFJlbmRlcmVyU3R5bGVGbGFnczIuSW1wb3J0YW50KTtcbiAgICB9XG5cbiAgICBhYnN0cmFjdCBjbGVhclNlbGVjdGlvbigpOiB2b2lkO1xuICAgIGFic3RyYWN0IG9uU2VsZWN0SXRlbShpdGVtOiBMaXN0SXRlbSk6IHZvaWQ7XG59XG4iXX0=
@@ -35,6 +35,7 @@ export class ListComponent {
35
35
  this.setupItems();
36
36
  }
37
37
  ngOnChanges(changes) {
38
+ this.setupStyle();
38
39
  this.updateWrapperClasses();
39
40
  if (!!changes['items']) {
40
41
  this.setupItems();
@@ -81,11 +82,11 @@ export class ListComponent {
81
82
  }
82
83
  }
83
84
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
84
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ListComponent, selector: "upd-list", inputs: { items: "items", shouldOverflow: "shouldOverflow", isFlush: "isFlush", isVisible: "isVisible", isHoverable: "isHoverable", shouldDisplayItemsCounter: "shouldDisplayItemsCounter", wrapperClasses: "wrapperClasses", maxHeight: "maxHeight" }, outputs: { checkboxChanged: "checkboxChanged", selectedItem: "selectedItem" }, host: { properties: { "class": "this.localWrapperClasses" } }, usesOnChanges: true, ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.List'\">\n @for (item of listItems; track item) {\n @if ((item.children?.length || 0) > 0) {\n <div class=\"list-group-header sticky-top\">{{ item.text }}</div>\n @for (child of item.children; track child) {\n <ng-container [ngTemplateOutlet]=\"listItemTpl\" [ngTemplateOutletContext]=\"{item:child}\"></ng-container>\n }\n } @else {\n <ng-container [ngTemplateOutlet]=\"listItemTpl\" [ngTemplateOutletContext]=\"{item:item}\"></ng-container>\n }\n } @empty {\n <div class=\"list-group-item\">\n <upd-icon tablerIcon=\"alert-triangle\" wrapperClasses=\"text-yellow\"></upd-icon>\n {{ t('NoRecordsFound') }}\n </div>\n }\n\n @if (shouldDisplayItemsCounter && listItems.length > 0) {\n <div class=\"list-items-counter bg-muted text-muted-fg\">\n {{ listItems.length }} {{ t(listItems.length === 1 ? 'Item' : 'Items') }}\n </div>\n }\n</ng-container>\n\n<ng-template #listItemTpl let-item=\"item\">\n <div class=\"list-group-item\" [class.list-group-item-action]=\"!item.hasLeftBox\" [class.active]=\"item.isActive\"\n [class.disabled]=\"item.isDisabled\" (click)=\"onSelectItem($event, item)\">\n @if (!item.hasLeftBox) {\n <span>{{ item.text }}</span>\n } @else {\n <div class=\"row\">\n <ng-container [ngTemplateOutlet]=\"leftBoxTpl\" [ngTemplateOutletContext]=\"{item:item}\"></ng-container>\n <div class=\"col text-truncate\">\n @if (!!item.text) {\n <div class=\"text-body d-block\">{{ item.text }}</div>\n }\n @if (!!item.description) {\n <div class=\"text-muted text-truncate mt-n1\">{{ item.description }}</div>\n }\n </div>\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #leftBoxTpl let-item=\"item\">\n <div class=\"col-auto\">\n @if (!!item.icon) {\n <upd-icon [model]=\"item.icon\"></upd-icon>\n } @else if (item.hasCheckbox) {\n <upd-checkbox (changed)=\"onCheckboxChange(item, $event)\" [isChecked]=\"item.isChecked || false\"\n [isSwitch]=\"item.isSwitch || false\"></upd-checkbox>\n <!-- [wrapperClasses]=\"'dropdown-item' + (item.isDisabled ? ' disabled' : '') +(item.isActive ? ' active' : '')\"-->\n\n } @else if (item.hasLeftBadge) {\n <span class=\"badge bg-{{item.badgeColor}} ms-auto\">{{ item.badgeText }}</span>\n } @else if (!!item.leftBoxImage || !!item.leftBoxText) {\n <a href=\"#\"> <!-- TODO: change. -->\n <span class=\"avatar\" style=\"background-image: url({{item.leftBoxImage}})\">{{ item.leftBoxText }}\n @if (item.hasBottomRightBadge) {\n <span class=\"badge bg-{{item.badgeColor}} ms-auto\">{{ item.badgeText }}</span>\n }\n </span>\n </a>\n }\n </div>\n</ng-template>\n", styles: ["upd-list{width:100%}.list-group-item{cursor:pointer}.list-hidden{display:none!important}.list-items-counter{position:sticky;bottom:0;right:0;float:right;border-top-left-radius:2px;opacity:.6;padding:2px 12px;margin-top:-24px}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i3.CheckboxComponent, selector: "upd-checkbox", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline", "isSwitch", "isIndeterminate"], outputs: ["changed", "isCheckedChange", "isIndeterminateChange"] }, { kind: "component", type: i4.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }], encapsulation: i0.ViewEncapsulation.None }); }
85
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: ListComponent, selector: "upd-list", inputs: { items: "items", shouldOverflow: "shouldOverflow", isFlush: "isFlush", isVisible: "isVisible", isHoverable: "isHoverable", shouldDisplayItemsCounter: "shouldDisplayItemsCounter", wrapperClasses: "wrapperClasses", maxHeight: "maxHeight" }, outputs: { checkboxChanged: "checkboxChanged", selectedItem: "selectedItem" }, host: { properties: { "class": "this.localWrapperClasses" } }, usesOnChanges: true, ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.List'\">\n @for (item of listItems; track item) {\n @if ((item.children?.length || 0) > 0) {\n <div class=\"list-group-header sticky-top\">{{ item.text }}</div>\n @for (child of item.children; track child) {\n <ng-container [ngTemplateOutlet]=\"listItemTpl\" [ngTemplateOutletContext]=\"{item:child}\"></ng-container>\n }\n } @else {\n <ng-container [ngTemplateOutlet]=\"listItemTpl\" [ngTemplateOutletContext]=\"{item:item}\"></ng-container>\n }\n } @empty {\n <div class=\"list-group-item\">\n <upd-icon tablerIcon=\"alert-triangle\" wrapperClasses=\"text-yellow\"></upd-icon>\n {{ t('NoRecordsFound') }}\n </div>\n }\n\n @if (shouldDisplayItemsCounter && listItems.length > 0) {\n <div class=\"list-items-counter bg-muted text-muted-fg\">\n {{ listItems.length }} {{ t(listItems.length === 1 ? 'Item' : 'Items') }}\n </div>\n }\n</ng-container>\n\n<ng-template #listItemTpl let-item=\"item\">\n <div class=\"list-group-item\" [class.list-group-item-action]=\"!item.hasLeftBox\" [class.active]=\"item.isActive\"\n [class.disabled]=\"item.isDisabled\" (click)=\"onSelectItem($event, item)\">\n @if (!item.hasLeftBox) {\n <span>{{ item.text }}</span>\n } @else {\n <div class=\"row\">\n <ng-container [ngTemplateOutlet]=\"leftBoxTpl\" [ngTemplateOutletContext]=\"{item:item}\"></ng-container>\n <div class=\"col text-truncate align-content-center\">\n @if (!!item.text) {\n <div class=\"text-body d-block\">{{ item.text }}</div>\n }\n @if (!!item.description) {\n <div class=\"text-muted text-truncate mt-n1\">{{ item.description }}</div>\n }\n </div>\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #leftBoxTpl let-item=\"item\">\n <div class=\"col-auto\">\n @if (!!item.icon) {\n <upd-icon [model]=\"item.icon\"></upd-icon>\n } @else if (item.hasCheckbox) {\n <upd-checkbox (changed)=\"onCheckboxChange(item, $event)\" [isChecked]=\"item.isChecked || false\"\n [isSwitch]=\"item.isSwitch || false\"></upd-checkbox>\n <!-- [wrapperClasses]=\"'dropdown-item' + (item.isDisabled ? ' disabled' : '') +(item.isActive ? ' active' : '')\"-->\n\n } @else if (item.hasLeftBadge) {\n <span class=\"badge bg-{{item.badgeColor}} ms-auto\">{{ item.badgeText }}</span>\n } @else if (!!item.leftBoxImage || !!item.leftBoxText) {\n <a href=\"#\"> <!-- TODO: change. -->\n <span class=\"avatar\" style=\"background-image: url({{item.leftBoxImage}})\">{{ item.leftBoxText }}\n @if (item.hasBottomRightBadge) {\n <span class=\"badge bg-{{item.badgeColor}} ms-auto\">{{ item.badgeText }}</span>\n }\n </span>\n </a>\n } @else if (!!item.leftBoxHtml) {\n <div [innerHTML]=\"item.leftBoxHtml\"></div>\n }\n </div>\n</ng-template>\n", styles: ["upd-list{width:100%}.list-group-item{cursor:pointer}.list-hidden{display:none!important}.list-items-counter{position:sticky;bottom:0;right:0;float:right;border-top-left-radius:2px;opacity:.6;padding:2px 12px;margin-top:-24px}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }, { kind: "component", type: i3.CheckboxComponent, selector: "upd-checkbox", inputs: ["wrapperClasses", "value", "customClasses", "isChecked", "isInline", "isSwitch", "isIndeterminate"], outputs: ["changed", "isCheckedChange", "isIndeterminateChange"] }, { kind: "component", type: i4.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }], encapsulation: i0.ViewEncapsulation.None }); }
85
86
  }
86
87
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: ListComponent, decorators: [{
87
88
  type: Component,
88
- args: [{ selector: 'upd-list', encapsulation: ViewEncapsulation.None, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.List'\">\n @for (item of listItems; track item) {\n @if ((item.children?.length || 0) > 0) {\n <div class=\"list-group-header sticky-top\">{{ item.text }}</div>\n @for (child of item.children; track child) {\n <ng-container [ngTemplateOutlet]=\"listItemTpl\" [ngTemplateOutletContext]=\"{item:child}\"></ng-container>\n }\n } @else {\n <ng-container [ngTemplateOutlet]=\"listItemTpl\" [ngTemplateOutletContext]=\"{item:item}\"></ng-container>\n }\n } @empty {\n <div class=\"list-group-item\">\n <upd-icon tablerIcon=\"alert-triangle\" wrapperClasses=\"text-yellow\"></upd-icon>\n {{ t('NoRecordsFound') }}\n </div>\n }\n\n @if (shouldDisplayItemsCounter && listItems.length > 0) {\n <div class=\"list-items-counter bg-muted text-muted-fg\">\n {{ listItems.length }} {{ t(listItems.length === 1 ? 'Item' : 'Items') }}\n </div>\n }\n</ng-container>\n\n<ng-template #listItemTpl let-item=\"item\">\n <div class=\"list-group-item\" [class.list-group-item-action]=\"!item.hasLeftBox\" [class.active]=\"item.isActive\"\n [class.disabled]=\"item.isDisabled\" (click)=\"onSelectItem($event, item)\">\n @if (!item.hasLeftBox) {\n <span>{{ item.text }}</span>\n } @else {\n <div class=\"row\">\n <ng-container [ngTemplateOutlet]=\"leftBoxTpl\" [ngTemplateOutletContext]=\"{item:item}\"></ng-container>\n <div class=\"col text-truncate\">\n @if (!!item.text) {\n <div class=\"text-body d-block\">{{ item.text }}</div>\n }\n @if (!!item.description) {\n <div class=\"text-muted text-truncate mt-n1\">{{ item.description }}</div>\n }\n </div>\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #leftBoxTpl let-item=\"item\">\n <div class=\"col-auto\">\n @if (!!item.icon) {\n <upd-icon [model]=\"item.icon\"></upd-icon>\n } @else if (item.hasCheckbox) {\n <upd-checkbox (changed)=\"onCheckboxChange(item, $event)\" [isChecked]=\"item.isChecked || false\"\n [isSwitch]=\"item.isSwitch || false\"></upd-checkbox>\n <!-- [wrapperClasses]=\"'dropdown-item' + (item.isDisabled ? ' disabled' : '') +(item.isActive ? ' active' : '')\"-->\n\n } @else if (item.hasLeftBadge) {\n <span class=\"badge bg-{{item.badgeColor}} ms-auto\">{{ item.badgeText }}</span>\n } @else if (!!item.leftBoxImage || !!item.leftBoxText) {\n <a href=\"#\"> <!-- TODO: change. -->\n <span class=\"avatar\" style=\"background-image: url({{item.leftBoxImage}})\">{{ item.leftBoxText }}\n @if (item.hasBottomRightBadge) {\n <span class=\"badge bg-{{item.badgeColor}} ms-auto\">{{ item.badgeText }}</span>\n }\n </span>\n </a>\n }\n </div>\n</ng-template>\n", styles: ["upd-list{width:100%}.list-group-item{cursor:pointer}.list-hidden{display:none!important}.list-items-counter{position:sticky;bottom:0;right:0;float:right;border-top-left-radius:2px;opacity:.6;padding:2px 12px;margin-top:-24px}\n"] }]
89
+ args: [{ selector: 'upd-list', encapsulation: ViewEncapsulation.None, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.List'\">\n @for (item of listItems; track item) {\n @if ((item.children?.length || 0) > 0) {\n <div class=\"list-group-header sticky-top\">{{ item.text }}</div>\n @for (child of item.children; track child) {\n <ng-container [ngTemplateOutlet]=\"listItemTpl\" [ngTemplateOutletContext]=\"{item:child}\"></ng-container>\n }\n } @else {\n <ng-container [ngTemplateOutlet]=\"listItemTpl\" [ngTemplateOutletContext]=\"{item:item}\"></ng-container>\n }\n } @empty {\n <div class=\"list-group-item\">\n <upd-icon tablerIcon=\"alert-triangle\" wrapperClasses=\"text-yellow\"></upd-icon>\n {{ t('NoRecordsFound') }}\n </div>\n }\n\n @if (shouldDisplayItemsCounter && listItems.length > 0) {\n <div class=\"list-items-counter bg-muted text-muted-fg\">\n {{ listItems.length }} {{ t(listItems.length === 1 ? 'Item' : 'Items') }}\n </div>\n }\n</ng-container>\n\n<ng-template #listItemTpl let-item=\"item\">\n <div class=\"list-group-item\" [class.list-group-item-action]=\"!item.hasLeftBox\" [class.active]=\"item.isActive\"\n [class.disabled]=\"item.isDisabled\" (click)=\"onSelectItem($event, item)\">\n @if (!item.hasLeftBox) {\n <span>{{ item.text }}</span>\n } @else {\n <div class=\"row\">\n <ng-container [ngTemplateOutlet]=\"leftBoxTpl\" [ngTemplateOutletContext]=\"{item:item}\"></ng-container>\n <div class=\"col text-truncate align-content-center\">\n @if (!!item.text) {\n <div class=\"text-body d-block\">{{ item.text }}</div>\n }\n @if (!!item.description) {\n <div class=\"text-muted text-truncate mt-n1\">{{ item.description }}</div>\n }\n </div>\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #leftBoxTpl let-item=\"item\">\n <div class=\"col-auto\">\n @if (!!item.icon) {\n <upd-icon [model]=\"item.icon\"></upd-icon>\n } @else if (item.hasCheckbox) {\n <upd-checkbox (changed)=\"onCheckboxChange(item, $event)\" [isChecked]=\"item.isChecked || false\"\n [isSwitch]=\"item.isSwitch || false\"></upd-checkbox>\n <!-- [wrapperClasses]=\"'dropdown-item' + (item.isDisabled ? ' disabled' : '') +(item.isActive ? ' active' : '')\"-->\n\n } @else if (item.hasLeftBadge) {\n <span class=\"badge bg-{{item.badgeColor}} ms-auto\">{{ item.badgeText }}</span>\n } @else if (!!item.leftBoxImage || !!item.leftBoxText) {\n <a href=\"#\"> <!-- TODO: change. -->\n <span class=\"avatar\" style=\"background-image: url({{item.leftBoxImage}})\">{{ item.leftBoxText }}\n @if (item.hasBottomRightBadge) {\n <span class=\"badge bg-{{item.badgeColor}} ms-auto\">{{ item.badgeText }}</span>\n }\n </span>\n </a>\n } @else if (!!item.leftBoxHtml) {\n <div [innerHTML]=\"item.leftBoxHtml\"></div>\n }\n </div>\n</ng-template>\n", styles: ["upd-list{width:100%}.list-group-item{cursor:pointer}.list-hidden{display:none!important}.list-items-counter{position:sticky;bottom:0;right:0;float:right;border-top-left-radius:2px;opacity:.6;padding:2px 12px;margin-top:-24px}\n"] }]
89
90
  }], propDecorators: { localWrapperClasses: [{
90
91
  type: HostBinding,
91
92
  args: ['class']
@@ -110,4 +111,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
110
111
  }], selectedItem: [{
111
112
  type: Output
112
113
  }] } });
113
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC9zcmMvbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC9zcmMvbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFFVixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixZQUFZLEVBRUcsTUFBTSxFQUN4QixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQVF6RCxNQUFNLE9BQU8sYUFBYTtJQU4xQjtRQU8wQix3QkFBbUIsR0FBRyxFQUFFLENBQUM7UUFPL0M7O1dBRUc7UUFDTSxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUNoQzs7O1dBR0c7UUFDTSxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQiw4QkFBeUIsR0FBRyxLQUFLLENBQUM7UUFDbEMsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFPVixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7UUFDL0MsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBRS9ELGNBQVMsR0FBb0IsRUFBRSxDQUFDO1FBQ2hDLHFCQUFnQixHQUFlLEVBQUUsQ0FBQztRQUUxQixxQkFBZ0IsR0FBZSxFQUFFLENBQUM7UUFFekIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBb0VwRDtJQWxFRyxRQUFRO1FBQ0osSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ2xCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRUQsV0FBVyxDQUFDLE9BQXNCO1FBQzlCLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxDQUFDO1FBRTVCLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUN0QixDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQixDQUFDLElBQWMsRUFBRSxTQUFrQjtRQUMvQyxJQUFJLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMzQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQsWUFBWSxDQUFDLEdBQVEsRUFBRSxJQUFjO1FBQ2pDLEdBQUcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8sVUFBVTtRQUNkLE1BQU0sU0FBUyxHQUFvQixFQUFFLENBQUM7UUFFdEMsSUFBSSxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDckIsTUFBTSxNQUFNLEdBQUcsSUFBSSxhQUFhLENBQUMsRUFBRSxDQUFDLENBQUM7WUFFckMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO2dCQUNqQyxNQUFNLENBQUMsUUFBUSxHQUFHLEVBQUUsQ0FBQztnQkFDckIsRUFBRSxDQUFDLFFBQVEsRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxNQUFNLENBQUMsUUFBUyxDQUFDLElBQUksQ0FBQyxJQUFJLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkYsQ0FBQztZQUVELFNBQVMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsR0FBRyxTQUFTLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRU8sVUFBVTtRQUNkLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsRUFBRSxZQUFZLEVBQUUsSUFBSSxDQUFDLFNBQVMsRUFBRSxtQkFBbUIsQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUN2SCxDQUFDO0lBQ0wsQ0FBQztJQUVPLG9CQUFvQjtRQUN4QixJQUFJLENBQUMsbUJBQW1CLEdBQUcsWUFBWSxHQUFHLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1FBRXBFLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ2YsSUFBSSxDQUFDLG1CQUFtQixJQUFJLG1CQUFtQixDQUFDO1FBQ3BELENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUNuQixJQUFJLENBQUMsbUJBQW1CLElBQUksd0JBQXdCLENBQUM7UUFDekQsQ0FBQztRQUVELElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxtQkFBbUIsSUFBSSxpQkFBaUIsQ0FBQztRQUNsRCxDQUFDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsbUJBQW1CLElBQUksY0FBYyxDQUFDO1FBQy9DLENBQUM7SUFDTCxDQUFDOzhHQXZHUSxhQUFhO2tHQUFiLGFBQWEsMmNDeEIxQix1bUdBbUVBOzsyRkQzQ2EsYUFBYTtrQkFOekIsU0FBUzsrQkFDSSxVQUFVLGlCQUdMLGlCQUFpQixDQUFDLElBQUk7OEJBR2YsbUJBQW1CO3NCQUF4QyxXQUFXO3VCQUFDLE9BQU87Z0JBTVgsS0FBSztzQkFBYixLQUFLO2dCQUlHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyx5QkFBeUI7c0JBQWpDLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFLRyxTQUFTO3NCQUFqQixLQUFLO2dCQUVhLGVBQWU7c0JBQWpDLE1BQU07Z0JBQ1ksWUFBWTtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIEhvc3RCaW5kaW5nLFxuICAgIElucHV0LFxuICAgIFJlbmRlcmVyMixcbiAgICBFbGVtZW50UmVmLFxuICAgIE9uSW5pdCxcbiAgICBSZW5kZXJlclN0eWxlRmxhZ3MyLFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIE91dHB1dCxcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgT25DaGFuZ2VzLFxuICAgIFNpbXBsZUNoYW5nZXMsIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgTGlzdEl0ZW0gfSBmcm9tICcuL21vZGVscy9saXN0LWl0ZW0nO1xuaW1wb3J0IHsgTGlzdEl0ZW1Nb2RlbCB9IGZyb20gJy4vbW9kZWxzL2xpc3QtaXRlbS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAndXBkLWxpc3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZVxufSlcbmV4cG9ydCBjbGFzcyBMaXN0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIEBIb3N0QmluZGluZygnY2xhc3MnKSBsb2NhbFdyYXBwZXJDbGFzc2VzID0gJyc7XG5cbiAgICAvKipcbiAgICAgKiBMaXN0IGl0ZW1zLlxuICAgICAqIElmIHByb3ZpZGVkLCB0aGUgc2luZ2xlIHdpbGwgYmUgY29uc2lkZXJlZCBzdGF0aWMuXG4gICAgICovXG4gICAgQElucHV0KCkgaXRlbXM/OiBMaXN0SXRlbVtdO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGNvbnRlbnQgc2hvdWxkIG92ZXJmbG93IG9yIG5vdC5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBzaG91bGRPdmVyZmxvdyA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIGxpc3Qgd2lsbCBmaXQgdGhlIGxheW91dCBvZiB0aGUgY29udGFpbmVyLlxuICAgICAqIElmIHNldCB0byBmYWxzZSwgdGhlIGxpc3QncyByb3VuZCBib3JkZXJzIHdpbGwgYmUgdmlzaWJsZS4gSXQnbGwgaGF2ZSBhIGRldGFjaGVkIGJlaGF2aW9yLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIGlzRmx1c2ggPSB0cnVlO1xuICAgIEBJbnB1dCgpIGlzVmlzaWJsZSA9IHRydWU7XG4gICAgQElucHV0KCkgaXNIb3ZlcmFibGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBzaG91bGREaXNwbGF5SXRlbXNDb3VudGVyID0gZmFsc2U7XG4gICAgQElucHV0KCkgd3JhcHBlckNsYXNzZXMgPSAnJztcbiAgICAvKipcbiAgICAgKiBNYXhpbXVtIGhlaWdodCBvZiB0aGUgY29tcG9uZW50LlxuICAgICAqIE5vdGU6IFRoZSB1bml0IHNob3VsZCBhbHNvIGJlIHByb3ZpZGVkLCBpLmUuOiAzNTBweCwgMzVyZW0sIGV0Yy5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBtYXhIZWlnaHQ/OiBzdHJpbmc7XG5cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgY2hlY2tib3hDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcjxMaXN0SXRlbT4oKTtcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgc2VsZWN0ZWRJdGVtID0gbmV3IEV2ZW50RW1pdHRlcjxMaXN0SXRlbT4oKTtcblxuICAgIGxpc3RJdGVtczogTGlzdEl0ZW1Nb2RlbFtdID0gW107XG4gICAgY3VycmVudFNlbGVjdGlvbjogTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBsb2NhbEJhY2t1cEl0ZW1zOiBMaXN0SXRlbVtdID0gW107XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0KEVsZW1lbnRSZWYpO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0dXBTdHlsZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVdyYXBwZXJDbGFzc2VzKCk7XG4gICAgICAgIHRoaXMuc2V0dXBJdGVtcygpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVXcmFwcGVyQ2xhc3NlcygpO1xuXG4gICAgICAgIGlmICghIWNoYW5nZXNbJ2l0ZW1zJ10pIHtcbiAgICAgICAgICAgIHRoaXMuc2V0dXBJdGVtcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgb25DaGVja2JveENoYW5nZShpdGVtOiBMaXN0SXRlbSwgaXNDaGVja2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIGl0ZW0uaXNDaGVja2VkID0gaXNDaGVja2VkO1xuICAgICAgICB0aGlzLmNoZWNrYm94Q2hhbmdlZC5lbWl0KGl0ZW0pO1xuICAgIH1cblxuICAgIG9uU2VsZWN0SXRlbShldnQ6IGFueSwgaXRlbTogTGlzdEl0ZW0pOiB2b2lkIHtcbiAgICAgICAgZXZ0LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbS5lbWl0KGl0ZW0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBJdGVtcygpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgdGVtcEl0ZW1zOiBMaXN0SXRlbU1vZGVsW10gPSBbXTtcblxuICAgICAgICB0aGlzLml0ZW1zPy5mb3JFYWNoKGl0ID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHBhcmVudCA9IG5ldyBMaXN0SXRlbU1vZGVsKGl0KTtcblxuICAgICAgICAgICAgaWYgKChpdC5jaGlsZHJlbj8ubGVuZ3RoIHx8IDApID4gMCkge1xuICAgICAgICAgICAgICAgIHBhcmVudC5jaGlsZHJlbiA9IFtdO1xuICAgICAgICAgICAgICAgIGl0LmNoaWxkcmVuPy5mb3JFYWNoKGNoaWxkID0+IHBhcmVudC5jaGlsZHJlbiEucHVzaChuZXcgTGlzdEl0ZW1Nb2RlbChjaGlsZCkpKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGVtcEl0ZW1zLnB1c2gocGFyZW50KTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5saXN0SXRlbXMgPSBbLi4udGVtcEl0ZW1zXTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldHVwU3R5bGUoKTogdm9pZCB7XG4gICAgICAgIGlmICghIXRoaXMubWF4SGVpZ2h0KSB7XG4gICAgICAgICAgICB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCAnbWF4LWhlaWdodCcsIHRoaXMubWF4SGVpZ2h0LCBSZW5kZXJlclN0eWxlRmxhZ3MyLkltcG9ydGFudCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVdyYXBwZXJDbGFzc2VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmxvY2FsV3JhcHBlckNsYXNzZXMgPSAnbGlzdC1ncm91cCcgKyBgICR7dGhpcy53cmFwcGVyQ2xhc3Nlc31gO1xuXG4gICAgICAgIGlmICh0aGlzLmlzRmx1c2gpIHtcbiAgICAgICAgICAgIHRoaXMubG9jYWxXcmFwcGVyQ2xhc3NlcyArPSAnIGxpc3QtZ3JvdXAtZmx1c2gnO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuaXNIb3ZlcmFibGUpIHtcbiAgICAgICAgICAgIHRoaXMubG9jYWxXcmFwcGVyQ2xhc3NlcyArPSAnICBsaXN0LWdyb3VwLWhvdmVyYWJsZSc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zaG91bGRPdmVyZmxvdykge1xuICAgICAgICAgICAgdGhpcy5sb2NhbFdyYXBwZXJDbGFzc2VzICs9ICcgIG92ZXJmbG93LWF1dG8nO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmlzVmlzaWJsZSkge1xuICAgICAgICAgICAgdGhpcy5sb2NhbFdyYXBwZXJDbGFzc2VzICs9ICcgbGlzdC1oaWRkZW4nO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHQ7IHByZWZpeDogJ1VwRGV2cy5MaXN0J1wiPlxuICAgIEBmb3IgKGl0ZW0gb2YgbGlzdEl0ZW1zOyB0cmFjayBpdGVtKSB7XG4gICAgICAgIEBpZiAoKGl0ZW0uY2hpbGRyZW4/Lmxlbmd0aCB8fCAwKSA+IDApIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWdyb3VwLWhlYWRlciBzdGlja3ktdG9wXCI+e3sgaXRlbS50ZXh0IH19PC9kaXY+XG4gICAgICAgICAgICBAZm9yIChjaGlsZCBvZiBpdGVtLmNoaWxkcmVuOyB0cmFjayBjaGlsZCkge1xuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibGlzdEl0ZW1UcGxcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2l0ZW06Y2hpbGR9XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0SXRlbVRwbFwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTppdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgfSBAZW1wdHkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCI+XG4gICAgICAgICAgICA8dXBkLWljb24gdGFibGVySWNvbj1cImFsZXJ0LXRyaWFuZ2xlXCIgd3JhcHBlckNsYXNzZXM9XCJ0ZXh0LXllbGxvd1wiPjwvdXBkLWljb24+XG4gICAgICAgICAgICB7eyB0KCdOb1JlY29yZHNGb3VuZCcpIH19XG4gICAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIEBpZiAoc2hvdWxkRGlzcGxheUl0ZW1zQ291bnRlciAmJiBsaXN0SXRlbXMubGVuZ3RoID4gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdC1pdGVtcy1jb3VudGVyIGJnLW11dGVkIHRleHQtbXV0ZWQtZmdcIj5cbiAgICAgICAgICAgIHt7IGxpc3RJdGVtcy5sZW5ndGggfX0ge3sgdChsaXN0SXRlbXMubGVuZ3RoID09PSAxID8gJ0l0ZW0nIDogJ0l0ZW1zJykgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjbGlzdEl0ZW1UcGwgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgPGRpdiBjbGFzcz1cImxpc3QtZ3JvdXAtaXRlbVwiIFtjbGFzcy5saXN0LWdyb3VwLWl0ZW0tYWN0aW9uXT1cIiFpdGVtLmhhc0xlZnRCb3hcIiBbY2xhc3MuYWN0aXZlXT1cIml0ZW0uaXNBY3RpdmVcIlxuICAgICAgICBbY2xhc3MuZGlzYWJsZWRdPVwiaXRlbS5pc0Rpc2FibGVkXCIgKGNsaWNrKT1cIm9uU2VsZWN0SXRlbSgkZXZlbnQsIGl0ZW0pXCI+XG4gICAgICAgIEBpZiAoIWl0ZW0uaGFzTGVmdEJveCkge1xuICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS50ZXh0IH19PC9zcGFuPlxuICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxlZnRCb3hUcGxcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwie2l0ZW06aXRlbX1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sIHRleHQtdHJ1bmNhdGVcIj5cbiAgICAgICAgICAgICAgICAgICAgQGlmICghIWl0ZW0udGV4dCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtYm9keSBkLWJsb2NrXCI+e3sgaXRlbS50ZXh0IH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGlmICghIWl0ZW0uZGVzY3JpcHRpb24pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LW11dGVkIHRleHQtdHJ1bmNhdGUgbXQtbjFcIj57eyBpdGVtLmRlc2NyaXB0aW9uIH19PC9kaXY+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2xlZnRCb3hUcGwgbGV0LWl0ZW09XCJpdGVtXCI+XG4gICAgPGRpdiBjbGFzcz1cImNvbC1hdXRvXCI+XG4gICAgICAgIEBpZiAoISFpdGVtLmljb24pIHtcbiAgICAgICAgICAgIDx1cGQtaWNvbiBbbW9kZWxdPVwiaXRlbS5pY29uXCI+PC91cGQtaWNvbj5cbiAgICAgICAgfSBAZWxzZSBpZiAoaXRlbS5oYXNDaGVja2JveCkge1xuICAgICAgICAgICAgPHVwZC1jaGVja2JveCAoY2hhbmdlZCk9XCJvbkNoZWNrYm94Q2hhbmdlKGl0ZW0sICRldmVudClcIiBbaXNDaGVja2VkXT1cIml0ZW0uaXNDaGVja2VkIHx8IGZhbHNlXCJcbiAgICAgICAgICAgICAgICBbaXNTd2l0Y2hdPVwiaXRlbS5pc1N3aXRjaCB8fCBmYWxzZVwiPjwvdXBkLWNoZWNrYm94PlxuICAgICAgICAgICAgPCEtLSAgICAgICAgW3dyYXBwZXJDbGFzc2VzXT1cIidkcm9wZG93bi1pdGVtJyArIChpdGVtLmlzRGlzYWJsZWQgPyAnIGRpc2FibGVkJyA6ICcnKSArKGl0ZW0uaXNBY3RpdmUgPyAnIGFjdGl2ZScgOiAnJylcIi0tPlxuXG4gICAgICAgIH0gQGVsc2UgaWYgKGl0ZW0uaGFzTGVmdEJhZGdlKSB7XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImJhZGdlIGJnLXt7aXRlbS5iYWRnZUNvbG9yfX0gbXMtYXV0b1wiPnt7IGl0ZW0uYmFkZ2VUZXh0IH19PC9zcGFuPlxuICAgICAgICB9IEBlbHNlIGlmICghIWl0ZW0ubGVmdEJveEltYWdlIHx8ICEhaXRlbS5sZWZ0Qm94VGV4dCkge1xuICAgICAgICAgICAgPGEgaHJlZj1cIiNcIj4gPCEtLSBUT0RPOiBjaGFuZ2UuIC0tPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXZhdGFyXCIgc3R5bGU9XCJiYWNrZ3JvdW5kLWltYWdlOiB1cmwoe3tpdGVtLmxlZnRCb3hJbWFnZX19KVwiPnt7IGl0ZW0ubGVmdEJveFRleHQgfX1cbiAgICAgICAgICAgICAgICAgICAgQGlmIChpdGVtLmhhc0JvdHRvbVJpZ2h0QmFkZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmcte3tpdGVtLmJhZGdlQ29sb3J9fSBtcy1hdXRvXCI+e3sgaXRlbS5iYWRnZVRleHQgfX08L3NwYW4+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L2E+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC9zcmMvbGlzdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbGlzdC9zcmMvbGlzdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULFdBQVcsRUFDWCxLQUFLLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFFVixtQkFBbUIsRUFDbkIsaUJBQWlCLEVBQ2pCLE1BQU0sRUFDTixZQUFZLEVBRUcsTUFBTSxFQUN4QixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7OztBQVF6RCxNQUFNLE9BQU8sYUFBYTtJQU4xQjtRQU8wQix3QkFBbUIsR0FBRyxFQUFFLENBQUM7UUFPL0M7O1dBRUc7UUFDTSxtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUNoQzs7O1dBR0c7UUFDTSxZQUFPLEdBQUcsSUFBSSxDQUFDO1FBQ2YsY0FBUyxHQUFHLElBQUksQ0FBQztRQUNqQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQUNwQiw4QkFBeUIsR0FBRyxLQUFLLENBQUM7UUFDbEMsbUJBQWMsR0FBRyxFQUFFLENBQUM7UUFPVixvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFZLENBQUM7UUFDL0MsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBWSxDQUFDO1FBRS9ELGNBQVMsR0FBb0IsRUFBRSxDQUFDO1FBQ2hDLHFCQUFnQixHQUFlLEVBQUUsQ0FBQztRQUUxQixxQkFBZ0IsR0FBZSxFQUFFLENBQUM7UUFFekIsYUFBUSxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUM3QixlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0tBcUVwRDtJQW5FRyxRQUFRO1FBQ0osSUFB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QjtzQkFBeEMsV0FBVzt1QkFBQyxPQUFPO2dCQU1YLEtBQUs7c0JBQWIsS0FBSztnQkFJRyxjQUFjO3NCQUF0QixLQUFLO2dCQUtHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUs7Z0JBQ0cseUJBQXlCO3NCQUFqQyxLQUFLO2dCQUNHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBS0csU0FBUztzQkFBakIsS0FBSztnQkFFYSxlQUFlO3NCQUFqQyxNQUFNO2dCQUNZLFlBQVk7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBIb3N0QmluZGluZyxcbiAgICBJbnB1dCxcbiAgICBSZW5kZXJlcjIsXG4gICAgRWxlbWVudFJlZixcbiAgICBPbkluaXQsXG4gICAgUmVuZGVyZXJTdHlsZUZsYWdzMixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBPdXRwdXQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIE9uQ2hhbmdlcyxcbiAgICBTaW1wbGVDaGFuZ2VzLCBpbmplY3Rcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IExpc3RJdGVtIH0gZnJvbSAnLi9tb2RlbHMvbGlzdC1pdGVtJztcbmltcG9ydCB7IExpc3RJdGVtTW9kZWwgfSBmcm9tICcuL21vZGVscy9saXN0LWl0ZW0ubW9kZWwnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3VwZC1saXN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbGlzdC5jb21wb25lbnQuc2NzcyddLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgTGlzdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcbiAgICBASG9zdEJpbmRpbmcoJ2NsYXNzJykgbG9jYWxXcmFwcGVyQ2xhc3NlcyA9ICcnO1xuXG4gICAgLyoqXG4gICAgICogTGlzdCBpdGVtcy5cbiAgICAgKiBJZiBwcm92aWRlZCwgdGhlIHNpbmdsZSB3aWxsIGJlIGNvbnNpZGVyZWQgc3RhdGljLlxuICAgICAqL1xuICAgIEBJbnB1dCgpIGl0ZW1zPzogTGlzdEl0ZW1bXTtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBjb250ZW50IHNob3VsZCBvdmVyZmxvdyBvciBub3QuXG4gICAgICovXG4gICAgQElucHV0KCkgc2hvdWxkT3ZlcmZsb3cgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBsaXN0IHdpbGwgZml0IHRoZSBsYXlvdXQgb2YgdGhlIGNvbnRhaW5lci5cbiAgICAgKiBJZiBzZXQgdG8gZmFsc2UsIHRoZSBsaXN0J3Mgcm91bmQgYm9yZGVycyB3aWxsIGJlIHZpc2libGUuIEl0J2xsIGhhdmUgYSBkZXRhY2hlZCBiZWhhdmlvci5cbiAgICAgKi9cbiAgICBASW5wdXQoKSBpc0ZsdXNoID0gdHJ1ZTtcbiAgICBASW5wdXQoKSBpc1Zpc2libGUgPSB0cnVlO1xuICAgIEBJbnB1dCgpIGlzSG92ZXJhYmxlID0gZmFsc2U7XG4gICAgQElucHV0KCkgc2hvdWxkRGlzcGxheUl0ZW1zQ291bnRlciA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIHdyYXBwZXJDbGFzc2VzID0gJyc7XG4gICAgLyoqXG4gICAgICogTWF4aW11bSBoZWlnaHQgb2YgdGhlIGNvbXBvbmVudC5cbiAgICAgKiBOb3RlOiBUaGUgdW5pdCBzaG91bGQgYWxzbyBiZSBwcm92aWRlZCwgaS5lLjogMzUwcHgsIDM1cmVtLCBldGMuXG4gICAgICovXG4gICAgQElucHV0KCkgbWF4SGVpZ2h0Pzogc3RyaW5nO1xuXG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IGNoZWNrYm94Q2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8TGlzdEl0ZW0+KCk7XG4gICAgQE91dHB1dCgpIHJlYWRvbmx5IHNlbGVjdGVkSXRlbSA9IG5ldyBFdmVudEVtaXR0ZXI8TGlzdEl0ZW0+KCk7XG5cbiAgICBsaXN0SXRlbXM6IExpc3RJdGVtTW9kZWxbXSA9IFtdO1xuICAgIGN1cnJlbnRTZWxlY3Rpb246IExpc3RJdGVtW10gPSBbXTtcblxuICAgIHByaXZhdGUgbG9jYWxCYWNrdXBJdGVtczogTGlzdEl0ZW1bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSByZW5kZXJlciA9IGluamVjdChSZW5kZXJlcjIpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmKTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnNldHVwU3R5bGUoKTtcbiAgICAgICAgdGhpcy51cGRhdGVXcmFwcGVyQ2xhc3NlcygpO1xuICAgICAgICB0aGlzLnNldHVwSXRlbXMoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2V0dXBTdHlsZSgpO1xuICAgICAgICB0aGlzLnVwZGF0ZVdyYXBwZXJDbGFzc2VzKCk7XG5cbiAgICAgICAgaWYgKCEhY2hhbmdlc1snaXRlbXMnXSkge1xuICAgICAgICAgICAgdGhpcy5zZXR1cEl0ZW1zKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBvbkNoZWNrYm94Q2hhbmdlKGl0ZW06IExpc3RJdGVtLCBpc0NoZWNrZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICAgICAgaXRlbS5pc0NoZWNrZWQgPSBpc0NoZWNrZWQ7XG4gICAgICAgIHRoaXMuY2hlY2tib3hDaGFuZ2VkLmVtaXQoaXRlbSk7XG4gICAgfVxuXG4gICAgb25TZWxlY3RJdGVtKGV2dDogYW55LCBpdGVtOiBMaXN0SXRlbSk6IHZvaWQge1xuICAgICAgICBldnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRJdGVtLmVtaXQoaXRlbSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzZXR1cEl0ZW1zKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0ZW1wSXRlbXM6IExpc3RJdGVtTW9kZWxbXSA9IFtdO1xuXG4gICAgICAgIHRoaXMuaXRlbXM/LmZvckVhY2goaXQgPT4ge1xuICAgICAgICAgICAgY29uc3QgcGFyZW50ID0gbmV3IExpc3RJdGVtTW9kZWwoaXQpO1xuXG4gICAgICAgICAgICBpZiAoKGl0LmNoaWxkcmVuPy5sZW5ndGggfHwgMCkgPiAwKSB7XG4gICAgICAgICAgICAgICAgcGFyZW50LmNoaWxkcmVuID0gW107XG4gICAgICAgICAgICAgICAgaXQuY2hpbGRyZW4/LmZvckVhY2goY2hpbGQgPT4gcGFyZW50LmNoaWxkcmVuIS5wdXNoKG5ldyBMaXN0SXRlbU1vZGVsKGNoaWxkKSkpO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0ZW1wSXRlbXMucHVzaChwYXJlbnQpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLmxpc3RJdGVtcyA9IFsuLi50ZW1wSXRlbXNdO1xuICAgIH1cblxuICAgIHByaXZhdGUgc2V0dXBTdHlsZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKCEhdGhpcy5tYXhIZWlnaHQpIHtcbiAgICAgICAgICAgIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUodGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQsICdtYXgtaGVpZ2h0JywgdGhpcy5tYXhIZWlnaHQsIFJlbmRlcmVyU3R5bGVGbGFnczIuSW1wb3J0YW50KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlV3JhcHBlckNsYXNzZXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubG9jYWxXcmFwcGVyQ2xhc3NlcyA9ICdsaXN0LWdyb3VwJyArIGAgJHt0aGlzLndyYXBwZXJDbGFzc2VzfWA7XG5cbiAgICAgICAgaWYgKHRoaXMuaXNGbHVzaCkge1xuICAgICAgICAgICAgdGhpcy5sb2NhbFdyYXBwZXJDbGFzc2VzICs9ICcgbGlzdC1ncm91cC1mbHVzaCc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5pc0hvdmVyYWJsZSkge1xuICAgICAgICAgICAgdGhpcy5sb2NhbFdyYXBwZXJDbGFzc2VzICs9ICcgIGxpc3QtZ3JvdXAtaG92ZXJhYmxlJztcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNob3VsZE92ZXJmbG93KSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsV3JhcHBlckNsYXNzZXMgKz0gJyAgb3ZlcmZsb3ctYXV0byc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoIXRoaXMuaXNWaXNpYmxlKSB7XG4gICAgICAgICAgICB0aGlzLmxvY2FsV3JhcHBlckNsYXNzZXMgKz0gJyBsaXN0LWhpZGRlbic7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyICp0cmFuc2xvY289XCJsZXQgdDsgcHJlZml4OiAnVXBEZXZzLkxpc3QnXCI+XG4gICAgQGZvciAoaXRlbSBvZiBsaXN0SXRlbXM7IHRyYWNrIGl0ZW0pIHtcbiAgICAgICAgQGlmICgoaXRlbS5jaGlsZHJlbj8ubGVuZ3RoIHx8IDApID4gMCkge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImxpc3QtZ3JvdXAtaGVhZGVyIHN0aWNreS10b3BcIj57eyBpdGVtLnRleHQgfX08L2Rpdj5cbiAgICAgICAgICAgIEBmb3IgKGNoaWxkIG9mIGl0ZW0uY2hpbGRyZW47IHRyYWNrIGNoaWxkKSB7XG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsaXN0SXRlbVRwbFwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTpjaGlsZH1cIj48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxpc3RJdGVtVHBsXCIgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntpdGVtOml0ZW19XCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgIH1cbiAgICB9IEBlbXB0eSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWdyb3VwLWl0ZW1cIj5cbiAgICAgICAgICAgIDx1cGQtaWNvbiB0YWJsZXJJY29uPVwiYWxlcnQtdHJpYW5nbGVcIiB3cmFwcGVyQ2xhc3Nlcz1cInRleHQteWVsbG93XCI+PC91cGQtaWNvbj5cbiAgICAgICAgICAgIHt7IHQoJ05vUmVjb3Jkc0ZvdW5kJykgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuXG4gICAgQGlmIChzaG91bGREaXNwbGF5SXRlbXNDb3VudGVyICYmIGxpc3RJdGVtcy5sZW5ndGggPiAwKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0LWl0ZW1zLWNvdW50ZXIgYmctbXV0ZWQgdGV4dC1tdXRlZC1mZ1wiPlxuICAgICAgICAgICAge3sgbGlzdEl0ZW1zLmxlbmd0aCB9fSB7eyB0KGxpc3RJdGVtcy5sZW5ndGggPT09IDEgPyAnSXRlbScgOiAnSXRlbXMnKSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICB9XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNsaXN0SXRlbVRwbCBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdC1ncm91cC1pdGVtXCIgW2NsYXNzLmxpc3QtZ3JvdXAtaXRlbS1hY3Rpb25dPVwiIWl0ZW0uaGFzTGVmdEJveFwiIFtjbGFzcy5hY3RpdmVdPVwiaXRlbS5pc0FjdGl2ZVwiXG4gICAgICAgIFtjbGFzcy5kaXNhYmxlZF09XCJpdGVtLmlzRGlzYWJsZWRcIiAoY2xpY2spPVwib25TZWxlY3RJdGVtKCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAgQGlmICghaXRlbS5oYXNMZWZ0Qm94KSB7XG4gICAgICAgICAgICA8c3Bhbj57eyBpdGVtLnRleHQgfX08L3NwYW4+XG4gICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwibGVmdEJveFRwbFwiIFtuZ1RlbXBsYXRlT3V0bGV0Q29udGV4dF09XCJ7aXRlbTppdGVtfVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wgdGV4dC10cnVuY2F0ZSBhbGlnbi1jb250ZW50LWNlbnRlclwiPlxuICAgICAgICAgICAgICAgICAgICBAaWYgKCEhaXRlbS50ZXh0KSB7XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1ib2R5IGQtYmxvY2tcIj57eyBpdGVtLnRleHQgfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBAaWYgKCEhaXRlbS5kZXNjcmlwdGlvbikge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtbXV0ZWQgdGV4dC10cnVuY2F0ZSBtdC1uMVwiPnt7IGl0ZW0uZGVzY3JpcHRpb24gfX08L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxuZy10ZW1wbGF0ZSAjbGVmdEJveFRwbCBsZXQtaXRlbT1cIml0ZW1cIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLWF1dG9cIj5cbiAgICAgICAgQGlmICghIWl0ZW0uaWNvbikge1xuICAgICAgICAgICAgPHVwZC1pY29uIFttb2RlbF09XCJpdGVtLmljb25cIj48L3VwZC1pY29uPlxuICAgICAgICB9IEBlbHNlIGlmIChpdGVtLmhhc0NoZWNrYm94KSB7XG4gICAgICAgICAgICA8dXBkLWNoZWNrYm94IChjaGFuZ2VkKT1cIm9uQ2hlY2tib3hDaGFuZ2UoaXRlbSwgJGV2ZW50KVwiIFtpc0NoZWNrZWRdPVwiaXRlbS5pc0NoZWNrZWQgfHwgZmFsc2VcIlxuICAgICAgICAgICAgICAgIFtpc1N3aXRjaF09XCJpdGVtLmlzU3dpdGNoIHx8IGZhbHNlXCI+PC91cGQtY2hlY2tib3g+XG4gICAgICAgICAgICA8IS0tICAgICAgICBbd3JhcHBlckNsYXNzZXNdPVwiJ2Ryb3Bkb3duLWl0ZW0nICsgKGl0ZW0uaXNEaXNhYmxlZCA/ICcgZGlzYWJsZWQnIDogJycpICsoaXRlbS5pc0FjdGl2ZSA/ICcgYWN0aXZlJyA6ICcnKVwiLS0+XG5cbiAgICAgICAgfSBAZWxzZSBpZiAoaXRlbS5oYXNMZWZ0QmFkZ2UpIHtcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFkZ2UgYmcte3tpdGVtLmJhZGdlQ29sb3J9fSBtcy1hdXRvXCI+e3sgaXRlbS5iYWRnZVRleHQgfX08L3NwYW4+XG4gICAgICAgIH0gQGVsc2UgaWYgKCEhaXRlbS5sZWZ0Qm94SW1hZ2UgfHwgISFpdGVtLmxlZnRCb3hUZXh0KSB7XG4gICAgICAgICAgICA8YSBocmVmPVwiI1wiPiA8IS0tIFRPRE86IGNoYW5nZS4gLS0+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJhdmF0YXJcIiBzdHlsZT1cImJhY2tncm91bmQtaW1hZ2U6IHVybCh7e2l0ZW0ubGVmdEJveEltYWdlfX0pXCI+e3sgaXRlbS5sZWZ0Qm94VGV4dCB9fVxuICAgICAgICAgICAgICAgICAgICBAaWYgKGl0ZW0uaGFzQm90dG9tUmlnaHRCYWRnZSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWRnZSBiZy17e2l0ZW0uYmFkZ2VDb2xvcn19IG1zLWF1dG9cIj57eyBpdGVtLmJhZGdlVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvYT5cbiAgICAgICAgfSBAZWxzZSBpZiAoISFpdGVtLmxlZnRCb3hIdG1sKSB7XG4gICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwiaXRlbS5sZWZ0Qm94SHRtbFwiPjwvZGl2PlxuICAgICAgICB9XG4gICAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3Qvc3JjL21vZGVscy9saXN0LWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEljb25Nb2RlbCB9IGZyb20gJ0B1cGRldnMvaWNvbnMnO1xuaW1wb3J0IHsgQmdDb2xvclN0eWxlVHlwZSB9IGZyb20gJ0B1cGRldnMvc2RrL3R5cGVzJztcblxuaW1wb3J0IHsgQmFkZ2VQb3NpdGlvblR5cGUgfSBmcm9tICcuL2JhZGdlLXBvc2l0aW9uLnR5cGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RJdGVtIHtcbiAgICBpZD86IGFueTtcbiAgICB0ZXh0Pzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIGljb24/OiBJY29uTW9kZWw7XG4gICAgaXNDaGVja2VkPzogYm9vbGVhbjtcbiAgICBpc1N3aXRjaD86IGJvb2xlYW47XG4gICAgaGFzQ2hlY2tib3g/OiBib29sZWFuO1xuICAgIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgICBsZWZ0Qm94VGV4dD86IHN0cmluZztcbiAgICBsZWZ0Qm94SW1hZ2U/OiBzdHJpbmc7XG4gICAgYmFkZ2VDb2xvcj86IEJnQ29sb3JTdHlsZVR5cGU7XG4gICAgYmFkZ2VUZXh0Pzogc3RyaW5nO1xuICAgIGJhZGdlUG9zaXRpb24/OiBCYWRnZVBvc2l0aW9uVHlwZTtcbiAgICBjaGlsZHJlbj86IExpc3RJdGVtW107XG59XG4iXX0=
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3Qvc3JjL21vZGVscy9saXN0LWl0ZW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEljb25Nb2RlbCB9IGZyb20gJ0B1cGRldnMvaWNvbnMnO1xuaW1wb3J0IHsgQmdDb2xvclN0eWxlVHlwZSB9IGZyb20gJ0B1cGRldnMvc2RrL3R5cGVzJztcblxuaW1wb3J0IHsgQmFkZ2VQb3NpdGlvblR5cGUgfSBmcm9tICcuL2JhZGdlLXBvc2l0aW9uLnR5cGUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIExpc3RJdGVtIHtcbiAgICBpZD86IGFueTtcbiAgICB0ZXh0Pzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIGljb24/OiBJY29uTW9kZWw7XG4gICAgaXNDaGVja2VkPzogYm9vbGVhbjtcbiAgICBpc1N3aXRjaD86IGJvb2xlYW47XG4gICAgaGFzQ2hlY2tib3g/OiBib29sZWFuO1xuICAgIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgICBsZWZ0Qm94VGV4dD86IHN0cmluZztcbiAgICBsZWZ0Qm94SW1hZ2U/OiBzdHJpbmc7XG4gICAgbGVmdEJveEh0bWw/OiBzdHJpbmc7XG4gICAgYmFkZ2VDb2xvcj86IEJnQ29sb3JTdHlsZVR5cGU7XG4gICAgYmFkZ2VUZXh0Pzogc3RyaW5nO1xuICAgIGJhZGdlUG9zaXRpb24/OiBCYWRnZVBvc2l0aW9uVHlwZTtcbiAgICBjaGlsZHJlbj86IExpc3RJdGVtW107XG59XG4iXX0=
@@ -1,6 +1,11 @@
1
1
  export class ListItemModel {
2
2
  get hasLeftBox() {
3
- return !!this.leftBoxImage || !!this.leftBoxText || !!this.badgeColor || this.hasCheckbox === true || !!this.icon;
3
+ return !!this.leftBoxImage
4
+ || !!this.leftBoxText
5
+ || !!this.badgeColor
6
+ || this.hasCheckbox === true
7
+ || !!this.icon
8
+ || !!this.leftBoxHtml;
4
9
  }
5
10
  get hasLeftBadge() {
6
11
  return !!this.badgeColor && this.badgePosition === 'left';
@@ -12,4 +17,4 @@ export class ListItemModel {
12
17
  Object.assign(this, init);
13
18
  }
14
19
  }
15
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3Qvc3JjL21vZGVscy9saXN0LWl0ZW0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxPQUFPLGFBQWE7SUFnQnRCLElBQUksVUFBVTtRQUNWLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDdEgsQ0FBQztJQUNELElBQUksWUFBWTtRQUNaLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyxNQUFNLENBQUM7SUFDOUQsQ0FBQztJQUNELElBQUksbUJBQW1CO1FBQ25CLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLGFBQWEsS0FBSyx1QkFBdUIsQ0FBQztJQUMvRSxDQUFDO0lBRUQsWUFBWSxJQUFlO1FBQ3ZCLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEljb25Nb2RlbCB9IGZyb20gJ0B1cGRldnMvaWNvbnMnO1xuaW1wb3J0IHsgQmdDb2xvclN0eWxlVHlwZSB9IGZyb20gJ0B1cGRldnMvc2RrL3R5cGVzJztcblxuaW1wb3J0IHsgTGlzdEl0ZW0gfSBmcm9tICcuL2xpc3QtaXRlbSc7XG5pbXBvcnQgeyBCYWRnZVBvc2l0aW9uVHlwZSB9IGZyb20gJy4vYmFkZ2UtcG9zaXRpb24udHlwZSc7XG5cbmV4cG9ydCBjbGFzcyBMaXN0SXRlbU1vZGVsIGltcGxlbWVudHMgTGlzdEl0ZW0ge1xuICAgIGlkPzogYW55O1xuICAgIHRleHQ/OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgaWNvbj86IEljb25Nb2RlbDtcbiAgICBpc0NoZWNrZWQ/OiBib29sZWFuO1xuICAgIGlzU3dpdGNoPzogYm9vbGVhbjtcbiAgICBoYXNDaGVja2JveD86IGJvb2xlYW47XG4gICAgaXNEaXNhYmxlZD86IGJvb2xlYW47XG4gICAgaXNBY3RpdmU/OiBib29sZWFuO1xuICAgIGxlZnRCb3hUZXh0Pzogc3RyaW5nO1xuICAgIGxlZnRCb3hJbWFnZT86IHN0cmluZztcbiAgICBiYWRnZUNvbG9yPzogQmdDb2xvclN0eWxlVHlwZTtcbiAgICBiYWRnZVRleHQ/OiBzdHJpbmc7XG4gICAgYmFkZ2VQb3NpdGlvbj86IEJhZGdlUG9zaXRpb25UeXBlO1xuICAgIGNoaWxkcmVuPzogTGlzdEl0ZW1Nb2RlbFtdO1xuICAgIGdldCBoYXNMZWZ0Qm94KCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISF0aGlzLmxlZnRCb3hJbWFnZSB8fCAhIXRoaXMubGVmdEJveFRleHQgfHwgISF0aGlzLmJhZGdlQ29sb3IgfHwgdGhpcy5oYXNDaGVja2JveCA9PT0gdHJ1ZSB8fCAhIXRoaXMuaWNvbjtcbiAgICB9XG4gICAgZ2V0IGhhc0xlZnRCYWRnZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5iYWRnZUNvbG9yICYmIHRoaXMuYmFkZ2VQb3NpdGlvbiA9PT0gJ2xlZnQnO1xuICAgIH1cbiAgICBnZXQgaGFzQm90dG9tUmlnaHRCYWRnZSgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5iYWRnZUNvbG9yICYmIHRoaXMuYmFkZ2VQb3NpdGlvbiA9PT0gJ2xlZnQtYm94LWJvdHRvbS1yaWdodCc7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoaW5pdD86IExpc3RJdGVtKSB7XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcywgaW5pdCk7XG4gICAgfVxufVxuIl19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1pdGVtLm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2xpc3Qvc3JjL21vZGVscy9saXN0LWl0ZW0ubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBTUEsTUFBTSxPQUFPLGFBQWE7SUFpQnRCLElBQUksVUFBVTtRQUNWLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZO2VBQ25CLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVztlQUNsQixDQUFDLENBQUMsSUFBSSxDQUFDLFVBQVU7ZUFDakIsSUFBSSxDQUFDLFdBQVcsS0FBSyxJQUFJO2VBQ3pCLENBQUMsQ0FBQyxJQUFJLENBQUMsSUFBSTtlQUNYLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzlCLENBQUM7SUFDRCxJQUFJLFlBQVk7UUFDWixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssTUFBTSxDQUFDO0lBQzlELENBQUM7SUFDRCxJQUFJLG1CQUFtQjtRQUNuQixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxhQUFhLEtBQUssdUJBQXVCLENBQUM7SUFDL0UsQ0FBQztJQUVELFlBQVksSUFBZTtRQUN2QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUM5QixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJY29uTW9kZWwgfSBmcm9tICdAdXBkZXZzL2ljb25zJztcbmltcG9ydCB7IEJnQ29sb3JTdHlsZVR5cGUgfSBmcm9tICdAdXBkZXZzL3Nkay90eXBlcyc7XG5cbmltcG9ydCB7IExpc3RJdGVtIH0gZnJvbSAnLi9saXN0LWl0ZW0nO1xuaW1wb3J0IHsgQmFkZ2VQb3NpdGlvblR5cGUgfSBmcm9tICcuL2JhZGdlLXBvc2l0aW9uLnR5cGUnO1xuXG5leHBvcnQgY2xhc3MgTGlzdEl0ZW1Nb2RlbCBpbXBsZW1lbnRzIExpc3RJdGVtIHtcbiAgICBpZD86IGFueTtcbiAgICB0ZXh0Pzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICAgIGljb24/OiBJY29uTW9kZWw7XG4gICAgaXNDaGVja2VkPzogYm9vbGVhbjtcbiAgICBpc1N3aXRjaD86IGJvb2xlYW47XG4gICAgaGFzQ2hlY2tib3g/OiBib29sZWFuO1xuICAgIGlzRGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGlzQWN0aXZlPzogYm9vbGVhbjtcbiAgICBsZWZ0Qm94VGV4dD86IHN0cmluZztcbiAgICBsZWZ0Qm94SW1hZ2U/OiBzdHJpbmc7XG4gICAgbGVmdEJveEh0bWw/OiBzdHJpbmc7XG4gICAgYmFkZ2VDb2xvcj86IEJnQ29sb3JTdHlsZVR5cGU7XG4gICAgYmFkZ2VUZXh0Pzogc3RyaW5nO1xuICAgIGJhZGdlUG9zaXRpb24/OiBCYWRnZVBvc2l0aW9uVHlwZTtcbiAgICBjaGlsZHJlbj86IExpc3RJdGVtTW9kZWxbXTtcbiAgICBnZXQgaGFzTGVmdEJveCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy5sZWZ0Qm94SW1hZ2VcbiAgICAgICAgICAgIHx8ICEhdGhpcy5sZWZ0Qm94VGV4dFxuICAgICAgICAgICAgfHwgISF0aGlzLmJhZGdlQ29sb3JcbiAgICAgICAgICAgIHx8IHRoaXMuaGFzQ2hlY2tib3ggPT09IHRydWVcbiAgICAgICAgICAgIHx8ICEhdGhpcy5pY29uXG4gICAgICAgICAgICB8fCAhIXRoaXMubGVmdEJveEh0bWw7XG4gICAgfVxuICAgIGdldCBoYXNMZWZ0QmFkZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuYmFkZ2VDb2xvciAmJiB0aGlzLmJhZGdlUG9zaXRpb24gPT09ICdsZWZ0JztcbiAgICB9XG4gICAgZ2V0IGhhc0JvdHRvbVJpZ2h0QmFkZ2UoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiAhIXRoaXMuYmFkZ2VDb2xvciAmJiB0aGlzLmJhZGdlUG9zaXRpb24gPT09ICdsZWZ0LWJveC1ib3R0b20tcmlnaHQnO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKGluaXQ/OiBMaXN0SXRlbSkge1xuICAgICAgICBPYmplY3QuYXNzaWduKHRoaXMsIGluaXQpO1xuICAgIH1cbn1cbiJdfQ==
@@ -52,7 +52,7 @@ export class PaginatorComponent {
52
52
  this.changed.emit();
53
53
  }
54
54
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PaginatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
55
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: PaginatorComponent, selector: "upd-paginator", inputs: { startPageIndex: { classPropertyName: "startPageIndex", publicName: "startPageIndex", isSignal: true, isRequired: false, transformFunction: null }, currentPage: { classPropertyName: "currentPage", publicName: "currentPage", isSignal: true, isRequired: false, transformFunction: null }, wrapperClasses: { classPropertyName: "wrapperClasses", publicName: "wrapperClasses", isSignal: true, isRequired: false, transformFunction: null }, availablePageSizes: { classPropertyName: "availablePageSizes", publicName: "availablePageSizes", isSignal: true, isRequired: false, transformFunction: null }, defaultInitPageSize: { classPropertyName: "defaultInitPageSize", publicName: "defaultInitPageSize", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, shouldDisplayFirstIcon: { classPropertyName: "shouldDisplayFirstIcon", publicName: "shouldDisplayFirstIcon", isSignal: true, isRequired: false, transformFunction: null }, shouldDisplayFirstText: { classPropertyName: "shouldDisplayFirstText", publicName: "shouldDisplayFirstText", isSignal: true, isRequired: false, transformFunction: null }, shouldDisplayPreviousIcon: { classPropertyName: "shouldDisplayPreviousIcon", publicName: "shouldDisplayPreviousIcon", isSignal: true, isRequired: false, transformFunction: null }, shouldDisplayPreviousText: { classPropertyName: "shouldDisplayPreviousText", publicName: "shouldDisplayPreviousText", isSignal: true, isRequired: false, transformFunction: null }, shouldDisplayNextIcon: { classPropertyName: "shouldDisplayNextIcon", publicName: "shouldDisplayNextIcon", isSignal: true, isRequired: false, transformFunction: null }, shouldDisplayNextText: { classPropertyName: "shouldDisplayNextText", publicName: "shouldDisplayNextText", isSignal: true, isRequired: false, transformFunction: null }, shouldDisplayLastIcon: { classPropertyName: "shouldDisplayLastIcon", publicName: "shouldDisplayLastIcon", isSignal: true, isRequired: false, transformFunction: null }, shouldDisplayLastText: { classPropertyName: "shouldDisplayLastText", publicName: "shouldDisplayLastText", isSignal: true, isRequired: false, transformFunction: null }, previousDescription: { classPropertyName: "previousDescription", publicName: "previousDescription", isSignal: true, isRequired: false, transformFunction: null }, nextDescription: { classPropertyName: "nextDescription", publicName: "nextDescription", isSignal: true, isRequired: false, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed", currentPage: "currentPageChange", pageSize: "pageSizeChange" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Paginator'\">\n <div class=\"d-flex m-0 ms-auto align-items-center\">\n <div class=\"text-secondary me-2\">\n {{ t('ItemsPerPage') }}\n </div>\n <upd-select [items]=\"pageOptions()\" [selected]=\"selectedPageSize()\" (selectedItem)=\"onSelectPageSize($event)\"\n [shouldShowClearButton]=\"false\" [isCompact]=\"true\" [useSystemStyle]=\"true\"></upd-select>\n <p class=\"m-0 text-secondary ms-4\">\n @if (totalRecords() > 0) {\n {{ t('FromToOf', { first: currentFirstDisplayed(), last: currentLastDisplayed(), totalRecords: totalRecords() }) }}\n } @else {\n {{ t('NoRecords') }}\n }\n </p>\n <ul class=\"pagination m-0 ms-4\">\n @if (!previousDescription()) {\n <li class=\"page-item\">\n <upd-button customClasses=\"page-link\" [isLink]=\"true\" [isIcon]=\"!shouldDisplayFirstText()\" colorStyle=\"secondary\"\n [attr.tabindex]=\"isFirstDisabled() ? -1 : 0\" [attr.aria-disabled]=\"isFirstDisabled()\"\n [isDisabled]=\"isPreviousDisabled()\" (clicked)=\"selectPage(startPageIndex())\">\n @if (shouldDisplayFirstIcon()) {\n <upd-icon tablerIcon=\"chevron-left-pipe\"></upd-icon>\n }\n @if (shouldDisplayFirstText()) {\n {{ t('First') }}\n }\n </upd-button>\n </li>\n }\n\n <li class=\"page-item\" [class.page-prev]=\"!!previousDescription()\">\n <upd-button customClasses=\"page-link\" [isLink]=\"true\" [isIcon]=\"!shouldDisplayPreviousText()\" colorStyle=\"secondary\"\n [attr.tabindex]=\"isPreviousDisabled() ? -1 : 0\" [attr.aria-disabled]=\"isPreviousDisabled()\"\n [isDisabled]=\"isPreviousDisabled()\" (clicked)=\"selectPage(currentPage() - 1)\">\n @if (!!previousDescription()) {\n <div class=\"page-item-subtitle\">{{ t('Previous') }}</div>\n <div class=\"page-item-title\">{{ textService.getText(previousDescription()) }}</div>\n } @else {\n @if (shouldDisplayPreviousIcon()) {\n <upd-icon tablerIcon=\"chevron-left\"></upd-icon>\n }\n @if (shouldDisplayPreviousText()) {\n {{ t('PreviousShort') }}\n }\n }\n </upd-button>\n </li>\n\n <li class=\"page-item\" [class.page-next]=\"!!nextDescription()\">\n <upd-button customClasses=\"page-link\" [isLink]=\"true\" [isIcon]=\"!shouldDisplayNextText()\" colorStyle=\"secondary\"\n [attr.tabindex]=\"isNextDisabled() ? -1 : 0\" [attr.aria-disabled]=\"isNextDisabled()\" [isDisabled]=\"isNextDisabled()\"\n (clicked)=\"selectPage(currentPage() + 1)\">\n @if (!!nextDescription()) {\n <div class=\"page-item-subtitle\">{{ t('Next') }}</div>\n <div class=\"page-item-title\">{{ textService.getText(nextDescription()) }}</div>\n } @else {\n @if (shouldDisplayNextText()) {\n {{ t('NextShort') }}\n }\n @if (shouldDisplayNextIcon()) {\n <upd-icon tablerIcon=\"chevron-right\"></upd-icon>\n }\n }\n </upd-button>\n </li>\n\n @if (!nextDescription()) {\n <li class=\"page-item\">\n <upd-button customClasses=\"page-link\" [isLink]=\"true\" [isIcon]=\"!shouldDisplayLastText()\" colorStyle=\"secondary\"\n [attr.tabindex]=\"isLastDisabled() ? -1 : 0\" [attr.aria-disabled]=\"isLastDisabled()\" [isDisabled]=\"isNextDisabled()\"\n (clicked)=\"selectPage(totalPages() - (startPageIndex() === 0 ? 1 : 0))\">\n @if (shouldDisplayLastText()) {\n {{ t('Last') }}\n }\n @if (shouldDisplayLastIcon()) {\n <upd-icon tablerIcon=\"chevron-right-pipe\"></upd-icon>\n }\n </upd-button>\n </li>\n }\n </ul>\n </div>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "component", type: i1.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i2.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "component", type: i3.SelectComponent, selector: "upd-select", inputs: ["useSystemStyle", "shouldShowClearButton", "isCompact", "selected"], outputs: ["selectedItem"] }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
55
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: PaginatorComponent, selector: "upd-paginator", inputs: { startPageIndex: { classPropertyName: "startPageIndex", publicName: "startPageIndex", isSignal: true, isRequired: false, transformFunction: null }, currentPage: { classPropertyName: "currentPage", publicName: "currentPage", isSignal: true, isRequired: false, transformFunction: null }, wrapperClasses: { classPropertyName: "wrapperClasses", publicName: "wrapperClasses", isSignal: true, isRequired: false, transformFunction: null }, availablePageSizes: { classPropertyName: "availablePageSizes", publicName: "availablePageSizes", isSignal: true, isRequired: false, transformFunction: null }, defaultInitPageSize: { classPropertyName: "defaultInitPageSize", publicName: "defaultInitPageSize", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, shouldDisplayFirstIcon: { classPropertyName: "shouldDisplayFirstIcon", publicName: "shouldDisplayFirstIcon", isSignal: true, isRequired: false, transformFunction: null }, shouldDisplayFirstText: { classPropertyName: "shouldDisplayFirstText", publicName: "shouldDisplayFirstText", isSignal: true, isRequired: false, transformFunction: null }, shouldDisplayPreviousIcon: { classPropertyName: "shouldDisplayPreviousIcon", publicName: "shouldDisplayPreviousIcon", isSignal: true, isRequired: false, transformFunction: null }, shouldDisplayPreviousText: { classPropertyName: "shouldDisplayPreviousText", publicName: "shouldDisplayPreviousText", isSignal: true, isRequired: false, transformFunction: null }, shouldDisplayNextIcon: { classPropertyName: "shouldDisplayNextIcon", publicName: "shouldDisplayNextIcon", isSignal: true, isRequired: false, transformFunction: null }, shouldDisplayNextText: { classPropertyName: "shouldDisplayNextText", publicName: "shouldDisplayNextText", isSignal: true, isRequired: false, transformFunction: null }, shouldDisplayLastIcon: { classPropertyName: "shouldDisplayLastIcon", publicName: "shouldDisplayLastIcon", isSignal: true, isRequired: false, transformFunction: null }, shouldDisplayLastText: { classPropertyName: "shouldDisplayLastText", publicName: "shouldDisplayLastText", isSignal: true, isRequired: false, transformFunction: null }, previousDescription: { classPropertyName: "previousDescription", publicName: "previousDescription", isSignal: true, isRequired: false, transformFunction: null }, nextDescription: { classPropertyName: "nextDescription", publicName: "nextDescription", isSignal: true, isRequired: false, transformFunction: null }, totalRecords: { classPropertyName: "totalRecords", publicName: "totalRecords", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { changed: "changed", currentPage: "currentPageChange", pageSize: "pageSizeChange" }, host: { properties: { "class": "this.hostClasses" } }, ngImport: i0, template: "<ng-container *transloco=\"let t; prefix: 'UpDevs.Paginator'\">\n <div class=\"d-flex m-0 ms-auto align-items-center\">\n <div class=\"text-secondary me-2\">\n {{ t('ItemsPerPage') }}\n </div>\n <upd-select [items]=\"pageOptions()\" [selected]=\"selectedPageSize()\" (selectedItem)=\"onSelectPageSize($event)\"\n [shouldShowClearButton]=\"false\" [isCompact]=\"true\" [useSystemStyle]=\"true\"></upd-select>\n <p class=\"m-0 text-secondary ms-4\">\n @if (totalRecords() > 0) {\n {{ t('FromToOf', { first: currentFirstDisplayed(), last: currentLastDisplayed(), totalRecords: totalRecords() }) }}\n } @else {\n {{ t('NoRecords') }}\n }\n </p>\n <ul class=\"pagination m-0 ms-4\">\n @if (!previousDescription()) {\n <li class=\"page-item\">\n <upd-button customClasses=\"page-link\" [isLink]=\"true\" [isIcon]=\"!shouldDisplayFirstText()\" colorStyle=\"secondary\"\n [attr.tabindex]=\"isFirstDisabled() ? -1 : 0\" [attr.aria-disabled]=\"isFirstDisabled()\"\n [isDisabled]=\"isPreviousDisabled()\" (clicked)=\"selectPage(startPageIndex())\">\n @if (shouldDisplayFirstIcon()) {\n <upd-icon tablerIcon=\"chevron-left-pipe\"></upd-icon>\n }\n @if (shouldDisplayFirstText()) {\n {{ t('First') }}\n }\n </upd-button>\n </li>\n }\n\n <li class=\"page-item\" [class.page-prev]=\"!!previousDescription()\">\n <upd-button customClasses=\"page-link\" [isLink]=\"true\" [isIcon]=\"!shouldDisplayPreviousText()\" colorStyle=\"secondary\"\n [attr.tabindex]=\"isPreviousDisabled() ? -1 : 0\" [attr.aria-disabled]=\"isPreviousDisabled()\"\n [isDisabled]=\"isPreviousDisabled()\" (clicked)=\"selectPage(currentPage() - 1)\">\n @if (!!previousDescription()) {\n <div class=\"page-item-subtitle\">{{ t('Previous') }}</div>\n <div class=\"page-item-title\">{{ textService.getText(previousDescription()) }}</div>\n } @else {\n @if (shouldDisplayPreviousIcon()) {\n <upd-icon tablerIcon=\"chevron-left\"></upd-icon>\n }\n @if (shouldDisplayPreviousText()) {\n {{ t('PreviousShort') }}\n }\n }\n </upd-button>\n </li>\n\n <li class=\"page-item\" [class.page-next]=\"!!nextDescription()\">\n <upd-button customClasses=\"page-link\" [isLink]=\"true\" [isIcon]=\"!shouldDisplayNextText()\" colorStyle=\"secondary\"\n [attr.tabindex]=\"isNextDisabled() ? -1 : 0\" [attr.aria-disabled]=\"isNextDisabled()\" [isDisabled]=\"isNextDisabled()\"\n (clicked)=\"selectPage(currentPage() + 1)\">\n @if (!!nextDescription()) {\n <div class=\"page-item-subtitle\">{{ t('Next') }}</div>\n <div class=\"page-item-title\">{{ textService.getText(nextDescription()) }}</div>\n } @else {\n @if (shouldDisplayNextText()) {\n {{ t('NextShort') }}\n }\n @if (shouldDisplayNextIcon()) {\n <upd-icon tablerIcon=\"chevron-right\"></upd-icon>\n }\n }\n </upd-button>\n </li>\n\n @if (!nextDescription()) {\n <li class=\"page-item\">\n <upd-button customClasses=\"page-link\" [isLink]=\"true\" [isIcon]=\"!shouldDisplayLastText()\" colorStyle=\"secondary\"\n [attr.tabindex]=\"isLastDisabled() ? -1 : 0\" [attr.aria-disabled]=\"isLastDisabled()\" [isDisabled]=\"isNextDisabled()\"\n (clicked)=\"selectPage(totalPages() - (startPageIndex() === 0 ? 1 : 0))\">\n @if (shouldDisplayLastText()) {\n {{ t('Last') }}\n }\n @if (shouldDisplayLastIcon()) {\n <upd-icon tablerIcon=\"chevron-right-pipe\"></upd-icon>\n }\n </upd-button>\n </li>\n }\n </ul>\n </div>\n</ng-container>\n", styles: [""], dependencies: [{ kind: "component", type: i1.IconComponent, selector: "upd-icon", inputs: ["model", "wrapperClasses", "color", "colorClass", "removeDefaultClasses", "customClasses", "tablerIcon", "tablerIconWeight", "tablerIconType", "tablerIconSize", "heroIcon", "heroIconSize", "heroIconType"] }, { kind: "component", type: i2.ButtonComponent, selector: "upd-button", inputs: ["model", "text", "brandColorStyle", "customClasses", "isOutline", "isGhost", "isSquare", "isPill", "isIcon", "isLoading", "isList", "isFloating", "isAction", "isNavigationLink", "isLink", "shouldIgnoreBtnClass", "iconModel", "iconPosition", "isDisabled", "isActive", "badgeConfig", "colorStyle", "size", "title"], outputs: ["clicked"] }, { kind: "component", type: i3.SelectComponent, selector: "upd-select", inputs: ["useSystemStyle", "shouldShowClearButton", "shouldTruncateSelectedText", "isCompact", "selected"], outputs: ["selectedItem"] }, { kind: "directive", type: i4.TranslocoDirective, selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }] }); }
56
56
  }
57
57
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: PaginatorComponent, decorators: [{
58
58
  type: Component,