@eui/components 17.3.13-snapshot-1731377442510 → 17.3.13-snapshot-1732241743667

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.
@@ -1 +1 @@
1
- {"version":3,"file":"eui-components-eui-table.mjs","sources":["../../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/sortable-col/eui-table-sortable-col.component.ts","../../eui-table/sortable-col/eui-table-sortable-col.component.html","../../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-row/eui-table-selectable-row.component.ts","../../eui-table/selectable-row/eui-table-selectable-row.component.html","../../eui-table/selectable-header/eui-table-selectable-header.component.ts","../../eui-table/selectable-header/eui-table-selectable-header.component.html","../../eui-table/expandable-row/eui-table-expandable-row.component.ts","../../eui-table/expandable-row/eui-table-expandable-row.component.html","../../eui-table/directives/eui-table-sticky-columns.directive.ts","../../eui-table/eui-table.module.ts","../../eui-table/eui-components-eui-table.ts"],"sourcesContent":["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@Injectable()\nexport class EuiTableSortService {\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 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 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 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 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 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@Injectable()\nexport class EuiTableSelectableRowService {\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 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 public setPropId(value: string): void {\n this.propId = value;\n }\n\n public getPropId(): string {\n return this.propId;\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 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 // 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 // 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 // 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 // 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 public resetRows(): void {\n this.rows = [];\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 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 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 public unselectAllRows(): void {\n this.selectedRows$.next([]);\n this.isAllRowsSelected$.next(false);\n this.isAllRowsSelected = false;\n\n this.lastSelectedRow = null;\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 public getRows(): any[] {\n return this.rows;\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 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} from '@angular/core';\nimport { BehaviorSubject, combineLatest, Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\n\nimport { EuiTemplateDirective } from '@eui/components/directives';\nimport { BaseDirective } 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';\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})\nexport class EuiTableComponent extends BaseDirective implements AfterContentInit, OnInit, OnDestroy, AfterViewInit, OnChanges {\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 @Input() propId = 'id';\n @Input() paginator: EuiPaginatorComponent;\n @Input() filter: EuiTableFilterComponent;\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 @HostBinding('class') string = 'eui-table';\n @HostBinding('class.eui-table__loading') get hasLoading(): boolean {\n return this.loading;\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 @Output() selectedRows = new EventEmitter<any[]>();\n @Output() sortChange = new EventEmitter<SortEvent>();\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 @Input() get loading(): boolean {\n return this._loading;\n }\n set loading(value: BooleanInput) {\n this._loading = coerceBooleanProperty(value);\n }\n private _loading = false;\n @Input()\n get asyncTable(): boolean {\n return this._asyncTable;\n }\n set asyncTable(value: BooleanInput) {\n this._asyncTable = coerceBooleanProperty(value);\n }\n private _asyncTable = false;\n @Input()\n get paginable(): boolean {\n return this._paginable;\n }\n set paginable(value: BooleanInput) {\n this._paginable = coerceBooleanProperty(value);\n }\n private _paginable = false;\n @Input()\n get euiTableResponsive(): boolean {\n return this._euiTableResponsive;\n }\n set euiTableResponsive(value: BooleanInput) {\n this._euiTableResponsive = coerceBooleanProperty(value);\n }\n private _euiTableResponsive = false;\n @Input()\n get euiTableFixedLayout(): boolean {\n return this._euiTableFixedLayout;\n }\n set euiTableFixedLayout(value: BooleanInput) {\n this._euiTableFixedLayout = coerceBooleanProperty(value);\n }\n private _euiTableFixedLayout = false;\n @Input()\n get euiTableDraggable(): boolean {\n return this._euiTableDraggable;\n }\n set euiTableDraggable(value: BooleanInput) {\n this._euiTableDraggable = coerceBooleanProperty(value);\n }\n private _euiTableDraggable = false;\n @Input()\n get euiTableCards(): boolean {\n return this._euiTableCards;\n }\n set euiTableCards(value: BooleanInput) {\n this._euiTableCards = coerceBooleanProperty(value);\n }\n private _euiTableCards = false;\n @Input()\n get euiTableBordered(): boolean {\n return this._euiTableBordered;\n }\n set euiTableBordered(value: BooleanInput) {\n this._euiTableBordered = coerceBooleanProperty(value);\n }\n private _euiTableBordered = false;\n @Input()\n get euiTableCompact(): boolean {\n return this._euiTableCompact;\n }\n set euiTableCompact(value: BooleanInput) {\n this._euiTableCompact = coerceBooleanProperty(value);\n }\n private _euiTableCompact = false;\n @Input()\n get hasStickyHeader(): boolean {\n return this._hasStickyHeader;\n }\n set hasStickyHeader(value: BooleanInput) {\n this._hasStickyHeader = coerceBooleanProperty(value);\n }\n private _hasStickyHeader = false;\n @Input()\n get hasStickyColumns(): boolean {\n return this._hasStickyColumns;\n }\n set hasStickyColumns(value: BooleanInput) {\n this._hasStickyColumns = coerceBooleanProperty(value);\n }\n private _hasStickyColumns = false;\n @Input()\n get isSelectOnlyVisibleRows (): boolean {\n return this._isSelectOnlyVisibleRows ;\n }\n set isSelectOnlyVisibleRows (value: BooleanInput) {\n this._isSelectOnlyVisibleRows = coerceBooleanProperty(value);\n }\n private _isSelectOnlyVisibleRows = false;\n @Input()\n get isColsOrderable (): boolean {\n return this._isColsOrderable ;\n }\n set isColsOrderable (value: BooleanInput) {\n this._isColsOrderable = coerceBooleanProperty(value);\n }\n private _isColsOrderable = false;\n @Input()\n get isHoverable (): boolean {\n return this._isHoverable ;\n }\n set isHoverable (value: BooleanInput) {\n this._isHoverable = coerceBooleanProperty(value);\n }\n private _isHoverable = false;\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 @HostBinding('class')\n get cssClasses(): string {\n return [\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 super.getCssClasses('eui-table'),\n ]\n .join(' ')\n .trim();\n }\n\n constructor(\n private euiTableSortService: EuiTableSortService,\n private cd: ChangeDetectorRef,\n private euiTableSelectableRowService: EuiTableSelectableRowService,\n private elementRef: ElementRef,\n ) {\n super();\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 if (!this.e2eAttr) {\n this.e2eAttr = 'eui-table';\n }\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 public trackByFn(index: number): number {\n return index;\n }\n\n public selectAllRows(): void {\n this.euiTableSelectableRowService.selectAllRows();\n }\n\n public unselectAllRows(): void {\n this.euiTableSelectableRowService.unselectAllRows();\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 public selectRows(rows: any[]): void {\n this.euiTableSelectableRowService.selectRows(rows);\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 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 public setSort(sort: string | null, order: 'asc' | 'desc' | null): void {\n this.euiTableSortService.setSort(sort, order);\n }\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 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 // 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 //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 // 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 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 // 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 // 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 // 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","<thead #theadRef *ngIf=\"headerTemplate\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n</thead>\n<tbody #tbodyRef *ngIf=\"bodyTemplate\">\n <ng-container *ngFor=\"let row of rowsRendered; let i = index; trackBy: trackByFn\">\n <ng-template\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i + page * pageSize }\">\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"emptyMessageTemplate && rowsRendered.length === 0\">\n <ng-template [ngTemplateOutlet]=\"emptyMessageTemplate\"></ng-template>\n </ng-container>\n</tbody>\n<tfoot #tfootRef *ngIf=\"footerTemplate\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n</tfoot>\n","import { Component, OnInit, OnDestroy, Input, HostBinding, ViewChild, ChangeDetectorRef } from '@angular/core';\nimport { Subject, combineLatest } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty, BooleanInput, coerceNumberProperty, NumberInput } from '@angular/cdk/coercion';\nimport { FormArray, FormGroup } from '@angular/forms';\nimport { EuiDropdownComponent } from '@eui/components/eui-dropdown';\n\nimport { EuiTableSortService } from '../services/eui-table-sort.service';\nimport { MultisortParam } from '../models/multi-sort.model';\n\n@Component({\n // eslint-disable-next-line\n selector: 'th[sortable]',\n templateUrl: './eui-table-sortable-col.component.html',\n})\nexport class EuiTableSortableColComponent implements OnInit, OnDestroy {\n @ViewChild(EuiDropdownComponent) dropdown: EuiDropdownComponent;\n @Input() sortOn: string;\n @Input() sortOrder: 'asc' | 'desc' = 'desc';\n\n public order: 'asc' | 'desc' | null = 'desc';\n multisortParams: MultisortParam[] = [];\n currentMultiSortPosition = 0;\n error = false;\n form: FormGroup;\n\n @Input()\n get defaultMultiOrder(): number {\n return this._defaultMultiOrder;\n }\n set defaultMultiOrder(value: NumberInput) {\n this._defaultMultiOrder = coerceNumberProperty(value);\n }\n private _defaultMultiOrder = null;\n\n @Input()\n get defaultOrder(): boolean {\n return this._defaultOrder;\n }\n set defaultOrder(value: BooleanInput) {\n this._defaultOrder = coerceBooleanProperty(value);\n }\n private _defaultOrder = false;\n\n @Input()\n get sortDisabled(): boolean {\n return this._sortDisabled;\n }\n set sortDisabled(value: BooleanInput) {\n this._sortDisabled = coerceBooleanProperty(value);\n }\n private _sortDisabled = false;\n\n @Input()\n get isMultiSortable(): boolean {\n return this._isMultiSortable;\n }\n set isMultiSortable(value: BooleanInput) {\n this._isMultiSortable = coerceBooleanProperty(value);\n }\n private _isMultiSortable = false;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\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(\n private euiTableSortService: EuiTableSortService,\n private cd: ChangeDetectorRef,\n ) {}\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 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 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","<div class=\"eui-table__sortable-col-content\">\n <ng-content></ng-content>\n <button type=\"button\" *ngIf=\"!sortDisabled\" euiSizeS euiButton euiIconButton euiBasicButton class=\"eui-table__sortable-icon-button\" (click)=\"click()\">\n <eui-icon-svg\n *ngIf=\"!order\"\n icon=\"eui-swap-vertical\"\n fillColor=\"grey-50\"\n [aria-label]=\"'eui.euitable.NO-SORTING-ICON' | translate\"></eui-icon-svg>\n <eui-icon-svg\n *ngIf=\"order === 'asc'\"\n icon=\"eui-arrow-up\"\n fillColor=\"primary-100\"\n [aria-label]=\"'eui.euitable.ASCENDING-ICON' | translate\"></eui-icon-svg>\n <eui-icon-svg\n *ngIf=\"order === 'desc'\"\n icon=\"eui-arrow-down\"\n fillColor=\"primary-100\"\n [aria-label]=\"'eui.euitable.DESCENDING-ICON' | translate\"></eui-icon-svg>\n </button>\n <ng-template *ngIf=\"isMultiSortable\" [ngTemplateOutlet]=\"sortDropdown\"></ng-template>\n</div>\n<ng-template #sortDropdown let-index>\n <eui-dropdown [isClosedOnClickInside]=\"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 <form [formGroup]=\"form\" *ngIf=\"form\">\n <ng-container formArrayName=\"columns\">\n <ng-container *ngFor=\"let columnForm of columns.controls; let i = 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 <option *ngFor=\"let column of multisortParams\" [value]=\"column.name\">\n {{ column.name }}\n </option>\n </select>\n <button type=\"button\"\n *ngIf=\"!getOrderByIndex(i)\"\n euiSizeS\n euiSecondary\n euiButton\n euiIconButton\n euiBasicButton\n (click)=\"onClickMultisortOrder(i + 1, 'asc')\">\n <eui-icon-svg\n icon=\"eui-swap-vertical\"\n [aria-label]=\"'eui.euitable.NO-SORTING-ICON' | translate\"></eui-icon-svg>\n </button>\n <button type=\"button\"\n *ngIf=\"getOrderByIndex(i) === 'asc'\"\n euiSizeS\n euiPrimary\n euiButton\n euiIconButton\n euiBasicButton\n (click)=\"onClickMultisortOrder(i + 1, 'desc')\">\n <eui-icon-svg icon=\"eui-arrow-up\" [aria-label]=\"'eui.euitable.ASCENDING-ICON' | translate\"></eui-icon-svg>\n </button>\n <button type=\"button\"\n *ngIf=\"getOrderByIndex(i) === 'desc'\"\n euiSizeS\n euiPrimary\n euiButton\n euiIconButton\n euiBasicButton\n (click)=\"onClickMultisortOrder(i + 1, null)\">\n <eui-icon-svg\n icon=\"eui-arrow-down\"\n [aria-label]=\"'eui.euitable.DESCENDING-ICON' | translate\"></eui-icon-svg>\n </button>\n </div>\n </ng-container>\n </ng-container>\n </form>\n <!-- Footer-->\n <p class=\"eui-u-mt-none eui-u-mb-none eui-u-ml-s\" *ngIf=\"error\">\n <eui-feedback-message euiDanger>{{ 'eui.euitable.WRONG-SORT-PARAMS' | translate }}</eui-feedback-message>\n </p>\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 {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n OnDestroy,\n HostBinding,\n ViewChild,\n ElementRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\nimport { Subject, BehaviorSubject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged } from 'rxjs/operators';\n\nimport { BaseDirective } from '@eui/components/shared';\n@Component({\n selector: 'eui-table-filter',\n templateUrl: './eui-table-filter.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiTableFilterComponent extends BaseDirective implements OnInit, OnDestroy {\n @Input() placeholder: string;\n\n @Output() filterChange = new EventEmitter<string>();\n\n @ViewChild('filterInput', { read: ElementRef }) filterInput: ElementRef<HTMLInputElement>;\n\n public filter$: BehaviorSubject<string | null> = new BehaviorSubject(null);\n public form: FormGroup;\n\n @Input()\n get autoSearch(): boolean {\n return this._autoSearch;\n }\n set autoSearch(value: BooleanInput) {\n this._autoSearch = coerceBooleanProperty(value);\n }\n private _autoSearch = false;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('eui-table__filter')].join(' ').trim();\n }\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.form = new FormGroup({\n filter: new FormControl<string>(null),\n });\n\n this.form\n .get('filter')\n .valueChanges.pipe(debounceTime(500), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe((value) => {\n this.setFilter(value);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n public setFilter(value: string): void {\n this.filter$.next(value);\n this.filterChange.emit(value);\n this.form.get('filter').setValue(value);\n }\n\n 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 <input\n #filterInput\n euiClearable\n euiInputText\n class=\"eui-table__filter-input\"\n formControlName=\"filter\"\n [attr.aria-label]=\"placeholder ? placeholder : 'Filter Input Field'\"\n placeholder=\"{{ placeholder }}\" />\n <eui-icon-svg class=\"eui-table__filter-search-icon\" icon=\"eui-search\" set=\"eui\" size=\"m\" fillColor=\"grey-35\"></eui-icon-svg>\n </form>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'euiTableHighlightFilter',\n})\nexport class EuiTableHighlightFilterPipe implements PipeTransform {\n transform(value: string, strFilter: string, className = 'eui-table--highlighted'): string {\n if (strFilter && strFilter.length > 0) {\n const regex = new RegExp('(' + strFilter + ')', 'gi');\n return value.toString().replace(regex, '<span class=\"' + className + '\">$1</span>');\n } else {\n return value;\n }\n }\n}\n","import { Component, OnInit, Input, OnDestroy, OnChanges, HostBinding, HostListener } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\n\nimport { EuiTableSelectableRowService } from '../services/eui-table-selectable-row.service';\n\n@Component({\n // eslint-disable-next-line\n selector: 'tr[isSelectable]',\n templateUrl: './eui-table-selectable-row.component.html',\n})\nexport class EuiTableSelectableRowComponent implements OnInit, OnDestroy, OnChanges {\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 @Input()\n get isChecked(): boolean {\n return this._isChecked;\n }\n set isChecked(value: BooleanInput) {\n this._isChecked = coerceBooleanProperty(value);\n }\n private _isChecked = false;\n\n @Input()\n get isKeyboardSelectable(): boolean {\n return this._isKeyboardSelectable;\n }\n set isKeyboardSelectable(value: BooleanInput) {\n this._isKeyboardSelectable = coerceBooleanProperty(value);\n }\n private _isKeyboardSelectable = false;\n\n private propId = 'id';\n private destroy$: Subject<boolean> = new Subject<boolean>();\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 @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 // 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","<td *ngIf=\"isSelectable\" class=\"eui-table__cell-select\">\n <div class=\"eui-table__cell-select-checkbox-container\">\n <input\n *ngIf=\"isChecked\"\n aria-label=\"default checkbox checked\"\n euiInputCheckBox\n checked=\"true\"\n (click)=\"toggleCheckedState($event)\" />\n <input\n *ngIf=\"!isChecked\"\n aria-label=\"default checkbox unchecked\"\n euiInputCheckBox\n checked=\"false\"\n (click)=\"toggleCheckedState($event)\" />\n </div>\n</td>\n<ng-content></ng-content>\n","import { Component, OnInit, Input, OnDestroy, ViewChild, ElementRef } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { EuiTableSelectableRowService } from '../services/eui-table-selectable-row.service';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\n\n@Component({\n // eslint-disable-next-line\n selector: 'tr[isSelectableHeader]',\n templateUrl: './eui-table-selectable-header.component.html',\n})\nexport class EuiTableSelectableHeaderComponent implements OnInit, OnDestroy {\n @ViewChild('checkbox') checkbox: ElementRef<HTMLInputElement>;\n\n public isCheckedIndeterminate = false;\n\n @Input()\n get isSelectableHeader(): boolean {\n return this._isSelectableHeader;\n }\n set isSelectableHeader(value: BooleanInput) {\n this._isSelectableHeader = coerceBooleanProperty(value);\n }\n private _isSelectableHeader = true;\n @Input()\n get isChecked(): boolean {\n return this._isChecked;\n }\n set isChecked(value: BooleanInput) {\n this._isChecked = coerceBooleanProperty(value);\n }\n private _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 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","<th *ngIf=\"isSelectableHeader\" class=\"eui-table__cell-select\">\n <div class=\"eui-table__cell-select-checkbox-container\">\n <input\n *ngIf=\"!isChecked && !isCheckedIndeterminate\"\n aria-label=\"Unchecked\"\n euiInputCheckBox\n checked=\"false\"\n (click)=\"toggleCheckedState(true)\" />\n <input\n *ngIf=\"isCheckedIndeterminate\"\n aria-label=\"Indeterminate\"\n euiInputCheckBox\n indeterminate\n (click)=\"toggleCheckedState(false)\" />\n <input\n *ngIf=\"isChecked && !isCheckedIndeterminate\"\n aria-label=\"Checked\"\n euiInputCheckBox\n checked=\"true\"\n (click)=\"toggleCheckedState(false)\" />\n </div>\n</th>\n<ng-content></ng-content>\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line\n selector: 'tr[euiTableExpandableRow]',\n templateUrl: './eui-table-expandable-row.component.html',\n})\nexport class EuiTableExpandableRowComponent {\n @HostBinding('class') string = 'eui-table-expandable-row';\n}\n","<ng-content></ng-content>\n","import { Directive, HostBinding } from '@angular/core';\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 { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiListModule } from '@eui/components/eui-list';\nimport { EuiDropdownModule } from '@eui/components/eui-dropdown';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiTemplateDirectiveModule } from '@eui/components/directives';\nimport { EuiInputTextModule } from '@eui/components/eui-input-text';\nimport { EuiInputCheckboxModule } from '@eui/components/eui-input-checkbox';\nimport { EuiSelectModule } from '@eui/components/eui-select';\nimport { EuiFeedbackMessageModule } from '@eui/components/eui-feedback-message';\n\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';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n imports: [\n CommonModule,\n TranslateModule,\n FormsModule,\n EuiIconModule,\n EuiListModule,\n EuiDropdownModule,\n EuiButtonModule,\n ReactiveFormsModule,\n EuiTemplateDirectiveModule,\n EuiInputTextModule,\n EuiInputCheckboxModule,\n EuiFeedbackMessageModule,\n EuiSelectModule,\n ],\n declarations: [\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 EuiTemplateDirectiveModule,\n EuiTableStickyColumnDirective,\n ],\n})\nexport class EuiTableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.EuiTableSortService","i2.EuiTableSelectableRowService","i3","i1","i2","i1.EuiTableSelectableRowService"],"mappings":"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"}
1
+ {"version":3,"file":"eui-components-eui-table.mjs","sources":["../../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/sortable-col/eui-table-sortable-col.component.ts","../../eui-table/sortable-col/eui-table-sortable-col.component.html","../../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-row/eui-table-selectable-row.component.ts","../../eui-table/selectable-row/eui-table-selectable-row.component.html","../../eui-table/selectable-header/eui-table-selectable-header.component.ts","../../eui-table/selectable-header/eui-table-selectable-header.component.html","../../eui-table/expandable-row/eui-table-expandable-row.component.ts","../../eui-table/expandable-row/eui-table-expandable-row.component.html","../../eui-table/directives/eui-table-sticky-columns.directive.ts","../../eui-table/eui-table.module.ts","../../eui-table/eui-components-eui-table.ts"],"sourcesContent":["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@Injectable()\nexport class EuiTableSortService {\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 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 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 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 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 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@Injectable()\nexport class EuiTableSelectableRowService {\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 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 public setPropId(value: string): void {\n this.propId = value;\n }\n\n public getPropId(): string {\n return this.propId;\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 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 // 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 // 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 // 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 // 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 public resetRows(): void {\n this.rows = [];\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 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 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 public unselectAllRows(): void {\n this.selectedRows$.next([]);\n this.isAllRowsSelected$.next(false);\n this.isAllRowsSelected = false;\n\n this.lastSelectedRow = null;\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 public getRows(): any[] {\n return this.rows;\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 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} from '@angular/core';\nimport { BehaviorSubject, combineLatest, Subject, Subscription } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\n\nimport { EuiTemplateDirective } from '@eui/components/directives';\nimport { BaseDirective } 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';\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})\nexport class EuiTableComponent extends BaseDirective implements AfterContentInit, OnInit, OnDestroy, AfterViewInit, OnChanges {\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 @Input() propId = 'id';\n @Input() paginator: EuiPaginatorComponent;\n @Input() filter: EuiTableFilterComponent;\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 @HostBinding('class') string = 'eui-table';\n @HostBinding('class.eui-table__loading') get hasLoading(): boolean {\n return this.loading;\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 @Output() selectedRows = new EventEmitter<any[]>();\n @Output() sortChange = new EventEmitter<SortEvent>();\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 @Input() get loading(): boolean {\n return this._loading;\n }\n set loading(value: BooleanInput) {\n this._loading = coerceBooleanProperty(value);\n }\n private _loading = false;\n @Input()\n get asyncTable(): boolean {\n return this._asyncTable;\n }\n set asyncTable(value: BooleanInput) {\n this._asyncTable = coerceBooleanProperty(value);\n }\n private _asyncTable = false;\n @Input()\n get paginable(): boolean {\n return this._paginable;\n }\n set paginable(value: BooleanInput) {\n this._paginable = coerceBooleanProperty(value);\n }\n private _paginable = false;\n @Input()\n get euiTableResponsive(): boolean {\n return this._euiTableResponsive;\n }\n set euiTableResponsive(value: BooleanInput) {\n this._euiTableResponsive = coerceBooleanProperty(value);\n }\n private _euiTableResponsive = false;\n @Input()\n get euiTableFixedLayout(): boolean {\n return this._euiTableFixedLayout;\n }\n set euiTableFixedLayout(value: BooleanInput) {\n this._euiTableFixedLayout = coerceBooleanProperty(value);\n }\n private _euiTableFixedLayout = false;\n @Input()\n get euiTableDraggable(): boolean {\n return this._euiTableDraggable;\n }\n set euiTableDraggable(value: BooleanInput) {\n this._euiTableDraggable = coerceBooleanProperty(value);\n }\n private _euiTableDraggable = false;\n @Input()\n get euiTableCards(): boolean {\n return this._euiTableCards;\n }\n set euiTableCards(value: BooleanInput) {\n this._euiTableCards = coerceBooleanProperty(value);\n }\n private _euiTableCards = false;\n @Input()\n get euiTableBordered(): boolean {\n return this._euiTableBordered;\n }\n set euiTableBordered(value: BooleanInput) {\n this._euiTableBordered = coerceBooleanProperty(value);\n }\n private _euiTableBordered = false;\n @Input()\n get euiTableCompact(): boolean {\n return this._euiTableCompact;\n }\n set euiTableCompact(value: BooleanInput) {\n this._euiTableCompact = coerceBooleanProperty(value);\n }\n private _euiTableCompact = false;\n @Input()\n get hasStickyHeader(): boolean {\n return this._hasStickyHeader;\n }\n set hasStickyHeader(value: BooleanInput) {\n this._hasStickyHeader = coerceBooleanProperty(value);\n }\n private _hasStickyHeader = false;\n @Input()\n get hasStickyColumns(): boolean {\n return this._hasStickyColumns;\n }\n set hasStickyColumns(value: BooleanInput) {\n this._hasStickyColumns = coerceBooleanProperty(value);\n }\n private _hasStickyColumns = false;\n @Input()\n get isSelectOnlyVisibleRows (): boolean {\n return this._isSelectOnlyVisibleRows ;\n }\n set isSelectOnlyVisibleRows (value: BooleanInput) {\n this._isSelectOnlyVisibleRows = coerceBooleanProperty(value);\n }\n private _isSelectOnlyVisibleRows = false;\n @Input()\n get isColsOrderable (): boolean {\n return this._isColsOrderable ;\n }\n set isColsOrderable (value: BooleanInput) {\n this._isColsOrderable = coerceBooleanProperty(value);\n }\n private _isColsOrderable = false;\n @Input()\n get isHoverable (): boolean {\n return this._isHoverable ;\n }\n set isHoverable (value: BooleanInput) {\n this._isHoverable = coerceBooleanProperty(value);\n }\n private _isHoverable = false;\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 @HostBinding('class')\n get cssClasses(): string {\n return [\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 super.getCssClasses('eui-table'),\n ]\n .join(' ')\n .trim();\n }\n\n constructor(\n private euiTableSortService: EuiTableSortService,\n private cd: ChangeDetectorRef,\n private euiTableSelectableRowService: EuiTableSelectableRowService,\n private elementRef: ElementRef,\n ) {\n super();\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 if (!this.e2eAttr) {\n this.e2eAttr = 'eui-table';\n }\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 public trackByFn(index: number): number {\n return index;\n }\n\n public selectAllRows(): void {\n this.euiTableSelectableRowService.selectAllRows();\n }\n\n public unselectAllRows(): void {\n this.euiTableSelectableRowService.unselectAllRows();\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 public selectRows(rows: any[]): void {\n this.euiTableSelectableRowService.selectRows(rows);\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 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 public setSort(sort: string | null, order: 'asc' | 'desc' | null): void {\n this.euiTableSortService.setSort(sort, order);\n }\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 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 // 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 //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 // 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 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 // 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 // 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 // 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","<thead #theadRef *ngIf=\"headerTemplate\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n</thead>\n<tbody #tbodyRef *ngIf=\"bodyTemplate\">\n <ng-container *ngFor=\"let row of rowsRendered; let i = index; trackBy: trackByFn\">\n <ng-template\n [ngTemplateOutlet]=\"bodyTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: row, index: i + page * pageSize }\">\n </ng-template>\n </ng-container>\n <ng-container *ngIf=\"emptyMessageTemplate && rowsRendered.length === 0\">\n <ng-template [ngTemplateOutlet]=\"emptyMessageTemplate\"></ng-template>\n </ng-container>\n</tbody>\n<tfoot #tfootRef *ngIf=\"footerTemplate\">\n <ng-template [ngTemplateOutlet]=\"footerTemplate\"></ng-template>\n</tfoot>\n","import { Component, OnInit, OnDestroy, Input, HostBinding, ViewChild, ChangeDetectorRef } from '@angular/core';\nimport { Subject, combineLatest } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty, BooleanInput, coerceNumberProperty, NumberInput } from '@angular/cdk/coercion';\nimport { FormArray, FormGroup } from '@angular/forms';\nimport { EuiDropdownComponent } from '@eui/components/eui-dropdown';\n\nimport { EuiTableSortService } from '../services/eui-table-sort.service';\nimport { MultisortParam } from '../models/multi-sort.model';\n\n@Component({\n // eslint-disable-next-line\n selector: 'th[sortable]',\n templateUrl: './eui-table-sortable-col.component.html',\n})\nexport class EuiTableSortableColComponent implements OnInit, OnDestroy {\n @ViewChild(EuiDropdownComponent) dropdown: EuiDropdownComponent;\n @Input() sortOn: string;\n @Input() sortOrder: 'asc' | 'desc' = 'desc';\n\n public order: 'asc' | 'desc' | null = 'desc';\n multisortParams: MultisortParam[] = [];\n currentMultiSortPosition = 0;\n error = false;\n form: FormGroup;\n\n @Input()\n get defaultMultiOrder(): number {\n return this._defaultMultiOrder;\n }\n set defaultMultiOrder(value: NumberInput) {\n this._defaultMultiOrder = coerceNumberProperty(value);\n }\n private _defaultMultiOrder = null;\n\n @Input()\n get defaultOrder(): boolean {\n return this._defaultOrder;\n }\n set defaultOrder(value: BooleanInput) {\n this._defaultOrder = coerceBooleanProperty(value);\n }\n private _defaultOrder = false;\n\n @Input()\n get sortDisabled(): boolean {\n return this._sortDisabled;\n }\n set sortDisabled(value: BooleanInput) {\n this._sortDisabled = coerceBooleanProperty(value);\n }\n private _sortDisabled = false;\n\n @Input()\n get isMultiSortable(): boolean {\n return this._isMultiSortable;\n }\n set isMultiSortable(value: BooleanInput) {\n this._isMultiSortable = coerceBooleanProperty(value);\n }\n private _isMultiSortable = false;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\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(\n private euiTableSortService: EuiTableSortService,\n private cd: ChangeDetectorRef,\n ) {}\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 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 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","<div class=\"eui-table__sortable-col-content\">\n <ng-content></ng-content>\n <button type=\"button\" *ngIf=\"!sortDisabled\" euiSizeS euiButton euiIconButton euiBasicButton class=\"eui-table__sortable-icon-button\" (click)=\"click()\">\n <eui-icon-svg\n *ngIf=\"!order\"\n icon=\"eui-swap-vertical\"\n fillColor=\"grey-50\"\n [aria-label]=\"'eui.euitable.NO-SORTING-ICON' | translate\"></eui-icon-svg>\n <eui-icon-svg\n *ngIf=\"order === 'asc'\"\n icon=\"eui-arrow-up\"\n fillColor=\"primary-100\"\n [aria-label]=\"'eui.euitable.ASCENDING-ICON' | translate\"></eui-icon-svg>\n <eui-icon-svg\n *ngIf=\"order === 'desc'\"\n icon=\"eui-arrow-down\"\n fillColor=\"primary-100\"\n [aria-label]=\"'eui.euitable.DESCENDING-ICON' | translate\"></eui-icon-svg>\n </button>\n <ng-template *ngIf=\"isMultiSortable\" [ngTemplateOutlet]=\"sortDropdown\"></ng-template>\n</div>\n<ng-template #sortDropdown let-index>\n <eui-dropdown [isClosedOnClickInside]=\"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 <form [formGroup]=\"form\" *ngIf=\"form\">\n <ng-container formArrayName=\"columns\">\n <ng-container *ngFor=\"let columnForm of columns.controls; let i = 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 <option *ngFor=\"let column of multisortParams\" [value]=\"column.name\">\n {{ column.name }}\n </option>\n </select>\n <button type=\"button\"\n *ngIf=\"!getOrderByIndex(i)\"\n euiSizeS\n euiSecondary\n euiButton\n euiIconButton\n euiBasicButton\n (click)=\"onClickMultisortOrder(i + 1, 'asc')\">\n <eui-icon-svg\n icon=\"eui-swap-vertical\"\n [aria-label]=\"'eui.euitable.NO-SORTING-ICON' | translate\"></eui-icon-svg>\n </button>\n <button type=\"button\"\n *ngIf=\"getOrderByIndex(i) === 'asc'\"\n euiSizeS\n euiPrimary\n euiButton\n euiIconButton\n euiBasicButton\n (click)=\"onClickMultisortOrder(i + 1, 'desc')\">\n <eui-icon-svg icon=\"eui-arrow-up\" [aria-label]=\"'eui.euitable.ASCENDING-ICON' | translate\"></eui-icon-svg>\n </button>\n <button type=\"button\"\n *ngIf=\"getOrderByIndex(i) === 'desc'\"\n euiSizeS\n euiPrimary\n euiButton\n euiIconButton\n euiBasicButton\n (click)=\"onClickMultisortOrder(i + 1, null)\">\n <eui-icon-svg\n icon=\"eui-arrow-down\"\n [aria-label]=\"'eui.euitable.DESCENDING-ICON' | translate\"></eui-icon-svg>\n </button>\n </div>\n </ng-container>\n </ng-container>\n </form>\n <!-- Footer-->\n <p class=\"eui-u-mt-none eui-u-mb-none eui-u-ml-s\" *ngIf=\"error\">\n <eui-feedback-message euiDanger>{{ 'eui.euitable.WRONG-SORT-PARAMS' | translate }}</eui-feedback-message>\n </p>\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 {\n Component,\n OnInit,\n Input,\n Output,\n EventEmitter,\n OnDestroy,\n HostBinding,\n ViewChild,\n ElementRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { FormGroup, FormControl } from '@angular/forms';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\nimport { Subject, BehaviorSubject } from 'rxjs';\nimport { takeUntil, debounceTime, distinctUntilChanged } from 'rxjs/operators';\n\nimport { BaseDirective } from '@eui/components/shared';\n@Component({\n selector: 'eui-table-filter',\n templateUrl: './eui-table-filter.component.html',\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiTableFilterComponent extends BaseDirective implements OnInit, OnDestroy {\n @Input() placeholder: string;\n\n @Output() filterChange = new EventEmitter<string>();\n\n @ViewChild('filterInput', { read: ElementRef }) filterInput: ElementRef<HTMLInputElement>;\n\n public filter$: BehaviorSubject<string | null> = new BehaviorSubject(null);\n public form: FormGroup;\n\n @Input()\n get autoSearch(): boolean {\n return this._autoSearch;\n }\n set autoSearch(value: BooleanInput) {\n this._autoSearch = coerceBooleanProperty(value);\n }\n private _autoSearch = false;\n\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n @HostBinding('class')\n get cssClasses(): string {\n return [super.getCssClasses('eui-table__filter')].join(' ').trim();\n }\n\n constructor() {\n super();\n }\n\n ngOnInit(): void {\n this.form = new FormGroup({\n filter: new FormControl<string>(null),\n });\n\n this.form\n .get('filter')\n .valueChanges.pipe(debounceTime(500), distinctUntilChanged(), takeUntil(this.destroy$))\n .subscribe((value) => {\n this.setFilter(value);\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n public setFilter(value: string): void {\n this.filter$.next(value);\n this.filterChange.emit(value);\n this.form.get('filter').setValue(value);\n }\n\n 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 <input\n #filterInput\n euiClearable\n euiInputText\n class=\"eui-table__filter-input\"\n formControlName=\"filter\"\n [attr.aria-label]=\"placeholder ? placeholder : 'Filter Input Field'\"\n placeholder=\"{{ placeholder }}\" />\n <eui-icon-svg class=\"eui-table__filter-search-icon\" icon=\"eui-search\" set=\"eui\" size=\"m\" fillColor=\"grey-35\"></eui-icon-svg>\n </form>\n</div>\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'euiTableHighlightFilter',\n})\nexport class EuiTableHighlightFilterPipe implements PipeTransform {\n transform(value: string, strFilter: string, className = 'eui-table--highlighted'): string {\n if (strFilter && strFilter.length > 0) {\n const regex = new RegExp('(' + strFilter + ')', 'gi');\n return value.toString().replace(regex, '<span class=\"' + className + '\">$1</span>');\n } else {\n return value;\n }\n }\n}\n","import { Component, OnInit, Input, OnDestroy, OnChanges, HostBinding, HostListener } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\n\nimport { EuiTableSelectableRowService } from '../services/eui-table-selectable-row.service';\n\n@Component({\n // eslint-disable-next-line\n selector: 'tr[isSelectable]',\n templateUrl: './eui-table-selectable-row.component.html',\n})\nexport class EuiTableSelectableRowComponent implements OnInit, OnDestroy, OnChanges {\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 @Input()\n get isChecked(): boolean {\n return this._isChecked;\n }\n set isChecked(value: BooleanInput) {\n this._isChecked = coerceBooleanProperty(value);\n }\n private _isChecked = false;\n\n @Input()\n get isKeyboardSelectable(): boolean {\n return this._isKeyboardSelectable;\n }\n set isKeyboardSelectable(value: BooleanInput) {\n this._isKeyboardSelectable = coerceBooleanProperty(value);\n }\n private _isKeyboardSelectable = false;\n\n private propId = 'id';\n private destroy$: Subject<boolean> = new Subject<boolean>();\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 @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 // 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","<td *ngIf=\"isSelectable\" class=\"eui-table__cell-select\">\n <div class=\"eui-table__cell-select-checkbox-container\">\n <input\n *ngIf=\"isChecked\"\n aria-label=\"default checkbox checked\"\n euiInputCheckBox\n checked=\"true\"\n (click)=\"toggleCheckedState($event)\" />\n <input\n *ngIf=\"!isChecked\"\n aria-label=\"default checkbox unchecked\"\n euiInputCheckBox\n checked=\"false\"\n (click)=\"toggleCheckedState($event)\" />\n </div>\n</td>\n<ng-content></ng-content>\n","import { Component, OnInit, Input, OnDestroy, ViewChild, ElementRef } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { EuiTableSelectableRowService } from '../services/eui-table-selectable-row.service';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\n\n@Component({\n // eslint-disable-next-line\n selector: 'tr[isSelectableHeader]',\n templateUrl: './eui-table-selectable-header.component.html',\n})\nexport class EuiTableSelectableHeaderComponent implements OnInit, OnDestroy {\n @ViewChild('checkbox') checkbox: ElementRef<HTMLInputElement>;\n\n public isCheckedIndeterminate = false;\n\n @Input()\n get isSelectableHeader(): boolean {\n return this._isSelectableHeader;\n }\n set isSelectableHeader(value: BooleanInput) {\n this._isSelectableHeader = coerceBooleanProperty(value);\n }\n private _isSelectableHeader = true;\n @Input()\n get isChecked(): boolean {\n return this._isChecked;\n }\n set isChecked(value: BooleanInput) {\n this._isChecked = coerceBooleanProperty(value);\n }\n private _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 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","<th *ngIf=\"isSelectableHeader\" class=\"eui-table__cell-select\">\n <div class=\"eui-table__cell-select-checkbox-container\">\n <input\n *ngIf=\"!isChecked && !isCheckedIndeterminate\"\n aria-label=\"Unchecked\"\n euiInputCheckBox\n checked=\"false\"\n (click)=\"toggleCheckedState(true)\" />\n <input\n *ngIf=\"isCheckedIndeterminate\"\n aria-label=\"Indeterminate\"\n euiInputCheckBox\n indeterminate\n (click)=\"toggleCheckedState(false)\" />\n <input\n *ngIf=\"isChecked && !isCheckedIndeterminate\"\n aria-label=\"Checked\"\n euiInputCheckBox\n checked=\"true\"\n (click)=\"toggleCheckedState(false)\" />\n </div>\n</th>\n<ng-content></ng-content>\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line\n selector: 'tr[euiTableExpandableRow]',\n templateUrl: './eui-table-expandable-row.component.html',\n})\nexport class EuiTableExpandableRowComponent {\n @HostBinding('class') string = 'eui-table-expandable-row';\n}\n","<ng-content></ng-content>\n","import { Directive, HostBinding } from '@angular/core';\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 { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\n\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiListModule } from '@eui/components/eui-list';\nimport { EuiDropdownModule } from '@eui/components/eui-dropdown';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiTemplateDirectiveModule } from '@eui/components/directives';\nimport { EuiInputTextModule } from '@eui/components/eui-input-text';\nimport { EuiInputCheckboxModule } from '@eui/components/eui-input-checkbox';\nimport { EuiSelectModule } from '@eui/components/eui-select';\nimport { EuiFeedbackMessageModule } from '@eui/components/eui-feedback-message';\n\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';\nimport { TranslateModule } from '@ngx-translate/core';\n\n@NgModule({\n imports: [\n CommonModule,\n TranslateModule,\n FormsModule,\n EuiIconModule,\n EuiListModule,\n EuiDropdownModule,\n EuiButtonModule,\n ReactiveFormsModule,\n EuiTemplateDirectiveModule,\n EuiInputTextModule,\n EuiInputCheckboxModule,\n EuiFeedbackMessageModule,\n EuiSelectModule,\n ],\n declarations: [\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 EuiTemplateDirectiveModule,\n EuiTableStickyColumnDirective,\n ],\n})\nexport class EuiTableModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.EuiTableSortService","i2.EuiTableSelectableRowService","i3","i1","i2","i1.EuiTableSelectableRowService"],"mappings":"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"}