@eui/components 19.2.0-snapshot-1745652012270 → 19.2.0-snapshot-1745818237324
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/components/EuiFileUploadComponent.html +0 -1
- package/docs/components/EuiNotificationItemComponent.html +0 -1
- package/docs/components/EuiNotificationsComponent.html +0 -1
- package/docs/components/EuiTableComponent.html +0 -1
- package/docs/components/EuiTableV2Component.html +0 -1
- package/docs/components/EuiTabsComponent.html +0 -2
- package/docs/components/EuiTreeComponent.html +1 -0
- package/docs/components/EuiTreeListItemComponent.html +1 -0
- package/docs/dependencies.html +2 -2
- package/docs/js/menu-wc.js +12 -12
- package/docs/js/menu-wc_es5.js +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/modules/EuiFileUploadModule.html +4 -1
- package/eui-file-upload/eui-file-upload.component.d.ts.map +1 -1
- package/eui-file-upload/eui-file-upload.module.d.ts +1 -2
- package/eui-file-upload/eui-file-upload.module.d.ts.map +1 -1
- package/eui-table/eui-table.component.d.ts.map +1 -1
- package/eui-table-v2/eui-table-v2.component.d.ts.map +1 -1
- package/eui-tabs/eui-tabs.component.d.ts.map +1 -1
- package/eui-tree/eui-tree.component.d.ts.map +1 -1
- package/eui-tree-list/eui-tree-list-item.component.d.ts.map +1 -1
- package/fesm2022/eui-components-eui-file-upload.mjs +4 -5
- package/fesm2022/eui-components-eui-file-upload.mjs.map +1 -1
- package/fesm2022/eui-components-eui-table-v2.mjs +0 -1
- package/fesm2022/eui-components-eui-table-v2.mjs.map +1 -1
- package/fesm2022/eui-components-eui-table.mjs +0 -1
- package/fesm2022/eui-components-eui-table.mjs.map +1 -1
- package/fesm2022/eui-components-eui-tabs.mjs +0 -3
- package/fesm2022/eui-components-eui-tabs.mjs.map +1 -1
- package/fesm2022/eui-components-eui-tree-list.mjs +3 -1
- package/fesm2022/eui-components-eui-tree-list.mjs.map +1 -1
- package/fesm2022/eui-components-eui-tree.mjs +3 -2
- package/fesm2022/eui-components-eui-tree.mjs.map +1 -1
- package/fesm2022/eui-components-layout.mjs +4 -6
- package/fesm2022/eui-components-layout.mjs.map +1 -1
- package/layout/eui-notifications/eui-notification-item.component.d.ts.map +1 -1
- package/layout/eui-notifications/eui-notifications.component.d.ts.map +1 -1
- package/package.json +3 -3
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-components-eui-table.mjs","sources":["../../eui-table/directives/eui-table-sticky-columns.directive.ts","../../eui-table/services/eui-table-sort.service.ts","../../eui-table/services/eui-table-selectable-row.service.ts","../../eui-table/models/multi-sort.model.ts","../../eui-table/eui-table.component.ts","../../eui-table/eui-table.component.html","../../eui-table/expandable-row/eui-table-expandable-row.component.ts","../../eui-table/filter/eui-table-filter.component.ts","../../eui-table/filter/eui-table-filter.component.html","../../eui-table/pipes/eui-table-highlight-filter.pipe.ts","../../eui-table/selectable-header/eui-table-selectable-header.component.ts","../../eui-table/selectable-header/eui-table-selectable-header.component.html","../../eui-table/selectable-row/eui-table-selectable-row.component.ts","../../eui-table/selectable-row/eui-table-selectable-row.component.html","../../eui-table/sortable-col/eui-table-sortable-col.component.ts","../../eui-table/sortable-col/eui-table-sortable-col.component.html","../../eui-table/eui-table.module.ts","../../eui-table/index.ts","../../eui-table/eui-components-eui-table.ts"],"sourcesContent":["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: '[isStickyColumn]',\n})\nexport class EuiTableStickyColumnDirective {\n @HostBinding('class.eui-table__col--sticky') get stickyClass(): boolean {\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { MultisortParam } from '../models/multi-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 EuiTableSortService {\n /**\n * BehaviorSubject containing the current sorting information.\n */\n public sortingParams$ = new BehaviorSubject({ sort: null, order: 'desc' });\n public multisortParamsChange$ = new BehaviorSubject([]);\n public multisortParamsSort$ = new BehaviorSubject([]);\n private multisortParams: MultisortParam[] = [];\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 */\n setSort(sort: string | null, order: 'asc' | 'desc' | null): void {\n this.sortingParams$.next({ sort: order ? sort : null, order });\n this.multisortParamsSort$.next([]);\n this.multisortParams.forEach((param) => {\n param.position = 0;\n param.order = null;\n });\n this.multisortParamsChange$.next(this.multisortParams);\n }\n\n /**\n * Sets the ordering on multiple columns.\n * \n * @param multisortParams Name, order and position of the columns in the sort sequence.\n */\n setMultiSortColumns(multisortParams: MultisortParam[]): void {\n this.multisortParamsSort$.next(multisortParams);\n this.sortingParams$.next({ sort: null, order: null });\n this.multisortParamsChange$.next(multisortParams);\n }\n\n /**\n * Add a column to the sorting.\n * \n * @param column The column to add to the sorting. \n */\n addMultisortParam(column: MultisortParam): void {\n this.multisortParams.push(column);\n this.multisortParamsChange$.next(this.multisortParams);\n if (this.checkIsMultisortable(this.multisortParams)) {\n this.multisortParamsSort$.next(this.multisortParams);\n }\n }\n\n /**\n * Add a new select to the form displayed in the dropdown to configure the sorting.\n * \n * @param params The current sorting configuration.\n * @returns The form group with the selects.\n */\n toFormGroup(params: MultisortParam[]): FormArray {\n const group = new FormArray([]);\n params.forEach((col, index) => {\n const value = this.getValue(params, index);\n if (value) {\n group.push(new FormGroup({ name: new FormControl(value.name), order: new FormControl(value.order) }));\n } else {\n group.push(new FormGroup({ name: new FormControl(), order: new FormControl() }));\n }\n });\n return group;\n }\n\n /**\n * Checks if the params are already used for the sorting.\n * \n * @param multisortParams Params to check.\n * @returns True if the params are found otherwise false.\n */\n private checkIsMultisortable(multisortParams: MultisortParam[]): boolean {\n return multisortParams.find((el) => el.order !== null) !== undefined;\n }\n\n private sortParamsAsc(params: MultisortParam[]): MultisortParam[] {\n return params.sort((a, b) => {\n if (a.position === b.position) {\n return 0;\n }\n if (this.isNullPosition(a.position)) {\n return 1;\n }\n if (this.isNullPosition(b.position)) {\n return -1;\n }\n return a.position < b.position ? -1 : 1;\n });\n }\n\n private isNullPosition(pos: number): boolean {\n return pos === 0 || pos === null;\n }\n\n private getValue(params: MultisortParam[], index: number): MultisortParam {\n const currentCol = params.find((col) => col.position === index + 1);\n return currentCol ? currentCol : null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } 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 EuiTableSelectableRowService {\n /**\n * BehaviorSubject containing the selected rows.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public selectedRows$: BehaviorSubject<any[]> = new BehaviorSubject([]);\n /**\n * BehaviorSubject containing the state of whether all rows are selected.\n */\n public isAllRowsSelected$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public lastSelectedRow: any = null;\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private rows: any[] = [];\n private isAllRowsSelected = false;\n private propId = 'id';\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 * Selects a row.\n * \n * @param row Row to select.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public addSelectedRow(row: any): 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.isAllRowsSelected = this.selectedRows$.value.length === this.rows.length;\n\n this.lastSelectedRow = row;\n }\n\n /**\n * Selects a set of rows.\n * \n * @param rows Rows to select.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public addSelectedRows(rows: any[]): void {\n const selected = rows.filter((row) => !this.selectedRows$.value.includes(row));\n\n this.selectedRows$.next([...this.selectedRows$.value, ...selected]);\n this.isAllRowsSelected$.next(this.selectedRows$.value.length === this.rows.length);\n this.isAllRowsSelected = this.selectedRows$.value.length === this.rows.length;\n\n this.lastSelectedRow = rows[rows.length - 1];\n }\n\n /**\n * Unselects a row.\n * \n * @param row Row to unselect.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public removeSelectedRow(row: any): void {\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 this.isAllRowsSelected = false;\n }\n\n /**\n * Registers a row as selectable.\n * \n * @param row Row to register.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public addRow(row: any): void {\n if (row && !this.rows.find((r) => r[this.propId] === row[this.propId])) {\n this.rows.push(row);\n\n this.isAllRowsSelected$.next(false);\n this.isAllRowsSelected = false;\n\n if (this.rows.length > this.selectedRows$.value.length && this.isAllRowsSelected) {\n this.isAllRowsSelected$.next(false);\n this.isAllRowsSelected = 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 this.isAllRowsSelected = 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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public addRows(rows: any[]): void {\n rows.forEach((row) => {\n this.addRow(row);\n });\n }\n\n /**\n * Unregisters all rows.\n */\n public resetRows(): void {\n this.rows = [];\n }\n\n /**\n * Selects a set of rows.\n * \n * @param rows Rows to select.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public selectRows(rows: any[]): void {\n this.selectedRows$.next([...rows]);\n this.isAllRowsSelected$.next(this.rows.length > 0 && this.rows.length === this.selectedRows$.value.length);\n this.isAllRowsSelected = this.rows.length > 0 && this.rows.length === this.selectedRows$.value.length;\n\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.isAllRowsSelected = true;\n\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.isAllRowsSelected = false;\n\n this.lastSelectedRow = null;\n }\n\n /**\n * Unselect all rows.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public getRows(): any[] {\n return this.rows;\n }\n\n /**\n * Gets the last selected row.\n * \n * @returns The last selected row.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public getLastSelectedRow(): any {\n return this.lastSelectedRow;\n }\n}\n","export class MultisortParam {\n name: string;\n order: 'asc' | 'desc' | null = 'desc';\n position: number;\n\n constructor(name: string, order: string, position: number) {\n Object.assign(this, { name, order, position });\n }\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n} from '@angular/core';\nimport { BehaviorSubject, combineLatest, Subject, Subscription, takeUntil } from 'rxjs';\n\nimport { EuiTemplateDirective } from '@eui/components/directives';\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiPaginatorComponent } from '@eui/components/eui-paginator';\n\nimport { EuiTableSortService } from './services/eui-table-sort.service';\nimport { PaginationEvent } from './models/pagination-event.model';\nimport { EuiTableFilterComponent } from './filter/eui-table-filter.component';\nimport { EuiTableSelectableRowService } from './services/eui-table-selectable-row.service';\nimport { SortEvent } from './models/sort-event.model';\nimport { MultisortParam } from './models/multi-sort.model';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * @description\n * The `eui-table` 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 * - 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 */\n@Component({\n selector: 'eui-table, table[euiTable]',\n templateUrl: './eui-table.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [EuiTableSortService, EuiTableSelectableRowService],\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [],\n },\n ],\n imports: [\n NgTemplateOutlet,\n EuiTemplateDirective,\n ],\n})\nexport class EuiTableComponent implements AfterContentInit, OnInit, OnDestroy, AfterViewInit, 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 get cssClasses(): string {\n return [\n this.baseStatesDirective.getCssClasses('eui-table'),\n this.euiTableResponsive ? 'eui-table--responsive' : '',\n this.euiTableFixedLayout ? 'eui-table--fixed-layout' : '',\n this.euiTableBordered ? 'eui-table--bordered' : '',\n this.euiTableCompact ? 'eui-table--compact' : '',\n this.euiTableDraggable ? 'eui-table--draggable' : '',\n this.euiTableCards ? 'eui-table-cards' : '',\n this.hasStickyHeader ? 'eui-table--sticky-header' : '',\n this.hasStickyColumns ? 'eui-table--sticky-columns' : '',\n this.isColsOrderable ? 'eui-table--cols-orderable' : '',\n this.isHoverable ? 'eui-table--hoverable' : '',\n this.loading ? 'eui-table__loading' : '',\n ]\n .join(' ')\n .trim();\n }\n\n /**\n * Data to display in the table.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() rows: any[] = [];\n /**\n * Unicity criteria of the data.\n *\n * @default 'id'\n */\n @Input() propId = 'id';\n /**\n * e2e attribute.\n *\n * @default 'eui-table'\n */\n @Input() e2eAttr = 'eui-table';\n /**\n * `eui-paginator` reference passed to the table.\n *\n * @type {EuiPaginatorComponent}\n */\n @Input() paginator: EuiPaginatorComponent;\n /**\n * `eui-table-filter` reference passed to the table.\n *\n * @type {EuiTableFilterComponent}\n */\n @Input() filter: EuiTableFilterComponent;\n /**\n * In combination with `isDataSelectable`. Rows to be selected by default.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() preselectedRows: any[] = [];\n /**\n * Wheter a loading spinner is displayed in the table.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) loading = 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 }) asyncTable = false;\n /**\n * @deprecated\n * Not used anymore. Will be removed in the next major version.\n */\n @Input({ transform: booleanAttribute }) paginable = false;\n /**\n * Wheter the table is reponsive.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) euiTableResponsive = false;\n @Input({ transform: booleanAttribute }) euiTableFixedLayout = false;\n /**\n * Wheter the table has draggable rows.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) euiTableDraggable = false;\n @Input({ transform: booleanAttribute }) euiTableCards = false;\n /**\n * @deprecated\n * Has been deprecated to align with Design System\n */\n @Input({ transform: booleanAttribute }) euiTableBordered = false;\n /**\n * Wheter the table use compact design.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) euiTableCompact = 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 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 }) hasStickyColumns = 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 false\n */\n @Input({ transform: booleanAttribute }) isSelectOnlyVisibleRows = false;\n /**\n * Wheter the cols can be reordered.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) isColsOrderable = false;\n /**\n * Wheter the cells have an hover effect.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) isHoverable = false;\n\n /**\n * In combination with `isSelectable` on a row. Event emitted when the selection changes with an array of data.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Output() selectedRows = new EventEmitter<any[]>();\n /**\n * In combination with `sortable` 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<SortEvent>();\n /**\n * In combination with `sortable` & `isMultiSortable` 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() multiSortChange = new EventEmitter<MultisortParam[]>();\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public headerTemplate: TemplateRef<any>;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public bodyTemplate: TemplateRef<any>;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public footerTemplate: TemplateRef<any>;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public emptyMessageTemplate: TemplateRef<any>;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public rowsRendered: any[] = [];\n\n public page = 0;\n public pageSize = 0;\n public showStickyHeader = false;\n public filteredRows = [];\n\n @ContentChildren(EuiTemplateDirective) templates: QueryList<EuiTemplateDirective>;\n\n @ViewChild('theadRef') theadRef: ElementRef<HTMLElement>;\n @ViewChild('tbodyRef') tbodyRef: ElementRef<HTMLElement>;\n @ViewChild('tfootRef') tfootRef: ElementRef<HTMLElement>;\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private rowsSrc: any = null;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private tableFeaturesHandlerSubscription = new Subscription();\n private selectRowsFeatureHandlerSubscription = new Subscription();\n private stickyFeatureHandlerIndex = 0;\n\n constructor(\n private euiTableSortService: EuiTableSortService,\n private cd: ChangeDetectorRef,\n private euiTableSelectableRowService: EuiTableSelectableRowService,\n private elementRef: ElementRef,\n private baseStatesDirective: BaseStatesDirective,\n ) {}\n\n ngOnChanges(c: SimpleChanges): void {\n if (!this.rows) {\n this.rows = [];\n }\n\n this.euiTableSelectableRowService.setPropId(this.propId);\n if (c && c.rows && c.rows.firstChange === false) {\n this.tableFeaturesHandlerSubscription.unsubscribe();\n\n // Go to first page only if length of data has changed. To avoid user to be on a page that no longer exist in case of filtering.\n const lengthChanged = this.rowsSrc.length !== c.rows.currentValue.length;\n\n this.rowsSrc = [...c.rows.currentValue];\n if (this.paginator && lengthChanged) {\n this.paginator.goFirstPage();\n }\n if (!this.asyncTable) {\n this.euiTableSelectableRowService.resetRows();\n this.euiTableSelectableRowService.addRows(c.rows.currentValue);\n this.tableFeaturesHandler();\n } else {\n this.euiTableSelectableRowService.resetRows();\n this.euiTableSelectableRowService.addRows(c.rows.currentValue);\n }\n }\n\n if (c && c.preselectedRows && c.preselectedRows.firstChange === false) {\n this.euiTableSelectableRowService.selectRows(this.preselectedRows);\n }\n\n if (c && c.paginator?.currentValue) {\n this.paginator.setLength(this.rows.length);\n if (!c.paginator?.isFirstChange()) {\n this.paginator.goFirstPage();\n }\n } else {\n // this.rows can be changed anytime, then this else can be executed at that time, testing this.paginator allows to make sure\n // the user whants to disable pagination or change the datasource\n if (!this.paginator) {\n this.rowsRendered = this.rowsSrc ? this.rowsSrc : [...this.rows];\n this.page = 0;\n }\n }\n }\n\n ngOnInit(): void {\n this.rowsSrc = [...this.rows];\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() === 'emptyMessage') {\n this.emptyMessageTemplate = item.template;\n }\n });\n }\n\n ngAfterViewInit(): void {\n if (!this.asyncTable) {\n this.tableFeaturesHandlerSubscription.unsubscribe();\n this.tableFeaturesHandler();\n }\n\n this.euiTableSortService.sortingParams$\n .pipe(takeUntil(this.destroy$))\n .subscribe((sortingParams: { sort: string | null; order: string }) => {\n setTimeout(() => {\n this.sortChange.emit({ sort: sortingParams.sort, order: sortingParams.order });\n });\n });\n\n this.euiTableSortService.multisortParamsSort$.pipe(takeUntil(this.destroy$)).subscribe((multiSortParams: MultisortParam[]) => {\n setTimeout(() => {\n this.multiSortChange.emit(multiSortParams.filter((el) => el.position > 0));\n });\n });\n\n this.selectRowsFeatureHandler();\n\n setTimeout(() => {\n this.euiTableSelectableRowService.selectRows(this.preselectedRows);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Select all rows\n */\n public selectAllRows(): void {\n this.euiTableSelectableRowService.selectAllRows();\n }\n\n /**\n * Unselect all rows\n */\n public unselectAllRows(): void {\n this.euiTableSelectableRowService.unselectAllRows();\n }\n\n /**\n * Selects a set of rows.\n *\n * @param rows Rows to select.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public selectRows(rows: any[]): void {\n this.euiTableSelectableRowService.selectRows(rows);\n }\n\n /**\n * Filters the table's data based on a string declared in `EuiTableFilterComponent`\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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public filterRows(filter: string, r: any[]): any[] {\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 })\n : r;\n\n this.euiTableSelectableRowService.resetRows();\n this.euiTableSelectableRowService.addRows(rows);\n\n this.filteredRows = rows;\n\n return rows;\n }\n\n /**\n * Sort the table's data.\n *\n * @param sort The sort property and order.\n */\n public setSort(sort: string | null, order: 'asc' | 'desc' | null): void {\n this.euiTableSortService.setSort(sort, order);\n }\n\n /**\n * Calcultates the position of columns that are sticky.\n */\n private stickyFeatureHandler(): void {\n const timeout = this.stickyFeatureHandlerIndex === 0 ? 250 : 0;\n\n setTimeout(() => {\n const bodyTrItems = Array.from(this.tbodyRef.nativeElement.querySelectorAll('tr'));\n const containerWidth = this.elementRef.nativeElement?.parentElement?.clientWidth || 0;\n\n if (this.theadRef) {\n const thItems: HTMLTableCellElement[] = Array.from(this.theadRef.nativeElement.querySelectorAll('.eui-table__col--sticky'));\n\n // Reset left & right position\n thItems.forEach((th: HTMLTableCellElement) => {\n th.style.left = null;\n th.style.right = null;\n });\n\n // Sticky First Cols & Last Cols\n const thItemsStickyFirstCol = thItems.filter((th) => th.offsetLeft + th.clientWidth < containerWidth);\n const thItemsStickyLastCol = thItems.filter((th) => th.offsetLeft + th.clientWidth > containerWidth);\n\n thItemsStickyFirstCol.forEach((th, i) => {\n const w = thItemsStickyFirstCol[i - 1]?.clientWidth;\n const l = parseInt(thItemsStickyFirstCol[i - 1]?.style.left, 10);\n th.style.left = (i === 0 ? 0 : w + l) + 'px';\n\n if (i + 1 === thItemsStickyFirstCol.length) {\n th.classList.add('eui-table__col--sticky-shadowed-first');\n }\n });\n\n thItemsStickyLastCol.reverse().forEach((th, i) => {\n const w = thItemsStickyLastCol[i - 1]?.clientWidth;\n const r = parseInt(thItemsStickyLastCol[i - 1]?.style.right, 10);\n th.style.right = (i === 0 ? 0 : w + r) + 'px';\n\n if (i + 1 === thItemsStickyLastCol.length) {\n th.classList.add('eui-table__col--sticky-shadowed-last');\n }\n });\n }\n\n bodyTrItems.forEach((tr) => {\n const tdItems: HTMLTableCellElement[] = Array.from(tr.querySelectorAll('.eui-table__col--sticky'));\n tdItems.forEach((td) => {\n td.style.left = null;\n td.style.right = null;\n });\n });\n\n bodyTrItems.forEach((tr) => {\n const tdItems: HTMLTableCellElement[] = Array.from(tr.querySelectorAll('.eui-table__col--sticky'));\n\n // Sticky First Cols\n const tdItemsStickyFirstCol = tdItems.filter((td) => td.offsetLeft + td.clientWidth < containerWidth);\n tdItemsStickyFirstCol.forEach((td, i) => {\n const w = tdItemsStickyFirstCol[i - 1]?.clientWidth;\n const l = parseInt(tdItemsStickyFirstCol[i - 1]?.style.left, 10);\n td.style.left = (i === 0 ? 0 : w + l) + 'px';\n\n if (i + 1 === tdItemsStickyFirstCol.length) {\n td.classList.add('eui-table__col--sticky-shadowed-first');\n }\n });\n\n // Sticky Last Cols\n const tdItemsStickyLastCol = tdItems.filter((td) => td.offsetLeft + td.clientWidth > containerWidth);\n tdItemsStickyLastCol.reverse().forEach((td, i) => {\n const w = tdItemsStickyLastCol[i - 1]?.clientWidth;\n const r = parseInt(tdItemsStickyLastCol[i - 1]?.style.right, 10);\n td.style.right = (i === 0 ? 0 : w + r) + 'px';\n\n if (i + 1 === tdItemsStickyLastCol.length) {\n td.classList.add('eui-table__col--sticky-shadowed-last');\n }\n });\n });\n\n if (this.tfootRef) {\n const tdItems: HTMLTableCellElement[] = Array.from(this.tfootRef.nativeElement.querySelectorAll('.eui-table__col--sticky'));\n\n // Reset left & right position\n tdItems.forEach((th: HTMLTableCellElement) => {\n th.style.left = null;\n th.style.right = null;\n });\n\n // Sticky First Cols & Last Cols\n const tdItemsStickyFirstCol = tdItems.filter((td) => td.offsetLeft + td.clientWidth < containerWidth);\n const tdItemsStickyLastCol = tdItems.filter((td) => td.offsetLeft + td.clientWidth > containerWidth);\n\n tdItemsStickyFirstCol.forEach((td, i) => {\n const w = tdItemsStickyFirstCol[i - 1]?.clientWidth;\n const l = parseInt(tdItemsStickyFirstCol[i - 1]?.style.left, 10);\n td.style.left = (i === 0 ? 0 : w + l) + 'px';\n\n if (i + 1 === tdItemsStickyFirstCol.length) {\n td.classList.add('eui-table__col--sticky-shadowed-first');\n }\n });\n\n tdItemsStickyLastCol.reverse().forEach((td, i) => {\n const w = tdItemsStickyLastCol[i - 1]?.clientWidth;\n const r = parseInt(tdItemsStickyLastCol[i - 1]?.style.right, 10);\n td.style.right = (i === 0 ? 0 : w + r) + 'px';\n\n if (i + 1 === tdItemsStickyLastCol.length) {\n td.classList.add('eui-table__col--sticky-shadowed-last');\n }\n });\n }\n }, timeout);\n\n this.stickyFeatureHandlerIndex++;\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.euiTableSortService.sortingParams$,\n this.paginator ? this.paginator.page$ : new BehaviorSubject(null),\n this.filter ? this.filter.filter$ : new BehaviorSubject(null),\n this.euiTableSortService.multisortParamsSort$,\n ])\n .pipe(takeUntil(this.destroy$))\n .subscribe(([sortingParams, pagination, filter, multisortParams]) => {\n let r = [...this.rowsSrc];\n if (sortingParams.order !== null && sortingParams.sort !== null) {\n const multisort = [];\n multisort.push(new MultisortParam(sortingParams.sort, sortingParams.order, 1));\n r = this.doMultiSort(multisort, r);\n }\n\n if (multisortParams.length > 0) {\n const sortableColumns = multisortParams.filter((col) => col.order !== null);\n if (sortableColumns.length > 0) {\n r = this.doMultiSort(sortableColumns, r);\n }\n }\n r = this.filterRows(filter, r);\n if (this.paginator) {\n this.paginator.setLength(r.length);\n r = this.paginateRows(pagination, r);\n }\n\n this.rowsRendered = r;\n this.stickyFeatureHandler();\n if (this.isSelectOnlyVisibleRows) {\n this.euiTableSelectableRowService.resetRows();\n this.euiTableSelectableRowService.unselectAllRows();\n this.euiTableSelectableRowService.addRows(this.rowsRendered);\n }\n\n this.cd.detectChanges();\n });\n }\n\n /**\n * Handles multi-sorting\n *\n * @param multisortParams Multi-sorting criterias\n * @param r Data to sort\n * @returns An array of data sorted\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private doMultiSort(multisortParams: MultisortParam[], r: any): any[] {\n r = this.multiSortRows(multisortParams, 1, r);\n return r;\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private multiSortRows(multisortParams: MultisortParam[], currentPosition: number, r: any): any[] {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let rows: any[] = null;\n const colParams = multisortParams.find((col) => col.position === currentPosition);\n if (colParams.order === 'desc') {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rows = r.sort((a: any, b: any) => {\n if (this.isColumnSortable(a, b, multisortParams, currentPosition)) {\n return this.sortTwoRowsDesc(a, b, colParams.name);\n } else {\n return 0;\n }\n });\n } else {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rows = r.sort((a: any, b: any) => {\n if (this.isColumnSortable(a, b, multisortParams, currentPosition)) {\n return this.sortTwoRowsAsc(a, b, colParams.name);\n } else {\n return 0;\n }\n });\n }\n if (multisortParams.length === currentPosition) {\n return rows;\n } else {\n return this.multiSortRows(multisortParams, ++currentPosition, rows);\n }\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private isColumnSortable(a: any, b: any, multisortParams: MultisortParam[], currentPosition: number): boolean {\n if (currentPosition === 1) return true;\n const colParams = multisortParams.find((col) => col.position === currentPosition - 1);\n const aCol = this.getObjPropValue(a, colParams.name);\n // typeof this.getObjProp(a, colParams.name) === 'string'\n // ? this.getObjProp(a, colParams.name).toLowerCase()\n // : this.getObjProp(a, colParams.name);\n const bCol = this.getObjPropValue(b, colParams.name);\n // typeof this.getObjProp(b, colParams.name) === 'string'\n // ? this.getObjProp(b, colParams.name).toLowerCase()\n // : this.getObjProp(b, colParams.name);\n if (aCol !== bCol) {\n return false;\n } else {\n if (currentPosition - 1 === 1) {\n return true;\n } else {\n return this.isColumnSortable(a, b, multisortParams, --currentPosition);\n }\n }\n }\n\n //This function is to do the sorting the table with the combination of 0,null and text in descending order.\n //getObjPropValue is to get the object property value\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private sortTwoRowsDesc(a: any, b: any, colName: string): number {\n const aSortOn = this.getObjPropValue(a, colName);\n const bSortOn = this.getObjPropValue(b, colName);\n if ((aSortOn === null || aSortOn === undefined) && bSortOn) {\n return 1;\n } else if (aSortOn && (bSortOn === null || bSortOn === undefined)) {\n return -1;\n } else if ((aSortOn === null || aSortOn === undefined) && (bSortOn === null || bSortOn === undefined)) {\n return 0;\n } else if ((aSortOn === null || aSortOn === undefined) && bSortOn === 0) {\n return 1;\n } else if (aSortOn === 0 && (bSortOn === null || bSortOn === undefined)) {\n return -1;\n } else {\n return aSortOn < bSortOn ? 1 : aSortOn > bSortOn ? -1 : 0;\n }\n }\n\n /**\n * This function is to do the sorting the table with the combination of 0,null and text in ascending order.\n * getObjPropValue is to get the object property value\n *\n * @param a First row to sort\n * @param b Second row to sort\n * @param colName Sort criteria\n * @returns Result of the sorting\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private sortTwoRowsAsc(a: any, b: any, colName: string): number {\n const aSortOn = this.getObjPropValue(a, colName);\n const bSortOn = this.getObjPropValue(b, colName);\n if ((aSortOn === null || aSortOn === undefined) && bSortOn) {\n return -1;\n } else if (aSortOn && (bSortOn === null || bSortOn === undefined)) {\n return 1;\n } else if ((aSortOn === null || aSortOn === undefined) && (bSortOn === null || bSortOn === undefined)) {\n return 0;\n } else if ((aSortOn === null || aSortOn === undefined) && bSortOn === 0) {\n return -1;\n } else if (aSortOn === 0 && (bSortOn === null || bSortOn === undefined)) {\n return 1;\n } else {\n return aSortOn < bSortOn ? -1 : aSortOn > bSortOn ? 1 : 0;\n }\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private getObjPropValue(obj: any, prop: string): any {\n const value = this.getObjProp(obj, prop);\n return typeof value === 'string' ? value.toLowerCase() : value;\n }\n\n /**\n * Handles the selection of rows.\n */\n private selectRowsFeatureHandler(): void {\n this.selectRowsFeatureHandlerSubscription = this.euiTableSelectableRowService.selectedRows$\n .pipe(takeUntil(this.destroy$))\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .subscribe((selected: any[]) => {\n this.selectedRows.emit(selected);\n });\n }\n\n /**\n * Get the properties of the object matching the filter string.\n *\n * @param obj Obj 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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private getProps(obj: any[], filter: string): { key: string; match: boolean; value: string | number }[] {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const isObject = (val: any): boolean => val && typeof val === 'object';\n const addDelimiter = (a: string, b: string): string => (a && a !== '0' ? `${a}.${b}` : b);\n const props = [];\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const paths = (pathObj = {}, head = ''): any[] =>\n Object.entries(pathObj).reduce((product, [key, value]) => {\n const fullPath = addDelimiter(head, key);\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const match = (v: any): boolean =>\n v &&\n typeof v !== 'object' &&\n v\n ?.toString()\n .toLowerCase()\n .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 paths(obj);\n\n return props;\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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private paginateRows(pagination: PaginationEvent, r: any[]): any[] {\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 * 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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private getObjProp(obj: any, prop: string): string {\n return prop ? prop.split('.').reduce((prev, curr) => (prev ? prev[curr] : null), obj || self) : null;\n }\n}\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 rowsRendered; let i = $index; track $index) {\n <ng-template\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i + page * pageSize }\">\n </ng-template>\n }\n\n @if (emptyMessageTemplate && rowsRendered.length === 0) {\n <ng-template [ngTemplateOutlet]=\"emptyMessageTemplate\"></ng-template>\n }\n </tbody>\n}\n@if (footerTemplate) {\n <tfoot #tfootRef>\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n </tfoot>\n}\n","import { Component, HostBinding } from '@angular/core';\n\n/**\n * @description\n * Component used to activate the expandable feature on a row of the table.\n */\n@Component({\n // eslint-disable-next-line\n selector: 'tr[euiTableExpandableRow]',\n template: '<ng-content/>',\n})\nexport class EuiTableExpandableRowComponent {\n @HostBinding('class') string = 'eui-table-expandable-row';\n}\n","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy, HostBinding, ViewChild, ElementRef, ViewEncapsulation, booleanAttribute } from '@angular/core';\nimport { FormGroup, FormControl, ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { Subject, BehaviorSubject, takeUntil, debounceTime, distinctUntilChanged } from 'rxjs';\n\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EUI_ICON_INPUT } from '@eui/components/eui-icon-input';\nimport { EUI_INPUT_TEXT } from '@eui/components/eui-input-text';\nimport { EUI_ICON } from '@eui/components/eui-icon';\n\n/**\n * @description\n * Component used with `eui-table` to add a filter feature to the table.\n */\n@Component({\n selector: 'eui-table-filter',\n templateUrl: './eui-table-filter.component.html',\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [],\n },\n ],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n ...EUI_ICON_INPUT,\n ...EUI_ICON,\n ...EUI_INPUT_TEXT,\n ],\n})\nexport class EuiTableFilterComponent 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 [this.baseStatesDirective.getCssClasses('eui-table__filter')].join(' ').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 | null> = new BehaviorSubject(null);\n public form: FormGroup;\n\n @Input({ transform: booleanAttribute }) autoSearch = false;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor(private baseStatesDirective: BaseStatesDirective) {\n }\n\n ngOnInit(): void {\n this.form = new FormGroup({\n filter: new FormControl<string>(null),\n });\n\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__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__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 </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 | euiTableHighlightFilter: strFilter\"></span></td>\n * \n * strFilter = '19'\n * ```\n */\n@Pipe({\n name: 'euiTableHighlightFilter',\n})\nexport class EuiTableHighlightFilterPipe 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--highlighted'\n * @returns \n */\n transform(value: string, strFilter: string, className = 'eui-table--highlighted'): string {\n if (!value) return '';\n if (!strFilter || strFilter.length === 0) return value;\n \n const generateVariants = (str: string): string[] => {\n const variants: Set<string> = new Set([str]);\n \n for (let j = 1; j <= 3; j++) {\n for (const separator of ['.', ',', ' ']) {\n let newVariant = str;\n let i = j;\n \n while (i < newVariant.length) {\n newVariant = newVariant.slice(0, i) + separator + newVariant.slice(i);\n i += 4;\n }\n variants.add(newVariant);\n }\n }\n return Array.from(variants);\n };\n \n const isNumber = (str: string): boolean => !isNaN(Number(str)) && str.trim() !== '';\n const variants = isNumber(strFilter) ? generateVariants(strFilter) : [strFilter];\n const regex = new RegExp(`(${variants.map(v => v.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('|')})`, 'gi');\n \n return value.toString().replace(regex, `<span class=\"${className}\">$1</span>`);\n }\n}\n","import { Component, OnInit, Input, OnDestroy, ViewChild, ElementRef, booleanAttribute } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { EuiTableSelectableRowService } from '../services/eui-table-selectable-row.service';\nimport { EUI_INPUT_CHECKBOX } from '@eui/components/eui-input-checkbox';\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[isSelectableHeader]',\n templateUrl: './eui-table-selectable-header.component.html',\n imports: [\n ...EUI_INPUT_CHECKBOX,\n ],\n})\nexport class EuiTableSelectableHeaderComponent implements OnInit, OnDestroy {\n @ViewChild('checkbox') checkbox: ElementRef<HTMLInputElement>;\n\n public isCheckedIndeterminate = false;\n\n /**\n * Wheter a select all feature is available in the header.\n * \n * @default false\n */\n @Input({ transform: booleanAttribute }) isSelectableHeader = true;\n @Input({ transform: booleanAttribute }) isChecked = false;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor(private euiTableSelectableRowService: EuiTableSelectableRowService) {}\n\n ngOnInit(): void {\n this.euiTableSelectableRowService.isAllRowsSelected$.pipe(takeUntil(this.destroy$)).subscribe((selected) => {\n this.isChecked = selected;\n if (this.checkbox) {\n this.checkbox.nativeElement.checked = selected;\n }\n\n if (!selected && this.euiTableSelectableRowService.selectedRows$.value.length > 0) {\n this.isCheckedIndeterminate = true;\n } else {\n this.isCheckedIndeterminate = false;\n }\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 value true when checked otherwise false.\n */\n public toggleCheckedState(value: boolean): void {\n this.isChecked = value;\n\n if (this.isChecked) {\n this.euiTableSelectableRowService.selectAllRows();\n } else {\n this.euiTableSelectableRowService.unselectAllRows();\n }\n }\n}\n","@if (isSelectableHeader) {\n <th class=\"eui-table__cell-select\">\n <div class=\"eui-table__cell-select-checkbox-container\">\n @if (!isChecked && !isCheckedIndeterminate) {\n <input aria-label=\"Unchecked\" euiInputCheckBox checked=\"false\" (click)=\"toggleCheckedState(true)\" />\n }\n @if (isCheckedIndeterminate) {\n <input aria-label=\"Indeterminate\" euiInputCheckBox indeterminate (click)=\"toggleCheckedState(false)\" />\n }\n @if (isChecked && !isCheckedIndeterminate) {\n <input aria-label=\"Checked\" euiInputCheckBox checked=\"true\" (click)=\"toggleCheckedState(false)\" />\n }\n </div>\n </th>\n}\n\n<ng-content></ng-content>\n","import { Component, OnInit, Input, OnDestroy, OnChanges, HostBinding, HostListener, booleanAttribute } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { EuiTableSelectableRowService } from '../services/eui-table-selectable-row.service';\nimport { EUI_INPUT_CHECKBOX } from '@eui/components/eui-input-checkbox';\n\n/**\n * @description\n * Component used internally by `eui-table` to make a row selectable.\n */\n@Component({\n // eslint-disable-next-line\n selector: 'tr[isSelectable]',\n templateUrl: './eui-table-selectable-row.component.html',\n imports: [\n ...EUI_INPUT_CHECKBOX,\n ],\n})\nexport class EuiTableSelectableRowComponent implements OnInit, OnDestroy, OnChanges {\n /**\n * Data of the row.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() isSelectable: any;\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 get cssClasses(): string {\n return ['eui-table__row', this.isSelectable ? 'eui-table__row--selectable' : '', this.isChecked ? 'eui-table__row--selected' : '']\n .join(' ')\n .trim();\n }\n\n constructor(private euiTableSelectableRowService: EuiTableSelectableRowService) {}\n\n /**\n * Keyboard event handler for selecting rows.\n * \n * @param event Keyboard event\n */\n @HostListener('click', ['$event']) onClickRow(event: PointerEvent): void {\n if (this.isKeyboardSelectable && this.isSelectable) {\n if (event.ctrlKey) {\n if (!this.isChecked) {\n this.euiTableSelectableRowService.addSelectedRow(this.isSelectable);\n } else {\n this.euiTableSelectableRowService.removeSelectedRow(this.isSelectable);\n }\n } else if (event.shiftKey) {\n const rows = this.euiTableSelectableRowService.getRows();\n const lastSelectedRow = this.euiTableSelectableRowService.getLastSelectedRow();\n const lastSelectedRowPosition = rows.indexOf(lastSelectedRow);\n const position = rows.indexOf(this.isSelectable);\n\n const range =\n lastSelectedRowPosition > position\n ? rows.slice(position, lastSelectedRowPosition + 1)\n : rows.slice(lastSelectedRowPosition, position + 1);\n\n this.euiTableSelectableRowService.addSelectedRows(range);\n\n window.getSelection().empty();\n } else {\n this.euiTableSelectableRowService.selectRows([this.isSelectable]);\n }\n }\n }\n\n ngOnChanges(): void {\n if (this.isSelectable) {\n this.propId = this.euiTableSelectableRowService.getPropId();\n this.isChecked = this.euiTableSelectableRowService.selectedRows$.value.find(\n (s) => s[this.propId] === this.isSelectable[this.propId],\n )\n ? true\n : false;\n }\n }\n\n ngOnInit(): void {\n this.euiTableSelectableRowService.selectedRows$.pipe(takeUntil(this.destroy$)).subscribe((selected) => {\n this.isChecked = selected.filter((s) => s[this.propId] === this.isSelectable[this.propId]).length > 0;\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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public toggleCheckedState(e: any): void {\n if (!this.isChecked) {\n this.euiTableSelectableRowService.addSelectedRow(this.isSelectable);\n } else {\n this.euiTableSelectableRowService.removeSelectedRow(this.isSelectable);\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n}\n","@if (isSelectable) {\n <td class=\"eui-table__cell-select\">\n <div class=\"eui-table__cell-select-checkbox-container\">\n @if (isChecked) {\n <input aria-label=\"default checkbox checked\" euiInputCheckBox checked=\"true\" (click)=\"toggleCheckedState($event)\" />\n }\n @if (!isChecked) {\n <input aria-label=\"default checkbox unchecked\" euiInputCheckBox checked=\"false\" (click)=\"toggleCheckedState($event)\" />\n }\n </div>\n </td>\n}\n<ng-content></ng-content>\n","import { Component, OnInit, OnDestroy, Input, HostBinding, ViewChild, numberAttribute, booleanAttribute } from '@angular/core';\nimport { Subject, combineLatest, takeUntil } from 'rxjs';\nimport { FormArray, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { EUI_DROPDOWN, EuiDropdownComponent } from '@eui/components/eui-dropdown';\n\nimport { EuiTableSortService } from '../services/eui-table-sort.service';\nimport { MultisortParam } from '../models/multi-sort.model';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { EUI_ICON } from '@eui/components/eui-icon';\nimport { EUI_BUTTON } from '@eui/components/eui-button';\nimport { EUI_BADGE } from '@eui/components/eui-badge';\nimport { EUI_FEEDBACK_MESSAGE } from '@eui/components/eui-feedback-message';\nimport { EUI_SELECT } from '@eui/components/eui-select';\nimport { EUI_LABEL } from '@eui/components/eui-label';\nimport { TranslateModule } from '@ngx-translate/core';\n\n/**\n * @description\n * Component used internally by `eui-table` to make a column sortable.\n */\n@Component({\n // eslint-disable-next-line\n selector: 'th[sortable]',\n templateUrl: './eui-table-sortable-col.component.html',\n imports: [\n NgTemplateOutlet,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n ...EUI_ICON,\n ...EUI_BUTTON,\n ...EUI_BADGE,\n ...EUI_FEEDBACK_MESSAGE,\n ...EUI_SELECT,\n ...EUI_LABEL,\n ...EUI_DROPDOWN,\n ],\n})\nexport class EuiTableSortableColComponent implements OnInit, OnDestroy {\n @ViewChild(EuiDropdownComponent) dropdown: EuiDropdownComponent;\n @Input() sortOn: string;\n @Input() sortOrder: 'asc' | 'desc' = 'desc';\n /**\n * Wheter the column is multi-sorted by defaut.\n * \n * @default false\n */\n @Input({ transform: numberAttribute }) defaultMultiOrder = null;\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: 'asc' | 'desc' | null = 'desc';\n multisortParams: MultisortParam[] = [];\n currentMultiSortPosition = 0;\n error = false;\n form: FormGroup;\n\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 get cssClasses(): string {\n return ['eui-table__sortable-col', this.sortDisabled ? 'eui-table__sortable-col--disabled' : ''].join(' ').trim();\n }\n\n constructor(private euiTableSortService: EuiTableSortService) {}\n\n ngOnInit(): void {\n if (this.isMultiSortable && !this.sortDisabled) {\n if (this.defaultMultiOrder > 0 && this.sortOrder) {\n this.euiTableSortService.addMultisortParam(new MultisortParam(this.sortOn, this.sortOrder, this.defaultMultiOrder));\n } else {\n this.euiTableSortService.addMultisortParam(new MultisortParam(this.sortOn, null, 0));\n }\n }\n\n combineLatest([this.euiTableSortService.sortingParams$, this.euiTableSortService.multisortParamsChange$])\n .pipe(takeUntil(this.destroy$))\n .subscribe(([sortingParams, multisortParams]) => {\n if (!this.isMultiSortable) {\n if (sortingParams.sort !== this.sortOn) {\n this.order = null;\n } else {\n this.order = sortingParams.order as ('asc' | 'desc');\n }\n } else {\n this.multisortParams = [...multisortParams];\n this.form = new FormGroup({ columns: this.euiTableSortService.toFormGroup(multisortParams) });\n if (sortingParams.order !== null && sortingParams.sort !== null) {\n this.currentMultiSortPosition = 0;\n if (sortingParams.sort !== this.sortOn) {\n this.order = null;\n } else {\n return;\n }\n } else {\n this.setCurrentMultisortPosition(multisortParams);\n }\n }\n });\n\n if (this.defaultOrder) {\n this.order = this.sortOrder;\n this.euiTableSortService.setSort(this.sortOn, this.order);\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n get columns(): FormArray {\n return this.form.controls['columns'] as FormArray;\n }\n\n /**\n * Handles the click event on the sortable column.\n */\n public click(): 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 this.euiTableSortService.setSort(this.sortOn, this.order);\n }\n }\n\n /**\n * Handles the click event on the multi-sortable column.\n */\n onClickMultisortOrder(index: number, order: 'asc' | 'desc' | null): void {\n (this.form.get('columns') as FormArray).controls[index - 1].get('order').patchValue(order);\n }\n\n onOpenDropdown(): void {\n this.error = false;\n }\n\n getOrderByIndex(index: number): string | null {\n return (this.form.get('columns') as FormArray).controls[index].get('order').value;\n }\n\n onCancelMultiSort(): void {\n this.dropdown.closeDropdown();\n }\n\n onSubmitMultiSort(): void {\n const arr: Array<{ name: string; order: 'asc' | 'desc' | null }> = [];\n (this.form.get('columns') as FormArray).controls.forEach((el) => {\n if (el.get('name').value && el.get('order').value) {\n arr.push({ name: el.get('name').value, order: el.get('order').value });\n }\n });\n\n if (this.checkValidForSorting(arr)) {\n this.multisortParams.map((el) => this.setSortableParams(el, arr));\n this.euiTableSortService.setMultiSortColumns(this.multisortParams);\n this.dropdown.closeDropdown();\n } else {\n this.error = true;\n }\n }\n\n private setSortableParams(el: MultisortParam, arr: Array<{ name: string; order: 'asc' | 'desc' | null }>): MultisortParam {\n const currElArr = arr.find((item) => item.name === el.name);\n if (currElArr) {\n const index = arr.findIndex((item) => item.name === el.name);\n el.order = currElArr.order;\n el.position = index + 1;\n } else {\n el.order = null;\n el.position = 0;\n }\n return el;\n }\n\n private setCurrentMultisortPosition(multisortParams: MultisortParam[]): void {\n const currentColumn = multisortParams.find((el) => el.name === this.sortOn);\n if (currentColumn) {\n this.order = currentColumn.order;\n this.currentMultiSortPosition = currentColumn.position;\n } else {\n this.order = null;\n this.currentMultiSortPosition = 0;\n }\n }\n\n private checkValidForSorting(arr: Array<{ name: string; order: string }>): boolean {\n if (arr.length === 0) {\n return false;\n }\n return arr.find((el) => !this.isElementUniqueName(arr, el)) === undefined;\n }\n\n private isElementUniqueName(arr: Array<{ name: string; order: string }>, el: { name: string; order: string }): boolean {\n return arr.filter((col) => col.name === el.name).length === 1;\n }\n}\n","<!-- 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","import { NgModule } from '@angular/core';\nimport { EuiTableComponent } from './eui-table.component';\nimport { EuiTableSortableColComponent } from './sortable-col/eui-table-sortable-col.component';\nimport { EuiTableFilterComponent } from './filter/eui-table-filter.component';\nimport { EuiTableSelectableRowComponent } from './selectable-row/eui-table-selectable-row.component';\nimport { EuiTableSelectableHeaderComponent } from './selectable-header/eui-table-selectable-header.component';\nimport { EuiTableExpandableRowComponent } from './expandable-row/eui-table-expandable-row.component';\nimport { EuiTableHighlightFilterPipe } from './pipes/eui-table-highlight-filter.pipe';\nimport { EuiTableStickyColumnDirective } from './directives/eui-table-sticky-columns.directive';\n\n/**\n * @description\n * Module that provides the EuiTable component and its dependencies\n *\n * @deprecated Use {@link EUI_TABLE} instead\n */\n@NgModule({\n imports: [\n EuiTableComponent,\n EuiTableSortableColComponent,\n EuiTableFilterComponent,\n EuiTableSelectableRowComponent,\n EuiTableSelectableHeaderComponent,\n EuiTableExpandableRowComponent,\n EuiTableHighlightFilterPipe,\n EuiTableStickyColumnDirective,\n ],\n exports: [\n EuiTableComponent,\n EuiTableSortableColComponent,\n EuiTableFilterComponent,\n EuiTableSelectableRowComponent,\n EuiTableSelectableHeaderComponent,\n EuiTableExpandableRowComponent,\n EuiTableHighlightFilterPipe,\n EuiTableStickyColumnDirective,\n ],\n})\nexport class EuiTableModule {}\n","import { EuiTableStickyColumnDirective } from './directives/eui-table-sticky-columns.directive';\nimport { EuiTableComponent } from './eui-table.component';\nimport { EuiTableExpandableRowComponent } from './expandable-row/eui-table-expandable-row.component';\nimport { EuiTableFilterComponent } from './filter/eui-table-filter.component';\nimport { EuiTableHighlightFilterPipe } from './pipes/eui-table-highlight-filter.pipe';\nimport { EuiTableSelectableHeaderComponent } from './selectable-header/eui-table-selectable-header.component';\nimport { EuiTableSelectableRowComponent } from './selectable-row/eui-table-selectable-row.component';\nimport { EuiTableSortableColComponent } from './sortable-col/eui-table-sortable-col.component';\n\nexport * from './eui-table.component';\nexport * from './sortable-col/eui-table-sortable-col.component';\nexport * from './filter/eui-table-filter.component';\nexport * from './pipes/eui-table-highlight-filter.pipe';\nexport * from './selectable-row/eui-table-selectable-row.component';\nexport * from './selectable-header/eui-table-selectable-header.component';\nexport * from './expandable-row/eui-table-expandable-row.component';\nexport * from './models/pagination-event.model';\nexport * from './models/sort-event.model';\nexport * from './directives/eui-table-sticky-columns.directive';\nexport * from './eui-table.module';\n\nexport const EUI_TABLE = [\n EuiTableComponent,\n EuiTableSortableColComponent,\n EuiTableFilterComponent,\n EuiTableSelectableRowComponent,\n EuiTableSelectableHeaderComponent,\n EuiTableExpandableRowComponent,\n EuiTableHighlightFilterPipe,\n EuiTableStickyColumnDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.EuiTableSortService","i2.EuiTableSelectableRowService","i1","i3","i1.EuiTableSelectableRowService","i2","i5"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"eui-components-eui-table.mjs","sources":["../../eui-table/directives/eui-table-sticky-columns.directive.ts","../../eui-table/services/eui-table-sort.service.ts","../../eui-table/services/eui-table-selectable-row.service.ts","../../eui-table/models/multi-sort.model.ts","../../eui-table/eui-table.component.ts","../../eui-table/eui-table.component.html","../../eui-table/expandable-row/eui-table-expandable-row.component.ts","../../eui-table/filter/eui-table-filter.component.ts","../../eui-table/filter/eui-table-filter.component.html","../../eui-table/pipes/eui-table-highlight-filter.pipe.ts","../../eui-table/selectable-header/eui-table-selectable-header.component.ts","../../eui-table/selectable-header/eui-table-selectable-header.component.html","../../eui-table/selectable-row/eui-table-selectable-row.component.ts","../../eui-table/selectable-row/eui-table-selectable-row.component.html","../../eui-table/sortable-col/eui-table-sortable-col.component.ts","../../eui-table/sortable-col/eui-table-sortable-col.component.html","../../eui-table/eui-table.module.ts","../../eui-table/index.ts","../../eui-table/eui-components-eui-table.ts"],"sourcesContent":["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: '[isStickyColumn]',\n})\nexport class EuiTableStickyColumnDirective {\n @HostBinding('class.eui-table__col--sticky') get stickyClass(): boolean {\n return true;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { BehaviorSubject } from 'rxjs';\nimport { MultisortParam } from '../models/multi-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 EuiTableSortService {\n /**\n * BehaviorSubject containing the current sorting information.\n */\n public sortingParams$ = new BehaviorSubject({ sort: null, order: 'desc' });\n public multisortParamsChange$ = new BehaviorSubject([]);\n public multisortParamsSort$ = new BehaviorSubject([]);\n private multisortParams: MultisortParam[] = [];\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 */\n setSort(sort: string | null, order: 'asc' | 'desc' | null): void {\n this.sortingParams$.next({ sort: order ? sort : null, order });\n this.multisortParamsSort$.next([]);\n this.multisortParams.forEach((param) => {\n param.position = 0;\n param.order = null;\n });\n this.multisortParamsChange$.next(this.multisortParams);\n }\n\n /**\n * Sets the ordering on multiple columns.\n * \n * @param multisortParams Name, order and position of the columns in the sort sequence.\n */\n setMultiSortColumns(multisortParams: MultisortParam[]): void {\n this.multisortParamsSort$.next(multisortParams);\n this.sortingParams$.next({ sort: null, order: null });\n this.multisortParamsChange$.next(multisortParams);\n }\n\n /**\n * Add a column to the sorting.\n * \n * @param column The column to add to the sorting. \n */\n addMultisortParam(column: MultisortParam): void {\n this.multisortParams.push(column);\n this.multisortParamsChange$.next(this.multisortParams);\n if (this.checkIsMultisortable(this.multisortParams)) {\n this.multisortParamsSort$.next(this.multisortParams);\n }\n }\n\n /**\n * Add a new select to the form displayed in the dropdown to configure the sorting.\n * \n * @param params The current sorting configuration.\n * @returns The form group with the selects.\n */\n toFormGroup(params: MultisortParam[]): FormArray {\n const group = new FormArray([]);\n params.forEach((col, index) => {\n const value = this.getValue(params, index);\n if (value) {\n group.push(new FormGroup({ name: new FormControl(value.name), order: new FormControl(value.order) }));\n } else {\n group.push(new FormGroup({ name: new FormControl(), order: new FormControl() }));\n }\n });\n return group;\n }\n\n /**\n * Checks if the params are already used for the sorting.\n * \n * @param multisortParams Params to check.\n * @returns True if the params are found otherwise false.\n */\n private checkIsMultisortable(multisortParams: MultisortParam[]): boolean {\n return multisortParams.find((el) => el.order !== null) !== undefined;\n }\n\n private sortParamsAsc(params: MultisortParam[]): MultisortParam[] {\n return params.sort((a, b) => {\n if (a.position === b.position) {\n return 0;\n }\n if (this.isNullPosition(a.position)) {\n return 1;\n }\n if (this.isNullPosition(b.position)) {\n return -1;\n }\n return a.position < b.position ? -1 : 1;\n });\n }\n\n private isNullPosition(pos: number): boolean {\n return pos === 0 || pos === null;\n }\n\n private getValue(params: MultisortParam[], index: number): MultisortParam {\n const currentCol = params.find((col) => col.position === index + 1);\n return currentCol ? currentCol : null;\n }\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } 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 EuiTableSelectableRowService {\n /**\n * BehaviorSubject containing the selected rows.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public selectedRows$: BehaviorSubject<any[]> = new BehaviorSubject([]);\n /**\n * BehaviorSubject containing the state of whether all rows are selected.\n */\n public isAllRowsSelected$: BehaviorSubject<boolean> = new BehaviorSubject(false);\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public lastSelectedRow: any = null;\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private rows: any[] = [];\n private isAllRowsSelected = false;\n private propId = 'id';\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 * Selects a row.\n * \n * @param row Row to select.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public addSelectedRow(row: any): 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.isAllRowsSelected = this.selectedRows$.value.length === this.rows.length;\n\n this.lastSelectedRow = row;\n }\n\n /**\n * Selects a set of rows.\n * \n * @param rows Rows to select.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public addSelectedRows(rows: any[]): void {\n const selected = rows.filter((row) => !this.selectedRows$.value.includes(row));\n\n this.selectedRows$.next([...this.selectedRows$.value, ...selected]);\n this.isAllRowsSelected$.next(this.selectedRows$.value.length === this.rows.length);\n this.isAllRowsSelected = this.selectedRows$.value.length === this.rows.length;\n\n this.lastSelectedRow = rows[rows.length - 1];\n }\n\n /**\n * Unselects a row.\n * \n * @param row Row to unselect.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public removeSelectedRow(row: any): void {\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 this.isAllRowsSelected = false;\n }\n\n /**\n * Registers a row as selectable.\n * \n * @param row Row to register.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public addRow(row: any): void {\n if (row && !this.rows.find((r) => r[this.propId] === row[this.propId])) {\n this.rows.push(row);\n\n this.isAllRowsSelected$.next(false);\n this.isAllRowsSelected = false;\n\n if (this.rows.length > this.selectedRows$.value.length && this.isAllRowsSelected) {\n this.isAllRowsSelected$.next(false);\n this.isAllRowsSelected = 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 this.isAllRowsSelected = 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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public addRows(rows: any[]): void {\n rows.forEach((row) => {\n this.addRow(row);\n });\n }\n\n /**\n * Unregisters all rows.\n */\n public resetRows(): void {\n this.rows = [];\n }\n\n /**\n * Selects a set of rows.\n * \n * @param rows Rows to select.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public selectRows(rows: any[]): void {\n this.selectedRows$.next([...rows]);\n this.isAllRowsSelected$.next(this.rows.length > 0 && this.rows.length === this.selectedRows$.value.length);\n this.isAllRowsSelected = this.rows.length > 0 && this.rows.length === this.selectedRows$.value.length;\n\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.isAllRowsSelected = true;\n\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.isAllRowsSelected = false;\n\n this.lastSelectedRow = null;\n }\n\n /**\n * Unselect all rows.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public getRows(): any[] {\n return this.rows;\n }\n\n /**\n * Gets the last selected row.\n * \n * @returns The last selected row.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public getLastSelectedRow(): any {\n return this.lastSelectedRow;\n }\n}\n","export class MultisortParam {\n name: string;\n order: 'asc' | 'desc' | null = 'desc';\n position: number;\n\n constructor(name: string, order: string, position: number) {\n Object.assign(this, { name, order, position });\n }\n}\n","import {\n AfterContentInit,\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Output,\n QueryList,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n} from '@angular/core';\nimport { BehaviorSubject, combineLatest, Subject, Subscription, takeUntil } from 'rxjs';\n\nimport { EuiTemplateDirective } from '@eui/components/directives';\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiPaginatorComponent } from '@eui/components/eui-paginator';\n\nimport { EuiTableSortService } from './services/eui-table-sort.service';\nimport { PaginationEvent } from './models/pagination-event.model';\nimport { EuiTableFilterComponent } from './filter/eui-table-filter.component';\nimport { EuiTableSelectableRowService } from './services/eui-table-selectable-row.service';\nimport { SortEvent } from './models/sort-event.model';\nimport { MultisortParam } from './models/multi-sort.model';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * @description\n * The `eui-table` 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 * - 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 */\n@Component({\n selector: 'eui-table, table[euiTable]',\n templateUrl: './eui-table.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [EuiTableSortService, EuiTableSelectableRowService],\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [],\n },\n ],\n imports: [\n NgTemplateOutlet,\n ],\n})\nexport class EuiTableComponent implements AfterContentInit, OnInit, OnDestroy, AfterViewInit, 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 get cssClasses(): string {\n return [\n this.baseStatesDirective.getCssClasses('eui-table'),\n this.euiTableResponsive ? 'eui-table--responsive' : '',\n this.euiTableFixedLayout ? 'eui-table--fixed-layout' : '',\n this.euiTableBordered ? 'eui-table--bordered' : '',\n this.euiTableCompact ? 'eui-table--compact' : '',\n this.euiTableDraggable ? 'eui-table--draggable' : '',\n this.euiTableCards ? 'eui-table-cards' : '',\n this.hasStickyHeader ? 'eui-table--sticky-header' : '',\n this.hasStickyColumns ? 'eui-table--sticky-columns' : '',\n this.isColsOrderable ? 'eui-table--cols-orderable' : '',\n this.isHoverable ? 'eui-table--hoverable' : '',\n this.loading ? 'eui-table__loading' : '',\n ]\n .join(' ')\n .trim();\n }\n\n /**\n * Data to display in the table.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() rows: any[] = [];\n /**\n * Unicity criteria of the data.\n *\n * @default 'id'\n */\n @Input() propId = 'id';\n /**\n * e2e attribute.\n *\n * @default 'eui-table'\n */\n @Input() e2eAttr = 'eui-table';\n /**\n * `eui-paginator` reference passed to the table.\n *\n * @type {EuiPaginatorComponent}\n */\n @Input() paginator: EuiPaginatorComponent;\n /**\n * `eui-table-filter` reference passed to the table.\n *\n * @type {EuiTableFilterComponent}\n */\n @Input() filter: EuiTableFilterComponent;\n /**\n * In combination with `isDataSelectable`. Rows to be selected by default.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() preselectedRows: any[] = [];\n /**\n * Wheter a loading spinner is displayed in the table.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) loading = 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 }) asyncTable = false;\n /**\n * @deprecated\n * Not used anymore. Will be removed in the next major version.\n */\n @Input({ transform: booleanAttribute }) paginable = false;\n /**\n * Wheter the table is reponsive.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) euiTableResponsive = false;\n @Input({ transform: booleanAttribute }) euiTableFixedLayout = false;\n /**\n * Wheter the table has draggable rows.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) euiTableDraggable = false;\n @Input({ transform: booleanAttribute }) euiTableCards = false;\n /**\n * @deprecated\n * Has been deprecated to align with Design System\n */\n @Input({ transform: booleanAttribute }) euiTableBordered = false;\n /**\n * Wheter the table use compact design.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) euiTableCompact = 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 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 }) hasStickyColumns = 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 false\n */\n @Input({ transform: booleanAttribute }) isSelectOnlyVisibleRows = false;\n /**\n * Wheter the cols can be reordered.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) isColsOrderable = false;\n /**\n * Wheter the cells have an hover effect.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) isHoverable = false;\n\n /**\n * In combination with `isSelectable` on a row. Event emitted when the selection changes with an array of data.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Output() selectedRows = new EventEmitter<any[]>();\n /**\n * In combination with `sortable` 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<SortEvent>();\n /**\n * In combination with `sortable` & `isMultiSortable` 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() multiSortChange = new EventEmitter<MultisortParam[]>();\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public headerTemplate: TemplateRef<any>;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public bodyTemplate: TemplateRef<any>;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public footerTemplate: TemplateRef<any>;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public emptyMessageTemplate: TemplateRef<any>;\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public rowsRendered: any[] = [];\n\n public page = 0;\n public pageSize = 0;\n public showStickyHeader = false;\n public filteredRows = [];\n\n @ContentChildren(EuiTemplateDirective) templates: QueryList<EuiTemplateDirective>;\n\n @ViewChild('theadRef') theadRef: ElementRef<HTMLElement>;\n @ViewChild('tbodyRef') tbodyRef: ElementRef<HTMLElement>;\n @ViewChild('tfootRef') tfootRef: ElementRef<HTMLElement>;\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private rowsSrc: any = null;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private tableFeaturesHandlerSubscription = new Subscription();\n private selectRowsFeatureHandlerSubscription = new Subscription();\n private stickyFeatureHandlerIndex = 0;\n\n constructor(\n private euiTableSortService: EuiTableSortService,\n private cd: ChangeDetectorRef,\n private euiTableSelectableRowService: EuiTableSelectableRowService,\n private elementRef: ElementRef,\n private baseStatesDirective: BaseStatesDirective,\n ) {}\n\n ngOnChanges(c: SimpleChanges): void {\n if (!this.rows) {\n this.rows = [];\n }\n\n this.euiTableSelectableRowService.setPropId(this.propId);\n if (c && c.rows && c.rows.firstChange === false) {\n this.tableFeaturesHandlerSubscription.unsubscribe();\n\n // Go to first page only if length of data has changed. To avoid user to be on a page that no longer exist in case of filtering.\n const lengthChanged = this.rowsSrc.length !== c.rows.currentValue.length;\n\n this.rowsSrc = [...c.rows.currentValue];\n if (this.paginator && lengthChanged) {\n this.paginator.goFirstPage();\n }\n if (!this.asyncTable) {\n this.euiTableSelectableRowService.resetRows();\n this.euiTableSelectableRowService.addRows(c.rows.currentValue);\n this.tableFeaturesHandler();\n } else {\n this.euiTableSelectableRowService.resetRows();\n this.euiTableSelectableRowService.addRows(c.rows.currentValue);\n }\n }\n\n if (c && c.preselectedRows && c.preselectedRows.firstChange === false) {\n this.euiTableSelectableRowService.selectRows(this.preselectedRows);\n }\n\n if (c && c.paginator?.currentValue) {\n this.paginator.setLength(this.rows.length);\n if (!c.paginator?.isFirstChange()) {\n this.paginator.goFirstPage();\n }\n } else {\n // this.rows can be changed anytime, then this else can be executed at that time, testing this.paginator allows to make sure\n // the user whants to disable pagination or change the datasource\n if (!this.paginator) {\n this.rowsRendered = this.rowsSrc ? this.rowsSrc : [...this.rows];\n this.page = 0;\n }\n }\n }\n\n ngOnInit(): void {\n this.rowsSrc = [...this.rows];\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() === 'emptyMessage') {\n this.emptyMessageTemplate = item.template;\n }\n });\n }\n\n ngAfterViewInit(): void {\n if (!this.asyncTable) {\n this.tableFeaturesHandlerSubscription.unsubscribe();\n this.tableFeaturesHandler();\n }\n\n this.euiTableSortService.sortingParams$\n .pipe(takeUntil(this.destroy$))\n .subscribe((sortingParams: { sort: string | null; order: string }) => {\n setTimeout(() => {\n this.sortChange.emit({ sort: sortingParams.sort, order: sortingParams.order });\n });\n });\n\n this.euiTableSortService.multisortParamsSort$.pipe(takeUntil(this.destroy$)).subscribe((multiSortParams: MultisortParam[]) => {\n setTimeout(() => {\n this.multiSortChange.emit(multiSortParams.filter((el) => el.position > 0));\n });\n });\n\n this.selectRowsFeatureHandler();\n\n setTimeout(() => {\n this.euiTableSelectableRowService.selectRows(this.preselectedRows);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Select all rows\n */\n public selectAllRows(): void {\n this.euiTableSelectableRowService.selectAllRows();\n }\n\n /**\n * Unselect all rows\n */\n public unselectAllRows(): void {\n this.euiTableSelectableRowService.unselectAllRows();\n }\n\n /**\n * Selects a set of rows.\n *\n * @param rows Rows to select.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public selectRows(rows: any[]): void {\n this.euiTableSelectableRowService.selectRows(rows);\n }\n\n /**\n * Filters the table's data based on a string declared in `EuiTableFilterComponent`\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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public filterRows(filter: string, r: any[]): any[] {\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 })\n : r;\n\n this.euiTableSelectableRowService.resetRows();\n this.euiTableSelectableRowService.addRows(rows);\n\n this.filteredRows = rows;\n\n return rows;\n }\n\n /**\n * Sort the table's data.\n *\n * @param sort The sort property and order.\n */\n public setSort(sort: string | null, order: 'asc' | 'desc' | null): void {\n this.euiTableSortService.setSort(sort, order);\n }\n\n /**\n * Calcultates the position of columns that are sticky.\n */\n private stickyFeatureHandler(): void {\n const timeout = this.stickyFeatureHandlerIndex === 0 ? 250 : 0;\n\n setTimeout(() => {\n const bodyTrItems = Array.from(this.tbodyRef.nativeElement.querySelectorAll('tr'));\n const containerWidth = this.elementRef.nativeElement?.parentElement?.clientWidth || 0;\n\n if (this.theadRef) {\n const thItems: HTMLTableCellElement[] = Array.from(this.theadRef.nativeElement.querySelectorAll('.eui-table__col--sticky'));\n\n // Reset left & right position\n thItems.forEach((th: HTMLTableCellElement) => {\n th.style.left = null;\n th.style.right = null;\n });\n\n // Sticky First Cols & Last Cols\n const thItemsStickyFirstCol = thItems.filter((th) => th.offsetLeft + th.clientWidth < containerWidth);\n const thItemsStickyLastCol = thItems.filter((th) => th.offsetLeft + th.clientWidth > containerWidth);\n\n thItemsStickyFirstCol.forEach((th, i) => {\n const w = thItemsStickyFirstCol[i - 1]?.clientWidth;\n const l = parseInt(thItemsStickyFirstCol[i - 1]?.style.left, 10);\n th.style.left = (i === 0 ? 0 : w + l) + 'px';\n\n if (i + 1 === thItemsStickyFirstCol.length) {\n th.classList.add('eui-table__col--sticky-shadowed-first');\n }\n });\n\n thItemsStickyLastCol.reverse().forEach((th, i) => {\n const w = thItemsStickyLastCol[i - 1]?.clientWidth;\n const r = parseInt(thItemsStickyLastCol[i - 1]?.style.right, 10);\n th.style.right = (i === 0 ? 0 : w + r) + 'px';\n\n if (i + 1 === thItemsStickyLastCol.length) {\n th.classList.add('eui-table__col--sticky-shadowed-last');\n }\n });\n }\n\n bodyTrItems.forEach((tr) => {\n const tdItems: HTMLTableCellElement[] = Array.from(tr.querySelectorAll('.eui-table__col--sticky'));\n tdItems.forEach((td) => {\n td.style.left = null;\n td.style.right = null;\n });\n });\n\n bodyTrItems.forEach((tr) => {\n const tdItems: HTMLTableCellElement[] = Array.from(tr.querySelectorAll('.eui-table__col--sticky'));\n\n // Sticky First Cols\n const tdItemsStickyFirstCol = tdItems.filter((td) => td.offsetLeft + td.clientWidth < containerWidth);\n tdItemsStickyFirstCol.forEach((td, i) => {\n const w = tdItemsStickyFirstCol[i - 1]?.clientWidth;\n const l = parseInt(tdItemsStickyFirstCol[i - 1]?.style.left, 10);\n td.style.left = (i === 0 ? 0 : w + l) + 'px';\n\n if (i + 1 === tdItemsStickyFirstCol.length) {\n td.classList.add('eui-table__col--sticky-shadowed-first');\n }\n });\n\n // Sticky Last Cols\n const tdItemsStickyLastCol = tdItems.filter((td) => td.offsetLeft + td.clientWidth > containerWidth);\n tdItemsStickyLastCol.reverse().forEach((td, i) => {\n const w = tdItemsStickyLastCol[i - 1]?.clientWidth;\n const r = parseInt(tdItemsStickyLastCol[i - 1]?.style.right, 10);\n td.style.right = (i === 0 ? 0 : w + r) + 'px';\n\n if (i + 1 === tdItemsStickyLastCol.length) {\n td.classList.add('eui-table__col--sticky-shadowed-last');\n }\n });\n });\n\n if (this.tfootRef) {\n const tdItems: HTMLTableCellElement[] = Array.from(this.tfootRef.nativeElement.querySelectorAll('.eui-table__col--sticky'));\n\n // Reset left & right position\n tdItems.forEach((th: HTMLTableCellElement) => {\n th.style.left = null;\n th.style.right = null;\n });\n\n // Sticky First Cols & Last Cols\n const tdItemsStickyFirstCol = tdItems.filter((td) => td.offsetLeft + td.clientWidth < containerWidth);\n const tdItemsStickyLastCol = tdItems.filter((td) => td.offsetLeft + td.clientWidth > containerWidth);\n\n tdItemsStickyFirstCol.forEach((td, i) => {\n const w = tdItemsStickyFirstCol[i - 1]?.clientWidth;\n const l = parseInt(tdItemsStickyFirstCol[i - 1]?.style.left, 10);\n td.style.left = (i === 0 ? 0 : w + l) + 'px';\n\n if (i + 1 === tdItemsStickyFirstCol.length) {\n td.classList.add('eui-table__col--sticky-shadowed-first');\n }\n });\n\n tdItemsStickyLastCol.reverse().forEach((td, i) => {\n const w = tdItemsStickyLastCol[i - 1]?.clientWidth;\n const r = parseInt(tdItemsStickyLastCol[i - 1]?.style.right, 10);\n td.style.right = (i === 0 ? 0 : w + r) + 'px';\n\n if (i + 1 === tdItemsStickyLastCol.length) {\n td.classList.add('eui-table__col--sticky-shadowed-last');\n }\n });\n }\n }, timeout);\n\n this.stickyFeatureHandlerIndex++;\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.euiTableSortService.sortingParams$,\n this.paginator ? this.paginator.page$ : new BehaviorSubject(null),\n this.filter ? this.filter.filter$ : new BehaviorSubject(null),\n this.euiTableSortService.multisortParamsSort$,\n ])\n .pipe(takeUntil(this.destroy$))\n .subscribe(([sortingParams, pagination, filter, multisortParams]) => {\n let r = [...this.rowsSrc];\n if (sortingParams.order !== null && sortingParams.sort !== null) {\n const multisort = [];\n multisort.push(new MultisortParam(sortingParams.sort, sortingParams.order, 1));\n r = this.doMultiSort(multisort, r);\n }\n\n if (multisortParams.length > 0) {\n const sortableColumns = multisortParams.filter((col) => col.order !== null);\n if (sortableColumns.length > 0) {\n r = this.doMultiSort(sortableColumns, r);\n }\n }\n r = this.filterRows(filter, r);\n if (this.paginator) {\n this.paginator.setLength(r.length);\n r = this.paginateRows(pagination, r);\n }\n\n this.rowsRendered = r;\n this.stickyFeatureHandler();\n if (this.isSelectOnlyVisibleRows) {\n this.euiTableSelectableRowService.resetRows();\n this.euiTableSelectableRowService.unselectAllRows();\n this.euiTableSelectableRowService.addRows(this.rowsRendered);\n }\n\n this.cd.detectChanges();\n });\n }\n\n /**\n * Handles multi-sorting\n *\n * @param multisortParams Multi-sorting criterias\n * @param r Data to sort\n * @returns An array of data sorted\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private doMultiSort(multisortParams: MultisortParam[], r: any): any[] {\n r = this.multiSortRows(multisortParams, 1, r);\n return r;\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private multiSortRows(multisortParams: MultisortParam[], currentPosition: number, r: any): any[] {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let rows: any[] = null;\n const colParams = multisortParams.find((col) => col.position === currentPosition);\n if (colParams.order === 'desc') {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rows = r.sort((a: any, b: any) => {\n if (this.isColumnSortable(a, b, multisortParams, currentPosition)) {\n return this.sortTwoRowsDesc(a, b, colParams.name);\n } else {\n return 0;\n }\n });\n } else {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n rows = r.sort((a: any, b: any) => {\n if (this.isColumnSortable(a, b, multisortParams, currentPosition)) {\n return this.sortTwoRowsAsc(a, b, colParams.name);\n } else {\n return 0;\n }\n });\n }\n if (multisortParams.length === currentPosition) {\n return rows;\n } else {\n return this.multiSortRows(multisortParams, ++currentPosition, rows);\n }\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private isColumnSortable(a: any, b: any, multisortParams: MultisortParam[], currentPosition: number): boolean {\n if (currentPosition === 1) return true;\n const colParams = multisortParams.find((col) => col.position === currentPosition - 1);\n const aCol = this.getObjPropValue(a, colParams.name);\n // typeof this.getObjProp(a, colParams.name) === 'string'\n // ? this.getObjProp(a, colParams.name).toLowerCase()\n // : this.getObjProp(a, colParams.name);\n const bCol = this.getObjPropValue(b, colParams.name);\n // typeof this.getObjProp(b, colParams.name) === 'string'\n // ? this.getObjProp(b, colParams.name).toLowerCase()\n // : this.getObjProp(b, colParams.name);\n if (aCol !== bCol) {\n return false;\n } else {\n if (currentPosition - 1 === 1) {\n return true;\n } else {\n return this.isColumnSortable(a, b, multisortParams, --currentPosition);\n }\n }\n }\n\n //This function is to do the sorting the table with the combination of 0,null and text in descending order.\n //getObjPropValue is to get the object property value\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private sortTwoRowsDesc(a: any, b: any, colName: string): number {\n const aSortOn = this.getObjPropValue(a, colName);\n const bSortOn = this.getObjPropValue(b, colName);\n if ((aSortOn === null || aSortOn === undefined) && bSortOn) {\n return 1;\n } else if (aSortOn && (bSortOn === null || bSortOn === undefined)) {\n return -1;\n } else if ((aSortOn === null || aSortOn === undefined) && (bSortOn === null || bSortOn === undefined)) {\n return 0;\n } else if ((aSortOn === null || aSortOn === undefined) && bSortOn === 0) {\n return 1;\n } else if (aSortOn === 0 && (bSortOn === null || bSortOn === undefined)) {\n return -1;\n } else {\n return aSortOn < bSortOn ? 1 : aSortOn > bSortOn ? -1 : 0;\n }\n }\n\n /**\n * This function is to do the sorting the table with the combination of 0,null and text in ascending order.\n * getObjPropValue is to get the object property value\n *\n * @param a First row to sort\n * @param b Second row to sort\n * @param colName Sort criteria\n * @returns Result of the sorting\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private sortTwoRowsAsc(a: any, b: any, colName: string): number {\n const aSortOn = this.getObjPropValue(a, colName);\n const bSortOn = this.getObjPropValue(b, colName);\n if ((aSortOn === null || aSortOn === undefined) && bSortOn) {\n return -1;\n } else if (aSortOn && (bSortOn === null || bSortOn === undefined)) {\n return 1;\n } else if ((aSortOn === null || aSortOn === undefined) && (bSortOn === null || bSortOn === undefined)) {\n return 0;\n } else if ((aSortOn === null || aSortOn === undefined) && bSortOn === 0) {\n return -1;\n } else if (aSortOn === 0 && (bSortOn === null || bSortOn === undefined)) {\n return 1;\n } else {\n return aSortOn < bSortOn ? -1 : aSortOn > bSortOn ? 1 : 0;\n }\n }\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private getObjPropValue(obj: any, prop: string): any {\n const value = this.getObjProp(obj, prop);\n return typeof value === 'string' ? value.toLowerCase() : value;\n }\n\n /**\n * Handles the selection of rows.\n */\n private selectRowsFeatureHandler(): void {\n this.selectRowsFeatureHandlerSubscription = this.euiTableSelectableRowService.selectedRows$\n .pipe(takeUntil(this.destroy$))\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n .subscribe((selected: any[]) => {\n this.selectedRows.emit(selected);\n });\n }\n\n /**\n * Get the properties of the object matching the filter string.\n *\n * @param obj Obj 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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private getProps(obj: any[], filter: string): { key: string; match: boolean; value: string | number }[] {\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const isObject = (val: any): boolean => val && typeof val === 'object';\n const addDelimiter = (a: string, b: string): string => (a && a !== '0' ? `${a}.${b}` : b);\n const props = [];\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const paths = (pathObj = {}, head = ''): any[] =>\n Object.entries(pathObj).reduce((product, [key, value]) => {\n const fullPath = addDelimiter(head, key);\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const match = (v: any): boolean =>\n v &&\n typeof v !== 'object' &&\n v\n ?.toString()\n .toLowerCase()\n .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 paths(obj);\n\n return props;\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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private paginateRows(pagination: PaginationEvent, r: any[]): any[] {\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 * 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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n private getObjProp(obj: any, prop: string): string {\n return prop ? prop.split('.').reduce((prev, curr) => (prev ? prev[curr] : null), obj || self) : null;\n }\n}\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 rowsRendered; let i = $index; track $index) {\n <ng-template\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i + page * pageSize }\">\n </ng-template>\n }\n\n @if (emptyMessageTemplate && rowsRendered.length === 0) {\n <ng-template [ngTemplateOutlet]=\"emptyMessageTemplate\"></ng-template>\n }\n </tbody>\n}\n@if (footerTemplate) {\n <tfoot #tfootRef>\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n </tfoot>\n}\n","import { Component, HostBinding } from '@angular/core';\n\n/**\n * @description\n * Component used to activate the expandable feature on a row of the table.\n */\n@Component({\n // eslint-disable-next-line\n selector: 'tr[euiTableExpandableRow]',\n template: '<ng-content/>',\n})\nexport class EuiTableExpandableRowComponent {\n @HostBinding('class') string = 'eui-table-expandable-row';\n}\n","import { Component, OnInit, Input, Output, EventEmitter, OnDestroy, HostBinding, ViewChild, ElementRef, ViewEncapsulation, booleanAttribute } from '@angular/core';\nimport { FormGroup, FormControl, ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { Subject, BehaviorSubject, takeUntil, debounceTime, distinctUntilChanged } from 'rxjs';\n\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EUI_ICON_INPUT } from '@eui/components/eui-icon-input';\nimport { EUI_INPUT_TEXT } from '@eui/components/eui-input-text';\nimport { EUI_ICON } from '@eui/components/eui-icon';\n\n/**\n * @description\n * Component used with `eui-table` to add a filter feature to the table.\n */\n@Component({\n selector: 'eui-table-filter',\n templateUrl: './eui-table-filter.component.html',\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [],\n },\n ],\n imports: [\n FormsModule,\n ReactiveFormsModule,\n ...EUI_ICON_INPUT,\n ...EUI_ICON,\n ...EUI_INPUT_TEXT,\n ],\n})\nexport class EuiTableFilterComponent 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 [this.baseStatesDirective.getCssClasses('eui-table__filter')].join(' ').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 | null> = new BehaviorSubject(null);\n public form: FormGroup;\n\n @Input({ transform: booleanAttribute }) autoSearch = false;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor(private baseStatesDirective: BaseStatesDirective) {\n }\n\n ngOnInit(): void {\n this.form = new FormGroup({\n filter: new FormControl<string>(null),\n });\n\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__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__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 </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 | euiTableHighlightFilter: strFilter\"></span></td>\n * \n * strFilter = '19'\n * ```\n */\n@Pipe({\n name: 'euiTableHighlightFilter',\n})\nexport class EuiTableHighlightFilterPipe 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--highlighted'\n * @returns \n */\n transform(value: string, strFilter: string, className = 'eui-table--highlighted'): string {\n if (!value) return '';\n if (!strFilter || strFilter.length === 0) return value;\n \n const generateVariants = (str: string): string[] => {\n const variants: Set<string> = new Set([str]);\n \n for (let j = 1; j <= 3; j++) {\n for (const separator of ['.', ',', ' ']) {\n let newVariant = str;\n let i = j;\n \n while (i < newVariant.length) {\n newVariant = newVariant.slice(0, i) + separator + newVariant.slice(i);\n i += 4;\n }\n variants.add(newVariant);\n }\n }\n return Array.from(variants);\n };\n \n const isNumber = (str: string): boolean => !isNaN(Number(str)) && str.trim() !== '';\n const variants = isNumber(strFilter) ? generateVariants(strFilter) : [strFilter];\n const regex = new RegExp(`(${variants.map(v => v.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')).join('|')})`, 'gi');\n \n return value.toString().replace(regex, `<span class=\"${className}\">$1</span>`);\n }\n}\n","import { Component, OnInit, Input, OnDestroy, ViewChild, ElementRef, booleanAttribute } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { EuiTableSelectableRowService } from '../services/eui-table-selectable-row.service';\nimport { EUI_INPUT_CHECKBOX } from '@eui/components/eui-input-checkbox';\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[isSelectableHeader]',\n templateUrl: './eui-table-selectable-header.component.html',\n imports: [\n ...EUI_INPUT_CHECKBOX,\n ],\n})\nexport class EuiTableSelectableHeaderComponent implements OnInit, OnDestroy {\n @ViewChild('checkbox') checkbox: ElementRef<HTMLInputElement>;\n\n public isCheckedIndeterminate = false;\n\n /**\n * Wheter a select all feature is available in the header.\n * \n * @default false\n */\n @Input({ transform: booleanAttribute }) isSelectableHeader = true;\n @Input({ transform: booleanAttribute }) isChecked = false;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor(private euiTableSelectableRowService: EuiTableSelectableRowService) {}\n\n ngOnInit(): void {\n this.euiTableSelectableRowService.isAllRowsSelected$.pipe(takeUntil(this.destroy$)).subscribe((selected) => {\n this.isChecked = selected;\n if (this.checkbox) {\n this.checkbox.nativeElement.checked = selected;\n }\n\n if (!selected && this.euiTableSelectableRowService.selectedRows$.value.length > 0) {\n this.isCheckedIndeterminate = true;\n } else {\n this.isCheckedIndeterminate = false;\n }\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 value true when checked otherwise false.\n */\n public toggleCheckedState(value: boolean): void {\n this.isChecked = value;\n\n if (this.isChecked) {\n this.euiTableSelectableRowService.selectAllRows();\n } else {\n this.euiTableSelectableRowService.unselectAllRows();\n }\n }\n}\n","@if (isSelectableHeader) {\n <th class=\"eui-table__cell-select\">\n <div class=\"eui-table__cell-select-checkbox-container\">\n @if (!isChecked && !isCheckedIndeterminate) {\n <input aria-label=\"Unchecked\" euiInputCheckBox checked=\"false\" (click)=\"toggleCheckedState(true)\" />\n }\n @if (isCheckedIndeterminate) {\n <input aria-label=\"Indeterminate\" euiInputCheckBox indeterminate (click)=\"toggleCheckedState(false)\" />\n }\n @if (isChecked && !isCheckedIndeterminate) {\n <input aria-label=\"Checked\" euiInputCheckBox checked=\"true\" (click)=\"toggleCheckedState(false)\" />\n }\n </div>\n </th>\n}\n\n<ng-content></ng-content>\n","import { Component, OnInit, Input, OnDestroy, OnChanges, HostBinding, HostListener, booleanAttribute } from '@angular/core';\nimport { Subject, takeUntil } from 'rxjs';\n\nimport { EuiTableSelectableRowService } from '../services/eui-table-selectable-row.service';\nimport { EUI_INPUT_CHECKBOX } from '@eui/components/eui-input-checkbox';\n\n/**\n * @description\n * Component used internally by `eui-table` to make a row selectable.\n */\n@Component({\n // eslint-disable-next-line\n selector: 'tr[isSelectable]',\n templateUrl: './eui-table-selectable-row.component.html',\n imports: [\n ...EUI_INPUT_CHECKBOX,\n ],\n})\nexport class EuiTableSelectableRowComponent implements OnInit, OnDestroy, OnChanges {\n /**\n * Data of the row.\n */\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n @Input() isSelectable: any;\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 get cssClasses(): string {\n return ['eui-table__row', this.isSelectable ? 'eui-table__row--selectable' : '', this.isChecked ? 'eui-table__row--selected' : '']\n .join(' ')\n .trim();\n }\n\n constructor(private euiTableSelectableRowService: EuiTableSelectableRowService) {}\n\n /**\n * Keyboard event handler for selecting rows.\n * \n * @param event Keyboard event\n */\n @HostListener('click', ['$event']) onClickRow(event: PointerEvent): void {\n if (this.isKeyboardSelectable && this.isSelectable) {\n if (event.ctrlKey) {\n if (!this.isChecked) {\n this.euiTableSelectableRowService.addSelectedRow(this.isSelectable);\n } else {\n this.euiTableSelectableRowService.removeSelectedRow(this.isSelectable);\n }\n } else if (event.shiftKey) {\n const rows = this.euiTableSelectableRowService.getRows();\n const lastSelectedRow = this.euiTableSelectableRowService.getLastSelectedRow();\n const lastSelectedRowPosition = rows.indexOf(lastSelectedRow);\n const position = rows.indexOf(this.isSelectable);\n\n const range =\n lastSelectedRowPosition > position\n ? rows.slice(position, lastSelectedRowPosition + 1)\n : rows.slice(lastSelectedRowPosition, position + 1);\n\n this.euiTableSelectableRowService.addSelectedRows(range);\n\n window.getSelection().empty();\n } else {\n this.euiTableSelectableRowService.selectRows([this.isSelectable]);\n }\n }\n }\n\n ngOnChanges(): void {\n if (this.isSelectable) {\n this.propId = this.euiTableSelectableRowService.getPropId();\n this.isChecked = this.euiTableSelectableRowService.selectedRows$.value.find(\n (s) => s[this.propId] === this.isSelectable[this.propId],\n )\n ? true\n : false;\n }\n }\n\n ngOnInit(): void {\n this.euiTableSelectableRowService.selectedRows$.pipe(takeUntil(this.destroy$)).subscribe((selected) => {\n this.isChecked = selected.filter((s) => s[this.propId] === this.isSelectable[this.propId]).length > 0;\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 // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public toggleCheckedState(e: any): void {\n if (!this.isChecked) {\n this.euiTableSelectableRowService.addSelectedRow(this.isSelectable);\n } else {\n this.euiTableSelectableRowService.removeSelectedRow(this.isSelectable);\n }\n\n e.preventDefault();\n e.stopPropagation();\n }\n}\n","@if (isSelectable) {\n <td class=\"eui-table__cell-select\">\n <div class=\"eui-table__cell-select-checkbox-container\">\n @if (isChecked) {\n <input aria-label=\"default checkbox checked\" euiInputCheckBox checked=\"true\" (click)=\"toggleCheckedState($event)\" />\n }\n @if (!isChecked) {\n <input aria-label=\"default checkbox unchecked\" euiInputCheckBox checked=\"false\" (click)=\"toggleCheckedState($event)\" />\n }\n </div>\n </td>\n}\n<ng-content></ng-content>\n","import { Component, OnInit, OnDestroy, Input, HostBinding, ViewChild, numberAttribute, booleanAttribute } from '@angular/core';\nimport { Subject, combineLatest, takeUntil } from 'rxjs';\nimport { FormArray, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { EUI_DROPDOWN, EuiDropdownComponent } from '@eui/components/eui-dropdown';\n\nimport { EuiTableSortService } from '../services/eui-table-sort.service';\nimport { MultisortParam } from '../models/multi-sort.model';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { EUI_ICON } from '@eui/components/eui-icon';\nimport { EUI_BUTTON } from '@eui/components/eui-button';\nimport { EUI_BADGE } from '@eui/components/eui-badge';\nimport { EUI_FEEDBACK_MESSAGE } from '@eui/components/eui-feedback-message';\nimport { EUI_SELECT } from '@eui/components/eui-select';\nimport { EUI_LABEL } from '@eui/components/eui-label';\nimport { TranslateModule } from '@ngx-translate/core';\n\n/**\n * @description\n * Component used internally by `eui-table` to make a column sortable.\n */\n@Component({\n // eslint-disable-next-line\n selector: 'th[sortable]',\n templateUrl: './eui-table-sortable-col.component.html',\n imports: [\n NgTemplateOutlet,\n FormsModule,\n ReactiveFormsModule,\n TranslateModule,\n ...EUI_ICON,\n ...EUI_BUTTON,\n ...EUI_BADGE,\n ...EUI_FEEDBACK_MESSAGE,\n ...EUI_SELECT,\n ...EUI_LABEL,\n ...EUI_DROPDOWN,\n ],\n})\nexport class EuiTableSortableColComponent implements OnInit, OnDestroy {\n @ViewChild(EuiDropdownComponent) dropdown: EuiDropdownComponent;\n @Input() sortOn: string;\n @Input() sortOrder: 'asc' | 'desc' = 'desc';\n /**\n * Wheter the column is multi-sorted by defaut.\n * \n * @default false\n */\n @Input({ transform: numberAttribute }) defaultMultiOrder = null;\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: 'asc' | 'desc' | null = 'desc';\n multisortParams: MultisortParam[] = [];\n currentMultiSortPosition = 0;\n error = false;\n form: FormGroup;\n\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 get cssClasses(): string {\n return ['eui-table__sortable-col', this.sortDisabled ? 'eui-table__sortable-col--disabled' : ''].join(' ').trim();\n }\n\n constructor(private euiTableSortService: EuiTableSortService) {}\n\n ngOnInit(): void {\n if (this.isMultiSortable && !this.sortDisabled) {\n if (this.defaultMultiOrder > 0 && this.sortOrder) {\n this.euiTableSortService.addMultisortParam(new MultisortParam(this.sortOn, this.sortOrder, this.defaultMultiOrder));\n } else {\n this.euiTableSortService.addMultisortParam(new MultisortParam(this.sortOn, null, 0));\n }\n }\n\n combineLatest([this.euiTableSortService.sortingParams$, this.euiTableSortService.multisortParamsChange$])\n .pipe(takeUntil(this.destroy$))\n .subscribe(([sortingParams, multisortParams]) => {\n if (!this.isMultiSortable) {\n if (sortingParams.sort !== this.sortOn) {\n this.order = null;\n } else {\n this.order = sortingParams.order as ('asc' | 'desc');\n }\n } else {\n this.multisortParams = [...multisortParams];\n this.form = new FormGroup({ columns: this.euiTableSortService.toFormGroup(multisortParams) });\n if (sortingParams.order !== null && sortingParams.sort !== null) {\n this.currentMultiSortPosition = 0;\n if (sortingParams.sort !== this.sortOn) {\n this.order = null;\n } else {\n return;\n }\n } else {\n this.setCurrentMultisortPosition(multisortParams);\n }\n }\n });\n\n if (this.defaultOrder) {\n this.order = this.sortOrder;\n this.euiTableSortService.setSort(this.sortOn, this.order);\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n get columns(): FormArray {\n return this.form.controls['columns'] as FormArray;\n }\n\n /**\n * Handles the click event on the sortable column.\n */\n public click(): 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 this.euiTableSortService.setSort(this.sortOn, this.order);\n }\n }\n\n /**\n * Handles the click event on the multi-sortable column.\n */\n onClickMultisortOrder(index: number, order: 'asc' | 'desc' | null): void {\n (this.form.get('columns') as FormArray).controls[index - 1].get('order').patchValue(order);\n }\n\n onOpenDropdown(): void {\n this.error = false;\n }\n\n getOrderByIndex(index: number): string | null {\n return (this.form.get('columns') as FormArray).controls[index].get('order').value;\n }\n\n onCancelMultiSort(): void {\n this.dropdown.closeDropdown();\n }\n\n onSubmitMultiSort(): void {\n const arr: Array<{ name: string; order: 'asc' | 'desc' | null }> = [];\n (this.form.get('columns') as FormArray).controls.forEach((el) => {\n if (el.get('name').value && el.get('order').value) {\n arr.push({ name: el.get('name').value, order: el.get('order').value });\n }\n });\n\n if (this.checkValidForSorting(arr)) {\n this.multisortParams.map((el) => this.setSortableParams(el, arr));\n this.euiTableSortService.setMultiSortColumns(this.multisortParams);\n this.dropdown.closeDropdown();\n } else {\n this.error = true;\n }\n }\n\n private setSortableParams(el: MultisortParam, arr: Array<{ name: string; order: 'asc' | 'desc' | null }>): MultisortParam {\n const currElArr = arr.find((item) => item.name === el.name);\n if (currElArr) {\n const index = arr.findIndex((item) => item.name === el.name);\n el.order = currElArr.order;\n el.position = index + 1;\n } else {\n el.order = null;\n el.position = 0;\n }\n return el;\n }\n\n private setCurrentMultisortPosition(multisortParams: MultisortParam[]): void {\n const currentColumn = multisortParams.find((el) => el.name === this.sortOn);\n if (currentColumn) {\n this.order = currentColumn.order;\n this.currentMultiSortPosition = currentColumn.position;\n } else {\n this.order = null;\n this.currentMultiSortPosition = 0;\n }\n }\n\n private checkValidForSorting(arr: Array<{ name: string; order: string }>): boolean {\n if (arr.length === 0) {\n return false;\n }\n return arr.find((el) => !this.isElementUniqueName(arr, el)) === undefined;\n }\n\n private isElementUniqueName(arr: Array<{ name: string; order: string }>, el: { name: string; order: string }): boolean {\n return arr.filter((col) => col.name === el.name).length === 1;\n }\n}\n","<!-- 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","import { NgModule } from '@angular/core';\nimport { EuiTableComponent } from './eui-table.component';\nimport { EuiTableSortableColComponent } from './sortable-col/eui-table-sortable-col.component';\nimport { EuiTableFilterComponent } from './filter/eui-table-filter.component';\nimport { EuiTableSelectableRowComponent } from './selectable-row/eui-table-selectable-row.component';\nimport { EuiTableSelectableHeaderComponent } from './selectable-header/eui-table-selectable-header.component';\nimport { EuiTableExpandableRowComponent } from './expandable-row/eui-table-expandable-row.component';\nimport { EuiTableHighlightFilterPipe } from './pipes/eui-table-highlight-filter.pipe';\nimport { EuiTableStickyColumnDirective } from './directives/eui-table-sticky-columns.directive';\n\n/**\n * @description\n * Module that provides the EuiTable component and its dependencies\n *\n * @deprecated Use {@link EUI_TABLE} instead\n */\n@NgModule({\n imports: [\n EuiTableComponent,\n EuiTableSortableColComponent,\n EuiTableFilterComponent,\n EuiTableSelectableRowComponent,\n EuiTableSelectableHeaderComponent,\n EuiTableExpandableRowComponent,\n EuiTableHighlightFilterPipe,\n EuiTableStickyColumnDirective,\n ],\n exports: [\n EuiTableComponent,\n EuiTableSortableColComponent,\n EuiTableFilterComponent,\n EuiTableSelectableRowComponent,\n EuiTableSelectableHeaderComponent,\n EuiTableExpandableRowComponent,\n EuiTableHighlightFilterPipe,\n EuiTableStickyColumnDirective,\n ],\n})\nexport class EuiTableModule {}\n","import { EuiTableStickyColumnDirective } from './directives/eui-table-sticky-columns.directive';\nimport { EuiTableComponent } from './eui-table.component';\nimport { EuiTableExpandableRowComponent } from './expandable-row/eui-table-expandable-row.component';\nimport { EuiTableFilterComponent } from './filter/eui-table-filter.component';\nimport { EuiTableHighlightFilterPipe } from './pipes/eui-table-highlight-filter.pipe';\nimport { EuiTableSelectableHeaderComponent } from './selectable-header/eui-table-selectable-header.component';\nimport { EuiTableSelectableRowComponent } from './selectable-row/eui-table-selectable-row.component';\nimport { EuiTableSortableColComponent } from './sortable-col/eui-table-sortable-col.component';\n\nexport * from './eui-table.component';\nexport * from './sortable-col/eui-table-sortable-col.component';\nexport * from './filter/eui-table-filter.component';\nexport * from './pipes/eui-table-highlight-filter.pipe';\nexport * from './selectable-row/eui-table-selectable-row.component';\nexport * from './selectable-header/eui-table-selectable-header.component';\nexport * from './expandable-row/eui-table-expandable-row.component';\nexport * from './models/pagination-event.model';\nexport * from './models/sort-event.model';\nexport * from './directives/eui-table-sticky-columns.directive';\nexport * from './eui-table.module';\n\nexport const EUI_TABLE = [\n EuiTableComponent,\n EuiTableSortableColComponent,\n EuiTableFilterComponent,\n EuiTableSelectableRowComponent,\n EuiTableSelectableHeaderComponent,\n EuiTableExpandableRowComponent,\n EuiTableHighlightFilterPipe,\n EuiTableStickyColumnDirective,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.EuiTableSortService","i2.EuiTableSelectableRowService","i1","i3","i1.EuiTableSelectableRowService","i2","i5"],"mappings":"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"}
|