@eui/components 19.1.2-snapshot-1741681025211 → 19.1.2-snapshot-1741955106555

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 (105) hide show
  1. package/docs/components/EuiAutocompleteComponent.html +377 -0
  2. package/docs/components/EuiAutocompleteOptionComponent.html +50 -0
  3. package/docs/components/EuiAutocompleteOptionGroupComponent.html +38 -0
  4. package/docs/components/EuiBlockDocumentComponent.html +64 -0
  5. package/docs/components/EuiDropdownComponent.html +25 -1
  6. package/docs/components/EuiProgressBarComponent.html +115 -109
  7. package/docs/components/EuiTableV2Component.html +228 -63
  8. package/docs/components/EuiTableV2FilterComponent.html +39 -0
  9. package/docs/components/EuiTableV2SelectableHeaderComponent.html +33 -0
  10. package/docs/components/EuiTableV2SelectableRowComponent.html +45 -0
  11. package/docs/components/EuiTableV2SortableColComponent.html +47 -0
  12. package/docs/dependencies.html +2 -2
  13. package/docs/directives/EuiDropdownContentDirective.html +69 -0
  14. package/docs/directives/EuiTableV2ExpandableRowDirective.html +7 -0
  15. package/docs/directives/EuiTableV2StickyColDirective.html +7 -0
  16. package/docs/injectables/EuiTableV2SelectableRowService.html +106 -0
  17. package/docs/injectables/EuiTableV2SortService.html +47 -0
  18. package/docs/js/menu-wc.js +33 -16
  19. package/docs/js/menu-wc_es5.js +1 -1
  20. package/docs/js/search/search_index.js +2 -2
  21. package/docs/modules/EuiAutocompleteModule.html +11 -0
  22. package/docs/modules/EuiBlockDocumentModule.html +22 -4
  23. package/docs/modules/EuiProgressBarModule.html +2 -14
  24. package/docs/modules/EuiTableV2Module.html +11 -0
  25. package/docs/pipes/EuiTableV2HighlightPipe.html +26 -0
  26. package/eui-autocomplete/eui-autocomplete-option/eui-autocomplete-option.component.d.ts +29 -0
  27. package/eui-autocomplete/eui-autocomplete-option/eui-autocomplete-option.component.d.ts.map +1 -1
  28. package/eui-autocomplete/eui-autocomplete-option-group/eui-autocomplete-option-group.component.d.ts +17 -0
  29. package/eui-autocomplete/eui-autocomplete-option-group/eui-autocomplete-option-group.component.d.ts.map +1 -1
  30. package/eui-autocomplete/eui-autocomplete.component.d.ts +311 -1
  31. package/eui-autocomplete/eui-autocomplete.component.d.ts.map +1 -1
  32. package/eui-autocomplete/eui-autocomplete.module.d.ts +12 -0
  33. package/eui-autocomplete/eui-autocomplete.module.d.ts.map +1 -1
  34. package/eui-autocomplete/validators/force-selection-from-data.validator.d.ts +1 -1
  35. package/eui-block-document/eui-block-document.component.d.ts +41 -1
  36. package/eui-block-document/eui-block-document.component.d.ts.map +1 -1
  37. package/eui-block-document/eui-block-document.module.d.ts +12 -2
  38. package/eui-block-document/eui-block-document.module.d.ts.map +1 -1
  39. package/eui-date-range-selector/eui-date-range-selector.component.d.ts +10 -1
  40. package/eui-date-range-selector/eui-date-range-selector.component.d.ts.map +1 -1
  41. package/eui-datepicker/eui-datepicker.component.d.ts +10 -1
  42. package/eui-datepicker/eui-datepicker.component.d.ts.map +1 -1
  43. package/eui-dropdown/directives/eui-dropdown-content.directive.d.ts +1 -0
  44. package/eui-dropdown/directives/eui-dropdown-content.directive.d.ts.map +1 -1
  45. package/eui-dropdown/eui-dropdown.component.d.ts +2 -1
  46. package/eui-dropdown/eui-dropdown.component.d.ts.map +1 -1
  47. package/eui-progress-bar/eui-progress-bar.component.d.ts +16 -9
  48. package/eui-progress-bar/eui-progress-bar.component.d.ts.map +1 -1
  49. package/eui-progress-bar/eui-progress-bar.module.d.ts +5 -17
  50. package/eui-progress-bar/eui-progress-bar.module.d.ts.map +1 -1
  51. package/eui-table-v2/directives/eui-table-v2-expandable-row.directive.d.ts +4 -0
  52. package/eui-table-v2/directives/eui-table-v2-expandable-row.directive.d.ts.map +1 -1
  53. package/eui-table-v2/directives/eui-table-v2-sticky-col.directive.d.ts +4 -0
  54. package/eui-table-v2/directives/eui-table-v2-sticky-col.directive.d.ts.map +1 -1
  55. package/eui-table-v2/eui-table-v2.component.d.ts +273 -1
  56. package/eui-table-v2/eui-table-v2.component.d.ts.map +1 -1
  57. package/eui-table-v2/eui-table-v2.module.d.ts +12 -0
  58. package/eui-table-v2/eui-table-v2.module.d.ts.map +1 -1
  59. package/eui-table-v2/filter/eui-table-v2-filter.component.d.ts +21 -0
  60. package/eui-table-v2/filter/eui-table-v2-filter.component.d.ts.map +1 -1
  61. package/eui-table-v2/pipes/eui-table-v2-highlight.pipe.d.ts +19 -0
  62. package/eui-table-v2/pipes/eui-table-v2-highlight.pipe.d.ts.map +1 -1
  63. package/eui-table-v2/selectable-header/eui-table-v2-selectable-header.component.d.ts +19 -0
  64. package/eui-table-v2/selectable-header/eui-table-v2-selectable-header.component.d.ts.map +1 -1
  65. package/eui-table-v2/selectable-row/eui-table-v2-selectable-row.component.d.ts +28 -0
  66. package/eui-table-v2/selectable-row/eui-table-v2-selectable-row.component.d.ts.map +1 -1
  67. package/eui-table-v2/services/eui-table-v2-selectable-row.service.d.ts +71 -0
  68. package/eui-table-v2/services/eui-table-v2-selectable-row.service.d.ts.map +1 -1
  69. package/eui-table-v2/services/eui-table-v2-sort.service.d.ts +22 -0
  70. package/eui-table-v2/services/eui-table-v2-sort.service.d.ts.map +1 -1
  71. package/eui-table-v2/sortable-col/eui-table-v2-sortable-col.component.d.ts +32 -0
  72. package/eui-table-v2/sortable-col/eui-table-v2-sortable-col.component.d.ts.map +1 -1
  73. package/fesm2022/eui-components-eui-autocomplete.mjs +354 -4
  74. package/fesm2022/eui-components-eui-autocomplete.mjs.map +1 -1
  75. package/fesm2022/eui-components-eui-block-document.mjs +56 -7
  76. package/fesm2022/eui-components-eui-block-document.mjs.map +1 -1
  77. package/fesm2022/eui-components-eui-card.mjs +1 -1
  78. package/fesm2022/eui-components-eui-card.mjs.map +1 -1
  79. package/fesm2022/eui-components-eui-date-range-selector.mjs +7 -3
  80. package/fesm2022/eui-components-eui-date-range-selector.mjs.map +1 -1
  81. package/fesm2022/eui-components-eui-datepicker.mjs +7 -3
  82. package/fesm2022/eui-components-eui-datepicker.mjs.map +1 -1
  83. package/fesm2022/eui-components-eui-dropdown.mjs +12 -5
  84. package/fesm2022/eui-components-eui-dropdown.mjs.map +1 -1
  85. package/fesm2022/eui-components-eui-input-group.mjs +2 -2
  86. package/fesm2022/eui-components-eui-input-group.mjs.map +1 -1
  87. package/fesm2022/eui-components-eui-language-selector.mjs +1 -1
  88. package/fesm2022/eui-components-eui-language-selector.mjs.map +1 -1
  89. package/fesm2022/eui-components-eui-navbar.mjs +1 -1
  90. package/fesm2022/eui-components-eui-navbar.mjs.map +1 -1
  91. package/fesm2022/eui-components-eui-popover.mjs +2 -2
  92. package/fesm2022/eui-components-eui-popover.mjs.map +1 -1
  93. package/fesm2022/eui-components-eui-progress-bar.mjs +37 -31
  94. package/fesm2022/eui-components-eui-progress-bar.mjs.map +1 -1
  95. package/fesm2022/eui-components-eui-table-v2.mjs +482 -5
  96. package/fesm2022/eui-components-eui-table-v2.mjs.map +1 -1
  97. package/fesm2022/eui-components-eui-table.mjs +1 -1
  98. package/fesm2022/eui-components-eui-table.mjs.map +1 -1
  99. package/fesm2022/eui-components-eui-tree.mjs +2 -2
  100. package/fesm2022/eui-components-eui-tree.mjs.map +1 -1
  101. package/fesm2022/eui-components-eui-user-profile.mjs +1 -1
  102. package/fesm2022/eui-components-eui-user-profile.mjs.map +1 -1
  103. package/fesm2022/eui-components-layout.mjs +1 -1
  104. package/fesm2022/eui-components-layout.mjs.map +1 -1
  105. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"eui-components-eui-table-v2.mjs","sources":["../../eui-table-v2/services/eui-table-v2-selectable-row.service.ts","../../eui-table-v2/services/eui-table-v2-sort.service.ts","../../eui-table-v2/eui-table-v2.component.ts","../../eui-table-v2/eui-table-v2.component.html","../../eui-table-v2/directives/eui-table-v2-sticky-col.directive.ts","../../eui-table-v2/directives/eui-table-v2-expandable-row.directive.ts","../../eui-table-v2/selectable-header/eui-table-v2-selectable-header.component.ts","../../eui-table-v2/selectable-header/eui-table-v2-selectable-header.component.html","../../eui-table-v2/selectable-row/eui-table-v2-selectable-row.component.ts","../../eui-table-v2/selectable-row/eui-table-v2-selectable-row.component.html","../../eui-table-v2/filter/eui-table-v2-filter.component.ts","../../eui-table-v2/filter/eui-table-v2-filter.component.html","../../eui-table-v2/pipes/eui-table-v2-highlight.pipe.ts","../../eui-table-v2/sortable-col/eui-table-v2-sortable-col.component.ts","../../eui-table-v2/sortable-col/eui-table-v2-sortable-col.component.html","../../eui-table-v2/eui-table-v2.module.ts","../../eui-table-v2/eui-components-eui-table-v2.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n@Injectable()\nexport class EuiTableV2SelectableRowService<DATA> {\n \n public selectedRows$: BehaviorSubject<DATA[]> = new BehaviorSubject([]);\n public isAllRowsSelected$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n \n private lastSelectedRow: DATA = null;\n private rows: DATA[] = [];\n private propId = 'id';\n\n get selectedRows(): Observable<DATA[]> {\n return this.selectedRows$.asObservable();\n }\n\n get isAllRowsSelected(): Observable<boolean> {\n return this.isAllRowsSelected$.asObservable();\n }\n\n public setPropId(value: string): void {\n this.propId = value;\n }\n\n public getPropId(): string {\n return this.propId;\n }\n\n public registerRow(row: DATA): void {\n if (row && !this.rows.find((r) => r[this.propId] === row[this.propId])) {\n this.rows.push(row);\n\n if (this.rows.length > this.selectedRows$.value.length && this.isAllRowsSelected$.value) {\n this.isAllRowsSelected$.next(false);\n }\n\n if (this.rows.length <= this.selectedRows$.value.length && this.rows.every((r) => this.selectedRows$.value.includes(r))) {\n this.isAllRowsSelected$.next(true);\n }\n }\n }\n\n public registerRows(rows: DATA[]): void {\n rows.forEach((row) => {\n this.registerRow(row);\n });\n }\n\n public unregisterRow(row: DATA): void {\n this.rows = this.rows.filter(r => r[this.propId] !== row[this.propId]);\n }\n\n public unregisterRows(): void {\n this.rows = [];\n }\n\n public selectRow(row: DATA): void {\n if (this.selectedRows$.value.indexOf(row) === -1) {\n this.selectedRows$.next([...this.selectedRows$.value, row]);\n }\n\n this.isAllRowsSelected$.next(this.selectedRows$.value.length === this.rows.length);\n this.lastSelectedRow = row;\n }\n\n public unselectRow(row: DATA): void {\n if (row && this.selectedRows$.value.find((r) => r[this.propId] === row[this.propId]) !== undefined) {\n const value = this.selectedRows$.value.filter((selected) => selected[this.propId] !== row[this.propId]);\n this.selectedRows$.next(value);\n this.isAllRowsSelected$.next(false);\n }\n }\n\n public selectRows(rows: DATA[]): void {\n this.selectedRows$.next([...rows]);\n this.isAllRowsSelected$.next(this.rows.length > 0 && this.rows.length === this.selectedRows$.value.length);\n this.lastSelectedRow = rows[rows.length - 1];\n }\n\n public selectAllRows(): void {\n this.selectedRows$.next([...this.rows]);\n this.isAllRowsSelected$.next(true);\n this.lastSelectedRow = this.rows[this.rows.length - 1];\n }\n\n public unselectAllRows(): void {\n this.selectedRows$.next([]);\n this.isAllRowsSelected$.next(false);\n this.lastSelectedRow = null;\n }\n\n public getRows(): DATA[] {\n return this.rows;\n }\n\n public getLastSelectedRow(): DATA {\n return this.lastSelectedRow;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { Sort, SortOrder } from '../models/sort.model';\n\n@Injectable()\nexport class EuiTableV2SortService {\n public sorts$ = new BehaviorSubject<Sort[]>([]);\n\n get sorts(): Observable<Sort[]> {\n return this.sorts$.asObservable();\n }\n\n private isCurrentMultiSortable = false;\n\n setSort(sort: string, order: SortOrder, isMultiSortable: boolean): void {\n if (isMultiSortable && this.isCurrentMultiSortable) {\n let sortValues = this.sorts$.value;\n if (!order) {\n sortValues = this.sorts$.value.filter(s => s.sort !== sort);\n this.sorts$.next(sortValues);\n } else {\n if (this.sorts$.value.find(s => s.sort === sort)) {\n sortValues = this.sorts$.value.map(s => s.sort == sort ? ({ ...s, order }) : s);\n this.sorts$.next(sortValues);\n } else {\n this.sorts$.next([ ...sortValues, { sort, order } ]);\n }\n }\n } else {\n this.sorts$.next(sort && order ? [{ sort, order }] : []);\n }\n\n this.isCurrentMultiSortable = isMultiSortable;\n }\n\n setSorts(sorts: Sort[]): void {\n this.sorts$.next(sorts);\n this.isCurrentMultiSortable = sorts.length > 1;\n }\n}\n","import { Component, Input, ContentChildren, QueryList, AfterContentInit, TemplateRef, ViewChild, AfterViewInit, ElementRef, booleanAttribute, HostBinding,\n ViewEncapsulation, ChangeDetectionStrategy, OnDestroy, OnInit, Output, EventEmitter, SimpleChanges, OnChanges, numberAttribute, ChangeDetectorRef,\n Renderer2 } from '@angular/core';\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { BehaviorSubject, Observable, Subject, Subscription, combineLatest, debounceTime, skip, takeUntil } from 'rxjs';\nimport { ListRange } from '@angular/cdk/collections';\n\nimport { EuiPaginationEvent, EuiPaginatorComponent } from '@eui/components/eui-paginator';\nimport { EuiTemplateDirective } from '@eui/components/directives';\nimport { BaseStatesDirective } from '@eui/components/shared';\n\nimport { EuiTableV2SelectableRowService } from './services/eui-table-v2-selectable-row.service';\nimport { EuiTableV2FilterComponent } from './filter/eui-table-v2-filter.component';\nimport { EuiTableV2SortService } from './services/eui-table-v2-sort.service';\nimport { Sort, SortOrder } from './models/sort.model';\n\nexport enum ScrollinDirection {\n UP = 'UP',\n DOWN = 'DOWN',\n}\n\n@Component({\n selector: 'eui-table-v2, table[euiTableV2]',\n templateUrl: './eui-table-v2.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [EuiTableV2SelectableRowService, EuiTableV2SortService],\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [],\n },\n ],\n})\nexport class EuiTableV2Component<DATA = unknown> implements AfterContentInit, AfterViewInit, OnDestroy, OnInit, OnChanges {\n @HostBinding('class')\n public get cssClasses(): string {\n return [\n this.baseStatesDirective.getCssClasses('eui-table-default eui-table-v2'),\n this.isVirtualScroll ? 'eui-table-v2--virtual-scroll' : '',\n this.hasStickyHeader ? 'eui-table-v2--sticky eui-table-v2--sticky-header' : '',\n this.hasStickyFooter ? 'eui-table-v2--sticky eui-table-v2--sticky-footer' : '',\n this.hasStickyCols ? 'eui-table-v2--sticky eui-table-v2--sticky-cols' : '',\n this.isTableResponsive ? 'eui-table-default--responsive' : '',\n this.isColsOrderable ? 'eui-table-v2--cols-orderable' : '',\n this.isLoading ? 'eui-table-v2--loading' : '',\n ]\n .join(' ')\n .trim();\n }\n\n @Input() data: DATA[] = [];\n @Input() propId = 'id';\n @Input() itemSize = 41;\n @Input() paginator: EuiPaginatorComponent;\n @Input() filter: EuiTableV2FilterComponent;\n @Input() preselectedRows: DATA[] = [];\n\n @Input({ transform: booleanAttribute }) isVirtualScroll = false;\n @Input({ transform: booleanAttribute }) isVirtualScrollCache = false;\n @Input({ transform: booleanAttribute }) hasStickyHeader = false;\n @Input({ transform: booleanAttribute }) hasStickyFooter = false;\n @Input({ transform: booleanAttribute }) hasStickyCols = false;\n @Input({ transform: booleanAttribute }) isTableResponsive = false;\n @Input({ transform: booleanAttribute }) isAsync = false;\n @Input({ transform: numberAttribute }) virtualScrollAsyncItemsLength = 0;\n @Input({ transform: numberAttribute }) virtualScrollNbRows = 50;\n @Input({ transform: booleanAttribute }) isColsOrderable = false;\n @Input({ transform: booleanAttribute }) isLoading = false;\n @Input({ transform: booleanAttribute }) isSelectOnlyVisibleRows = true;\n @Input({ transform: booleanAttribute }) isTableBordered = false;\n\n protected headerTemplate: TemplateRef<HTMLElement>;\n protected bodyTemplate: TemplateRef<{ $implicit: DATA; index: number }>;\n protected footerTemplate: TemplateRef<HTMLElement>;\n protected noDataTemplate: TemplateRef<HTMLElement>;\n protected loading = [];\n protected nbCols: HTMLTableCellElement[] = [];\n protected dataRendered: DATA[] = [];\n protected cdkVirtualScrollViewportOverflowValue: ('hidden' | 'auto') = 'auto';\n\n @ContentChildren(EuiTemplateDirective) templates: QueryList<EuiTemplateDirective>;\n\n @ViewChild('cdkVirtualScrollViewport', { static: false }) protected cdkVirtualScrollViewport: CdkVirtualScrollViewport;\n @ViewChild('cdkVirtualScrollViewportElement', { static: false, read: ElementRef }) protected cdkVirtualScrollViewportElement: ElementRef;\n @ViewChild('theadRef') theadRef: ElementRef<HTMLElement>;\n @ViewChild('tbodyRef') tbodyRef: ElementRef<HTMLElement>;\n @ViewChild('tfootRef') tfootRef: ElementRef<HTMLElement>;\n\n @Output() scrollChange = new EventEmitter();\n @Output() rowsSelect = new EventEmitter<DATA[]>();\n @Output() sortChange = new EventEmitter<Sort[]>();\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private virtualScrollLastMultiple = 0;\n private virtualScrollSpliceFrom = 0;\n private scrolledIndex = 0;\n private nbItemDisplayed = 0;\n private scrollingDirection: ScrollinDirection;\n private mutationObserver: MutationObserver;\n private dataSrc: DATA[] = [];\n private page = 0;\n private pageSize = 0;\n private tableFeaturesHandlerSubscription = new Subscription();\n private filteredData: DATA[] = [];\n\n constructor(private elementRef: ElementRef,\n private cd: ChangeDetectorRef,\n private euiTableV2SelectableRowService: EuiTableV2SelectableRowService<DATA>,\n private euiTableV2SortService: EuiTableV2SortService,\n private baseStatesDirective: BaseStatesDirective,\n private renderer: Renderer2,\n ) {}\n\n ngOnChanges(c: SimpleChanges): void {\n if (!this.data) {\n this.data = [];\n }\n\n this.euiTableV2SelectableRowService.setPropId(this.propId);\n if (this.isVirtualScroll) {\n if (c.data && c.data.isFirstChange()) {\n this.dataRendered = [...c.data.currentValue, ...Array.from({ length: this.virtualScrollAsyncItemsLength - c.data.currentValue.length })];\n\n this.euiTableV2SelectableRowService.unregisterRows();\n this.euiTableV2SelectableRowService.registerRows(this.dataRendered);\n }\n\n if (c.data && !c.data.isFirstChange()) {\n if (this.isAsync) {\n const source = [...this.dataRendered];\n if (this.isVirtualScrollCache) {\n this.dataRendered = [...source.slice(0, this.virtualScrollSpliceFrom), ...c.data.currentValue, ...source.slice(this.virtualScrollSpliceFrom + this.virtualScrollNbRows)];\n } else {\n this.dataRendered = [\n ...Array.from({ length: this.virtualScrollSpliceFrom - this.nbItemDisplayed }),\n ...source.slice(this.virtualScrollSpliceFrom - this.nbItemDisplayed, this.virtualScrollSpliceFrom),\n ...c.data.currentValue,\n ...source.slice(this.virtualScrollSpliceFrom + this.virtualScrollNbRows, this.virtualScrollSpliceFrom + this.virtualScrollNbRows + this.nbItemDisplayed),\n ...Array.from({ length: this.virtualScrollAsyncItemsLength - (this.virtualScrollSpliceFrom + this.virtualScrollNbRows + this.nbItemDisplayed) }),\n ];\n }\n\n if (c && c.virtualScrollAsyncItemsLength) {\n if (c.virtualScrollAsyncItemsLength.previousValue > c.virtualScrollAsyncItemsLength.currentValue) {\n this.dataRendered = this.dataRendered.slice(0, c.virtualScrollAsyncItemsLength.currentValue);\n } else {\n this.dataRendered = [...c.data.currentValue, ...Array.from({ length: this.virtualScrollAsyncItemsLength - c.data.currentValue.length })];\n }\n }\n\n this.euiTableV2SelectableRowService.unregisterRows();\n this.euiTableV2SelectableRowService.registerRows(this.dataRendered);\n\n if (this.scrollingDirection === ScrollinDirection.DOWN) {\n if ((this.hasUndefinedInRange(this.scrolledIndex, this.nbItemDisplayed, this.dataRendered) !== -1 ||\n this.scrolledIndex === this.virtualScrollSpliceFrom &&\n !this.dataRendered[this.scrolledIndex - 1]) &&\n this.hasUndefinedInRange(this.scrolledIndex, this.nbItemDisplayed, this.dataRendered) !== this.dataRendered.length\n ) {\n // console.log('reposition down')\n this.cdkVirtualScrollViewport.scrollToIndex(this.virtualScrollSpliceFrom + 1);\n }\n }\n\n if (this.scrollingDirection === ScrollinDirection.UP) {\n if (this.hasUndefinedInRange(this.scrolledIndex, this.nbItemDisplayed, this.dataRendered) !== -1) {\n // console.log('reposition up')\n this.cdkVirtualScrollViewport.scrollToIndex(this.virtualScrollSpliceFrom + 1);\n }\n }\n\n this.stickyFeatureHandler();\n }\n }\n } else {\n if (c && c.data) {\n const lengthChanged = this.dataSrc.length !== c.data.currentValue.length;\n this.dataSrc = c.data.currentValue ? [...c.data.currentValue] : [];\n\n if (this.paginator && lengthChanged) {\n this.paginator.goFirstPage({ emitEvent: !c.data.firstChange });\n }\n\n if (!this.isAsync && !c.data.isFirstChange()) {\n this.tableFeaturesHandlerSubscription.unsubscribe();\n this.tableFeaturesHandler();\n }\n\n this.euiTableV2SelectableRowService.registerRows(this.dataSrc);\n }\n if (c && c.paginator?.currentValue) {\n this.paginator.setLength(this.data.length);\n if (!c.paginator?.isFirstChange()) {\n this.paginator.goFirstPage({ emitEvent: false });\n }\n } else {\n // this.data can be changed anytime, then this else can be executed at that time, testing this.paginator allows to make sure\n // the user wants to disable pagination or change the datasource\n if (!this.paginator) {\n this.dataRendered = this.dataSrc;\n this.page = 0;\n }\n }\n }\n\n if (c && c.preselectedRows && !c.preselectedRows.isFirstChange()) {\n this.euiTableV2SelectableRowService.selectRows(c.preselectedRows.currentValue);\n }\n }\n\n ngOnInit(): void {\n this.dataSrc = [...this.data];\n }\n\n ngAfterContentInit(): void {\n this.templates.forEach((item) => {\n if (item.getType() === 'header') {\n this.headerTemplate = item.template;\n }\n if (item.getType() === 'body') {\n this.bodyTemplate = item.template;\n }\n if (item.getType() === 'footer') {\n this.footerTemplate = item.template;\n }\n if (item.getType() === 'noData') {\n this.noDataTemplate = item.template;\n }\n });\n }\n\n test(index): void {\n this.cdkVirtualScrollViewport.scrollToIndex(index)\n }\n\n ngAfterViewInit(): void {\n this.stickyFeatureHandler();\n\n if (this.isVirtualScroll) {\n this.cdkVirtualScrollViewport?.renderedRangeStream\n .pipe(debounceTime(500), takeUntil(this.destroy$))\n .subscribe((listRange: ListRange) => {\n this.stickyFeatureHandler();\n });\n\n const theadElements = Array.from(this.theadRef.nativeElement.querySelectorAll('th'));\n this.nbCols = new Array(theadElements.length);\n\n this.cdkVirtualScrollViewport.scrolledIndexChange\n .pipe(debounceTime(500), takeUntil(this.destroy$))\n .subscribe((scrolledIndex: number) => {\n if (this.isAsync) {\n this.scrollingDirection = scrolledIndex > this.scrolledIndex ? ScrollinDirection.DOWN : ScrollinDirection.UP;\n this.scrolledIndex = scrolledIndex;\n\n this.cdkVirtualScrollViewport.setTotalContentSize(this.virtualScrollAsyncItemsLength * this.itemSize);\n\n const scrollOffset = this.cdkVirtualScrollViewport.measureScrollOffset('top');\n const endIndex = Math.ceil((scrollOffset + this.cdkVirtualScrollViewport.getViewportSize()) / this.itemSize);\n this.nbItemDisplayed = endIndex - scrolledIndex;\n const virtualScrollCurrentMultiple = Math.floor((scrolledIndex + this.nbItemDisplayed) / this.virtualScrollNbRows);\n\n if (scrolledIndex > 0) {\n if (this.dataRendered[scrolledIndex] || (this.scrollingDirection === ScrollinDirection.UP && this.dataRendered[scrolledIndex - 1])) {\n // console.log('virtualScrollCurrentMultiple', virtualScrollCurrentMultiple)\n // console.log('this.virtualScrollLastMultiple', this.virtualScrollLastMultiple)\n // console.log('virtualScrollCurrentMultiple > this.virtualScrollLastMultiple', virtualScrollCurrentMultiple > this.virtualScrollLastMultiple)\n\n if (virtualScrollCurrentMultiple > this.virtualScrollLastMultiple) {\n this.virtualScrollSpliceFrom = virtualScrollCurrentMultiple * this.virtualScrollNbRows;\n this.scrollChange.emit({ start: virtualScrollCurrentMultiple * this.virtualScrollNbRows, end: this.virtualScrollNbRows });\n }\n } else {\n this.virtualScrollSpliceFrom = this.roundDown(scrolledIndex, this.virtualScrollNbRows);\n this.scrollChange.emit({ start: this.virtualScrollSpliceFrom, end: this.virtualScrollNbRows });\n }\n }\n\n this.virtualScrollLastMultiple = virtualScrollCurrentMultiple;\n }\n });\n }\n\n if (this.cdkVirtualScrollViewportElement) {\n this.cdkVirtualScrollViewportElement.nativeElement.style.height = this.cdkVirtualScrollViewport.elementRef.nativeElement.parentElement.clientHeight + 'px';\n }\n\n const mutationObservable = new Observable<MutationRecord[]>((observer) => {\n this.mutationObserver = new MutationObserver((mutations) => {\n const filteredMutations = mutations.filter((mutation) => {\n return (\n mutation.target instanceof HTMLElement &&\n mutation.target.tagName.toLowerCase() === 'th' &&\n mutation.attributeName === 'style'\n );\n });\n\n if (filteredMutations.length > 0) {\n observer.next(filteredMutations);\n }\n });\n\n const config = { attributes: true, subtree: true, attributeFilter: ['style'] };\n this.mutationObserver.observe(this.theadRef.nativeElement, config);\n });\n\n mutationObservable.pipe(debounceTime(250), takeUntil(this.destroy$)).subscribe((mutations) => {\n this.stickyFeatureHandler();\n });\n\n if (!this.isAsync && !this.isVirtualScroll) {\n this.tableFeaturesHandlerSubscription.unsubscribe();\n this.tableFeaturesHandler();\n\n if (this.preselectedRows) {\n setTimeout(() => {\n this.euiTableV2SelectableRowService.selectRows(this.preselectedRows);\n });\n }\n }\n\n this.selectRowsFeatureHandler();\n this.sortFeatureHandler();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.mutationObserver?.disconnect();\n this.tableFeaturesHandlerSubscription.unsubscribe();\n }\n\n /**\n * Moves an element within the rendered data array.\n *\n * @param itemId - The identifier (default: id) of the element to move.\n * @param fromIndex - The current index of the element to move.\n * @param toIndex - The new desired position for the element.\n */\n public moveItem(itemId: number | string, fromIndex: number, toIndex: number): void {\n const itemPosition = this.dataRendered.findIndex(d => d && d[this.propId] === itemId);\n const move = toIndex - fromIndex;\n\n const source = [...this.dataRendered];\n const [elementToMove] = source.splice(itemPosition, 1);\n\n source.splice(itemPosition + move, 0, elementToMove);\n\n this.dataRendered = source;\n }\n\n /**\n * Select all rows\n */\n public selectAllRows(): void {\n this.euiTableV2SelectableRowService.selectAllRows();\n }\n\n /**\n * Unselect all rows\n */\n public unselectAllRows(): void {\n this.euiTableV2SelectableRowService.unselectAllRows();\n }\n\n /**\n * Return an array with the data matching the string filter\n * @returns\n */\n public getFilteredData(): DATA[] {\n return this.filteredData;\n }\n\n /**\n * Sort the table's data.\n * @param sorts An array of SortOrder. See {@link SortOrder}\n */\n public setSort(sorts: Sort[]): void {\n this.euiTableV2SortService.setSorts(sorts);\n }\n\n public filterData(filter: string, r: DATA[]): DATA[] {\n const rows = filter ?\n r.filter((row) => {\n const matching = this.getProps(row, filter).filter((p) => p.match === true);\n return matching?.length > 0;\n }) : r;\n\n this.euiTableV2SelectableRowService.unregisterRows();\n this.euiTableV2SelectableRowService.registerRows(rows);\n\n this.filteredData = rows;\n\n return rows;\n }\n\n protected get stickyHeaderTopPosition(): string {\n if (!this.cdkVirtualScrollViewport || !this.cdkVirtualScrollViewport['_renderedContentOffset']) {\n return '0';\n }\n\n return (-this.cdkVirtualScrollViewport['_renderedContentOffset'] - 1) + 'px';\n }\n\n protected get stickyFooterBottomPosition(): string {\n if (!this.cdkVirtualScrollViewport || !this.cdkVirtualScrollViewport['_renderedContentOffset']) {\n return '-1px';\n }\n\n return this.cdkVirtualScrollViewport['_renderedContentOffset'] - 1 + 'px';\n }\n\n protected get cdkVirtualScrollViewportWidth(): string {\n return (this.elementRef.nativeElement?.parentElement?.clientWidth || 0) + 'px';\n }\n\n protected get hostWidth(): number {\n return this.elementRef.nativeElement.style.width;\n }\n\n protected trackByFn(index: number): number {\n return index;\n }\n\n private tableFeaturesHandler(): void {\n this.tableFeaturesHandlerSubscription = combineLatest(\n this.paginator ? this.paginator.page$ : new BehaviorSubject(null),\n this.filter ? this.filter.filter$ : new BehaviorSubject(null),\n this.euiTableV2SortService.sorts,\n ).pipe(takeUntil(this.destroy$)).subscribe(([pagination, filter, sorts]: [EuiPaginationEvent, string, Sort[]]) => {\n let r = [...this.dataSrc];\n\n if (sorts.length > 0) {\n r = this.sortData(sorts, r);\n }\n\n r = this.filterData(filter, r);\n\n if (this.paginator) {\n this.paginator.setLength(r.length);\n r = this.paginateRows(pagination, r);\n }\n\n this.dataRendered = r;\n if (this.isSelectOnlyVisibleRows) {\n this.euiTableV2SelectableRowService.unselectAllRows();\n this.euiTableV2SelectableRowService.unregisterRows();\n this.euiTableV2SelectableRowService.registerRows(this.dataRendered);\n }\n\n this.cd.detectChanges();\n\n if (this.hasStickyCols) {\n this.stickyFeatureHandler();\n }\n });\n }\n\n private sortData(sortCriterias: { sort: string, order: SortOrder }[], r: DATA[]): DATA[] {\n if (sortCriterias.every(criteria => criteria.order === null)) {\n return r.slice();\n }\n\n return r.sort((a, b) => {\n for (const criteria of sortCriterias) {\n const aValue = this.getObjProp(a, criteria.sort);\n const bValue = this.getObjProp(b, criteria.sort);\n\n if (aValue === bValue) {\n continue;\n }\n\n if (aValue === null || aValue === undefined) {\n return criteria.order === 'asc' ? -1 : 1;\n }\n if (bValue === null || bValue === undefined) {\n return criteria.order === 'asc' ? 1 : -1;\n }\n\n if (typeof aValue === 'boolean' && typeof bValue === 'boolean') {\n return criteria.order === 'asc' ? (aValue ? -1 : 1) : (bValue ? -1 : 1);\n }\n\n if (typeof aValue === 'number' && typeof bValue === 'number') {\n return criteria.order === 'asc' ? aValue - bValue : bValue - aValue;\n }\n\n const aValueStr = typeof aValue === 'string' ? aValue.toLowerCase() : aValue;\n const bValueStr = typeof bValue === 'string' ? bValue.toLowerCase() : bValue;\n\n const comparison = criteria.order === 'asc' ? aValueStr.localeCompare(bValueStr) : bValueStr.localeCompare(aValueStr);\n\n if (comparison !== 0) {\n return comparison;\n }\n }\n\n return 0;\n });\n }\n\n private paginateRows(pagination: EuiPaginationEvent, r: DATA[]): DATA[] {\n this.page = pagination.page;\n this.pageSize = pagination.pageSize;\n\n return r.slice(this.page * this.pageSize, this.page * this.pageSize + this.pageSize);\n }\n\n private roundDown(index: number, nbRows: number): number {\n return Math.floor(index / nbRows) * nbRows;\n }\n\n private hasUndefinedInRange(startIndex: number, limit: number, dataRendered: DATA[]): number {\n for (let i = startIndex; i < startIndex + limit; i ++) {\n if (dataRendered[i] === undefined) {\n return i;\n }\n }\n\n return -1;\n }\n\n private stickyFeatureHandler(): void {\n setTimeout(() => {\n const containerWidth = this.elementRef.nativeElement?.parentElement?.clientWidth || 0;\n\n const processStickyItems = (items: HTMLTableCellElement[]): void => {\n items.forEach((item, i) => {\n const isStickyFirstCol = item.offsetLeft + item.clientWidth < containerWidth;\n const isStickyLastCol = item.offsetLeft + item.clientWidth > containerWidth;\n\n const itemsSticky = isStickyFirstCol\n ? items.filter((it) => it.offsetLeft + it.clientWidth < containerWidth)\n : isStickyLastCol\n ? items.filter((it) => it.offsetLeft + it.clientWidth > containerWidth)\n : [];\n\n itemsSticky.forEach((it, j) => {\n const w = itemsSticky[j - 1]?.clientWidth;\n const offset = isStickyFirstCol\n ? parseInt(itemsSticky[j - 1]?.style.left, 10)\n : parseInt(itemsSticky[j - 1]?.style.right, 10);\n\n if (isStickyFirstCol) {\n it.style.left = (j === 0 ? 0 : w + offset) + 'px';\n } else if (isStickyLastCol) {\n it.style.right = (j === 0 ? 0 : w + offset) + 'px';\n }\n\n if (j + 1 === itemsSticky.length) {\n this.renderer.addClass(it, `eui-table-v2__col--sticky-shadowed-${isStickyFirstCol ? 'first' : 'last'}`);\n }\n });\n });\n };\n\n if (this.theadRef) {\n const thItems: HTMLTableCellElement[] = Array.from(this.theadRef.nativeElement.querySelectorAll('.eui-table-v2__col--sticky'));\n processStickyItems(thItems);\n }\n\n const bodyTrItems = Array.from(this.tbodyRef.nativeElement.querySelectorAll('tr'));\n bodyTrItems.forEach((tr) => {\n const tdItems: HTMLTableCellElement[] = Array.from(tr.querySelectorAll('.eui-table-v2__col--sticky'));\n processStickyItems(tdItems);\n });\n\n if (this.tfootRef) {\n const tdItems: HTMLTableCellElement[] = Array.from(this.tfootRef.nativeElement.querySelectorAll('.eui-table-v2__col--sticky'));\n processStickyItems(tdItems);\n }\n }, 250);\n }\n\n private selectRowsFeatureHandler(): void {\n this.euiTableV2SelectableRowService.selectedRows.pipe(skip(1), takeUntil(this.destroy$)).subscribe((selected) => {\n this.rowsSelect.emit(selected);\n });\n }\n\n private sortFeatureHandler(): void {\n this.euiTableV2SortService.sorts.pipe(skip(1), takeUntil(this.destroy$)).subscribe((sorts: Sort[]) => {\n this.sortChange.emit(sorts);\n });\n }\n\n private getProps(row: DATA, filter: string): { key: string; match: boolean; value: string | number }[] {\n const isObject = (val: string | number): boolean => val && typeof val === 'object';\n const addDelimiter = (a: string, b: string): string => (a && a !== '0' ? `${a}.${b}` : b);\n const props: { key: string, match: boolean, value: string | number }[] = [];\n const paths = (pathObj: DATA, head = ''): string[] => {\n return Object.entries(pathObj).reduce((product, [key, value]) => {\n const fullPath = addDelimiter(head, key);\n const match = (v: string | number): boolean => v && typeof v !== 'object' && v?.toString().toLowerCase().indexOf(filter?.trim().toLowerCase()) !== -1;\n\n if (key !== '0' && typeof value !== 'object') {\n props.push({ key: addDelimiter(head, key), match: match(value), value });\n }\n\n return isObject(value) ? product.concat(paths(value, fullPath)) : product.concat(fullPath);\n }, []);\n };\n\n paths(row);\n return props;\n }\n\n private getObjProp(obj: DATA, prop: string): string {\n return prop ? prop.split('.').reduce((prev, curr) => (prev ? prev[curr] : null), obj || self) : null;\n }\n}\n","<!-- <button (click)=\"test(19250)\">19250</button>\n<button (click)=\"test(7895)\">7895</button>\n<button (click)=\"test(16860)\">16860</button>\n<button (click)=\"test(16870)\">16870</button>\n<button (click)=\"test(16880)\">16880</button>\n<button (click)=\"test(16890)\">16890</button>\n<button (click)=\"test(16900)\">16900</button>\n<button (click)=\"test(26998)\">26998</button>\n<button (click)=\"test(28000)\">28000</button> -->\n@if (isVirtualScroll) {\n <cdk-virtual-scroll-viewport\n #cdkVirtualScrollViewport\n #cdkVirtualScrollViewportElement\n class=\"eui-table-v2__scroll-viewport\"\n [itemSize]=\"itemSize\"\n [style.overflow]=\"cdkVirtualScrollViewportOverflowValue\"\n tabindex=\"0\">\n <table class=\"{{ cssClasses }}\" [style.width]=\"hostWidth\">\n @if (headerTemplate) {\n <thead #theadRef [style.top]=\"stickyHeaderTopPosition\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n </thead>\n }\n @if (bodyTemplate) {\n <tbody #tbodyRef>\n <ng-container *cdkVirtualFor=\"let row of dataRendered; let i = index; trackBy: trackByFn\">\n @if (row) {\n <ng-template\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i }\">\n </ng-template>\n } @else {\n <ng-template [ngTemplateOutlet]=\"skeletonLoading\"></ng-template>\n }\n </ng-container>\n\n @if (noDataTemplate && (data?.length === 0 || dataRendered?.length === 0)) {\n <ng-template [ngTemplateOutlet]=\"noDataTemplate\"></ng-template>\n }\n </tbody>\n }\n @if (footerTemplate) {\n <tfoot #tfootRef [style.bottom]=\"stickyFooterBottomPosition\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n </tfoot>\n }\n </table>\n </cdk-virtual-scroll-viewport>\n} @else {\n @if (headerTemplate) {\n <thead #theadRef>\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n </thead>\n }\n @if (bodyTemplate) {\n <tbody #tbodyRef>\n @for (row of dataRendered; let i = $index; track $index) {\n <ng-container>\n <ng-template\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i }\">\n </ng-template>\n </ng-container>\n }\n @if (noDataTemplate && (data?.length === 0 || dataRendered?.length === 0)) {\n <ng-template [ngTemplateOutlet]=\"noDataTemplate\"></ng-template>\n }\n </tbody>\n }\n @if (footerTemplate) {\n <tfoot #tfootRef>\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n </tfoot>\n }\n}\n\n<ng-template #skeletonLoading>\n <tr [style.height.px]=\"itemSize\">\n <td *ngFor=\"let __ of nbCols\"><eui-skeleton line euiRounded></eui-skeleton></td>\n </tr>\n</ng-template>\n","import { Directive, HostBinding } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'th[isStickyCol], td[isStickyCol]',\n standalone: false,\n})\nexport class EuiTableV2StickyColDirective {\n @HostBinding('class') class = 'eui-table-v2__col--sticky';\n}\n","import { Directive, HostBinding, ElementRef, OnInit } from '@angular/core';\nimport { AnimationBuilder, AnimationPlayer, animate, style } from '@angular/animations';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'tr[isExpandableRow]',\n standalone: false,\n})\nexport class EuiTableV2ExpandableRowDirective implements OnInit {\n @HostBinding('class') string = 'eui-table-v2-expandable-row';\n private animationPlayer: AnimationPlayer;\n\n constructor(private el: ElementRef, private animationBuilder: AnimationBuilder) {}\n\n get isOpen(): boolean {\n return true;\n }\n\n ngOnInit(): void {\n const animation = this.animationBuilder.build([\n style({ opacity: 0 }),\n animate('250ms', style({ opacity: 1 })),\n ]);\n\n this.animationPlayer = animation.create(this.el.nativeElement);\n this.animationPlayer.play();\n }\n}\n","import { Component, OnInit, Input, OnDestroy, booleanAttribute } from '@angular/core';\nimport { Subject, combineLatest, takeUntil } from 'rxjs';\n\nimport { EuiTableV2SelectableRowService } from '../services/eui-table-v2-selectable-row.service';\n\n@Component({\n // eslint-disable-next-line\n selector: 'tr[isHeaderSelectable]',\n templateUrl: './eui-table-v2-selectable-header.component.html',\n standalone: false,\n})\nexport class EuiTableV2SelectableHeaderComponent<DATA> implements OnInit, OnDestroy {\n @Input({ transform: booleanAttribute }) isHeaderSelectable = true;\n\n public isCheckedIndeterminate = false;\n public isChecked = false;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor(private euiDataTableSelectableRowService: EuiTableV2SelectableRowService<DATA>) {}\n\n ngOnInit(): void {\n combineLatest([\n this.euiDataTableSelectableRowService.isAllRowsSelected,\n this.euiDataTableSelectableRowService.selectedRows,\n ]).pipe(takeUntil(this.destroy$)).subscribe(([allSelected, selectedRows]) => {\n this.isChecked = allSelected;\n this.isCheckedIndeterminate = !allSelected && selectedRows.length > 0;\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n get ariaLabel(): string {\n if(!this.isChecked && !this.isCheckedIndeterminate) {\n return 'Unchecked';\n }\n if(this.isCheckedIndeterminate) {\n return 'Indeterminate';\n }\n if(this.isChecked && !this.isCheckedIndeterminate) {\n return 'Checked';\n }\n }\n\n public toggleCheckedState(e: Event): void {\n this.isChecked = (e.target as HTMLInputElement).checked;\n\n if (this.isChecked) {\n this.euiDataTableSelectableRowService.selectAllRows();\n } else {\n this.euiDataTableSelectableRowService.unselectAllRows();\n }\n }\n}\n","@if (isHeaderSelectable) {\n <th class=\"eui-table__cell-select\">\n <div class=\"eui-table__cell-select-checkbox-container\">\n <input [attr.aria-label]=\"ariaLabel\" euiInputCheckBox [checked]=\"isChecked ? 'checked' : null\" [indeterminate]=\"isCheckedIndeterminate\" (click)=\"toggleCheckedState($event)\" />\n </div>\n </th>\n}\n<ng-content></ng-content>\n","import { Component, OnInit, Input, OnDestroy, OnChanges, HostBinding, booleanAttribute, ElementRef, SimpleChanges } from '@angular/core';\nimport { Subject, fromEvent, takeUntil } from 'rxjs';\n\nimport { EuiTableV2SelectableRowService } from '../services/eui-table-v2-selectable-row.service';\n\n@Component({\n // eslint-disable-next-line\n selector: 'tr[isDataSelectable]',\n templateUrl: './eui-table-v2-selectable-row.component.html',\n standalone: false,\n})\nexport class EuiTableV2SelectableRowComponent<DATA> implements OnInit, OnDestroy, OnChanges {\n @Input() isDataSelectable: DATA;\n @Input({ transform: booleanAttribute }) isChecked = false;\n @Input({ transform: booleanAttribute }) isKeyboardSelectable = false;\n\n private propId = 'id';\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n @HostBinding('class')\n public get cssClasses(): string {\n return [\n 'eui-table-v2__row',\n this.isDataSelectable ? 'eui-table-v2__row--selectable' : '',\n this.isChecked ? 'eui-table-v2__row--selected' : '',\n ]\n .join(' ')\n .trim();\n }\n\n constructor(private euiDataTableSelectableRowService: EuiTableV2SelectableRowService<DATA>, private elementRef: ElementRef) {}\n\n ngOnChanges(c: SimpleChanges): void {\n if (c && c.isChecked) {\n if (c.isChecked.currentValue) {\n this.euiDataTableSelectableRowService.selectRow(this.isDataSelectable);\n } else {\n this.euiDataTableSelectableRowService.unselectRow(this.isDataSelectable);\n }\n }\n }\n\n ngOnInit(): void {\n if (this.isKeyboardSelectable && this.isDataSelectable) {\n fromEvent<PointerEvent>(this.elementRef.nativeElement, 'click').pipe(takeUntil(this.destroy$)).subscribe((event) => {\n if (event.ctrlKey) {\n if (!this.isChecked) {\n this.euiDataTableSelectableRowService.selectRow(this.isDataSelectable);\n } else {\n this.euiDataTableSelectableRowService.unselectRow(this.isDataSelectable);\n }\n } else if (event.shiftKey) {\n const rows = this.euiDataTableSelectableRowService.getRows();\n const lastSelectedRow = this.euiDataTableSelectableRowService.getLastSelectedRow();\n const lastSelectedRowPosition = rows.indexOf(lastSelectedRow);\n const position = rows.indexOf(this.isDataSelectable);\n\n const range =\n lastSelectedRowPosition > position\n ? rows.slice(position, lastSelectedRowPosition + 1)\n : rows.slice(lastSelectedRowPosition, position + 1);\n\n this.euiDataTableSelectableRowService.selectRows(range);\n\n window.getSelection()?.empty();\n } else {\n this.euiDataTableSelectableRowService.selectRows([this.isDataSelectable]);\n }\n });\n }\n\n this.propId = this.euiDataTableSelectableRowService.getPropId();\n this.euiDataTableSelectableRowService.selectedRows.pipe(takeUntil(this.destroy$)).subscribe((selected) => {\n this.isChecked = selected.find((s) => s[this.propId] === this.isDataSelectable[this.propId]) !== undefined;\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n public toggleCheckedState(e: Event): void {\n this.isChecked = (e.target as HTMLInputElement).checked;\n\n if (this.isChecked) {\n this.euiDataTableSelectableRowService.selectRow(this.isDataSelectable);\n } else {\n this.euiDataTableSelectableRowService.unselectRow(this.isDataSelectable);\n }\n }\n}\n","@if (isDataSelectable) {\n <td class=\"eui-table__cell-select\">\n <div class=\"eui-table__cell-select-checkbox-container\">\n <input\n euiInputCheckBox\n [attr.aria-label]=\"isChecked ? 'default checkbox checked' : 'default checkbox unchecked'\"\n [(ngModel)]=\"isChecked\"\n (change)=\"toggleCheckedState($event)\" />\n </div>\n </td>\n}\n<ng-content></ng-content>\n","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy, HostBinding, ViewChild, ElementRef, ViewEncapsulation } from '@angular/core';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { Subject, BehaviorSubject, takeUntil, debounceTime, distinctUntilChanged } from 'rxjs';\n\n@Component({\n selector: 'eui-table-v2-filter',\n templateUrl: './eui-table-v2-filter.component.html',\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class EuiTableV2FilterComponent implements OnInit, OnDestroy {\n @HostBinding('class')\n get cssClasses(): string {\n return [\n 'eui-table-v2__filter',\n ]\n .join(' ')\n .trim();\n }\n\n @Input() placeholder: string;\n\n @Output() filterChange = new EventEmitter<string>();\n\n @ViewChild('filterInput', { read: ElementRef }) filterInput: ElementRef<HTMLInputElement>;\n\n public filter$: BehaviorSubject<string> = new BehaviorSubject(null);\n public form = new FormGroup({\n filter: new FormControl<string>(null),\n });\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n ngOnInit(): void {\n this.form.get('filter').valueChanges.pipe(debounceTime(500), distinctUntilChanged(), takeUntil(this.destroy$)).subscribe((value) => {\n this.setFilter(value);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n public setFilter(value: string): void {\n this.filter$.next(value);\n this.filterChange.emit(value);\n this.form.get('filter').setValue(value);\n }\n\n /**\n * Reset the filter and emit the change event.\n */\n public resetFilter(): void {\n this.setFilter(null);\n this.form.reset();\n this.filterInput.nativeElement.focus();\n }\n}\n","<div class=\"eui-table-v2__filter\">\n <form [formGroup]=\"form\">\n <eui-icon-input>\n <eui-icon-svg icon=\"eui-ecl-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\"></eui-icon-svg>\n <input #filterInput\n euiClearable\n euiInputText\n class=\"eui-table-v2__filter-input\"\n formControlName=\"filter\"\n [attr.aria-label]=\"form.get('filter').value ? form.get('filter').value : placeholder\"\n placeholder=\"{{ placeholder }}\" />\n </eui-icon-input>\n <eui-icon-svg class=\"eui-table-v2__filter-search-icon\" icon=\"eui-ecl-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\"></eui-icon-svg>\n </form>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'euiTableV2Highlight',\n standalone: false,\n})\nexport class EuiTableV2HighlightPipe implements PipeTransform {\n transform(value: string, strFilter: string, className = 'eui-table-v2--highlighted'): string {\n if (value) {\n if (strFilter && strFilter.length > 0) {\n const regex = new RegExp('(' + strFilter + ')', 'gi');\n return value.toString().replace(regex, '<span class=\"' + className + '\">$1</span>');\n } else {\n return value;\n }\n } else {\n return '';\n }\n }\n}\n","import { Component, OnInit, OnDestroy, Input, HostBinding, booleanAttribute, ElementRef, ViewChild } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { EuiDropdownComponent } from '@eui/components/eui-dropdown';\n\nimport { EuiTableV2SortService } from '../services/eui-table-v2-sort.service';\nimport { SortOrder } from '../models/sort.model';\n\n@Component({\n // eslint-disable-next-line\n selector: 'th[isSortable]',\n templateUrl: './eui-table-v2-sortable-col.component.html',\n standalone: false,\n})\nexport class EuiTableV2SortableColComponent implements OnInit, OnDestroy {\n @HostBinding('class')\n get cssClasses(): string {\n return ['eui-table-v2__sortable-col', this.sortDisabled ? 'eui-table-v2__sortable-col--disabled' : ''].join(' ').trim();\n }\n\n @Input() sortOn: string;\n @Input() sortOrder: SortOrder = 'asc';\n\n @Input({ transform: booleanAttribute }) defaultOrder = false;\n @Input({ transform: booleanAttribute }) sortDisabled = false;\n @Input({ transform: booleanAttribute }) isMultiSortable = false;\n\n public order: SortOrder = null;\n public isSorted = false;\n public sortedIndex: number = null;\n\n @ViewChild('euiDropdown') euiDropdown: EuiDropdownComponent;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor(private euiTableV2SortService: EuiTableV2SortService, private elementRef: ElementRef) {}\n\n ngOnInit(): void {\n this.euiTableV2SortService.sorts.pipe(takeUntil(this.destroy$)).subscribe((sorts) => {\n const isSorted = sorts.find(s => s.sort === this.sortOn);\n this.isSorted = isSorted !== undefined;\n if (this.isSorted) {\n this.order = isSorted.order;\n if (sorts.length > 1) {\n this.sortedIndex = sorts.findIndex(s => s.sort === this.sortOn) + 1;\n } else {\n this.sortedIndex = null;\n }\n } else {\n this.order = null;\n this.sortedIndex = null;\n }\n });\n\n if (this.defaultOrder) {\n this.order = this.sortOrder;\n this.euiTableV2SortService.setSort(this.sortOn, this.order, this.isMultiSortable);\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n public changeSort(): void {\n if (!this.sortDisabled) {\n if (this.order === 'asc') {\n this.order = 'desc';\n } else if (this.order === 'desc') {\n this.order = null;\n } else if (this.order === null) {\n this.order = 'asc';\n }\n\n this.euiTableV2SortService.setSort(this.sortOn, this.order, this.isMultiSortable);\n }\n }\n\n public onDropdownItemClick(order: SortOrder): void {\n this.euiTableV2SortService.setSort(this.sortOn, order, this.isMultiSortable);\n }\n}\n","<div class=\"eui-table-v2__sortable-col-content\">\n <div class=\"eui-table-v2__sortable-col-content-label\">\n <ng-content></ng-content>\n\n <button class=\"eui-u-ml-xs\" euiButton euiIconButton euiBasicButton (click)=\"changeSort()\">\n @if (!isSorted && !sortDisabled) {\n <eui-icon-svg class=\"sort-icon\" icon=\"swap-vertical:outline\"></eui-icon-svg>\n }\n @if (order === 'asc' && isSorted && !sortDisabled) {\n <eui-icon-svg class=\"sort-icon\" icon=\"arrow-up:outline\" fillColor=\"primary\" [aria-label]=\"'eui.euitable.ASCENDING-ICON' | translate\"></eui-icon-svg>\n }\n @if (order === 'desc' && isSorted && !sortDisabled) {\n <eui-icon-svg class=\"sort-icon\" icon=\"arrow-down:outline\" fillColor=\"primary\" [aria-label]=\"'eui.euitable.DESCENDING-ICON' | translate\"></eui-icon-svg>\n }\n </button>\n @if (sortedIndex && !sortDisabled) {\n <button euiSizeS euiButton euiBasicButton (click)=\"changeSort()\">\n <span class=\"eui-table-v2__sortable-col-multisort-index\">{{ sortedIndex }}</span>\n </button>\n }\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { EuiTemplateDirectiveModule } from '@eui/components/directives';\nimport { EuiSkeletonModule } from '@eui/components/eui-skeleton';\nimport { EuiInputCheckboxModule } from '@eui/components/eui-input-checkbox';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiInputTextModule } from '@eui/components/eui-input-text';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiListModule } from '@eui/components/eui-list';\nimport { EuiIconInputModule } from '@eui/components/eui-icon-input';\n\nimport { EuiTableV2Component } from './eui-table-v2.component';\nimport { EuiTableV2StickyColDirective } from './directives/eui-table-v2-sticky-col.directive';\nimport { EuiTableV2SelectableRowComponent } from './selectable-row/eui-table-v2-selectable-row.component';\nimport { EuiTableV2SelectableHeaderComponent } from './selectable-header/eui-table-v2-selectable-header.component';\nimport { EuiTableV2FilterComponent } from './filter/eui-table-v2-filter.component';\nimport { EuiTableV2HighlightPipe } from './pipes/eui-table-v2-highlight.pipe';\nimport { EuiTableV2SortableColComponent } from './sortable-col/eui-table-v2-sortable-col.component';\nimport { EuiTableV2ExpandableRowDirective } from './directives/eui-table-v2-expandable-row.directive';\n\n@NgModule({\n imports: [\n CommonModule,\n EuiTemplateDirectiveModule,\n ScrollingModule,\n EuiSkeletonModule,\n EuiInputCheckboxModule,\n FormsModule,\n ReactiveFormsModule,\n EuiIconModule,\n EuiInputTextModule,\n TranslateModule,\n EuiButtonModule,\n EuiListModule,\n EuiIconInputModule,\n ],\n declarations: [\n EuiTableV2Component,\n EuiTableV2SelectableHeaderComponent,\n EuiTableV2SelectableRowComponent,\n EuiTableV2StickyColDirective,\n EuiTableV2FilterComponent,\n EuiTableV2HighlightPipe,\n EuiTableV2SortableColComponent,\n EuiTableV2ExpandableRowDirective,\n ],\n exports: [\n EuiTableV2Component,\n EuiTableV2SelectableHeaderComponent,\n EuiTableV2SelectableRowComponent,\n EuiTemplateDirectiveModule,\n EuiTableV2StickyColDirective,\n EuiTableV2FilterComponent,\n EuiTableV2HighlightPipe,\n EuiTableV2SortableColComponent,\n EuiTableV2ExpandableRowDirective,\n ],\n})\nexport class EuiTableV2Module { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.EuiTableV2SelectableRowService","i2.EuiTableV2SortService","i3","i1","i2","i4","i1.EuiTableV2SortService"],"mappings":"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"}
