@acorex/components 22.3.4 → 22.3.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/fesm2022/acorex-components-accordion.mjs.map +1 -1
  2. package/fesm2022/acorex-components-action-sheet.mjs +2 -1
  3. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  4. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  5. package/fesm2022/acorex-components-aspect-ratio.mjs.map +1 -1
  6. package/fesm2022/acorex-components-audio-wave.mjs.map +1 -1
  7. package/fesm2022/acorex-components-autocomplete.mjs +2 -1
  8. package/fesm2022/acorex-components-autocomplete.mjs.map +1 -1
  9. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  10. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  11. package/fesm2022/acorex-components-bottom-navigation.mjs.map +1 -1
  12. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  13. package/fesm2022/acorex-components-bubble.mjs.map +1 -1
  14. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  15. package/fesm2022/acorex-components-button.mjs +96 -9
  16. package/fesm2022/acorex-components-button.mjs.map +1 -1
  17. package/fesm2022/acorex-components-calendar.mjs +2 -2
  18. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  19. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  20. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  21. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  22. package/fesm2022/acorex-components-code-editor.mjs.map +1 -1
  23. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  24. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  25. package/fesm2022/acorex-components-combo-box.mjs +3 -2
  26. package/fesm2022/acorex-components-combo-box.mjs.map +1 -1
  27. package/fesm2022/acorex-components-command.mjs +4 -0
  28. package/fesm2022/acorex-components-command.mjs.map +1 -1
  29. package/fesm2022/acorex-components-comment.mjs.map +1 -1
  30. package/fesm2022/acorex-components-conversation-acorex-components-conversation-BZjCPB-7.mjs.map +1 -1
  31. package/fesm2022/acorex-components-conversation-composer-action-choice-dialog.component-F5fLD_SK.mjs.map +1 -1
  32. package/fesm2022/acorex-components-conversation-emoji-categories-C7Gm95V0.mjs.map +1 -1
  33. package/fesm2022/acorex-components-conversation-image-picker-editor-dialog.component-Bk3ixvt2.mjs.map +1 -1
  34. package/fesm2022/acorex-components-conversation-picker-rename-file-dialog.component-CNwDWg_O.mjs.map +1 -1
  35. package/fesm2022/acorex-components-cron-job.mjs.map +1 -1
  36. package/fesm2022/acorex-components-data-list.mjs.map +1 -1
  37. package/fesm2022/acorex-components-data-pager.mjs +45 -115
  38. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  39. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  40. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  41. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  42. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  43. package/fesm2022/acorex-components-decorators.mjs +2 -90
  44. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  45. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  46. package/fesm2022/acorex-components-drawer.mjs +1 -1
  47. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  48. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -1
  49. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  50. package/fesm2022/acorex-components-editor.mjs.map +1 -1
  51. package/fesm2022/acorex-components-emoji.mjs.map +1 -1
  52. package/fesm2022/acorex-components-emojipicker.mjs.map +1 -1
  53. package/fesm2022/acorex-components-fab.mjs.map +1 -1
  54. package/fesm2022/acorex-components-file-viewer.mjs.map +1 -1
  55. package/fesm2022/acorex-components-form.mjs.map +1 -1
  56. package/fesm2022/acorex-components-grid-layout-builder.mjs.map +1 -1
  57. package/fesm2022/acorex-components-highlight.mjs.map +1 -1
  58. package/fesm2022/acorex-components-image-editor.mjs.map +1 -1
  59. package/fesm2022/acorex-components-image.mjs.map +1 -1
  60. package/fesm2022/acorex-components-inline-reaction.mjs.map +1 -1
  61. package/fesm2022/acorex-components-json-viewer.mjs.map +1 -1
  62. package/fesm2022/acorex-components-kanban.mjs.map +1 -1
  63. package/fesm2022/acorex-components-kbd.mjs.map +1 -1
  64. package/fesm2022/acorex-components-label.mjs.map +1 -1
  65. package/fesm2022/acorex-components-list.mjs.map +1 -1
  66. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -1
  67. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  68. package/fesm2022/acorex-components-lookup.mjs +3 -2
  69. package/fesm2022/acorex-components-lookup.mjs.map +1 -1
  70. package/fesm2022/acorex-components-map.mjs.map +1 -1
  71. package/fesm2022/acorex-components-media-viewer.mjs.map +1 -1
  72. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  73. package/fesm2022/acorex-components-message-status.mjs.map +1 -1
  74. package/fesm2022/acorex-components-message-time.mjs.map +1 -1
  75. package/fesm2022/acorex-components-message.mjs.map +1 -1
  76. package/fesm2022/acorex-components-navbar.mjs.map +1 -1
  77. package/fesm2022/acorex-components-notification.mjs +1 -2
  78. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  79. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  80. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  81. package/fesm2022/acorex-components-page.mjs.map +1 -1
  82. package/fesm2022/acorex-components-paint.mjs.map +1 -1
  83. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  84. package/fesm2022/acorex-components-pdf-reader.mjs.map +1 -1
  85. package/fesm2022/acorex-components-phone-box.mjs.map +1 -1
  86. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  87. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  88. package/fesm2022/acorex-components-popup.mjs +6 -6
  89. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  90. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  91. package/fesm2022/acorex-components-qrcode.mjs.map +1 -1
  92. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  93. package/fesm2022/acorex-components-rail-navigation.mjs.map +1 -1
  94. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  95. package/fesm2022/acorex-components-rate-picker.mjs.map +1 -1
  96. package/fesm2022/acorex-components-reaction.mjs.map +1 -1
  97. package/fesm2022/acorex-components-rest-api-generator.mjs.map +1 -1
  98. package/fesm2022/acorex-components-result.mjs.map +1 -1
  99. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -1
  100. package/fesm2022/acorex-components-rrule.mjs.map +1 -1
  101. package/fesm2022/acorex-components-scheduler-picker.mjs.map +1 -1
  102. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  103. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  104. package/fesm2022/acorex-components-select-box.mjs +2 -1
  105. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  106. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  107. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  108. package/fesm2022/acorex-components-sidebar.mjs.map +1 -1
  109. package/fesm2022/acorex-components-skeleton.mjs.map +1 -1
  110. package/fesm2022/acorex-components-slider.mjs.map +1 -1
  111. package/fesm2022/acorex-components-sliding-item.mjs.map +1 -1
  112. package/fesm2022/acorex-components-step-wizard.mjs.map +1 -1
  113. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  114. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  115. package/fesm2022/acorex-components-tag-box.mjs.map +1 -1
  116. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  117. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  118. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  119. package/fesm2022/acorex-components-time-duration.mjs.map +1 -1
  120. package/fesm2022/acorex-components-time-line.mjs.map +1 -1
  121. package/fesm2022/acorex-components-toast.mjs +2 -2
  122. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  123. package/fesm2022/acorex-components-toolbar.mjs.map +1 -1
  124. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  125. package/fesm2022/acorex-components-tree-view.mjs.map +1 -1
  126. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  127. package/fesm2022/acorex-components-video-player.mjs.map +1 -1
  128. package/fesm2022/acorex-components-wysiwyg.mjs.map +1 -1
  129. package/fesm2022/acorex-components.mjs.map +1 -1
  130. package/package.json +3 -3
  131. package/types/acorex-components-button.d.ts +33 -3
  132. package/types/acorex-components-command.d.ts +2 -0
  133. package/types/acorex-components-data-pager.d.ts +1 -7
  134. package/types/acorex-components-decorators.d.ts +2 -32
  135. package/types/acorex-components-popup.d.ts +4 -3
