@acorex/components 20.9.1 → 20.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-components-file-viewer.mjs +2 -2
- package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +16 -3
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +56 -9
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/list/index.d.ts +19 -9
- package/package.json +11 -11
- package/select-box/index.d.ts +6 -0
|
@@ -5,7 +5,7 @@ import { AXTranslatorPipe } from '@acorex/core/translation';
|
|
|
5
5
|
import { CdkVirtualScrollableElement, CdkVirtualScrollViewport, CdkFixedSizeVirtualScroll, CdkVirtualForOf } from '@angular/cdk/scrolling';
|
|
6
6
|
import { isPlatformBrowser, NgTemplateOutlet, AsyncPipe } from '@angular/common';
|
|
7
7
|
import * as i0 from '@angular/core';
|
|
8
|
-
import { viewChildren, input, signal,
|
|
8
|
+
import { viewChildren, input, signal, computed, EventEmitter, Optional, SkipSelf, forwardRef, HostListener, ViewChild, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
9
9
|
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
10
10
|
|
|
11
11
|
/**
|
|
@@ -37,6 +37,19 @@ class AXListComponent extends MXSelectionValueComponent {
|
|
|
37
37
|
* @ignore
|
|
38
38
|
*/
|
|
39
39
|
this.itemHeightSignal = signal(40, ...(ngDevMode ? [{ debugName: "itemHeightSignal" }] : []));
|
|
40
|
+
/**
|
|
41
|
+
* Fixed pixel size for CDK virtual scroll. Falls back to 40 when `itemHeight` is `'auto'`.
|
|
42
|
+
* @ignore
|
|
43
|
+
*/
|
|
44
|
+
this.cdkItemSize = computed(() => {
|
|
45
|
+
const height = this.itemHeightSignal();
|
|
46
|
+
return typeof height === 'number' ? height : 40;
|
|
47
|
+
}, ...(ngDevMode ? [{ debugName: "cdkItemSize" }] : []));
|
|
48
|
+
/**
|
|
49
|
+
* CSS value applied to `--ax-comp-list-item-height` so rendered rows match the virtual slot.
|
|
50
|
+
* @ignore
|
|
51
|
+
*/
|
|
52
|
+
this.itemHeightCss = computed(() => `${this.cdkItemSize()}px`, ...(ngDevMode ? [{ debugName: "itemHeightCss" }] : []));
|
|
40
53
|
/**
|
|
41
54
|
* Emitted when the index of the scrolled item changes.
|
|
42
55
|
*
|
|
@@ -333,7 +346,7 @@ class AXListComponent extends MXSelectionValueComponent {
|
|
|
333
346
|
},
|
|
334
347
|
deps: [[new Optional(), new SkipSelf(), AX_SELECTION_DATA_TOKEN]],
|
|
335
348
|
},
|
|
336
|
-
], viewQueries: [{ propertyName: "tooltipRef", predicate: AXTooltipDirective, descendants: true, isSignal: true }, { propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"list-container\" cdkVirtualScrollingElement [class.ax-height-auto]=\"showEmptyTemplate()\">\n <ng-content select=\"ax-header\"></ng-content>\n <cdk-virtual-scroll-viewport\n [itemSize]=\"
|
|
349
|
+
], viewQueries: [{ propertyName: "tooltipRef", predicate: AXTooltipDirective, descendants: true, isSignal: true }, { propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"list-container\" cdkVirtualScrollingElement [class.ax-height-auto]=\"showEmptyTemplate()\">\n <ng-content select=\"ax-header\"></ng-content>\n <cdk-virtual-scroll-viewport\n [itemSize]=\"cdkItemSize()\"\n [style.--ax-comp-list-item-height]=\"itemHeightCss()\"\n (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\"\n [class.ax-truncated-container]=\"isItemTruncated()\"\n >\n <ul>\n <!-- Item Template -->\n <ng-container *cdkVirtualFor=\"let item of listDataSource; let i = index; trackBy: trackByIdx\">\n @if (item !== null && item !== undefined) {\n <li\n [class.ax-state-selected]=\"isItemSelected(item)\"\n class=\"list-item\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"getValue(item)\"\n >\n <!-- Custom Item Template -->\n @if (itemTemplate) {\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: { data: item } }\">\n </ng-container>\n } @else {\n <ng-container [ngTemplateOutlet]=\"defaultItemTpl\"></ng-container>\n }\n <!-- Default Item Template -->\n <ng-template #defaultItemTpl>\n @if (item !== null && item !== undefined) {\n <div class=\"ax-label-container\">\n @if (multiple && checkbox) {\n <input\n class=\"ax-checkbox\"\n type=\"checkbox\"\n [checked]=\"isItemSelected(item)\"\n [disabled]=\"isItemDisabled(item)\"\n tabindex=\"0\"\n />\n }\n\n <span\n [class.ax-checkbox-label]=\"multiple && checkbox\"\n [class.ax-truncated]=\"isItemTruncated()\"\n [axTooltip]=\"getDisplayText(item)\"\n [axTooltipDisabled]=\"!showItemTooltip()\"\n >\n {{ getDisplayText(item) | translate | async }}\n </span>\n </div>\n <!-- @if (isItemSelected(item)) {\n <i class=\"ax-icon ax-icon-check ax-selected-icon\"></i>\n } -->\n } @else {\n <ng-container [ngTemplateOutlet]=\"loadingTpl\"> </ng-container>\n }\n </ng-template>\n </li>\n } @else {\n <ng-container [ngTemplateOutlet]=\"loadingTpl\"> </ng-container>\n }\n </ng-container>\n </ul>\n </cdk-virtual-scroll-viewport>\n <ng-content select=\"ax-footer\"></ng-content>\n</div>\n\n<!-- Loading Template -->\n<ng-template #loadingTpl>\n <!-- Custom Loading Template -->\n @if (loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\"> </ng-container>\n } @else {\n <ng-container [ngTemplateOutlet]=\"defaultLoadingTpl\"> </ng-container>\n }\n <!-- Default Loading Template -->\n <ng-template #defaultLoadingTpl>\n <li>{{ '@acorex:common.status.loading' | translate | async }}</li>\n </ng-template>\n</ng-template>\n<!-- Empty Template -->\n@if (showEmptyTemplate()) {\n <div class=\"empty-container\">\n <ng-container [ngTemplateOutlet]=\"emptyTemplate\"></ng-container>\n </div>\n}\n", styles: ["ax-list{--ax-comp-list-item-height: var(--ax-sys-size-base);--ax-comp-list-empty-container-height: var(--ax-sys-size-base)}ax-list{--ax-comp-list-item-selected-bg-color: var(--ax-sys-color-primary-surface), .2;--ax-comp-list-item-header: var(--ax-sys-color-lighter-surface);--ax-comp-list-item-footer: var(--ax-sys-color-lighter-surface)}ax-list{display:block;height:100%;width:100%;font-size:var(--ax-comp-list-font-size, .875rem);line-height:var(--ax-comp-list-line-height, 1.25rem)}ax-list .list-container{display:flex;height:100%;flex-direction:column}ax-list .list-container.ax-height-auto{height:auto}ax-list ax-header{background-color:rgba(var(--ax-comp-list-item-header))}ax-list ax-footer{background-color:rgba(var(--ax-comp-list-item-footer))}ax-list .empty-container{display:flex;height:var(--ax-comp-list-empty-container-height);width:100%;align-items:center;justify-content:center;padding-left:var(--ax-comp-list-empty-container-padding-x, .75rem);padding-right:var(--ax-comp-list-empty-container-padding-x, .75rem)}ax-list .cdk-virtual-scroll-viewport{flex:1 1 auto;width:100%;height:100%;min-height:0}ax-list .cdk-virtual-scroll-viewport.ax-truncated-container .cdk-virtual-scroll-content-wrapper{width:100%;min-width:unset}ax-list .cdk-virtual-scroll-viewport ul li{position:relative;box-sizing:border-box;display:flex;height:var(--ax-comp-list-item-height);min-height:var(--ax-comp-list-item-height);max-height:var(--ax-comp-list-item-height);overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding-inline-end:var(--ax-comp-list-item-padding-e, 1rem);padding-inline-start:var(--ax-comp-list-item-padding-s, .75rem);font-size:var(--ax-comp-list-font-size, .875rem);line-height:var(--ax-comp-list-line-height, 1.25rem)}ax-list .cdk-virtual-scroll-viewport ul li:hover{background:rgba(var(--ax-comp-list-item-hover-bg-color, var(--ax-sys-color-surface)))}ax-list .cdk-virtual-scroll-viewport ul li:focus,ax-list .cdk-virtual-scroll-viewport ul li:focus-within,ax-list .cdk-virtual-scroll-viewport ul li:focus-visible{outline-width:var(--ax-comp-list-item-focus-outline-width, 2px);outline-offset:var(--ax-comp-list-item-focus-outline-offset, -4px);outline-color:rgba(var(--ax-comp-list-item-focus-outline-color, var(--ax-sys-color-primary-surface)))}ax-list .cdk-virtual-scroll-viewport ul li .ax-label-container{display:flex;align-items:center;width:100%}ax-list .cdk-virtual-scroll-viewport ul li .ax-checkbox-label{margin-inline-start:var(--ax-comp-list-checkbox-label-margin-s, .5rem)}ax-list .cdk-virtual-scroll-viewport ul li.ax-state-selected{background-color:rgba(var(--ax-comp-list-item-selected-bg-color))}ax-list .cdk-virtual-scroll-viewport ul li.ax-state-disabled{cursor:not-allowed;opacity:var(--ax-comp-list-item-disabled-opacity, .5)}ax-list .cdk-virtual-scroll-viewport ul li .ax-truncated{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"], dependencies: [{ kind: "directive", type: CdkVirtualScrollableElement, selector: "[cdkVirtualScrollingElement]" }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: AXTooltipModule }, { kind: "directive", type: i1.AXTooltipDirective, selector: "[axTooltip]", inputs: ["axTooltipDisabled", "axTooltip", "axTooltipContext", "axTooltipPlacement", "axTooltipOffsetX", "axTooltipOffsetY", "axTooltipOpenAfter", "axTooltipCloseAfter"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
337
350
|
}
|
|
338
351
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AXListComponent, decorators: [{
|
|
339
352
|
type: Component,
|
|
@@ -374,7 +387,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
374
387
|
AXTranslatorPipe,
|
|
375
388
|
AXTooltipModule,
|
|
376
389
|
AXTooltipDirective,
|
|
377
|
-
], template: "<div class=\"list-container\" cdkVirtualScrollingElement [class.ax-height-auto]=\"showEmptyTemplate()\">\n <ng-content select=\"ax-header\"></ng-content>\n <cdk-virtual-scroll-viewport\n [itemSize]=\"
|
|
390
|
+
], template: "<div class=\"list-container\" cdkVirtualScrollingElement [class.ax-height-auto]=\"showEmptyTemplate()\">\n <ng-content select=\"ax-header\"></ng-content>\n <cdk-virtual-scroll-viewport\n [itemSize]=\"cdkItemSize()\"\n [style.--ax-comp-list-item-height]=\"itemHeightCss()\"\n (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\"\n [class.ax-truncated-container]=\"isItemTruncated()\"\n >\n <ul>\n <!-- Item Template -->\n <ng-container *cdkVirtualFor=\"let item of listDataSource; let i = index; trackBy: trackByIdx\">\n @if (item !== null && item !== undefined) {\n <li\n [class.ax-state-selected]=\"isItemSelected(item)\"\n class=\"list-item\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\"\n [attr.data-id]=\"getValue(item)\"\n >\n <!-- Custom Item Template -->\n @if (itemTemplate) {\n <ng-container [ngTemplateOutlet]=\"itemTemplate\" [ngTemplateOutletContext]=\"{ $implicit: { data: item } }\">\n </ng-container>\n } @else {\n <ng-container [ngTemplateOutlet]=\"defaultItemTpl\"></ng-container>\n }\n <!-- Default Item Template -->\n <ng-template #defaultItemTpl>\n @if (item !== null && item !== undefined) {\n <div class=\"ax-label-container\">\n @if (multiple && checkbox) {\n <input\n class=\"ax-checkbox\"\n type=\"checkbox\"\n [checked]=\"isItemSelected(item)\"\n [disabled]=\"isItemDisabled(item)\"\n tabindex=\"0\"\n />\n }\n\n <span\n [class.ax-checkbox-label]=\"multiple && checkbox\"\n [class.ax-truncated]=\"isItemTruncated()\"\n [axTooltip]=\"getDisplayText(item)\"\n [axTooltipDisabled]=\"!showItemTooltip()\"\n >\n {{ getDisplayText(item) | translate | async }}\n </span>\n </div>\n <!-- @if (isItemSelected(item)) {\n <i class=\"ax-icon ax-icon-check ax-selected-icon\"></i>\n } -->\n } @else {\n <ng-container [ngTemplateOutlet]=\"loadingTpl\"> </ng-container>\n }\n </ng-template>\n </li>\n } @else {\n <ng-container [ngTemplateOutlet]=\"loadingTpl\"> </ng-container>\n }\n </ng-container>\n </ul>\n </cdk-virtual-scroll-viewport>\n <ng-content select=\"ax-footer\"></ng-content>\n</div>\n\n<!-- Loading Template -->\n<ng-template #loadingTpl>\n <!-- Custom Loading Template -->\n @if (loadingTemplate) {\n <ng-container [ngTemplateOutlet]=\"loadingTemplate\"> </ng-container>\n } @else {\n <ng-container [ngTemplateOutlet]=\"defaultLoadingTpl\"> </ng-container>\n }\n <!-- Default Loading Template -->\n <ng-template #defaultLoadingTpl>\n <li>{{ '@acorex:common.status.loading' | translate | async }}</li>\n </ng-template>\n</ng-template>\n<!-- Empty Template -->\n@if (showEmptyTemplate()) {\n <div class=\"empty-container\">\n <ng-container [ngTemplateOutlet]=\"emptyTemplate\"></ng-container>\n </div>\n}\n", styles: ["ax-list{--ax-comp-list-item-height: var(--ax-sys-size-base);--ax-comp-list-empty-container-height: var(--ax-sys-size-base)}ax-list{--ax-comp-list-item-selected-bg-color: var(--ax-sys-color-primary-surface), .2;--ax-comp-list-item-header: var(--ax-sys-color-lighter-surface);--ax-comp-list-item-footer: var(--ax-sys-color-lighter-surface)}ax-list{display:block;height:100%;width:100%;font-size:var(--ax-comp-list-font-size, .875rem);line-height:var(--ax-comp-list-line-height, 1.25rem)}ax-list .list-container{display:flex;height:100%;flex-direction:column}ax-list .list-container.ax-height-auto{height:auto}ax-list ax-header{background-color:rgba(var(--ax-comp-list-item-header))}ax-list ax-footer{background-color:rgba(var(--ax-comp-list-item-footer))}ax-list .empty-container{display:flex;height:var(--ax-comp-list-empty-container-height);width:100%;align-items:center;justify-content:center;padding-left:var(--ax-comp-list-empty-container-padding-x, .75rem);padding-right:var(--ax-comp-list-empty-container-padding-x, .75rem)}ax-list .cdk-virtual-scroll-viewport{flex:1 1 auto;width:100%;height:100%;min-height:0}ax-list .cdk-virtual-scroll-viewport.ax-truncated-container .cdk-virtual-scroll-content-wrapper{width:100%;min-width:unset}ax-list .cdk-virtual-scroll-viewport ul li{position:relative;box-sizing:border-box;display:flex;height:var(--ax-comp-list-item-height);min-height:var(--ax-comp-list-item-height);max-height:var(--ax-comp-list-item-height);overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding-inline-end:var(--ax-comp-list-item-padding-e, 1rem);padding-inline-start:var(--ax-comp-list-item-padding-s, .75rem);font-size:var(--ax-comp-list-font-size, .875rem);line-height:var(--ax-comp-list-line-height, 1.25rem)}ax-list .cdk-virtual-scroll-viewport ul li:hover{background:rgba(var(--ax-comp-list-item-hover-bg-color, var(--ax-sys-color-surface)))}ax-list .cdk-virtual-scroll-viewport ul li:focus,ax-list .cdk-virtual-scroll-viewport ul li:focus-within,ax-list .cdk-virtual-scroll-viewport ul li:focus-visible{outline-width:var(--ax-comp-list-item-focus-outline-width, 2px);outline-offset:var(--ax-comp-list-item-focus-outline-offset, -4px);outline-color:rgba(var(--ax-comp-list-item-focus-outline-color, var(--ax-sys-color-primary-surface)))}ax-list .cdk-virtual-scroll-viewport ul li .ax-label-container{display:flex;align-items:center;width:100%}ax-list .cdk-virtual-scroll-viewport ul li .ax-checkbox-label{margin-inline-start:var(--ax-comp-list-checkbox-label-margin-s, .5rem)}ax-list .cdk-virtual-scroll-viewport ul li.ax-state-selected{background-color:rgba(var(--ax-comp-list-item-selected-bg-color))}ax-list .cdk-virtual-scroll-viewport ul li.ax-state-disabled{cursor:not-allowed;opacity:var(--ax-comp-list-item-disabled-opacity, .5)}ax-list .cdk-virtual-scroll-viewport ul li .ax-truncated{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\n"] }]
|
|
378
391
|
}], propDecorators: { dataSource: [{
|
|
379
392
|
type: Input
|
|
380
393
|
}], itemHeight: [{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-list.mjs","sources":["../tmp-esm2022/list/lib/list.component.js","../tmp-esm2022/list/lib/list.module.js","../tmp-esm2022/list/acorex-components-list.js"],"sourcesContent":["import { AXComponent, AXDataSource, AXFocusableComponent, AXListDataSource, AXValuableComponent, AX_SELECTION_DATA_TOKEN, MXSelectionBridgeService, MXSelectionValueComponent, convertArrayToDataSource, } from '@acorex/cdk/common';\nimport { AXTooltipDirective, AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport, CdkVirtualScrollableElement, } from '@angular/cdk/scrolling';\nimport { AsyncPipe, NgTemplateOutlet, isPlatformBrowser } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Optional, Output, SkipSelf, TemplateRef, ViewChild, ViewEncapsulation, computed, forwardRef, input, signal, viewChildren, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/tooltip\";\n/**\n * provides a list control with various input options and events for user interaction.\n *\n * @category Components\n */\nexport class AXListComponent extends MXSelectionValueComponent {\n constructor() {\n super(...arguments);\n this.tooltipRef = viewChildren(AXTooltipDirective, ...(ngDevMode ? [{ debugName: \"tooltipRef\" }] : []));\n /**\n * Determines if an item is truncated.\n *\n * @defaultValue true\n */\n this.isItemTruncated = input(true, ...(ngDevMode ? [{ debugName: \"isItemTruncated\" }] : []));\n /**\n * Determines if a tooltip is shown for an item.\n *\n * @defaultValue false\n */\n this.showItemTooltip = input(false, ...(ngDevMode ? [{ debugName: \"showItemTooltip\" }] : []));\n /** @ignore */\n this._dataSource = convertArrayToDataSource([]);\n /** @ignore */\n this._isInitialized = false;\n /**\n * @ignore\n */\n this.itemHeightSignal = signal(40, ...(ngDevMode ? [{ debugName: \"itemHeightSignal\" }] : []));\n /**\n * Emitted when the index of the scrolled item changes.\n *\n * @event\n */\n this.onScrolledIndexChanged = new EventEmitter();\n /**\n * Specifies whether the checkbox is enabled.\n *\n * @defaultValue true\n */\n this.checkbox = true;\n /**\n * @ignore\n */\n this.isLoading = signal(true, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n /**\n * @ignore\n */\n this.hasItems = false;\n /**\n * @ignore\n */\n this.lastIndex = 0;\n /**\n * @ignore\n */\n this.postponeFocus = false;\n /**\n * Determines whether to show the empty template based on the presence of items and loading state.\n * @ignore\n */\n this.showEmptyTemplate = computed(() => this.isLoading() === false && this.emptyTemplate && this.hasItems === false, ...(ngDevMode ? [{ debugName: \"showEmptyTemplate\" }] : []));\n }\n /**\n * Defines the data source for the list.\n *\n * @defaultValue convertArrayToDataSource([])\n */\n set dataSource(v) {\n if (!v || v === this._dataSource) {\n return;\n }\n this._dataSource = v;\n if (this._isInitialized) {\n this._setupListDataSource();\n }\n }\n get dataSource() {\n return this._dataSource;\n }\n /**\n * Sets the height of each item in the list.\n */\n set itemHeight(v) {\n this.itemHeightSignal.set(v);\n }\n trackByIdx(i) {\n return i;\n }\n /**\n * @ignore\n */\n ngOnInit() {\n super.ngOnInit();\n this._setupListDataSource();\n this._isInitialized = true;\n }\n /**\n * @ignore\n */\n ngOnDestroy() {\n this._onChangedSub?.unsubscribe();\n this._onLoadingChangedSub?.unsubscribe();\n super.ngOnDestroy();\n }\n /**\n * (Re)creates the internal `AXListDataSource` wrapper used by `cdkVirtualFor`\n * and (re)subscribes to the underlying source's events. This is invoked\n * whenever the `dataSource` input changes so that the list properly reflects\n * the new source.\n * @ignore\n */\n _setupListDataSource() {\n this._onChangedSub?.unsubscribe();\n this._onLoadingChangedSub?.unsubscribe();\n this.listDataSource = new AXListDataSource({\n source: this._dataSource,\n });\n // Only mirror the source's state if it has already produced data.\n // Otherwise keep `isLoading=true` so the empty template doesn't render,\n // which would add `.ax-height-auto` and collapse the container, starving\n // the virtual viewport of size — preventing `viewChange` from firing and\n // the data source's `load` callback from ever being invoked.\n const hasLoadedItems = this._dataSource.totalCount > 0;\n this.isLoading.set(hasLoadedItems ? this._dataSource.isLoading : true);\n this.hasItems = hasLoadedItems;\n this._onLoadingChangedSub = this.listDataSource.source.onLoadingChanged.subscribe((data) => {\n this.isLoading.set(data);\n });\n this._onChangedSub = this.listDataSource.source.onChanged.subscribe((data) => {\n this.hasItems = data.totalCount > 0;\n setTimeout(() => {\n this.render();\n }, 0);\n });\n }\n /**\n * @ignore\n */\n _handleOnItemClick(e, item) {\n if (this.readonly || this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (this.isItemDisabled(item)) {\n return;\n }\n this.tooltipRef().forEach((item) => {\n item.close();\n });\n this.toggleSelect(item);\n this.onItemClick.emit({\n component: this,\n item,\n htmlElement: e.target,\n isUserInteraction: true,\n nativeEvent: e,\n });\n }\n /**\n * @ignore\n */\n _handleKeydown(e) {\n if ((e.code === 'ArrowDown' || e.code === 'ArrowUp') && this.hasItems) {\n this.focusItemByNav(e.key === 'ArrowDown' ? 1 : -1);\n e.preventDefault();\n }\n if ((e.code === 'Space' || e.code === 'Enter') && this.hasItems) {\n if (this.readonly || this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (isPlatformBrowser(this.platformID)) {\n const id = this.document.activeElement?.closest('li')?.dataset['id'];\n this.toggleSelect(id);\n }\n e.preventDefault();\n e.stopPropagation();\n }\n }\n /**\n * @ignore\n */\n focusItemByNav(sign) {\n if (isPlatformBrowser(this.platformID)) {\n const list = this.getHostElement().querySelector('ul');\n const fn = (s) => list.querySelector(s);\n const itemDiv = this.document.activeElement?.closest('li') || fn(`li.ax-state-selected`) || fn(`li`);\n const next = (sign == 1 ? itemDiv.nextElementSibling : itemDiv.previousElementSibling);\n if (next) {\n next.focus();\n }\n }\n }\n /**\n * @ignore\n */\n _handleOnscrolledIndexChange(e) {\n this.lastIndex = e;\n this.onScrolledIndexChanged.emit({\n component: this,\n index: this.lastIndex,\n isUserInteraction: true,\n });\n }\n /**\n * Retrieves an item from the data source based on the provided key.\n *\n * @param key The key used to identify the item.\n * @ignore\n */\n getItemByKey(key) {\n return this.dataSource.find(key);\n }\n /**\n * Renders the component by updating the viewport size, scrolling to the selected item, and optionally focusing the element.\n */\n render() {\n if (!this.viewport) {\n return;\n }\n this.scrollTo();\n if (this.postponeFocus) {\n this.postponeFocus = false;\n this.focus();\n }\n }\n /**\n * Scrolls the viewport to the currently selected list item.\n */\n scrollTo() {\n if (!this.viewport || !isPlatformBrowser(this.platformID)) {\n return;\n }\n this.viewport.checkViewportSize();\n requestAnimationFrame(() => {\n const index = this.resolveSelectedIndex();\n if (index >= 0) {\n this.lastIndex = index;\n this.viewport.scrollToIndex(index);\n }\n });\n }\n /**\n * Resolves the selected item index from values already loaded in the list source.\n * Only considers loaded entries so lazy sources are not scanned by a global index.\n * @ignore\n */\n resolveSelectedIndex() {\n if (this.multiple || !this.listDataSource) {\n return -1;\n }\n const selectedValue = this.getSelectedKey();\n if (selectedValue == null) {\n return -1;\n }\n const items = this.listDataSource.source.cachedItems;\n for (let index = 0; index < items.length; index++) {\n const item = items[index];\n if (item != null && this.getValue(item) == selectedValue) {\n return index;\n }\n }\n return -1;\n }\n /**\n * @ignore\n */\n getSelectedKey() {\n const item = this.selectedItems[0] ?? this.value;\n if (item == null) {\n return null;\n }\n return typeof item === 'object' ? this.getValue(item) : item;\n }\n /**\n * Refreshes the list by clearing the selection cache and reloading the data source.\n * @ignore\n */\n refresh(clearSelection = true) {\n if (clearSelection) {\n this.clearSelectionCache();\n }\n this.listDataSource.refresh();\n }\n /**\n * Scrolls the viewport to the specified item index.\n * @param index The index of the item to scroll to.\n * @ignore\n */\n scrollToIndex(index) {\n this.viewport.scrollToIndex(index);\n }\n /**\n * Sets focus to the first selectable list item. If no item is available, postpones focus.\n */\n focus() {\n const list = this.getHostElement().querySelector('ul');\n const focusable = list.querySelector('li.ax-state-selected') ?? list.querySelector('li.list-item');\n if (focusable) {\n focusable.focus();\n }\n else {\n this.postponeFocus = true;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXListComponent, isStandalone: true, selector: \"ax-list\", inputs: { id: { classPropertyName: \"id\", publicName: \"id\", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: \"name\", publicName: \"name\", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: \"readonly\", publicName: \"readonly\", isSignal: false, isRequired: false, transformFunction: null }, valueField: { classPropertyName: \"valueField\", publicName: \"valueField\", isSignal: false, isRequired: false, transformFunction: null }, textField: { classPropertyName: \"textField\", publicName: \"textField\", isSignal: false, isRequired: false, transformFunction: null }, textTemplate: { classPropertyName: \"textTemplate\", publicName: \"textTemplate\", isSignal: false, isRequired: false, transformFunction: null }, disabledField: { classPropertyName: \"disabledField\", publicName: \"disabledField\", isSignal: false, isRequired: false, transformFunction: null }, multiple: { classPropertyName: \"multiple\", publicName: \"multiple\", isSignal: false, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: \"selectionMode\", publicName: \"selectionMode\", isSignal: false, isRequired: false, transformFunction: null }, isItemTruncated: { classPropertyName: \"isItemTruncated\", publicName: \"isItemTruncated\", isSignal: true, isRequired: false, transformFunction: null }, showItemTooltip: { classPropertyName: \"showItemTooltip\", publicName: \"showItemTooltip\", isSignal: true, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: \"dataSource\", publicName: \"dataSource\", isSignal: false, isRequired: false, transformFunction: null }, itemHeight: { classPropertyName: \"itemHeight\", publicName: \"itemHeight\", isSignal: false, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: \"itemTemplate\", publicName: \"itemTemplate\", isSignal: false, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: \"emptyTemplate\", publicName: \"emptyTemplate\", isSignal: false, isRequired: false, transformFunction: null }, loadingTemplate: { classPropertyName: \"loadingTemplate\", publicName: \"loadingTemplate\", isSignal: false, isRequired: false, transformFunction: null }, checkbox: { classPropertyName: \"checkbox\", publicName: \"checkbox\", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onValueChanged: \"onValueChanged\", disabledChange: \"disabledChange\", readonlyChange: \"readonlyChange\", onBlur: \"onBlur\", onFocus: \"onFocus\", onItemClick: \"onItemClick\", onItemSelected: \"onItemSelected\", onScrolledIndexChanged: \"onScrolledIndexChanged\" }, host: { listeners: { \"keydown\": \"_handleKeydown($event)\" } }, providers: [\n { provide: AXComponent, useExisting: AXListComponent },\n { provide: AXFocusableComponent, useExisting: AXListComponent },\n { provide: AXValuableComponent, useExisting: AXListComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXListComponent),\n multi: true,\n },\n {\n provide: AX_SELECTION_DATA_TOKEN,\n useFactory: (existingService) => {\n return existingService || new MXSelectionBridgeService();\n },\n deps: [[new Optional(), new SkipSelf(), AX_SELECTION_DATA_TOKEN]],\n },\n ], viewQueries: [{ propertyName: \"tooltipRef\", predicate: AXTooltipDirective, descendants: true, isSignal: true }, { propertyName: \"viewport\", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, ngImport: i0, template: \"<div class=\\\"list-container\\\" cdkVirtualScrollingElement [class.ax-height-auto]=\\\"showEmptyTemplate()\\\">\\n <ng-content select=\\\"ax-header\\\"></ng-content>\\n <cdk-virtual-scroll-viewport\\n [itemSize]=\\\"itemHeightSignal()\\\"\\n [style.--item-height]=\\\"itemHeightSignal() + 'px'\\\"\\n (scrolledIndexChange)=\\\"_handleOnscrolledIndexChange($event)\\\"\\n [class.ax-truncated-container]=\\\"isItemTruncated()\\\"\\n >\\n <ul>\\n <!-- Item Template -->\\n <ng-container *cdkVirtualFor=\\\"let item of listDataSource; let i = index; trackBy: trackByIdx\\\">\\n @if (item !== null && item !== undefined) {\\n <li\\n [class.ax-state-selected]=\\\"isItemSelected(item)\\\"\\n class=\\\"list-item\\\"\\n [class.ax-state-disabled]=\\\"isItemDisabled(item)\\\"\\n [attr.tabindex]=\\\"i\\\"\\n (click)=\\\"_handleOnItemClick($event, item)\\\"\\n [attr.data-id]=\\\"getValue(item)\\\"\\n >\\n <!-- Custom Item Template -->\\n @if (itemTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"itemTemplate\\\" [ngTemplateOutletContext]=\\\"{ $implicit: { data: item } }\\\">\\n </ng-container>\\n } @else {\\n <ng-container [ngTemplateOutlet]=\\\"defaultItemTpl\\\"></ng-container>\\n }\\n <!-- Default Item Template -->\\n <ng-template #defaultItemTpl>\\n @if (item !== null && item !== undefined) {\\n <div class=\\\"ax-label-container\\\">\\n @if (multiple && checkbox) {\\n <input\\n class=\\\"ax-checkbox\\\"\\n type=\\\"checkbox\\\"\\n [checked]=\\\"isItemSelected(item)\\\"\\n [disabled]=\\\"isItemDisabled(item)\\\"\\n tabindex=\\\"0\\\"\\n />\\n }\\n\\n <span\\n [class.ax-checkbox-label]=\\\"multiple && checkbox\\\"\\n [class.ax-truncated]=\\\"isItemTruncated()\\\"\\n [axTooltip]=\\\"getDisplayText(item)\\\"\\n [axTooltipDisabled]=\\\"!showItemTooltip()\\\"\\n >\\n {{ getDisplayText(item) | translate | async }}\\n </span>\\n </div>\\n <!-- @if (isItemSelected(item)) {\\n <i class=\\\"ax-icon ax-icon-check ax-selected-icon\\\"></i>\\n } -->\\n } @else {\\n <ng-container [ngTemplateOutlet]=\\\"loadingTpl\\\"> </ng-container>\\n }\\n </ng-template>\\n </li>\\n } @else {\\n <ng-container [ngTemplateOutlet]=\\\"loadingTpl\\\"> </ng-container>\\n }\\n </ng-container>\\n </ul>\\n </cdk-virtual-scroll-viewport>\\n <ng-content select=\\\"ax-footer\\\"></ng-content>\\n</div>\\n\\n<!-- Loading Template -->\\n<ng-template #loadingTpl>\\n <!-- Custom Loading Template -->\\n @if (loadingTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"loadingTemplate\\\"> </ng-container>\\n } @else {\\n <ng-container [ngTemplateOutlet]=\\\"defaultLoadingTpl\\\"> </ng-container>\\n }\\n <!-- Default Loading Template -->\\n <ng-template #defaultLoadingTpl>\\n <li>{{ '@acorex:common.status.loading' | translate | async }}</li>\\n </ng-template>\\n</ng-template>\\n<!-- Empty Template -->\\n@if (showEmptyTemplate()) {\\n <div class=\\\"empty-container\\\">\\n <ng-container [ngTemplateOutlet]=\\\"emptyTemplate\\\"></ng-container>\\n </div>\\n}\\n\", styles: [\"ax-list{--ax-comp-list-item-height: var(--ax-sys-size-base);--ax-comp-list-empty-container-height: var(--ax-sys-size-base)}ax-list{--ax-comp-list-item-selected-bg-color: var(--ax-sys-color-primary-surface), .2;--ax-comp-list-item-header: var(--ax-sys-color-lighter-surface);--ax-comp-list-item-footer: var(--ax-sys-color-lighter-surface)}ax-list{display:block;height:100%;width:100%;font-size:var(--ax-comp-list-font-size, .875rem);line-height:var(--ax-comp-list-line-height, 1.25rem)}ax-list .list-container{display:flex;height:100%;flex-direction:column}ax-list .list-container.ax-height-auto{height:auto}ax-list ax-header{background-color:rgba(var(--ax-comp-list-item-header))}ax-list ax-footer{background-color:rgba(var(--ax-comp-list-item-footer))}ax-list .empty-container{display:flex;height:var(--ax-comp-list-empty-container-height);width:100%;align-items:center;justify-content:center;padding-left:var(--ax-comp-list-empty-container-padding-x, .75rem);padding-right:var(--ax-comp-list-empty-container-padding-x, .75rem)}ax-list .cdk-virtual-scroll-viewport.ax-truncated-container .cdk-virtual-scroll-content-wrapper{width:100%;min-width:unset}ax-list .cdk-virtual-scroll-viewport ul li{position:relative;display:flex;min-height:var(--ax-comp-list-item-height);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding-inline-end:var(--ax-comp-list-item-padding-e, 1rem);padding-inline-start:var(--ax-comp-list-item-padding-s, .75rem);font-size:var(--ax-comp-list-font-size, .875rem);line-height:var(--ax-comp-list-line-height, 1.25rem)}ax-list .cdk-virtual-scroll-viewport ul li:hover{background:rgba(var(--ax-comp-list-item-hover-bg-color, var(--ax-sys-color-surface)))}ax-list .cdk-virtual-scroll-viewport ul li:focus,ax-list .cdk-virtual-scroll-viewport ul li:focus-within,ax-list .cdk-virtual-scroll-viewport ul li:focus-visible{outline-width:var(--ax-comp-list-item-focus-outline-width, 2px);outline-offset:var(--ax-comp-list-item-focus-outline-offset, -4px);outline-color:rgba(var(--ax-comp-list-item-focus-outline-color, var(--ax-sys-color-primary-surface)))}ax-list .cdk-virtual-scroll-viewport ul li .ax-label-container{display:flex;align-items:center;width:100%}ax-list .cdk-virtual-scroll-viewport ul li .ax-checkbox-label{margin-inline-start:var(--ax-comp-list-checkbox-label-margin-s, .5rem)}ax-list .cdk-virtual-scroll-viewport ul li.ax-state-selected{background-color:rgba(var(--ax-comp-list-item-selected-bg-color))}ax-list .cdk-virtual-scroll-viewport ul li.ax-state-disabled{cursor:not-allowed;opacity:var(--ax-comp-list-item-disabled-opacity, .5)}ax-list .cdk-virtual-scroll-viewport ul li .ax-truncated{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\\n\"], dependencies: [{ kind: \"directive\", type: CdkVirtualScrollableElement, selector: \"[cdkVirtualScrollingElement]\" }, { kind: \"component\", type: CdkVirtualScrollViewport, selector: \"cdk-virtual-scroll-viewport\", inputs: [\"orientation\", \"appendOnly\"], outputs: [\"scrolledIndexChange\"] }, { kind: \"directive\", type: CdkFixedSizeVirtualScroll, selector: \"cdk-virtual-scroll-viewport[itemSize]\", inputs: [\"itemSize\", \"minBufferPx\", \"maxBufferPx\"] }, { kind: \"directive\", type: CdkVirtualForOf, selector: \"[cdkVirtualFor][cdkVirtualForOf]\", inputs: [\"cdkVirtualForOf\", \"cdkVirtualForTrackBy\", \"cdkVirtualForTemplate\", \"cdkVirtualForTemplateCacheSize\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"directive\", type: i1.AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-list', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: [\n 'id',\n 'name',\n 'disabled',\n 'readonly',\n 'valueField',\n 'textField',\n 'textTemplate',\n 'disabledField',\n 'multiple',\n 'selectionMode',\n ], outputs: ['onValueChanged', 'disabledChange', 'readonlyChange', 'onBlur', 'onFocus', 'onItemClick', 'onItemSelected'], providers: [\n { provide: AXComponent, useExisting: AXListComponent },\n { provide: AXFocusableComponent, useExisting: AXListComponent },\n { provide: AXValuableComponent, useExisting: AXListComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXListComponent),\n multi: true,\n },\n {\n provide: AX_SELECTION_DATA_TOKEN,\n useFactory: (existingService) => {\n return existingService || new MXSelectionBridgeService();\n },\n deps: [[new Optional(), new SkipSelf(), AX_SELECTION_DATA_TOKEN]],\n },\n ], imports: [\n CdkVirtualScrollableElement,\n CdkVirtualScrollViewport,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n NgTemplateOutlet,\n AsyncPipe,\n AXTranslatorPipe,\n AXTooltipModule,\n AXTooltipDirective,\n ], template: \"<div class=\\\"list-container\\\" cdkVirtualScrollingElement [class.ax-height-auto]=\\\"showEmptyTemplate()\\\">\\n <ng-content select=\\\"ax-header\\\"></ng-content>\\n <cdk-virtual-scroll-viewport\\n [itemSize]=\\\"itemHeightSignal()\\\"\\n [style.--item-height]=\\\"itemHeightSignal() + 'px'\\\"\\n (scrolledIndexChange)=\\\"_handleOnscrolledIndexChange($event)\\\"\\n [class.ax-truncated-container]=\\\"isItemTruncated()\\\"\\n >\\n <ul>\\n <!-- Item Template -->\\n <ng-container *cdkVirtualFor=\\\"let item of listDataSource; let i = index; trackBy: trackByIdx\\\">\\n @if (item !== null && item !== undefined) {\\n <li\\n [class.ax-state-selected]=\\\"isItemSelected(item)\\\"\\n class=\\\"list-item\\\"\\n [class.ax-state-disabled]=\\\"isItemDisabled(item)\\\"\\n [attr.tabindex]=\\\"i\\\"\\n (click)=\\\"_handleOnItemClick($event, item)\\\"\\n [attr.data-id]=\\\"getValue(item)\\\"\\n >\\n <!-- Custom Item Template -->\\n @if (itemTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"itemTemplate\\\" [ngTemplateOutletContext]=\\\"{ $implicit: { data: item } }\\\">\\n </ng-container>\\n } @else {\\n <ng-container [ngTemplateOutlet]=\\\"defaultItemTpl\\\"></ng-container>\\n }\\n <!-- Default Item Template -->\\n <ng-template #defaultItemTpl>\\n @if (item !== null && item !== undefined) {\\n <div class=\\\"ax-label-container\\\">\\n @if (multiple && checkbox) {\\n <input\\n class=\\\"ax-checkbox\\\"\\n type=\\\"checkbox\\\"\\n [checked]=\\\"isItemSelected(item)\\\"\\n [disabled]=\\\"isItemDisabled(item)\\\"\\n tabindex=\\\"0\\\"\\n />\\n }\\n\\n <span\\n [class.ax-checkbox-label]=\\\"multiple && checkbox\\\"\\n [class.ax-truncated]=\\\"isItemTruncated()\\\"\\n [axTooltip]=\\\"getDisplayText(item)\\\"\\n [axTooltipDisabled]=\\\"!showItemTooltip()\\\"\\n >\\n {{ getDisplayText(item) | translate | async }}\\n </span>\\n </div>\\n <!-- @if (isItemSelected(item)) {\\n <i class=\\\"ax-icon ax-icon-check ax-selected-icon\\\"></i>\\n } -->\\n } @else {\\n <ng-container [ngTemplateOutlet]=\\\"loadingTpl\\\"> </ng-container>\\n }\\n </ng-template>\\n </li>\\n } @else {\\n <ng-container [ngTemplateOutlet]=\\\"loadingTpl\\\"> </ng-container>\\n }\\n </ng-container>\\n </ul>\\n </cdk-virtual-scroll-viewport>\\n <ng-content select=\\\"ax-footer\\\"></ng-content>\\n</div>\\n\\n<!-- Loading Template -->\\n<ng-template #loadingTpl>\\n <!-- Custom Loading Template -->\\n @if (loadingTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"loadingTemplate\\\"> </ng-container>\\n } @else {\\n <ng-container [ngTemplateOutlet]=\\\"defaultLoadingTpl\\\"> </ng-container>\\n }\\n <!-- Default Loading Template -->\\n <ng-template #defaultLoadingTpl>\\n <li>{{ '@acorex:common.status.loading' | translate | async }}</li>\\n </ng-template>\\n</ng-template>\\n<!-- Empty Template -->\\n@if (showEmptyTemplate()) {\\n <div class=\\\"empty-container\\\">\\n <ng-container [ngTemplateOutlet]=\\\"emptyTemplate\\\"></ng-container>\\n </div>\\n}\\n\", styles: [\"ax-list{--ax-comp-list-item-height: var(--ax-sys-size-base);--ax-comp-list-empty-container-height: var(--ax-sys-size-base)}ax-list{--ax-comp-list-item-selected-bg-color: var(--ax-sys-color-primary-surface), .2;--ax-comp-list-item-header: var(--ax-sys-color-lighter-surface);--ax-comp-list-item-footer: var(--ax-sys-color-lighter-surface)}ax-list{display:block;height:100%;width:100%;font-size:var(--ax-comp-list-font-size, .875rem);line-height:var(--ax-comp-list-line-height, 1.25rem)}ax-list .list-container{display:flex;height:100%;flex-direction:column}ax-list .list-container.ax-height-auto{height:auto}ax-list ax-header{background-color:rgba(var(--ax-comp-list-item-header))}ax-list ax-footer{background-color:rgba(var(--ax-comp-list-item-footer))}ax-list .empty-container{display:flex;height:var(--ax-comp-list-empty-container-height);width:100%;align-items:center;justify-content:center;padding-left:var(--ax-comp-list-empty-container-padding-x, .75rem);padding-right:var(--ax-comp-list-empty-container-padding-x, .75rem)}ax-list .cdk-virtual-scroll-viewport.ax-truncated-container .cdk-virtual-scroll-content-wrapper{width:100%;min-width:unset}ax-list .cdk-virtual-scroll-viewport ul li{position:relative;display:flex;min-height:var(--ax-comp-list-item-height);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding-inline-end:var(--ax-comp-list-item-padding-e, 1rem);padding-inline-start:var(--ax-comp-list-item-padding-s, .75rem);font-size:var(--ax-comp-list-font-size, .875rem);line-height:var(--ax-comp-list-line-height, 1.25rem)}ax-list .cdk-virtual-scroll-viewport ul li:hover{background:rgba(var(--ax-comp-list-item-hover-bg-color, var(--ax-sys-color-surface)))}ax-list .cdk-virtual-scroll-viewport ul li:focus,ax-list .cdk-virtual-scroll-viewport ul li:focus-within,ax-list .cdk-virtual-scroll-viewport ul li:focus-visible{outline-width:var(--ax-comp-list-item-focus-outline-width, 2px);outline-offset:var(--ax-comp-list-item-focus-outline-offset, -4px);outline-color:rgba(var(--ax-comp-list-item-focus-outline-color, var(--ax-sys-color-primary-surface)))}ax-list .cdk-virtual-scroll-viewport ul li .ax-label-container{display:flex;align-items:center;width:100%}ax-list .cdk-virtual-scroll-viewport ul li .ax-checkbox-label{margin-inline-start:var(--ax-comp-list-checkbox-label-margin-s, .5rem)}ax-list .cdk-virtual-scroll-viewport ul li.ax-state-selected{background-color:rgba(var(--ax-comp-list-item-selected-bg-color))}ax-list .cdk-virtual-scroll-viewport ul li.ax-state-disabled{cursor:not-allowed;opacity:var(--ax-comp-list-item-disabled-opacity, .5)}ax-list .cdk-virtual-scroll-viewport ul li .ax-truncated{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\\n\"] }]\n }], propDecorators: { dataSource: [{\n type: Input\n }], itemHeight: [{\n type: Input\n }], itemTemplate: [{\n type: Input\n }], emptyTemplate: [{\n type: Input\n }], loadingTemplate: [{\n type: Input\n }], onScrolledIndexChanged: [{\n type: Output\n }], checkbox: [{\n type: Input\n }], viewport: [{\n type: ViewChild,\n args: [CdkVirtualScrollViewport]\n }], _handleKeydown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2xpc3Qvc3JjL2xpYi9saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbGlzdC9zcmMvbGliL2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxZQUFZLEVBRVosb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsd0JBQXdCLEdBQ3pCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsZUFBZSxFQUNmLHdCQUF3QixFQUN4QiwyQkFBMkIsR0FDNUIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakYsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFFakIsUUFBUSxFQUNSLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBT25EOzs7O0dBSUc7QUFpREgsTUFBTSxPQUFP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QUMsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLElBQUksUUFBUSxFQUFFLEVBQUUsdUJBQXVCLENBQUMsQ0FBQzt5QkFDbEU7cUJBQ0YsV0FDUTt3QkFDUCwyQkFBMkI7d0JBQzNCLHdCQUF3Qjt3QkFDeEIseUJBQXlCO3dCQUN6QixlQUFlO3dCQUNmLGdCQUFnQjt3QkFDaEIsU0FBUzt3QkFDVCxnQkFBZ0I7d0JBQ2hCLGVBQWU7d0JBQ2Ysa0JBQWtCO3FCQUNuQjs4QkFxQ1UsVUFBVTtzQkFEcEIsS0FBSztnQkF3QkssVUFBVTtzQkFEcEIsS0FBSztnQkFTTixZQUFZO3NCQURYLEtBQUs7Z0JBT04sYUFBYTtzQkFEWixLQUFLO2dCQU9OLGVBQWU7c0JBRGQsS0FBSztnQkFTTixzQkFBc0I7c0JBRHJCLE1BQU07Z0JBU1AsUUFBUTtzQkFEUCxLQUFLO2dCQWdDRSxRQUFRO3NCQURmLFNBQVM7dUJBQUMsd0JBQXdCO2dCQXlGbkMsY0FBYztzQkFEYixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIEFYQ29tcG9uZW50LFxuICBBWERhdGFTb3VyY2UsXG4gIEFYRXZlbnQsXG4gIEFYRm9jdXNhYmxlQ29tcG9uZW50LFxuICBBWExpc3REYXRhU291cmNlLFxuICBBWFZhbHVhYmxlQ29tcG9uZW50LFxuICBBWF9TRUxFQ1RJT05fREFUQV9UT0tFTixcbiAgTVhTZWxlY3Rpb25CcmlkZ2VTZXJ2aWNlLFxuICBNWFNlbGVjdGlvblZhbHVlQ29tcG9uZW50LFxuICBjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2UsXG59IGZyb20gJ0BhY29yZXgvY2RrL2NvbW1vbic7XG5pbXBvcnQgeyBBWFRvb2x0aXBEaXJlY3RpdmUsIEFYVG9vbHRpcE1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy90b29sdGlwJztcbmltcG9ydCB7IEFYVHJhbnNsYXRvclBpcGUgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHtcbiAgQ2RrRml4ZWRTaXplVmlydHVhbFNjcm9sbCxcbiAgQ2RrVmlydHVhbEZvck9mLFxuICBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsXG4gIENka1ZpcnR1YWxTY3JvbGxhYmxlRWxlbWVudCxcbn0gZnJvbSAnQGFuZ3VsYXIvY2RrL3Njcm9sbGluZyc7XG5pbXBvcnQgeyBBc3luY1BpcGUsIE5nVGVtcGxhdGVPdXRsZXQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPcHRpb25hbCxcbiAgT3V0cHV0LFxuICBTa2lwU2VsZixcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIFdyaXRhYmxlU2lnbmFsLFxuICBjb21wdXRlZCxcbiAgZm9yd2FyZFJlZixcbiAgaW5wdXQsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkcmVuLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhMaXN0U2Nyb2xsSW5kZXhDaGFuZ2VkIGV4dGVuZHMgQVhFdmVudCB7XG4gIGluZGV4OiBudW1iZXI7XG59XG5cbi8qKlxuICogcHJvdmlkZXMgYSBsaXN0IGNvbnRyb2wgd2l0aCB2YXJpb3VzIGlucHV0IG9wdGlvbnMgYW5kIGV2ZW50cyBmb3IgdXNlciBpbnRlcmFjdGlvbi5cbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1saXN0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2xpc3QuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9saXN0LmNvbXBvbmVudC5zY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBpbnB1dHM6IFtcbiAgICAnaWQnLFxuICAgICduYW1lJyxcbiAgICAnZGlzYWJsZWQnLFxuICAgICdyZWFkb25seScsXG4gICAgJ3ZhbHVlRmllbGQnLFxuICAgICd0ZXh0RmllbGQnLFxuICAgICd0ZXh0VGVtcGxhdGUnLFxuICAgICdkaXNhYmxlZEZpZWxkJyxcbiAgICAnbXVsdGlwbGUnLFxuICAgICdzZWxlY3Rpb25Nb2RlJyxcbiAgXSxcbiAgb3V0cHV0czogWydvblZhbHVlQ2hhbmdlZCcsICdkaXNhYmxlZENoYW5nZScsICdyZWFkb25seUNoYW5nZScsICdvbkJsdXInLCAnb25Gb2N1cycsICdvbkl0ZW1DbGljaycsICdvbkl0ZW1TZWxlY3RlZCddLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhMaXN0Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWEZvY3VzYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYTGlzdENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhWYWx1YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYTGlzdENvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhMaXN0Q29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgIH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogQVhfU0VMRUNUSU9OX0RBVEFfVE9LRU4sXG4gICAgICB1c2VGYWN0b3J5OiAoZXhpc3RpbmdTZXJ2aWNlOiBNWFNlbGVjdGlvbkJyaWRnZVNlcnZpY2UpID0+IHtcbiAgICAgICAgcmV0dXJuIGV4aXN0aW5nU2VydmljZSB8fCBuZXcgTVhTZWxlY3Rpb25CcmlkZ2VTZXJ2aWNlKCk7XG4gICAgICB9LFxuICAgICAgZGVwczogW1tuZXcgT3B0aW9uYWwoKSwgbmV3IFNraXBTZWxmKCksIEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOXV0sXG4gICAgfSxcbiAgXSxcbiAgaW1wb3J0czogW1xuICAgIENka1ZpcnR1YWxTY3JvbGxhYmxlRWxlbWVudCxcbiAgICBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQsXG4gICAgQ2RrRml4ZWRTaXplVmlydHVhbFNjcm9sbCxcbiAgICBDZGtWaXJ0dWFsRm9yT2YsXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBBc3luY1BpcGUsXG4gICAgQVhUcmFuc2xhdG9yUGlwZSxcbiAgICBBWFRvb2x0aXBNb2R1bGUsXG4gICAgQVhUb29sdGlwRGlyZWN0aXZlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWExpc3RDb21wb25lbnQgZXh0ZW5kcyBNWFNlbGVjdGlvblZhbHVlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSB0b29sdGlwUmVmID0gdmlld0NoaWxkcmVuKEFYVG9vbHRpcERpcmVjdGl2ZSk7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYW4gaXRlbSBpcyB0cnVuY2F0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgdHJ1ZVxuICAgKi9cbiAgaXNJdGVtVHJ1bmNhdGVkID0gaW5wdXQodHJ1ZSk7XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgaWYgYSB0b29sdGlwIGlzIHNob3duIGZvciBhbiBpdGVtLlxuICAgKlxuICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAqL1xuICBzaG93SXRlbVRvb2x0aXAgPSBpbnB1dChmYWxzZSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfZGF0YVNvdXJjZTogQVhEYXRhU291cmNlPHVua25vd24+ID0gY29udmVydEFycmF5VG9EYXRhU291cmNlKFtdKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9pc0luaXRpYWxpemVkID0gZmFsc2U7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfb25DaGFuZ2VkU3ViPzogU3Vic2NyaXB0aW9uO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX29uTG9hZGluZ0NoYW5nZWRTdWI/OiBTdWJzY3JpcHRpb247XG5cbiAgLyoqXG4gICAqIERlZmluZXMgdGhlIGRhdGEgc291cmNlIGZvciB0aGUgbGlzdC5cbiAgICpcbiAgICogIEBkZWZhdWx0VmFsdWUgY29udmVydEFycmF5VG9EYXRhU291cmNlKFtdKVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBkYXRhU291cmNlKHY6IEFYRGF0YVNvdXJjZTx1bmtub3duPikge1xuICAgIGlmICghdiB8fCB2ID09PSB0aGlzLl9kYXRhU291cmNlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuX2RhdGFTb3VyY2UgPSB2O1xuICAgIGlmICh0aGlzLl9pc0luaXRpYWxpemVkKSB7XG4gICAgICB0aGlzLl9zZXR1cExpc3REYXRhU291cmNlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldCBkYXRhU291cmNlKCk6IEFYRGF0YVNvdXJjZTx1bmtub3duPiB7XG4gICAgcmV0dXJuIHRoaXMuX2RhdGFTb3VyY2U7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIGl0ZW1IZWlnaHRTaWduYWw6IFdyaXRhYmxlU2lnbmFsPG51bWJlciB8ICdhdXRvJz4gPSBzaWduYWwoNDApO1xuXG4gIC8qKlxuICAgKiBTZXRzIHRoZSBoZWlnaHQgb2YgZWFjaCBpdGVtIGluIHRoZSBsaXN0LlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBpdGVtSGVpZ2h0KHY6IG51bWJlciB8ICdhdXRvJykge1xuICAgIHRoaXMuaXRlbUhlaWdodFNpZ25hbC5zZXQodik7XG4gIH1cblxuICAvKipcbiAgICogVGVtcGxhdGUgZm9yIHJlbmRlcmluZyBpbmRpdmlkdWFsIGl0ZW1zIGluIHRoZSBsaXN0LlxuICAgKi9cbiAgQElucHV0KClcbiAgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICAvKipcbiAgICogVGVtcGxhdGUgdG8gZGlzcGxheSB3aGVuIHRoZSBsaXN0IGlzIGVtcHR5LlxuICAgKi9cbiAgQElucHV0KClcbiAgZW1wdHlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIFRlbXBsYXRlIHRvIHNob3cgd2hpbGUgdGhlIGxpc3QgaXMgbG9hZGluZy5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGxvYWRpbmdUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgLyoqXG4gICAqIEVtaXR0ZWQgd2hlbiB0aGUgaW5kZXggb2YgdGhlIHNjcm9sbGVkIGl0ZW0gY2hhbmdlcy5cbiAgICpcbiAgICogQGV2ZW50XG4gICAqL1xuICBAT3V0cHV0KClcbiAgb25TY3JvbGxlZEluZGV4Q2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYTGlzdFNjcm9sbEluZGV4Q2hhbmdlZD4gPSBuZXcgRXZlbnRFbWl0dGVyPEFYTGlzdFNjcm9sbEluZGV4Q2hhbmdlZD4oKTtcblxuICAvKipcbiAgICogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGNoZWNrYm94IGlzIGVuYWJsZWQuXG4gICAqXG4gICAqICBAZGVmYXVsdFZhbHVlIHRydWVcbiAgICovXG4gIEBJbnB1dCgpXG4gIGNoZWNrYm94ID0gdHJ1ZTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBsaXN0RGF0YVNvdXJjZTogQVhMaXN0RGF0YVNvdXJjZTx1bmtub3duPjtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBpc0xvYWRpbmcgPSBzaWduYWwodHJ1ZSk7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgaGFzSXRlbXMgPSBmYWxzZTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgbGFzdEluZGV4ID0gMDtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgcG9zdHBvbmVGb2N1cyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgQFZpZXdDaGlsZChDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQpXG4gIHByaXZhdGUgdmlld3BvcnQ6IENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydDtcblxuICB0cmFja0J5SWR4KGkpIHtcbiAgICByZXR1cm4gaTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLl9zZXR1cExpc3REYXRhU291cmNlKCk7XG4gICAgdGhpcy5faXNJbml0aWFsaXplZCA9IHRydWU7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBvdmVycmlkZSBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZWRTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fb25Mb2FkaW5nQ2hhbmdlZFN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICBzdXBlci5uZ09uRGVzdHJveSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIChSZSljcmVhdGVzIHRoZSBpbnRlcm5hbCBgQVhMaXN0RGF0YVNvdXJjZWAgd3JhcHBlciB1c2VkIGJ5IGBjZGtWaXJ0dWFsRm9yYFxuICAgKiBhbmQgKHJlKXN1YnNjcmliZXMgdG8gdGhlIHVuZGVybHlpbmcgc291cmNlJ3MgZXZlbnRzLiBUaGlzIGlzIGludm9rZWRcbiAgICogd2hlbmV2ZXIgdGhlIGBkYXRhU291cmNlYCBpbnB1dCBjaGFuZ2VzIHNvIHRoYXQgdGhlIGxpc3QgcHJvcGVybHkgcmVmbGVjdHNcbiAgICogdGhlIG5ldyBzb3VyY2UuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgX3NldHVwTGlzdERhdGFTb3VyY2UoKTogdm9pZCB7XG4gICAgdGhpcy5fb25DaGFuZ2VkU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHRoaXMuX29uTG9hZGluZ0NoYW5nZWRTdWI/LnVuc3Vic2NyaWJlKCk7XG5cbiAgICB0aGlzLmxpc3REYXRhU291cmNlID0gbmV3IEFYTGlzdERhdGFTb3VyY2U8dW5rbm93bj4oe1xuICAgICAgc291cmNlOiB0aGlzLl9kYXRhU291cmNlLFxuICAgIH0pO1xuXG4gICAgLy8gT25seSBtaXJyb3IgdGhlIHNvdXJjZSdzIHN0YXRlIGlmIGl0IGhhcyBhbHJlYWR5IHByb2R1Y2VkIGRhdGEuXG4gICAgLy8gT3RoZXJ3aXNlIGtlZXAgYGlzTG9hZGluZz10cnVlYCBzbyB0aGUgZW1wdHkgdGVtcGxhdGUgZG9lc24ndCByZW5kZXIsXG4gICAgLy8gd2hpY2ggd291bGQgYWRkIGAuYXgtaGVpZ2h0LWF1dG9gIGFuZCBjb2xsYXBzZSB0aGUgY29udGFpbmVyLCBzdGFydmluZ1xuICAgIC8vIHRoZSB2aXJ0dWFsIHZpZXdwb3J0IG9mIHNpemUg4oCUIHByZXZlbnRpbmcgYHZpZXdDaGFuZ2VgIGZyb20gZmlyaW5nIGFuZFxuICAgIC8vIHRoZSBkYXRhIHNvdXJjZSdzIGBsb2FkYCBjYWxsYmFjayBmcm9tIGV2ZXIgYmVpbmcgaW52b2tlZC5cbiAgICBjb25zdCBoYXNMb2FkZWRJdGVtcyA9IHRoaXMuX2RhdGFTb3VyY2UudG90YWxDb3VudCA+IDA7XG4gICAgdGhpcy5pc0xvYWRpbmcuc2V0KGhhc0xvYWRlZEl0ZW1zID8gdGhpcy5fZGF0YVNvdXJjZS5pc0xvYWRpbmcgOiB0cnVlKTtcbiAgICB0aGlzLmhhc0l0ZW1zID0gaGFzTG9hZGVkSXRlbXM7XG5cbiAgICB0aGlzLl9vbkxvYWRpbmdDaGFuZ2VkU3ViID0gdGhpcy5saXN0RGF0YVNvdXJjZS5zb3VyY2Uub25Mb2FkaW5nQ2hhbmdlZC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChkYXRhKTtcbiAgICB9KTtcbiAgICB0aGlzLl9vbkNoYW5nZWRTdWIgPSB0aGlzLmxpc3REYXRhU291cmNlLnNvdXJjZS5vbkNoYW5nZWQuc3Vic2NyaWJlKChkYXRhKSA9PiB7XG4gICAgICB0aGlzLmhhc0l0ZW1zID0gZGF0YS50b3RhbENvdW50ID4gMDtcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICB0aGlzLnJlbmRlcigpO1xuICAgICAgfSwgMCk7XG4gICAgfSk7XG4gIH1cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBfaGFuZGxlT25JdGVtQ2xpY2soZTogTW91c2VFdmVudCwgaXRlbTogYW55KSB7XG4gICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMuaXNJdGVtRGlzYWJsZWQoaXRlbSkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnRvb2x0aXBSZWYoKS5mb3JFYWNoKChpdGVtKSA9PiB7XG4gICAgICBpdGVtLmNsb3NlKCk7XG4gICAgfSk7XG4gICAgdGhpcy50b2dnbGVTZWxlY3QoaXRlbSk7XG4gICAgdGhpcy5vbkl0ZW1DbGljay5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGl0ZW0sXG4gICAgICBodG1sRWxlbWVudDogZS50YXJnZXQgYXMgSFRNTEVsZW1lbnQsXG4gICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdHJ1ZSxcbiAgICAgIG5hdGl2ZUV2ZW50OiBlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgX2hhbmRsZUtleWRvd24oZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmICgoZS5jb2RlID09PSAnQXJyb3dEb3duJyB8fCBlLmNvZGUgPT09ICdBcnJvd1VwJykgJiYgdGhpcy5oYXNJdGVtcykge1xuICAgICAgdGhpcy5mb2N1c0l0ZW1CeU5hdihlLmtleSA9PT0gJ0Fycm93RG93bicgPyAxIDogLTEpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICBpZiAoKGUuY29kZSA9PT0gJ1NwYWNlJyB8fCBlLmNvZGUgPT09ICdFbnRlcicpICYmIHRoaXMuaGFzSXRlbXMpIHtcbiAgICAgIGlmICh0aGlzLnJlYWRvbmx5IHx8IHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSkge1xuICAgICAgICBjb25zdCBpZCA9IHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudD8uY2xvc2VzdCgnbGknKT8uZGF0YXNldFsnaWQnXTtcbiAgICAgICAgdGhpcy50b2dnbGVTZWxlY3QoaWQpO1xuICAgICAgfVxuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgZm9jdXNJdGVtQnlOYXYoc2lnbjogLTEgfCAxKTogdm9pZCB7XG4gICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JRCkpIHtcbiAgICAgIGNvbnN0IGxpc3QgPSB0aGlzLmdldEhvc3RFbGVtZW50KCkucXVlcnlTZWxlY3RvcigndWwnKTtcbiAgICAgIGNvbnN0IGZuID0gKHMpID0+IGxpc3QucXVlcnlTZWxlY3RvcjxIVE1MRGl2RWxlbWVudD4ocyk7XG4gICAgICBjb25zdCBpdGVtRGl2OiBIVE1MRWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuYWN0aXZlRWxlbWVudD8uY2xvc2VzdCgnbGknKSB8fCBmbihgbGkuYXgtc3RhdGUtc2VsZWN0ZWRgKSB8fCBmbihgbGlgKTtcbiAgICAgIGNvbnN0IG5leHQgPSAoc2lnbiA9PSAxID8gaXRlbURpdi5uZXh0RWxlbWVudFNpYmxpbmcgOiBpdGVtRGl2LnByZXZpb3VzRWxlbWVudFNpYmxpbmcpIGFzIEhUTUxFbGVtZW50O1xuICAgICAgaWYgKG5leHQpIHtcbiAgICAgICAgbmV4dC5mb2N1cygpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIF9oYW5kbGVPbnNjcm9sbGVkSW5kZXhDaGFuZ2UoZTogbnVtYmVyKSB7XG4gICAgdGhpcy5sYXN0SW5kZXggPSBlO1xuICAgIHRoaXMub25TY3JvbGxlZEluZGV4Q2hhbmdlZC5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGluZGV4OiB0aGlzLmxhc3RJbmRleCxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHJpZXZlcyBhbiBpdGVtIGZyb20gdGhlIGRhdGEgc291cmNlIGJhc2VkIG9uIHRoZSBwcm92aWRlZCBrZXkuXG4gICAqXG4gICAqIEBwYXJhbSBrZXkgVGhlIGtleSB1c2VkIHRvIGlkZW50aWZ5IHRoZSBpdGVtLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBnZXRJdGVtQnlLZXkoa2V5OiB1bmtub3duKTogUHJvbWlzZTx1bmtub3duPiB8IHVua25vd24ge1xuICAgIHJldHVybiB0aGlzLmRhdGFTb3VyY2UuZmluZChrZXkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIGNvbXBvbmVudCBieSB1cGRhdGluZyB0aGUgdmlld3BvcnQgc2l6ZSwgc2Nyb2xsaW5nIHRvIHRoZSBzZWxlY3RlZCBpdGVtLCBhbmQgb3B0aW9uYWxseSBmb2N1c2luZyB0aGUgZWxlbWVudC5cbiAgICovXG4gIHB1YmxpYyByZW5kZXIoKSB7XG4gICAgaWYgKCF0aGlzLnZpZXdwb3J0KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zY3JvbGxUbygpO1xuICAgIGlmICh0aGlzLnBvc3Rwb25lRm9jdXMpIHtcbiAgICAgIHRoaXMucG9zdHBvbmVGb2N1cyA9IGZhbHNlO1xuICAgICAgdGhpcy5mb2N1cygpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGxzIHRoZSB2aWV3cG9ydCB0byB0aGUgY3VycmVudGx5IHNlbGVjdGVkIGxpc3QgaXRlbS5cbiAgICovXG4gIHB1YmxpYyBzY3JvbGxUbygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMudmlld3BvcnQgfHwgIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JRCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnZpZXdwb3J0LmNoZWNrVmlld3BvcnRTaXplKCk7XG5cbiAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoKCkgPT4ge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLnJlc29sdmVTZWxlY3RlZEluZGV4KCk7XG4gICAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgICB0aGlzLmxhc3RJbmRleCA9IGluZGV4O1xuICAgICAgICB0aGlzLnZpZXdwb3J0LnNjcm9sbFRvSW5kZXgoaW5kZXgpO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlc29sdmVzIHRoZSBzZWxlY3RlZCBpdGVtIGluZGV4IGZyb20gdmFsdWVzIGFscmVhZHkgbG9hZGVkIGluIHRoZSBsaXN0IHNvdXJjZS5cbiAgICogT25seSBjb25zaWRlcnMgbG9hZGVkIGVudHJpZXMgc28gbGF6eSBzb3VyY2VzIGFyZSBub3Qgc2Nhbm5lZCBieSBhIGdsb2JhbCBpbmRleC5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSByZXNvbHZlU2VsZWN0ZWRJbmRleCgpOiBudW1iZXIge1xuICAgIGlmICh0aGlzLm11bHRpcGxlIHx8ICF0aGlzLmxpc3REYXRhU291cmNlKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IHRoaXMuZ2V0U2VsZWN0ZWRLZXkoKTtcbiAgICBpZiAoc2VsZWN0ZWRWYWx1ZSA9PSBudWxsKSB7XG4gICAgICByZXR1cm4gLTE7XG4gICAgfVxuXG4gICAgY29uc3QgaXRlbXMgPSB0aGlzLmxpc3REYXRhU291cmNlLnNvdXJjZS5jYWNoZWRJdGVtcztcblxuICAgIGZvciAobGV0IGluZGV4ID0gMDsgaW5kZXggPCBpdGVtcy5sZW5ndGg7IGluZGV4KyspIHtcbiAgICAgIGNvbnN0IGl0ZW0gPSBpdGVtc1tpbmRleF07XG4gICAgICBpZiAoaXRlbSAhPSBudWxsICYmIHRoaXMuZ2V0VmFsdWUoaXRlbSkgPT0gc2VsZWN0ZWRWYWx1ZSkge1xuICAgICAgICByZXR1cm4gaW5kZXg7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIC0xO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByaXZhdGUgZ2V0U2VsZWN0ZWRLZXkoKTogdW5rbm93biB7XG4gICAgY29uc3QgaXRlbSA9IHRoaXMuc2VsZWN0ZWRJdGVtc1swXSA/PyB0aGlzLnZhbHVlO1xuICAgIGlmIChpdGVtID09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHJldHVybiB0eXBlb2YgaXRlbSA9PT0gJ29iamVjdCcgPyB0aGlzLmdldFZhbHVlKGl0ZW0pIDogaXRlbTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWZyZXNoZXMgdGhlIGxpc3QgYnkgY2xlYXJpbmcgdGhlIHNlbGVjdGlvbiBjYWNoZSBhbmQgcmVsb2FkaW5nIHRoZSBkYXRhIHNvdXJjZS5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIHJlZnJlc2goY2xlYXJTZWxlY3Rpb24gPSB0cnVlKSB7XG4gICAgaWYgKGNsZWFyU2VsZWN0aW9uKSB7XG4gICAgICB0aGlzLmNsZWFyU2VsZWN0aW9uQ2FjaGUoKTtcbiAgICB9XG4gICAgdGhpcy5saXN0RGF0YVNvdXJjZS5yZWZyZXNoKCk7XG4gIH1cblxuICAvKipcbiAgICogU2Nyb2xscyB0aGUgdmlld3BvcnQgdG8gdGhlIHNwZWNpZmllZCBpdGVtIGluZGV4LlxuICAgKiBAcGFyYW0gaW5kZXggVGhlIGluZGV4IG9mIHRoZSBpdGVtIHRvIHNjcm9sbCB0by5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHVibGljIHNjcm9sbFRvSW5kZXgoaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMudmlld3BvcnQuc2Nyb2xsVG9JbmRleChpbmRleCk7XG4gIH1cbiAgLyoqXG4gICAqIFNldHMgZm9jdXMgdG8gdGhlIGZpcnN0IHNlbGVjdGFibGUgbGlzdCBpdGVtLiBJZiBubyBpdGVtIGlzIGF2YWlsYWJsZSwgcG9zdHBvbmVzIGZvY3VzLlxuICAgKi9cbiAgb3ZlcnJpZGUgZm9jdXMoKTogdm9pZCB7XG4gICAgY29uc3QgbGlzdCA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCd1bCcpO1xuICAgIGNvbnN0IGZvY3VzYWJsZSA9XG4gICAgICBsaXN0LnF1ZXJ5U2VsZWN0b3I8SFRNTEVsZW1lbnQ+KCdsaS5heC1zdGF0ZS1zZWxlY3RlZCcpID8/IGxpc3QucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJ2xpLmxpc3QtaXRlbScpO1xuICAgIGlmIChmb2N1c2FibGUpIHtcbiAgICAgIGZvY3VzYWJsZS5mb2N1cygpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLnBvc3Rwb25lRm9jdXMgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBEZXRlcm1pbmVzIHdoZXRoZXIgdG8gc2hvdyB0aGUgZW1wdHkgdGVtcGxhdGUgYmFzZWQgb24gdGhlIHByZXNlbmNlIG9mIGl0ZW1zIGFuZCBsb2FkaW5nIHN0YXRlLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBzaG93RW1wdHlUZW1wbGF0ZSA9IGNvbXB1dGVkKCgpID0+IHRoaXMuaXNMb2FkaW5nKCkgPT09IGZhbHNlICYmIHRoaXMuZW1wdHlUZW1wbGF0ZSAmJiB0aGlzLmhhc0l0ZW1zID09PSBmYWxzZSk7XG59XG4iLCI8ZGl2IGNsYXNzPVwibGlzdC1jb250YWluZXJcIiBjZGtWaXJ0dWFsU2Nyb2xsaW5nRWxlbWVudCBbY2xhc3MuYXgtaGVpZ2h0LWF1dG9dPVwic2hvd0VtcHR5VGVtcGxhdGUoKVwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1oZWFkZXJcIj48L25nLWNvbnRlbnQ+XG4gIDxjZGstdmlydHVhbC1zY3JvbGwtdmlld3BvcnRcbiAgICBbaXRlbVNpemVdPVwiaXRlbUhlaWdodFNpZ25hbCgpXCJcbiAgICBbc3R5bGUuLS1pdGVtLWhlaWdodF09XCJpdGVtSGVpZ2h0U2lnbmFsKCkgKyAncHgnXCJcbiAgICAoc2Nyb2xsZWRJbmRleENoYW5nZSk9XCJfaGFuZGxlT25zY3JvbGxlZEluZGV4Q2hhbmdlKCRldmVudClcIlxuICAgIFtjbGFzcy5heC10cnVuY2F0ZWQtY29udGFpbmVyXT1cImlzSXRlbVRydW5jYXRlZCgpXCJcbiAgPlxuICAgIDx1bD5cbiAgICAgIDwhLS0gIEl0ZW0gVGVtcGxhdGUgIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqY2RrVmlydHVhbEZvcj1cImxldCBpdGVtIG9mIGxpc3REYXRhU291cmNlOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5SWR4XCI+XG4gICAgICAgIEBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpdGVtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICA8bGlcbiAgICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1zZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiXG4gICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiXG4gICAgICAgICAgICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiaXNJdGVtRGlzYWJsZWQoaXRlbSlcIlxuICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX2hhbmRsZU9uSXRlbUNsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1pZF09XCJnZXRWYWx1ZShpdGVtKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPCEtLSAgQ3VzdG9tIEl0ZW0gVGVtcGxhdGUgIC0tPlxuICAgICAgICAgICAgQGlmIChpdGVtVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHsgZGF0YTogaXRlbSB9IH1cIj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJkZWZhdWx0SXRlbVRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPCEtLSAgRGVmYXVsdCBJdGVtIFRlbXBsYXRlICAtLT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEl0ZW1UcGw+XG4gICAgICAgICAgICAgIEBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpdGVtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbGFiZWwtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICBAaWYgKG11bHRpcGxlICYmIGNoZWNrYm94KSB7XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LWNoZWNrYm94LWxhYmVsXT1cIm11bHRpcGxlICYmIGNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LXRydW5jYXRlZF09XCJpc0l0ZW1UcnVuY2F0ZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtheFRvb2x0aXBdPVwiZ2V0RGlzcGxheVRleHQoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbYXhUb29sdGlwRGlzYWJsZWRdPVwiIXNob3dJdGVtVG9vbHRpcCgpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgZ2V0RGlzcGxheVRleHQoaXRlbSkgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwhLS0gQGlmIChpc0l0ZW1TZWxlY3RlZChpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2hlY2sgYXgtc2VsZWN0ZWQtaWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICB9IC0tPlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxvYWRpbmdUcGxcIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsb2FkaW5nVHBsXCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3VsPlxuICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbjwhLS0gIExvYWRpbmcgVGVtcGxhdGUgIC0tPlxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVHBsPlxuICA8IS0tICBDdXN0b20gTG9hZGluZyBUZW1wbGF0ZSAgLS0+XG4gIEBpZiAobG9hZGluZ1RlbXBsYXRlKSB7XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsb2FkaW5nVGVtcGxhdGVcIj4gPC9uZy1jb250YWluZXI+XG4gIH0gQGVsc2Uge1xuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGVmYXVsdExvYWRpbmdUcGxcIj4gPC9uZy1jb250YWluZXI+XG4gIH1cbiAgPCEtLSAgRGVmYXVsdCBMb2FkaW5nIFRlbXBsYXRlICAtLT5cbiAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TG9hZGluZ1RwbD5cbiAgICA8bGk+e3sgJ0BhY29yZXg6Y29tbW9uLnN0YXR1cy5sb2FkaW5nJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9saT5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG48IS0tICBFbXB0eSBUZW1wbGF0ZSAgLS0+XG5AaWYgKHNob3dFbXB0eVRlbXBsYXRlKCkpIHtcbiAgPGRpdiBjbGFzcz1cImVtcHR5LWNvbnRhaW5lclwiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZW1wdHlUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbn1cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { AXListComponent } from './list.component';\nimport * as i0 from \"@angular/core\";\nexport class AXListModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListModule, imports: [AXListComponent], exports: [AXListComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListModule, imports: [AXListComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [AXListComponent],\n exports: [AXListComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2xpc3Qvc3JjL2xpYi9saXN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFNbkQsTUFBTSxPQUFPLFlBQVk7OEdBQVosWUFBWTsrR0FBWixZQUFZLFlBSGIsZUFBZSxhQUNmLGVBQWU7K0dBRWQsWUFBWSxZQUhiLGVBQWU7OzJGQUdkLFlBQVk7a0JBSnhCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUMxQixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTGlzdENvbXBvbmVudCB9IGZyb20gJy4vbGlzdC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQVhMaXN0Q29tcG9uZW50XSxcbiAgZXhwb3J0czogW0FYTGlzdENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTGlzdE1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbGlzdC9zcmMvYWNvcmV4LWNvbXBvbmVudHMtbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-list.mjs","sources":["../tmp-esm2022/list/lib/list.component.js","../tmp-esm2022/list/lib/list.module.js","../tmp-esm2022/list/acorex-components-list.js"],"sourcesContent":["import { AXComponent, AXDataSource, AXFocusableComponent, AXListDataSource, AXValuableComponent, AX_SELECTION_DATA_TOKEN, MXSelectionBridgeService, MXSelectionValueComponent, convertArrayToDataSource, } from '@acorex/cdk/common';\nimport { AXTooltipDirective, AXTooltipModule } from '@acorex/components/tooltip';\nimport { AXTranslatorPipe } from '@acorex/core/translation';\nimport { CdkFixedSizeVirtualScroll, CdkVirtualForOf, CdkVirtualScrollViewport, CdkVirtualScrollableElement, } from '@angular/cdk/scrolling';\nimport { AsyncPipe, NgTemplateOutlet, isPlatformBrowser } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Optional, Output, SkipSelf, TemplateRef, ViewChild, ViewEncapsulation, computed, forwardRef, input, signal, viewChildren, } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@acorex/components/tooltip\";\n/**\n * provides a list control with various input options and events for user interaction.\n *\n * @category Components\n */\nexport class AXListComponent extends MXSelectionValueComponent {\n constructor() {\n super(...arguments);\n this.tooltipRef = viewChildren(AXTooltipDirective, ...(ngDevMode ? [{ debugName: \"tooltipRef\" }] : []));\n /**\n * Determines if an item is truncated.\n *\n * @defaultValue true\n */\n this.isItemTruncated = input(true, ...(ngDevMode ? [{ debugName: \"isItemTruncated\" }] : []));\n /**\n * Determines if a tooltip is shown for an item.\n *\n * @defaultValue false\n */\n this.showItemTooltip = input(false, ...(ngDevMode ? [{ debugName: \"showItemTooltip\" }] : []));\n /** @ignore */\n this._dataSource = convertArrayToDataSource([]);\n /** @ignore */\n this._isInitialized = false;\n /**\n * @ignore\n */\n this.itemHeightSignal = signal(40, ...(ngDevMode ? [{ debugName: \"itemHeightSignal\" }] : []));\n /**\n * Fixed pixel size for CDK virtual scroll. Falls back to 40 when `itemHeight` is `'auto'`.\n * @ignore\n */\n this.cdkItemSize = computed(() => {\n const height = this.itemHeightSignal();\n return typeof height === 'number' ? height : 40;\n }, ...(ngDevMode ? [{ debugName: \"cdkItemSize\" }] : []));\n /**\n * CSS value applied to `--ax-comp-list-item-height` so rendered rows match the virtual slot.\n * @ignore\n */\n this.itemHeightCss = computed(() => `${this.cdkItemSize()}px`, ...(ngDevMode ? [{ debugName: \"itemHeightCss\" }] : []));\n /**\n * Emitted when the index of the scrolled item changes.\n *\n * @event\n */\n this.onScrolledIndexChanged = new EventEmitter();\n /**\n * Specifies whether the checkbox is enabled.\n *\n * @defaultValue true\n */\n this.checkbox = true;\n /**\n * @ignore\n */\n this.isLoading = signal(true, ...(ngDevMode ? [{ debugName: \"isLoading\" }] : []));\n /**\n * @ignore\n */\n this.hasItems = false;\n /**\n * @ignore\n */\n this.lastIndex = 0;\n /**\n * @ignore\n */\n this.postponeFocus = false;\n /**\n * Determines whether to show the empty template based on the presence of items and loading state.\n * @ignore\n */\n this.showEmptyTemplate = computed(() => this.isLoading() === false && this.emptyTemplate && this.hasItems === false, ...(ngDevMode ? [{ debugName: \"showEmptyTemplate\" }] : []));\n }\n /**\n * Defines the data source for the list.\n *\n * @defaultValue convertArrayToDataSource([])\n */\n set dataSource(v) {\n if (!v || v === this._dataSource) {\n return;\n }\n this._dataSource = v;\n if (this._isInitialized) {\n this._setupListDataSource();\n }\n }\n get dataSource() {\n return this._dataSource;\n }\n /**\n * Sets the height of each item in the list.\n */\n set itemHeight(v) {\n this.itemHeightSignal.set(v);\n }\n trackByIdx(i) {\n return i;\n }\n /**\n * @ignore\n */\n ngOnInit() {\n super.ngOnInit();\n this._setupListDataSource();\n this._isInitialized = true;\n }\n /**\n * @ignore\n */\n ngOnDestroy() {\n this._onChangedSub?.unsubscribe();\n this._onLoadingChangedSub?.unsubscribe();\n super.ngOnDestroy();\n }\n /**\n * (Re)creates the internal `AXListDataSource` wrapper used by `cdkVirtualFor`\n * and (re)subscribes to the underlying source's events. This is invoked\n * whenever the `dataSource` input changes so that the list properly reflects\n * the new source.\n * @ignore\n */\n _setupListDataSource() {\n this._onChangedSub?.unsubscribe();\n this._onLoadingChangedSub?.unsubscribe();\n this.listDataSource = new AXListDataSource({\n source: this._dataSource,\n });\n // Only mirror the source's state if it has already produced data.\n // Otherwise keep `isLoading=true` so the empty template doesn't render,\n // which would add `.ax-height-auto` and collapse the container, starving\n // the virtual viewport of size — preventing `viewChange` from firing and\n // the data source's `load` callback from ever being invoked.\n const hasLoadedItems = this._dataSource.totalCount > 0;\n this.isLoading.set(hasLoadedItems ? this._dataSource.isLoading : true);\n this.hasItems = hasLoadedItems;\n this._onLoadingChangedSub = this.listDataSource.source.onLoadingChanged.subscribe((data) => {\n this.isLoading.set(data);\n });\n this._onChangedSub = this.listDataSource.source.onChanged.subscribe((data) => {\n this.hasItems = data.totalCount > 0;\n setTimeout(() => {\n this.render();\n }, 0);\n });\n }\n /**\n * @ignore\n */\n _handleOnItemClick(e, item) {\n if (this.readonly || this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (this.isItemDisabled(item)) {\n return;\n }\n this.tooltipRef().forEach((item) => {\n item.close();\n });\n this.toggleSelect(item);\n this.onItemClick.emit({\n component: this,\n item,\n htmlElement: e.target,\n isUserInteraction: true,\n nativeEvent: e,\n });\n }\n /**\n * @ignore\n */\n _handleKeydown(e) {\n if ((e.code === 'ArrowDown' || e.code === 'ArrowUp') && this.hasItems) {\n this.focusItemByNav(e.key === 'ArrowDown' ? 1 : -1);\n e.preventDefault();\n }\n if ((e.code === 'Space' || e.code === 'Enter') && this.hasItems) {\n if (this.readonly || this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (isPlatformBrowser(this.platformID)) {\n const id = this.document.activeElement?.closest('li')?.dataset['id'];\n this.toggleSelect(id);\n }\n e.preventDefault();\n e.stopPropagation();\n }\n }\n /**\n * @ignore\n */\n focusItemByNav(sign) {\n if (isPlatformBrowser(this.platformID)) {\n const list = this.getHostElement().querySelector('ul');\n const fn = (s) => list.querySelector(s);\n const itemDiv = this.document.activeElement?.closest('li') || fn(`li.ax-state-selected`) || fn(`li`);\n const next = (sign == 1 ? itemDiv.nextElementSibling : itemDiv.previousElementSibling);\n if (next) {\n next.focus();\n }\n }\n }\n /**\n * @ignore\n */\n _handleOnscrolledIndexChange(e) {\n this.lastIndex = e;\n this.onScrolledIndexChanged.emit({\n component: this,\n index: this.lastIndex,\n isUserInteraction: true,\n });\n }\n /**\n * Retrieves an item from the data source based on the provided key.\n *\n * @param key The key used to identify the item.\n * @ignore\n */\n getItemByKey(key) {\n return this.dataSource.find(key);\n }\n /**\n * Renders the component by updating the viewport size, scrolling to the selected item, and optionally focusing the element.\n */\n render() {\n if (!this.viewport) {\n return;\n }\n this.scrollTo();\n if (this.postponeFocus) {\n this.postponeFocus = false;\n this.focus();\n }\n }\n /**\n * Scrolls the viewport to the currently selected list item.\n */\n scrollTo() {\n if (!this.viewport || !isPlatformBrowser(this.platformID)) {\n return;\n }\n this.viewport.checkViewportSize();\n requestAnimationFrame(() => {\n const index = this.resolveSelectedIndex();\n if (index >= 0) {\n this.lastIndex = index;\n this.viewport.scrollToIndex(index);\n }\n });\n }\n /**\n * Resolves the selected item index from values already loaded in the list source.\n * Only considers loaded entries so lazy sources are not scanned by a global index.\n * @ignore\n */\n resolveSelectedIndex() {\n if (this.multiple || !this.listDataSource) {\n return -1;\n }\n const selectedValue = this.getSelectedKey();\n if (selectedValue == null) {\n return -1;\n }\n const items = this.listDataSource.source.cachedItems;\n for (let index = 0; index < items.length; index++) {\n const item = items[index];\n if (item != null && this.getValue(item) == selectedValue) {\n return index;\n }\n }\n return -1;\n }\n /**\n * @ignore\n */\n getSelectedKey() {\n const item = this.selectedItems[0] ?? this.value;\n if (item == null) {\n return null;\n }\n return typeof item === 'object' ? this.getValue(item) : item;\n }\n /**\n * Refreshes the list by clearing the selection cache and reloading the data source.\n * @ignore\n */\n refresh(clearSelection = true) {\n if (clearSelection) {\n this.clearSelectionCache();\n }\n this.listDataSource.refresh();\n }\n /**\n * Scrolls the viewport to the specified item index.\n * @param index The index of the item to scroll to.\n * @ignore\n */\n scrollToIndex(index) {\n this.viewport.scrollToIndex(index);\n }\n /**\n * Sets focus to the first selectable list item. If no item is available, postpones focus.\n */\n focus() {\n const list = this.getHostElement().querySelector('ul');\n const focusable = list.querySelector('li.ax-state-selected') ?? list.querySelector('li.list-item');\n if (focusable) {\n focusable.focus();\n }\n else {\n this.postponeFocus = true;\n }\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.3.3\", type: AXListComponent, isStandalone: true, selector: \"ax-list\", inputs: { id: { classPropertyName: \"id\", publicName: \"id\", isSignal: false, isRequired: false, transformFunction: null }, name: { classPropertyName: \"name\", publicName: \"name\", isSignal: false, isRequired: false, transformFunction: null }, disabled: { classPropertyName: \"disabled\", publicName: \"disabled\", isSignal: false, isRequired: false, transformFunction: null }, readonly: { classPropertyName: \"readonly\", publicName: \"readonly\", isSignal: false, isRequired: false, transformFunction: null }, valueField: { classPropertyName: \"valueField\", publicName: \"valueField\", isSignal: false, isRequired: false, transformFunction: null }, textField: { classPropertyName: \"textField\", publicName: \"textField\", isSignal: false, isRequired: false, transformFunction: null }, textTemplate: { classPropertyName: \"textTemplate\", publicName: \"textTemplate\", isSignal: false, isRequired: false, transformFunction: null }, disabledField: { classPropertyName: \"disabledField\", publicName: \"disabledField\", isSignal: false, isRequired: false, transformFunction: null }, multiple: { classPropertyName: \"multiple\", publicName: \"multiple\", isSignal: false, isRequired: false, transformFunction: null }, selectionMode: { classPropertyName: \"selectionMode\", publicName: \"selectionMode\", isSignal: false, isRequired: false, transformFunction: null }, isItemTruncated: { classPropertyName: \"isItemTruncated\", publicName: \"isItemTruncated\", isSignal: true, isRequired: false, transformFunction: null }, showItemTooltip: { classPropertyName: \"showItemTooltip\", publicName: \"showItemTooltip\", isSignal: true, isRequired: false, transformFunction: null }, dataSource: { classPropertyName: \"dataSource\", publicName: \"dataSource\", isSignal: false, isRequired: false, transformFunction: null }, itemHeight: { classPropertyName: \"itemHeight\", publicName: \"itemHeight\", isSignal: false, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: \"itemTemplate\", publicName: \"itemTemplate\", isSignal: false, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: \"emptyTemplate\", publicName: \"emptyTemplate\", isSignal: false, isRequired: false, transformFunction: null }, loadingTemplate: { classPropertyName: \"loadingTemplate\", publicName: \"loadingTemplate\", isSignal: false, isRequired: false, transformFunction: null }, checkbox: { classPropertyName: \"checkbox\", publicName: \"checkbox\", isSignal: false, isRequired: false, transformFunction: null } }, outputs: { onValueChanged: \"onValueChanged\", disabledChange: \"disabledChange\", readonlyChange: \"readonlyChange\", onBlur: \"onBlur\", onFocus: \"onFocus\", onItemClick: \"onItemClick\", onItemSelected: \"onItemSelected\", onScrolledIndexChanged: \"onScrolledIndexChanged\" }, host: { listeners: { \"keydown\": \"_handleKeydown($event)\" } }, providers: [\n { provide: AXComponent, useExisting: AXListComponent },\n { provide: AXFocusableComponent, useExisting: AXListComponent },\n { provide: AXValuableComponent, useExisting: AXListComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXListComponent),\n multi: true,\n },\n {\n provide: AX_SELECTION_DATA_TOKEN,\n useFactory: (existingService) => {\n return existingService || new MXSelectionBridgeService();\n },\n deps: [[new Optional(), new SkipSelf(), AX_SELECTION_DATA_TOKEN]],\n },\n ], viewQueries: [{ propertyName: \"tooltipRef\", predicate: AXTooltipDirective, descendants: true, isSignal: true }, { propertyName: \"viewport\", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, ngImport: i0, template: \"<div class=\\\"list-container\\\" cdkVirtualScrollingElement [class.ax-height-auto]=\\\"showEmptyTemplate()\\\">\\n <ng-content select=\\\"ax-header\\\"></ng-content>\\n <cdk-virtual-scroll-viewport\\n [itemSize]=\\\"cdkItemSize()\\\"\\n [style.--ax-comp-list-item-height]=\\\"itemHeightCss()\\\"\\n (scrolledIndexChange)=\\\"_handleOnscrolledIndexChange($event)\\\"\\n [class.ax-truncated-container]=\\\"isItemTruncated()\\\"\\n >\\n <ul>\\n <!-- Item Template -->\\n <ng-container *cdkVirtualFor=\\\"let item of listDataSource; let i = index; trackBy: trackByIdx\\\">\\n @if (item !== null && item !== undefined) {\\n <li\\n [class.ax-state-selected]=\\\"isItemSelected(item)\\\"\\n class=\\\"list-item\\\"\\n [class.ax-state-disabled]=\\\"isItemDisabled(item)\\\"\\n [attr.tabindex]=\\\"i\\\"\\n (click)=\\\"_handleOnItemClick($event, item)\\\"\\n [attr.data-id]=\\\"getValue(item)\\\"\\n >\\n <!-- Custom Item Template -->\\n @if (itemTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"itemTemplate\\\" [ngTemplateOutletContext]=\\\"{ $implicit: { data: item } }\\\">\\n </ng-container>\\n } @else {\\n <ng-container [ngTemplateOutlet]=\\\"defaultItemTpl\\\"></ng-container>\\n }\\n <!-- Default Item Template -->\\n <ng-template #defaultItemTpl>\\n @if (item !== null && item !== undefined) {\\n <div class=\\\"ax-label-container\\\">\\n @if (multiple && checkbox) {\\n <input\\n class=\\\"ax-checkbox\\\"\\n type=\\\"checkbox\\\"\\n [checked]=\\\"isItemSelected(item)\\\"\\n [disabled]=\\\"isItemDisabled(item)\\\"\\n tabindex=\\\"0\\\"\\n />\\n }\\n\\n <span\\n [class.ax-checkbox-label]=\\\"multiple && checkbox\\\"\\n [class.ax-truncated]=\\\"isItemTruncated()\\\"\\n [axTooltip]=\\\"getDisplayText(item)\\\"\\n [axTooltipDisabled]=\\\"!showItemTooltip()\\\"\\n >\\n {{ getDisplayText(item) | translate | async }}\\n </span>\\n </div>\\n <!-- @if (isItemSelected(item)) {\\n <i class=\\\"ax-icon ax-icon-check ax-selected-icon\\\"></i>\\n } -->\\n } @else {\\n <ng-container [ngTemplateOutlet]=\\\"loadingTpl\\\"> </ng-container>\\n }\\n </ng-template>\\n </li>\\n } @else {\\n <ng-container [ngTemplateOutlet]=\\\"loadingTpl\\\"> </ng-container>\\n }\\n </ng-container>\\n </ul>\\n </cdk-virtual-scroll-viewport>\\n <ng-content select=\\\"ax-footer\\\"></ng-content>\\n</div>\\n\\n<!-- Loading Template -->\\n<ng-template #loadingTpl>\\n <!-- Custom Loading Template -->\\n @if (loadingTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"loadingTemplate\\\"> </ng-container>\\n } @else {\\n <ng-container [ngTemplateOutlet]=\\\"defaultLoadingTpl\\\"> </ng-container>\\n }\\n <!-- Default Loading Template -->\\n <ng-template #defaultLoadingTpl>\\n <li>{{ '@acorex:common.status.loading' | translate | async }}</li>\\n </ng-template>\\n</ng-template>\\n<!-- Empty Template -->\\n@if (showEmptyTemplate()) {\\n <div class=\\\"empty-container\\\">\\n <ng-container [ngTemplateOutlet]=\\\"emptyTemplate\\\"></ng-container>\\n </div>\\n}\\n\", styles: [\"ax-list{--ax-comp-list-item-height: var(--ax-sys-size-base);--ax-comp-list-empty-container-height: var(--ax-sys-size-base)}ax-list{--ax-comp-list-item-selected-bg-color: var(--ax-sys-color-primary-surface), .2;--ax-comp-list-item-header: var(--ax-sys-color-lighter-surface);--ax-comp-list-item-footer: var(--ax-sys-color-lighter-surface)}ax-list{display:block;height:100%;width:100%;font-size:var(--ax-comp-list-font-size, .875rem);line-height:var(--ax-comp-list-line-height, 1.25rem)}ax-list .list-container{display:flex;height:100%;flex-direction:column}ax-list .list-container.ax-height-auto{height:auto}ax-list ax-header{background-color:rgba(var(--ax-comp-list-item-header))}ax-list ax-footer{background-color:rgba(var(--ax-comp-list-item-footer))}ax-list .empty-container{display:flex;height:var(--ax-comp-list-empty-container-height);width:100%;align-items:center;justify-content:center;padding-left:var(--ax-comp-list-empty-container-padding-x, .75rem);padding-right:var(--ax-comp-list-empty-container-padding-x, .75rem)}ax-list .cdk-virtual-scroll-viewport{flex:1 1 auto;width:100%;height:100%;min-height:0}ax-list .cdk-virtual-scroll-viewport.ax-truncated-container .cdk-virtual-scroll-content-wrapper{width:100%;min-width:unset}ax-list .cdk-virtual-scroll-viewport ul li{position:relative;box-sizing:border-box;display:flex;height:var(--ax-comp-list-item-height);min-height:var(--ax-comp-list-item-height);max-height:var(--ax-comp-list-item-height);overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding-inline-end:var(--ax-comp-list-item-padding-e, 1rem);padding-inline-start:var(--ax-comp-list-item-padding-s, .75rem);font-size:var(--ax-comp-list-font-size, .875rem);line-height:var(--ax-comp-list-line-height, 1.25rem)}ax-list .cdk-virtual-scroll-viewport ul li:hover{background:rgba(var(--ax-comp-list-item-hover-bg-color, var(--ax-sys-color-surface)))}ax-list .cdk-virtual-scroll-viewport ul li:focus,ax-list .cdk-virtual-scroll-viewport ul li:focus-within,ax-list .cdk-virtual-scroll-viewport ul li:focus-visible{outline-width:var(--ax-comp-list-item-focus-outline-width, 2px);outline-offset:var(--ax-comp-list-item-focus-outline-offset, -4px);outline-color:rgba(var(--ax-comp-list-item-focus-outline-color, var(--ax-sys-color-primary-surface)))}ax-list .cdk-virtual-scroll-viewport ul li .ax-label-container{display:flex;align-items:center;width:100%}ax-list .cdk-virtual-scroll-viewport ul li .ax-checkbox-label{margin-inline-start:var(--ax-comp-list-checkbox-label-margin-s, .5rem)}ax-list .cdk-virtual-scroll-viewport ul li.ax-state-selected{background-color:rgba(var(--ax-comp-list-item-selected-bg-color))}ax-list .cdk-virtual-scroll-viewport ul li.ax-state-disabled{cursor:not-allowed;opacity:var(--ax-comp-list-item-disabled-opacity, .5)}ax-list .cdk-virtual-scroll-viewport ul li .ax-truncated{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\\n\"], dependencies: [{ kind: \"directive\", type: CdkVirtualScrollableElement, selector: \"[cdkVirtualScrollingElement]\" }, { kind: \"component\", type: CdkVirtualScrollViewport, selector: \"cdk-virtual-scroll-viewport\", inputs: [\"orientation\", \"appendOnly\"], outputs: [\"scrolledIndexChange\"] }, { kind: \"directive\", type: CdkFixedSizeVirtualScroll, selector: \"cdk-virtual-scroll-viewport[itemSize]\", inputs: [\"itemSize\", \"minBufferPx\", \"maxBufferPx\"] }, { kind: \"directive\", type: CdkVirtualForOf, selector: \"[cdkVirtualFor][cdkVirtualForOf]\", inputs: [\"cdkVirtualForOf\", \"cdkVirtualForTrackBy\", \"cdkVirtualForTemplate\", \"cdkVirtualForTemplateCacheSize\"] }, { kind: \"directive\", type: NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: AXTooltipModule }, { kind: \"directive\", type: i1.AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"pipe\", type: AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: AXTranslatorPipe, name: \"translate\" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-list', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: [\n 'id',\n 'name',\n 'disabled',\n 'readonly',\n 'valueField',\n 'textField',\n 'textTemplate',\n 'disabledField',\n 'multiple',\n 'selectionMode',\n ], outputs: ['onValueChanged', 'disabledChange', 'readonlyChange', 'onBlur', 'onFocus', 'onItemClick', 'onItemSelected'], providers: [\n { provide: AXComponent, useExisting: AXListComponent },\n { provide: AXFocusableComponent, useExisting: AXListComponent },\n { provide: AXValuableComponent, useExisting: AXListComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXListComponent),\n multi: true,\n },\n {\n provide: AX_SELECTION_DATA_TOKEN,\n useFactory: (existingService) => {\n return existingService || new MXSelectionBridgeService();\n },\n deps: [[new Optional(), new SkipSelf(), AX_SELECTION_DATA_TOKEN]],\n },\n ], imports: [\n CdkVirtualScrollableElement,\n CdkVirtualScrollViewport,\n CdkFixedSizeVirtualScroll,\n CdkVirtualForOf,\n NgTemplateOutlet,\n AsyncPipe,\n AXTranslatorPipe,\n AXTooltipModule,\n AXTooltipDirective,\n ], template: \"<div class=\\\"list-container\\\" cdkVirtualScrollingElement [class.ax-height-auto]=\\\"showEmptyTemplate()\\\">\\n <ng-content select=\\\"ax-header\\\"></ng-content>\\n <cdk-virtual-scroll-viewport\\n [itemSize]=\\\"cdkItemSize()\\\"\\n [style.--ax-comp-list-item-height]=\\\"itemHeightCss()\\\"\\n (scrolledIndexChange)=\\\"_handleOnscrolledIndexChange($event)\\\"\\n [class.ax-truncated-container]=\\\"isItemTruncated()\\\"\\n >\\n <ul>\\n <!-- Item Template -->\\n <ng-container *cdkVirtualFor=\\\"let item of listDataSource; let i = index; trackBy: trackByIdx\\\">\\n @if (item !== null && item !== undefined) {\\n <li\\n [class.ax-state-selected]=\\\"isItemSelected(item)\\\"\\n class=\\\"list-item\\\"\\n [class.ax-state-disabled]=\\\"isItemDisabled(item)\\\"\\n [attr.tabindex]=\\\"i\\\"\\n (click)=\\\"_handleOnItemClick($event, item)\\\"\\n [attr.data-id]=\\\"getValue(item)\\\"\\n >\\n <!-- Custom Item Template -->\\n @if (itemTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"itemTemplate\\\" [ngTemplateOutletContext]=\\\"{ $implicit: { data: item } }\\\">\\n </ng-container>\\n } @else {\\n <ng-container [ngTemplateOutlet]=\\\"defaultItemTpl\\\"></ng-container>\\n }\\n <!-- Default Item Template -->\\n <ng-template #defaultItemTpl>\\n @if (item !== null && item !== undefined) {\\n <div class=\\\"ax-label-container\\\">\\n @if (multiple && checkbox) {\\n <input\\n class=\\\"ax-checkbox\\\"\\n type=\\\"checkbox\\\"\\n [checked]=\\\"isItemSelected(item)\\\"\\n [disabled]=\\\"isItemDisabled(item)\\\"\\n tabindex=\\\"0\\\"\\n />\\n }\\n\\n <span\\n [class.ax-checkbox-label]=\\\"multiple && checkbox\\\"\\n [class.ax-truncated]=\\\"isItemTruncated()\\\"\\n [axTooltip]=\\\"getDisplayText(item)\\\"\\n [axTooltipDisabled]=\\\"!showItemTooltip()\\\"\\n >\\n {{ getDisplayText(item) | translate | async }}\\n </span>\\n </div>\\n <!-- @if (isItemSelected(item)) {\\n <i class=\\\"ax-icon ax-icon-check ax-selected-icon\\\"></i>\\n } -->\\n } @else {\\n <ng-container [ngTemplateOutlet]=\\\"loadingTpl\\\"> </ng-container>\\n }\\n </ng-template>\\n </li>\\n } @else {\\n <ng-container [ngTemplateOutlet]=\\\"loadingTpl\\\"> </ng-container>\\n }\\n </ng-container>\\n </ul>\\n </cdk-virtual-scroll-viewport>\\n <ng-content select=\\\"ax-footer\\\"></ng-content>\\n</div>\\n\\n<!-- Loading Template -->\\n<ng-template #loadingTpl>\\n <!-- Custom Loading Template -->\\n @if (loadingTemplate) {\\n <ng-container [ngTemplateOutlet]=\\\"loadingTemplate\\\"> </ng-container>\\n } @else {\\n <ng-container [ngTemplateOutlet]=\\\"defaultLoadingTpl\\\"> </ng-container>\\n }\\n <!-- Default Loading Template -->\\n <ng-template #defaultLoadingTpl>\\n <li>{{ '@acorex:common.status.loading' | translate | async }}</li>\\n </ng-template>\\n</ng-template>\\n<!-- Empty Template -->\\n@if (showEmptyTemplate()) {\\n <div class=\\\"empty-container\\\">\\n <ng-container [ngTemplateOutlet]=\\\"emptyTemplate\\\"></ng-container>\\n </div>\\n}\\n\", styles: [\"ax-list{--ax-comp-list-item-height: var(--ax-sys-size-base);--ax-comp-list-empty-container-height: var(--ax-sys-size-base)}ax-list{--ax-comp-list-item-selected-bg-color: var(--ax-sys-color-primary-surface), .2;--ax-comp-list-item-header: var(--ax-sys-color-lighter-surface);--ax-comp-list-item-footer: var(--ax-sys-color-lighter-surface)}ax-list{display:block;height:100%;width:100%;font-size:var(--ax-comp-list-font-size, .875rem);line-height:var(--ax-comp-list-line-height, 1.25rem)}ax-list .list-container{display:flex;height:100%;flex-direction:column}ax-list .list-container.ax-height-auto{height:auto}ax-list ax-header{background-color:rgba(var(--ax-comp-list-item-header))}ax-list ax-footer{background-color:rgba(var(--ax-comp-list-item-footer))}ax-list .empty-container{display:flex;height:var(--ax-comp-list-empty-container-height);width:100%;align-items:center;justify-content:center;padding-left:var(--ax-comp-list-empty-container-padding-x, .75rem);padding-right:var(--ax-comp-list-empty-container-padding-x, .75rem)}ax-list .cdk-virtual-scroll-viewport{flex:1 1 auto;width:100%;height:100%;min-height:0}ax-list .cdk-virtual-scroll-viewport.ax-truncated-container .cdk-virtual-scroll-content-wrapper{width:100%;min-width:unset}ax-list .cdk-virtual-scroll-viewport ul li{position:relative;box-sizing:border-box;display:flex;height:var(--ax-comp-list-item-height);min-height:var(--ax-comp-list-item-height);max-height:var(--ax-comp-list-item-height);overflow:hidden;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;justify-content:space-between;padding-inline-end:var(--ax-comp-list-item-padding-e, 1rem);padding-inline-start:var(--ax-comp-list-item-padding-s, .75rem);font-size:var(--ax-comp-list-font-size, .875rem);line-height:var(--ax-comp-list-line-height, 1.25rem)}ax-list .cdk-virtual-scroll-viewport ul li:hover{background:rgba(var(--ax-comp-list-item-hover-bg-color, var(--ax-sys-color-surface)))}ax-list .cdk-virtual-scroll-viewport ul li:focus,ax-list .cdk-virtual-scroll-viewport ul li:focus-within,ax-list .cdk-virtual-scroll-viewport ul li:focus-visible{outline-width:var(--ax-comp-list-item-focus-outline-width, 2px);outline-offset:var(--ax-comp-list-item-focus-outline-offset, -4px);outline-color:rgba(var(--ax-comp-list-item-focus-outline-color, var(--ax-sys-color-primary-surface)))}ax-list .cdk-virtual-scroll-viewport ul li .ax-label-container{display:flex;align-items:center;width:100%}ax-list .cdk-virtual-scroll-viewport ul li .ax-checkbox-label{margin-inline-start:var(--ax-comp-list-checkbox-label-margin-s, .5rem)}ax-list .cdk-virtual-scroll-viewport ul li.ax-state-selected{background-color:rgba(var(--ax-comp-list-item-selected-bg-color))}ax-list .cdk-virtual-scroll-viewport ul li.ax-state-disabled{cursor:not-allowed;opacity:var(--ax-comp-list-item-disabled-opacity, .5)}ax-list .cdk-virtual-scroll-viewport ul li .ax-truncated{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}\\n\"] }]\n }], propDecorators: { dataSource: [{\n type: Input\n }], itemHeight: [{\n type: Input\n }], itemTemplate: [{\n type: Input\n }], emptyTemplate: [{\n type: Input\n }], loadingTemplate: [{\n type: Input\n }], onScrolledIndexChanged: [{\n type: Output\n }], checkbox: [{\n type: Input\n }], viewport: [{\n type: ViewChild,\n args: [CdkVirtualScrollViewport]\n }], _handleKeydown: [{\n type: HostListener,\n args: ['keydown', ['$event']]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2xpc3Qvc3JjL2xpYi9saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbGlzdC9zcmMvbGliL2xpc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFdBQVcsRUFDWCxZQUFZLEVBRVosb0JBQW9CLEVBQ3BCLGdCQUFnQixFQUNoQixtQkFBbUIsRUFDbkIsdUJBQXVCLEVBQ3ZCLHdCQUF3QixFQUN4Qix5QkFBeUIsRUFDekIsd0JBQXdCLEdBQ3pCLE1BQU0sb0JBQW9CLENBQUM7QUFDNUIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGVBQWUsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzVELE9BQU8sRUFDTCx5QkFBeUIsRUFDekIsZUFBZSxFQUNmLHdCQUF3QixFQUN4QiwyQkFBMkIsR0FDNUIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLGlCQUFpQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDakYsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFlBQVksRUFDWixLQUFLLEVBRUwsUUFBUSxFQUNSLE1BQU0sRUFDTixRQUFRLEVBQ1IsV0FBVyxFQUNYLFNBQVMsRUFDVCxpQkFBaUIsRUFFakIsUUFBUSxFQUNSLFVBQVUsRUFDVixLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksR0FDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7O0FBT25EOzs7O0dBSUc7QUFpREgsTUFBTSxPQUFP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QUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsaUJBQWlCLEVBQUU7d0JBQzlEOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGdCQUFnQixDQUFDOzRCQUM5QyxLQUFLLEVBQUUsSUFBSTt5QkFDWjt3QkFDRDs0QkFDRSxPQUFPLEVBQUUsdUJBQXVCOzRCQUNoQyxVQUFVLEVBQUUsQ0FBQyxlQUF5QyxFQUFFLEVBQUU7Z0NBQ3hELE9BQU8sZUFBZSxJQUFJLElBQUksd0JBQXdCLEVBQUUsQ0FBQzs0QkFDM0QsQ0FBQzs0QkFDRCxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsSUFBSSxRQUFRLEVBQUUsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDO3lCQUNsRTtxQkFDRixXQUNRO3dCQUNQLDJCQUEyQjt3QkFDM0Isd0JBQXdCO3dCQUN4Qix5QkFBeUI7d0JBQ3pCLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixTQUFTO3dCQUNULGdCQUFnQjt3QkFDaEIsZUFBZTt3QkFDZixrQkFBa0I7cUJBQ25COzhCQXFDVSxVQUFVO3NCQURwQixLQUFLO2dCQXVDSyxVQUFVO3NCQURwQixLQUFLO2dCQVNOLFlBQVk7c0JBRFgsS0FBSztnQkFPTixhQUFhO3NCQURaLEtBQUs7Z0JBT04sZUFBZTtzQkFEZCxLQUFLO2dCQVNOLHNCQUFzQjtzQkFEckIsTUFBTTtnQkFTUCxRQUFRO3NCQURQLEtBQUs7Z0JBZ0NFLFFBQVE7c0JBRGYsU0FBUzt1QkFBQyx3QkFBd0I7Z0JBeUZuQyxjQUFjO3NCQURiLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhDb21wb25lbnQsXG4gIEFYRGF0YVNvdXJjZSxcbiAgQVhFdmVudCxcbiAgQVhGb2N1c2FibGVDb21wb25lbnQsXG4gIEFYTGlzdERhdGFTb3VyY2UsXG4gIEFYVmFsdWFibGVDb21wb25lbnQsXG4gIEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOLFxuICBNWFNlbGVjdGlvbkJyaWRnZVNlcnZpY2UsXG4gIE1YU2VsZWN0aW9uVmFsdWVDb21wb25lbnQsXG4gIGNvbnZlcnRBcnJheVRvRGF0YVNvdXJjZSxcbn0gZnJvbSAnQGFjb3JleC9jZGsvY29tbW9uJztcbmltcG9ydCB7IEFYVG9vbHRpcERpcmVjdGl2ZSwgQVhUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQVhUcmFuc2xhdG9yUGlwZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQge1xuICBDZGtGaXhlZFNpemVWaXJ0dWFsU2Nyb2xsLFxuICBDZGtWaXJ0dWFsRm9yT2YsXG4gIENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCxcbiAgQ2RrVmlydHVhbFNjcm9sbGFibGVFbGVtZW50LFxufSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdUZW1wbGF0ZU91dGxldCwgaXNQbGF0Zm9ybUJyb3dzZXIgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG4gIFNraXBTZWxmLFxuICBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgV3JpdGFibGVTaWduYWwsXG4gIGNvbXB1dGVkLFxuICBmb3J3YXJkUmVmLFxuICBpbnB1dCxcbiAgc2lnbmFsLFxuICB2aWV3Q2hpbGRyZW4sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGludGVyZmFjZSBBWExpc3RTY3JvbGxJbmRleENoYW5nZWQgZXh0ZW5kcyBBWEV2ZW50IHtcbiAgaW5kZXg6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBwcm92aWRlcyBhIGxpc3QgY29udHJvbCB3aXRoIHZhcmlvdXMgaW5wdXQgb3B0aW9ucyBhbmQgZXZlbnRzIGZvciB1c2VyIGludGVyYWN0aW9uLlxuICpcbiAqIEBjYXRlZ29yeSBDb21wb25lbnRzXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWxpc3QnLFxuICB0ZW1wbGF0ZVVybDogJy4vbGlzdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2xpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGlucHV0czogW1xuICAgICdpZCcsXG4gICAgJ25hbWUnLFxuICAgICdkaXNhYmxlZCcsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAndmFsdWVGaWVsZCcsXG4gICAgJ3RleHRGaWVsZCcsXG4gICAgJ3RleHRUZW1wbGF0ZScsXG4gICAgJ2Rpc2FibGVkRmllbGQnLFxuICAgICdtdWx0aXBsZScsXG4gICAgJ3NlbGVjdGlvbk1vZGUnLFxuICBdLFxuICBvdXRwdXRzOiBbJ29uVmFsdWVDaGFuZ2VkJywgJ2Rpc2FibGVkQ2hhbmdlJywgJ3JlYWRvbmx5Q2hhbmdlJywgJ29uQmx1cicsICdvbkZvY3VzJywgJ29uSXRlbUNsaWNrJywgJ29uSXRlbVNlbGVjdGVkJ10sXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWExpc3RDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhMaXN0Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhMaXN0Q29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWExpc3RDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWF9TRUxFQ1RJT05fREFUQV9UT0tFTixcbiAgICAgIHVzZUZhY3Rvcnk6IChleGlzdGluZ1NlcnZpY2U6IE1YU2VsZWN0aW9uQnJpZGdlU2VydmljZSkgPT4ge1xuICAgICAgICByZXR1cm4gZXhpc3RpbmdTZXJ2aWNlIHx8IG5ldyBNWFNlbGVjdGlvbkJyaWRnZVNlcnZpY2UoKTtcbiAgICAgIH0sXG4gICAgICBkZXBzOiBbW25ldyBPcHRpb25hbCgpLCBuZXcgU2tpcFNlbGYoKSwgQVhfU0VMRUNUSU9OX0RBVEFfVE9LRU5dXSxcbiAgICB9LFxuICBdLFxuICBpbXBvcnRzOiBbXG4gICAgQ2RrVmlydHVhbFNjcm9sbGFibGVFbGVtZW50LFxuICAgIENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCxcbiAgICBDZGtGaXhlZFNpemVWaXJ0dWFsU2Nyb2xsLFxuICAgIENka1ZpcnR1YWxGb3JPZixcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIEFzeW5jUGlwZSxcbiAgICBBWFRyYW5zbGF0b3JQaXBlLFxuICAgIEFYVG9vbHRpcE1vZHVsZSxcbiAgICBBWFRvb2x0aXBEaXJlY3RpdmUsXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTGlzdENvbXBvbmVudCBleHRlbmRzIE1YU2VsZWN0aW9uVmFsdWVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIHRvb2x0aXBSZWYgPSB2aWV3Q2hpbGRyZW4oQVhUb29sdGlwRGlyZWN0aXZlKTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhbiBpdGVtIGlzIHRydW5jYXRlZC5cbiAgICpcbiAgICogQGRlZmF1bHRWYWx1ZSB0cnVlXG4gICAqL1xuICBpc0l0ZW1UcnVuY2F0ZWQgPSBpbnB1dCh0cnVlKTtcblxuICAvKipcbiAgICogRGV0ZXJtaW5lcyBpZiBhIHRvb2x0aXAgaXMgc2hvd24gZm9yIGFuIGl0ZW0uXG4gICAqXG4gICAqIEBkZWZhdWx0VmFsdWUgZmFsc2VcbiAgICovXG4gIHNob3dJdGVtVG9vbHRpcCA9IGlucHV0KGZhbHNlKTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9kYXRhU291cmNlOiBBWERhdGFTb3VyY2U8dW5rbm93bj4gPSBjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2UoW10pO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIHByaXZhdGUgX2lzSW5pdGlhbGl6ZWQgPSBmYWxzZTtcblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9vbkNoYW5nZWRTdWI/OiBTdWJzY3JpcHRpb247XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfb25Mb2FkaW5nQ2hhbmdlZFN1Yj86IFN1YnNjcmlwdGlvbjtcblxuICAvKipcbiAgICogRGVmaW5lcyB0aGUgZGF0YSBzb3VyY2UgZm9yIHRoZSBsaXN0LlxuICAgKlxuICAgKiAgQGRlZmF1bHRWYWx1ZSBjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2UoW10pXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGRhdGFTb3VyY2UodjogQVhEYXRhU291cmNlPHVua25vd24+KSB7XG4gICAgaWYgKCF2IHx8IHYgPT09IHRoaXMuX2RhdGFTb3VyY2UpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fZGF0YVNvdXJjZSA9IHY7XG4gICAgaWYgKHRoaXMuX2lzSW5pdGlhbGl6ZWQpIHtcbiAgICAgIHRoaXMuX3NldHVwTGlzdERhdGFTb3VyY2UoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZ2V0IGRhdGFTb3VyY2UoKTogQVhEYXRhU291cmNlPHVua25vd24+IHtcbiAgICByZXR1cm4gdGhpcy5fZGF0YVNvdXJjZTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgaXRlbUhlaWdodFNpZ25hbDogV3JpdGFibGVTaWduYWw8bnVtYmVyIHwgJ2F1dG8nPiA9IHNpZ25hbCg0MCk7XG5cbiAgLyoqXG4gICAqIEZpeGVkIHBpeGVsIHNpemUgZm9yIENESyB2aXJ0dWFsIHNjcm9sbC4gRmFsbHMgYmFjayB0byA0MCB3aGVuIGBpdGVtSGVpZ2h0YCBpcyBgJ2F1dG8nYC5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGNka0l0ZW1TaXplID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgIGNvbnN0IGhlaWdodCA9IHRoaXMuaXRlbUhlaWdodFNpZ25hbCgpO1xuICAgIHJldHVybiB0eXBlb2YgaGVpZ2h0ID09PSAnbnVtYmVyJyA/IGhlaWdodCA6IDQwO1xuICB9KTtcblxuICAvKipcbiAgICogQ1NTIHZhbHVlIGFwcGxpZWQgdG8gYC0tYXgtY29tcC1saXN0LWl0ZW0taGVpZ2h0YCBzbyByZW5kZXJlZCByb3dzIG1hdGNoIHRoZSB2aXJ0dWFsIHNsb3QuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBpdGVtSGVpZ2h0Q3NzID0gY29tcHV0ZWQoKCkgPT4gYCR7dGhpcy5jZGtJdGVtU2l6ZSgpfXB4YCk7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGhlaWdodCBvZiBlYWNoIGl0ZW0gaW4gdGhlIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGl0ZW1IZWlnaHQodjogbnVtYmVyIHwgJ2F1dG8nKSB7XG4gICAgdGhpcy5pdGVtSGVpZ2h0U2lnbmFsLnNldCh2KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUZW1wbGF0ZSBmb3IgcmVuZGVyaW5nIGluZGl2aWR1YWwgaXRlbXMgaW4gdGhlIGxpc3QuXG4gICAqL1xuICBASW5wdXQoKVxuICBpdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiBUZW1wbGF0ZSB0byBkaXNwbGF5IHdoZW4gdGhlIGxpc3QgaXMgZW1wdHkuXG4gICAqL1xuICBASW5wdXQoKVxuICBlbXB0eVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICAvKipcbiAgICogVGVtcGxhdGUgdG8gc2hvdyB3aGlsZSB0aGUgbGlzdCBpcyBsb2FkaW5nLlxuICAgKi9cbiAgQElucHV0KClcbiAgbG9hZGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICAvKipcbiAgICogRW1pdHRlZCB3aGVuIHRoZSBpbmRleCBvZiB0aGUgc2Nyb2xsZWQgaXRlbSBjaGFuZ2VzLlxuICAgKlxuICAgKiBAZXZlbnRcbiAgICovXG4gIEBPdXRwdXQoKVxuICBvblNjcm9sbGVkSW5kZXhDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8QVhMaXN0U2Nyb2xsSW5kZXhDaGFuZ2VkPiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhMaXN0U2Nyb2xsSW5kZXhDaGFuZ2VkPigpO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hldGhlciB0aGUgY2hlY2tib3ggaXMgZW5hYmxlZC5cbiAgICpcbiAgICogIEBkZWZhdWx0VmFsdWUgdHJ1ZVxuICAgKi9cbiAgQElucHV0KClcbiAgY2hlY2tib3ggPSB0cnVlO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGxpc3REYXRhU291cmNlOiBBWExpc3REYXRhU291cmNlPHVua25vd24+O1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIGlzTG9hZGluZyA9IHNpZ25hbCh0cnVlKTtcblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIHByb3RlY3RlZCBoYXNJdGVtcyA9IGZhbHNlO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBsYXN0SW5kZXggPSAwO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBwb3N0cG9uZUZvY3VzID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBAVmlld0NoaWxkKENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydClcbiAgcHJpdmF0ZSB2aWV3cG9ydDogQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0O1xuXG4gIHRyYWNrQnlJZHgoaSkge1xuICAgIHJldHVybiBpO1xuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBvdmVycmlkZSBuZ09uSW5pdCgpIHtcbiAgICBzdXBlci5uZ09uSW5pdCgpO1xuICAgIHRoaXMuX3NldHVwTGlzdERhdGFTb3VyY2UoKTtcbiAgICB0aGlzLl9pc0luaXRpYWxpemVkID0gdHJ1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJvdGVjdGVkIG92ZXJyaWRlIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX29uQ2hhbmdlZFN1Yj8udW5zdWJzY3JpYmUoKTtcbiAgICB0aGlzLl9vbkxvYWRpbmdDaGFuZ2VkU3ViPy51bnN1YnNjcmliZSgpO1xuICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gIH1cblxuICAvKipcbiAgICogKFJlKWNyZWF0ZXMgdGhlIGludGVybmFsIGBBWExpc3REYXRhU291cmNlYCB3cmFwcGVyIHVzZWQgYnkgYGNka1ZpcnR1YWxGb3JgXG4gICAqIGFuZCAocmUpc3Vic2NyaWJlcyB0byB0aGUgdW5kZXJseWluZyBzb3VyY2UncyBldmVudHMuIFRoaXMgaXMgaW52b2tlZFxuICAgKiB3aGVuZXZlciB0aGUgYGRhdGFTb3VyY2VgIGlucHV0IGNoYW5nZXMgc28gdGhhdCB0aGUgbGlzdCBwcm9wZXJseSByZWZsZWN0c1xuICAgKiB0aGUgbmV3IHNvdXJjZS5cbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBfc2V0dXBMaXN0RGF0YVNvdXJjZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9vbkNoYW5nZWRTdWI/LnVuc3Vic2NyaWJlKCk7XG4gICAgdGhpcy5fb25Mb2FkaW5nQ2hhbmdlZFN1Yj8udW5zdWJzY3JpYmUoKTtcblxuICAgIHRoaXMubGlzdERhdGFTb3VyY2UgPSBuZXcgQVhMaXN0RGF0YVNvdXJjZTx1bmtub3duPih7XG4gICAgICBzb3VyY2U6IHRoaXMuX2RhdGFTb3VyY2UsXG4gICAgfSk7XG5cbiAgICAvLyBPbmx5IG1pcnJvciB0aGUgc291cmNlJ3Mgc3RhdGUgaWYgaXQgaGFzIGFscmVhZHkgcHJvZHVjZWQgZGF0YS5cbiAgICAvLyBPdGhlcndpc2Uga2VlcCBgaXNMb2FkaW5nPXRydWVgIHNvIHRoZSBlbXB0eSB0ZW1wbGF0ZSBkb2Vzbid0IHJlbmRlcixcbiAgICAvLyB3aGljaCB3b3VsZCBhZGQgYC5heC1oZWlnaHQtYXV0b2AgYW5kIGNvbGxhcHNlIHRoZSBjb250YWluZXIsIHN0YXJ2aW5nXG4gICAgLy8gdGhlIHZpcnR1YWwgdmlld3BvcnQgb2Ygc2l6ZSDigJQgcHJldmVudGluZyBgdmlld0NoYW5nZWAgZnJvbSBmaXJpbmcgYW5kXG4gICAgLy8gdGhlIGRhdGEgc291cmNlJ3MgYGxvYWRgIGNhbGxiYWNrIGZyb20gZXZlciBiZWluZyBpbnZva2VkLlxuICAgIGNvbnN0IGhhc0xvYWRlZEl0ZW1zID0gdGhpcy5fZGF0YVNvdXJjZS50b3RhbENvdW50ID4gMDtcbiAgICB0aGlzLmlzTG9hZGluZy5zZXQoaGFzTG9hZGVkSXRlbXMgPyB0aGlzLl9kYXRhU291cmNlLmlzTG9hZGluZyA6IHRydWUpO1xuICAgIHRoaXMuaGFzSXRlbXMgPSBoYXNMb2FkZWRJdGVtcztcblxuICAgIHRoaXMuX29uTG9hZGluZ0NoYW5nZWRTdWIgPSB0aGlzLmxpc3REYXRhU291cmNlLnNvdXJjZS5vbkxvYWRpbmdDaGFuZ2VkLnN1YnNjcmliZSgoZGF0YSkgPT4ge1xuICAgICAgdGhpcy5pc0xvYWRpbmcuc2V0KGRhdGEpO1xuICAgIH0pO1xuICAgIHRoaXMuX29uQ2hhbmdlZFN1YiA9IHRoaXMubGlzdERhdGFTb3VyY2Uuc291cmNlLm9uQ2hhbmdlZC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuaGFzSXRlbXMgPSBkYXRhLnRvdGFsQ291bnQgPiAwO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMucmVuZGVyKCk7XG4gICAgICB9LCAwKTtcbiAgICB9KTtcbiAgfVxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIF9oYW5kbGVPbkl0ZW1DbGljayhlOiBNb3VzZUV2ZW50LCBpdGVtOiBhbnkpIHtcbiAgICBpZiAodGhpcy5yZWFkb25seSB8fCB0aGlzLmRpc2FibGVkKSB7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodGhpcy5pc0l0ZW1EaXNhYmxlZChpdGVtKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudG9vbHRpcFJlZigpLmZvckVhY2goKGl0ZW0pID0+IHtcbiAgICAgIGl0ZW0uY2xvc2UoKTtcbiAgICB9KTtcbiAgICB0aGlzLnRvZ2dsZVNlbGVjdChpdGVtKTtcbiAgICB0aGlzLm9uSXRlbUNsaWNrLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaXRlbSxcbiAgICAgIGh0bWxFbGVtZW50OiBlLnRhcmdldCBhcyBIVE1MRWxlbWVudCxcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxuICAgICAgbmF0aXZlRXZlbnQ6IGUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogIEBpZ25vcmVcbiAgICovXG4gIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuICBfaGFuZGxlS2V5ZG93bihlOiBLZXlib2FyZEV2ZW50KSB7XG4gICAgaWYgKChlLmNvZGUgPT09ICdBcnJvd0Rvd24nIHx8IGUuY29kZSA9PT0gJ0Fycm93VXAnKSAmJiB0aGlzLmhhc0l0ZW1zKSB7XG4gICAgICB0aGlzLmZvY3VzSXRlbUJ5TmF2KGUua2V5ID09PSAnQXJyb3dEb3duJyA/IDEgOiAtMSk7XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgfVxuICAgIGlmICgoZS5jb2RlID09PSAnU3BhY2UnIHx8IGUuY29kZSA9PT0gJ0VudGVyJykgJiYgdGhpcy5oYXNJdGVtcykge1xuICAgICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkge1xuICAgICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSUQpKSB7XG4gICAgICAgIGNvbnN0IGlkID0gdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50Py5jbG9zZXN0KCdsaScpPy5kYXRhc2V0WydpZCddO1xuICAgICAgICB0aGlzLnRvZ2dsZVNlbGVjdChpZCk7XG4gICAgICB9XG4gICAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gICAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBmb2N1c0l0ZW1CeU5hdihzaWduOiAtMSB8IDEpOiB2b2lkIHtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSkge1xuICAgICAgY29uc3QgbGlzdCA9IHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yKCd1bCcpO1xuICAgICAgY29uc3QgZm4gPSAocykgPT4gbGlzdC5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihzKTtcbiAgICAgIGNvbnN0IGl0ZW1EaXY6IEhUTUxFbGVtZW50ID0gdGhpcy5kb2N1bWVudC5hY3RpdmVFbGVtZW50Py5jbG9zZXN0KCdsaScpIHx8IGZuKGBsaS5heC1zdGF0ZS1zZWxlY3RlZGApIHx8IGZuKGBsaWApO1xuICAgICAgY29uc3QgbmV4dCA9IChzaWduID09IDEgPyBpdGVtRGl2Lm5leHRFbGVtZW50U2libGluZyA6IGl0ZW1EaXYucHJldmlvdXNFbGVtZW50U2libGluZykgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICBpZiAobmV4dCkge1xuICAgICAgICBuZXh0LmZvY3VzKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqICBAaWdub3JlXG4gICAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZU9uc2Nyb2xsZWRJbmRleENoYW5nZShlOiBudW1iZXIpIHtcbiAgICB0aGlzLmxhc3RJbmRleCA9IGU7XG4gICAgdGhpcy5vblNjcm9sbGVkSW5kZXhDaGFuZ2VkLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaW5kZXg6IHRoaXMubGFzdEluZGV4LFxuICAgICAgaXNVc2VySW50ZXJhY3Rpb246IHRydWUsXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0cmlldmVzIGFuIGl0ZW0gZnJvbSB0aGUgZGF0YSBzb3VyY2UgYmFzZWQgb24gdGhlIHByb3ZpZGVkIGtleS5cbiAgICpcbiAgICogQHBhcmFtIGtleSBUaGUga2V5IHVzZWQgdG8gaWRlbnRpZnkgdGhlIGl0ZW0uXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGdldEl0ZW1CeUtleShrZXk6IHVua25vd24pOiBQcm9taXNlPHVua25vd24+IHwgdW5rbm93biB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YVNvdXJjZS5maW5kKGtleSk7XG4gIH1cblxuICAvKipcbiAgICogUmVuZGVycyB0aGUgY29tcG9uZW50IGJ5IHVwZGF0aW5nIHRoZSB2aWV3cG9ydCBzaXplLCBzY3JvbGxpbmcgdG8gdGhlIHNlbGVjdGVkIGl0ZW0sIGFuZCBvcHRpb25hbGx5IGZvY3VzaW5nIHRoZSBlbGVtZW50LlxuICAgKi9cbiAgcHVibGljIHJlbmRlcigpIHtcbiAgICBpZiAoIXRoaXMudmlld3BvcnQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnNjcm9sbFRvKCk7XG4gICAgaWYgKHRoaXMucG9zdHBvbmVGb2N1cykge1xuICAgICAgdGhpcy5wb3N0cG9uZUZvY3VzID0gZmFsc2U7XG4gICAgICB0aGlzLmZvY3VzKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFNjcm9sbHMgdGhlIHZpZXdwb3J0IHRvIHRoZSBjdXJyZW50bHkgc2VsZWN0ZWQgbGlzdCBpdGVtLlxuICAgKi9cbiAgcHVibGljIHNjcm9sbFRvKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy52aWV3cG9ydCB8fCAhaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlEKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMudmlld3BvcnQuY2hlY2tWaWV3cG9ydFNpemUoKTtcblxuICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZSgoKSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMucmVzb2x2ZVNlbGVjdGVkSW5kZXgoKTtcbiAgICAgIGlmIChpbmRleCA+PSAwKSB7XG4gICAgICAgIHRoaXMubGFzdEluZGV4ID0gaW5kZXg7XG4gICAgICAgIHRoaXMudmlld3BvcnQuc2Nyb2xsVG9JbmRleChpbmRleCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmVzb2x2ZXMgdGhlIHNlbGVjdGVkIGl0ZW0gaW5kZXggZnJvbSB2YWx1ZXMgYWxyZWFkeSBsb2FkZWQgaW4gdGhlIGxpc3Qgc291cmNlLlxuICAgKiBPbmx5IGNvbnNpZGVycyBsb2FkZWQgZW50cmllcyBzbyBsYXp5IHNvdXJjZXMgYXJlIG5vdCBzY2FubmVkIGJ5IGEgZ2xvYmFsIGluZGV4LlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwcml2YXRlIHJlc29sdmVTZWxlY3RlZEluZGV4KCk6IG51bWJlciB7XG4gICAgaWYgKHRoaXMubXVsdGlwbGUgfHwgIXRoaXMubGlzdERhdGFTb3VyY2UpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICBjb25zdCBzZWxlY3RlZFZhbHVlID0gdGhpcy5nZXRTZWxlY3RlZEtleSgpO1xuICAgIGlmIChzZWxlY3RlZFZhbHVlID09IG51bGwpIHtcbiAgICAgIHJldHVybiAtMTtcbiAgICB9XG5cbiAgICBjb25zdCBpdGVtcyA9IHRoaXMubGlzdERhdGFTb3VyY2Uuc291cmNlLmNhY2hlZEl0ZW1zO1xuXG4gICAgZm9yIChsZXQgaW5kZXggPSAwOyBpbmRleCA8IGl0ZW1zLmxlbmd0aDsgaW5kZXgrKykge1xuICAgICAgY29uc3QgaXRlbSA9IGl0ZW1zW2luZGV4XTtcbiAgICAgIGlmIChpdGVtICE9IG51bGwgJiYgdGhpcy5nZXRWYWx1ZShpdGVtKSA9PSBzZWxlY3RlZFZhbHVlKSB7XG4gICAgICAgIHJldHVybiBpbmRleDtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gLTE7XG4gIH1cblxuICAvKipcbiAgICogQGlnbm9yZVxuICAgKi9cbiAgcHJpdmF0ZSBnZXRTZWxlY3RlZEtleSgpOiB1bmtub3duIHtcbiAgICBjb25zdCBpdGVtID0gdGhpcy5zZWxlY3RlZEl0ZW1zWzBdID8/IHRoaXMudmFsdWU7XG4gICAgaWYgKGl0ZW0gPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgcmV0dXJuIHR5cGVvZiBpdGVtID09PSAnb2JqZWN0JyA/IHRoaXMuZ2V0VmFsdWUoaXRlbSkgOiBpdGVtO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlZnJlc2hlcyB0aGUgbGlzdCBieSBjbGVhcmluZyB0aGUgc2VsZWN0aW9uIGNhY2hlIGFuZCByZWxvYWRpbmcgdGhlIGRhdGEgc291cmNlLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwdWJsaWMgcmVmcmVzaChjbGVhclNlbGVjdGlvbiA9IHRydWUpIHtcbiAgICBpZiAoY2xlYXJTZWxlY3Rpb24pIHtcbiAgICAgIHRoaXMuY2xlYXJTZWxlY3Rpb25DYWNoZSgpO1xuICAgIH1cbiAgICB0aGlzLmxpc3REYXRhU291cmNlLnJlZnJlc2goKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTY3JvbGxzIHRoZSB2aWV3cG9ydCB0byB0aGUgc3BlY2lmaWVkIGl0ZW0gaW5kZXguXG4gICAqIEBwYXJhbSBpbmRleCBUaGUgaW5kZXggb2YgdGhlIGl0ZW0gdG8gc2Nyb2xsIHRvLlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBwdWJsaWMgc2Nyb2xsVG9JbmRleChpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy52aWV3cG9ydC5zY3JvbGxUb0luZGV4KGluZGV4KTtcbiAgfVxuICAvKipcbiAgICogU2V0cyBmb2N1cyB0byB0aGUgZmlyc3Qgc2VsZWN0YWJsZSBsaXN0IGl0ZW0uIElmIG5vIGl0ZW0gaXMgYXZhaWxhYmxlLCBwb3N0cG9uZXMgZm9jdXMuXG4gICAqL1xuICBvdmVycmlkZSBmb2N1cygpOiB2b2lkIHtcbiAgICBjb25zdCBsaXN0ID0gdGhpcy5nZXRIb3N0RWxlbWVudCgpLnF1ZXJ5U2VsZWN0b3IoJ3VsJyk7XG4gICAgY29uc3QgZm9jdXNhYmxlID1cbiAgICAgIGxpc3QucXVlcnlTZWxlY3RvcjxIVE1MRWxlbWVudD4oJ2xpLmF4LXN0YXRlLXNlbGVjdGVkJykgPz8gbGlzdC5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PignbGkubGlzdC1pdGVtJyk7XG4gICAgaWYgKGZvY3VzYWJsZSkge1xuICAgICAgZm9jdXNhYmxlLmZvY3VzKCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMucG9zdHBvbmVGb2N1cyA9IHRydWU7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hldGhlciB0byBzaG93IHRoZSBlbXB0eSB0ZW1wbGF0ZSBiYXNlZCBvbiB0aGUgcHJlc2VuY2Ugb2YgaXRlbXMgYW5kIGxvYWRpbmcgc3RhdGUuXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIHNob3dFbXB0eVRlbXBsYXRlID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5pc0xvYWRpbmcoKSA9PT0gZmFsc2UgJiYgdGhpcy5lbXB0eVRlbXBsYXRlICYmIHRoaXMuaGFzSXRlbXMgPT09IGZhbHNlKTtcbn1cbiIsIjxkaXYgY2xhc3M9XCJsaXN0LWNvbnRhaW5lclwiIGNka1ZpcnR1YWxTY3JvbGxpbmdFbGVtZW50IFtjbGFzcy5heC1oZWlnaHQtYXV0b109XCJzaG93RW1wdHlUZW1wbGF0ZSgpXCI+XG4gIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWhlYWRlclwiPjwvbmctY29udGVudD5cbiAgPGNkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydFxuICAgIFtpdGVtU2l6ZV09XCJjZGtJdGVtU2l6ZSgpXCJcbiAgICBbc3R5bGUuLS1heC1jb21wLWxpc3QtaXRlbS1oZWlnaHRdPVwiaXRlbUhlaWdodENzcygpXCJcbiAgICAoc2Nyb2xsZWRJbmRleENoYW5nZSk9XCJfaGFuZGxlT25zY3JvbGxlZEluZGV4Q2hhbmdlKCRldmVudClcIlxuICAgIFtjbGFzcy5heC10cnVuY2F0ZWQtY29udGFpbmVyXT1cImlzSXRlbVRydW5jYXRlZCgpXCJcbiAgPlxuICAgIDx1bD5cbiAgICAgIDwhLS0gIEl0ZW0gVGVtcGxhdGUgIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqY2RrVmlydHVhbEZvcj1cImxldCBpdGVtIG9mIGxpc3REYXRhU291cmNlOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5SWR4XCI+XG4gICAgICAgIEBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpdGVtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICA8bGlcbiAgICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1zZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiXG4gICAgICAgICAgICBjbGFzcz1cImxpc3QtaXRlbVwiXG4gICAgICAgICAgICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiaXNJdGVtRGlzYWJsZWQoaXRlbSlcIlxuICAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiaVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiX2hhbmRsZU9uSXRlbUNsaWNrKCRldmVudCwgaXRlbSlcIlxuICAgICAgICAgICAgW2F0dHIuZGF0YS1pZF09XCJnZXRWYWx1ZShpdGVtKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPCEtLSAgQ3VzdG9tIEl0ZW0gVGVtcGxhdGUgIC0tPlxuICAgICAgICAgICAgQGlmIChpdGVtVGVtcGxhdGUpIHtcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJpdGVtVGVtcGxhdGVcIiBbbmdUZW1wbGF0ZU91dGxldENvbnRleHRdPVwieyAkaW1wbGljaXQ6IHsgZGF0YTogaXRlbSB9IH1cIj5cbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJkZWZhdWx0SXRlbVRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPCEtLSAgRGVmYXVsdCBJdGVtIFRlbXBsYXRlICAtLT5cbiAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdEl0ZW1UcGw+XG4gICAgICAgICAgICAgIEBpZiAoaXRlbSAhPT0gbnVsbCAmJiBpdGVtICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbGFiZWwtY29udGFpbmVyXCI+XG4gICAgICAgICAgICAgICAgICBAaWYgKG11bHRpcGxlICYmIGNoZWNrYm94KSB7XG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYXgtY2hlY2tib3hcIlxuICAgICAgICAgICAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICAgICAgICAgICAgW2NoZWNrZWRdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0l0ZW1EaXNhYmxlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LWNoZWNrYm94LWxhYmVsXT1cIm11bHRpcGxlICYmIGNoZWNrYm94XCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LXRydW5jYXRlZF09XCJpc0l0ZW1UcnVuY2F0ZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtheFRvb2x0aXBdPVwiZ2V0RGlzcGxheVRleHQoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbYXhUb29sdGlwRGlzYWJsZWRdPVwiIXNob3dJdGVtVG9vbHRpcCgpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgZ2V0RGlzcGxheVRleHQoaXRlbSkgfCB0cmFuc2xhdGUgfCBhc3luYyB9fVxuICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDwhLS0gQGlmIChpc0l0ZW1TZWxlY3RlZChpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2hlY2sgYXgtc2VsZWN0ZWQtaWNvblwiPjwvaT5cbiAgICAgICAgICAgICAgICB9IC0tPlxuICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImxvYWRpbmdUcGxcIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9saT5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsb2FkaW5nVHBsXCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICB9XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3VsPlxuICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtZm9vdGVyXCI+PC9uZy1jb250ZW50PlxuPC9kaXY+XG5cbjwhLS0gIExvYWRpbmcgVGVtcGxhdGUgIC0tPlxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVHBsPlxuICA8IS0tICBDdXN0b20gTG9hZGluZyBUZW1wbGF0ZSAgLS0+XG4gIEBpZiAobG9hZGluZ1RlbXBsYXRlKSB7XG4gICAgPG5nLWNvbnRhaW5lciBbbmdUZW1wbGF0ZU91dGxldF09XCJsb2FkaW5nVGVtcGxhdGVcIj4gPC9uZy1jb250YWluZXI+XG4gIH0gQGVsc2Uge1xuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZGVmYXVsdExvYWRpbmdUcGxcIj4gPC9uZy1jb250YWluZXI+XG4gIH1cbiAgPCEtLSAgRGVmYXVsdCBMb2FkaW5nIFRlbXBsYXRlICAtLT5cbiAgPG5nLXRlbXBsYXRlICNkZWZhdWx0TG9hZGluZ1RwbD5cbiAgICA8bGk+e3sgJ0BhY29yZXg6Y29tbW9uLnN0YXR1cy5sb2FkaW5nJyB8IHRyYW5zbGF0ZSB8IGFzeW5jIH19PC9saT5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG48IS0tICBFbXB0eSBUZW1wbGF0ZSAgLS0+XG5AaWYgKHNob3dFbXB0eVRlbXBsYXRlKCkpIHtcbiAgPGRpdiBjbGFzcz1cImVtcHR5LWNvbnRhaW5lclwiPlxuICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiZW1wdHlUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbn1cbiJdfQ==","import { NgModule } from '@angular/core';\nimport { AXListComponent } from './list.component';\nimport * as i0 from \"@angular/core\";\nexport class AXListModule {\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }\n static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListModule, imports: [AXListComponent], exports: [AXListComponent] }); }\n static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListModule, imports: [AXListComponent] }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: AXListModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [AXListComponent],\n exports: [AXListComponent],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2xpc3Qvc3JjL2xpYi9saXN0Lm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFNbkQsTUFBTSxPQUFPLFlBQVk7OEdBQVosWUFBWTsrR0FBWixZQUFZLFlBSGIsZUFBZSxhQUNmLGVBQWU7K0dBRWQsWUFBWSxZQUhiLGVBQWU7OzJGQUdkLFlBQVk7a0JBSnhCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDO29CQUMxQixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7aUJBQzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYTGlzdENvbXBvbmVudCB9IGZyb20gJy4vbGlzdC5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQVhMaXN0Q29tcG9uZW50XSxcbiAgZXhwb3J0czogW0FYTGlzdENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTGlzdE1vZHVsZSB7fVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtbGlzdC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvbGlzdC9zcmMvYWNvcmV4LWNvbXBvbmVudHMtbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|