1
+ {"version":3,"file":"eui-components-eui-table-v2.mjs","sources":["../../eui-table-v2/services/eui-table-v2-selectable-row.service.ts","../../eui-table-v2/services/eui-table-v2-sort.service.ts","../../eui-table-v2/eui-table-v2.component.ts","../../eui-table-v2/eui-table-v2.component.html","../../eui-table-v2/directives/eui-table-v2-sticky-col.directive.ts","../../eui-table-v2/directives/eui-table-v2-expandable-row.directive.ts","../../eui-table-v2/selectable-header/eui-table-v2-selectable-header.component.ts","../../eui-table-v2/selectable-header/eui-table-v2-selectable-header.component.html","../../eui-table-v2/selectable-row/eui-table-v2-selectable-row.component.ts","../../eui-table-v2/selectable-row/eui-table-v2-selectable-row.component.html","../../eui-table-v2/filter/eui-table-v2-filter.component.ts","../../eui-table-v2/filter/eui-table-v2-filter.component.html","../../eui-table-v2/pipes/eui-table-v2-highlight.pipe.ts","../../eui-table-v2/sortable-col/eui-table-v2-sortable-col.component.ts","../../eui-table-v2/sortable-col/eui-table-v2-sortable-col.component.html","../../eui-table-v2/eui-table-v2.module.ts","../../eui-table-v2/eui-components-eui-table-v2.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\n/**\n * Service to manage the selection state of rows in a table.\n * Allows tracking of selected rows and managing selection for individual and multiple rows.\n */\n@Injectable()\nexport class EuiTableV2SelectableRowService<DATA> {\n /**\n * BehaviorSubject containing the selected rows.\n */\n public selectedRows$: BehaviorSubject<DATA[]> = new BehaviorSubject([]);\n /**\n * BehaviorSubject containing the state of whether all rows are selected.\n */\n public isAllRowsSelected$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n \n private lastSelectedRow: DATA = null;\n private rows: DATA[] = [];\n private propId = 'id';\n\n /**\n * Observable stream of selected rows.\n */\n get selectedRows(): Observable<DATA[]> {\n return this.selectedRows$.asObservable();\n }\n\n /**\n * Observable stream of whether all rows are selected.\n */\n get isAllRowsSelected(): Observable<boolean> {\n return this.isAllRowsSelected$.asObservable();\n }\n\n /**\n * Sets the property name used to identify rows as unique.\n */\n public setPropId(value: string): void {\n this.propId = value;\n }\n\n /**\n * Gets the current property name used to identify rows.\n */\n public getPropId(): string {\n return this.propId;\n }\n\n /**\n * Registers a row as selectable.\n * \n * @param row Row to register.\n */\n public registerRow(row: DATA): void {\n if (row && !this.rows.find((r) => r[this.propId] === row[this.propId])) {\n this.rows.push(row);\n\n if (this.rows.length > this.selectedRows$.value.length && this.isAllRowsSelected$.value) {\n this.isAllRowsSelected$.next(false);\n }\n\n if (this.rows.length <= this.selectedRows$.value.length && this.rows.every((r) => this.selectedRows$.value.includes(r))) {\n this.isAllRowsSelected$.next(true);\n }\n }\n }\n\n /**\n * Registers a set of rows as selectable.\n * \n * @param rows Set of rows to register.\n */\n public registerRows(rows: DATA[]): void {\n rows.forEach((row) => {\n this.registerRow(row);\n });\n }\n\n /**\n * Unregisters a row as selectable.\n * \n * @param row Row to unregister.\n */\n public unregisterRow(row: DATA): void {\n this.rows = this.rows.filter(r => r[this.propId] !== row[this.propId]);\n }\n\n /**\n * Unregisters all rows.\n */\n public unregisterRows(): void {\n this.rows = [];\n }\n\n /**\n * Selects a row.\n * \n * @param row Row to select.\n */\n public selectRow(row: DATA): void {\n if (this.selectedRows$.value.indexOf(row) === -1) {\n this.selectedRows$.next([...this.selectedRows$.value, row]);\n }\n\n this.isAllRowsSelected$.next(this.selectedRows$.value.length === this.rows.length);\n this.lastSelectedRow = row;\n }\n\n /**\n * Unselects a row.\n * \n * @param row Row to unselect.\n */\n public unselectRow(row: DATA): void {\n if (row && this.selectedRows$.value.find((r) => r[this.propId] === row[this.propId]) !== undefined) {\n const value = this.selectedRows$.value.filter((selected) => selected[this.propId] !== row[this.propId]);\n this.selectedRows$.next(value);\n this.isAllRowsSelected$.next(false);\n }\n }\n\n /**\n * Selects a set of rows.\n * \n * @param rows Rows to select.\n */\n public selectRows(rows: DATA[]): void {\n this.selectedRows$.next([...rows]);\n this.isAllRowsSelected$.next(this.rows.length > 0 && this.rows.length === this.selectedRows$.value.length);\n this.lastSelectedRow = rows[rows.length - 1];\n }\n\n /**\n * Select all rows.\n */\n public selectAllRows(): void {\n this.selectedRows$.next([...this.rows]);\n this.isAllRowsSelected$.next(true);\n this.lastSelectedRow = this.rows[this.rows.length - 1];\n }\n\n /**\n * Unselect all rows.\n */\n public unselectAllRows(): void {\n this.selectedRows$.next([]);\n this.isAllRowsSelected$.next(false);\n this.lastSelectedRow = null;\n }\n\n /**\n * Gets the list of registered rows.\n * \n * @returns The list of registered rows.\n */\n public getRows(): DATA[] {\n return this.rows;\n }\n\n /**\n * Gets the last selected row.\n * \n * @returns The last selected row.\n */\n public getLastSelectedRow(): DATA {\n return this.lastSelectedRow;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { Sort, SortOrder } from '../models/sort.model';\n\n/**\n * Service to manage the sorting state of columns in a table.\n * Uses a `BehaviorSubject` to store and emit the current sorting values.\n */\n@Injectable()\nexport class EuiTableV2SortService {\n /**\n * BehaviorSubject containing the current sorting information.\n */\n public sorts$ = new BehaviorSubject<Sort[]>([]);\n\n /**\n * Observable stream of sorting values.\n */\n get sorts(): Observable<Sort[]> {\n return this.sorts$.asObservable();\n }\n\n private isCurrentMultiSortable = false;\n\n /**\n * Sets the ordering order for a given column\n * \n * @param sort The name of the column to sort.\n * @param order The sorting order (ascending or descending).\n * @param isMultiSortable Whether multi-sorting is allowed.\n */\n setSort(sort: string, order: SortOrder, isMultiSortable: boolean): void {\n if (isMultiSortable && this.isCurrentMultiSortable) {\n let sortValues = this.sorts$.value;\n if (!order) {\n sortValues = this.sorts$.value.filter(s => s.sort !== sort);\n this.sorts$.next(sortValues);\n } else {\n if (this.sorts$.value.find(s => s.sort === sort)) {\n sortValues = this.sorts$.value.map(s => s.sort == sort ? ({ ...s, order }) : s);\n this.sorts$.next(sortValues);\n } else {\n this.sorts$.next([ ...sortValues, { sort, order } ]);\n }\n }\n } else {\n this.sorts$.next(sort && order ? [{ sort, order }] : []);\n }\n\n this.isCurrentMultiSortable = isMultiSortable;\n }\n\n /**\n * Sets the full list of sorting values.\n * \n * @param sorts The list of sorts to apply.\n */\n setSorts(sorts: Sort[]): void {\n this.sorts$.next(sorts);\n this.isCurrentMultiSortable = sorts.length > 1;\n }\n}\n","import { Component, Input, ContentChildren, QueryList, AfterContentInit, TemplateRef, ViewChild, AfterViewInit, ElementRef, booleanAttribute, HostBinding,\n ViewEncapsulation, ChangeDetectionStrategy, OnDestroy, OnInit, Output, EventEmitter, SimpleChanges, OnChanges, numberAttribute, ChangeDetectorRef,\n Renderer2 } from '@angular/core';\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport { BehaviorSubject, Observable, Subject, Subscription, combineLatest, debounceTime, skip, takeUntil } from 'rxjs';\nimport { ListRange } from '@angular/cdk/collections';\n\nimport { EuiPaginationEvent, EuiPaginatorComponent } from '@eui/components/eui-paginator';\nimport { EuiTemplateDirective } from '@eui/components/directives';\nimport { BaseStatesDirective } from '@eui/components/shared';\n\nimport { EuiTableV2SelectableRowService } from './services/eui-table-v2-selectable-row.service';\nimport { EuiTableV2FilterComponent } from './filter/eui-table-v2-filter.component';\nimport { EuiTableV2SortService } from './services/eui-table-v2-sort.service';\nimport { Sort, SortOrder } from './models/sort.model';\n\nexport enum ScrollinDirection {\n UP = 'UP',\n DOWN = 'DOWN',\n}\n\n/**\n * @description\n * The `eui-table-v2` component has been built to offer various requested features including fast performance and excellent level of control over tabular presentation of data.\n * \n * The eui-table is quite simple of usage and requires :\n * \n * - rows : the data value input as an array of objects, usually fetched from a service (data payload),\n * - view : this is the template for the presentation with its various options such as the search filter, the paginator, sortable columns, etc.\n *\n * @example\n * ```\n * <table class=\"eui-table-default\">\n * <thead>\n * <tr>\n * <th>Country</th>\n * <th>Year</th>\n * <th>ISO</th>\n * <th>Population</th>\n * <th>Capital city</th>\n * </tr>\n * </thead>\n * <tbody>\n * \\@for (row of data; track row) {\n * <tr>\n * <td>{{ row.country }}</td>\n * <td>{{ row.year }}</td>\n * <td>{{ row.iso }}</td>\n * <td>{{ row.population | number }}</td>\n * <td>{{ row.capital }}</td>\n * </tr>\n * }\n * </tbody>\n * <tfoot>\n * <tr>\n * <td class=\"eui-u-text-center\" colspan=\"5\">Footer 1</td>\n * </tr>\n * </tfoot>\n * </table>\n * ```\n * \n * ```\n * public data: Country[] = [\n * { id: 1, country: 'Austria', year: 1995, iso: 'AT', population: 8504850, capital: 'Vienna' },\n * { id: 2, country: 'Belgium', year: 1958, iso: 'BE', population: 11198638, capital: 'Brussels' },\n * { id: 3, country: 'Bulgaria', year: 2007, iso: 'BG', population: 7364570, capital: 'Sofia' },\n * { id: 4, country: 'Croatia', year: 2013, iso: 'HR', population: 4284889, capital: 'Zagreb' },\n * { id: 5, country: 'Cyprus', year: 2004, iso: 'CY', population: 1117000, capital: 'Nicosia' },\n * { id: 6, country: 'Czechia', year: 2004, iso: 'CZ', population: 10513209, capital: 'Prague' },\n * { id: 7, country: 'Denmark', year: 1973, iso: 'DK', population: 5655750, capital: 'Copenhagen' },\n * { id: 8, country: 'Estonia', year: 2004, iso: 'EE', population: 1315819, capital: 'Tallinn' },\n * { id: 9, country: 'Finland', year: 1995, iso: 'FI', population: 5470820, capital: 'Helsinki' },\n * { id: 10, country: 'France', year: 1958, iso: 'FR', population: 67210000, capital: 'Paris' },\n * ];\n * ```\n *\n * See {@link https://eui.ecdevops.eu/eui-showcase-ux-components-19.x/style-guide/components/eui-table-v2}.\n */\n@Component({\n selector: 'eui-table-v2, table[euiTableV2]',\n templateUrl: './eui-table-v2.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [EuiTableV2SelectableRowService, EuiTableV2SortService],\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [],\n },\n ],\n})\nexport class EuiTableV2Component<DATA = unknown> implements AfterContentInit, AfterViewInit, OnDestroy, OnInit, OnChanges {\n /**\n * @description\n * Computes and returns the CSS classes for the component based on its current state.\n *\n * @returns {string} Space-separated string of CSS class names\n */\n @HostBinding('class')\n public get cssClasses(): string {\n return [\n this.baseStatesDirective.getCssClasses('eui-table-default eui-table-v2'),\n this.isVirtualScroll ? 'eui-table-v2--virtual-scroll' : '',\n this.hasStickyHeader ? 'eui-table-v2--sticky eui-table-v2--sticky-header' : '',\n this.hasStickyFooter ? 'eui-table-v2--sticky eui-table-v2--sticky-footer' : '',\n this.hasStickyCols ? 'eui-table-v2--sticky eui-table-v2--sticky-cols' : '',\n this.isTableResponsive ? 'eui-table-default--responsive' : '',\n this.isColsOrderable ? 'eui-table-v2--cols-orderable' : '',\n this.isLoading ? 'eui-table-v2--loading' : '',\n ]\n .join(' ')\n .trim();\n }\n\n /**\n * Data to display in the table.\n *\n * @type {DATA[]} Generic type of data\n */\n @Input() data: DATA[] = [];\n /**\n * Unicity criteria of the data.\n *\n * @default 'id'\n */\n @Input() propId = 'id';\n /**\n * In combination with `isVirtualScroll`. Row height use by virtual scroll calculation.\n *\n * @default 41\n */\n @Input() itemSize = 41;\n /**\n * `eui-paginator` reference passed to the table.\n *\n * @example\n * <table euiTableV2 [paginator]=\"paginator\">\n * ...\n * </table>\n * <eui-paginator #paginator></eui-paginator>\n * \n * @type {EuiPaginatorComponent}\n */\n @Input() paginator: EuiPaginatorComponent;\n /**\n * `eui-table-v2-filter` reference passed to the table.\n *\n * @example\n * <eui-table-v2-filter #filter></eui-table-v2-filter>\n * <table euiTableV2 [filter]=\"filter\">\n * ...\n * </table>\n * \n * @type {EuiTableV2FilterComponent}\n */\n @Input() filter: EuiTableV2FilterComponent;\n /**\n * In combination with `isDataSelectable`. Rows to be selected by default.\n *\n * @type {DATA[]} Set of data to select.\n */\n @Input() preselectedRows: DATA[] = [];\n\n /**\n * Wheter the table uses virtual scroll to display data.\n * \n * `eui-table-v2` selector needs to be used in order to make virtual scroll working properly.\n * \n * @example\n * <eui-table-v2 isVirtualScroll>\n * ...\n * </eui-table-v2>\n * \n * @default false\n */\n @Input({ transform: booleanAttribute }) isVirtualScroll = false;\n /**\n * In combination with `isVirtualScroll`. Wheter the table caches the data when scroll.\n * Means that if a scroll level has already loads data, the `scrollChange` event won't be emitted.\n * \n * @default false\n */\n @Input({ transform: booleanAttribute }) isVirtualScrollCache = false;\n /**\n * Wheter the table header is sticky.\n * In order to use eui-table sticky feature and control the scrolling overflow,\n * we recommend to wrap the table with the provided eui-table-v2__scrollable-wrapper class and set your custom table width and/or height.\n * \n * @default false\n */\n @Input({ transform: booleanAttribute }) hasStickyHeader = false;\n /**\n * Wheter the table footer is sticky.\n * In order to use eui-table sticky feature and control the scrolling overflow,\n * we recommend to wrap the table with the provided eui-table-v2__scrollable-wrapper class and set your custom table width and/or height.\n * \n * @default false\n */\n @Input({ transform: booleanAttribute }) hasStickyFooter = false;\n /**\n * Wheter the table col is sticky.\n * In order to use eui-table sticky feature and control the scrolling overflow,\n * we recommend to wrap the table with the provided eui-table-v2__scrollable-wrapper class and set your custom table width and/or height.\n * \n * Only first or latest columns can be sticky.\n * \n * @default false\n */\n @Input({ transform: booleanAttribute }) hasStickyCols = false;\n /**\n * Wheter the table is reponsive.\n * \n * @default false\n */\n @Input({ transform: booleanAttribute }) isTableResponsive = false;\n /**\n * Wheter the table uses async data.\n * In this configuration, pagination, filtering and sorting are managed by the backend.\n * \n * When data are async, paginator and filter must not be bound to the eui-table component like in other sample.\n * \n * @default false\n */\n @Input({ transform: booleanAttribute }) isAsync = false;\n /**\n * In combination with `isVirtualScroll`. Total length of data that are displayed in the table with virtual scroll.\n * \n * @default 0\n */\n @Input({ transform: numberAttribute }) virtualScrollAsyncItemsLength = 0;\n /**\n * In combination with `isVirtualScroll`. Nb of data items to load in the table.\n * \n * @default 50\n */\n @Input({ transform: numberAttribute }) virtualScrollNbRows = 50;\n /**\n * Wheter the cols can be reordered.\n * \n * @default false\n */\n @Input({ transform: booleanAttribute }) isColsOrderable = false;\n /**\n * Wheter a loading spinner is displayed in the table.\n * \n * @default false\n */\n @Input({ transform: booleanAttribute }) isLoading = false;\n /**\n * Wheter the 'select all' checkbox in the header will select ONLY items in the current page.\n * \n * If `false`, all items across the pages will be selected.\n * \n * @default true\n */\n @Input({ transform: booleanAttribute }) isSelectOnlyVisibleRows = true;\n /**\n * @deprecated\n * Has been deprecated to align with Design System\n */\n @Input({ transform: booleanAttribute }) isTableBordered = false;\n\n protected headerTemplate: TemplateRef<HTMLElement>;\n protected bodyTemplate: TemplateRef<{ $implicit: DATA; index: number }>;\n protected footerTemplate: TemplateRef<HTMLElement>;\n protected noDataTemplate: TemplateRef<HTMLElement>;\n protected loading = [];\n protected nbCols: HTMLTableCellElement[] = [];\n protected dataRendered: DATA[] = [];\n protected cdkVirtualScrollViewportOverflowValue: ('hidden' | 'auto') = 'auto';\n\n @ContentChildren(EuiTemplateDirective) templates: QueryList<EuiTemplateDirective>;\n\n @ViewChild('cdkVirtualScrollViewport', { static: false }) protected cdkVirtualScrollViewport: CdkVirtualScrollViewport;\n @ViewChild('cdkVirtualScrollViewportElement', { static: false, read: ElementRef }) protected cdkVirtualScrollViewportElement: ElementRef;\n @ViewChild('theadRef') theadRef: ElementRef<HTMLElement>;\n @ViewChild('tbodyRef') tbodyRef: ElementRef<HTMLElement>;\n @ViewChild('tfootRef') tfootRef: ElementRef<HTMLElement>;\n\n /**\n * In combination with `isVirtualScroll`. Event emitted when a scroll is done.\n */\n @Output() scrollChange = new EventEmitter();\n /**\n * In combination with `isDataSelectable` on a row. Event emitted when the selection changes with an array of data.\n */\n @Output() rowsSelect = new EventEmitter<DATA[]>();\n /**\n * In combination with `isSortable` on the cols. Event emitted when the sort changes with the property displayed in the col and the order as `ASC` or `DESC`.\n */\n @Output() sortChange = new EventEmitter<Sort[]>();\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private virtualScrollLastMultiple = 0;\n private virtualScrollSpliceFrom = 0;\n private scrolledIndex = 0;\n private nbItemDisplayed = 0;\n private scrollingDirection: ScrollinDirection;\n private mutationObserver: MutationObserver;\n private dataSrc: DATA[] = [];\n private page = 0;\n private pageSize = 0;\n private tableFeaturesHandlerSubscription = new Subscription();\n private filteredData: DATA[] = [];\n\n constructor(private elementRef: ElementRef,\n private cd: ChangeDetectorRef,\n private euiTableV2SelectableRowService: EuiTableV2SelectableRowService<DATA>,\n private euiTableV2SortService: EuiTableV2SortService,\n private baseStatesDirective: BaseStatesDirective,\n private renderer: Renderer2,\n ) {}\n\n ngOnChanges(c: SimpleChanges): void {\n if (!this.data) {\n this.data = [];\n }\n\n this.euiTableV2SelectableRowService.setPropId(this.propId);\n if (this.isVirtualScroll) {\n if (c.data && c.data.isFirstChange()) {\n this.dataRendered = [...c.data.currentValue, ...Array.from({ length: this.virtualScrollAsyncItemsLength - c.data.currentValue.length })];\n\n this.euiTableV2SelectableRowService.unregisterRows();\n this.euiTableV2SelectableRowService.registerRows(this.dataRendered);\n }\n\n if (c.data && !c.data.isFirstChange()) {\n if (this.isAsync) {\n const source = [...this.dataRendered];\n if (this.isVirtualScrollCache) {\n this.dataRendered = [...source.slice(0, this.virtualScrollSpliceFrom), ...c.data.currentValue, ...source.slice(this.virtualScrollSpliceFrom + this.virtualScrollNbRows)];\n } else {\n this.dataRendered = [\n ...Array.from({ length: this.virtualScrollSpliceFrom - this.nbItemDisplayed }),\n ...source.slice(this.virtualScrollSpliceFrom - this.nbItemDisplayed, this.virtualScrollSpliceFrom),\n ...c.data.currentValue,\n ...source.slice(this.virtualScrollSpliceFrom + this.virtualScrollNbRows, this.virtualScrollSpliceFrom + this.virtualScrollNbRows + this.nbItemDisplayed),\n ...Array.from({ length: this.virtualScrollAsyncItemsLength - (this.virtualScrollSpliceFrom + this.virtualScrollNbRows + this.nbItemDisplayed) }),\n ];\n }\n\n if (c && c.virtualScrollAsyncItemsLength) {\n if (c.virtualScrollAsyncItemsLength.previousValue > c.virtualScrollAsyncItemsLength.currentValue) {\n this.dataRendered = this.dataRendered.slice(0, c.virtualScrollAsyncItemsLength.currentValue);\n } else {\n this.dataRendered = [...c.data.currentValue, ...Array.from({ length: this.virtualScrollAsyncItemsLength - c.data.currentValue.length })];\n }\n }\n\n this.euiTableV2SelectableRowService.unregisterRows();\n this.euiTableV2SelectableRowService.registerRows(this.dataRendered);\n\n if (this.scrollingDirection === ScrollinDirection.DOWN) {\n if ((this.hasUndefinedInRange(this.scrolledIndex, this.nbItemDisplayed, this.dataRendered) !== -1 ||\n this.scrolledIndex === this.virtualScrollSpliceFrom &&\n !this.dataRendered[this.scrolledIndex - 1]) &&\n this.hasUndefinedInRange(this.scrolledIndex, this.nbItemDisplayed, this.dataRendered) !== this.dataRendered.length\n ) {\n // console.log('reposition down')\n this.cdkVirtualScrollViewport.scrollToIndex(this.virtualScrollSpliceFrom + 1);\n }\n }\n\n if (this.scrollingDirection === ScrollinDirection.UP) {\n if (this.hasUndefinedInRange(this.scrolledIndex, this.nbItemDisplayed, this.dataRendered) !== -1) {\n // console.log('reposition up')\n this.cdkVirtualScrollViewport.scrollToIndex(this.virtualScrollSpliceFrom + 1);\n }\n }\n\n this.stickyFeatureHandler();\n }\n }\n } else {\n if (c && c.data) {\n const lengthChanged = this.dataSrc.length !== c.data.currentValue.length;\n this.dataSrc = c.data.currentValue ? [...c.data.currentValue] : [];\n\n if (this.paginator && lengthChanged) {\n this.paginator.goFirstPage({ emitEvent: !c.data.firstChange });\n }\n\n if (!this.isAsync && !c.data.isFirstChange()) {\n this.tableFeaturesHandlerSubscription.unsubscribe();\n this.tableFeaturesHandler();\n }\n\n this.euiTableV2SelectableRowService.registerRows(this.dataSrc);\n }\n if (c && c.paginator?.currentValue) {\n this.paginator.setLength(this.data.length);\n if (!c.paginator?.isFirstChange()) {\n this.paginator.goFirstPage({ emitEvent: false });\n }\n } else {\n // this.data can be changed anytime, then this else can be executed at that time, testing this.paginator allows to make sure\n // the user wants to disable pagination or change the datasource\n if (!this.paginator) {\n this.dataRendered = this.dataSrc;\n this.page = 0;\n }\n }\n }\n\n if (c && c.preselectedRows && !c.preselectedRows.isFirstChange()) {\n this.euiTableV2SelectableRowService.selectRows(c.preselectedRows.currentValue);\n }\n }\n\n ngOnInit(): void {\n this.dataSrc = [...this.data];\n }\n\n ngAfterContentInit(): void {\n this.templates.forEach((item) => {\n if (item.getType() === 'header') {\n this.headerTemplate = item.template;\n }\n if (item.getType() === 'body') {\n this.bodyTemplate = item.template;\n }\n if (item.getType() === 'footer') {\n this.footerTemplate = item.template;\n }\n if (item.getType() === 'noData') {\n this.noDataTemplate = item.template;\n }\n });\n }\n\n // test(index): void {\n // this.cdkVirtualScrollViewport.scrollToIndex(index)\n // }\n\n ngAfterViewInit(): void {\n this.stickyFeatureHandler();\n\n if (this.isVirtualScroll) {\n this.cdkVirtualScrollViewport?.renderedRangeStream\n .pipe(debounceTime(500), takeUntil(this.destroy$))\n .subscribe((listRange: ListRange) => {\n this.stickyFeatureHandler();\n });\n\n const theadElements = Array.from(this.theadRef.nativeElement.querySelectorAll('th'));\n this.nbCols = new Array(theadElements.length);\n\n this.cdkVirtualScrollViewport.scrolledIndexChange\n .pipe(debounceTime(500), takeUntil(this.destroy$))\n .subscribe((scrolledIndex: number) => {\n if (this.isAsync) {\n this.scrollingDirection = scrolledIndex > this.scrolledIndex ? ScrollinDirection.DOWN : ScrollinDirection.UP;\n this.scrolledIndex = scrolledIndex;\n\n this.cdkVirtualScrollViewport.setTotalContentSize(this.virtualScrollAsyncItemsLength * this.itemSize);\n\n const scrollOffset = this.cdkVirtualScrollViewport.measureScrollOffset('top');\n const endIndex = Math.ceil((scrollOffset + this.cdkVirtualScrollViewport.getViewportSize()) / this.itemSize);\n this.nbItemDisplayed = endIndex - scrolledIndex;\n const virtualScrollCurrentMultiple = Math.floor((scrolledIndex + this.nbItemDisplayed) / this.virtualScrollNbRows);\n\n if (scrolledIndex > 0) {\n if (this.dataRendered[scrolledIndex] || (this.scrollingDirection === ScrollinDirection.UP && this.dataRendered[scrolledIndex - 1])) {\n // console.log('virtualScrollCurrentMultiple', virtualScrollCurrentMultiple)\n // console.log('this.virtualScrollLastMultiple', this.virtualScrollLastMultiple)\n // console.log('virtualScrollCurrentMultiple > this.virtualScrollLastMultiple', virtualScrollCurrentMultiple > this.virtualScrollLastMultiple)\n\n if (virtualScrollCurrentMultiple > this.virtualScrollLastMultiple) {\n this.virtualScrollSpliceFrom = virtualScrollCurrentMultiple * this.virtualScrollNbRows;\n this.scrollChange.emit({ start: virtualScrollCurrentMultiple * this.virtualScrollNbRows, end: this.virtualScrollNbRows });\n }\n } else {\n this.virtualScrollSpliceFrom = this.roundDown(scrolledIndex, this.virtualScrollNbRows);\n this.scrollChange.emit({ start: this.virtualScrollSpliceFrom, end: this.virtualScrollNbRows });\n }\n }\n\n this.virtualScrollLastMultiple = virtualScrollCurrentMultiple;\n }\n });\n }\n\n if (this.cdkVirtualScrollViewportElement) {\n this.cdkVirtualScrollViewportElement.nativeElement.style.height = this.cdkVirtualScrollViewport.elementRef.nativeElement.parentElement.clientHeight + 'px';\n }\n\n const mutationObservable = new Observable<MutationRecord[]>((observer) => {\n this.mutationObserver = new MutationObserver((mutations) => {\n const filteredMutations = mutations.filter((mutation) => {\n return (\n mutation.target instanceof HTMLElement &&\n mutation.target.tagName.toLowerCase() === 'th' &&\n mutation.attributeName === 'style'\n );\n });\n\n if (filteredMutations.length > 0) {\n observer.next(filteredMutations);\n }\n });\n\n const config = { attributes: true, subtree: true, attributeFilter: ['style'] };\n this.mutationObserver.observe(this.theadRef.nativeElement, config);\n });\n\n mutationObservable.pipe(debounceTime(250), takeUntil(this.destroy$)).subscribe((mutations) => {\n this.stickyFeatureHandler();\n });\n\n if (!this.isAsync && !this.isVirtualScroll) {\n this.tableFeaturesHandlerSubscription.unsubscribe();\n this.tableFeaturesHandler();\n\n if (this.preselectedRows) {\n setTimeout(() => {\n this.euiTableV2SelectableRowService.selectRows(this.preselectedRows);\n });\n }\n }\n\n this.selectRowsFeatureHandler();\n this.sortFeatureHandler();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.mutationObserver?.disconnect();\n this.tableFeaturesHandlerSubscription.unsubscribe();\n }\n\n /**\n * Moves an element within the rendered data array.\n *\n * @param itemId - The identifier (default: id) of the element to move.\n * @param fromIndex - The current index of the element to move.\n * @param toIndex - The new desired position for the element.\n */\n public moveItem(itemId: number | string, fromIndex: number, toIndex: number): void {\n const itemPosition = this.dataRendered.findIndex(d => d && d[this.propId] === itemId);\n const move = toIndex - fromIndex;\n\n const source = [...this.dataRendered];\n const [elementToMove] = source.splice(itemPosition, 1);\n\n source.splice(itemPosition + move, 0, elementToMove);\n\n this.dataRendered = source;\n }\n\n /**\n * Select all rows\n */\n public selectAllRows(): void {\n this.euiTableV2SelectableRowService.selectAllRows();\n }\n\n /**\n * Unselect all rows\n */\n public unselectAllRows(): void {\n this.euiTableV2SelectableRowService.unselectAllRows();\n }\n\n /**\n * Return an array with the data matching the string filter\n * @returns\n */\n public getFilteredData(): DATA[] {\n return this.filteredData;\n }\n\n /**\n * Sort the table's data.\n * @param sorts An array of SortOrder. See {@link SortOrder}\n */\n public setSort(sorts: Sort[]): void {\n this.euiTableV2SortService.setSorts(sorts);\n }\n\n /**\n * Filters the table's data based on a string declared in `EuiTableV2FilterComponent`\n * \n * @param filter String to filter the data\n * @param r Array of data to filter\n * @returns The set of data matching the filter\n */\n public filterData(filter: string, r: DATA[]): DATA[] {\n const rows = filter ?\n r.filter((row) => {\n const matching = this.getProps(row, filter).filter((p) => p.match === true);\n return matching?.length > 0;\n }) : r;\n\n this.euiTableV2SelectableRowService.unregisterRows();\n this.euiTableV2SelectableRowService.registerRows(rows);\n\n this.filteredData = rows;\n\n return rows;\n }\n\n /**\n * Get the top position in px of the sticky header.\n */\n protected get stickyHeaderTopPosition(): string {\n if (!this.cdkVirtualScrollViewport || !this.cdkVirtualScrollViewport['_renderedContentOffset']) {\n return '0';\n }\n\n return (-this.cdkVirtualScrollViewport['_renderedContentOffset'] - 1) + 'px';\n }\n\n /**\n * Get the bottom position in px of the sticky footer.\n */\n protected get stickyFooterBottomPosition(): string {\n if (!this.cdkVirtualScrollViewport || !this.cdkVirtualScrollViewport['_renderedContentOffset']) {\n return '-1px';\n }\n\n return this.cdkVirtualScrollViewport['_renderedContentOffset'] - 1 + 'px';\n }\n\n /**\n * Get the width in px of the viewport in which the table is.\n */\n protected get cdkVirtualScrollViewportWidth(): string {\n return (this.elementRef.nativeElement?.parentElement?.clientWidth || 0) + 'px';\n }\n\n /**\n * Get the width, as a number, of the host element.\n */\n protected get hostWidth(): number {\n return this.elementRef.nativeElement.style.width;\n }\n\n protected trackByFn(index: number): number {\n return index;\n }\n\n /**\n * Handles table features such as sorting, filtering, and pagination before rendering.\n */\n private tableFeaturesHandler(): void {\n this.tableFeaturesHandlerSubscription = combineLatest(\n this.paginator ? this.paginator.page$ : new BehaviorSubject(null),\n this.filter ? this.filter.filter$ : new BehaviorSubject(null),\n this.euiTableV2SortService.sorts,\n ).pipe(takeUntil(this.destroy$)).subscribe(([pagination, filter, sorts]: [EuiPaginationEvent, string, Sort[]]) => {\n let r = [...this.dataSrc];\n\n if (sorts.length > 0) {\n r = this.sortData(sorts, r);\n }\n\n r = this.filterData(filter, r);\n\n if (this.paginator) {\n this.paginator.setLength(r.length);\n r = this.paginateRows(pagination, r);\n }\n\n this.dataRendered = r;\n if (this.isSelectOnlyVisibleRows) {\n this.euiTableV2SelectableRowService.unselectAllRows();\n this.euiTableV2SelectableRowService.unregisterRows();\n this.euiTableV2SelectableRowService.registerRows(this.dataRendered);\n }\n\n this.cd.detectChanges();\n\n if (this.hasStickyCols) {\n this.stickyFeatureHandler();\n }\n });\n }\n\n /**\n * Sorts the data based on the sort, property and order, criterias.\n * \n * @param sortCriterias Array of sort criterias containing the property on which the sort will be performed and the order (`ASC` or `DESC`).\n * @param r Array of data to sort\n * @returns A sorted array\n */\n private sortData(sortCriterias: { sort: string, order: SortOrder }[], r: DATA[]): DATA[] {\n if (sortCriterias.every(criteria => criteria.order === null)) {\n return r.slice();\n }\n\n return r.sort((a, b) => {\n for (const criteria of sortCriterias) {\n const aValue = this.getObjProp(a, criteria.sort);\n const bValue = this.getObjProp(b, criteria.sort);\n\n if (aValue === bValue) {\n continue;\n }\n\n if (aValue === null || aValue === undefined) {\n return criteria.order === 'asc' ? -1 : 1;\n }\n if (bValue === null || bValue === undefined) {\n return criteria.order === 'asc' ? 1 : -1;\n }\n\n if (typeof aValue === 'boolean' && typeof bValue === 'boolean') {\n return criteria.order === 'asc' ? (aValue ? -1 : 1) : (bValue ? -1 : 1);\n }\n\n if (typeof aValue === 'number' && typeof bValue === 'number') {\n return criteria.order === 'asc' ? aValue - bValue : bValue - aValue;\n }\n\n const aValueStr = typeof aValue === 'string' ? aValue.toLowerCase() : aValue;\n const bValueStr = typeof bValue === 'string' ? bValue.toLowerCase() : bValue;\n\n const comparison = criteria.order === 'asc' ? aValueStr.localeCompare(bValueStr) : bValueStr.localeCompare(aValueStr);\n\n if (comparison !== 0) {\n return comparison;\n }\n }\n\n return 0;\n });\n }\n\n /**\n * Slices the data array based on the pagination event.\n * \n * @param pagination Object containing the page, the page size and the total number of pages.\n * @param r Array of data to paginate.\n * @returns The sliced array to render.\n */\n private paginateRows(pagination: EuiPaginationEvent, r: DATA[]): DATA[] {\n this.page = pagination.page;\n this.pageSize = pagination.pageSize;\n\n return r.slice(this.page * this.pageSize, this.page * this.pageSize + this.pageSize);\n }\n\n /**\n * Round down the index to the nearest multiple of the number of rows.\n * \n * @param index Index of the current scroll level.\n * @param nbRows Number of rows to display.\n * @returns A rounded number.\n */\n private roundDown(index: number, nbRows: number): number {\n return Math.floor(index / nbRows) * nbRows;\n }\n\n /**\n * Checks if in the range of data to render some of them had already been loaded or not.\n * \n * @param startIndex Start index of the range to check\n * @param limit Number of item to check after the start index.\n * @param dataRendered Array of data to check\n * @returns The index of the first undefined item in the range or `-1` if not found.\n */\n private hasUndefinedInRange(startIndex: number, limit: number, dataRendered: DATA[]): number {\n for (let i = startIndex; i < startIndex + limit; i ++) {\n if (dataRendered[i] === undefined) {\n return i;\n }\n }\n\n return -1;\n }\n\n /**\n * Calcultates the position of columns that are sticky.\n */\n private stickyFeatureHandler(): void {\n setTimeout(() => {\n const containerWidth = this.elementRef.nativeElement?.parentElement?.clientWidth || 0;\n\n const processStickyItems = (items: HTMLTableCellElement[]): void => {\n items.forEach((item, i) => {\n const isStickyFirstCol = item.offsetLeft + item.clientWidth < containerWidth;\n const isStickyLastCol = item.offsetLeft + item.clientWidth > containerWidth;\n\n const itemsSticky = isStickyFirstCol\n ? items.filter((it) => it.offsetLeft + it.clientWidth < containerWidth)\n : isStickyLastCol\n ? items.filter((it) => it.offsetLeft + it.clientWidth > containerWidth)\n : [];\n\n itemsSticky.forEach((it, j) => {\n const w = itemsSticky[j - 1]?.clientWidth;\n const offset = isStickyFirstCol\n ? parseInt(itemsSticky[j - 1]?.style.left, 10)\n : parseInt(itemsSticky[j - 1]?.style.right, 10);\n\n if (isStickyFirstCol) {\n it.style.left = (j === 0 ? 0 : w + offset) + 'px';\n } else if (isStickyLastCol) {\n it.style.right = (j === 0 ? 0 : w + offset) + 'px';\n }\n\n if (j + 1 === itemsSticky.length) {\n this.renderer.addClass(it, `eui-table-v2__col--sticky-shadowed-${isStickyFirstCol ? 'first' : 'last'}`);\n }\n });\n });\n };\n\n if (this.theadRef) {\n const thItems: HTMLTableCellElement[] = Array.from(this.theadRef.nativeElement.querySelectorAll('.eui-table-v2__col--sticky'));\n processStickyItems(thItems);\n }\n\n const bodyTrItems = Array.from(this.tbodyRef.nativeElement.querySelectorAll('tr'));\n bodyTrItems.forEach((tr) => {\n const tdItems: HTMLTableCellElement[] = Array.from(tr.querySelectorAll('.eui-table-v2__col--sticky'));\n processStickyItems(tdItems);\n });\n\n if (this.tfootRef) {\n const tdItems: HTMLTableCellElement[] = Array.from(this.tfootRef.nativeElement.querySelectorAll('.eui-table-v2__col--sticky'));\n processStickyItems(tdItems);\n }\n }, 250);\n }\n\n /**\n * Handles the selection of rows.\n */\n private selectRowsFeatureHandler(): void {\n this.euiTableV2SelectableRowService.selectedRows.pipe(skip(1), takeUntil(this.destroy$)).subscribe((selected) => {\n this.rowsSelect.emit(selected);\n });\n }\n\n /**\n * Handles the sorting of columns.\n */\n private sortFeatureHandler(): void {\n this.euiTableV2SortService.sorts.pipe(skip(1), takeUntil(this.destroy$)).subscribe((sorts: Sort[]) => {\n this.sortChange.emit(sorts);\n });\n }\n\n /**\n * Get the properties of the object matching the filter string.\n * \n * @param row Row to extract the property from.\n * @param filter String to search in the properties.\n * @returns An array of properties matching the filter.\n */\n private getProps(row: DATA, filter: string): { key: string; match: boolean; value: string | number }[] {\n const isObject = (val: string | number): boolean => val && typeof val === 'object';\n const addDelimiter = (a: string, b: string): string => (a && a !== '0' ? `${a}.${b}` : b);\n const props: { key: string, match: boolean, value: string | number }[] = [];\n const paths = (pathObj: DATA, head = ''): string[] => {\n return Object.entries(pathObj).reduce((product, [key, value]) => {\n const fullPath = addDelimiter(head, key);\n const match = (v: string | number): boolean => v && typeof v !== 'object' && v?.toString().toLowerCase().indexOf(filter?.trim().toLowerCase()) !== -1;\n\n if (key !== '0' && typeof value !== 'object') {\n props.push({ key: addDelimiter(head, key), match: match(value), value });\n }\n\n return isObject(value) ? product.concat(paths(value, fullPath)) : product.concat(fullPath);\n }, []);\n };\n\n paths(row);\n return props;\n }\n\n /**\n * Get a property of an object based on the path.\n * \n * @param obj Row to extract the property from.\n * @param prop Path of the property to extract.\n * @returns The value of the property\n */\n private getObjProp(obj: DATA, prop: string): string {\n return prop ? prop.split('.').reduce((prev, curr) => (prev ? prev[curr] : null), obj || self) : null;\n }\n}\n","@if (isVirtualScroll) {\n <cdk-virtual-scroll-viewport\n #cdkVirtualScrollViewport\n #cdkVirtualScrollViewportElement\n class=\"eui-table-v2__scroll-viewport\"\n [itemSize]=\"itemSize\"\n [style.overflow]=\"cdkVirtualScrollViewportOverflowValue\"\n tabindex=\"0\">\n <table class=\"{{ cssClasses }}\" [style.width]=\"hostWidth\">\n @if (headerTemplate) {\n <thead #theadRef [style.top]=\"stickyHeaderTopPosition\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n </thead>\n }\n @if (bodyTemplate) {\n <tbody #tbodyRef>\n <ng-container *cdkVirtualFor=\"let row of dataRendered; let i = index; trackBy: trackByFn\">\n @if (row) {\n <ng-template\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i }\">\n </ng-template>\n } @else {\n <ng-template [ngTemplateOutlet]=\"skeletonLoading\"></ng-template>\n }\n </ng-container>\n\n @if (noDataTemplate && (data?.length === 0 || dataRendered?.length === 0)) {\n <ng-template [ngTemplateOutlet]=\"noDataTemplate\"></ng-template>\n }\n </tbody>\n }\n @if (footerTemplate) {\n <tfoot #tfootRef [style.bottom]=\"stickyFooterBottomPosition\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n </tfoot>\n }\n </table>\n </cdk-virtual-scroll-viewport>\n} @else {\n @if (headerTemplate) {\n <thead #theadRef>\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n </thead>\n }\n @if (bodyTemplate) {\n <tbody #tbodyRef>\n @for (row of dataRendered; let i = $index; track $index) {\n <ng-container>\n <ng-template\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i }\">\n </ng-template>\n </ng-container>\n }\n @if (noDataTemplate && (data?.length === 0 || dataRendered?.length === 0)) {\n <ng-template [ngTemplateOutlet]=\"noDataTemplate\"></ng-template>\n }\n </tbody>\n }\n @if (footerTemplate) {\n <tfoot #tfootRef>\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n </tfoot>\n }\n}\n\n<ng-template #skeletonLoading>\n <tr [style.height.px]=\"itemSize\">\n <td *ngFor=\"let __ of nbCols\"><eui-skeleton line euiRounded></eui-skeleton></td>\n </tr>\n</ng-template>\n","import { Directive, HostBinding } from '@angular/core';\n\n/**\n * @description\n * Directive used to activate the sticky feature on a column of the table.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'th[isStickyCol], td[isStickyCol]',\n standalone: false,\n})\nexport class EuiTableV2StickyColDirective {\n @HostBinding('class') class = 'eui-table-v2__col--sticky';\n}\n","import { Directive, HostBinding, ElementRef, OnInit } from '@angular/core';\nimport { AnimationBuilder, AnimationPlayer, animate, style } from '@angular/animations';\n\n/**\n * @description\n * Directive used to activate the expandable feature on a orw of the table.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'tr[isExpandableRow]',\n standalone: false,\n})\nexport class EuiTableV2ExpandableRowDirective implements OnInit {\n @HostBinding('class') string = 'eui-table-v2-expandable-row';\n private animationPlayer: AnimationPlayer;\n\n constructor(private el: ElementRef, private animationBuilder: AnimationBuilder) {}\n\n get isOpen(): boolean {\n return true;\n }\n\n ngOnInit(): void {\n const animation = this.animationBuilder.build([\n style({ opacity: 0 }),\n animate('250ms', style({ opacity: 1 })),\n ]);\n\n this.animationPlayer = animation.create(this.el.nativeElement);\n this.animationPlayer.play();\n }\n}\n","import { Component, OnInit, Input, OnDestroy, booleanAttribute } from '@angular/core';\nimport { Subject, combineLatest, takeUntil } from 'rxjs';\n\nimport { EuiTableV2SelectableRowService } from '../services/eui-table-v2-selectable-row.service';\n\n/**\n * @description\n * Component used internally by `eui-table-v2` to add a 'select all' checkbox in the header of the table.\n */\n@Component({\n // eslint-disable-next-line\n selector: 'tr[isHeaderSelectable]',\n templateUrl: './eui-table-v2-selectable-header.component.html',\n standalone: false,\n})\nexport class EuiTableV2SelectableHeaderComponent<DATA> implements OnInit, OnDestroy {\n /**\n * Wheter a select all feature is available in the header.\n * \n * @default false\n */\n @Input({ transform: booleanAttribute }) isHeaderSelectable = true;\n\n public isCheckedIndeterminate = false;\n public isChecked = false;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor(private euiDataTableSelectableRowService: EuiTableV2SelectableRowService<DATA>) {}\n\n ngOnInit(): void {\n combineLatest([\n this.euiDataTableSelectableRowService.isAllRowsSelected,\n this.euiDataTableSelectableRowService.selectedRows,\n ]).pipe(takeUntil(this.destroy$)).subscribe(([allSelected, selectedRows]) => {\n this.isChecked = allSelected;\n this.isCheckedIndeterminate = !allSelected && selectedRows.length > 0;\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Gets the `aria-label` attribute for the checkbox element.\n *\n * @default `Unchecked`\n */\n get ariaLabel(): string {\n if(!this.isChecked && !this.isCheckedIndeterminate) {\n return 'Unchecked';\n }\n if(this.isCheckedIndeterminate) {\n return 'Indeterminate';\n }\n if(this.isChecked && !this.isCheckedIndeterminate) {\n return 'Checked';\n }\n }\n\n /**\n * Handle the change of the selected status.\n * \n * @param e Change Event\n */\n public toggleCheckedState(e: Event): void {\n this.isChecked = (e.target as HTMLInputElement).checked;\n\n if (this.isChecked) {\n this.euiDataTableSelectableRowService.selectAllRows();\n } else {\n this.euiDataTableSelectableRowService.unselectAllRows();\n }\n }\n}\n","@if (isHeaderSelectable) {\n <th class=\"eui-table__cell-select\">\n <div class=\"eui-table__cell-select-checkbox-container\">\n <input [attr.aria-label]=\"ariaLabel\" euiInputCheckBox [checked]=\"isChecked ? 'checked' : null\" [indeterminate]=\"isCheckedIndeterminate\" (click)=\"toggleCheckedState($event)\" />\n </div>\n </th>\n}\n<ng-content></ng-content>\n","import { Component, OnInit, Input, OnDestroy, OnChanges, HostBinding, booleanAttribute, ElementRef, SimpleChanges } from '@angular/core';\nimport { Subject, fromEvent, takeUntil } from 'rxjs';\n\nimport { EuiTableV2SelectableRowService } from '../services/eui-table-v2-selectable-row.service';\n\n/**\n * @description\n * Component used internally by `eui-table-v2` to make a row selectable.\n */\n@Component({\n // eslint-disable-next-line\n selector: 'tr[isDataSelectable]',\n templateUrl: './eui-table-v2-selectable-row.component.html',\n standalone: false,\n})\nexport class EuiTableV2SelectableRowComponent<DATA> implements OnInit, OnDestroy, OnChanges {\n /**\n * Data of the row.\n */\n @Input() isDataSelectable: DATA;\n /**\n * Wheter the row is selected.\n * \n * @default false\n */\n @Input({ transform: booleanAttribute }) isChecked = false;\n /**\n * Wheter the selection can be done with the keyboard.\n * \n * @default false\n */\n @Input({ transform: booleanAttribute }) isKeyboardSelectable = false;\n\n private propId = 'id';\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n /**\n * @description\n * Computes and returns the CSS classes for the component based on its current state.\n *\n * @returns {string} Space-separated string of CSS class names\n */\n @HostBinding('class')\n public get cssClasses(): string {\n return [\n 'eui-table-v2__row',\n this.isDataSelectable ? 'eui-table-v2__row--selectable' : '',\n this.isChecked ? 'eui-table-v2__row--selected' : '',\n ]\n .join(' ')\n .trim();\n }\n\n constructor(private euiDataTableSelectableRowService: EuiTableV2SelectableRowService<DATA>, private elementRef: ElementRef) {}\n\n ngOnChanges(c: SimpleChanges): void {\n if (c && c.isChecked) {\n if (c.isChecked.currentValue) {\n this.euiDataTableSelectableRowService.selectRow(this.isDataSelectable);\n } else {\n this.euiDataTableSelectableRowService.unselectRow(this.isDataSelectable);\n }\n }\n }\n\n ngOnInit(): void {\n if (this.isKeyboardSelectable && this.isDataSelectable) {\n fromEvent<PointerEvent>(this.elementRef.nativeElement, 'click').pipe(takeUntil(this.destroy$)).subscribe((event) => {\n if (event.ctrlKey) {\n if (!this.isChecked) {\n this.euiDataTableSelectableRowService.selectRow(this.isDataSelectable);\n } else {\n this.euiDataTableSelectableRowService.unselectRow(this.isDataSelectable);\n }\n } else if (event.shiftKey) {\n const rows = this.euiDataTableSelectableRowService.getRows();\n const lastSelectedRow = this.euiDataTableSelectableRowService.getLastSelectedRow();\n const lastSelectedRowPosition = rows.indexOf(lastSelectedRow);\n const position = rows.indexOf(this.isDataSelectable);\n\n const range =\n lastSelectedRowPosition > position\n ? rows.slice(position, lastSelectedRowPosition + 1)\n : rows.slice(lastSelectedRowPosition, position + 1);\n\n this.euiDataTableSelectableRowService.selectRows(range);\n\n window.getSelection()?.empty();\n } else {\n this.euiDataTableSelectableRowService.selectRows([this.isDataSelectable]);\n }\n });\n }\n\n this.propId = this.euiDataTableSelectableRowService.getPropId();\n this.euiDataTableSelectableRowService.selectedRows.pipe(takeUntil(this.destroy$)).subscribe((selected) => {\n this.isChecked = selected.find((s) => s[this.propId] === this.isDataSelectable[this.propId]) !== undefined;\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Handle the change of the selected status.\n * \n * @param e Change Event\n */\n public toggleCheckedState(e: Event): void {\n this.isChecked = (e.target as HTMLInputElement).checked;\n\n if (this.isChecked) {\n this.euiDataTableSelectableRowService.selectRow(this.isDataSelectable);\n } else {\n this.euiDataTableSelectableRowService.unselectRow(this.isDataSelectable);\n }\n }\n}\n","@if (isDataSelectable) {\n <td class=\"eui-table__cell-select\">\n <div class=\"eui-table__cell-select-checkbox-container\">\n <input\n euiInputCheckBox\n [attr.aria-label]=\"isChecked ? 'default checkbox checked' : 'default checkbox unchecked'\"\n [(ngModel)]=\"isChecked\"\n (change)=\"toggleCheckedState($event)\" />\n </div>\n </td>\n}\n<ng-content></ng-content>\n","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy, HostBinding, ViewChild, ElementRef, ViewEncapsulation } from '@angular/core';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { Subject, BehaviorSubject, takeUntil, debounceTime, distinctUntilChanged } from 'rxjs';\n\n/**\n * @description\n * Component used with `eui-table-v2` to add a filter feature to the table.\n */\n@Component({\n selector: 'eui-table-v2-filter',\n templateUrl: './eui-table-v2-filter.component.html',\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class EuiTableV2FilterComponent implements OnInit, OnDestroy {\n /**\n * @description\n * Computes and returns the CSS classes for the component based on its current state.\n *\n * @returns {string} Space-separated string of CSS class names\n */\n @HostBinding('class')\n get cssClasses(): string {\n return [\n 'eui-table-v2__filter',\n ]\n .join(' ')\n .trim();\n }\n\n /**\n * Placeholder text for the filter input.\n */\n @Input() placeholder: string;\n\n /**\n * Event emitted when the value of the input changes.\n */\n @Output() filterChange = new EventEmitter<string>();\n\n @ViewChild('filterInput', { read: ElementRef }) filterInput: ElementRef<HTMLInputElement>;\n\n public filter$: BehaviorSubject<string> = new BehaviorSubject(null);\n public form = new FormGroup({\n filter: new FormControl<string>(null),\n });\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n ngOnInit(): void {\n this.form.get('filter').valueChanges.pipe(debounceTime(500), distinctUntilChanged(), takeUntil(this.destroy$)).subscribe((value) => {\n this.setFilter(value);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Set the filter value and emit the change event.\n * \n * @param value Value of the input.\n */\n public setFilter(value: string): void {\n this.filter$.next(value);\n this.filterChange.emit(value);\n this.form.get('filter').setValue(value);\n }\n\n /**\n * Reset the filter and emit the change event.\n */\n public resetFilter(): void {\n this.setFilter(null);\n this.form.reset();\n this.filterInput.nativeElement.focus();\n }\n}\n","<div class=\"eui-table-v2__filter\">\n <form [formGroup]=\"form\">\n <eui-icon-input>\n <eui-icon-svg icon=\"eui-ecl-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\"></eui-icon-svg>\n <input #filterInput\n euiClearable\n euiInputText\n class=\"eui-table-v2__filter-input\"\n formControlName=\"filter\"\n [attr.aria-label]=\"form.get('filter').value ? form.get('filter').value : placeholder\"\n placeholder=\"{{ placeholder }}\" />\n </eui-icon-input>\n <eui-icon-svg class=\"eui-table-v2__filter-search-icon\" icon=\"eui-ecl-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\"></eui-icon-svg>\n </form>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n/**\n * @description\n * Pipe used to highlight the matching string in the data of the table when used with filter feature.\n * \n * @example\n * ```\n * <td><span [innerHTML]=\"row.year | euiTableV2Highlight: strFilter\"></span></td>\n * \n * strFilter = '19'\n * ```\n */\n@Pipe({\n name: 'euiTableV2Highlight',\n standalone: false,\n})\nexport class EuiTableV2HighlightPipe implements PipeTransform {\n /**\n * Wrap a matching string with a span element with a class name in the data of the table\n * \n * @param value Data displayed in a cell.\n * @param strFilter Search string to highlight.\n * @param className CSS class to add to the span element. Default: 'eui-table-v2--highlighted'\n * @returns \n */\n transform(value: string, strFilter: string, className = 'eui-table-v2--highlighted'): string {\n if (value) {\n if (strFilter && strFilter.length > 0) {\n const regex = new RegExp('(' + strFilter + ')', 'gi');\n return value.toString().replace(regex, '<span class=\"' + className + '\">$1</span>');\n } else {\n return value;\n }\n } else {\n return '';\n }\n }\n}\n","import { Component, OnInit, OnDestroy, Input, HostBinding, booleanAttribute, ElementRef, ViewChild } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { EuiDropdownComponent } from '@eui/components/eui-dropdown';\n\nimport { EuiTableV2SortService } from '../services/eui-table-v2-sort.service';\nimport { SortOrder } from '../models/sort.model';\n\n/**\n * @description\n * Component used internally by `eui-table-v2` to make a column sortable.\n */\n@Component({\n // eslint-disable-next-line\n selector: 'th[isSortable]',\n templateUrl: './eui-table-v2-sortable-col.component.html',\n standalone: false,\n})\nexport class EuiTableV2SortableColComponent implements OnInit, OnDestroy {\n /**\n * @description\n * Computes and returns the CSS classes for the component based on its current state.\n *\n * @returns {string} Space-separated string of CSS class names\n */\n @HostBinding('class')\n get cssClasses(): string {\n return ['eui-table-v2__sortable-col', this.sortDisabled ? 'eui-table-v2__sortable-col--disabled' : ''].join(' ').trim();\n }\n\n @Input() sortOn: string;\n @Input() sortOrder: SortOrder = 'asc';\n\n /**\n * Wheter the column is sorted by defaut.\n * \n * @default false\n */\n @Input({ transform: booleanAttribute }) defaultOrder = false;\n /**\n * Wheter the sort is disabled on the column.\n * \n * @default false\n */\n @Input({ transform: booleanAttribute }) sortDisabled = false;\n /**\n * Wheter the sorting of the column can be cumulated with the one of other column.\n * \n * @default false\n */\n @Input({ transform: booleanAttribute }) isMultiSortable = false;\n\n public order: SortOrder = null;\n public isSorted = false;\n public sortedIndex: number = null;\n\n @ViewChild('euiDropdown') euiDropdown: EuiDropdownComponent;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor(private euiTableV2SortService: EuiTableV2SortService, private elementRef: ElementRef) {}\n\n ngOnInit(): void {\n this.euiTableV2SortService.sorts.pipe(takeUntil(this.destroy$)).subscribe((sorts) => {\n const isSorted = sorts.find(s => s.sort === this.sortOn);\n this.isSorted = isSorted !== undefined;\n if (this.isSorted) {\n this.order = isSorted.order;\n if (sorts.length > 1) {\n this.sortedIndex = sorts.findIndex(s => s.sort === this.sortOn) + 1;\n } else {\n this.sortedIndex = null;\n }\n } else {\n this.order = null;\n this.sortedIndex = null;\n }\n });\n\n if (this.defaultOrder) {\n this.order = this.sortOrder;\n this.euiTableV2SortService.setSort(this.sortOn, this.order, this.isMultiSortable);\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Handles the click event on the sortable column.\n */\n public changeSort(): void {\n if (!this.sortDisabled) {\n if (this.order === 'asc') {\n this.order = 'desc';\n } else if (this.order === 'desc') {\n this.order = null;\n } else if (this.order === null) {\n this.order = 'asc';\n }\n\n this.euiTableV2SortService.setSort(this.sortOn, this.order, this.isMultiSortable);\n }\n }\n\n /**\n * Handles the click event on the dropdown item when the column is multi-sortable.\n * @param order An array of SortOrder. See {@link SortOrder}\n */\n public onDropdownItemClick(order: SortOrder): void {\n this.euiTableV2SortService.setSort(this.sortOn, order, this.isMultiSortable);\n }\n}\n","<div class=\"eui-table-v2__sortable-col-content\">\n <div class=\"eui-table-v2__sortable-col-content-label\">\n <ng-content></ng-content>\n\n <button class=\"eui-u-ml-xs\" euiButton euiIconButton euiBasicButton (click)=\"changeSort()\">\n @if (!isSorted && !sortDisabled) {\n <eui-icon-svg class=\"sort-icon\" icon=\"swap-vertical:outline\"></eui-icon-svg>\n }\n @if (order === 'asc' && isSorted && !sortDisabled) {\n <eui-icon-svg class=\"sort-icon\" icon=\"arrow-up:outline\" fillColor=\"primary\" [aria-label]=\"'eui.euitable.ASCENDING-ICON' | translate\"></eui-icon-svg>\n }\n @if (order === 'desc' && isSorted && !sortDisabled) {\n <eui-icon-svg class=\"sort-icon\" icon=\"arrow-down:outline\" fillColor=\"primary\" [aria-label]=\"'eui.euitable.DESCENDING-ICON' | translate\"></eui-icon-svg>\n }\n </button>\n @if (sortedIndex && !sortDisabled) {\n <button euiSizeS euiButton euiBasicButton (click)=\"changeSort()\">\n <span class=\"eui-table-v2__sortable-col-multisort-index\">{{ sortedIndex }}</span>\n </button>\n }\n </div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport { TranslateModule } from '@ngx-translate/core';\n\nimport { EuiTemplateDirectiveModule } from '@eui/components/directives';\nimport { EuiSkeletonModule } from '@eui/components/eui-skeleton';\nimport { EuiInputCheckboxModule } from '@eui/components/eui-input-checkbox';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiInputTextModule } from '@eui/components/eui-input-text';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiListModule } from '@eui/components/eui-list';\nimport { EuiIconInputModule } from '@eui/components/eui-icon-input';\n\nimport { EuiTableV2Component } from './eui-table-v2.component';\nimport { EuiTableV2StickyColDirective } from './directives/eui-table-v2-sticky-col.directive';\nimport { EuiTableV2SelectableRowComponent } from './selectable-row/eui-table-v2-selectable-row.component';\nimport { EuiTableV2SelectableHeaderComponent } from './selectable-header/eui-table-v2-selectable-header.component';\nimport { EuiTableV2FilterComponent } from './filter/eui-table-v2-filter.component';\nimport { EuiTableV2HighlightPipe } from './pipes/eui-table-v2-highlight.pipe';\nimport { EuiTableV2SortableColComponent } from './sortable-col/eui-table-v2-sortable-col.component';\nimport { EuiTableV2ExpandableRowDirective } from './directives/eui-table-v2-expandable-row.directive';\n\n/**\n * @description\n * Module that provides the EuiTableV2 component and its dependencies\n *\n * @example\n * ```\n * \\@NgModule({\n * imports: [EuiTableV2Module]\n * })\n * export class YourModule { }\n * ```\n */\n@NgModule({\n imports: [\n CommonModule,\n EuiTemplateDirectiveModule,\n ScrollingModule,\n EuiSkeletonModule,\n EuiInputCheckboxModule,\n FormsModule,\n ReactiveFormsModule,\n EuiIconModule,\n EuiInputTextModule,\n TranslateModule,\n EuiButtonModule,\n EuiListModule,\n EuiIconInputModule,\n ],\n declarations: [\n EuiTableV2Component,\n EuiTableV2SelectableHeaderComponent,\n EuiTableV2SelectableRowComponent,\n EuiTableV2StickyColDirective,\n EuiTableV2FilterComponent,\n EuiTableV2HighlightPipe,\n EuiTableV2SortableColComponent,\n EuiTableV2ExpandableRowDirective,\n ],\n exports: [\n EuiTableV2Component,\n EuiTableV2SelectableHeaderComponent,\n EuiTableV2SelectableRowComponent,\n EuiTemplateDirectiveModule,\n EuiTableV2StickyColDirective,\n EuiTableV2FilterComponent,\n EuiTableV2HighlightPipe,\n EuiTableV2SortableColComponent,\n EuiTableV2ExpandableRowDirective,\n ],\n})\nexport class EuiTableV2Module { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.EuiTableV2SelectableRowService","i2.EuiTableV2SortService","i3","i1","i2","i4","i1.EuiTableV2SortService"],"mappings":"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"}
@@ -935,7 +935,7 @@ class EuiTableSortableColComponent {
935
935
  return arr.filter((col) => col.name === el.name).length === 1;
936
936
  }