@@ -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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"}
@@ -206,11 +206,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
206
206
  * @category Components
207
207
  */
208
208
  class AXDataPagerNextButtonsComponent extends AXDataPagerChild {
209
- constructor() {
210
- super(...arguments);
211
- this.localeService = inject(AXLocaleService);
212
- this.isRtl = this.localeService.isRtl;
213
- }
214
209
  /**
215
210
  * @ignore
216
211
  */
@@ -234,7 +229,7 @@ class AXDataPagerNextButtonsComponent extends AXDataPagerChild {
234
229
  this._parent.goNextPage();
235
230
  }
236
231
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXDataPagerNextButtonsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
237
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.6", type: AXDataPagerNextButtonsComponent, isStandalone: true, selector: "ax-data-pager-next-buttons", providers: [
232
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.6", type: AXDataPagerNextButtonsComponent, isStandalone: true, selector: "ax-data-pager-next-buttons", host: { properties: { "attr.dir": "'ltr'" }, classAttribute: "ax-data-pager-nav-ltr" }, providers: [
238
233
  { provide: AXDataPagerChild, useExisting: AXDataPagerNextButtonsComponent },
239
234
  AXUnsubscriber,
240
235
  { provide: AXComponent, useExisting: AXDataPagerNextButtonsComponent },
@@ -246,13 +241,7 @@ class AXDataPagerNextButtonsComponent extends AXDataPagerChild {
246
241
  title="Go to the next page"
247
242
  (onClick)="_emitOnNextPageClick($event)"
248
243
  >
249
- <ax-icon
250
- class="ax-icon text-xl"
251
- [ngClass]="{
252
- 'ax-icon-chevron-left': isRtl(),
253
- 'ax-icon-chevron-right': !isRtl(),
254
- }"
255
- ></ax-icon>
244
+ <i class="ax-icon text-xl ax-data-pager-nav-icon ax-icon-chevron-right" aria-hidden="true"></i>
256
245
  </ax-button>
257
246
  <ax-button
258
247
  [disabled]="disabled"
@@ -261,17 +250,18 @@ class AXDataPagerNextButtonsComponent extends AXDataPagerChild {
261
250
  title="Go to the last page"
262
251
  (onClick)="_emitOnLastPageClick($event)"
263
252
  >
264
- <ax-icon
265
- class="ax-icon text-xl"
266
- [ngClass]="{ 'ax-icon-chevron-double-left': isRtl(), 'ax-icon-chevron-double-right': !isRtl() }"
267
- ></ax-icon>
253
+ <i class="ax-icon text-xl ax-data-pager-nav-icon ax-icon-chevron-double-right" aria-hidden="true"></i>
268
254
  </ax-button>
269
- `, isInline: true, dependencies: [{ kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "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"] }], encapsulation: i0.ViewEncapsulation.None }); }
255
+ `, isInline: true, dependencies: [{ kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
270
256
  }
271
257
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXDataPagerNextButtonsComponent, decorators: [{
272
258
  type: Component,
273
259
  args: [{
274
260
  selector: 'ax-data-pager-next-buttons',
261
+ host: {
262
+ class: 'ax-data-pager-nav-ltr',
263
+ '[attr.dir]': "'ltr'",
264
+ },
275
265
  template: `
276
266
  <ax-button
277
267
  [disabled]="disabled"
@@ -280,13 +270,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
280
270
  title="Go to the next page"
281
271
  (onClick)="_emitOnNextPageClick($event)"
282
272
  >
283
- <ax-icon
284
- class="ax-icon text-xl"
285
- [ngClass]="{
286
- 'ax-icon-chevron-left': isRtl(),
287
- 'ax-icon-chevron-right': !isRtl(),
288
- }"
289
- ></ax-icon>
273
+ <i class="ax-icon text-xl ax-data-pager-nav-icon ax-icon-chevron-right" aria-hidden="true"></i>
290
274
  </ax-button>
291
275
  <ax-button
292
276
  [disabled]="disabled"
@@ -295,10 +279,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
295
279
  title="Go to the last page"
296
280
  (onClick)="_emitOnLastPageClick($event)"
297
281
  >
298
- <ax-icon
299
- class="ax-icon text-xl"
300
- [ngClass]="{ 'ax-icon-chevron-double-left': isRtl(), 'ax-icon-chevron-double-right': !isRtl() }"
301
- ></ax-icon>
282
+ <i class="ax-icon text-xl ax-data-pager-nav-icon ax-icon-chevron-double-right" aria-hidden="true"></i>
302
283
  </ax-button>
303
284
  `,
304
285
  encapsulation: ViewEncapsulation.None,
@@ -307,7 +288,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
307
288
  AXUnsubscriber,
308
289
  { provide: AXComponent, useExisting: AXDataPagerNextButtonsComponent },
309
290
  ],
310
- imports: [AXButtonComponent, AXDecoratorIconComponent, NgClass],
291
+ imports: [AXButtonComponent],
311
292
  }]
312
293
  }] });
