@acorex/components 20.2.0-next.2 → 20.2.0-next.20
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/action-sheet/index.d.ts +57 -10
- package/alert/index.d.ts +2 -4
- package/autocomplete/index.d.ts +7 -2
- package/avatar/index.d.ts +12 -6
- package/badge/index.d.ts +1 -2
- package/bottom-navigation/index.d.ts +10 -2
- package/breadcrumbs/index.d.ts +17 -4
- package/button/index.d.ts +56 -17
- package/button-group/index.d.ts +8 -5
- package/calendar/index.d.ts +28 -16
- package/check-box/index.d.ts +2 -5
- package/chips/index.d.ts +1 -2
- package/circular-progress/index.d.ts +23 -18
- package/collapse/index.d.ts +7 -6
- package/color-box/index.d.ts +5 -8
- package/color-palette/index.d.ts +19 -24
- package/comment/index.d.ts +8 -8
- package/conversation/index.d.ts +1 -0
- package/cron-job/index.d.ts +5 -4
- package/data-list/README.md +356 -0
- package/data-list/index.d.ts +102 -0
- package/data-pager/index.d.ts +10 -5
- package/datetime-box/index.d.ts +2 -7
- package/datetime-input/index.d.ts +2 -4
- package/datetime-picker/index.d.ts +9 -10
- package/dropdown/index.d.ts +41 -0
- package/fesm2022/acorex-components-accordion.mjs +10 -10
- package/fesm2022/acorex-components-accordion.mjs.map +1 -1
- package/fesm2022/acorex-components-action-sheet.mjs +78 -48
- package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
- package/fesm2022/acorex-components-alert.mjs +10 -12
- package/fesm2022/acorex-components-alert.mjs.map +1 -1
- package/fesm2022/acorex-components-audio-wave.mjs +7 -7
- package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
- package/fesm2022/acorex-components-autocomplete.mjs +32 -10
- package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
- package/fesm2022/acorex-components-avatar.mjs +22 -17
- package/fesm2022/acorex-components-avatar.mjs.map +1 -1
- package/fesm2022/acorex-components-badge.mjs +8 -9
- package/fesm2022/acorex-components-badge.mjs.map +1 -1
- package/fesm2022/acorex-components-bottom-navigation.mjs +17 -13
- package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-breadcrumbs.mjs +36 -20
- package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
- package/fesm2022/acorex-components-button-group.mjs +31 -22
- package/fesm2022/acorex-components-button-group.mjs.map +1 -1
- package/fesm2022/acorex-components-button.mjs +73 -30
- package/fesm2022/acorex-components-button.mjs.map +1 -1
- package/fesm2022/acorex-components-calendar.mjs +100 -53
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-check-box.mjs +9 -11
- package/fesm2022/acorex-components-check-box.mjs.map +1 -1
- package/fesm2022/acorex-components-chips.mjs +8 -9
- package/fesm2022/acorex-components-chips.mjs.map +1 -1
- package/fesm2022/acorex-components-circular-progress.mjs +30 -25
- package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-collapse.mjs +20 -18
- package/fesm2022/acorex-components-collapse.mjs.map +1 -1
- package/fesm2022/acorex-components-color-box.mjs +34 -30
- package/fesm2022/acorex-components-color-box.mjs.map +1 -1
- package/fesm2022/acorex-components-color-palette.mjs +55 -75
- package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
- package/fesm2022/acorex-components-comment.mjs +38 -38
- package/fesm2022/acorex-components-comment.mjs.map +1 -1
- package/fesm2022/acorex-components-conversation.mjs +58 -52
- package/fesm2022/acorex-components-conversation.mjs.map +1 -1
- package/fesm2022/acorex-components-cron-job.mjs +54 -48
- package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
- package/fesm2022/acorex-components-data-list.mjs +386 -0
- package/fesm2022/acorex-components-data-list.mjs.map +1 -0
- package/fesm2022/acorex-components-data-pager.mjs +41 -36
- package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +40 -40
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-box.mjs +22 -31
- package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-input.mjs +17 -14
- package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
- package/fesm2022/acorex-components-datetime-picker.mjs +98 -45
- package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +25 -25
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-dialog.mjs +10 -10
- package/fesm2022/acorex-components-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer-2.mjs +10 -10
- package/fesm2022/acorex-components-drawer-2.mjs.map +1 -1
- package/fesm2022/acorex-components-drawer.mjs +13 -13
- package/fesm2022/acorex-components-drawer.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown-button.mjs +7 -7
- package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
- package/fesm2022/acorex-components-dropdown.mjs +57 -13
- package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
- package/fesm2022/acorex-components-file-explorer.mjs +25 -25
- package/fesm2022/acorex-components-file-explorer.mjs.map +1 -1
- package/fesm2022/acorex-components-flow-chart.mjs +40 -16
- package/fesm2022/acorex-components-flow-chart.mjs.map +1 -1
- package/fesm2022/acorex-components-form.mjs +26 -17
- package/fesm2022/acorex-components-form.mjs.map +1 -1
- package/fesm2022/acorex-components-grid-layout-builder.mjs +10 -10
- package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +40 -34
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-image.mjs +7 -7
- package/fesm2022/acorex-components-image.mjs.map +1 -1
- package/fesm2022/acorex-components-json-viewer.mjs +8 -8
- package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-kanban.mjs +11 -7
- package/fesm2022/acorex-components-kanban.mjs.map +1 -1
- package/fesm2022/acorex-components-kbd.mjs +20 -13
- package/fesm2022/acorex-components-kbd.mjs.map +1 -1
- package/fesm2022/acorex-components-label.mjs +9 -9
- package/fesm2022/acorex-components-label.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +27 -19
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-loading-dialog.mjs +40 -22
- package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
- package/fesm2022/acorex-components-loading.mjs +74 -16
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-map.mjs +534 -115
- package/fesm2022/acorex-components-map.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +37 -37
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +44 -18
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/{acorex-components-modal-acorex-components-modal-C4zx7OP6.mjs → acorex-components-modal-acorex-components-modal-yzX5PZMM.mjs} +101 -22
- package/fesm2022/acorex-components-modal-acorex-components-modal-yzX5PZMM.mjs.map +1 -0
- package/fesm2022/{acorex-components-modal-modal-content.component-DfhgA_WL.mjs → acorex-components-modal-modal-content.component-Bt8c43qi.mjs} +5 -5
- package/fesm2022/{acorex-components-modal-modal-content.component-DfhgA_WL.mjs.map → acorex-components-modal-modal-content.component-Bt8c43qi.mjs.map} +1 -1
- package/fesm2022/acorex-components-modal.mjs +1 -1
- package/fesm2022/acorex-components-navbar.mjs +13 -8
- package/fesm2022/acorex-components-navbar.mjs.map +1 -1
- package/fesm2022/acorex-components-notification.mjs +14 -11
- package/fesm2022/acorex-components-notification.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box-2.mjs +13 -7
- package/fesm2022/acorex-components-number-box-2.mjs.map +1 -1
- package/fesm2022/acorex-components-number-box.mjs +16 -10
- package/fesm2022/acorex-components-number-box.mjs.map +1 -1
- package/fesm2022/acorex-components-otp.mjs +9 -9
- package/fesm2022/acorex-components-otp.mjs.map +1 -1
- package/fesm2022/acorex-components-page.mjs +10 -10
- package/fesm2022/acorex-components-page.mjs.map +1 -1
- package/fesm2022/acorex-components-paint.mjs +31 -25
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-password-box.mjs +20 -14
- package/fesm2022/acorex-components-password-box.mjs.map +1 -1
- package/fesm2022/acorex-components-pdf-reader.mjs +7 -7
- package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
- package/fesm2022/acorex-components-phone-box.mjs +22 -13
- package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +26 -16
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +8 -13
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-popup.mjs +10 -10
- package/fesm2022/acorex-components-popup.mjs.map +1 -1
- package/fesm2022/acorex-components-progress-bar.mjs +7 -7
- package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
- package/fesm2022/acorex-components-qrcode.mjs +7 -7
- package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
- package/fesm2022/acorex-components-query-builder.mjs +7 -7
- package/fesm2022/acorex-components-query-builder.mjs.map +1 -1
- package/fesm2022/acorex-components-radio.mjs +8 -8
- package/fesm2022/acorex-components-radio.mjs.map +1 -1
- package/fesm2022/acorex-components-rail-navigation.mjs +24 -13
- package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
- package/fesm2022/acorex-components-range-slider.mjs +7 -7
- package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-rate-picker.mjs +7 -7
- package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-rest-api-generator.mjs +22 -22
- package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
- package/fesm2022/acorex-components-result.mjs +7 -7
- package/fesm2022/acorex-components-result.mjs.map +1 -1
- package/fesm2022/acorex-components-routing-progress.mjs +7 -7
- package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
- package/fesm2022/acorex-components-rrule.mjs +6 -6
- package/fesm2022/acorex-components-rrule.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +39 -39
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-scss.mjs +4 -4
- package/fesm2022/acorex-components-scss.mjs.map +1 -1
- package/fesm2022/acorex-components-search-box.mjs +13 -7
- package/fesm2022/acorex-components-search-box.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +117 -38
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list-2.mjs +12 -9
- package/fesm2022/acorex-components-selection-list-2.mjs.map +1 -1
- package/fesm2022/acorex-components-selection-list.mjs +14 -11
- package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +98 -43
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-skeleton.mjs +7 -7
- package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
- package/fesm2022/acorex-components-slider.mjs +7 -7
- package/fesm2022/acorex-components-slider.mjs.map +1 -1
- package/fesm2022/acorex-components-sliding-item.mjs +13 -13
- package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
- package/fesm2022/acorex-components-step-wizard.mjs +13 -13
- package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +10 -10
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/fesm2022/acorex-components-tabs.mjs +20 -18
- package/fesm2022/acorex-components-tabs.mjs.map +1 -1
- package/fesm2022/acorex-components-tag-box.mjs +39 -21
- package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
- package/fesm2022/acorex-components-tag.mjs +7 -7
- package/fesm2022/acorex-components-tag.mjs.map +1 -1
- package/fesm2022/acorex-components-text-area.mjs +16 -10
- package/fesm2022/acorex-components-text-area.mjs.map +1 -1
- package/fesm2022/acorex-components-text-box.mjs +19 -13
- package/fesm2022/acorex-components-text-box.mjs.map +1 -1
- package/fesm2022/acorex-components-time-duration.mjs +41 -65
- package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
- package/fesm2022/acorex-components-time-line.mjs +10 -10
- package/fesm2022/acorex-components-time-line.mjs.map +1 -1
- package/fesm2022/acorex-components-toast.mjs +10 -10
- package/fesm2022/acorex-components-toast.mjs.map +1 -1
- package/fesm2022/acorex-components-toolbar.mjs +7 -7
- package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +14 -13
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view.mjs +11 -11
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/fesm2022/acorex-components-uploader.mjs +22 -22
- package/fesm2022/acorex-components-uploader.mjs.map +1 -1
- package/fesm2022/acorex-components-video-player.mjs +7 -7
- package/fesm2022/acorex-components-video-player.mjs.map +1 -1
- package/fesm2022/acorex-components-wysiwyg.mjs +41 -35
- package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
- package/flow-chart/index.d.ts +24 -0
- package/form/index.d.ts +4 -0
- package/image-editor/index.d.ts +1 -0
- package/json-viewer/index.d.ts +3 -3
- package/kanban/index.d.ts +7 -3
- package/kbd/index.d.ts +10 -3
- package/list/index.d.ts +14 -7
- package/loading/index.d.ts +58 -1
- package/loading-dialog/index.d.ts +29 -11
- package/map/index.d.ts +119 -6
- package/menu/index.d.ts +19 -0
- package/modal/index.d.ts +43 -0
- package/navbar/index.d.ts +6 -1
- package/number-box/index.d.ts +1 -0
- package/number-box-2/index.d.ts +1 -0
- package/package.json +9 -2
- package/paint/index.d.ts +2 -1
- package/password-box/index.d.ts +7 -6
- package/phone-box/index.d.ts +11 -8
- package/picker/index.d.ts +10 -8
- package/popover/index.d.ts +1 -1
- package/radio/index.d.ts +1 -1
- package/rail-navigation/index.d.ts +11 -0
- package/rate-picker/index.d.ts +1 -1
- package/scheduler/index.d.ts +1 -1
- package/search-box/index.d.ts +1 -0
- package/select-box/index.d.ts +32 -8
- package/side-menu/index.d.ts +16 -7
- package/tag-box/index.d.ts +3 -2
- package/text-area/index.d.ts +1 -0
- package/text-box/index.d.ts +1 -0
- package/time-duration/index.d.ts +3 -1
- package/tooltip/index.d.ts +3 -2
- package/wysiwyg/index.d.ts +1 -0
- package/fesm2022/acorex-components-modal-acorex-components-modal-C4zx7OP6.mjs.map +0 -1
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"acorex-components-data-list.mjs","sources":["../tmp-esm2022/data-list/lib/data-list.component.js","../tmp-esm2022/data-list/index.js","../tmp-esm2022/data-list/acorex-components-data-list.js"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, effect, EventEmitter, input, model, Output, signal, ViewChild, ViewEncapsulation, } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\nimport { MXValueComponent, AXListDataSource } from '@acorex/cdk/common';\nimport { AXTooltipDirective } from '@acorex/components/tooltip';\nimport { AXCheckBoxComponent } from '@acorex/components/check-box';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@angular/cdk/scrolling\";\nexport class AXDataListComponent extends MXValueComponent {\n constructor() {\n super();\n // Inputs\n this.dataSource = input.required(...(ngDevMode ? [{ debugName: \"dataSource\" }] : []));\n this.config = input({}, ...(ngDevMode ? [{ debugName: \"config\" }] : []));\n this.multiple = input(false, ...(ngDevMode ? [{ debugName: \"multiple\" }] : []));\n this.showCheckbox = input(true, ...(ngDevMode ? [{ debugName: \"showCheckbox\" }] : []));\n this.itemHeight = input(40, ...(ngDevMode ? [{ debugName: \"itemHeight\" }] : []));\n this.isItemTruncated = input(true, ...(ngDevMode ? [{ debugName: \"isItemTruncated\" }] : []));\n this.showItemTooltip = input(true, ...(ngDevMode ? [{ debugName: \"showItemTooltip\" }] : []));\n this.disabledField = input('disabled', ...(ngDevMode ? [{ debugName: \"disabledField\" }] : []));\n this.tooltipField = input('tooltip', ...(ngDevMode ? [{ debugName: \"tooltipField\" }] : []));\n this.textField = input('text', ...(ngDevMode ? [{ debugName: \"textField\" }] : []));\n this.descriptionField = input('description', ...(ngDevMode ? [{ debugName: \"descriptionField\" }] : []));\n this.levelField = input('level', ...(ngDevMode ? [{ debugName: \"levelField\" }] : []));\n this.childrenField = input('children', ...(ngDevMode ? [{ debugName: \"childrenField\" }] : []));\n this.expandedField = input('expanded', ...(ngDevMode ? [{ debugName: \"expandedField\" }] : []));\n // Templates\n this.itemTemplate = input(...(ngDevMode ? [undefined, { debugName: \"itemTemplate\" }] : []));\n this.emptyTemplate = input(...(ngDevMode ? [undefined, { debugName: \"emptyTemplate\" }] : []));\n this.loadingTemplate = input(...(ngDevMode ? [undefined, { debugName: \"loadingTemplate\" }] : []));\n // Outputs\n this.selectionChange = new EventEmitter();\n this.itemClick = new EventEmitter();\n this.itemDoubleClick = new EventEmitter();\n this.expandChange = new EventEmitter();\n // Internal signals\n this.loading = signal(false, ...(ngDevMode ? [{ debugName: \"loading\" }] : []));\n this.totalItems = signal(0, ...(ngDevMode ? [{ debugName: \"totalItems\" }] : []));\n this.selectedItems = signal([], ...(ngDevMode ? [{ debugName: \"selectedItems\" }] : []));\n this.selectedKeys = signal([], ...(ngDevMode ? [{ debugName: \"selectedKeys\" }] : []));\n this.focusedIndex = signal(-1, ...(ngDevMode ? [{ debugName: \"focusedIndex\" }] : []));\n this.expandedItems = signal(new Set(), ...(ngDevMode ? [{ debugName: \"expandedItems\" }] : []));\n // List data source for virtual scrolling\n this.listDataSource = null;\n // Computed values\n this.hasItems = computed(() => {\n const dataSourceItems = this.listDataSource?.source?.cachedItems?.length > 0;\n return dataSourceItems;\n }, ...(ngDevMode ? [{ debugName: \"hasItems\" }] : []));\n this.isEmpty = computed(() => {\n const notLoading = !this.loading();\n const noDataSourceItems = !this.listDataSource?.source?.cachedItems?.length;\n return notLoading && noDataSourceItems;\n }, ...(ngDevMode ? [{ debugName: \"isEmpty\" }] : []));\n this.isMultipleSelection = computed(() => this.multiple(), ...(ngDevMode ? [{ debugName: \"isMultipleSelection\" }] : []));\n this.showCheckboxes = computed(() => this.showCheckbox(), ...(ngDevMode ? [{ debugName: \"showCheckboxes\" }] : []));\n // Selection model\n this.selectionModel = model(...(ngDevMode ? [undefined, { debugName: \"selectionModel\" }] : []));\n // Track by function for virtual scrolling\n this.trackByFn = (index, item) => {\n if (!item) {\n return `loading-${index}`;\n }\n return this.getItemKey(item);\n };\n // Effect to sync selection model with internal state\n effect(() => {\n const selection = this.selectionModel();\n if (selection) {\n if (Array.isArray(selection)) {\n this.selectedKeys.set(selection);\n }\n else {\n this.selectedKeys.set([selection]);\n }\n this.updateSelectedItems();\n }\n });\n // Effect to emit selection changes\n effect(() => {\n const selectedItems = this.selectedItems();\n const selectedKeys = this.selectedKeys();\n const isMultiple = this.isMultipleSelection();\n if (selectedItems.length > 0 || selectedKeys.length > 0) {\n this.selectionChange.emit({\n selectedItems,\n selectedKeys,\n isMultiple,\n });\n }\n });\n // Effect to watch for dataSource changes and create listDataSource\n effect(() => {\n const dataSource = this.dataSource();\n if (dataSource) {\n console.log('Data source changed, creating AXListDataSource...');\n this.listDataSource = new AXListDataSource({\n source: dataSource,\n debounceTime: 100, // Add debounce to prevent too many page requests\n });\n console.log('Created AXListDataSource:', this.listDataSource);\n // Set up subscriptions\n this.setupDataSourceSubscription();\n }\n });\n }\n ngOnInit() {\n super.ngOnInit();\n // Data loading is now handled by the effect watching dataSource changes\n }\n setupDataSourceSubscription() {\n if (!this.dataSource() || !this.listDataSource)\n return;\n console.log('Setting up data source subscription for:', this.dataSource());\n // Subscribe to data source changes\n this.dataSource().onChanged.subscribe((data) => {\n console.log('Data source changed:', data);\n if (data && data.cachedItems) {\n this.totalItems.set(data.totalCount || data.cachedItems.length);\n }\n });\n this.dataSource().onLoadingChanged.subscribe((loading) => {\n console.log('Loading changed:', loading);\n this.loading.set(loading);\n });\n // Load initial data - just trigger the first page load\n // The AXListDataSource will handle subsequent pages automatically\n this.dataSource().setPage(0);\n }\n // Selection management\n selectItem(item, event) {\n if (event && typeof event.stopPropagation === 'function') {\n event.stopPropagation();\n }\n if (this.isItemDisabled(item))\n return;\n if (this.isMultipleSelection()) {\n this.toggleMultipleSelection(item);\n }\n else {\n this.setSingleSelection(item);\n }\n }\n toggleMultipleSelection(item) {\n const currentKeys = this.selectedKeys();\n const itemKey = this.getItemKey(item);\n if (currentKeys.includes(itemKey)) {\n this.selectedKeys.set(currentKeys.filter(key => key !== itemKey));\n }\n else {\n this.selectedKeys.set([...currentKeys, itemKey]);\n }\n this.updateSelectedItems();\n }\n setSingleSelection(item) {\n const itemKey = this.getItemKey(item);\n this.selectedKeys.set([itemKey]);\n this.updateSelectedItems();\n }\n deselectItem(item) {\n const currentKeys = this.selectedKeys();\n const itemKey = this.getItemKey(item);\n const newKeys = currentKeys.filter(key => key !== itemKey);\n this.selectedKeys.set(newKeys);\n this.updateSelectedItems();\n }\n updateSelectedItems() {\n const keys = this.selectedKeys();\n const dataSource = this.listDataSource?.source;\n if (!dataSource)\n return;\n const selected = dataSource.cachedItems.filter(item => keys.includes(this.getItemKey(item)));\n this.selectedItems.set(selected);\n // Update selection model\n if (this.isMultipleSelection()) {\n this.selectionModel.set(keys);\n }\n else {\n this.selectionModel.set(keys[0] || '');\n }\n }\n isItemSelected(item) {\n return this.selectedKeys().includes(this.getItemKey(item));\n }\n isItemDisabled(item) {\n const disabledField = this.disabledField();\n if (!disabledField)\n return false;\n const disabled = item[disabledField];\n return Boolean(disabled);\n }\n getItemKey(item) {\n if (item.id !== undefined && item.id !== null) {\n return String(item.id);\n }\n // Fallback to other potential key fields\n if (item['key'] !== undefined && item['key'] !== null) {\n return String(item['key']);\n }\n if (item['value'] !== undefined && item['value'] !== null) {\n return String(item['value']);\n }\n // Last resort: use the item itself as a string\n return String(item);\n }\n // Tree grouping\n toggleExpanded(item, event) {\n if (event && typeof event.stopPropagation === 'function') {\n event.stopPropagation();\n }\n if (!this.hasChildren(item))\n return;\n const currentExpanded = this.expandedItems();\n const itemKey = this.getItemKey(item);\n if (currentExpanded.has(itemKey)) {\n currentExpanded.delete(itemKey);\n }\n else {\n currentExpanded.add(itemKey);\n }\n this.expandedItems.set(new Set(currentExpanded));\n this.expandChange.emit({ item, expanded: currentExpanded.has(itemKey) });\n }\n hasChildren(item) {\n const childrenField = this.childrenField();\n if (!childrenField)\n return false;\n const children = item[childrenField];\n return Array.isArray(children) && children.length > 0;\n }\n isExpanded(item) {\n const expandedField = this.expandedField();\n if (expandedField) {\n const expanded = item[expandedField];\n if (expanded !== undefined && expanded !== null) {\n return Boolean(expanded);\n }\n }\n return this.expandedItems().has(this.getItemKey(item));\n }\n getItemLevel(item) {\n const levelField = this.levelField();\n if (!levelField)\n return 0;\n const level = item[levelField];\n return level !== undefined && level !== null ? Number(level) : 0;\n }\n // Keyboard navigation\n onKeyDown(event, item, index) {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n this.focusNextItem(index);\n break;\n case 'ArrowUp':\n event.preventDefault();\n this.focusPreviousItem(index);\n break;\n case 'Enter':\n case ' ':\n event.preventDefault();\n this.selectItem(item);\n break;\n case 'Escape':\n this.focusedIndex.set(-1);\n break;\n }\n }\n focusNextItem(currentIndex) {\n const dataSource = this.listDataSource?.source;\n if (!dataSource || dataSource.cachedItems.length === 0)\n return;\n const nextIndex = Math.min(currentIndex + 1, dataSource.cachedItems.length - 1);\n this.focusedIndex.set(nextIndex);\n this.scrollToIndex(nextIndex);\n }\n focusPreviousItem(currentIndex) {\n const dataSource = this.listDataSource?.source;\n if (!dataSource || dataSource.cachedItems.length === 0)\n return;\n const prevIndex = Math.max(currentIndex - 1, 0);\n this.focusedIndex.set(prevIndex);\n this.scrollToIndex(prevIndex);\n }\n scrollToIndex(index) {\n if (this.viewport && typeof index === 'number' && index >= 0) {\n this.viewport.scrollToIndex(index);\n }\n }\n // Item interaction\n onItemClick(item, event) {\n if (this.isItemDisabled(item))\n return;\n this.itemClick.emit(item);\n this.selectItem(item, event);\n }\n onCheckboxChange(item, checked) {\n if (this.isItemDisabled(item))\n return;\n if (checked) {\n this.selectItem(item);\n }\n else {\n this.deselectItem(item);\n }\n }\n onCheckboxClick(event) {\n if (typeof event.stopPropagation === 'function') {\n event.stopPropagation();\n }\n }\n onItemDoubleClick(item) {\n if (this.isItemDisabled(item))\n return;\n this.itemDoubleClick.emit(item);\n }\n // Utility methods\n getItemText(item) {\n const textField = this.textField();\n if (textField) {\n const text = item[textField];\n if (text !== undefined && text !== null) {\n return String(text);\n }\n }\n return item.text || '';\n }\n getItemDescription(item) {\n const descriptionField = this.descriptionField();\n if (descriptionField) {\n const description = item[descriptionField];\n if (description !== undefined && description !== null) {\n return String(description);\n }\n }\n return item.description || '';\n }\n getItemTooltip(item) {\n const tooltipField = this.tooltipField();\n if (tooltipField) {\n const tooltip = item[tooltipField];\n if (tooltip !== undefined && tooltip !== null) {\n return String(tooltip);\n }\n }\n return item.tooltip || '';\n }\n shouldShowTooltip(item) {\n return this.showItemTooltip() && !!this.getItemTooltip(item);\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXDataListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }\n static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"17.0.0\", version: \"20.1.8\", type: AXDataListComponent, isStandalone: true, selector: \"ax-data-list\", inputs: { dataSource: { classPropertyName: \"dataSource\", publicName: \"dataSource\", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: \"config\", publicName: \"config\", isSignal: true, isRequired: false, transformFunction: null }, multiple: { classPropertyName: \"multiple\", publicName: \"multiple\", isSignal: true, isRequired: false, transformFunction: null }, showCheckbox: { classPropertyName: \"showCheckbox\", publicName: \"showCheckbox\", isSignal: true, isRequired: false, transformFunction: null }, itemHeight: { classPropertyName: \"itemHeight\", publicName: \"itemHeight\", isSignal: true, 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 }, disabledField: { classPropertyName: \"disabledField\", publicName: \"disabledField\", isSignal: true, isRequired: false, transformFunction: null }, tooltipField: { classPropertyName: \"tooltipField\", publicName: \"tooltipField\", isSignal: true, isRequired: false, transformFunction: null }, textField: { classPropertyName: \"textField\", publicName: \"textField\", isSignal: true, isRequired: false, transformFunction: null }, descriptionField: { classPropertyName: \"descriptionField\", publicName: \"descriptionField\", isSignal: true, isRequired: false, transformFunction: null }, levelField: { classPropertyName: \"levelField\", publicName: \"levelField\", isSignal: true, isRequired: false, transformFunction: null }, childrenField: { classPropertyName: \"childrenField\", publicName: \"childrenField\", isSignal: true, isRequired: false, transformFunction: null }, expandedField: { classPropertyName: \"expandedField\", publicName: \"expandedField\", isSignal: true, isRequired: false, transformFunction: null }, itemTemplate: { classPropertyName: \"itemTemplate\", publicName: \"itemTemplate\", isSignal: true, isRequired: false, transformFunction: null }, emptyTemplate: { classPropertyName: \"emptyTemplate\", publicName: \"emptyTemplate\", isSignal: true, isRequired: false, transformFunction: null }, loadingTemplate: { classPropertyName: \"loadingTemplate\", publicName: \"loadingTemplate\", isSignal: true, isRequired: false, transformFunction: null }, selectionModel: { classPropertyName: \"selectionModel\", publicName: \"selectionModel\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { selectionChange: \"selectionChange\", itemClick: \"itemClick\", itemDoubleClick: \"itemDoubleClick\", expandChange: \"expandChange\", selectionModel: \"selectionModelChange\" }, viewQueries: [{ propertyName: \"viewport\", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, ngImport: i0, template: \"<div class=\\\"ax-data-list\\\" [class.ax-data-list--loading]=\\\"loading()\\\">\\n <!-- Loading State -->\\n @if (loading()) {\\n <div class=\\\"ax-data-list__loading\\\">\\n <ng-container *ngTemplateOutlet=\\\"loadingTemplate() || defaultLoadingTemplate\\\"></ng-container>\\n </div>\\n }\\n\\n <!-- Empty State -->\\n @if (isEmpty()) {\\n <div class=\\\"ax-data-list__empty\\\">\\n <ng-container *ngTemplateOutlet=\\\"emptyTemplate() || defaultEmptyTemplate\\\"></ng-container>\\n </div>\\n }\\n\\n <!-- List Content -->\\n @if (hasItems() && listDataSource !== null) {\\n <div class=\\\"ax-data-list__content\\\">\\n <cdk-virtual-scroll-viewport\\n [itemSize]=\\\"itemHeight()\\\"\\n class=\\\"ax-data-list__viewport\\\"\\n [class.ax-data-list__viewport--truncated]=\\\"isItemTruncated()\\\"\\n >\\n <ng-container *cdkVirtualFor=\\\"let item of listDataSource; let i = index; trackBy: trackByFn\\\">\\n @if (item) {\\n <div\\n class=\\\"ax-data-list__item\\\"\\n [class.ax-data-list__item--selected]=\\\"isItemSelected(item)\\\"\\n [class.ax-data-list__item--disabled]=\\\"isItemDisabled(item)\\\"\\n [class.ax-data-list__item--focused]=\\\"focusedIndex() === i\\\"\\n [class]=\\\"'ax-data-list__item--level-' + getItemLevel(item)\\\"\\n [style.height.px]=\\\"itemHeight()\\\"\\n (click)=\\\"onItemClick(item, $event)\\\"\\n (dblclick)=\\\"onItemDoubleClick(item)\\\"\\n (keydown)=\\\"onKeyDown($event, item, i)\\\"\\n tabindex=\\\"0\\\"\\n role=\\\"listitem\\\"\\n [attr.aria-selected]=\\\"isItemSelected(item)\\\"\\n [attr.aria-disabled]=\\\"isItemDisabled(item)\\\"\\n [attr.aria-level]=\\\"getItemLevel(item) + 1\\\"\\n >\\n <!-- Checkbox -->\\n @if (showCheckboxes()) {\\n <div class=\\\"ax-data-list__checkbox\\\" (click)=\\\"onCheckboxClick($event)\\\">\\n <ax-check-box\\n [value]=\\\"isItemSelected(item)\\\"\\n [disabled]=\\\"isItemDisabled(item)\\\"\\n (valueChange)=\\\"onCheckboxChange(item, $event)\\\"\\n >\\n </ax-check-box>\\n </div>\\n }\\n\\n <!-- Expand/Collapse Button for Tree Items -->\\n @if (hasChildren(item)) {\\n <div\\n class=\\\"ax-data-list__expand-button\\\"\\n [class.ax-data-list__expand-button--expanded]=\\\"isExpanded(item)\\\"\\n (click)=\\\"toggleExpanded(item, $event)\\\"\\n role=\\\"button\\\"\\n tabindex=\\\"0\\\"\\n [attr.aria-expanded]=\\\"isExpanded(item)\\\"\\n >\\n <svg class=\\\"ax-data-list__expand-icon\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"currentColor\\\">\\n <path d=\\\"M7 10l5 5 5-5z\\\" />\\n </svg>\\n </div>\\n }\\n\\n <!-- Item Content -->\\n <div class=\\\"ax-data-list__content-wrapper\\\">\\n <!-- Custom Item Template -->\\n @if (itemTemplate()) {\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n itemTemplate();\\n context: {\\n $implicit: item,\\n index: i,\\n selected: isItemSelected(item),\\n disabled: isItemDisabled(item),\\n }\\n \\\"\\n ></ng-container>\\n } @else {\\n <ng-container *ngTemplateOutlet=\\\"defaultItemTemplate\\\"></ng-container>\\n }\\n\\n <!-- Default Item Template -->\\n <ng-template #defaultItemTemplate>\\n <div\\n class=\\\"ax-data-list__text\\\"\\n [class.ax-data-list__text--truncated]=\\\"isItemTruncated()\\\"\\n [axTooltip]=\\\"shouldShowTooltip(item) ? getItemTooltip(item) : null\\\"\\n [axTooltipDisabled]=\\\"!shouldShowTooltip(item)\\\"\\n >\\n {{ getItemText(item) }}\\n </div>\\n\\n @if (getItemDescription(item)) {\\n <div\\n class=\\\"ax-data-list__description\\\"\\n [class.ax-data-list__description--truncated]=\\\"isItemTruncated()\\\"\\n >\\n {{ getItemDescription(item) }}\\n </div>\\n }\\n </ng-template>\\n </div>\\n </div>\\n } @else {\\n <!-- Loading skeleton for null items -->\\n <div class=\\\"ax-data-list__item ax-data-list__item--loading\\\" [style.height.px]=\\\"itemHeight()\\\">\\n <div class=\\\"ax-data-list__loading-skeleton\\\">\\n <div class=\\\"ax-data-list__skeleton-checkbox\\\"></div>\\n <div class=\\\"ax-data-list__skeleton-content\\\">\\n <div class=\\\"ax-data-list__skeleton-text\\\"></div>\\n <div class=\\\"ax-data-list__skeleton-description\\\"></div>\\n </div>\\n </div>\\n </div>\\n }\\n </ng-container>\\n </cdk-virtual-scroll-viewport>\\n </div>\\n }\\n</div>\\n\\n<!-- Default Loading Template -->\\n<ng-template #defaultLoadingTemplate>\\n <div class=\\\"ax-data-list__loading-default\\\">\\n <div class=\\\"ax-data-list__loading-spinner\\\"></div>\\n <span>Loading...</span>\\n </div>\\n</ng-template>\\n\\n<!-- Default Empty Template -->\\n<ng-template #defaultEmptyTemplate>\\n <div class=\\\"ax-data-list__empty-default\\\">\\n <svg class=\\\"ax-data-list__empty-icon\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"currentColor\\\">\\n <path\\n d=\\\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\\\"\\n />\\n </svg>\\n <span>No items to display</span>\\n </div>\\n</ng-template>\\n\", styles: [\".ax-data-list{display:flex;flex-direction:column;width:100%;height:100%;background:var(--ax-color-background, #ffffff);border:1px solid var(--ax-color-border, #e5e7eb);border-radius:var(--ax-border-radius, .375rem);overflow:hidden}.ax-data-list--loading .ax-data-list__content{opacity:.6;pointer-events:none}.ax-data-list__loading{display:flex;align-items:center;justify-content:center;padding:2rem;min-height:200px}.ax-data-list__loading-default{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--ax-color-text-secondary, #6b7280)}.ax-data-list__loading-spinner{width:2rem;height:2rem;border:2px solid var(--ax-color-border, #e5e7eb);border-top:2px solid var(--ax-color-primary, #3b82f6);border-radius:50%;animation:spin 1s linear infinite}.ax-data-list__empty{display:flex;align-items:center;justify-content:center;padding:2rem;min-height:200px}.ax-data-list__empty-default{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--ax-color-text-secondary, #6b7280);text-align:center}.ax-data-list__empty-icon{width:3rem;height:3rem;opacity:.5}.ax-data-list__content{flex:1;overflow:hidden}.ax-data-list__viewport{height:100%;width:100%}.ax-data-list__viewport--truncated .ax-data-list__text,.ax-data-list__viewport--truncated .ax-data-list__description{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-data-list__item{display:flex;align-items:center;padding:.5rem 1rem;cursor:pointer;transition:all .15s ease-in-out;border-bottom:1px solid var(--ax-color-border-light, #f3f4f6);position:relative}.ax-data-list__item:hover:not(.ax-data-list__item--disabled){background-color:var(--ax-color-hover, #f9fafb)}.ax-data-list__item:focus{outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:-2px}.ax-data-list__item--selected{background-color:var(--ax-color-primary-light, #dbeafe);color:var(--ax-color-primary, #3b82f6);border-color:var(--ax-color-primary, #3b82f6)}.ax-data-list__item--selected:hover{background-color:var(--ax-color-primary-light-hover, #bfdbfe)}.ax-data-list__item--disabled{cursor:not-allowed;opacity:.6;background-color:var(--ax-color-disabled, #f9fafb);color:var(--ax-color-text-disabled, #9ca3af)}.ax-data-list__item--disabled:hover{background-color:var(--ax-color-disabled, #f9fafb)}.ax-data-list__item--focused{background-color:var(--ax-color-focus, #eff6ff);outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:-2px}.ax-data-list__item--loading{cursor:default;pointer-events:none;background-color:var(--ax-color-background, #ffffff)}.ax-data-list__item--loading:hover{background-color:var(--ax-color-background, #ffffff)}.ax-data-list__item--level-0{padding-left:1rem}.ax-data-list__item--level-1{padding-left:2.5rem}.ax-data-list__item--level-2{padding-left:4rem}.ax-data-list__item--level-3{padding-left:5.5rem}.ax-data-list__item--level-4{padding-left:7rem}.ax-data-list__item--level-5{padding-left:8.5rem}.ax-data-list__checkbox{margin-right:.75rem;flex-shrink:0}.ax-data-list__expand-button{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;margin-right:.5rem;cursor:pointer;border-radius:.25rem;transition:all .15s ease-in-out;flex-shrink:0}.ax-data-list__expand-button:hover{background-color:var(--ax-color-hover, #f3f4f6)}.ax-data-list__expand-button:focus{outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:2px}.ax-data-list__expand-button--expanded .ax-data-list__expand-icon{transform:rotate(90deg)}.ax-data-list__expand-icon{width:1rem;height:1rem;transition:transform .15s ease-in-out;color:var(--ax-color-text-secondary, #6b7280)}.ax-data-list__content-wrapper{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.ax-data-list__text{font-weight:500;color:var(--ax-color-text, #111827);line-height:1.25}.ax-data-list__text--truncated{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-data-list__description{font-size:.875rem;color:var(--ax-color-text-secondary, #6b7280);line-height:1.25}.ax-data-list__description--truncated{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.ax-data-list__item{padding:.75rem 1rem}.ax-data-list__item--level-1{padding-left:2rem}.ax-data-list__item--level-2{padding-left:3rem}.ax-data-list__item--level-3{padding-left:4rem}.ax-data-list__item--level-4{padding-left:5rem}.ax-data-list__item--level-5{padding-left:6rem}.ax-data-list__checkbox{margin-right:.5rem}.ax-data-list__expand-button{margin-right:.25rem}}@media (prefers-contrast: high){.ax-data-list{border-width:2px}.ax-data-list__item{border-bottom-width:2px}.ax-data-list__item:focus{outline-width:3px}.ax-data-list__item--selected{border-width:2px}.ax-data-list__expand-button:focus{outline-width:3px}}@media (prefers-reduced-motion: reduce){.ax-data-list__item,.ax-data-list__expand-icon{transition:none}.ax-data-list__loading-spinner{animation:none}}.ax-data-list__loading-skeleton{display:flex;align-items:center;width:100%;gap:.75rem}.ax-data-list__skeleton-checkbox{width:1rem;height:1rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;flex-shrink:0}.ax-data-list__skeleton-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.ax-data-list__skeleton-text{height:1rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;width:80%}.ax-data-list__skeleton-description{height:.75rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;width:60%}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}\\n\"], dependencies: [{ kind: \"ngmodule\", type: CommonModule }, { kind: \"directive\", type: i1.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"ngmodule\", type: FormsModule }, { kind: \"ngmodule\", type: ScrollingModule }, { kind: \"directive\", type: i2.CdkFixedSizeVirtualScroll, selector: \"cdk-virtual-scroll-viewport[itemSize]\", inputs: [\"itemSize\", \"minBufferPx\", \"maxBufferPx\"] }, { kind: \"directive\", type: i2.CdkVirtualForOf, selector: \"[cdkVirtualFor][cdkVirtualForOf]\", inputs: [\"cdkVirtualForOf\", \"cdkVirtualForTrackBy\", \"cdkVirtualForTemplate\", \"cdkVirtualForTemplateCacheSize\"] }, { kind: \"component\", type: i2.CdkVirtualScrollViewport, selector: \"cdk-virtual-scroll-viewport\", inputs: [\"orientation\", \"appendOnly\"], outputs: [\"scrolledIndexChange\"] }, { kind: \"directive\", type: AXTooltipDirective, selector: \"[axTooltip]\", inputs: [\"axTooltipDisabled\", \"axTooltip\", \"axTooltipContext\", \"axTooltipPlacement\", \"axTooltipOffsetX\", \"axTooltipOffsetY\", \"axTooltipOpenAfter\", \"axTooltipCloseAfter\"] }, { kind: \"component\", type: AXCheckBoxComponent, selector: \"ax-check-box\", inputs: [\"disabled\", \"tabIndex\", \"readonly\", \"color\", \"value\", \"name\", \"id\", \"isLoading\", \"indeterminate\"], outputs: [\"onBlur\", \"onFocus\", \"valueChange\", \"onValueChanged\"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: AXDataListComponent, decorators: [{\n type: Component,\n args: [{ selector: 'ax-data-list', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, standalone: true, imports: [\n CommonModule,\n FormsModule,\n ScrollingModule,\n AXTooltipDirective,\n AXCheckBoxComponent,\n ], template: \"<div class=\\\"ax-data-list\\\" [class.ax-data-list--loading]=\\\"loading()\\\">\\n <!-- Loading State -->\\n @if (loading()) {\\n <div class=\\\"ax-data-list__loading\\\">\\n <ng-container *ngTemplateOutlet=\\\"loadingTemplate() || defaultLoadingTemplate\\\"></ng-container>\\n </div>\\n }\\n\\n <!-- Empty State -->\\n @if (isEmpty()) {\\n <div class=\\\"ax-data-list__empty\\\">\\n <ng-container *ngTemplateOutlet=\\\"emptyTemplate() || defaultEmptyTemplate\\\"></ng-container>\\n </div>\\n }\\n\\n <!-- List Content -->\\n @if (hasItems() && listDataSource !== null) {\\n <div class=\\\"ax-data-list__content\\\">\\n <cdk-virtual-scroll-viewport\\n [itemSize]=\\\"itemHeight()\\\"\\n class=\\\"ax-data-list__viewport\\\"\\n [class.ax-data-list__viewport--truncated]=\\\"isItemTruncated()\\\"\\n >\\n <ng-container *cdkVirtualFor=\\\"let item of listDataSource; let i = index; trackBy: trackByFn\\\">\\n @if (item) {\\n <div\\n class=\\\"ax-data-list__item\\\"\\n [class.ax-data-list__item--selected]=\\\"isItemSelected(item)\\\"\\n [class.ax-data-list__item--disabled]=\\\"isItemDisabled(item)\\\"\\n [class.ax-data-list__item--focused]=\\\"focusedIndex() === i\\\"\\n [class]=\\\"'ax-data-list__item--level-' + getItemLevel(item)\\\"\\n [style.height.px]=\\\"itemHeight()\\\"\\n (click)=\\\"onItemClick(item, $event)\\\"\\n (dblclick)=\\\"onItemDoubleClick(item)\\\"\\n (keydown)=\\\"onKeyDown($event, item, i)\\\"\\n tabindex=\\\"0\\\"\\n role=\\\"listitem\\\"\\n [attr.aria-selected]=\\\"isItemSelected(item)\\\"\\n [attr.aria-disabled]=\\\"isItemDisabled(item)\\\"\\n [attr.aria-level]=\\\"getItemLevel(item) + 1\\\"\\n >\\n <!-- Checkbox -->\\n @if (showCheckboxes()) {\\n <div class=\\\"ax-data-list__checkbox\\\" (click)=\\\"onCheckboxClick($event)\\\">\\n <ax-check-box\\n [value]=\\\"isItemSelected(item)\\\"\\n [disabled]=\\\"isItemDisabled(item)\\\"\\n (valueChange)=\\\"onCheckboxChange(item, $event)\\\"\\n >\\n </ax-check-box>\\n </div>\\n }\\n\\n <!-- Expand/Collapse Button for Tree Items -->\\n @if (hasChildren(item)) {\\n <div\\n class=\\\"ax-data-list__expand-button\\\"\\n [class.ax-data-list__expand-button--expanded]=\\\"isExpanded(item)\\\"\\n (click)=\\\"toggleExpanded(item, $event)\\\"\\n role=\\\"button\\\"\\n tabindex=\\\"0\\\"\\n [attr.aria-expanded]=\\\"isExpanded(item)\\\"\\n >\\n <svg class=\\\"ax-data-list__expand-icon\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"currentColor\\\">\\n <path d=\\\"M7 10l5 5 5-5z\\\" />\\n </svg>\\n </div>\\n }\\n\\n <!-- Item Content -->\\n <div class=\\\"ax-data-list__content-wrapper\\\">\\n <!-- Custom Item Template -->\\n @if (itemTemplate()) {\\n <ng-container\\n *ngTemplateOutlet=\\\"\\n itemTemplate();\\n context: {\\n $implicit: item,\\n index: i,\\n selected: isItemSelected(item),\\n disabled: isItemDisabled(item),\\n }\\n \\\"\\n ></ng-container>\\n } @else {\\n <ng-container *ngTemplateOutlet=\\\"defaultItemTemplate\\\"></ng-container>\\n }\\n\\n <!-- Default Item Template -->\\n <ng-template #defaultItemTemplate>\\n <div\\n class=\\\"ax-data-list__text\\\"\\n [class.ax-data-list__text--truncated]=\\\"isItemTruncated()\\\"\\n [axTooltip]=\\\"shouldShowTooltip(item) ? getItemTooltip(item) : null\\\"\\n [axTooltipDisabled]=\\\"!shouldShowTooltip(item)\\\"\\n >\\n {{ getItemText(item) }}\\n </div>\\n\\n @if (getItemDescription(item)) {\\n <div\\n class=\\\"ax-data-list__description\\\"\\n [class.ax-data-list__description--truncated]=\\\"isItemTruncated()\\\"\\n >\\n {{ getItemDescription(item) }}\\n </div>\\n }\\n </ng-template>\\n </div>\\n </div>\\n } @else {\\n <!-- Loading skeleton for null items -->\\n <div class=\\\"ax-data-list__item ax-data-list__item--loading\\\" [style.height.px]=\\\"itemHeight()\\\">\\n <div class=\\\"ax-data-list__loading-skeleton\\\">\\n <div class=\\\"ax-data-list__skeleton-checkbox\\\"></div>\\n <div class=\\\"ax-data-list__skeleton-content\\\">\\n <div class=\\\"ax-data-list__skeleton-text\\\"></div>\\n <div class=\\\"ax-data-list__skeleton-description\\\"></div>\\n </div>\\n </div>\\n </div>\\n }\\n </ng-container>\\n </cdk-virtual-scroll-viewport>\\n </div>\\n }\\n</div>\\n\\n<!-- Default Loading Template -->\\n<ng-template #defaultLoadingTemplate>\\n <div class=\\\"ax-data-list__loading-default\\\">\\n <div class=\\\"ax-data-list__loading-spinner\\\"></div>\\n <span>Loading...</span>\\n </div>\\n</ng-template>\\n\\n<!-- Default Empty Template -->\\n<ng-template #defaultEmptyTemplate>\\n <div class=\\\"ax-data-list__empty-default\\\">\\n <svg class=\\\"ax-data-list__empty-icon\\\" viewBox=\\\"0 0 24 24\\\" fill=\\\"currentColor\\\">\\n <path\\n d=\\\"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-5 14H7v-2h7v2zm3-4H7v-2h10v2zm0-4H7V7h10v2z\\\"\\n />\\n </svg>\\n <span>No items to display</span>\\n </div>\\n</ng-template>\\n\", styles: [\".ax-data-list{display:flex;flex-direction:column;width:100%;height:100%;background:var(--ax-color-background, #ffffff);border:1px solid var(--ax-color-border, #e5e7eb);border-radius:var(--ax-border-radius, .375rem);overflow:hidden}.ax-data-list--loading .ax-data-list__content{opacity:.6;pointer-events:none}.ax-data-list__loading{display:flex;align-items:center;justify-content:center;padding:2rem;min-height:200px}.ax-data-list__loading-default{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--ax-color-text-secondary, #6b7280)}.ax-data-list__loading-spinner{width:2rem;height:2rem;border:2px solid var(--ax-color-border, #e5e7eb);border-top:2px solid var(--ax-color-primary, #3b82f6);border-radius:50%;animation:spin 1s linear infinite}.ax-data-list__empty{display:flex;align-items:center;justify-content:center;padding:2rem;min-height:200px}.ax-data-list__empty-default{display:flex;flex-direction:column;align-items:center;gap:1rem;color:var(--ax-color-text-secondary, #6b7280);text-align:center}.ax-data-list__empty-icon{width:3rem;height:3rem;opacity:.5}.ax-data-list__content{flex:1;overflow:hidden}.ax-data-list__viewport{height:100%;width:100%}.ax-data-list__viewport--truncated .ax-data-list__text,.ax-data-list__viewport--truncated .ax-data-list__description{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-data-list__item{display:flex;align-items:center;padding:.5rem 1rem;cursor:pointer;transition:all .15s ease-in-out;border-bottom:1px solid var(--ax-color-border-light, #f3f4f6);position:relative}.ax-data-list__item:hover:not(.ax-data-list__item--disabled){background-color:var(--ax-color-hover, #f9fafb)}.ax-data-list__item:focus{outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:-2px}.ax-data-list__item--selected{background-color:var(--ax-color-primary-light, #dbeafe);color:var(--ax-color-primary, #3b82f6);border-color:var(--ax-color-primary, #3b82f6)}.ax-data-list__item--selected:hover{background-color:var(--ax-color-primary-light-hover, #bfdbfe)}.ax-data-list__item--disabled{cursor:not-allowed;opacity:.6;background-color:var(--ax-color-disabled, #f9fafb);color:var(--ax-color-text-disabled, #9ca3af)}.ax-data-list__item--disabled:hover{background-color:var(--ax-color-disabled, #f9fafb)}.ax-data-list__item--focused{background-color:var(--ax-color-focus, #eff6ff);outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:-2px}.ax-data-list__item--loading{cursor:default;pointer-events:none;background-color:var(--ax-color-background, #ffffff)}.ax-data-list__item--loading:hover{background-color:var(--ax-color-background, #ffffff)}.ax-data-list__item--level-0{padding-left:1rem}.ax-data-list__item--level-1{padding-left:2.5rem}.ax-data-list__item--level-2{padding-left:4rem}.ax-data-list__item--level-3{padding-left:5.5rem}.ax-data-list__item--level-4{padding-left:7rem}.ax-data-list__item--level-5{padding-left:8.5rem}.ax-data-list__checkbox{margin-right:.75rem;flex-shrink:0}.ax-data-list__expand-button{display:flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;margin-right:.5rem;cursor:pointer;border-radius:.25rem;transition:all .15s ease-in-out;flex-shrink:0}.ax-data-list__expand-button:hover{background-color:var(--ax-color-hover, #f3f4f6)}.ax-data-list__expand-button:focus{outline:2px solid var(--ax-color-primary, #3b82f6);outline-offset:2px}.ax-data-list__expand-button--expanded .ax-data-list__expand-icon{transform:rotate(90deg)}.ax-data-list__expand-icon{width:1rem;height:1rem;transition:transform .15s ease-in-out;color:var(--ax-color-text-secondary, #6b7280)}.ax-data-list__content-wrapper{flex:1;min-width:0;display:flex;flex-direction:column;gap:.25rem}.ax-data-list__text{font-weight:500;color:var(--ax-color-text, #111827);line-height:1.25}.ax-data-list__text--truncated{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ax-data-list__description{font-size:.875rem;color:var(--ax-color-text-secondary, #6b7280);line-height:1.25}.ax-data-list__description--truncated{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@media (max-width: 768px){.ax-data-list__item{padding:.75rem 1rem}.ax-data-list__item--level-1{padding-left:2rem}.ax-data-list__item--level-2{padding-left:3rem}.ax-data-list__item--level-3{padding-left:4rem}.ax-data-list__item--level-4{padding-left:5rem}.ax-data-list__item--level-5{padding-left:6rem}.ax-data-list__checkbox{margin-right:.5rem}.ax-data-list__expand-button{margin-right:.25rem}}@media (prefers-contrast: high){.ax-data-list{border-width:2px}.ax-data-list__item{border-bottom-width:2px}.ax-data-list__item:focus{outline-width:3px}.ax-data-list__item--selected{border-width:2px}.ax-data-list__expand-button:focus{outline-width:3px}}@media (prefers-reduced-motion: reduce){.ax-data-list__item,.ax-data-list__expand-icon{transition:none}.ax-data-list__loading-spinner{animation:none}}.ax-data-list__loading-skeleton{display:flex;align-items:center;width:100%;gap:.75rem}.ax-data-list__skeleton-checkbox{width:1rem;height:1rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;flex-shrink:0}.ax-data-list__skeleton-content{flex:1;display:flex;flex-direction:column;gap:.5rem}.ax-data-list__skeleton-text{height:1rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;width:80%}.ax-data-list__skeleton-description{height:.75rem;background:linear-gradient(90deg,#f3f4f6 25%,#e5e7eb,#f3f4f6 75%);background-size:200% 100%;border-radius:.25rem;animation:shimmer 1.5s infinite;width:60%}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}\\n\"] }]\n }], ctorParameters: () => [], propDecorators: { selectionChange: [{\n type: Output\n }], itemClick: [{\n type: Output\n }], itemDoubleClick: [{\n type: Output\n }], expandChange: [{\n type: Output\n }], viewport: [{\n type: ViewChild,\n args: [CdkVirtualScrollViewport]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YS1saXN0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0YS1saXN0L3NyYy9saWIvZGF0YS1saXN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvbXBvbmVudHMvZGF0YS1saXN0L3NyYy9saWIvZGF0YS1saXN0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBRU4sWUFBWSxFQUNaLEtBQUssRUFDTCxLQUFLLEVBRUwsTUFBTSxFQUNOLE1BQU0sRUFFTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ3BCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHdCQUF3QixFQUFFLGVBQWUsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQ25GLE9BQU8sRUFBbUMsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN6RyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7OztBQThDbkUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLGdCQUFnQjtJQTREckQ7UUFDSSxLQUFLLEVBQUUsQ0FBQztRQTVEWixTQUFTO1FBQ1QsZUFBVSxHQUFHLEtBQUssQ0FBQyxRQUFRLHFEQUFnQyxDQUFDO1FBQzVELFdBQU0sR0FBRyxLQUFLLENBQW1CLEVBQUUsa0RBQUMsQ0FBQztRQUNyQyxhQUFRLEdBQUcsS0FBSyxDQUFDLEtBQUssb0RBQUMsQ0FBQztR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Q2YsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ25DLElBQUksT0FBTyxLQUFLLFNBQVMsSUFBSSxPQUFPLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQzVDLE9BQU8sTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQzNCLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRVMsaUJBQWlCLENBQUMsSUFBb0I7UUFDNUMsT0FBTyxJQUFJLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakUsQ0FBQzs4R0F4WVEsbUJBQW1CO2tHQUFuQixtQkFBbUIsMHhGQTZCakIsd0JBQXdCLHVFQ2hHdkMsbTRMQW1KQSxzdUxEdkZRLFlBQVkscU1BQ1osV0FBVyw4QkFDWCxlQUFlLDRqQkFDZixrQkFBa0IsbU9BQ2xCLG1CQUFtQjs7MkZBR2QsbUJBQW1CO2tCQWYvQixTQUFTOytCQUNJLGNBQWMsbUJBR1AsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxjQUN6QixJQUFJLFdBQ1A7d0JBQ0wsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixtQkFBbUI7cUJBQ3RCO3dEQXlCUyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU07Z0JBQ0csZUFBZTtzQkFBeEIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQUc4QixRQUFRO3NCQUE1QyxTQUFTO3VCQUFDLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIGNvbXB1dGVkLFxuICAgIGVmZmVjdCxcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBpbnB1dCxcbiAgICBtb2RlbCxcbiAgICBPbkluaXQsXG4gICAgT3V0cHV0LFxuICAgIHNpZ25hbCxcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q2hpbGQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgQ2RrVmlydHVhbFNjcm9sbFZpZXdwb3J0LCBTY3JvbGxpbmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvc2Nyb2xsaW5nJztcbmltcG9ydCB7IEFYRGF0YVNvdXJjZSwgQVhEYXRhU291cmNlUXVlcnksIE1YVmFsdWVDb21wb25lbnQsIEFYTGlzdERhdGFTb3VyY2UgfSBmcm9tICdAYWNvcmV4L2Nkay9jb21tb24nO1xuaW1wb3J0IHsgQVhUb29sdGlwRGlyZWN0aXZlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3Rvb2x0aXAnO1xuaW1wb3J0IHsgQVhDaGVja0JveENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jaGVjay1ib3gnO1xuXG4vLyBUeXBlcyBmb3IgdGhlIGNvbXBvbmVudFxuZXhwb3J0IGludGVyZmFjZSBBWERhdGFMaXN0SXRlbSB7XG4gICAgaWQ6IHN0cmluZztcbiAgICB0ZXh0OiBzdHJpbmc7XG4gICAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIHRvb2x0aXA/OiBzdHJpbmc7XG4gICAgbGV2ZWw/OiBudW1iZXI7XG4gICAgY2hpbGRyZW4/OiBBWERhdGFMaXN0SXRlbVtdO1xuICAgIGV4cGFuZGVkPzogYm9vbGVhbjtcbiAgICBba2V5OiBzdHJpbmddOiBhbnk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhEYXRhTGlzdENvbmZpZyB7XG4gICAgZGlzYWJsZWRGaWVsZD86IHN0cmluZztcbiAgICB0b29sdGlwRmllbGQ/OiBzdHJpbmc7XG4gICAgdGV4dEZpZWxkPzogc3RyaW5nO1xuICAgIGRlc2NyaXB0aW9uRmllbGQ/OiBzdHJpbmc7XG4gICAgbGV2ZWxGaWVsZD86IHN0cmluZztcbiAgICBjaGlsZHJlbkZpZWxkPzogc3RyaW5nO1xuICAgIGV4cGFuZGVkRmllbGQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQVhEYXRhTGlzdFNlbGVjdGlvbkNoYW5nZSB7XG4gICAgc2VsZWN0ZWRJdGVtczogQVhEYXRhTGlzdEl0ZW1bXTtcbiAgICBzZWxlY3RlZEtleXM6IHN0cmluZ1tdO1xuICAgIGlzTXVsdGlwbGU6IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXgtZGF0YS1saXN0JyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZGF0YS1saXN0LmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9kYXRhLWxpc3QuY29tcG9uZW50LnNjc3MnXSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaW1wb3J0czogW1xuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBTY3JvbGxpbmdNb2R1bGUsXG4gICAgICAgIEFYVG9vbHRpcERpcmVjdGl2ZSxcbiAgICAgICAgQVhDaGVja0JveENvbXBvbmVudCxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGFMaXN0Q29tcG9uZW50IGV4dGVuZHMgTVhWYWx1ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgLy8gSW5wdXRzXG4gICAgZGF0YVNvdXJjZSA9IGlucHV0LnJlcXVpcmVkPEFYRGF0YVNvdXJjZTxBWERhdGFMaXN0SXRlbT4+KCk7XG4gICAgY29uZmlnID0gaW5wdXQ8QVhEYXRhTGlzdENvbmZpZz4oe30pO1xuICAgIG11bHRpcGxlID0gaW5wdXQoZmFsc2UpO1xuICAgIHNob3dDaGVja2JveCA9IGlucHV0KHRydWUpO1xuICAgIGl0ZW1IZWlnaHQgPSBpbnB1dCg0MCk7XG4gICAgaXNJdGVtVHJ1bmNhdGVkID0gaW5wdXQodHJ1ZSk7XG4gICAgc2hvd0l0ZW1Ub29sdGlwID0gaW5wdXQodHJ1ZSk7XG4gICAgZGlzYWJsZWRGaWVsZCA9IGlucHV0PHN0cmluZz4oJ2Rpc2FibGVkJyk7XG4gICAgdG9vbHRpcEZpZWxkID0gaW5wdXQ8c3RyaW5nPigndG9vbHRpcCcpO1xuICAgIHRleHRGaWVsZCA9IGlucHV0PHN0cmluZz4oJ3RleHQnKTtcbiAgICBkZXNjcmlwdGlvbkZpZWxkID0gaW5wdXQ8c3RyaW5nPignZGVzY3JpcHRpb24nKTtcbiAgICBsZXZlbEZpZWxkID0gaW5wdXQ8c3RyaW5nPignbGV2ZWwnKTtcbiAgICBjaGlsZHJlbkZpZWxkID0gaW5wdXQ8c3RyaW5nPignY2hpbGRyZW4nKTtcbiAgICBleHBhbmRlZEZpZWxkID0gaW5wdXQ8c3RyaW5nPignZXhwYW5kZWQnKTtcblxuICAgIC8vIFRlbXBsYXRlc1xuICAgIGl0ZW1UZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4+KCk7XG4gICAgZW1wdHlUZW1wbGF0ZSA9IGlucHV0PFRlbXBsYXRlUmVmPGFueT4+KCk7XG4gICAgbG9hZGluZ1RlbXBsYXRlID0gaW5wdXQ8VGVtcGxhdGVSZWY8YW55Pj4oKTtcblxuICAgIC8vIE91dHB1dHNcbiAgICBAT3V0cHV0KCkgc2VsZWN0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxBWERhdGFMaXN0U2VsZWN0aW9uQ2hhbmdlPigpO1xuICAgIEBPdXRwdXQoKSBpdGVtQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEFYRGF0YUxpc3RJdGVtPigpO1xuICAgIEBPdXRwdXQoKSBpdGVtRG91YmxlQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyPEFYRGF0YUxpc3RJdGVtPigpO1xuICAgIEBPdXRwdXQoKSBleHBhbmRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHsgaXRlbTogQVhEYXRhTGlzdEl0ZW07IGV4cGFuZGVkOiBib29sZWFuIH0+KCk7XG5cbiAgICAvLyBWaWV3Q2hpbGRcbiAgICBAVmlld0NoaWxkKENka1ZpcnR1YWxTY3JvbGxWaWV3cG9ydCkgdmlld3BvcnQhOiBDZGtWaXJ0dWFsU2Nyb2xsVmlld3BvcnQ7XG5cbiAgICAvLyBJbnRlcm5hbCBzaWduYWxzXG4gICAgcHJvdGVjdGVkIGxvYWRpbmcgPSBzaWduYWwoZmFsc2UpO1xuICAgIHByb3RlY3RlZCB0b3RhbEl0ZW1zID0gc2lnbmFsKDApO1xuICAgIHByb3RlY3RlZCBzZWxlY3RlZEl0ZW1zID0gc2lnbmFsPEFYRGF0YUxpc3RJdGVtW10+KFtdKTtcbiAgICBwcm90ZWN0ZWQgc2VsZWN0ZWRLZXlzID0gc2lnbmFsPHN0cmluZ1tdPihbXSk7XG4gICAgcHJvdGVjdGVkIGZvY3VzZWRJbmRleCA9IHNpZ25hbCgtMSk7XG4gICAgcHJvdGVjdGVkIGV4cGFuZGVkSXRlbXMgPSBzaWduYWw8U2V0PHN0cmluZz4+KG5ldyBTZXQoKSk7XG5cbiAgICAvLyBMaXN0IGRhdGEgc291cmNlIGZvciB2aXJ0dWFsIHNjcm9sbGluZ1xuICAgIHByb3RlY3RlZCBsaXN0RGF0YVNvdXJjZTogQVhMaXN0RGF0YVNvdXJjZTxBWERhdGFMaXN0SXRlbT4gfCBudWxsID0gbnVsbDtcblxuXG5cbiAgICAvLyBDb21wdXRlZCB2YWx1ZXNcbiAgICBwcm90ZWN0ZWQgaGFzSXRlbXMgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IGRhdGFTb3VyY2VJdGVtcyA9IHRoaXMubGlzdERhdGFTb3VyY2U/LnNvdXJjZT8uY2FjaGVkSXRlbXM/Lmxlbmd0aCA+IDA7XG4gICAgICAgIHJldHVybiBkYXRhU291cmNlSXRlbXM7XG4gICAgfSk7XG4gICAgcHJvdGVjdGVkIGlzRW1wdHkgPSBjb21wdXRlZCgoKSA9PiB7XG4gICAgICAgIGNvbnN0IG5vdExvYWRpbmcgPSAhdGhpcy5sb2FkaW5nKCk7XG4gICAgICAgIGNvbnN0IG5vRGF0YVNvdXJjZUl0ZW1zID0gIXRoaXMubGlzdERhdGFTb3VyY2U/LnNvdXJjZT8uY2FjaGVkSXRlbXM/Lmxlbmd0aDtcbiAgICAgICAgcmV0dXJuIG5vdExvYWRpbmcgJiYgbm9EYXRhU291cmNlSXRlbXM7XG4gICAgfSk7XG4gICAgcHJvdGVjdGVkIGlzTXVsdGlwbGVTZWxlY3Rpb24gPSBjb21wdXRlZCgoKSA9PiB0aGlzLm11bHRpcGxlKCkpO1xuICAgIHByb3RlY3RlZCBzaG93Q2hlY2tib3hlcyA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2hvd0NoZWNrYm94KCkpO1xuXG4gICAgLy8gU2VsZWN0aW9uIG1vZGVsXG4gICAgcHVibGljIHNlbGVjdGlvbk1vZGVsID0gbW9kZWw8c3RyaW5nIHwgc3RyaW5nW10+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgc3VwZXIoKTtcblxuICAgICAgICAvLyBFZmZlY3QgdG8gc3luYyBzZWxlY3Rpb24gbW9kZWwgd2l0aCBpbnRlcm5hbCBzdGF0ZVxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3Qgc2VsZWN0aW9uID0gdGhpcy5zZWxlY3Rpb25Nb2RlbCgpO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGlvbikge1xuICAgICAgICAgICAgICAgIGlmIChBcnJheS5pc0FycmF5KHNlbGVjdGlvbikpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEtleXMuc2V0KHNlbGVjdGlvbik7XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEtleXMuc2V0KFtzZWxlY3Rpb25dKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZEl0ZW1zKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuXG4gICAgICAgIC8vIEVmZmVjdCB0byBlbWl0IHNlbGVjdGlvbiBjaGFuZ2VzXG4gICAgICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEl0ZW1zID0gdGhpcy5zZWxlY3RlZEl0ZW1zKCk7XG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZEtleXMgPSB0aGlzLnNlbGVjdGVkS2V5cygpO1xuICAgICAgICAgICAgY29uc3QgaXNNdWx0aXBsZSA9IHRoaXMuaXNNdWx0aXBsZVNlbGVjdGlvbigpO1xuXG4gICAgICAgICAgICBpZiAoc2VsZWN0ZWRJdGVtcy5sZW5ndGggPiAwIHx8IHNlbGVjdGVkS2V5cy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25DaGFuZ2UuZW1pdCh7XG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkSXRlbXMsXG4gICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkS2V5cyxcbiAgICAgICAgICAgICAgICAgICAgaXNNdWx0aXBsZSxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgLy8gRWZmZWN0IHRvIHdhdGNoIGZvciBkYXRhU291cmNlIGNoYW5nZXMgYW5kIGNyZWF0ZSBsaXN0RGF0YVNvdXJjZVxuICAgICAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSgpO1xuICAgICAgICAgICAgaWYgKGRhdGFTb3VyY2UpIHtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnRGF0YSBzb3VyY2UgY2hhbmdlZCwgY3JlYXRpbmcgQVhMaXN0RGF0YVNvdXJjZS4uLicpO1xuICAgICAgICAgICAgICAgIHRoaXMubGlzdERhdGFTb3VyY2UgPSBuZXcgQVhMaXN0RGF0YVNvdXJjZTxBWERhdGFMaXN0SXRlbT4oe1xuICAgICAgICAgICAgICAgICAgICBzb3VyY2U6IGRhdGFTb3VyY2UsXG4gICAgICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZTogMTAwLCAvLyBBZGQgZGVib3VuY2UgdG8gcHJldmVudCB0b28gbWFueSBwYWdlIHJlcXVlc3RzXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgY29uc29sZS5sb2coJ0NyZWF0ZWQgQVhMaXN0RGF0YVNvdXJjZTonLCB0aGlzLmxpc3REYXRhU291cmNlKTtcblxuICAgICAgICAgICAgICAgIC8vIFNldCB1cCBzdWJzY3JpcHRpb25zXG4gICAgICAgICAgICAgICAgdGhpcy5zZXR1cERhdGFTb3VyY2VTdWJzY3JpcHRpb24oKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgb3ZlcnJpZGUgbmdPbkluaXQoKSB7XG4gICAgICAgIHN1cGVyLm5nT25Jbml0KCk7XG4gICAgICAgIC8vIERhdGEgbG9hZGluZyBpcyBub3cgaGFuZGxlZCBieSB0aGUgZWZmZWN0IHdhdGNoaW5nIGRhdGFTb3VyY2UgY2hhbmdlc1xuICAgIH1cblxuXG5cbiAgICBwcml2YXRlIHNldHVwRGF0YVNvdXJjZVN1YnNjcmlwdGlvbigpIHtcbiAgICAgICAgaWYgKCF0aGlzLmRhdGFTb3VyY2UoKSB8fCAhdGhpcy5saXN0RGF0YVNvdXJjZSkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnNvbGUubG9nKCdTZXR0aW5nIHVwIGRhdGEgc291cmNlIHN1YnNjcmlwdGlvbiBmb3I6JywgdGhpcy5kYXRhU291cmNlKCkpO1xuXG4gICAgICAgIC8vIFN1YnNjcmliZSB0byBkYXRhIHNvdXJjZSBjaGFuZ2VzXG4gICAgICAgIHRoaXMuZGF0YVNvdXJjZSgpLm9uQ2hhbmdlZC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdEYXRhIHNvdXJjZSBjaGFuZ2VkOicsIGRhdGEpO1xuICAgICAgICAgICAgaWYgKGRhdGEgJiYgZGF0YS5jYWNoZWRJdGVtcykge1xuICAgICAgICAgICAgICAgIHRoaXMudG90YWxJdGVtcy5zZXQoZGF0YS50b3RhbENvdW50IHx8IGRhdGEuY2FjaGVkSXRlbXMubGVuZ3RoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5kYXRhU291cmNlKCkub25Mb2FkaW5nQ2hhbmdlZC5zdWJzY3JpYmUoKGxvYWRpbmcpID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdMb2FkaW5nIGNoYW5nZWQ6JywgbG9hZGluZyk7XG4gICAgICAgICAgICB0aGlzLmxvYWRpbmcuc2V0KGxvYWRpbmcpO1xuICAgICAgICB9KTtcblxuICAgICAgICAvLyBMb2FkIGluaXRpYWwgZGF0YSAtIGp1c3QgdHJpZ2dlciB0aGUgZmlyc3QgcGFnZSBsb2FkXG4gICAgICAgIC8vIFRoZSBBWExpc3REYXRhU291cmNlIHdpbGwgaGFuZGxlIHN1YnNlcXVlbnQgcGFnZXMgYXV0b21hdGljYWxseVxuICAgICAgICB0aGlzLmRhdGFTb3VyY2UoKS5zZXRQYWdlKDApO1xuICAgIH1cblxuXG5cbiAgICAvLyBTZWxlY3Rpb24gbWFuYWdlbWVudFxuICAgIHByb3RlY3RlZCBzZWxlY3RJdGVtKGl0ZW06IEFYRGF0YUxpc3RJdGVtLCBldmVudD86IEV2ZW50KSB7XG4gICAgICAgIGlmIChldmVudCAmJiB0eXBlb2YgZXZlbnQuc3RvcFByb3BhZ2F0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmlzSXRlbURpc2FibGVkKGl0ZW0pKSByZXR1cm47XG5cbiAgICAgICAgaWYgKHRoaXMuaXNNdWx0aXBsZVNlbGVjdGlvbigpKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZU11bHRpcGxlU2VsZWN0aW9uKGl0ZW0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5zZXRTaW5nbGVTZWxlY3Rpb24oaXRlbSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdG9nZ2xlTXVsdGlwbGVTZWxlY3Rpb24oaXRlbTogQVhEYXRhTGlzdEl0ZW0pIHtcbiAgICAgICAgY29uc3QgY3VycmVudEtleXMgPSB0aGlzLnNlbGVjdGVkS2V5cygpO1xuICAgICAgICBjb25zdCBpdGVtS2V5ID0gdGhpcy5nZXRJdGVtS2V5KGl0ZW0pO1xuXG4gICAgICAgIGlmIChjdXJyZW50S2V5cy5pbmNsdWRlcyhpdGVtS2V5KSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZEtleXMuc2V0KGN1cnJlbnRLZXlzLmZpbHRlcihrZXkgPT4ga2V5ICE9PSBpdGVtS2V5KSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkS2V5cy5zZXQoWy4uLmN1cnJlbnRLZXlzLCBpdGVtS2V5XSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkSXRlbXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0U2luZ2xlU2VsZWN0aW9uKGl0ZW06IEFYRGF0YUxpc3RJdGVtKSB7XG4gICAgICAgIGNvbnN0IGl0ZW1LZXkgPSB0aGlzLmdldEl0ZW1LZXkoaXRlbSk7XG4gICAgICAgIHRoaXMuc2VsZWN0ZWRLZXlzLnNldChbaXRlbUtleV0pO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkSXRlbXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZGVzZWxlY3RJdGVtKGl0ZW06IEFYRGF0YUxpc3RJdGVtKSB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRLZXlzID0gdGhpcy5zZWxlY3RlZEtleXMoKTtcbiAgICAgICAgY29uc3QgaXRlbUtleSA9IHRoaXMuZ2V0SXRlbUtleShpdGVtKTtcbiAgICAgICAgY29uc3QgbmV3S2V5cyA9IGN1cnJlbnRLZXlzLmZpbHRlcihrZXkgPT4ga2V5ICE9PSBpdGVtS2V5KTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZEtleXMuc2V0KG5ld0tleXMpO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGVkSXRlbXMoKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgdXBkYXRlU2VsZWN0ZWRJdGVtcygpIHtcbiAgICAgICAgY29uc3Qga2V5cyA9IHRoaXMuc2VsZWN0ZWRLZXlzKCk7XG4gICAgICAgIGNvbnN0IGRhdGFTb3VyY2UgPSB0aGlzLmxpc3REYXRhU291cmNlPy5zb3VyY2U7XG4gICAgICAgIGlmICghZGF0YVNvdXJjZSkgcmV0dXJuO1xuXG4gICAgICAgIGNvbnN0IHNlbGVjdGVkID0gZGF0YVNvdXJjZS5jYWNoZWRJdGVtcy5maWx0ZXIoaXRlbSA9PiBrZXlzLmluY2x1ZGVzKHRoaXMuZ2V0SXRlbUtleShpdGVtKSkpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkSXRlbXMuc2V0KHNlbGVjdGVkKTtcblxuICAgICAgICAvLyBVcGRhdGUgc2VsZWN0aW9uIG1vZGVsXG4gICAgICAgIGlmICh0aGlzLmlzTXVsdGlwbGVTZWxlY3Rpb24oKSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3Rpb25Nb2RlbC5zZXQoa2V5cyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGlvbk1vZGVsLnNldChrZXlzWzBdIHx8ICcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBpc0l0ZW1TZWxlY3RlZChpdGVtOiBBWERhdGFMaXN0SXRlbSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zZWxlY3RlZEtleXMoKS5pbmNsdWRlcyh0aGlzLmdldEl0ZW1LZXkoaXRlbSkpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBpc0l0ZW1EaXNhYmxlZChpdGVtOiBBWERhdGFMaXN0SXRlbSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBkaXNhYmxlZEZpZWxkID0gdGhpcy5kaXNhYmxlZEZpZWxkKCk7XG4gICAgICAgIGlmICghZGlzYWJsZWRGaWVsZCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgICAgIGNvbnN0IGRpc2FibGVkID0gaXRlbVtkaXNhYmxlZEZpZWxkXTtcbiAgICAgICAgcmV0dXJuIEJvb2xlYW4oZGlzYWJsZWQpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRJdGVtS2V5KGl0ZW06IEFYRGF0YUxpc3RJdGVtKTogc3RyaW5nIHtcbiAgICAgICAgaWYgKGl0ZW0uaWQgIT09IHVuZGVmaW5lZCAmJiBpdGVtLmlkICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nKGl0ZW0uaWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gRmFsbGJhY2sgdG8gb3RoZXIgcG90ZW50aWFsIGtleSBmaWVsZHNcbiAgICAgICAgaWYgKGl0ZW1bJ2tleSddICE9PSB1bmRlZmluZWQgJiYgaXRlbVsna2V5J10gIT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybiBTdHJpbmcoaXRlbVsna2V5J10pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKGl0ZW1bJ3ZhbHVlJ10gIT09IHVuZGVmaW5lZCAmJiBpdGVtWyd2YWx1ZSddICE9PSBudWxsKSB7XG4gICAgICAgICAgICByZXR1cm4gU3RyaW5nKGl0ZW1bJ3ZhbHVlJ10pO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gTGFzdCByZXNvcnQ6IHVzZSB0aGUgaXRlbSBpdHNlbGYgYXMgYSBzdHJpbmdcbiAgICAgICAgcmV0dXJuIFN0cmluZyhpdGVtKTtcbiAgICB9XG5cbiAgICAvLyBUcmVlIGdyb3VwaW5nXG4gICAgcHJvdGVjdGVkIHRvZ2dsZUV4cGFuZGVkKGl0ZW06IEFYRGF0YUxpc3RJdGVtLCBldmVudDogRXZlbnQpIHtcbiAgICAgICAgaWYgKGV2ZW50ICYmIHR5cGVvZiBldmVudC5zdG9wUHJvcGFnYXRpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCF0aGlzLmhhc0NoaWxkcmVuKGl0ZW0pKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgY3VycmVudEV4cGFuZGVkID0gdGhpcy5leHBhbmRlZEl0ZW1zKCk7XG4gICAgICAgIGNvbnN0IGl0ZW1LZXkgPSB0aGlzLmdldEl0ZW1LZXkoaXRlbSk7XG5cbiAgICAgICAgaWYgKGN1cnJlbnRFeHBhbmRlZC5oYXMoaXRlbUtleSkpIHtcbiAgICAgICAgICAgIGN1cnJlbnRFeHBhbmRlZC5kZWxldGUoaXRlbUtleSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjdXJyZW50RXhwYW5kZWQuYWRkKGl0ZW1LZXkpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5leHBhbmRlZEl0ZW1zLnNldChuZXcgU2V0KGN1cnJlbnRFeHBhbmRlZCkpO1xuICAgICAgICB0aGlzLmV4cGFuZENoYW5nZS5lbWl0KHsgaXRlbSwgZXhwYW5kZWQ6IGN1cnJlbnRFeHBhbmRlZC5oYXMoaXRlbUtleSkgfSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGhhc0NoaWxkcmVuKGl0ZW06IEFYRGF0YUxpc3RJdGVtKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuRmllbGQgPSB0aGlzLmNoaWxkcmVuRmllbGQoKTtcbiAgICAgICAgaWYgKCFjaGlsZHJlbkZpZWxkKSByZXR1cm4gZmFsc2U7XG5cbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBpdGVtW2NoaWxkcmVuRmllbGRdO1xuICAgICAgICByZXR1cm4gQXJyYXkuaXNBcnJheShjaGlsZHJlbikgJiYgY2hpbGRyZW4ubGVuZ3RoID4gMDtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgaXNFeHBhbmRlZChpdGVtOiBBWERhdGFMaXN0SXRlbSk6IGJvb2xlYW4ge1xuICAgICAgICBjb25zdCBleHBhbmRlZEZpZWxkID0gdGhpcy5leHBhbmRlZEZpZWxkKCk7XG4gICAgICAgIGlmIChleHBhbmRlZEZpZWxkKSB7XG4gICAgICAgICAgICBjb25zdCBleHBhbmRlZCA9IGl0ZW1bZXhwYW5kZWRGaWVsZF07XG4gICAgICAgICAgICBpZiAoZXhwYW5kZWQgIT09IHVuZGVmaW5lZCAmJiBleHBhbmRlZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBCb29sZWFuKGV4cGFuZGVkKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0aGlzLmV4cGFuZGVkSXRlbXMoKS5oYXModGhpcy5nZXRJdGVtS2V5KGl0ZW0pKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgZ2V0SXRlbUxldmVsKGl0ZW06IEFYRGF0YUxpc3RJdGVtKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgbGV2ZWxGaWVsZCA9IHRoaXMubGV2ZWxGaWVsZCgpO1xuICAgICAgICBpZiAoIWxldmVsRmllbGQpIHJldHVybiAwO1xuXG4gICAgICAgIGNvbnN0IGxldmVsID0gaXRlbVtsZXZlbEZpZWxkXTtcbiAgICAgICAgcmV0dXJuIGxldmVsICE9PSB1bmRlZmluZWQgJiYgbGV2ZWwgIT09IG51bGwgPyBOdW1iZXIobGV2ZWwpIDogMDtcbiAgICB9XG5cbiAgICAvLyBLZXlib2FyZCBuYXZpZ2F0aW9uXG4gICAgcHJvdGVjdGVkIG9uS2V5RG93bihldmVudDogS2V5Ym9hcmRFdmVudCwgaXRlbTogQVhEYXRhTGlzdEl0ZW0sIGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgc3dpdGNoIChldmVudC5rZXkpIHtcbiAgICAgICAgICAgIGNhc2UgJ0Fycm93RG93bic6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzTmV4dEl0ZW0oaW5kZXgpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnQXJyb3dVcCc6XG4gICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzUHJldmlvdXNJdGVtKGluZGV4KTtcbiAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgJ0VudGVyJzpcbiAgICAgICAgICAgIGNhc2UgJyAnOlxuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5zZWxlY3RJdGVtKGl0ZW0pO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSAnRXNjYXBlJzpcbiAgICAgICAgICAgICAgICB0aGlzLmZvY3VzZWRJbmRleC5zZXQoLTEpO1xuICAgICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGZvY3VzTmV4dEl0ZW0oY3VycmVudEluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgZGF0YVNvdXJjZSA9IHRoaXMubGlzdERhdGFTb3VyY2U/LnNvdXJjZTtcbiAgICAgICAgaWYgKCFkYXRhU291cmNlIHx8IGRhdGFTb3VyY2UuY2FjaGVkSXRlbXMubGVuZ3RoID09PSAwKSByZXR1cm47XG5cbiAgICAgICAgY29uc3QgbmV4dEluZGV4ID0gTWF0aC5taW4oY3VycmVudEluZGV4ICsgMSwgZGF0YVNvdXJjZS5jYWNoZWRJdGVtcy5sZW5ndGggLSAxKTtcbiAgICAgICAgdGhpcy5mb2N1c2VkSW5kZXguc2V0KG5leHRJbmRleCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9JbmRleChuZXh0SW5kZXgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBmb2N1c1ByZXZpb3VzSXRlbShjdXJyZW50SW5kZXg6IG51bWJlcikge1xuICAgICAgICBjb25zdCBkYXRhU291cmNlID0gdGhpcy5saXN0RGF0YVNvdXJjZT8uc291cmNlO1xuICAgICAgICBpZiAoIWRhdGFTb3VyY2UgfHwgZGF0YVNvdXJjZS5jYWNoZWRJdGVtcy5sZW5ndGggPT09IDApIHJldHVybjtcblxuICAgICAgICBjb25zdCBwcmV2SW5kZXggPSBNYXRoLm1heChjdXJyZW50SW5kZXggLSAxLCAwKTtcbiAgICAgICAgdGhpcy5mb2N1c2VkSW5kZXguc2V0KHByZXZJbmRleCk7XG4gICAgICAgIHRoaXMuc2Nyb2xsVG9JbmRleChwcmV2SW5kZXgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzY3JvbGxUb0luZGV4KGluZGV4OiBudW1iZXIpIHtcbiAgICAgICAgaWYgKHRoaXMudmlld3BvcnQgJiYgdHlwZW9mIGluZGV4ID09PSAnbnVtYmVyJyAmJiBpbmRleCA+PSAwKSB7XG4gICAgICAgICAgICB0aGlzLnZpZXdwb3J0LnNjcm9sbFRvSW5kZXgoaW5kZXgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLy8gSXRlbSBpbnRlcmFjdGlvblxuICAgIHByb3RlY3RlZCBvbkl0ZW1DbGljayhpdGVtOiBBWERhdGFMaXN0SXRlbSwgZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICh0aGlzLmlzSXRlbURpc2FibGVkKGl0ZW0pKSByZXR1cm47XG5cbiAgICAgICAgdGhpcy5pdGVtQ2xpY2suZW1pdChpdGVtKTtcbiAgICAgICAgdGhpcy5zZWxlY3RJdGVtKGl0ZW0sIGV2ZW50KTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgb25DaGVja2JveENoYW5nZShpdGVtOiBBWERhdGFMaXN0SXRlbSwgY2hlY2tlZDogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy5pc0l0ZW1EaXNhYmxlZChpdGVtKSkgcmV0dXJuO1xuXG4gICAgICAgIGlmIChjaGVja2VkKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdEl0ZW0oaXRlbSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmRlc2VsZWN0SXRlbShpdGVtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkNoZWNrYm94Q2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgICAgIGlmICh0eXBlb2YgZXZlbnQuc3RvcFByb3BhZ2F0aW9uID09PSAnZnVuY3Rpb24nKSB7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByb3RlY3RlZCBvbkl0ZW1Eb3VibGVDbGljayhpdGVtOiBBWERhdGFMaXN0SXRlbSkge1xuICAgICAgICBpZiAodGhpcy5pc0l0ZW1EaXNhYmxlZChpdGVtKSkgcmV0dXJuO1xuXG4gICAgICAgIHRoaXMuaXRlbURvdWJsZUNsaWNrLmVtaXQoaXRlbSk7XG4gICAgfVxuXG4gICAgLy8gVXRpbGl0eSBtZXRob2RzXG4gICAgcHJvdGVjdGVkIGdldEl0ZW1UZXh0KGl0ZW06IEFYRGF0YUxpc3RJdGVtKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdGV4dEZpZWxkID0gdGhpcy50ZXh0RmllbGQoKTtcbiAgICAgICAgaWYgKHRleHRGaWVsZCkge1xuICAgICAgICAgICAgY29uc3QgdGV4dCA9IGl0ZW1bdGV4dEZpZWxkXTtcbiAgICAgICAgICAgIGlmICh0ZXh0ICE9PSB1bmRlZmluZWQgJiYgdGV4dCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodGV4dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXRlbS50ZXh0IHx8ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBnZXRJdGVtRGVzY3JpcHRpb24oaXRlbTogQVhEYXRhTGlzdEl0ZW0pOiBzdHJpbmcge1xuICAgICAgICBjb25zdCBkZXNjcmlwdGlvbkZpZWxkID0gdGhpcy5kZXNjcmlwdGlvbkZpZWxkKCk7XG4gICAgICAgIGlmIChkZXNjcmlwdGlvbkZpZWxkKSB7XG4gICAgICAgICAgICBjb25zdCBkZXNjcmlwdGlvbiA9IGl0ZW1bZGVzY3JpcHRpb25GaWVsZF07XG4gICAgICAgICAgICBpZiAoZGVzY3JpcHRpb24gIT09IHVuZGVmaW5lZCAmJiBkZXNjcmlwdGlvbiAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcoZGVzY3JpcHRpb24pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGl0ZW0uZGVzY3JpcHRpb24gfHwgJyc7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIGdldEl0ZW1Ub29sdGlwKGl0ZW06IEFYRGF0YUxpc3RJdGVtKTogc3RyaW5nIHtcbiAgICAgICAgY29uc3QgdG9vbHRpcEZpZWxkID0gdGhpcy50b29sdGlwRmllbGQoKTtcbiAgICAgICAgaWYgKHRvb2x0aXBGaWVsZCkge1xuICAgICAgICAgICAgY29uc3QgdG9vbHRpcCA9IGl0ZW1bdG9vbHRpcEZpZWxkXTtcbiAgICAgICAgICAgIGlmICh0b29sdGlwICE9PSB1bmRlZmluZWQgJiYgdG9vbHRpcCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBTdHJpbmcodG9vbHRpcCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gaXRlbS50b29sdGlwIHx8ICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzaG91bGRTaG93VG9vbHRpcChpdGVtOiBBWERhdGFMaXN0SXRlbSk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5zaG93SXRlbVRvb2x0aXAoKSAmJiAhIXRoaXMuZ2V0SXRlbVRvb2x0aXAoaXRlbSk7XG4gICAgfVxuXG4gICAgLy8gVHJhY2sgYnkgZnVuY3Rpb24gZm9yIHZpcnR1YWwgc2Nyb2xsaW5nXG4gICAgcHJvdGVjdGVkIHRyYWNrQnlGbiA9IChpbmRleDogbnVtYmVyLCBpdGVtOiBBWERhdGFMaXN0SXRlbSk6IHN0cmluZyA9PiB7XG4gICAgICAgIGlmICghaXRlbSkge1xuICAgICAgICAgICAgcmV0dXJuIGBsb2FkaW5nLSR7aW5kZXh9YDtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5nZXRJdGVtS2V5KGl0ZW0pO1xuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1kYXRhLWxpc3RcIiBbY2xhc3MuYXgtZGF0YS1saXN0LS1sb2FkaW5nXT1cImxvYWRpbmcoKVwiPlxuICA8IS0tIExvYWRpbmcgU3RhdGUgLS0+XG4gIEBpZiAobG9hZGluZygpKSB7XG4gICAgPGRpdiBjbGFzcz1cImF4LWRhdGEtbGlzdF9fbG9hZGluZ1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxvYWRpbmdUZW1wbGF0ZSgpIHx8IGRlZmF1bHRMb2FkaW5nVGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDwhLS0gRW1wdHkgU3RhdGUgLS0+XG4gIEBpZiAoaXNFbXB0eSgpKSB7XG4gICAgPGRpdiBjbGFzcz1cImF4LWRhdGEtbGlzdF9fZW1wdHlcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXB0eVRlbXBsYXRlKCkgfHwgZGVmYXVsdEVtcHR5VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L2Rpdj5cbiAgfVxuXG4gIDwhLS0gTGlzdCBDb250ZW50IC0tPlxuICBAaWYgKGhhc0l0ZW1zKCkgJiYgbGlzdERhdGFTb3VyY2UgIT09IG51bGwpIHtcbiAgICA8ZGl2IGNsYXNzPVwiYXgtZGF0YS1saXN0X19jb250ZW50XCI+XG4gICAgICA8Y2RrLXZpcnR1YWwtc2Nyb2xsLXZpZXdwb3J0XG4gICAgICAgIFtpdGVtU2l6ZV09XCJpdGVtSGVpZ2h0KClcIlxuICAgICAgICBjbGFzcz1cImF4LWRhdGEtbGlzdF9fdmlld3BvcnRcIlxuICAgICAgICBbY2xhc3MuYXgtZGF0YS1saXN0X192aWV3cG9ydC0tdHJ1bmNhdGVkXT1cImlzSXRlbVRydW5jYXRlZCgpXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqY2RrVmlydHVhbEZvcj1cImxldCBpdGVtIG9mIGxpc3REYXRhU291cmNlOyBsZXQgaSA9IGluZGV4OyB0cmFja0J5OiB0cmFja0J5Rm5cIj5cbiAgICAgICAgICBAaWYgKGl0ZW0pIHtcbiAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgY2xhc3M9XCJheC1kYXRhLWxpc3RfX2l0ZW1cIlxuICAgICAgICAgICAgICBbY2xhc3MuYXgtZGF0YS1saXN0X19pdGVtLS1zZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiXG4gICAgICAgICAgICAgIFtjbGFzcy5heC1kYXRhLWxpc3RfX2l0ZW0tLWRpc2FibGVkXT1cImlzSXRlbURpc2FibGVkKGl0ZW0pXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmF4LWRhdGEtbGlzdF9faXRlbS0tZm9jdXNlZF09XCJmb2N1c2VkSW5kZXgoKSA9PT0gaVwiXG4gICAgICAgICAgICAgIFtjbGFzc109XCInYXgtZGF0YS1saXN0X19pdGVtLS1sZXZlbC0nICsgZ2V0SXRlbUxldmVsKGl0ZW0pXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJpdGVtSGVpZ2h0KClcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwib25JdGVtQ2xpY2soaXRlbSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChkYmxjbGljayk9XCJvbkl0ZW1Eb3VibGVDbGljayhpdGVtKVwiXG4gICAgICAgICAgICAgIChrZXlkb3duKT1cIm9uS2V5RG93bigkZXZlbnQsIGl0ZW0sIGkpXCJcbiAgICAgICAgICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgICAgICAgICAgcm9sZT1cImxpc3RpdGVtXCJcbiAgICAgICAgICAgICAgW2F0dHIuYXJpYS1zZWxlY3RlZF09XCJpc0l0ZW1TZWxlY3RlZChpdGVtKVwiXG4gICAgICAgICAgICAgIFthdHRyLmFyaWEtZGlzYWJsZWRdPVwiaXNJdGVtRGlzYWJsZWQoaXRlbSlcIlxuICAgICAgICAgICAgICBbYXR0ci5hcmlhLWxldmVsXT1cImdldEl0ZW1MZXZlbChpdGVtKSArIDFcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgICA8IS0tIENoZWNrYm94IC0tPlxuICAgICAgICAgICAgICBAaWYgKHNob3dDaGVja2JveGVzKCkpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZGF0YS1saXN0X19jaGVja2JveFwiIChjbGljayk9XCJvbkNoZWNrYm94Q2xpY2soJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgICAgPGF4LWNoZWNrLWJveFxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiaXNJdGVtU2VsZWN0ZWQoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNJdGVtRGlzYWJsZWQoaXRlbSlcIlxuICAgICAgICAgICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25DaGVja2JveENoYW5nZShpdGVtLCAkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDwvYXgtY2hlY2stYm94PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgPCEtLSBFeHBhbmQvQ29sbGFwc2UgQnV0dG9uIGZvciBUcmVlIEl0ZW1zIC0tPlxuICAgICAgICAgICAgICBAaWYgKGhhc0NoaWxkcmVuKGl0ZW0pKSB7XG4gICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1kYXRhLWxpc3RfX2V4cGFuZC1idXR0b25cIlxuICAgICAgICAgICAgICAgICAgW2NsYXNzLmF4LWRhdGEtbGlzdF9fZXhwYW5kLWJ1dHRvbi0tZXhwYW5kZWRdPVwiaXNFeHBhbmRlZChpdGVtKVwiXG4gICAgICAgICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlRXhwYW5kZWQoaXRlbSwgJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICByb2xlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgICAgIHRhYmluZGV4PVwiMFwiXG4gICAgICAgICAgICAgICAgICBbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzRXhwYW5kZWQoaXRlbSlcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgIDxzdmcgY2xhc3M9XCJheC1kYXRhLWxpc3RfX2V4cGFuZC1pY29uXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk03IDEwbDUgNSA1LTV6XCIgLz5cbiAgICAgICAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgPCEtLSBJdGVtIENvbnRlbnQgLS0+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1kYXRhLWxpc3RfX2NvbnRlbnQtd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgIDwhLS0gQ3VzdG9tIEl0ZW0gVGVtcGxhdGUgLS0+XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtVGVtcGxhdGUoKSkge1xuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgICAgICAgICAqbmdUZW1wbGF0ZU91dGxldD1cIlxuICAgICAgICAgICAgICAgICAgICAgIGl0ZW1UZW1wbGF0ZSgpO1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnRleHQ6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICRpbXBsaWNpdDogaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgICAgIGluZGV4OiBpLFxuICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGlzSXRlbVNlbGVjdGVkKGl0ZW0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgZGlzYWJsZWQ6IGlzSXRlbURpc2FibGVkKGl0ZW0pLFxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICAgID48L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkZWZhdWx0SXRlbVRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgPCEtLSBEZWZhdWx0IEl0ZW0gVGVtcGxhdGUgLS0+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0SXRlbVRlbXBsYXRlPlxuICAgICAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImF4LWRhdGEtbGlzdF9fdGV4dFwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzcy5heC1kYXRhLWxpc3RfX3RleHQtLXRydW5jYXRlZF09XCJpc0l0ZW1UcnVuY2F0ZWQoKVwiXG4gICAgICAgICAgICAgICAgICAgIFtheFRvb2x0aXBdPVwic2hvdWxkU2hvd1Rvb2x0aXAoaXRlbSkgPyBnZXRJdGVtVG9vbHRpcChpdGVtKSA6IG51bGxcIlxuICAgICAgICAgICAgICAgICAgICBbYXhUb29sdGlwRGlzYWJsZWRdPVwiIXNob3VsZFNob3dUb29sdGlwKGl0ZW0pXCJcbiAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAge3sgZ2V0SXRlbVRleHQoaXRlbSkgfX1cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgICAgICAgICBAaWYgKGdldEl0ZW1EZXNjcmlwdGlvbihpdGVtKSkge1xuICAgICAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJheC1kYXRhLWxpc3RfX2Rlc2NyaXB0aW9uXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MuYXgtZGF0YS1saXN0X19kZXNjcmlwdGlvbi0tdHJ1bmNhdGVkXT1cImlzSXRlbVRydW5jYXRlZCgpXCJcbiAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgIHt7IGdldEl0ZW1EZXNjcmlwdGlvbihpdGVtKSB9fVxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH0gQGVsc2Uge1xuICAgICAgICAgICAgPCEtLSBMb2FkaW5nIHNrZWxldG9uIGZvciBudWxsIGl0ZW1zIC0tPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWRhdGEtbGlzdF9faXRlbSBheC1kYXRhLWxpc3RfX2l0ZW0tLWxvYWRpbmdcIiBbc3R5bGUuaGVpZ2h0LnB4XT1cIml0ZW1IZWlnaHQoKVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZGF0YS1saXN0X19sb2FkaW5nLXNrZWxldG9uXCI+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWRhdGEtbGlzdF9fc2tlbGV0b24tY2hlY2tib3hcIj48L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZGF0YS1saXN0X19za2VsZXRvbi1jb250ZW50XCI+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZGF0YS1saXN0X19za2VsZXRvbi10ZXh0XCI+PC9kaXY+XG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtZGF0YS1saXN0X19za2VsZXRvbi1kZXNjcmlwdGlvblwiPjwvZGl2PlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIH1cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L2Nkay12aXJ0dWFsLXNjcm9sbC12aWV3cG9ydD5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG5cbjwhLS0gRGVmYXVsdCBMb2FkaW5nIFRlbXBsYXRlIC0tPlxuPG5nLXRlbXBsYXRlICNkZWZhdWx0TG9hZGluZ1RlbXBsYXRlPlxuICA8ZGl2IGNsYXNzPVwiYXgtZGF0YS1saXN0X19sb2FkaW5nLWRlZmF1bHRcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZGF0YS1saXN0X19sb2FkaW5nLXNwaW5uZXJcIj48L2Rpdj5cbiAgICA8c3Bhbj5Mb2FkaW5nLi4uPC9zcGFuPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjwhLS0gRGVmYXVsdCBFbXB0eSBUZW1wbGF0ZSAtLT5cbjxuZy10ZW1wbGF0ZSAjZGVmYXVsdEVtcHR5VGVtcGxhdGU+XG4gIDxkaXYgY2xhc3M9XCJheC1kYXRhLWxpc3RfX2VtcHR5LWRlZmF1bHRcIj5cbiAgICA8c3ZnIGNsYXNzPVwiYXgtZGF0YS1saXN0X19lbXB0eS1pY29uXCIgdmlld0JveD1cIjAgMCAyNCAyNFwiIGZpbGw9XCJjdXJyZW50Q29sb3JcIj5cbiAgICAgIDxwYXRoXG4gICAgICAgIGQ9XCJNMTkgM0g1Yy0xLjEgMC0yIC45LTIgMnYxNGMwIDEuMS45IDIgMiAyaDE0YzEuMSAwIDItLjkgMi0yVjVjMC0xLjEtLjktMi0yLTJ6bS01IDE0SDd2LTJoN3Yyem0zLTRIN3YtMmgxMHYyem0wLTRIN1Y3aDEwdjJ6XCJcbiAgICAgIC8+XG4gICAgPC9zdmc+XG4gICAgPHNwYW4+Tm8gaXRlbXMgdG8gZGlzcGxheTwvc3Bhbj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19","// Secondary entry point for @acorex/components/data-list\nexport * from './lib/data-list.component';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb21wb25lbnRzL2RhdGEtbGlzdC9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEseURBQXlEO0FBRXpELGNBQWMsMkJBQTJCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBTZWNvbmRhcnkgZW50cnkgcG9pbnQgZm9yIEBhY29yZXgvY29tcG9uZW50cy9kYXRhLWxpc3RcblxuZXhwb3J0ICogZnJvbSAnLi9saWIvZGF0YS1saXN0LmNvbXBvbmVudCc7XG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNvcmV4LWNvbXBvbmVudHMtZGF0YS1saXN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29tcG9uZW50cy9kYXRhLWxpc3Qvc3JjL2Fjb3JleC1jb21wb25lbnRzLWRhdGEtbGlzdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":[],"mappings":"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"}
|
@@ -26,10 +26,10 @@ class AXDataPagerChangedEvent extends AXEvent {
|
|
26
26
|
}
|
27
27
|
}
|
28
28
|
class AXDataPagerParentComponent {
|
29
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
30
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.
|
29
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerParentComponent, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
30
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerParentComponent }); }
|
31
31
|
}
|
32
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerParentComponent, decorators: [{
|
33
33
|
type: Injectable
|
34
34
|
}] });
|
35
35
|
class AXDataPagerChild extends MXInteractiveComponent {
|
@@ -55,10 +55,10 @@ class AXDataPagerChild extends MXInteractiveComponent {
|
|
55
55
|
async ngAfterViewInit() {
|
56
56
|
await this.applyParent();
|
57
57
|
}
|
58
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
59
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.
|
58
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerChild, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
59
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerChild }); }
|
60
60
|
}
|
61
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerChild, decorators: [{
|
62
62
|
type: Injectable
|
63
63
|
}], ctorParameters: () => [] });
|
64
64
|
|
@@ -87,14 +87,14 @@ class AXDataPagerInfoComponent extends AXDataPagerChild {
|
|
87
87
|
this.cdr.markForCheck();
|
88
88
|
}
|
89
89
|
}
|
90
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
91
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.
|
90
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerInfoComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
91
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.8", type: AXDataPagerInfoComponent, isStandalone: true, selector: "ax-data-pager-info", inputs: { text: "text" }, providers: [
|
92
92
|
{ provide: AXDataPagerChild, useExisting: AXDataPagerInfoComponent },
|
93
93
|
AXUnsubscriber,
|
94
94
|
{ provide: AXComponent, useExisting: AXDataPagerInfoComponent },
|
95
95
|
], usesInheritance: true, ngImport: i0, template: `<ax-text> {{ _textFormatted | translate | async }}</ax-text>`, isInline: true, dependencies: [{ kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "pipe", type: AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
96
96
|
}
|
97
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
97
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerInfoComponent, decorators: [{
|
98
98
|
type: Component,
|
99
99
|
args: [{
|
100
100
|
selector: 'ax-data-pager-info',
|
@@ -146,8 +146,8 @@ class AXDataPagerInputSelectorComponent extends AXDataPagerChild {
|
|
146
146
|
this._parent.goToPage(e.value);
|
147
147
|
}
|
148
148
|
}
|
149
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
150
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.
|
149
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerInputSelectorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
150
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.8", type: AXDataPagerInputSelectorComponent, isStandalone: true, selector: "ax-data-pager-input-selector", providers: [
|
151
151
|
{
|
152
152
|
provide: AXDataPagerChild,
|
153
153
|
useExisting: AXDataPagerInputSelectorComponent,
|
@@ -168,7 +168,7 @@ class AXDataPagerInputSelectorComponent extends AXDataPagerChild {
|
|
168
168
|
</ax-number-box>
|
169
169
|
`, isInline: true, dependencies: [{ kind: "component", type: AXNumberBoxComponent, selector: "ax-number-box", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "look", "type", "changeOnScroll", "allDigits", "thousandsSeparator", "padDecimalZeros", "step", "decimals", "decimalStep", "showSpinButtons", "minValue", "maxValue", "class"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "readonlyChange", "disabledChange", "onKeyDown", "onKeyUp", "onKeyPress"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
170
170
|
}
|
171
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
171
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerInputSelectorComponent, decorators: [{
|
172
172
|
type: Component,
|
173
173
|
args: [{
|
174
174
|
selector: 'ax-data-pager-input-selector',
|
@@ -234,8 +234,8 @@ class AXDataPagerNextButtonsComponent extends AXDataPagerChild {
|
|
234
234
|
return;
|
235
235
|
this._parent.goNextPage();
|
236
236
|
}
|
237
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
238
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.
|
237
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerNextButtonsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
238
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.8", type: AXDataPagerNextButtonsComponent, isStandalone: true, selector: "ax-data-pager-next-buttons", providers: [
|
239
239
|
{ provide: AXDataPagerChild, useExisting: AXDataPagerNextButtonsComponent },
|
240
240
|
AXUnsubscriber,
|
241
241
|
{ provide: AXComponent, useExisting: AXDataPagerNextButtonsComponent },
|
@@ -269,7 +269,7 @@ class AXDataPagerNextButtonsComponent extends AXDataPagerChild {
|
|
269
269
|
</ax-button>
|
270
270
|
`, isInline: true, dependencies: [{ kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
271
271
|
}
|
272
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
272
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerNextButtonsComponent, decorators: [{
|
273
273
|
type: Component,
|
274
274
|
args: [{
|
275
275
|
selector: 'ax-data-pager-next-buttons',
|
@@ -378,8 +378,8 @@ class AXDataPagerNumericSelectorComponent extends AXDataPagerChild {
|
|
378
378
|
return;
|
379
379
|
this._parent.goToPage(Number(e.data));
|
380
380
|
}
|
381
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
382
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.
|
381
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerNumericSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
382
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.8", type: AXDataPagerNumericSelectorComponent, isStandalone: true, selector: "ax-data-pager-numeric-selector", providers: [
|
383
383
|
{
|
384
384
|
provide: AXDataPagerChild,
|
385
385
|
useExisting: AXDataPagerNumericSelectorComponent,
|
@@ -433,7 +433,7 @@ class AXDataPagerNumericSelectorComponent extends AXDataPagerChild {
|
|
433
433
|
</ax-button>
|
434
434
|
`, isInline: true, dependencies: [{ kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
435
435
|
}
|
436
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
436
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerNumericSelectorComponent, decorators: [{
|
437
437
|
type: Component,
|
438
438
|
args: [{
|
439
439
|
selector: 'ax-data-pager-numeric-selector',
|
@@ -548,8 +548,8 @@ class AXDataPagerPageSizesComponent extends AXDataPagerChild {
|
|
548
548
|
return;
|
549
549
|
this._size = this._parent.size = Number(e.data.size);
|
550
550
|
}
|
551
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
552
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.
|
551
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerPageSizesComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
552
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.8", type: AXDataPagerPageSizesComponent, isStandalone: true, selector: "ax-data-pager-page-sizes", inputs: { sizes: "sizes" }, providers: [
|
553
553
|
{ provide: AXDataPagerChild, useExisting: AXDataPagerPageSizesComponent },
|
554
554
|
AXUnsubscriber,
|
555
555
|
{ provide: AXComponent, useExisting: AXDataPagerPageSizesComponent },
|
@@ -570,7 +570,7 @@ class AXDataPagerPageSizesComponent extends AXDataPagerChild {
|
|
570
570
|
<!-- <span >items per page</span> -->
|
571
571
|
`, isInline: true, dependencies: [{ kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "placement", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: AXButtonItemListComponent, selector: "ax-button-item-list", inputs: ["items"], outputs: ["onItemClick"] }, { kind: "component", type: AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
572
572
|
}
|
573
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
573
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerPageSizesComponent, decorators: [{
|
574
574
|
type: Component,
|
575
575
|
args: [{
|
576
576
|
selector: 'ax-data-pager-page-sizes',
|
@@ -646,8 +646,8 @@ class AXDataPagerPrevButtonsComponent extends AXDataPagerChild {
|
|
646
646
|
return;
|
647
647
|
this._parent.goPrevPage();
|
648
648
|
}
|
649
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
650
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.
|
649
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerPrevButtonsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
650
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.1.8", type: AXDataPagerPrevButtonsComponent, isStandalone: true, selector: "ax-data-pager-prev-buttons", providers: [
|
651
651
|
{ provide: AXDataPagerChild, useExisting: AXDataPagerPrevButtonsComponent },
|
652
652
|
AXUnsubscriber,
|
653
653
|
{ provide: AXComponent, useExisting: AXDataPagerPrevButtonsComponent },
|
@@ -681,7 +681,7 @@ class AXDataPagerPrevButtonsComponent extends AXDataPagerChild {
|
|
681
681
|
</ax-button>
|
682
682
|
`, isInline: true, dependencies: [{ kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "component", type: AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
683
683
|
}
|
684
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
684
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerPrevButtonsComponent, decorators: [{
|
685
685
|
type: Component,
|
686
686
|
args: [{
|
687
687
|
selector: 'ax-data-pager-prev-buttons',
|
@@ -928,36 +928,41 @@ class AXDataPagerComponent extends MXValueComponent {
|
|
928
928
|
}
|
929
929
|
/**
|
930
930
|
* Navigates to the next page, or to the last page if on the final page.
|
931
|
-
*
|
931
|
+
*
|
932
|
+
* @returns void - No return value. The component navigates to the next available page.
|
932
933
|
*/
|
933
934
|
goNextPage() {
|
934
935
|
this.goToPage(Math.min(this.value + 1, this.totalPages));
|
935
936
|
}
|
936
937
|
/**
|
937
938
|
* Navigates to the last page.
|
938
|
-
*
|
939
|
+
*
|
940
|
+
* @returns void - No return value. The component navigates to the final page.
|
939
941
|
*/
|
940
942
|
goLastPage() {
|
941
943
|
this.goToPage(this.totalPages);
|
942
944
|
}
|
943
945
|
/**
|
944
946
|
* Navigates to the first page.
|
945
|
-
*
|
947
|
+
*
|
948
|
+
* @returns void - No return value. The component navigates to the first page.
|
946
949
|
*/
|
947
950
|
goFirstPage() {
|
948
951
|
this.goToPage(1);
|
949
952
|
}
|
950
953
|
/**
|
951
954
|
* Navigates to the previous page, or to the first page if on the initial page.
|
952
|
-
*
|
955
|
+
*
|
956
|
+
* @returns void - No return value. The component navigates to the previous available page.
|
953
957
|
*/
|
954
958
|
goPrevPage() {
|
955
959
|
this.goToPage(Math.max(this.value - 1, 1));
|
956
960
|
}
|
957
961
|
/**
|
958
962
|
* Navigates to a specified page.
|
963
|
+
*
|
959
964
|
* @param page - The page number to navigate to.
|
960
|
-
* @
|
965
|
+
* @returns void - No return value. The component navigates to the specified page.
|
961
966
|
*/
|
962
967
|
goToPage(page) {
|
963
968
|
if (page != this.value) {
|
@@ -967,8 +972,8 @@ class AXDataPagerComponent extends MXValueComponent {
|
|
967
972
|
get __hostClass() {
|
968
973
|
return `ax-sm`;
|
969
974
|
}
|
970
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
971
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.
|
975
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
976
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.8", type: AXDataPagerComponent, isStandalone: true, selector: "ax-data-pager", inputs: { value: "value", name: "name", disabled: "disabled", readonly: "readonly", isLoading: "isLoading", size: "size", total: "total", displayMode: "displayMode" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", disabledChange: "disabledChange", readonlyChange: "readonlyChange", displayModeChange: "displayModeChange", onChanged: "onChanged" }, host: { properties: { "class": "this.__hostClass" } }, providers: [
|
972
977
|
{ provide: AXDataPagerParentComponent, useExisting: AXDataPagerComponent },
|
973
978
|
{
|
974
979
|
provide: NG_VALUE_ACCESSOR,
|
@@ -978,7 +983,7 @@ class AXDataPagerComponent extends MXValueComponent {
|
|
978
983
|
{ provide: AXComponent, useExisting: AXDataPagerComponent },
|
979
984
|
], usesInheritance: true, ngImport: i0, template: "@switch (displayMode) {\n @case ('full') {\n <ax-prefix class=\"ax-full-prefix\">\n <ax-data-pager-numeric-selector> </ax-data-pager-numeric-selector>\n <ax-data-pager-page-sizes> </ax-data-pager-page-sizes>\n </ax-prefix>\n <ax-suffix class=\"ax-full-suffix\">\n <ax-data-pager-info> </ax-data-pager-info>\n </ax-suffix>\n }\n @case ('compact') {\n <ax-prefix class=\"ax-compact-prefix\">\n <ax-data-pager-prev-buttons> </ax-data-pager-prev-buttons>\n <ax-data-pager-input-selector> </ax-data-pager-input-selector>\n <ax-data-pager-next-buttons> </ax-data-pager-next-buttons>\n </ax-prefix>\n <ax-suffix class=\"ax-compact-suffix\">\n <ax-data-pager-info> </ax-data-pager-info>\n </ax-suffix>\n }\n @default {\n <ng-content select=\"ax-prefix\"></ng-content>\n <ng-content select=\"ax-suffix\"></ng-content>\n }\n}\n", styles: ["html[dir=rtl] ax-data-pager ax-data-pager-numeric-selector .ax-icon-first-page,html[dir=rtl] ax-data-pager ax-data-pager-numeric-selector .ax-icon-last-page{rotate:180deg}ax-data-pager{display:flex;flex-wrap:nowrap;width:100%;align-items:center;justify-content:space-between;gap:.5rem;padding:.5rem 0;font-size:.875rem;line-height:1.25rem;overflow-x:auto}ax-data-pager ax-button-group{display:flex!important;gap:1rem!important;border-radius:0!important;border-width:0px!important}ax-data-pager ax-button-group ax-button-item{border-radius:0!important;border-width:0px!important;padding:0!important}ax-data-pager ax-button-group ax-button-item.ax-state-selected{border-width:1px!important}ax-data-pager ax-data-pager-input-selector .ax-input{width:4rem!important;max-width:10rem!important;text-align:center!important}ax-data-pager ax-data-pager-next-buttons,ax-data-pager ax-data-pager-prev-buttons,ax-data-pager ax-data-pager-numeric-selector{margin-inline-end:.5rem}ax-data-pager ax-data-pager-next-buttons ax-skeleton,ax-data-pager ax-data-pager-prev-buttons ax-skeleton,ax-data-pager ax-data-pager-numeric-selector ax-skeleton{width:7rem;border-radius:var(--ax-sys-border-radius)}ax-data-pager ax-data-pager-next-buttons .ax-data-pager-num-button,ax-data-pager ax-data-pager-prev-buttons .ax-data-pager-num-button,ax-data-pager ax-data-pager-numeric-selector .ax-data-pager-num-button{margin-inline:.2rem}ax-data-pager ax-data-pager-numeric-selector{display:flex;flex-wrap:nowrap}ax-data-pager .ax-full-prefix,ax-data-pager .ax-full-suffix{display:flex}ax-data-pager .ax-compact-prefix{display:flex}ax-data-pager .ax-compact-prefix ax-data-pager-next-buttons,ax-data-pager .ax-compact-prefix ax-data-pager-prev-buttons{display:flex;flex-wrap:nowrap}ax-data-pager ax-data-pager-info ax-text{color:rgb(var(--ax-sys-color-ghost-surface));white-space:nowrap;margin-inline-end:.2rem}\n"], dependencies: [{ kind: "component", type: AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-subtitle, ax-placeholder, ax-overlay" }, { kind: "component", type: AXDataPagerNumericSelectorComponent, selector: "ax-data-pager-numeric-selector" }, { kind: "component", type: AXDataPagerPageSizesComponent, selector: "ax-data-pager-page-sizes", inputs: ["sizes"] }, { kind: "component", type: AXDataPagerInfoComponent, selector: "ax-data-pager-info", inputs: ["text"] }, { kind: "component", type: AXDataPagerPrevButtonsComponent, selector: "ax-data-pager-prev-buttons" }, { kind: "component", type: AXDataPagerInputSelectorComponent, selector: "ax-data-pager-input-selector" }, { kind: "component", type: AXDataPagerNextButtonsComponent, selector: "ax-data-pager-next-buttons" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
980
985
|
}
|
981
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
986
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerComponent, decorators: [{
|
982
987
|
type: Component,
|
983
988
|
args: [{ selector: 'ax-data-pager', inputs: ['value', 'name', 'disabled', 'readonly'], outputs: ['valueChange', 'onValueChanged', 'disabledChange', 'readonlyChange'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [
|
984
989
|
{ provide: AXDataPagerParentComponent, useExisting: AXDataPagerComponent },
|
@@ -1035,8 +1040,8 @@ const MODULES = [
|
|
1035
1040
|
AXSkeletonModule,
|
1036
1041
|
];
|
1037
1042
|
class AXDataPagerModule {
|
1038
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.
|
1039
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.
|
1043
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
1044
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerModule, imports: [CommonModule,
|
1040
1045
|
FormsModule,
|
1041
1046
|
AXButtonModule,
|
1042
1047
|
AXButtonGroupModule,
|
@@ -1057,9 +1062,9 @@ class AXDataPagerModule {
|
|
1057
1062
|
AXDataPagerNumericSelectorComponent,
|
1058
1063
|
AXDataPagerInputSelectorComponent,
|
1059
1064
|
AXDataPagerInfoComponent] }); }
|
1060
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.
|
1065
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerModule, imports: [MODULES, COMPONENT] }); }
|
1061
1066
|
}
|
1062
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.
|
1067
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: AXDataPagerModule, decorators: [{
|
1063
1068
|
type: NgModule,
|
1064
1069
|
args: [{
|
1065
1070
|
imports: [...MODULES, ...COMPONENT],
|