937
937
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiTableSortableColComponent, deps: [{ token: EuiTableSortService }], target: i0.ɵɵFactoryTarget.Component }); }
938
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: EuiTableSortableColComponent, isStandalone: false, selector: "th[sortable]", inputs: { sortOn: "sortOn", sortOrder: "sortOrder", defaultMultiOrder: ["defaultMultiOrder", "defaultMultiOrder", numberAttribute], defaultOrder: ["defaultOrder", "defaultOrder", booleanAttribute], sortDisabled: ["sortDisabled", "sortDisabled", booleanAttribute], isMultiSortable: ["isMultiSortable", "isMultiSortable", booleanAttribute] }, host: { properties: { "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: EuiDropdownComponent, descendants: true }], ngImport: i0, template: "<!-- TODO v19 - remove all eui-u utility classes usage -->\n\n<div class=\"eui-table__sortable-col-content\">\n <ng-content></ng-content>\n @if (!sortDisabled) {\n <button type=\"button\" euiSizeS euiButton euiIconButton euiBasicButton class=\"eui-table__sortable-icon-button\" (click)=\"click()\">\n @if (!order) {\n <eui-icon-svg icon=\"swap-vertical:outline\" fillColor=\"neutral-lighter\" [aria-label]=\"'eui.euitable.NO-SORTING-ICON' | translate\"></eui-icon-svg>\n }\n @if (order === 'asc') {\n <eui-icon-svg icon=\"arrow-up:outline\" fillColor=\"primary\" [aria-label]=\"'eui.euitable.ASCENDING-ICON' | translate\"></eui-icon-svg>\n }\n @if (order === 'desc') {\n <eui-icon-svg icon=\"arrow-down:outline\" fillColor=\"primary\" [aria-label]=\"'eui.euitable.DESCENDING-ICON' | translate\"></eui-icon-svg>\n }\n </button>\n }\n @if (isMultiSortable) {\n <ng-template [ngTemplateOutlet]=\"sortDropdown\"></ng-template>\n }\n</div>\n<ng-template #sortDropdown let-index>\n <eui-dropdown [hasClosedOnClickInside]=\"false\">\n <button type=\"button\" euiButton euiBasicButton euiRounded euiIconButton euiSizeS [euiDisabled]=\"sortDisabled\" (click)=\"onOpenDropdown()\">\n <span euiBadge euiPrimary euiOutline>{{ currentMultiSortPosition }}</span>\n </button>\n <eui-dropdown-content>\n <div class=\"eui-u-pt-xs eui-u-pl-s\">\n <small>{{ 'eui.euitable.CHOOSE-SORT-ORDER' | translate }}</small>\n </div>\n @if (form) {\n <form [formGroup]=\"form\">\n <ng-container formArrayName=\"columns\">\n @for (columnForm of columns.controls; let i = $index; track $index) {\n <div class=\"eui-u-flex eui-u-p-s\" [formGroup]=\"form.get('columns')['controls'][i]\">\n <span euiLabel class=\"eui-u-mr-s\">{{ i + 1 }}</span>\n <select euiSelect euiSizeS formControlName=\"name\" class=\"eui-u-mr-s\">\n <option value=\"\"></option>\n @for (column of multisortParams; track $index) {\n <option [value]=\"column.name\">{{ column.name }}</option>\n }\n </select>\n @if (!getOrderByIndex(i)) {\n <button type=\"button\" euiSizeS euiSecondary euiButton euiIconButton euiBasicButton (click)=\"onClickMultisortOrder(i + 1, 'asc')\">\n <eui-icon-svg icon=\"swap-vertical:outline\" [aria-label]=\"'eui.euitable.NO-SORTING-ICON' | translate\"></eui-icon-svg>\n </button>\n }\n @if (getOrderByIndex(i) === 'asc') {\n <button type=\"button\" euiSizeS euiPrimary euiButton euiIconButton euiBasicButton (click)=\"onClickMultisortOrder(i + 1, 'desc')\">\n <eui-icon-svg icon=\"arrow-up:outline\" [aria-label]=\"'eui.euitable.ASCENDING-ICON' | translate\"></eui-icon-svg>\n </button>\n }\n @if (getOrderByIndex(i) === 'desc') {\n <button type=\"button\" euiSizeS euiPrimary euiButton euiIconButton euiBasicButton (click)=\"onClickMultisortOrder(i + 1, null)\">\n <eui-icon-svg icon=\"arrow-down:outline\" [aria-label]=\"'eui.euitable.DESCENDING-ICON' | translate\"></eui-icon-svg>\n </button>\n }\n </div>\n }\n </ng-container>\n </form>\n }\n @if (error) {\n <p class=\"eui-u-mt-none eui-u-mb-none eui-u-ml-s\">\n <eui-feedback-message euiDanger>{{ 'eui.euitable.WRONG-SORT-PARAMS' | translate }}</eui-feedback-message>\n </p>\n }\n <div class=\"eui-u-flex eui-u-flex-justify-content-between eui-u-p-s\">\n <button type=\"button\" euiButton euiSizeS euiSecondary (click)=\"onCancelMultiSort()\">{{ 'eui.CANCEL' | translate }}</button>\n <button type=\"button\" euiButton euiSizeS euiPrimary (click)=\"onSubmitMultiSort()\">{{ 'eui.APPLY' | translate }}</button>\n </div>\n </eui-dropdown-content>\n </eui-dropdown>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i4$1.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i5.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "position", "subDropdownPosition", "isBlock", "isDropDownRightAligned", "hasClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation", "isRightClickEnabled", "euiDisabled"], outputs: ["expand"] }, { kind: "directive", type: i5.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "component", type: i6.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "directive", type: i3$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i7.EuiFeedbackMessageComponent, selector: "eui-feedback-message", inputs: ["isMuted"] }, { kind: "component", type: i8.EuiSelectComponent, selector: "select[euiSelect]", inputs: ["placeholder", "readonly", "isInvalid"] }, { kind: "directive", type: i8.EuiNgSelectOptionDirective, selector: "option:not([eclSelectOption]):not([eclMultiselectOption]), option[euiOption]", inputs: ["selected", "label", "ngValue"] }, { kind: "directive", type: i8.EuiSelectControlValueAccessor, selector: "select:not([multiple])[formControlName][euiSelect],select:not([multiple])[formControl][euiSelect],select:not([multiple])[ngModel][euiSelect]", inputs: ["placeholder"] }, { kind: "directive", type: i8.EuiSelectMultipleOption, selector: "option, option[euiOption]", inputs: ["ngValue", "value"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
938
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: EuiTableSortableColComponent, isStandalone: false, selector: "th[sortable]", inputs: { sortOn: "sortOn", sortOrder: "sortOrder", defaultMultiOrder: ["defaultMultiOrder", "defaultMultiOrder", numberAttribute], defaultOrder: ["defaultOrder", "defaultOrder", booleanAttribute], sortDisabled: ["sortDisabled", "sortDisabled", booleanAttribute], isMultiSortable: ["isMultiSortable", "isMultiSortable", booleanAttribute] }, host: { properties: { "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "dropdown", first: true, predicate: EuiDropdownComponent, descendants: true }], ngImport: i0, template: "<!-- TODO v19 - remove all eui-u utility classes usage -->\n\n<div class=\"eui-table__sortable-col-content\">\n <ng-content></ng-content>\n @if (!sortDisabled) {\n <button type=\"button\" euiSizeS euiButton euiIconButton euiBasicButton class=\"eui-table__sortable-icon-button\" (click)=\"click()\">\n @if (!order) {\n <eui-icon-svg icon=\"swap-vertical:outline\" fillColor=\"neutral-lighter\" [aria-label]=\"'eui.euitable.NO-SORTING-ICON' | translate\"></eui-icon-svg>\n }\n @if (order === 'asc') {\n <eui-icon-svg icon=\"arrow-up:outline\" fillColor=\"primary\" [aria-label]=\"'eui.euitable.ASCENDING-ICON' | translate\"></eui-icon-svg>\n }\n @if (order === 'desc') {\n <eui-icon-svg icon=\"arrow-down:outline\" fillColor=\"primary\" [aria-label]=\"'eui.euitable.DESCENDING-ICON' | translate\"></eui-icon-svg>\n }\n </button>\n }\n @if (isMultiSortable) {\n <ng-template [ngTemplateOutlet]=\"sortDropdown\"></ng-template>\n }\n</div>\n<ng-template #sortDropdown let-index>\n <eui-dropdown [hasClosedOnClickInside]=\"false\">\n <button type=\"button\" euiButton euiBasicButton euiRounded euiIconButton euiSizeS [euiDisabled]=\"sortDisabled\" (click)=\"onOpenDropdown()\">\n <span euiBadge euiPrimary euiOutline>{{ currentMultiSortPosition }}</span>\n </button>\n <eui-dropdown-content>\n <div class=\"eui-u-pt-xs eui-u-pl-s\">\n <small>{{ 'eui.euitable.CHOOSE-SORT-ORDER' | translate }}</small>\n </div>\n @if (form) {\n <form [formGroup]=\"form\">\n <ng-container formArrayName=\"columns\">\n @for (columnForm of columns.controls; let i = $index; track $index) {\n <div class=\"eui-u-flex eui-u-p-s\" [formGroup]=\"form.get('columns')['controls'][i]\">\n <span euiLabel class=\"eui-u-mr-s\">{{ i + 1 }}</span>\n <select euiSelect euiSizeS formControlName=\"name\" class=\"eui-u-mr-s\">\n <option value=\"\"></option>\n @for (column of multisortParams; track $index) {\n <option [value]=\"column.name\">{{ column.name }}</option>\n }\n </select>\n @if (!getOrderByIndex(i)) {\n <button type=\"button\" euiSizeS euiSecondary euiButton euiIconButton euiBasicButton (click)=\"onClickMultisortOrder(i + 1, 'asc')\">\n <eui-icon-svg icon=\"swap-vertical:outline\" [aria-label]=\"'eui.euitable.NO-SORTING-ICON' | translate\"></eui-icon-svg>\n </button>\n }\n @if (getOrderByIndex(i) === 'asc') {\n <button type=\"button\" euiSizeS euiPrimary euiButton euiIconButton euiBasicButton (click)=\"onClickMultisortOrder(i + 1, 'desc')\">\n <eui-icon-svg icon=\"arrow-up:outline\" [aria-label]=\"'eui.euitable.ASCENDING-ICON' | translate\"></eui-icon-svg>\n </button>\n }\n @if (getOrderByIndex(i) === 'desc') {\n <button type=\"button\" euiSizeS euiPrimary euiButton euiIconButton euiBasicButton (click)=\"onClickMultisortOrder(i + 1, null)\">\n <eui-icon-svg icon=\"arrow-down:outline\" [aria-label]=\"'eui.euitable.DESCENDING-ICON' | translate\"></eui-icon-svg>\n </button>\n }\n </div>\n }\n </ng-container>\n </form>\n }\n @if (error) {\n <p class=\"eui-u-mt-none eui-u-mb-none eui-u-ml-s\">\n <eui-feedback-message euiDanger>{{ 'eui.euitable.WRONG-SORT-PARAMS' | translate }}</eui-feedback-message>\n </p>\n }\n <div class=\"eui-u-flex eui-u-flex-justify-content-between eui-u-p-s\">\n <button type=\"button\" euiButton euiSizeS euiSecondary (click)=\"onCancelMultiSort()\">{{ 'eui.CANCEL' | translate }}</button>\n <button type=\"button\" euiButton euiSizeS euiPrimary (click)=\"onSubmitMultiSort()\">{{ 'eui.APPLY' | translate }}</button>\n </div>\n </eui-dropdown-content>\n </eui-dropdown>\n</ng-template>\n", dependencies: [{ kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "component", type: i4$1.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i5.EuiDropdownComponent, selector: "eui-dropdown", inputs: ["e2eAttr", "tabIndex", "width", "height", "position", "subDropdownPosition", "isBlock", "isDropDownRightAligned", "hasClosedOnClickInside", "isLabelUpdatedFromSelectedItem", "isExpandOnHover", "hasTabNavigation", "isRightClickEnabled", "euiDisabled"], outputs: ["expand"] }, { kind: "directive", type: i5.EuiDropdownContentDirective, selector: "eui-dropdown-content" }, { kind: "component", type: i6.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "directive", type: i3$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i7.EuiFeedbackMessageComponent, selector: "eui-feedback-message", inputs: ["isMuted"] }, { kind: "component", type: i8.EuiSelectComponent, selector: "select[euiSelect]", inputs: ["placeholder", "readonly", "isInvalid"] }, { kind: "directive", type: i8.EuiNgSelectOptionDirective, selector: "option:not([eclSelectOption]):not([eclMultiselectOption]), option[euiOption]", inputs: ["selected", "label", "ngValue"] }, { kind: "directive", type: i8.EuiSelectControlValueAccessor, selector: "select:not([multiple])[formControlName][euiSelect],select:not([multiple])[formControl][euiSelect],select:not([multiple])[ngModel][euiSelect]", inputs: ["placeholder"] }, { kind: "directive", type: i8.EuiSelectMultipleOption, selector: "option, option[euiOption]", inputs: ["ngValue", "value"] }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }] }); }
939
939
  }
940
940
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiTableSortableColComponent, decorators: [{
941
941
  type: Component,