313
294
 
@@ -323,8 +304,6 @@ class AXDataPagerNumericSelectorComponent extends AXDataPagerChild {
323
304
  this._currentPage = 1;
324
305
  this._lastPage = 1;
325
306
  this._loading = false;
326
- this.localeService = inject(AXLocaleService);
327
- this.isRtl = this.localeService.isRtl;
328
307
  /**
329
308
  * @ignore
330
309
  */
@@ -350,7 +329,7 @@ class AXDataPagerNumericSelectorComponent extends AXDataPagerChild {
350
329
  // Add ellipsis button for previous pages if needed
351
330
  if (start > 1) {
352
331
  this._items.push({
353
- iconClass: this.isRtl() ? 'ax-icon-chevron-right' : 'ax-icon-chevron-left',
332
+ iconClass: 'ax-icon-chevron-left',
354
333
  data: start - 1,
355
334
  });
356
335
  }
@@ -364,7 +343,7 @@ class AXDataPagerNumericSelectorComponent extends AXDataPagerChild {
364
343
  // Add ellipsis button for next pages if needed
365
344
  if (end < this._lastPage) {
366
345
  this._items.push({
367
- iconClass: this.isRtl() ? 'ax-icon-chevron-left' : 'ax-icon-chevron-right',
346
+ iconClass: 'ax-icon-chevron-right',
368
347
  data: end + 1,
369
348
  });
370
349
  }
@@ -376,20 +355,10 @@ class AXDataPagerNumericSelectorComponent extends AXDataPagerChild {
376
355
  _handleOnItemClick(e) {
377
356
  if (this._parent.readonly || this._parent.disabled)
378
357
  return;
379
- // if (e.iconClass === 'ax-icon-chevron-right') {
380
- // debugger;
381
- // this._parent.goNextPage();
382
- // } else if (e.iconClass === 'ax-icon-chevron-left') {
383
- // this._parent.goPrevPage();
384
- // } else {
385
- // this._parent.goToPage(Number(e.data));
386
- // }
387
- const nextIcon = this.isRtl() ? 'ax-icon-chevron-left' : 'ax-icon-chevron-right';
388
- const prevIcon = this.isRtl() ? 'ax-icon-chevron-right' : 'ax-icon-chevron-left';
389
- if (e.iconClass === nextIcon) {
358
+ if (e.iconClass === 'ax-icon-chevron-right') {
390
359
  this._parent.goNextPage();
391
360
  }
392
- else if (e.iconClass === prevIcon) {
361
+ else if (e.iconClass === 'ax-icon-chevron-left') {
393
362
  this._parent.goPrevPage();
394
363
  }
395
364
  else {
@@ -397,7 +366,7 @@ class AXDataPagerNumericSelectorComponent extends AXDataPagerChild {
397
366
  }
398
367
  }
399
368
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXDataPagerNumericSelectorComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
400
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXDataPagerNumericSelectorComponent, isStandalone: true, selector: "ax-data-pager-numeric-selector", providers: [
369
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: AXDataPagerNumericSelectorComponent, isStandalone: true, selector: "ax-data-pager-numeric-selector", host: { properties: { "attr.dir": "'ltr'" }, classAttribute: "ax-data-pager-nav-ltr" }, providers: [
401
370
  {
402
371
  provide: AXDataPagerChild,
403
372
  useExisting: AXDataPagerNumericSelectorComponent,
@@ -411,13 +380,7 @@ class AXDataPagerNumericSelectorComponent extends AXDataPagerChild {
411
380
  look="blank"
412
381
  (onClick)="_handleOnItemClick({ data: 1 })"
413
382
  >
414
- <ax-icon
415
- class="ax-icon"
416
- [ngClass]="{
417
- 'ax-icon-chevron-double-left': !isRtl(),
418
- 'ax-icon-chevron-double-right': isRtl(),
419
- }"
420
- ></ax-icon>
383
+ <i class="ax-icon ax-data-pager-nav-icon ax-icon-chevron-double-left" aria-hidden="true"></i>
421
384
  </ax-button>
422
385
 
423
386
  @for (item of _items; track $index) {
@@ -430,7 +393,7 @@ class AXDataPagerNumericSelectorComponent extends AXDataPagerChild {
430
393
  (onClick)="_handleOnItemClick(item)"
431
394
  >
432
395
  @if (item.iconClass) {
433
- <ax-icon class="ax-icon" [ngClass]="item.iconClass"></ax-icon>
396
+ <i class="ax-icon ax-data-pager-nav-icon" [ngClass]="item.iconClass" aria-hidden="true"></i>
434
397
  }
435
398
  </ax-button>
436
399
  }
@@ -441,20 +404,18 @@ class AXDataPagerNumericSelectorComponent extends AXDataPagerChild {
441
404
  look="blank"
442
405
  (onClick)="_handleOnItemClick({ data: _lastPage })"
443
406
  >
444
- <ax-icon
445
- class="ax-icon"
446
- [ngClass]="{
447
- 'ax-icon-chevron-double-left': isRtl(),
448
- 'ax-icon-chevron-double-right': !isRtl(),
449
- }"
450
- ></ax-icon>
407
+ <i class="ax-icon ax-data-pager-nav-icon ax-icon-chevron-double-right" aria-hidden="true"></i>
451
408
  </ax-button>
452
- `, isInline: true, dependencies: [{ kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "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"] }], encapsulation: i0.ViewEncapsulation.None }); }
409
+ `, isInline: true, dependencies: [{ kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], encapsulation: i0.ViewEncapsulation.None }); }
453
410
  }
454
411
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXDataPagerNumericSelectorComponent, decorators: [{
455
412
  type: Component,
456
413
  args: [{
457
414
  selector: 'ax-data-pager-numeric-selector',
415
+ host: {
416
+ class: 'ax-data-pager-nav-ltr',
417
+ '[attr.dir]': "'ltr'",
418
+ },
458
419
  template: `
459
420
  <ax-button
460
421
  class="ax-sm"
@@ -462,13 +423,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
462
423
  look="blank"
463
424
  (onClick)="_handleOnItemClick({ data: 1 })"
464
425
  >
465
- <ax-icon
466
- class="ax-icon"
467
- [ngClass]="{
468
- 'ax-icon-chevron-double-left': !isRtl(),
469
- 'ax-icon-chevron-double-right': isRtl(),
470
- }"
471
- ></ax-icon>
426
+ <i class="ax-icon ax-data-pager-nav-icon ax-icon-chevron-double-left" aria-hidden="true"></i>
472
427
  </ax-button>
473
428
 
474
429
  @for (item of _items; track $index) {
@@ -481,7 +436,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
481
436
  (onClick)="_handleOnItemClick(item)"
482
437
  >
483
438
  @if (item.iconClass) {
484
- <ax-icon class="ax-icon" [ngClass]="item.iconClass"></ax-icon>
439
+ <i class="ax-icon ax-data-pager-nav-icon" [ngClass]="item.iconClass" aria-hidden="true"></i>
485
440
  }
486
441
  </ax-button>
487
442
  }
@@ -492,13 +447,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
492
447
  look="blank"
493
448
  (onClick)="_handleOnItemClick({ data: _lastPage })"
494
449
  >
495
- <ax-icon
496
- class="ax-icon"
497
- [ngClass]="{
498
- 'ax-icon-chevron-double-left': isRtl(),
499
- 'ax-icon-chevron-double-right': !isRtl(),
500
- }"
501
- ></ax-icon>
450
+ <i class="ax-icon ax-data-pager-nav-icon ax-icon-chevron-double-right" aria-hidden="true"></i>
502
451
  </ax-button>
503
452
  `,
504
453
  encapsulation: ViewEncapsulation.None,
@@ -510,7 +459,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
510
459
  AXUnsubscriber,
511
460
  { provide: AXComponent, useExisting: AXDataPagerNumericSelectorComponent },
512
461
  ],
513
- imports: [AXButtonComponent, AXDecoratorIconComponent, NgClass],
462
+ imports: [AXButtonComponent, NgClass],
514
463
  }]
515
464
  }] });
516
465
 
@@ -634,11 +583,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
634
583
  * @category Components
635
584
  */
636
585
  class AXDataPagerPrevButtonsComponent extends AXDataPagerChild {
637
- constructor() {
638
- super(...arguments);
639
- this.localeService = inject(AXLocaleService);
640
- this.isRtl = this.localeService.isRtl;
641
- }
642
586
  /**
643
587
  * @ignore
644
588
  */
@@ -662,7 +606,7 @@ class AXDataPagerPrevButtonsComponent extends AXDataPagerChild {
662
606
  this._parent.goPrevPage();
663
607
  }
664
608
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXDataPagerPrevButtonsComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
665
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.6", type: AXDataPagerPrevButtonsComponent, isStandalone: true, selector: "ax-data-pager-prev-buttons", providers: [
609
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.6", type: AXDataPagerPrevButtonsComponent, isStandalone: true, selector: "ax-data-pager-prev-buttons", host: { properties: { "attr.dir": "'ltr'" }, classAttribute: "ax-data-pager-nav-ltr" }, providers: [
666
610
  { provide: AXDataPagerChild, useExisting: AXDataPagerPrevButtonsComponent },
667
611
  AXUnsubscriber,
668
612
  { provide: AXComponent, useExisting: AXDataPagerPrevButtonsComponent },
@@ -671,62 +615,48 @@ class AXDataPagerPrevButtonsComponent extends AXDataPagerChild {
671
615
  [disabled]="disabled"
672
616
  look="blank"
673
617
  class="ax-sm"
674
- title="Go to the last page"
618
+ title="Go to the first page"
675
619
  (onClick)="_emitOnFirstPageClick($event)"
676
620
  >
677
- <ax-icon
678
- class="ax-icon text-xl"
679
- [ngClass]="{ 'ax-icon-chevron-double-right': isRtl(), 'ax-icon-chevron-double-left': !isRtl() }"
680
- ></ax-icon>
621
+ <i class="ax-icon text-xl ax-data-pager-nav-icon ax-icon-chevron-double-left" aria-hidden="true"></i>
681
622
  </ax-button>
682
623
  <ax-button
683
624
  [disabled]="disabled"
684
625
  look="blank"
685
626
  class="ax-sm"
686
- title="Go to the next page"
627
+ title="Go to the previous page"
687
628
  (onClick)="_emitOnPrevPageClick($event)"
688
629
  >
689
- <ax-icon
690
- class="ax-icon text-xl"
691
- [ngClass]="{
692
- 'ax-icon-chevron-left': !isRtl(),
693
- 'ax-icon-chevron-right': isRtl(),
694
- }"
695
- ></ax-icon>
630
+ <i class="ax-icon text-xl ax-data-pager-nav-icon ax-icon-chevron-left" aria-hidden="true"></i>
696
631
  </ax-button>
697
- `, isInline: true, dependencies: [{ kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "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"] }], encapsulation: i0.ViewEncapsulation.None }); }
632
+ `, isInline: true, dependencies: [{ kind: "component", type: AXButtonComponent, selector: "ax-button", inputs: ["disabled", "tabIndex", "color", "look", "text", "toggleable", "selected", "iconOnly", "type", "loadingText"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange", "loadingTextChange"] }], encapsulation: i0.ViewEncapsulation.None }); }
698
633
  }
699
634
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXDataPagerPrevButtonsComponent, decorators: [{
700
635
  type: Component,
701
636
  args: [{
702
637
  selector: 'ax-data-pager-prev-buttons',
638
+ host: {
639
+ class: 'ax-data-pager-nav-ltr',
640
+ '[attr.dir]': "'ltr'",
641
+ },
703
642
  template: `
704
643
  <ax-button
705
644
  [disabled]="disabled"
706
645
  look="blank"
707
646
  class="ax-sm"
708
- title="Go to the last page"
647
+ title="Go to the first page"
709
648
  (onClick)="_emitOnFirstPageClick($event)"
710
649
  >
711
- <ax-icon
712
- class="ax-icon text-xl"
713
- [ngClass]="{ 'ax-icon-chevron-double-right': isRtl(), 'ax-icon-chevron-double-left': !isRtl() }"
714
- ></ax-icon>
650
+ <i class="ax-icon text-xl ax-data-pager-nav-icon ax-icon-chevron-double-left" aria-hidden="true"></i>
715
651
  </ax-button>
716
652
  <ax-button
717
653
  [disabled]="disabled"
718
654
  look="blank"
719
655
  class="ax-sm"
720
- title="Go to the next page"
656
+ title="Go to the previous page"
721
657
  (onClick)="_emitOnPrevPageClick($event)"
722
658
  >
723
- <ax-icon
724
- class="ax-icon text-xl"
725
- [ngClass]="{
726
- 'ax-icon-chevron-left': !isRtl(),
727
- 'ax-icon-chevron-right': isRtl(),
728
- }"
729
- ></ax-icon>
659
+ <i class="ax-icon text-xl ax-data-pager-nav-icon ax-icon-chevron-left" aria-hidden="true"></i>
730
660
  </ax-button>
731
661
  `,
732
662
  encapsulation: ViewEncapsulation.None,
@@ -735,7 +665,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
735
665
  AXUnsubscriber,
736
666
  { provide: AXComponent, useExisting: AXDataPagerPrevButtonsComponent },
737
667
  ],
738
- imports: [AXButtonComponent, AXDecoratorIconComponent, NgClass],
668
+ imports: [AXButtonComponent],
739
669
  }]
740
670
  }] });
741
671
 
@@ -996,7 +926,7 @@ class AXDataPagerComponent extends MXValueComponent {
996
926
  multi: true,
997
927
  },
998
928
  { provide: AXComponent, useExisting: AXDataPagerComponent },
999
- ], 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: ["@layer properties;@layer components{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;width:100%;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2);overflow-x:auto;padding-inline:calc(var(--spacing, .25rem) * 0);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5)}ax-data-pager ax-button-group{display:flex!important;gap:calc(var(--spacing, .25rem) * 4)!important;border-radius:0!important;border-style:var(--tw-border-style)!important;border-width:0px!important}ax-data-pager ax-button-group ax-button-item{border-radius:0!important;border-style:var(--tw-border-style)!important;border-width:0px!important;padding:calc(var(--spacing, .25rem) * 0)!important}ax-data-pager ax-button-group ax-button-item.ax-state-selected{border-style:var(--tw-border-style)!important;border-width:1px!important}ax-data-pager ax-data-pager-input-selector .ax-input{width:calc(var(--spacing, .25rem) * 16)!important;max-width:calc(var(--spacing, .25rem) * 40)!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:calc(var(--spacing, .25rem) * 2)}:is(ax-data-pager ax-data-pager-next-buttons,ax-data-pager ax-data-pager-prev-buttons,ax-data-pager ax-data-pager-numeric-selector) ax-skeleton{width:calc(var(--spacing, .25rem) * 28);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:.2}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,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{margin-inline-end:.2;white-space:nowrap;color:rgba(var(--ax-sys-color-lightest-surface))}}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading: initial;--tw-border-style: solid}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\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" }], encapsulation: i0.ViewEncapsulation.None }); }
929
+ ], usesInheritance: true, ngImport: i0, template: "@switch (displayMode) {\n @case ('full') {\n <ax-prefix class=\"ax-full-prefix ax-data-pager-nav-ltr\" dir=\"ltr\">\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 ax-data-pager-nav-ltr\" dir=\"ltr\">\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: ["@layer properties;@layer components{ax-data-pager .ax-data-pager-nav-ltr,ax-data-pager ax-data-pager-numeric-selector,ax-data-pager ax-data-pager-prev-buttons,ax-data-pager ax-data-pager-next-buttons{direction:ltr}ax-data-pager .ax-data-pager-nav-icon{direction:ltr;unicode-bidi:isolate;display:inline-block}html[dir=rtl] ax-data-pager .ax-data-pager-nav-icon{transform:none}html[dir=rtl] ax-data-pager .ax-data-pager-nav-icon:before,html[dir=rtl] ax-data-pager .ax-data-pager-nav-icon:after{transform:none}ax-data-pager{display:flex;width:100%;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2);overflow-x:auto;padding-inline:calc(var(--spacing, .25rem) * 0);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5)}ax-data-pager ax-button-group{display:flex!important;gap:calc(var(--spacing, .25rem) * 4)!important;border-radius:0!important;border-style:var(--tw-border-style)!important;border-width:0px!important}ax-data-pager ax-button-group ax-button-item{border-radius:0!important;border-style:var(--tw-border-style)!important;border-width:0px!important;padding:calc(var(--spacing, .25rem) * 0)!important}ax-data-pager ax-button-group ax-button-item.ax-state-selected{border-style:var(--tw-border-style)!important;border-width:1px!important}ax-data-pager ax-data-pager-input-selector .ax-input{width:calc(var(--spacing, .25rem) * 16)!important;max-width:calc(var(--spacing, .25rem) * 40)!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:calc(var(--spacing, .25rem) * 2)}:is(ax-data-pager ax-data-pager-next-buttons,ax-data-pager ax-data-pager-prev-buttons,ax-data-pager ax-data-pager-numeric-selector) ax-skeleton{width:calc(var(--spacing, .25rem) * 28);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:.2}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,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{margin-inline-end:.2;white-space:nowrap;color:rgba(var(--ax-sys-color-lightest-surface))}}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading: initial;--tw-border-style: solid}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\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" }], encapsulation: i0.ViewEncapsulation.None }); }
1000
930
  }
