@acorex/components 22.4.20 → 22.4.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/acorex-components-calendar.mjs +1 -1
- package/fesm2022/acorex-components-calendar.mjs.map +1 -1
- package/fesm2022/acorex-components-combo-box.mjs +44 -2
- package/fesm2022/acorex-components-combo-box.mjs.map +1 -1
- package/fesm2022/acorex-components-data-list.mjs +1 -1
- package/fesm2022/acorex-components-data-list.mjs.map +1 -1
- package/fesm2022/acorex-components-data-table.mjs +97 -51
- package/fesm2022/acorex-components-data-table.mjs.map +1 -1
- package/fesm2022/acorex-components-decorators.mjs +2 -2
- package/fesm2022/acorex-components-decorators.mjs.map +1 -1
- package/fesm2022/acorex-components-image-editor.mjs +8 -8
- package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
- package/fesm2022/acorex-components-kanban.mjs +1 -1
- package/fesm2022/acorex-components-kanban.mjs.map +1 -1
- package/fesm2022/acorex-components-list.mjs +1 -1
- package/fesm2022/acorex-components-list.mjs.map +1 -1
- package/fesm2022/acorex-components-lookup.mjs +40 -2
- package/fesm2022/acorex-components-lookup.mjs.map +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs +1 -1
- package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
- package/fesm2022/acorex-components-paint.mjs +1 -1
- package/fesm2022/acorex-components-paint.mjs.map +1 -1
- package/fesm2022/acorex-components-scheduler.mjs +8 -8
- package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
- package/fesm2022/acorex-components-side-menu.mjs +1 -1
- package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-sidebar.mjs +2 -2
- package/fesm2022/acorex-components-sidebar.mjs.map +1 -1
- package/fesm2022/acorex-components-tooltip.mjs +48 -4
- package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
- package/fesm2022/acorex-components-tree-view.mjs +1 -1
- package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
- package/package.json +3 -3
- package/types/acorex-components-combo-box.d.ts +5 -0
- package/types/acorex-components-data-table.d.ts +5 -0
- package/types/acorex-components-lookup.d.ts +5 -0
- package/types/acorex-components-tooltip.d.ts +11 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-components-data-list.mjs","sources":["../../../../packages/components/data-list/src/lib/data-list.component.ts","../../../../packages/components/data-list/src/lib/data-list.component.html","../../../../packages/components/data-list/src/index.ts","../../../../packages/components/data-list/src/acorex-components-data-list.ts"],"sourcesContent":["import { AXDataSource, AXListDataSource, MXValueComponent } from '@acorex/cdk/common';\nimport { AXCheckBoxComponent } from '@acorex/components/check-box';\nimport { AXTooltipDirective } from '@acorex/components/tooltip';\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n computed,\n effect,\n EventEmitter,\n input,\n model,\n OnInit,\n Output,\n signal,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n// Types for the component\nexport interface AXDataListItem {\n id: string;\n text: string;\n description?: string;\n disabled?: boolean;\n tooltip?: string;\n level?: number;\n children?: AXDataListItem[];\n expanded?: boolean;\n [key: string]: any;\n}\n\nexport interface AXDataListConfig {\n disabledField?: string;\n tooltipField?: string;\n textField?: string;\n descriptionField?: string;\n levelField?: string;\n childrenField?: string;\n expandedField?: string;\n}\n\nexport interface AXDataListSelectionChange {\n selectedItems: AXDataListItem[];\n selectedKeys: string[];\n isMultiple: boolean;\n}\n\n@Component({\n selector: 'ax-data-list',\n templateUrl: './data-list.component.html',\n styleUrls: ['./data-list.component.css'],\n\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [CommonModule, FormsModule, ScrollingModule, AXTooltipDirective, AXCheckBoxComponent],\n})\nexport class AXDataListComponent extends MXValueComponent implements OnInit {\n // Inputs\n dataSource = input.required<AXDataSource<AXDataListItem>>();\n config = input<AXDataListConfig>({});\n multiple = input(false);\n showCheckbox = input(true);\n itemHeight = input(40);\n isItemTruncated = input(true);\n showItemTooltip = input(true);\n disabledField = input<string>('disabled');\n tooltipField = input<string>('tooltip');\n textField = input<string>('text');\n descriptionField = input<string>('description');\n levelField = input<string>('level');\n childrenField = input<string>('children');\n expandedField = input<string>('expanded');\n\n // Templates\n itemTemplate = input<TemplateRef<any>>();\n emptyTemplate = input<TemplateRef<any>>();\n loadingTemplate = input<TemplateRef<any>>();\n\n // Outputs\n @Output() selectionChange = new EventEmitter<AXDataListSelectionChange>();\n @Output() itemClick = new EventEmitter<AXDataListItem>();\n @Output() itemDoubleClick = new EventEmitter<AXDataListItem>();\n @Output() expandChange = new EventEmitter<{ item: AXDataListItem; expanded: boolean }>();\n\n // ViewChild\n @ViewChild(CdkVirtualScrollViewport) viewport!: CdkVirtualScrollViewport;\n\n // Internal signals\n protected loading = signal(false);\n protected totalItems = signal(0);\n protected selectedItems = signal<AXDataListItem[]>([]);\n protected selectedKeys = signal<string[]>([]);\n protected focusedIndex = signal(-1);\n protected expandedItems = signal<Set<string>>(new Set());\n\n // List data source for virtual scrolling\n protected listDataSource: AXListDataSource<AXDataListItem> | null = null;\n\n // Computed values\n protected hasItems = computed(() => {\n const dataSourceItems = this.listDataSource?.source?.cachedItems?.length > 0;\n return dataSourceItems;\n });\n protected isEmpty = computed(() => {\n const notLoading = !this.loading();\n const noDataSourceItems = !this.listDataSource?.source?.cachedItems?.length;\n return notLoading && noDataSourceItems;\n });\n protected isMultipleSelection = computed(() => this.multiple());\n protected showCheckboxes = computed(() => this.showCheckbox());\n\n // Selection model\n public selectionModel = model<string | string[]>();\n\n constructor() {\n super();\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 } else {\n this.selectedKeys.set([selection]);\n }\n this.updateSelectedItems();\n }\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\n if (selectedItems.length > 0 || selectedKeys.length > 0) {\n this.selectionChange.emit({\n selectedItems,\n selectedKeys,\n isMultiple,\n });\n }\n });\n\n // Effect to watch for dataSource changes and create listDataSource\n effect(() => {\n const dataSource = this.dataSource();\n if (dataSource) {\n this.listDataSource = new AXListDataSource<AXDataListItem>({\n source: dataSource,\n debounceTime: 100, // Add debounce to prevent too many page requests\n });\n\n // Set up subscriptions\n this.setupDataSourceSubscription();\n }\n });\n }\n\n override ngOnInit() {\n super.ngOnInit();\n // Data loading is now handled by the effect watching dataSource changes\n }\n\n private setupDataSourceSubscription() {\n if (!this.dataSource() || !this.listDataSource) return;\n\n // Subscribe to data source changes\n this.dataSource().onChanged.subscribe((data) => {\n if (data && data.cachedItems) {\n this.totalItems.set(data.totalCount || data.cachedItems.length);\n }\n });\n\n this.dataSource().onLoadingChanged.subscribe((loading) => {\n this.loading.set(loading);\n });\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\n // Selection management\n protected selectItem(item: AXDataListItem, event?: Event) {\n if (event && typeof event.stopPropagation === 'function') {\n event.stopPropagation();\n }\n\n if (this.isItemDisabled(item)) return;\n\n if (this.isMultipleSelection()) {\n this.toggleMultipleSelection(item);\n } else {\n this.setSingleSelection(item);\n }\n }\n\n protected toggleMultipleSelection(item: AXDataListItem) {\n const currentKeys = this.selectedKeys();\n const itemKey = this.getItemKey(item);\n\n if (currentKeys.includes(itemKey)) {\n this.selectedKeys.set(currentKeys.filter((key) => key !== itemKey));\n } else {\n this.selectedKeys.set([...currentKeys, itemKey]);\n }\n\n this.updateSelectedItems();\n }\n\n protected setSingleSelection(item: AXDataListItem) {\n const itemKey = this.getItemKey(item);\n this.selectedKeys.set([itemKey]);\n this.updateSelectedItems();\n }\n\n protected deselectItem(item: AXDataListItem) {\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\n protected updateSelectedItems() {\n const keys = this.selectedKeys();\n const dataSource = this.listDataSource?.source;\n if (!dataSource) return;\n\n const selected = dataSource.cachedItems.filter((item) => keys.includes(this.getItemKey(item)));\n this.selectedItems.set(selected);\n\n // Update selection model\n if (this.isMultipleSelection()) {\n this.selectionModel.set(keys);\n } else {\n this.selectionModel.set(keys[0] || '');\n }\n }\n\n protected isItemSelected(item: AXDataListItem): boolean {\n return this.selectedKeys().includes(this.getItemKey(item));\n }\n\n protected isItemDisabled(item: AXDataListItem): boolean {\n const disabledField = this.disabledField();\n if (!disabledField) return false;\n\n const disabled = item[disabledField];\n return Boolean(disabled);\n }\n\n protected getItemKey(item: AXDataListItem): string {\n if (item.id !== undefined && item.id !== null) {\n return String(item.id);\n }\n\n // Fallback to other potential key fields\n if (item['key'] !== undefined && item['key'] !== null) {\n return String(item['key']);\n }\n\n if (item['value'] !== undefined && item['value'] !== null) {\n return String(item['value']);\n }\n\n // Last resort: use the item itself as a string\n return String(item);\n }\n\n // Tree grouping\n protected toggleExpanded(item: AXDataListItem, event: Event) {\n if (event && typeof event.stopPropagation === 'function') {\n event.stopPropagation();\n }\n\n if (!this.hasChildren(item)) return;\n\n const currentExpanded = this.expandedItems();\n const itemKey = this.getItemKey(item);\n\n if (currentExpanded.has(itemKey)) {\n currentExpanded.delete(itemKey);\n } else {\n currentExpanded.add(itemKey);\n }\n\n this.expandedItems.set(new Set(currentExpanded));\n this.expandChange.emit({ item, expanded: currentExpanded.has(itemKey) });\n }\n\n protected hasChildren(item: AXDataListItem): boolean {\n const childrenField = this.childrenField();\n if (!childrenField) return false;\n\n const children = item[childrenField];\n return Array.isArray(children) && children.length > 0;\n }\n\n protected isExpanded(item: AXDataListItem): boolean {\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\n return this.expandedItems().has(this.getItemKey(item));\n }\n\n protected getItemLevel(item: AXDataListItem): number {\n const levelField = this.levelField();\n if (!levelField) return 0;\n\n const level = item[levelField];\n return level !== undefined && level !== null ? Number(level) : 0;\n }\n\n // Keyboard navigation\n protected onKeyDown(event: KeyboardEvent, item: AXDataListItem, index: number) {\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\n protected focusNextItem(currentIndex: number) {\n const dataSource = this.listDataSource?.source;\n if (!dataSource || dataSource.cachedItems.length === 0) return;\n\n const nextIndex = Math.min(currentIndex + 1, dataSource.cachedItems.length - 1);\n this.focusedIndex.set(nextIndex);\n this.scrollToIndex(nextIndex);\n }\n\n protected focusPreviousItem(currentIndex: number) {\n const dataSource = this.listDataSource?.source;\n if (!dataSource || dataSource.cachedItems.length === 0) return;\n\n const prevIndex = Math.max(currentIndex - 1, 0);\n this.focusedIndex.set(prevIndex);\n this.scrollToIndex(prevIndex);\n }\n\n protected scrollToIndex(index: number) {\n if (this.viewport && typeof index === 'number' && index >= 0) {\n this.viewport.scrollToIndex(index);\n }\n }\n\n // Item interaction\n protected onItemClick(item: AXDataListItem, event: Event) {\n if (this.isItemDisabled(item)) return;\n\n this.itemClick.emit(item);\n this.selectItem(item, event);\n }\n\n protected onCheckboxChange(item: AXDataListItem, checked: boolean) {\n if (this.isItemDisabled(item)) return;\n\n if (checked) {\n this.selectItem(item);\n } else {\n this.deselectItem(item);\n }\n }\n\n protected onCheckboxClick(event: Event) {\n if (typeof event.stopPropagation === 'function') {\n event.stopPropagation();\n }\n }\n\n protected onItemDoubleClick(item: AXDataListItem) {\n if (this.isItemDisabled(item)) return;\n\n this.itemDoubleClick.emit(item);\n }\n\n // Utility methods\n protected getItemText(item: AXDataListItem): string {\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\n return item.text || '';\n }\n\n protected getItemDescription(item: AXDataListItem): string {\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\n return item.description || '';\n }\n\n protected getItemTooltip(item: AXDataListItem): string {\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\n return item.tooltip || '';\n }\n\n protected shouldShowTooltip(item: AXDataListItem): boolean {\n return this.showItemTooltip() && !!this.getItemTooltip(item);\n }\n\n // Track by function for virtual scrolling\n protected trackByFn = (index: number, item: AXDataListItem): string => {\n if (!item) {\n return `loading-${index}`;\n }\n return this.getItemKey(item);\n };\n}\n","<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","// Secondary entry point for @acorex/components/data-list\n\nexport * from './lib/data-list.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"acorex-components-data-list.mjs","sources":["../../../../packages/components/data-list/src/lib/data-list.component.ts","../../../../packages/components/data-list/src/lib/data-list.component.html","../../../../packages/components/data-list/src/index.ts","../../../../packages/components/data-list/src/acorex-components-data-list.ts"],"sourcesContent":["import { AXDataSource, AXListDataSource, MXValueComponent } from '@acorex/cdk/common';\nimport { AXCheckBoxComponent } from '@acorex/components/check-box';\nimport { AXTooltipDirective } from '@acorex/components/tooltip';\nimport { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport {\n Component,\n computed,\n effect,\n EventEmitter,\n input,\n model,\n OnInit,\n Output,\n signal,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\n\n// Types for the component\nexport interface AXDataListItem {\n id: string;\n text: string;\n description?: string;\n disabled?: boolean;\n tooltip?: string;\n level?: number;\n children?: AXDataListItem[];\n expanded?: boolean;\n [key: string]: any;\n}\n\nexport interface AXDataListConfig {\n disabledField?: string;\n tooltipField?: string;\n textField?: string;\n descriptionField?: string;\n levelField?: string;\n childrenField?: string;\n expandedField?: string;\n}\n\nexport interface AXDataListSelectionChange {\n selectedItems: AXDataListItem[];\n selectedKeys: string[];\n isMultiple: boolean;\n}\n\n@Component({\n selector: 'ax-data-list',\n templateUrl: './data-list.component.html',\n styleUrls: ['./data-list.component.css'],\n\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [CommonModule, FormsModule, ScrollingModule, AXTooltipDirective, AXCheckBoxComponent],\n})\nexport class AXDataListComponent extends MXValueComponent implements OnInit {\n // Inputs\n dataSource = input.required<AXDataSource<AXDataListItem>>();\n config = input<AXDataListConfig>({});\n multiple = input(false);\n showCheckbox = input(true);\n itemHeight = input(40);\n isItemTruncated = input(true);\n showItemTooltip = input(true);\n disabledField = input<string>('disabled');\n tooltipField = input<string>('tooltip');\n textField = input<string>('text');\n descriptionField = input<string>('description');\n levelField = input<string>('level');\n childrenField = input<string>('children');\n expandedField = input<string>('expanded');\n\n // Templates\n itemTemplate = input<TemplateRef<any>>();\n emptyTemplate = input<TemplateRef<any>>();\n loadingTemplate = input<TemplateRef<any>>();\n\n // Outputs\n @Output() selectionChange = new EventEmitter<AXDataListSelectionChange>();\n @Output() itemClick = new EventEmitter<AXDataListItem>();\n @Output() itemDoubleClick = new EventEmitter<AXDataListItem>();\n @Output() expandChange = new EventEmitter<{ item: AXDataListItem; expanded: boolean }>();\n\n // ViewChild\n @ViewChild(CdkVirtualScrollViewport) viewport!: CdkVirtualScrollViewport;\n\n // Internal signals\n protected loading = signal(false);\n protected totalItems = signal(0);\n protected selectedItems = signal<AXDataListItem[]>([]);\n protected selectedKeys = signal<string[]>([]);\n protected focusedIndex = signal(-1);\n protected expandedItems = signal<Set<string>>(new Set());\n\n // List data source for virtual scrolling\n protected listDataSource: AXListDataSource<AXDataListItem> | null = null;\n\n // Computed values\n protected hasItems = computed(() => {\n const dataSourceItems = this.listDataSource?.source?.cachedItems?.length > 0;\n return dataSourceItems;\n });\n protected isEmpty = computed(() => {\n const notLoading = !this.loading();\n const noDataSourceItems = !this.listDataSource?.source?.cachedItems?.length;\n return notLoading && noDataSourceItems;\n });\n protected isMultipleSelection = computed(() => this.multiple());\n protected showCheckboxes = computed(() => this.showCheckbox());\n\n // Selection model\n public selectionModel = model<string | string[]>();\n\n constructor() {\n super();\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 } else {\n this.selectedKeys.set([selection]);\n }\n this.updateSelectedItems();\n }\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\n if (selectedItems.length > 0 || selectedKeys.length > 0) {\n this.selectionChange.emit({\n selectedItems,\n selectedKeys,\n isMultiple,\n });\n }\n });\n\n // Effect to watch for dataSource changes and create listDataSource\n effect(() => {\n const dataSource = this.dataSource();\n if (dataSource) {\n this.listDataSource = new AXListDataSource<AXDataListItem>({\n source: dataSource,\n debounceTime: 100, // Add debounce to prevent too many page requests\n });\n\n // Set up subscriptions\n this.setupDataSourceSubscription();\n }\n });\n }\n\n override ngOnInit() {\n super.ngOnInit();\n // Data loading is now handled by the effect watching dataSource changes\n }\n\n private setupDataSourceSubscription() {\n if (!this.dataSource() || !this.listDataSource) return;\n\n // Subscribe to data source changes\n this.dataSource().onChanged.subscribe((data) => {\n if (data && data.cachedItems) {\n this.totalItems.set(data.totalCount || data.cachedItems.length);\n }\n });\n\n this.dataSource().onLoadingChanged.subscribe((loading) => {\n this.loading.set(loading);\n });\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\n // Selection management\n protected selectItem(item: AXDataListItem, event?: Event) {\n if (event && typeof event.stopPropagation === 'function') {\n event.stopPropagation();\n }\n\n if (this.isItemDisabled(item)) return;\n\n if (this.isMultipleSelection()) {\n this.toggleMultipleSelection(item);\n } else {\n this.setSingleSelection(item);\n }\n }\n\n protected toggleMultipleSelection(item: AXDataListItem) {\n const currentKeys = this.selectedKeys();\n const itemKey = this.getItemKey(item);\n\n if (currentKeys.includes(itemKey)) {\n this.selectedKeys.set(currentKeys.filter((key) => key !== itemKey));\n } else {\n this.selectedKeys.set([...currentKeys, itemKey]);\n }\n\n this.updateSelectedItems();\n }\n\n protected setSingleSelection(item: AXDataListItem) {\n const itemKey = this.getItemKey(item);\n this.selectedKeys.set([itemKey]);\n this.updateSelectedItems();\n }\n\n protected deselectItem(item: AXDataListItem) {\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\n protected updateSelectedItems() {\n const keys = this.selectedKeys();\n const dataSource = this.listDataSource?.source;\n if (!dataSource) return;\n\n const selected = dataSource.cachedItems.filter((item) => keys.includes(this.getItemKey(item)));\n this.selectedItems.set(selected);\n\n // Update selection model\n if (this.isMultipleSelection()) {\n this.selectionModel.set(keys);\n } else {\n this.selectionModel.set(keys[0] || '');\n }\n }\n\n protected isItemSelected(item: AXDataListItem): boolean {\n return this.selectedKeys().includes(this.getItemKey(item));\n }\n\n protected isItemDisabled(item: AXDataListItem): boolean {\n const disabledField = this.disabledField();\n if (!disabledField) return false;\n\n const disabled = item[disabledField];\n return Boolean(disabled);\n }\n\n protected getItemKey(item: AXDataListItem): string {\n if (item.id !== undefined && item.id !== null) {\n return String(item.id);\n }\n\n // Fallback to other potential key fields\n if (item['key'] !== undefined && item['key'] !== null) {\n return String(item['key']);\n }\n\n if (item['value'] !== undefined && item['value'] !== null) {\n return String(item['value']);\n }\n\n // Last resort: use the item itself as a string\n return String(item);\n }\n\n // Tree grouping\n protected toggleExpanded(item: AXDataListItem, event: Event) {\n if (event && typeof event.stopPropagation === 'function') {\n event.stopPropagation();\n }\n\n if (!this.hasChildren(item)) return;\n\n const currentExpanded = this.expandedItems();\n const itemKey = this.getItemKey(item);\n\n if (currentExpanded.has(itemKey)) {\n currentExpanded.delete(itemKey);\n } else {\n currentExpanded.add(itemKey);\n }\n\n this.expandedItems.set(new Set(currentExpanded));\n this.expandChange.emit({ item, expanded: currentExpanded.has(itemKey) });\n }\n\n protected hasChildren(item: AXDataListItem): boolean {\n const childrenField = this.childrenField();\n if (!childrenField) return false;\n\n const children = item[childrenField];\n return Array.isArray(children) && children.length > 0;\n }\n\n protected isExpanded(item: AXDataListItem): boolean {\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\n return this.expandedItems().has(this.getItemKey(item));\n }\n\n protected getItemLevel(item: AXDataListItem): number {\n const levelField = this.levelField();\n if (!levelField) return 0;\n\n const level = item[levelField];\n return level !== undefined && level !== null ? Number(level) : 0;\n }\n\n // Keyboard navigation\n protected onKeyDown(event: KeyboardEvent, item: AXDataListItem, index: number) {\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\n protected focusNextItem(currentIndex: number) {\n const dataSource = this.listDataSource?.source;\n if (!dataSource || dataSource.cachedItems.length === 0) return;\n\n const nextIndex = Math.min(currentIndex + 1, dataSource.cachedItems.length - 1);\n this.focusedIndex.set(nextIndex);\n this.scrollToIndex(nextIndex);\n }\n\n protected focusPreviousItem(currentIndex: number) {\n const dataSource = this.listDataSource?.source;\n if (!dataSource || dataSource.cachedItems.length === 0) return;\n\n const prevIndex = Math.max(currentIndex - 1, 0);\n this.focusedIndex.set(prevIndex);\n this.scrollToIndex(prevIndex);\n }\n\n protected scrollToIndex(index: number) {\n if (this.viewport && typeof index === 'number' && index >= 0) {\n this.viewport.scrollToIndex(index);\n }\n }\n\n // Item interaction\n protected onItemClick(item: AXDataListItem, event: Event) {\n if (this.isItemDisabled(item)) return;\n\n this.itemClick.emit(item);\n this.selectItem(item, event);\n }\n\n protected onCheckboxChange(item: AXDataListItem, checked: boolean) {\n if (this.isItemDisabled(item)) return;\n\n if (checked) {\n this.selectItem(item);\n } else {\n this.deselectItem(item);\n }\n }\n\n protected onCheckboxClick(event: Event) {\n if (typeof event.stopPropagation === 'function') {\n event.stopPropagation();\n }\n }\n\n protected onItemDoubleClick(item: AXDataListItem) {\n if (this.isItemDisabled(item)) return;\n\n this.itemDoubleClick.emit(item);\n }\n\n // Utility methods\n protected getItemText(item: AXDataListItem): string {\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\n return item.text || '';\n }\n\n protected getItemDescription(item: AXDataListItem): string {\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\n return item.description || '';\n }\n\n protected getItemTooltip(item: AXDataListItem): string {\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\n return item.tooltip || '';\n }\n\n protected shouldShowTooltip(item: AXDataListItem): boolean {\n return this.showItemTooltip() && !!this.getItemTooltip(item);\n }\n\n // Track by function for virtual scrolling\n protected trackByFn = (index: number, item: AXDataListItem): string => {\n if (!item) {\n return `loading-${index}`;\n }\n return this.getItemKey(item);\n };\n}\n","<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","// Secondary entry point for @acorex/components/data-list\n\nexport * from './lib/data-list.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|