1001
931
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AXDataPagerComponent, decorators: [{
1002
932
  type: Component,
@@ -1016,7 +946,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImpor
1016
946
  AXDataPagerPrevButtonsComponent,
1017
947
  AXDataPagerInputSelectorComponent,
1018
948
  AXDataPagerNextButtonsComponent,
1019
- ], 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: ["@layer properties;@layer components{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;width:100%;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2);overflow-x:auto;padding-inline:calc(var(--spacing, .25rem) * 0);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5)}ax-data-pager ax-button-group{display:flex!important;gap:calc(var(--spacing, .25rem) * 4)!important;border-radius:0!important;border-style:var(--tw-border-style)!important;border-width:0px!important}ax-data-pager ax-button-group ax-button-item{border-radius:0!important;border-style:var(--tw-border-style)!important;border-width:0px!important;padding:calc(var(--spacing, .25rem) * 0)!important}ax-data-pager ax-button-group ax-button-item.ax-state-selected{border-style:var(--tw-border-style)!important;border-width:1px!important}ax-data-pager ax-data-pager-input-selector .ax-input{width:calc(var(--spacing, .25rem) * 16)!important;max-width:calc(var(--spacing, .25rem) * 40)!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:calc(var(--spacing, .25rem) * 2)}:is(ax-data-pager ax-data-pager-next-buttons,ax-data-pager ax-data-pager-prev-buttons,ax-data-pager ax-data-pager-numeric-selector) ax-skeleton{width:calc(var(--spacing, .25rem) * 28);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:.2}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,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{margin-inline-end:.2;white-space:nowrap;color:rgba(var(--ax-sys-color-lightest-surface))}}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading: initial;--tw-border-style: solid}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
949
+ ], template: "@switch (displayMode) {\n @case ('full') {\n <ax-prefix class=\"ax-full-prefix ax-data-pager-nav-ltr\" dir=\"ltr\">\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 ax-data-pager-nav-ltr\" dir=\"ltr\">\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: ["@layer properties;@layer components{ax-data-pager .ax-data-pager-nav-ltr,ax-data-pager ax-data-pager-numeric-selector,ax-data-pager ax-data-pager-prev-buttons,ax-data-pager ax-data-pager-next-buttons{direction:ltr}ax-data-pager .ax-data-pager-nav-icon{direction:ltr;unicode-bidi:isolate;display:inline-block}html[dir=rtl] ax-data-pager .ax-data-pager-nav-icon{transform:none}html[dir=rtl] ax-data-pager .ax-data-pager-nav-icon:before,html[dir=rtl] ax-data-pager .ax-data-pager-nav-icon:after{transform:none}ax-data-pager{display:flex;width:100%;flex-wrap:nowrap;align-items:center;justify-content:space-between;gap:calc(var(--spacing, .25rem) * 2);overflow-x:auto;padding-inline:calc(var(--spacing, .25rem) * 0);padding-block:calc(var(--spacing, .25rem) * 2);font-size:var(--text-sm, .875rem);line-height:var(--tw-leading, var(--text-sm--line-height, calc(1.25 / .875)));--tw-leading: calc(var(--spacing, .25rem) * 5);line-height:calc(var(--spacing, .25rem) * 5)}ax-data-pager ax-button-group{display:flex!important;gap:calc(var(--spacing, .25rem) * 4)!important;border-radius:0!important;border-style:var(--tw-border-style)!important;border-width:0px!important}ax-data-pager ax-button-group ax-button-item{border-radius:0!important;border-style:var(--tw-border-style)!important;border-width:0px!important;padding:calc(var(--spacing, .25rem) * 0)!important}ax-data-pager ax-button-group ax-button-item.ax-state-selected{border-style:var(--tw-border-style)!important;border-width:1px!important}ax-data-pager ax-data-pager-input-selector .ax-input{width:calc(var(--spacing, .25rem) * 16)!important;max-width:calc(var(--spacing, .25rem) * 40)!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:calc(var(--spacing, .25rem) * 2)}:is(ax-data-pager ax-data-pager-next-buttons,ax-data-pager ax-data-pager-prev-buttons,ax-data-pager ax-data-pager-numeric-selector) ax-skeleton{width:calc(var(--spacing, .25rem) * 28);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:.2}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,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{margin-inline-end:.2;white-space:nowrap;color:rgba(var(--ax-sys-color-lightest-surface))}}@property --tw-leading{syntax: \"*\"; inherits: false;}@property --tw-border-style{syntax: \"*\"; inherits: false; initial-value: solid;}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-leading: initial;--tw-border-style: solid}}}\n/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */\n"] }]
1020
950
  }], ctorParameters: () => [], propDecorators: { isLoading: [{
1021
951
  type: Input
1022
952
  }], size: [{