@ember-eui/core 16.0.1 → 16.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (126) hide show
  1. package/declarations/-private/associate-form-row-label.d.ts +9 -0
  2. package/declarations/-private/associate-form-row-label.d.ts.map +1 -0
  3. package/declarations/-private/vis-colors.d.ts +8 -0
  4. package/declarations/-private/vis-colors.d.ts.map +1 -0
  5. package/declarations/components/eui-aspect-ratio.d.ts +5 -0
  6. package/declarations/components/eui-aspect-ratio.d.ts.map +1 -1
  7. package/declarations/components/eui-avatar.d.ts +6 -0
  8. package/declarations/components/eui-avatar.d.ts.map +1 -1
  9. package/declarations/components/eui-basic-table.d.ts.map +1 -1
  10. package/declarations/components/eui-color-picker.d.ts +3 -0
  11. package/declarations/components/eui-color-picker.d.ts.map +1 -1
  12. package/declarations/components/eui-color-stops/thumb.d.ts +3 -1
  13. package/declarations/components/eui-color-stops/thumb.d.ts.map +1 -1
  14. package/declarations/components/eui-combo-box.d.ts +2 -0
  15. package/declarations/components/eui-combo-box.d.ts.map +1 -1
  16. package/declarations/components/eui-data-grid/body.d.ts +2 -0
  17. package/declarations/components/eui-data-grid/body.d.ts.map +1 -1
  18. package/declarations/components/eui-data-grid.d.ts.map +1 -1
  19. package/declarations/components/eui-dual-range.d.ts +2 -0
  20. package/declarations/components/eui-dual-range.d.ts.map +1 -1
  21. package/declarations/components/eui-focus-trap.d.ts +1 -0
  22. package/declarations/components/eui-focus-trap.d.ts.map +1 -1
  23. package/declarations/components/eui-global-toast-list.d.ts +8 -1
  24. package/declarations/components/eui-global-toast-list.d.ts.map +1 -1
  25. package/declarations/components/eui-markdown-editor-drop-zone.d.ts.map +1 -1
  26. package/declarations/components/eui-markdown-editor.d.ts.map +1 -1
  27. package/declarations/components/eui-markdown-format.d.ts +2 -0
  28. package/declarations/components/eui-markdown-format.d.ts.map +1 -1
  29. package/declarations/components/eui-overlay-mask.d.ts +5 -2
  30. package/declarations/components/eui-overlay-mask.d.ts.map +1 -1
  31. package/declarations/components/eui-popover.d.ts +5 -1
  32. package/declarations/components/eui-popover.d.ts.map +1 -1
  33. package/declarations/components/eui-range.d.ts +3 -0
  34. package/declarations/components/eui-range.d.ts.map +1 -1
  35. package/declarations/components/eui-saturation.d.ts +3 -1
  36. package/declarations/components/eui-saturation.d.ts.map +1 -1
  37. package/declarations/components/eui-search-bar/field-value-selection-filter.d.ts.map +1 -1
  38. package/declarations/components/eui-text-color.d.ts +6 -0
  39. package/declarations/components/eui-text-color.d.ts.map +1 -1
  40. package/declarations/components/eui-text.d.ts.map +1 -1
  41. package/declarations/components/eui-token.d.ts +11 -0
  42. package/declarations/components/eui-token.d.ts.map +1 -1
  43. package/declarations/components/eui-tool-tip.d.ts +1 -2
  44. package/declarations/components/eui-tool-tip.d.ts.map +1 -1
  45. package/declarations/modifiers/outside-click-detector.d.ts +3 -0
  46. package/declarations/modifiers/outside-click-detector.d.ts.map +1 -1
  47. package/declarations/modifiers/resize-observer.d.ts +3 -0
  48. package/declarations/modifiers/resize-observer.d.ts.map +1 -1
  49. package/declarations/utils/common.d.ts +42 -0
  50. package/declarations/utils/common.d.ts.map +1 -0
  51. package/declarations/utils/css-mappings/eui-avatar.d.ts +1 -1
  52. package/declarations/utils/css-mappings/eui-text.d.ts +1 -0
  53. package/declarations/utils/css-mappings/eui-text.d.ts.map +1 -1
  54. package/declarations/utils/eui/content-blocks.d.ts +14 -0
  55. package/declarations/utils/eui/content-blocks.d.ts.map +1 -0
  56. package/declarations/utils/eui/flyout-manager/reducer.d.ts.map +1 -1
  57. package/declarations/utils/eui/styles.d.ts +5 -0
  58. package/declarations/utils/eui/styles.d.ts.map +1 -1
  59. package/declarations/utils/retain-document-listener.d.ts +8 -0
  60. package/declarations/utils/retain-document-listener.d.ts.map +1 -0
  61. package/declarations/utils/token-map.d.ts +11 -0
  62. package/declarations/utils/token-map.d.ts.map +1 -0
  63. package/declarations/utils/transition.d.ts +1 -1
  64. package/declarations/utils/transition.d.ts.map +1 -1
  65. package/dist/components/eui-aspect-ratio.js +20 -5
  66. package/dist/components/eui-aspect-ratio.js.map +1 -1
  67. package/dist/components/eui-avatar.js +16 -4
  68. package/dist/components/eui-avatar.js.map +1 -1
  69. package/dist/components/eui-basic-table.js +4 -2
  70. package/dist/components/eui-basic-table.js.map +1 -1
  71. package/dist/components/eui-color-picker.js +8 -2
  72. package/dist/components/eui-color-picker.js.map +1 -1
  73. package/dist/components/eui-color-stops/thumb.js +17 -5
  74. package/dist/components/eui-color-stops/thumb.js.map +1 -1
  75. package/dist/components/eui-combo-box.js +16 -0
  76. package/dist/components/eui-combo-box.js.map +1 -1
  77. package/dist/components/eui-data-grid/body.js +21 -1
  78. package/dist/components/eui-data-grid/body.js.map +1 -1
  79. package/dist/components/eui-data-grid.js +6 -4
  80. package/dist/components/eui-data-grid.js.map +1 -1
  81. package/dist/components/eui-dual-range.js +5 -2
  82. package/dist/components/eui-dual-range.js.map +1 -1
  83. package/dist/components/eui-focus-trap.js +4 -1
  84. package/dist/components/eui-focus-trap.js.map +1 -1
  85. package/dist/components/eui-global-toast-list.js +33 -5
  86. package/dist/components/eui-global-toast-list.js.map +1 -1
  87. package/dist/components/eui-markdown-editor-drop-zone.js +2 -0
  88. package/dist/components/eui-markdown-editor-drop-zone.js.map +1 -1
  89. package/dist/components/eui-markdown-editor.js +3 -1
  90. package/dist/components/eui-markdown-editor.js.map +1 -1
  91. package/dist/components/eui-markdown-format.js +9 -3
  92. package/dist/components/eui-markdown-format.js.map +1 -1
  93. package/dist/components/eui-overlay-mask.js +2 -0
  94. package/dist/components/eui-overlay-mask.js.map +1 -1
  95. package/dist/components/eui-popover.js +22 -2
  96. package/dist/components/eui-popover.js.map +1 -1
  97. package/dist/components/eui-range.js +10 -3
  98. package/dist/components/eui-range.js.map +1 -1
  99. package/dist/components/eui-saturation.js +16 -4
  100. package/dist/components/eui-saturation.js.map +1 -1
  101. package/dist/components/eui-search-bar/field-value-selection-filter.js +8 -3
  102. package/dist/components/eui-search-bar/field-value-selection-filter.js.map +1 -1
  103. package/dist/components/eui-text-color.js +20 -6
  104. package/dist/components/eui-text-color.js.map +1 -1
  105. package/dist/components/eui-text.js +6 -3
  106. package/dist/components/eui-text.js.map +1 -1
  107. package/dist/components/eui-token.js +31 -17
  108. package/dist/components/eui-token.js.map +1 -1
  109. package/dist/components/eui-tool-tip.js +9 -17
  110. package/dist/components/eui-tool-tip.js.map +1 -1
  111. package/dist/icons-DCTZo11a.js.map +1 -1
  112. package/dist/modifiers/outside-click-detector.js +12 -2
  113. package/dist/modifiers/outside-click-detector.js.map +1 -1
  114. package/dist/modifiers/resize-observer.js +19 -4
  115. package/dist/modifiers/resize-observer.js.map +1 -1
  116. package/dist/utils/eui/flyout-manager/reducer.js +7 -1
  117. package/dist/utils/eui/flyout-manager/reducer.js.map +1 -1
  118. package/dist/utils/eui/styles.js +5 -0
  119. package/dist/utils/eui/styles.js.map +1 -1
  120. package/dist/utils/retain-document-listener.js +30 -0
  121. package/dist/utils/retain-document-listener.js.map +1 -0
  122. package/dist/utils/transition.js +8 -3
  123. package/dist/utils/transition.js.map +1 -1
  124. package/package.json +2 -2
  125. package/declarations/modifiers/open-collapsible-nav.d.ts +0 -9
  126. package/declarations/modifiers/open-collapsible-nav.d.ts.map +0 -1
@@ -1,3 +1,4 @@
1
+ import { registerDestructor } from '@ember/destroyable';
1
2
  import Component from '@glimmer/component';
2
3
  import { tracked, cached } from '@glimmer/tracking';
3
4
  import { fn } from '@ember/helper';
@@ -10,6 +11,7 @@ import { getItemId, getAlignForDataType, getRowProps, getRendererForDataType, sp
10
11
  import TableNode from '../-private/table-node.js';
11
12
  import { euiTablePaginationDefaults } from '../-private/table-pagination-defaults.js';
12
13
  import TabularCopyMarker from '../-private/tabular-copy-marker.js';
14
+ import { retainDocumentListener } from '../utils/retain-document-listener.js';
13
15
  import { onTabularCopy } from '../utils/data-grid/tabular-copy.js';
14
16
  import { randomId } from '../-private/random-id.js';
15
17
  import { getEuiThemeContext } from '../utils/emotion/consume.js';
@@ -74,8 +76,8 @@ class EuiBasicTable extends Component {
74
76
  constructor(owner, args) {
75
77
  super(owner, args);
76
78
  // tabs/newlines for copied selections (upstream `OverrideCopiedTabularContent`
77
- // registers it on the document; static handler: deduped)
78
- document.addEventListener('copy', onTabularCopy);
79
+ // registers it on the document; static handler, ref-counted across instances)
80
+ registerDestructor(this, retainDocumentListener('copy', onTabularCopy));
79
81
  }
80
82
  /** Uncontrolled selection, `null` until the user (or `initialSelected`) sets it. */
81
83
  static {
@@ -1 +1 @@
1
- {"version":3,"file":"eui-basic-table.js","sources":["../../src/components/eui-basic-table.gts"],"sourcesContent":["import Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { next } from '@ember/runloop';\nimport { service } from '@ember/service';\n\nimport { modifier } from 'ember-modifier';\n\nimport {\n elementProps,\n getAlignForDataType,\n getCellProps,\n getItemId,\n getRendererForDataType,\n getRowProps,\n splitCellProps,\n columnCellAttributes\n} from '../-private/basic-table.ts';\nimport TableNode from '../-private/table-node.gts';\nimport { euiTablePaginationDefaults } from '../-private/table-pagination-defaults.ts';\nimport TabularCopyMarker from '../-private/tabular-copy-marker.gts';\nimport { onTabularCopy } from '../utils/data-grid/tabular-copy.ts';\nimport { randomId } from '../-private/random-id.ts';\nimport { getEuiThemeContext } from '../utils/emotion/consume.ts';\nimport { euiClass, useEuiBorealisStyles } from '../utils/eui/styles.ts';\nimport {\n euiBasicTableBodyLoading,\n euiBasicTableWrapperPanelledStyles,\n safariLoadingWorkaround,\n euiTableCaptionStyles\n} from '../utils/eui/styles.generated.ts';\nimport { get } from '../utils/eui/search-bar/predicate.ts';\nimport { SortDirection } from '../utils/eui/sort.ts';\nimport CollapsedItemActions from './eui-basic-table/collapsed-item-actions.gts';\nimport ExpandedItemActions from './eui-basic-table/expanded-item-actions.gts';\nimport PaginationBar from './eui-basic-table/pagination-bar.gts';\nimport EuiCheckbox from './eui-checkbox.gts';\nimport EuiDelayRender from './eui-delay-render.gts';\nimport EuiIcon from './eui-icon.gts';\nimport {\n euiScreenReaderOnlyClass,\n euiScreenReaderOnlyCss\n} from './eui-screen-reader-only.gts';\nimport EuiTable from './eui-table.gts';\nimport EuiTableBody from './eui-table-body.gts';\nimport EuiTableFooter from './eui-table-footer.gts';\nimport EuiTableFooterCell from './eui-table-footer-cell.gts';\nimport EuiTableHeader from './eui-table-header.gts';\nimport EuiTableHeaderCell from './eui-table-header-cell.gts';\nimport EuiTableHeaderCellCheckbox from './eui-table-header-cell-checkbox.gts';\nimport EuiTableHeaderMobile from './eui-table-header-mobile.gts';\nimport EuiTableRow from './eui-table-row.gts';\nimport EuiTableRowCell from './eui-table-row-cell.gts';\nimport EuiTableRowCellCheckbox from './eui-table-row-cell-checkbox.gts';\nimport EuiTableSortMobile from './eui-table-sort-mobile.gts';\nimport EuiToolTip from './eui-tool-tip.gts';\n\nimport type Owner from '@ember/owner';\nimport type {\n Action,\n CellPropsCallback,\n Criteria,\n CriteriaWithPagination,\n EuiBasicTableColumn,\n EuiTableActionsColumnType,\n EuiTableCellArgs,\n EuiTableCellComponent,\n EuiTableColumnName,\n EuiTableComputedColumnType,\n EuiTableContent,\n EuiTableElementProps,\n EuiTableVerticalAlign,\n EuiTableFieldDataColumnType,\n EuiTableSelectionType,\n EuiTableSortingType,\n ItemId,\n ItemIdResolved,\n Pagination,\n RowPropsCallback\n} from '../-private/basic-table.ts';\nimport type {\n TableAlignment,\n TableMobileOptions,\n TableResponsiveBreakpoint,\n TableTruncateText\n} from '../-private/table.ts';\nimport type { EuiTableStickyCellOptions } from '../utils/eui/table.ts';\nimport type { EuiTableHeaderCellTooltipProps } from './eui-table-header-cell.gts';\nimport type EuiI18n from '../services/eui-i18n';\nimport type { EuiCss } from '../utils/eui/styles.ts';\nimport type { EuiTableSortMobileItemOption } from './eui-table-sort-mobile.gts';\nimport type { EuiTableRowCellStyle } from './eui-table-row-cell.gts';\n\nexport type {\n Action,\n CellPropsCallback,\n Criteria,\n CriteriaWithPagination,\n CustomItemAction,\n DefaultItemAction,\n EuiBasicTableColumn,\n EuiTableActionsColumnType,\n EuiTableCellArgs,\n EuiTableCellComponentArgs,\n EuiTableColumnName,\n EuiTableColumnNameTooltipProps,\n EuiTableComputedColumnType,\n EuiTableContent,\n EuiTableDataType,\n EuiTableFieldDataColumnType,\n EuiTableFooterProps,\n EuiTableNode,\n EuiTableSelectionType,\n EuiTableSortingType,\n EuiTableVerticalAlign,\n ItemId,\n Pagination,\n RowPropsCallback\n} from '../-private/basic-table.ts';\nexport { getItemId } from '../-private/basic-table.ts';\nexport { useEuiBasicTablePanelProps } from './eui-basic-table-panel.gts';\nexport type { EuiBasicTablePanelProps } from './eui-basic-table-panel.gts';\n\n/**\n * A table built from `@items` and `@columns` (field, computed and actions\n * columns), with optional sorting, pagination, selection and expanded\n * rows. It renders the state you pass and calls `@onChange` with the new\n * `{ page, sort }` criteria; use `EuiInMemoryTable` to let the table own\n * that state.\n */\nexport interface EuiBasicTableSignature<T extends object> {\n Element: HTMLDivElement;\n Args: {\n /** The rows' items. */\n items: T[];\n /**\n * The columns: field data (`{ field, name, dataType, render,\n * component, sortable, … }`), computed (`{ render | component, name }`)\n * and actions (`{ actions, name }`).\n */\n columns: Array<EuiBasicTableColumn<T>>;\n /** How to get a unique id of an item (a key or a function), for selection and expanded rows. */\n itemId?: ItemId<T>;\n /**\n * Expanded rows by item id: a text, or any truthy value rendered by\n * the `<:expandedRow>` block.\n */\n itemIdToExpandedRowMap?: Record<string, unknown>;\n /**\n * Props of every row cell, or a function of the item and column:\n * `EuiTableRowCell` arguments (`align`, `textOnly`, `truncateText`,\n * `valign`, `width`, `mobileOptions`, …) and attributes/listeners for\n * the cell element.\n */\n cellProps?: EuiTableElementProps | CellPropsCallback<T>;\n /** Attributes of every row (`onClick` makes rows clickable), or a function of the item. */\n rowProps?: EuiTableElementProps | RowPropsCallback<T>;\n /** Error message shown instead of the rows. */\n error?: string;\n /** Describes the table for screen readers. Defaults to \"Data table\". */\n tableCaption?: string;\n /** The `field` of the column whose cells are the rows' headers (`<th scope=\"row\">`). */\n rowHeader?: string;\n /** Shows a loading line above the rows. */\n loading?: boolean;\n /**\n * Panelled look of the table and its pagination, for tables outside\n * EUI containers (like `EuiPanel` or `EuiFlyout`).\n */\n panelled?: boolean;\n /** Message when there are no items. Defaults to \"No items found\". */\n noItemsMessage?: string;\n /**\n * Called with the new `{ page, sort }` criteria when the user pages or\n * sorts (required with `@pagination` or `@sorting`).\n */\n onChange?: (criteria: Criteria<T> & CriteriaWithPagination<T>) => void;\n /** `{ pageIndex, pageSize, totalItemCount, pageSizeOptions, showPerPageOptions }`. */\n pagination?: Pagination;\n /** `{ onSelectionChange, selectable, selectableMessage, initialSelected, selected }`. */\n selection?: EuiTableSelectionType<T>;\n /** `{ sort: { field, direction }, enableAllColumns, readOnly }`. */\n sorting?: EuiTableSortingType<T>;\n /** `'fixed'` or `'auto'`. Defaults to `'fixed'`. */\n tableLayout?: 'fixed' | 'auto';\n /** Smaller text and padding. */\n compressed?: boolean;\n /** Breakpoint below which rows become cards (`true` always, `false` never). Defaults to `'m'`. */\n responsiveBreakpoint?: TableResponsiveBreakpoint;\n /** The table's plain background. Defaults to `true`. */\n hasBackground?: boolean;\n /** Lets the table scroll inline (upstream beta). */\n scrollableInline?: boolean;\n /**\n * Keeps the header at the top of the viewport while scrolling a long\n * table (not in the cards layout). Upstream beta.\n */\n stickyHeader?: boolean;\n /**\n * Shows a horizontal scrollbar sticking to the bottom of the viewport\n * while the table's own one is out of view. Requires\n * `@scrollableInline`. Upstream beta.\n */\n stickyScrollbar?: boolean;\n /** Styles composed last into the root `<div>`'s class (upstream `css`). */\n css?: EuiCss;\n /** @private Whether the caller's `<:expandedRow>` block exists (when forwarding it). */\n hasExpandedRowBlock?: boolean;\n /** @private Whether the caller's `<:noItemsMessage>` block exists (when forwarding it). */\n hasNoItemsBlock?: boolean;\n };\n Blocks: {\n /** Content of an expanded row; yields the item, its id and its map value. */\n expandedRow: [item: T, itemId: ItemIdResolved, value: unknown];\n /** Content shown when there are no items (instead of `@noItemsMessage`). */\n noItemsMessage: [];\n };\n}\n\ninterface SortOptions {\n isSorted?: boolean;\n isSortAscending?: boolean;\n onSort?: () => void;\n readOnly?: boolean;\n}\n\ninterface HeaderModel {\n key: string;\n name?: EuiTableColumnName;\n sticky?: EuiTableStickyCellOptions;\n tooltipProps?: EuiTableHeaderCellTooltipProps;\n width?: string;\n minWidth?: string;\n maxWidth?: string;\n description?: string;\n mobileOptions?: TableMobileOptions;\n align: TableAlignment;\n testSubj?: string;\n sorting: SortOptions;\n}\n\ninterface CellModel<T extends object> {\n key: string;\n column: EuiBasicTableColumn<T>;\n isActions: boolean;\n content?: EuiTableContent;\n component?: EuiTableCellComponent<T>;\n value?: unknown;\n align?: TableAlignment;\n isExpander?: boolean;\n textOnly?: boolean;\n truncateText?: TableTruncateText;\n valign?: EuiTableVerticalAlign;\n setScopeRow?: boolean;\n width?: string | number;\n minWidth?: string | number;\n maxWidth?: string | number;\n hasActionsArg?: boolean | 'custom';\n showOnHover?: boolean;\n sticky?: EuiTableStickyCellOptions;\n mobileOptions?: TableMobileOptions;\n mobileContent?: EuiTableContent;\n mobileComponent?: EuiTableCellComponent<T>;\n hasMobile?: boolean;\n style?: EuiTableRowCellStyle;\n attributes?: EuiTableElementProps;\n // actions cells\n actions?: Array<Action<T>>;\n collapsed?: boolean;\n hasActions?: boolean | 'custom';\n}\n\ninterface RowModel<T extends object> {\n key: string;\n item: T;\n itemId: ItemIdResolved;\n rowIndex: number;\n displayedRowIndex: number;\n selected: boolean;\n isSelectable: boolean;\n checkbox?: {\n id: string;\n disabled: boolean;\n label: string;\n testSubj: string;\n };\n hasActions: boolean | 'custom';\n isExpandable: boolean;\n expandedRowId?: string;\n expandedValue?: unknown;\n expandedText?: EuiTableContent;\n expandedRowColSpan: number;\n rowAttributes: EuiTableElementProps;\n onClick?: (event: Event) => void;\n cells: CellModel<T>[];\n}\n\ninterface FooterModel {\n key: string;\n align?: TableAlignment;\n sticky?: EuiTableStickyCellOptions;\n content?: EuiTableContent;\n}\n\nconst STICKY_END: EuiTableStickyCellOptions = { side: 'end' };\n\nconst SAFARI_LOADING_WORKAROUND = safariLoadingWorkaround;\n\n/** Stable panelled factories per breakpoint (memoized by `useEuiBorealisStyles`). */\nconst PANELLED = new Map<unknown, ReturnType<typeof euiBasicTableWrapperPanelledStyles>>();\nfunction panelledFactory(breakpoint: TableResponsiveBreakpoint | undefined) {\n let factory = PANELLED.get(breakpoint);\n if (!factory) {\n factory = euiBasicTableWrapperPanelledStyles(breakpoint as never);\n PANELLED.set(breakpoint, factory);\n }\n return factory;\n}\n\nexport default class EuiBasicTable<T extends object = any> extends Component<\n EuiBasicTableSignature<T>\n> {\n @service declare euiI18n: EuiI18n;\n\n tableId = `__table${randomId()}`;\n selectAllId = `_selection_column-checkbox${randomId()}`;\n\n constructor(owner: Owner, args: EuiBasicTableSignature<T>['Args']) {\n super(owner, args);\n // tabs/newlines for copied selections (upstream `OverrideCopiedTabularContent`\n // registers it on the document; static handler: deduped)\n document.addEventListener('copy', onTabularCopy);\n }\n\n /** Uncontrolled selection, `null` until the user (or `initialSelected`) sets it. */\n @tracked localSelection: T[] | null = null;\n\n get pageSize(): number {\n return (\n this.args.pagination?.pageSize ?? euiTablePaginationDefaults(this).itemsPerPage\n );\n }\n\n get isSelectionControlled(): boolean {\n return !!this.args.selection?.selected;\n }\n\n /** Upstream `getDerivedStateFromProps` + `getInitialSelection`. */\n @cached\n get selectionState(): { selection: T[]; removed: boolean } {\n const { selection, itemId, items } = this.args;\n if (!selection) {\n return { selection: [], removed: false };\n }\n let unfiltered: T[];\n if (selection.selected) {\n unfiltered = selection.selected;\n } else if (this.localSelection) {\n unfiltered = this.localSelection;\n } else if (selection.initialSelected && items.length > 0) {\n unfiltered = selection.initialSelected;\n } else {\n unfiltered = [];\n }\n // Ensure we're not including selections that aren't in the\n // current `items` array (affected by pagination)\n const ids = new Set(items.map((item) => getItemId(item, itemId)));\n const filtered = unfiltered.filter((selected) =>\n ids.has(getItemId(selected, itemId))\n );\n return {\n selection: filtered,\n removed: filtered.length !== unfiltered.length\n };\n }\n\n get selection(): T[] {\n return this.selectionState.selection;\n }\n\n /** Reports selections dropped because their items left `@items`. */\n syncSelection = modifier(\n (_element: Element, [state]: [{ selection: T[]; removed: boolean }]) => {\n if (!state.removed) return;\n next(() => {\n if (this.isDestroying || this.isDestroyed) return;\n if (!this.isSelectionControlled) this.localSelection = state.selection;\n this.args.selection?.onSelectionChange?.(state.selection);\n });\n }\n );\n\n buildCriteria(): Criteria<T> {\n const criteria: Criteria<T> = {};\n if (this.args.pagination) {\n criteria.page = {\n index: this.args.pagination.pageIndex,\n size: this.pageSize\n };\n }\n if (this.args.sorting) {\n criteria.sort = this.args.sorting.sort;\n }\n return criteria;\n }\n\n changeSelection(changedSelection: T[]): void {\n const { selection } = this.args;\n if (!selection) return;\n selection.onSelectionChange?.(changedSelection);\n if (!this.isSelectionControlled) {\n this.localSelection = changedSelection;\n }\n }\n\n clearSelection(): void {\n this.changeSelection([]);\n }\n\n @action\n onPageSizeChange(size: number): void {\n this.clearSelection();\n const currentCriteria = this.buildCriteria();\n const criteria = {\n ...currentCriteria,\n // when page size changes, we take the user back to the first page\n page: { index: 0, size }\n };\n this.args.onChange?.(criteria);\n }\n\n @action\n onPageChange(index: number): void {\n this.clearSelection();\n const currentCriteria = this.buildCriteria();\n const criteria = {\n ...currentCriteria,\n page: { ...currentCriteria.page!, index }\n };\n this.args.onChange?.(criteria);\n }\n\n onColumnSortChange(column: EuiBasicTableColumn<T>): void {\n this.clearSelection();\n const currentCriteria = this.buildCriteria();\n const field = (column as EuiTableFieldDataColumnType<T>).field;\n let direction: 'asc' | 'desc' = SortDirection.ASC;\n if (\n currentCriteria.sort &&\n (currentCriteria.sort.field === field ||\n currentCriteria.sort.field === column.name)\n ) {\n direction = SortDirection.reverse(currentCriteria.sort.direction);\n }\n const criteria: Criteria<T> = {\n ...currentCriteria,\n // resetting the page if the criteria has one\n page: !currentCriteria.page\n ? undefined\n : { index: 0, size: currentCriteria.page.size },\n sort: { field: (field || column.name) as keyof T, direction }\n };\n this.args.onChange?.(criteria as Criteria<T> & CriteriaWithPagination<T>);\n }\n\n /** `enableAllColumns` makes field columns without `sortable` sortable. */\n withDefaultSortable(column: EuiBasicTableColumn<T>): EuiBasicTableColumn<T> {\n const { sorting } = this.args;\n if (\n sorting?.sort &&\n !!sorting.enableAllColumns &&\n (column as EuiTableFieldDataColumnType<T>).field &&\n (column as EuiTableFieldDataColumnType<T>).sortable == null\n ) {\n return { ...(column as EuiTableFieldDataColumnType<T>), sortable: true };\n }\n return column;\n }\n\n resolveColumnSortDirection(column: EuiBasicTableColumn<T>) {\n const { sorting } = this.args;\n const { sortable, field, name } = column as EuiTableFieldDataColumnType<T>;\n if (!sorting || !sorting.sort || !sortable) {\n return undefined;\n }\n if (sorting.sort.field === field || sorting.sort.field === name) {\n return sorting.sort.direction;\n }\n return undefined;\n }\n\n resolveColumnOnSort(column: EuiBasicTableColumn<T>) {\n const { sorting } = this.args;\n const { sortable, name } = column as EuiTableFieldDataColumnType<T>;\n if (!sorting || !sortable) {\n return undefined;\n }\n if (!this.args.onChange) {\n throw new Error(`BasicTable is configured to be sortable on column [${String(name)}] but\n [onChange] is not configured. This callback must be implemented to handle the sort requests`);\n }\n return () => this.onColumnSortChange(column);\n }\n\n sortOptions(column: EuiBasicTableColumn<T>, readOnly?: boolean): SortOptions {\n const sortDirection = this.resolveColumnSortDirection(column);\n return {\n isSorted: !!sortDirection,\n isSortAscending: sortDirection ? SortDirection.isAsc(sortDirection) : undefined,\n onSort: this.resolveColumnOnSort(column),\n readOnly: this.args.sorting?.readOnly || readOnly\n };\n }\n\n /** Upstream: a sticky actions column needs inline scrolling. */\n stickyActions(column: EuiBasicTableColumn<T>): boolean {\n return Boolean(\n this.args.scrollableInline &&\n (column as EuiTableActionsColumnType<T>).actions &&\n (column as EuiTableActionsColumnType<T>).sticky\n );\n }\n\n @cached\n get headers(): HeaderModel[] {\n return this.args.columns.map((original, index) => {\n const {\n field,\n width,\n minWidth,\n maxWidth,\n name,\n nameTooltip,\n align,\n dataType,\n sortable,\n mobileOptions,\n readOnly,\n description\n } = original as EuiTableFieldDataColumnType<T>;\n\n const shared = {\n width,\n minWidth,\n maxWidth,\n tooltipProps: nameTooltip && {\n content: nameTooltip.content,\n icon: nameTooltip.icon,\n iconProps: nameTooltip.iconProps,\n tooltipProps: {\n ...nameTooltip.tooltipProps,\n position: nameTooltip.position ?? nameTooltip.tooltipProps?.position\n }\n },\n description,\n mobileOptions,\n name,\n align: align || getAlignForDataType(dataType)\n };\n\n // actions column\n if ((original as EuiTableActionsColumnType<T>).actions) {\n return {\n ...shared,\n key: `_actions_h_${index}`,\n align: 'right',\n sticky: this.stickyActions(original) ? STICKY_END : undefined,\n sorting: {}\n };\n }\n\n // computed column: only sortable if its `sortable` is a function\n if (!field) {\n return {\n ...shared,\n key: `_computed_column_h_${index}`,\n testSubj: `tableHeaderCell_${typeof name === 'string' ? name : ''}_${index}`,\n sorting:\n this.args.sorting && typeof sortable === 'function'\n ? this.sortOptions(original, readOnly)\n : {}\n };\n }\n\n // field data column\n const column = this.withDefaultSortable(original);\n return {\n ...shared,\n key: `_data_h_${String(field)}_${index}`,\n testSubj: `tableHeaderCell_${String(field)}_${index}`,\n sorting:\n this.args.sorting && (column as EuiTableFieldDataColumnType<T>).sortable\n ? this.sortOptions(column, readOnly)\n : {}\n };\n });\n }\n\n @cached\n get mobileSortItems(): EuiTableSortMobileItemOption[] {\n const { columns, sorting } = this.args;\n if (!sorting) return [];\n const items: EuiTableSortMobileItemOption[] = [];\n columns.forEach((original, index) => {\n const column = this.withDefaultSortable(original) as EuiTableFieldDataColumnType<T>;\n if (!column.sortable || column.mobileOptions?.show === false) {\n return;\n }\n const sortDirection = this.resolveColumnSortDirection(column);\n items.push({\n name: column.name,\n key: `_data_s_${String(column.field)}_${index}`,\n onSort: this.resolveColumnOnSort(column),\n isSorted: !!sortDirection,\n isSortAscending: sortDirection ? SortDirection.isAsc(sortDirection) : undefined\n });\n });\n return items;\n }\n\n @cached\n get selectAll() {\n const { items, selection } = this.args;\n if (!selection) return undefined;\n const selectableItems = items.filter(\n (item) => !selection.selectable || selection.selectable(item)\n );\n const current = this.selection;\n const checked =\n selectableItems.length > 0 && current.length === selectableItems.length;\n const indeterminate =\n !checked && selectableItems.length > 0 && current.length > 0;\n const selectAllRows = this.euiI18n.lookupToken(\n 'euiBasicTable.selectAllRows',\n 'Select all rows'\n );\n const deselectRows = this.euiI18n.lookupToken(\n 'euiBasicTable.deselectRows',\n 'Deselect rows'\n );\n return {\n selectableItems,\n checked,\n indeterminate,\n disabled: selectableItems.length === 0,\n label: checked || indeterminate ? deselectRows : selectAllRows,\n mobileLabel: selectAllRows\n };\n }\n\n @action\n onSelectAllChange(event: Event): void {\n const state = this.selectAll;\n const input = event.target as HTMLInputElement;\n if (!state) return;\n if (input.checked && !state.indeterminate) {\n this.changeSelection(state.selectableItems);\n } else {\n this.changeSelection([]);\n }\n // like React's controlled inputs, the box shows the resulting state\n input.checked = Boolean(this.selectAll?.checked);\n input.indeterminate = Boolean(this.selectAll?.indeterminate);\n }\n\n @action\n onRowSelectionChange(row: RowModel<T>, event: Event): void {\n const input = event.target as HTMLInputElement;\n const { itemId } = this.args;\n if (input.checked) {\n this.changeSelection([...this.selection, row.item]);\n } else {\n this.changeSelection(\n this.selection.filter(\n (selected) => getItemId(selected, itemId) !== row.itemId\n )\n );\n }\n // like React's controlled inputs, the box shows the resulting state\n input.checked = this.selection.some(\n (selected) => getItemId(selected, itemId) === row.itemId\n );\n }\n\n get hasPagination(): boolean {\n return !!this.args.pagination;\n }\n\n @cached\n get rows(): RowModel<T>[] {\n const {\n items,\n columns,\n selection,\n rowHeader,\n itemIdToExpandedRowMap,\n itemId: itemIdCallback\n } = this.args;\n const selected = this.selection;\n const allDisabled = selected.length > 0;\n\n // Occupy full width of table, taking checkbox & mobile only columns into account.\n const mobileOnlyCols = columns.filter(\n (column) => (column as EuiTableFieldDataColumnType<T>)?.mobileOptions?.only\n ).length;\n const expandedRowColSpan =\n (selection ? columns.length + 1 : columns.length) - mobileOnlyCols;\n\n return items.map((item, index) => {\n // with pagination the item's index is its position in the whole dataset\n const rowIndex =\n this.hasPagination && this.pageSize > 0\n ? this.args.pagination!.pageIndex * this.pageSize + index\n : index;\n const resolvedId = getItemId(item, itemIdCallback);\n const itemId: ItemIdResolved = resolvedId != null ? resolvedId : rowIndex;\n const isSelected = !selection\n ? false\n : !!selected.find(\n (selectedItem) => getItemId(selectedItem, itemIdCallback) === itemId\n );\n\n let checkbox: RowModel<T>['checkbox'];\n let rowSelectionDisabled = false;\n if (selection) {\n const disabled = !!(selection.selectable && !selection.selectable(item));\n const title = selection.selectableMessage?.(!disabled, item);\n checkbox = {\n id: `${this.tableId}_selection_column_${itemId}-checkbox`,\n disabled,\n label:\n title ||\n this.euiI18n.lookupToken('euiBasicTable.selectThisRow', 'Select row {index}', {\n index: index + 1\n }),\n testSubj: `checkboxSelectRow-${itemId}`\n };\n rowSelectionDisabled = disabled;\n }\n\n let hasActions: boolean | 'custom' = false;\n const cells = columns.map((column, columnIndex) =>\n this.cellModel(item, itemId, column, columnIndex, rowHeader, allDisabled)\n );\n cells.forEach((cell) => {\n if (cell.isActions) {\n // default action mobile row styles take precedence over custom\n hasActions = !hasActions && cell.hasActions === 'custom' ? 'custom' : true;\n }\n });\n\n const isExpandable = !!itemIdToExpandedRowMap &&\n Object.prototype.hasOwnProperty.call(itemIdToExpandedRowMap, itemId);\n const expandedValue = isExpandable ? itemIdToExpandedRowMap![itemId] : undefined;\n const { onClick, ...rowAttributes } = getRowProps(item, this.args.rowProps);\n\n return {\n key: `row_${itemId}`,\n item,\n itemId,\n rowIndex,\n displayedRowIndex: index,\n selected: isSelected,\n isSelectable: !rowSelectionDisabled,\n checkbox,\n hasActions,\n isExpandable,\n expandedRowId: isExpandable ? `row_${itemId}_expansion` : undefined,\n expandedValue,\n expandedText: isContent(expandedValue) ? expandedValue : undefined,\n expandedRowColSpan,\n rowAttributes,\n onClick: onClick as RowModel<T>['onClick'],\n cells\n };\n });\n }\n\n cellModel(\n item: T,\n itemId: ItemIdResolved,\n column: EuiBasicTableColumn<T>,\n columnIndex: number,\n rowHeader: string | undefined,\n allDisabled: boolean\n ): CellModel<T> {\n const actionsColumn = column as EuiTableActionsColumnType<T>;\n if (actionsColumn.actions) {\n const hasCustomActions = actionsColumn.actions.some(\n (action) => !!(action as { component?: unknown }).component\n );\n // Disable all actions if any row(s) are selected\n let actualActions = actionsColumn.actions.filter(\n (action) => !action.available || action.available(item)\n );\n let collapsed = false;\n if (actualActions.length > 2) {\n // if any of the actions `isPrimary`, add them inline as well, but only the first 2,\n // which we'll force to only show on hover for desktop views\n actualActions = allDisabled\n ? []\n : actualActions\n .filter((action) => action.isPrimary)\n .slice(0, 2)\n .map((action) => ({ ...action, showOnHover: true }) as Action<T>);\n // all the actions are in a popover\n collapsed = true;\n }\n return {\n key: `record_actions_${itemId}_${columnIndex}`,\n column,\n isActions: true,\n actions: actualActions,\n collapsed,\n hasActions: hasCustomActions ? 'custom' : true,\n sticky: this.stickyActions(column) ? STICKY_END : undefined\n };\n }\n\n const fieldColumn = column as EuiTableFieldDataColumnType<T>;\n const { field, dataType } = fieldColumn;\n let content: EuiTableContent;\n let value: unknown;\n if (field) {\n value = get(item, field as string);\n if (!fieldColumn.component) {\n const renderer = fieldColumn.render || getRendererForDataType(dataType);\n content = renderer(value, item);\n }\n } else {\n const computed = column as EuiTableComputedColumnType<T>;\n if (!computed.component) {\n content = computed.render\n ? computed.render(item)\n : getRendererForDataType()(undefined);\n }\n }\n\n const {\n align,\n render,\n isExpander,\n textOnly,\n name,\n mobileOptions,\n className,\n component\n } = fieldColumn;\n // Upstream spreads `cellProps` onto `EuiTableRowCell` (after the\n // derived props, before the column's own cell props): its cell\n // arguments are consumed by the cell, the rest reaches the element.\n const { args: cellArgs, attributes } = splitCellProps(\n getCellProps(item, column, this.args.cellProps)\n );\n const fromCellProps = <K extends keyof EuiTableCellArgs>(\n key: K,\n fallback: EuiTableCellArgs[K]\n ) => (Object.prototype.hasOwnProperty.call(cellArgs, key) ? cellArgs[key] : fallback);\n // the column's own cell props come after `cellProps` (upstream spread order)\n const fromColumn = <\n K extends\n | 'width'\n | 'minWidth'\n | 'maxWidth'\n | 'truncateText'\n | 'valign'\n | 'setScopeRow'\n | 'hasActions'\n | 'showOnHover'\n | 'sticky'\n >(\n key: K,\n fallback: EuiTableCellArgs[K] = cellArgs[key]\n ) =>\n Object.prototype.hasOwnProperty.call(column, key)\n ? (column as Pick<EuiTableCellArgs, K>)[key]\n : fallback;\n const { style: cellPropsStyle, ...cellPropsAttributes } = attributes;\n const columnAttributes = columnCellAttributes(column);\n const mobileComponent = mobileOptions?.component;\n const mobileContent = mobileOptions?.render?.(item);\n return {\n key: field\n ? `_data_column_${String(field)}_${itemId}_${columnIndex}`\n : `_computed_column_${itemId}_${columnIndex}`,\n column,\n isActions: false,\n content,\n component,\n value,\n align: fromCellProps('align', align || getAlignForDataType(dataType)),\n isExpander: fromCellProps('isExpander', isExpander),\n textOnly: fromCellProps('textOnly', textOnly || (!render && !component)),\n truncateText: fromColumn('truncateText'),\n valign: fromColumn('valign'),\n setScopeRow: fromColumn(\n 'setScopeRow',\n fromCellProps('setScopeRow', !!field && field === rowHeader)\n ),\n width: fromColumn('width'),\n minWidth: fromColumn('minWidth'),\n maxWidth: fromColumn('maxWidth'),\n hasActionsArg: fromColumn('hasActions'),\n showOnHover: fromColumn('showOnHover'),\n sticky: fromColumn('sticky'),\n mobileOptions: fromCellProps('mobileOptions', {\n ...mobileOptions,\n header: mobileOptions?.header ?? name\n }),\n mobileContent,\n mobileComponent,\n hasMobile: !!mobileComponent || mobileContent != null,\n style: (Object.prototype.hasOwnProperty.call(column, 'style')\n ? fieldColumn.style\n : cellPropsStyle) as EuiTableRowCellStyle | undefined,\n attributes: {\n ...cellPropsAttributes,\n // the column's own props come after `cellProps` (upstream)\n ...columnAttributes,\n className: [attributes['className'], className].filter(Boolean).join(' ') || undefined,\n 'data-test-subj': fieldColumn['data-test-subj'] ?? attributes['data-test-subj']\n }\n };\n }\n\n @cached\n get footers(): FooterModel[] | null {\n const { items, columns, pagination, selection, scrollableInline } = this.args;\n const footers: FooterModel[] = [];\n let hasDefinedFooter = false;\n if (selection) {\n // an empty cell for the selection column\n footers.push({ key: '_selection_column_f' });\n }\n columns.forEach((column) => {\n const { mobileOptions, field, align, footer } =\n column as EuiTableFieldDataColumnType<T>;\n if (mobileOptions?.only) {\n return; // exclude columns that only exist for mobile headers\n }\n const content =\n typeof footer === 'function' ? footer({ items, pagination }) : footer;\n const sticky =\n scrollableInline &&\n (column as EuiTableActionsColumnType<T>).actions &&\n (column as EuiTableActionsColumnType<T>).sticky === true\n ? STICKY_END\n : undefined;\n if (content) {\n footers.push({ key: `footer_${String(field)}_${footers.length - 1}`, align, sticky, content });\n hasDefinedFooter = true;\n } else {\n footers.push({ key: `footer_empty_${footers.length - 1}`, align, sticky });\n }\n });\n return footers.length && hasDefinedFooter ? footers : null;\n }\n\n get colSpan(): number {\n return this.args.columns.length + (this.args.selection ? 1 : 0);\n }\n\n get noItemsMessage(): string {\n return (\n this.args.noItemsMessage ??\n this.euiI18n.lookupToken('euiBasicTable.noItemsMessage', 'No items found')\n );\n }\n\n /** Upstream: \"Pagination for table: {tableCaption}\". */\n get paginationLabel(): string {\n return this.euiI18n.lookupToken(\n 'euiBasicTable.tablePagination',\n 'Pagination for table: {tableCaption}',\n { tableCaption: this.args.tableCaption ?? '' }\n );\n }\n\n @cached\n get caption() {\n const { items, pagination, tableCaption } = this.args;\n const itemCount = items.length;\n const totalItemCount = pagination ? pagination.totalItemCount : itemCount;\n const page = pagination ? pagination.pageIndex + 1 : 1;\n const pageCount = pagination\n ? Math.ceil(pagination.totalItemCount / this.pageSize)\n : 1;\n return {\n tableName:\n tableCaption ||\n this.euiI18n.lookupToken('euiBasicTable.caption.tableName', 'Data table'),\n empty:\n itemCount === 0\n ? this.euiI18n.lookupToken('euiBasicTable.caption.emptyState', '(empty)')\n : undefined,\n itemCountPart:\n itemCount && pagination && totalItemCount > 0\n ? this.euiI18n.lookupToken(\n 'euiBasicTable.caption.itemCountPart.withTotalItemCount',\n 'Showing {itemCount} of {totalItemCount} data rows.',\n { itemCount, totalItemCount }\n )\n : undefined,\n paginationPart:\n pagination && pageCount > 1\n ? this.euiI18n.lookupToken(\n 'euiBasicTable.caption.paginationPart.withPageCount',\n 'Page {page} of {pageCount}.',\n { page, pageCount }\n )\n : undefined\n };\n }\n\n get paginationForBar(): Pagination {\n return this.args.pagination!;\n }\n\n get showPagination(): boolean {\n const { error, pagination } = this.args;\n if (!error && pagination && pagination.totalItemCount > 0) {\n if (!this.args.onChange) {\n throw new Error(`The Basic Table is configured with pagination but [onChange] is\n not configured. This callback must be implemented to handle pagination changes`);\n }\n return true;\n }\n return false;\n }\n\n @cached\n get classes() {\n const context = getEuiThemeContext(this);\n return {\n root: this.args.css ? euiClass(context, this.args.css) : undefined,\n caption: euiClass(context, euiTableCaptionStyles, euiScreenReaderOnlyCss()),\n copyMarker: euiScreenReaderOnlyClass(context),\n body: this.args.loading\n ? euiClass(context, useEuiBorealisStyles(context, euiBasicTableBodyLoading))\n : undefined,\n panelled: this.args.panelled\n ? euiClass(\n context,\n useEuiBorealisStyles(context, panelledFactory(this.args.responsiveBreakpoint))\n )\n : undefined\n };\n }\n\n <template>\n <div\n class=\"euiBasicTable {{if @loading 'euiBasicTable-loading'}} {{this.classes.root}}\"\n {{this.syncSelection this.selectionState}}\n ...attributes\n >\n {{#if @panelled}}\n <div\n class={{this.classes.panelled}}\n data-test-subj=\"euiBasicTablePanelledWrapper\"\n >\n <BasicTableContent\n @table={{this}}\n @hasExpandedRowBlock={{flag @hasExpandedRowBlock (has-block \"expandedRow\")}}\n @hasNoItemsBlock={{flag @hasNoItemsBlock (has-block \"noItemsMessage\")}}\n >\n <:expandedRow as |item itemId value|>{{yield item itemId value to=\"expandedRow\"}}</:expandedRow>\n <:noItemsMessage>{{yield to=\"noItemsMessage\"}}</:noItemsMessage>\n </BasicTableContent>\n </div>\n {{else}}\n <BasicTableContent\n @table={{this}}\n @hasExpandedRowBlock={{flag @hasExpandedRowBlock (has-block \"expandedRow\")}}\n @hasNoItemsBlock={{flag @hasNoItemsBlock (has-block \"noItemsMessage\")}}\n >\n <:expandedRow as |item itemId value|>{{yield item itemId value to=\"expandedRow\"}}</:expandedRow>\n <:noItemsMessage>{{yield to=\"noItemsMessage\"}}</:noItemsMessage>\n </BasicTableContent>\n {{/if}}\n {{#if this.showPagination}}\n <PaginationBar\n @pagination={{this.paginationForBar}}\n @panelled={{@panelled}}\n @responsiveBreakpoint={{@responsiveBreakpoint}}\n @onPageSizeChange={{this.onPageSizeChange}}\n @onPageChange={{this.onPageChange}}\n @ariaControls={{this.tableId}}\n @ariaLabel={{this.paginationLabel}}\n />\n {{/if}}\n </div>\n </template>\n}\n\n/** A forwarded block flag, or this component's own `has-block`. */\nfunction flag(forwarded: boolean | undefined, own: boolean): boolean {\n return forwarded ?? own;\n}\n\nfunction isContent(value: unknown): value is EuiTableContent {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n (typeof value === 'object' && value !== null && 'toHTML' in value)\n );\n}\n\nfunction rowClick(onClick?: (event: Event) => void) {\n return onClick;\n}\n\ninterface BasicTableContentSignature<T extends object> {\n Args: {\n table: EuiBasicTable<T>;\n hasExpandedRowBlock: boolean;\n hasNoItemsBlock: boolean;\n };\n Blocks: {\n expandedRow: [item: T, itemId: ItemIdResolved, value: unknown];\n noItemsMessage: [];\n };\n}\n\n/** The mobile header and the table (wrapped by the panelled look or not). */\nclass BasicTableContent<T extends object> extends Component<\n BasicTableContentSignature<T>\n> {\n <template>\n {{#let @table as |t|}}\n <EuiTableHeaderMobile @responsiveBreakpoint={{t.args.responsiveBreakpoint}}>\n {{#if t.selectAll}}\n <EuiToolTip\n @content={{t.selectAll.label}}\n @display=\"block\"\n @disableScreenReaderOutput={{true}}\n >\n <EuiCheckbox\n @id=\"{{t.selectAllId}}-mobile\"\n @checked={{t.selectAll.checked}}\n @indeterminate={{t.selectAll.indeterminate}}\n @disabled={{t.selectAll.disabled}}\n @label={{t.selectAll.mobileLabel}}\n aria-label={{t.selectAll.label}}\n data-test-subj=\"checkboxSelectAll\"\n {{on \"change\" t.onSelectAllChange}}\n />\n </EuiToolTip>\n {{/if}}\n {{#if t.mobileSortItems.length}}\n <EuiTableSortMobile @items={{t.mobileSortItems}} />\n {{/if}}\n </EuiTableHeaderMobile>\n {{! upstream OverrideCopiedTabularContent }}\n <TabularCopyMarker @type=\"boundary\" @class={{t.classes.copyMarker}} />\n <EuiTable\n id={{t.tableId}}\n @tableLayout={{if t.args.tableLayout t.args.tableLayout \"fixed\"}}\n @responsiveBreakpoint={{t.args.responsiveBreakpoint}}\n @compressed={{t.args.compressed}}\n @hasBackground={{t.args.hasBackground}}\n @scrollableInline={{t.args.scrollableInline}}\n @stickyHeader={{t.args.stickyHeader}}\n @stickyScrollbar={{t.args.stickyScrollbar}}\n @css={{if t.args.loading SAFARI_LOADING_WORKAROUND}}\n >\n <caption class=\"euiTableCaption euiScreenReaderOnly {{t.classes.caption}}\">\n <TabularCopyMarker @type=\"no-copy\" @class={{t.classes.copyMarker}} />\n <EuiDelayRender>\n <p>{{t.caption.tableName}}{{#if t.caption.empty}} {{t.caption.empty}}{{/if}},</p>\n {{#if t.args.items.length}}\n {{#if t.caption.itemCountPart}}<p>{{t.caption.itemCountPart}}</p>{{/if}}\n {{else}}\n {{#if @hasNoItemsBlock}}{{yield to=\"noItemsMessage\"}},{{else}}{{t.noItemsMessage}},{{/if}}\n {{/if}}\n {{#if t.caption.paginationPart}}<p>{{t.caption.paginationPart}}</p>{{/if}}\n </EuiDelayRender>\n <TabularCopyMarker @type=\"no-copy\" @class={{t.classes.copyMarker}} />\n </caption>\n <EuiTableHeader>\n {{#if t.selectAll}}\n <EuiTableHeaderCellCheckbox>\n <:default>\n <EuiToolTip\n @content={{t.selectAll.label}}\n @display=\"block\"\n @disableScreenReaderOutput={{true}}\n >\n <EuiCheckbox\n @id={{t.selectAllId}}\n @checked={{t.selectAll.checked}}\n @indeterminate={{t.selectAll.indeterminate}}\n @disabled={{t.selectAll.disabled}}\n aria-label={{t.selectAll.label}}\n data-test-subj=\"checkboxSelectAll\"\n {{on \"change\" t.onSelectAllChange}}\n />\n </EuiToolTip>\n </:default>\n <:append><TabularCopyMarker @type=\"tab\" @class={{t.classes.copyMarker}} /></:append>\n </EuiTableHeaderCellCheckbox>\n {{/if}}\n {{#each t.headers key=\"key\" as |header index|}}\n <EuiTableHeaderCell\n @width={{header.width}}\n @minWidth={{header.minWidth}}\n @maxWidth={{header.maxWidth}}\n @description={{header.description}}\n @tooltipProps={{header.tooltipProps}}\n @mobileOptions={{header.mobileOptions}}\n @align={{header.align}}\n @isSorted={{header.sorting.isSorted}}\n @isSortAscending={{header.sorting.isSortAscending}}\n @onSort={{header.sorting.onSort}}\n @readOnly={{header.sorting.readOnly}}\n @sticky={{header.sticky}}\n data-test-subj={{header.testSubj}}\n >\n <:default><TableNode @node={{header.name}} /></:default>\n <:append><TabularCopyMarker\n @type={{copyMarkerType index t.args.columns.length}}\n @class={{t.classes.copyMarker}}\n /></:append>\n </EuiTableHeaderCell>\n {{/each}}\n </EuiTableHeader>\n <EuiTableBody class={{t.classes.body}}>\n {{#if t.args.error}}\n <EuiTableRow>\n <EuiTableRowCell @align=\"center\" colspan={{t.colSpan}} @mobileOptions={{FULL_WIDTH}}>\n <EuiIcon @type=\"minusCircle\" @color=\"danger\" aria-hidden=\"true\" />\n {{t.args.error}}\n </EuiTableRowCell>\n </EuiTableRow>\n {{else if t.args.items.length}}\n {{#each t.rows key=\"key\" as |row|}}\n <EuiTableRow\n aria-owns={{row.expandedRowId}}\n @hasSelection={{if t.args.selection true false}}\n @isSelectable={{row.isSelectable}}\n @isSelected={{row.selected}}\n @hasActions={{row.hasActions}}\n @isExpandable={{row.isExpandable}}\n @onClick={{rowClick row.onClick}}\n {{elementProps row.rowAttributes}}\n >\n {{#if row.checkbox}}\n <EuiTableRowCellCheckbox>\n <:default>\n <EuiToolTip\n @content={{row.checkbox.label}}\n @display=\"block\"\n @disableScreenReaderOutput={{true}}\n >\n <EuiCheckbox\n @id={{row.checkbox.id}}\n @disabled={{row.checkbox.disabled}}\n @checked={{row.selected}}\n aria-label={{row.checkbox.label}}\n data-test-subj={{row.checkbox.testSubj}}\n {{on \"change\" (fn t.onRowSelectionChange row)}}\n />\n </EuiToolTip>\n </:default>\n <:append><TabularCopyMarker @type=\"tab\" @class={{t.classes.copyMarker}} /></:append>\n </EuiTableRowCellCheckbox>\n {{/if}}\n {{#each row.cells key=\"key\" as |cell columnIndex|}}\n {{#if cell.isActions}}\n <EuiTableRowCell\n @align=\"right\"\n @textOnly={{false}}\n @hasActions={{cell.hasActions}}\n @sticky={{cell.sticky}}\n >\n <:default>\n <ExpandedItemActions\n @actions={{actionsOrEmpty cell.actions}}\n @actionsDisabled={{isTrue t.selection.length}}\n @itemId={{row.itemId}}\n @item={{row.item}}\n />\n {{#if cell.collapsed}}\n <div>\n <CollapsedItemActions\n @actions={{actionsOf cell.column}}\n @actionsDisabled={{isTrue t.selection.length}}\n @itemId={{row.itemId}}\n @item={{row.item}}\n @displayedRowIndex={{row.rowIndex}}\n />\n </div>\n {{/if}}\n </:default>\n <:append><TabularCopyMarker\n @type={{copyMarkerType columnIndex t.args.columns.length}}\n @class={{t.classes.copyMarker}}\n /></:append>\n </EuiTableRowCell>\n {{else if cell.hasMobile}}\n <EuiTableRowCell\n @align={{cell.align}}\n @isExpander={{cell.isExpander}}\n @textOnly={{cell.textOnly}}\n @truncateText={{cell.truncateText}}\n @valign={{cell.valign}}\n @setScopeRow={{cell.setScopeRow}}\n @width={{cell.width}}\n @minWidth={{cell.minWidth}}\n @maxWidth={{cell.maxWidth}}\n @hasActions={{cell.hasActionsArg}}\n @showOnHover={{cell.showOnHover}}\n @sticky={{cell.sticky}}\n @mobileOptions={{cell.mobileOptions}}\n @style={{cell.style}}\n {{elementProps cell.attributes}}\n >\n <:default>\n {{#if cell.component}}\n <cell.component @item={{row.item}} @value={{cell.value}} @column={{cell.column}} />\n {{else}}\n {{cell.content}}\n {{/if}}\n </:default>\n <:mobile>\n {{#if cell.mobileComponent}}\n <cell.mobileComponent @item={{row.item}} @value={{cell.value}} @column={{cell.column}} />\n {{else}}\n {{cell.mobileContent}}\n {{/if}}\n </:mobile>\n <:append><TabularCopyMarker\n @type={{copyMarkerType columnIndex t.args.columns.length}}\n @class={{t.classes.copyMarker}}\n /></:append>\n </EuiTableRowCell>\n {{else}}\n <EuiTableRowCell\n @align={{cell.align}}\n @isExpander={{cell.isExpander}}\n @textOnly={{cell.textOnly}}\n @truncateText={{cell.truncateText}}\n @valign={{cell.valign}}\n @setScopeRow={{cell.setScopeRow}}\n @width={{cell.width}}\n @minWidth={{cell.minWidth}}\n @maxWidth={{cell.maxWidth}}\n @hasActions={{cell.hasActionsArg}}\n @showOnHover={{cell.showOnHover}}\n @sticky={{cell.sticky}}\n @mobileOptions={{cell.mobileOptions}}\n @style={{cell.style}}\n {{elementProps cell.attributes}}\n >\n <:default>\n {{#if cell.component}}\n <cell.component @item={{row.item}} @value={{cell.value}} @column={{cell.column}} />\n {{else}}\n {{cell.content}}\n {{/if}}\n </:default>\n <:append><TabularCopyMarker\n @type={{copyMarkerType columnIndex t.args.columns.length}}\n @class={{t.classes.copyMarker}}\n /></:append>\n </EuiTableRowCell>\n {{/if}}\n {{/each}}\n </EuiTableRow>\n {{#if row.isExpandable}}\n <EuiTableRow\n id={{row.expandedRowId}}\n @isExpandedRow={{true}}\n @hasSelection={{if t.args.selection true false}}\n >\n <EuiTableRowCell colspan={{row.expandedRowColSpan}} @textOnly={{false}}>\n <:default>\n {{#if @hasExpandedRowBlock}}\n {{yield row.item row.itemId row.expandedValue to=\"expandedRow\"}}\n {{else}}\n {{row.expandedText}}\n {{/if}}\n </:default>\n <:append><TabularCopyMarker @type=\"newline\" @class={{t.classes.copyMarker}} /></:append>\n </EuiTableRowCell>\n </EuiTableRow>\n {{/if}}\n {{/each}}\n {{else}}\n <EuiTableRow>\n <EuiTableRowCell @align=\"center\" colspan={{t.colSpan}} @mobileOptions={{FULL_WIDTH}}>\n {{#if @hasNoItemsBlock}}\n {{yield to=\"noItemsMessage\"}}\n {{else}}\n {{t.noItemsMessage}}\n {{/if}}\n </EuiTableRowCell>\n </EuiTableRow>\n {{/if}}\n </EuiTableBody>\n {{#if t.footers}}\n <EuiTableFooter>\n {{#each t.footers key=\"key\" as |footer|}}\n <EuiTableFooterCell @align={{footer.align}} @sticky={{footer.sticky}}>{{footer.content}}</EuiTableFooterCell>\n {{/each}}\n </EuiTableFooter>\n {{/if}}\n </EuiTable>\n <TabularCopyMarker @type=\"boundary\" @class={{t.classes.copyMarker}} />\n {{/let}}\n </template>\n}\n\nconst FULL_WIDTH = { width: '100%' };\n\n/** Upstream `renderCopyChar`: a tab after each cell, a newline after the last. */\nfunction copyMarkerType(columnIndex: number, columnCount: number): 'tab' | 'newline' {\n return columnIndex === columnCount - 1 ? 'newline' : 'tab';\n}\n\nfunction actionsOrEmpty<T extends object>(actions?: Array<Action<T>>): Array<Action<T>> {\n return actions ?? [];\n}\n\nfunction isTrue(value: unknown): boolean {\n return Boolean(value);\n}\n\nfunction actionsOf<T extends object>(column: EuiBasicTableColumn<T>): Array<Action<T>> {\n return (column as EuiTableActionsColumnType<T>).actions;\n}\n\n"],"names":["STICKY_END","side","SAFARI_LOADING_WORKAROUND","safariLoadingWorkaround","PANELLED","Map","panelledFactory","breakpoint","factory","get","euiBasicTableWrapperPanelledStyles","set","EuiBasicTable","Component","g","prototype","service","i","tableId","randomId","selectAllId","constructor","owner","args","document","addEventListener","onTabularCopy","tracked","pageSize","pagination","euiTablePaginationDefaults","itemsPerPage","isSelectionControlled","selection","selected","selectionState","itemId","items","removed","unfiltered","localSelection","initialSelected","length","ids","Set","map","item","getItemId","filtered","filter","has","n","cached","syncSelection","modifier","_element","state","next","isDestroying","isDestroyed","onSelectionChange","buildCriteria","criteria","page","index","pageIndex","size","sorting","sort","changeSelection","changedSelection","clearSelection","onPageSizeChange","currentCriteria","onChange","action","onPageChange","onColumnSortChange","column","field","direction","SortDirection","ASC","name","reverse","undefined","withDefaultSortable","enableAllColumns","sortable","resolveColumnSortDirection","resolveColumnOnSort","Error","String","sortOptions","readOnly","sortDirection","isSorted","isSortAscending","isAsc","onSort","stickyActions","Boolean","scrollableInline","actions","sticky","headers","columns","original","width","minWidth","maxWidth","nameTooltip","align","dataType","mobileOptions","description","shared","tooltipProps","content","icon","iconProps","position","getAlignForDataType","key","testSubj","mobileSortItems","forEach","show","push","selectAll","selectableItems","selectable","current","checked","indeterminate","selectAllRows","euiI18n","lookupToken","deselectRows","disabled","label","mobileLabel","onSelectAllChange","event","input","target","onRowSelectionChange","row","some","hasPagination","rows","rowHeader","itemIdToExpandedRowMap","itemIdCallback","allDisabled","mobileOnlyCols","only","expandedRowColSpan","rowIndex","resolvedId","isSelected","find","selectedItem","checkbox","rowSelectionDisabled","title","selectableMessage","id","hasActions","cells","columnIndex","cellModel","cell","isActions","isExpandable","Object","hasOwnProperty","call","expandedValue","onClick","rowAttributes","getRowProps","rowProps","displayedRowIndex","isSelectable","expandedRowId","expandedText","isContent","actionsColumn","hasCustomActions","component","actualActions","available","collapsed","isPrimary","slice","showOnHover","fieldColumn","value","renderer","render","getRendererForDataType","computed","isExpander","textOnly","className","cellArgs","attributes","splitCellProps","getCellProps","cellProps","fromCellProps","fallback","fromColumn","style","cellPropsStyle","cellPropsAttributes","columnAttributes","columnCellAttributes","mobileComponent","mobileContent","truncateText","valign","setScopeRow","hasActionsArg","header","hasMobile","join","footers","hasDefinedFooter","footer","colSpan","noItemsMessage","paginationLabel","tableCaption","caption","itemCount","totalItemCount","pageCount","Math","ceil","tableName","empty","itemCountPart","paginationPart","paginationForBar","showPagination","error","classes","context","getEuiThemeContext","root","css","euiClass","euiTableCaptionStyles","euiScreenReaderOnlyCss","copyMarker","euiScreenReaderOnlyClass","body","loading","useEuiBorealisStyles","euiBasicTableBodyLoading","panelled","responsiveBreakpoint","setComponentTemplate","precompileTemplate","strictMode","scope","BasicTableContent","flag","PaginationBar","forwarded","own","rowClick","EuiTableHeaderMobile","EuiToolTip","EuiCheckbox","on","EuiTableSortMobile","TabularCopyMarker","EuiTable","EuiDelayRender","EuiTableHeader","EuiTableHeaderCellCheckbox","EuiTableHeaderCell","TableNode","copyMarkerType","EuiTableBody","EuiTableRow","EuiTableRowCell","FULL_WIDTH","EuiIcon","elementProps","EuiTableRowCellCheckbox","fn","ExpandedItemActions","actionsOrEmpty","isTrue","CollapsedItemActions","actionsOf","EuiTableFooter","EuiTableFooterCell","columnCount"],"mappings":"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"}
1
+ {"version":3,"file":"eui-basic-table.js","sources":["../../src/components/eui-basic-table.gts"],"sourcesContent":["import { registerDestructor } from '@ember/destroyable';\nimport Component from '@glimmer/component';\nimport { cached, tracked } from '@glimmer/tracking';\nimport { fn } from '@ember/helper';\nimport { on } from '@ember/modifier';\nimport { action } from '@ember/object';\nimport { next } from '@ember/runloop';\nimport { service } from '@ember/service';\n\nimport { modifier } from 'ember-modifier';\n\nimport {\n elementProps,\n getAlignForDataType,\n getCellProps,\n getItemId,\n getRendererForDataType,\n getRowProps,\n splitCellProps,\n columnCellAttributes\n} from '../-private/basic-table.ts';\nimport TableNode from '../-private/table-node.gts';\nimport { euiTablePaginationDefaults } from '../-private/table-pagination-defaults.ts';\nimport TabularCopyMarker from '../-private/tabular-copy-marker.gts';\nimport { retainDocumentListener } from '../utils/retain-document-listener.ts';\nimport { onTabularCopy } from '../utils/data-grid/tabular-copy.ts';\nimport { randomId } from '../-private/random-id.ts';\nimport { getEuiThemeContext } from '../utils/emotion/consume.ts';\nimport { euiClass, useEuiBorealisStyles } from '../utils/eui/styles.ts';\nimport {\n euiBasicTableBodyLoading,\n euiBasicTableWrapperPanelledStyles,\n safariLoadingWorkaround,\n euiTableCaptionStyles\n} from '../utils/eui/styles.generated.ts';\nimport { get } from '../utils/eui/search-bar/predicate.ts';\nimport { SortDirection } from '../utils/eui/sort.ts';\nimport CollapsedItemActions from './eui-basic-table/collapsed-item-actions.gts';\nimport ExpandedItemActions from './eui-basic-table/expanded-item-actions.gts';\nimport PaginationBar from './eui-basic-table/pagination-bar.gts';\nimport EuiCheckbox from './eui-checkbox.gts';\nimport EuiDelayRender from './eui-delay-render.gts';\nimport EuiIcon from './eui-icon.gts';\nimport {\n euiScreenReaderOnlyClass,\n euiScreenReaderOnlyCss\n} from './eui-screen-reader-only.gts';\nimport EuiTable from './eui-table.gts';\nimport EuiTableBody from './eui-table-body.gts';\nimport EuiTableFooter from './eui-table-footer.gts';\nimport EuiTableFooterCell from './eui-table-footer-cell.gts';\nimport EuiTableHeader from './eui-table-header.gts';\nimport EuiTableHeaderCell from './eui-table-header-cell.gts';\nimport EuiTableHeaderCellCheckbox from './eui-table-header-cell-checkbox.gts';\nimport EuiTableHeaderMobile from './eui-table-header-mobile.gts';\nimport EuiTableRow from './eui-table-row.gts';\nimport EuiTableRowCell from './eui-table-row-cell.gts';\nimport EuiTableRowCellCheckbox from './eui-table-row-cell-checkbox.gts';\nimport EuiTableSortMobile from './eui-table-sort-mobile.gts';\nimport EuiToolTip from './eui-tool-tip.gts';\n\nimport type Owner from '@ember/owner';\nimport type {\n Action,\n CellPropsCallback,\n Criteria,\n CriteriaWithPagination,\n EuiBasicTableColumn,\n EuiTableActionsColumnType,\n EuiTableCellArgs,\n EuiTableCellComponent,\n EuiTableColumnName,\n EuiTableComputedColumnType,\n EuiTableContent,\n EuiTableElementProps,\n EuiTableVerticalAlign,\n EuiTableFieldDataColumnType,\n EuiTableSelectionType,\n EuiTableSortingType,\n ItemId,\n ItemIdResolved,\n Pagination,\n RowPropsCallback\n} from '../-private/basic-table.ts';\nimport type {\n TableAlignment,\n TableMobileOptions,\n TableResponsiveBreakpoint,\n TableTruncateText\n} from '../-private/table.ts';\nimport type { EuiTableStickyCellOptions } from '../utils/eui/table.ts';\nimport type { EuiTableHeaderCellTooltipProps } from './eui-table-header-cell.gts';\nimport type EuiI18n from '../services/eui-i18n';\nimport type { EuiCss } from '../utils/eui/styles.ts';\nimport type { EuiTableSortMobileItemOption } from './eui-table-sort-mobile.gts';\nimport type { EuiTableRowCellStyle } from './eui-table-row-cell.gts';\n\nexport type {\n Action,\n CellPropsCallback,\n Criteria,\n CriteriaWithPagination,\n CustomItemAction,\n DefaultItemAction,\n EuiBasicTableColumn,\n EuiTableActionsColumnType,\n EuiTableCellArgs,\n EuiTableCellComponentArgs,\n EuiTableColumnName,\n EuiTableColumnNameTooltipProps,\n EuiTableComputedColumnType,\n EuiTableContent,\n EuiTableDataType,\n EuiTableFieldDataColumnType,\n EuiTableFooterProps,\n EuiTableNode,\n EuiTableSelectionType,\n EuiTableSortingType,\n EuiTableVerticalAlign,\n ItemId,\n Pagination,\n RowPropsCallback\n} from '../-private/basic-table.ts';\nexport { getItemId } from '../-private/basic-table.ts';\nexport { useEuiBasicTablePanelProps } from './eui-basic-table-panel.gts';\nexport type { EuiBasicTablePanelProps } from './eui-basic-table-panel.gts';\n\n/**\n * A table built from `@items` and `@columns` (field, computed and actions\n * columns), with optional sorting, pagination, selection and expanded\n * rows. It renders the state you pass and calls `@onChange` with the new\n * `{ page, sort }` criteria; use `EuiInMemoryTable` to let the table own\n * that state.\n */\nexport interface EuiBasicTableSignature<T extends object> {\n Element: HTMLDivElement;\n Args: {\n /** The rows' items. */\n items: T[];\n /**\n * The columns: field data (`{ field, name, dataType, render,\n * component, sortable, … }`), computed (`{ render | component, name }`)\n * and actions (`{ actions, name }`).\n */\n columns: Array<EuiBasicTableColumn<T>>;\n /** How to get a unique id of an item (a key or a function), for selection and expanded rows. */\n itemId?: ItemId<T>;\n /**\n * Expanded rows by item id: a text, or any truthy value rendered by\n * the `<:expandedRow>` block.\n */\n itemIdToExpandedRowMap?: Record<string, unknown>;\n /**\n * Props of every row cell, or a function of the item and column:\n * `EuiTableRowCell` arguments (`align`, `textOnly`, `truncateText`,\n * `valign`, `width`, `mobileOptions`, …) and attributes/listeners for\n * the cell element.\n */\n cellProps?: EuiTableElementProps | CellPropsCallback<T>;\n /** Attributes of every row (`onClick` makes rows clickable), or a function of the item. */\n rowProps?: EuiTableElementProps | RowPropsCallback<T>;\n /** Error message shown instead of the rows. */\n error?: string;\n /** Describes the table for screen readers. Defaults to \"Data table\". */\n tableCaption?: string;\n /** The `field` of the column whose cells are the rows' headers (`<th scope=\"row\">`). */\n rowHeader?: string;\n /** Shows a loading line above the rows. */\n loading?: boolean;\n /**\n * Panelled look of the table and its pagination, for tables outside\n * EUI containers (like `EuiPanel` or `EuiFlyout`).\n */\n panelled?: boolean;\n /** Message when there are no items. Defaults to \"No items found\". */\n noItemsMessage?: string;\n /**\n * Called with the new `{ page, sort }` criteria when the user pages or\n * sorts (required with `@pagination` or `@sorting`).\n */\n onChange?: (criteria: Criteria<T> & CriteriaWithPagination<T>) => void;\n /** `{ pageIndex, pageSize, totalItemCount, pageSizeOptions, showPerPageOptions }`. */\n pagination?: Pagination;\n /** `{ onSelectionChange, selectable, selectableMessage, initialSelected, selected }`. */\n selection?: EuiTableSelectionType<T>;\n /** `{ sort: { field, direction }, enableAllColumns, readOnly }`. */\n sorting?: EuiTableSortingType<T>;\n /** `'fixed'` or `'auto'`. Defaults to `'fixed'`. */\n tableLayout?: 'fixed' | 'auto';\n /** Smaller text and padding. */\n compressed?: boolean;\n /** Breakpoint below which rows become cards (`true` always, `false` never). Defaults to `'m'`. */\n responsiveBreakpoint?: TableResponsiveBreakpoint;\n /** The table's plain background. Defaults to `true`. */\n hasBackground?: boolean;\n /** Lets the table scroll inline (upstream beta). */\n scrollableInline?: boolean;\n /**\n * Keeps the header at the top of the viewport while scrolling a long\n * table (not in the cards layout). Upstream beta.\n */\n stickyHeader?: boolean;\n /**\n * Shows a horizontal scrollbar sticking to the bottom of the viewport\n * while the table's own one is out of view. Requires\n * `@scrollableInline`. Upstream beta.\n */\n stickyScrollbar?: boolean;\n /** Styles composed last into the root `<div>`'s class (upstream `css`). */\n css?: EuiCss;\n /** @private Whether the caller's `<:expandedRow>` block exists (when forwarding it). */\n hasExpandedRowBlock?: boolean;\n /** @private Whether the caller's `<:noItemsMessage>` block exists (when forwarding it). */\n hasNoItemsBlock?: boolean;\n };\n Blocks: {\n /** Content of an expanded row; yields the item, its id and its map value. */\n expandedRow: [item: T, itemId: ItemIdResolved, value: unknown];\n /** Content shown when there are no items (instead of `@noItemsMessage`). */\n noItemsMessage: [];\n };\n}\n\ninterface SortOptions {\n isSorted?: boolean;\n isSortAscending?: boolean;\n onSort?: () => void;\n readOnly?: boolean;\n}\n\ninterface HeaderModel {\n key: string;\n name?: EuiTableColumnName;\n sticky?: EuiTableStickyCellOptions;\n tooltipProps?: EuiTableHeaderCellTooltipProps;\n width?: string;\n minWidth?: string;\n maxWidth?: string;\n description?: string;\n mobileOptions?: TableMobileOptions;\n align: TableAlignment;\n testSubj?: string;\n sorting: SortOptions;\n}\n\ninterface CellModel<T extends object> {\n key: string;\n column: EuiBasicTableColumn<T>;\n isActions: boolean;\n content?: EuiTableContent;\n component?: EuiTableCellComponent<T>;\n value?: unknown;\n align?: TableAlignment;\n isExpander?: boolean;\n textOnly?: boolean;\n truncateText?: TableTruncateText;\n valign?: EuiTableVerticalAlign;\n setScopeRow?: boolean;\n width?: string | number;\n minWidth?: string | number;\n maxWidth?: string | number;\n hasActionsArg?: boolean | 'custom';\n showOnHover?: boolean;\n sticky?: EuiTableStickyCellOptions;\n mobileOptions?: TableMobileOptions;\n mobileContent?: EuiTableContent;\n mobileComponent?: EuiTableCellComponent<T>;\n hasMobile?: boolean;\n style?: EuiTableRowCellStyle;\n attributes?: EuiTableElementProps;\n // actions cells\n actions?: Array<Action<T>>;\n collapsed?: boolean;\n hasActions?: boolean | 'custom';\n}\n\ninterface RowModel<T extends object> {\n key: string;\n item: T;\n itemId: ItemIdResolved;\n rowIndex: number;\n displayedRowIndex: number;\n selected: boolean;\n isSelectable: boolean;\n checkbox?: {\n id: string;\n disabled: boolean;\n label: string;\n testSubj: string;\n };\n hasActions: boolean | 'custom';\n isExpandable: boolean;\n expandedRowId?: string;\n expandedValue?: unknown;\n expandedText?: EuiTableContent;\n expandedRowColSpan: number;\n rowAttributes: EuiTableElementProps;\n onClick?: (event: Event) => void;\n cells: CellModel<T>[];\n}\n\ninterface FooterModel {\n key: string;\n align?: TableAlignment;\n sticky?: EuiTableStickyCellOptions;\n content?: EuiTableContent;\n}\n\nconst STICKY_END: EuiTableStickyCellOptions = { side: 'end' };\n\nconst SAFARI_LOADING_WORKAROUND = safariLoadingWorkaround;\n\n/** Stable panelled factories per breakpoint (memoized by `useEuiBorealisStyles`). */\nconst PANELLED = new Map<unknown, ReturnType<typeof euiBasicTableWrapperPanelledStyles>>();\nfunction panelledFactory(breakpoint: TableResponsiveBreakpoint | undefined) {\n let factory = PANELLED.get(breakpoint);\n if (!factory) {\n factory = euiBasicTableWrapperPanelledStyles(breakpoint as never);\n PANELLED.set(breakpoint, factory);\n }\n return factory;\n}\n\nexport default class EuiBasicTable<T extends object = any> extends Component<\n EuiBasicTableSignature<T>\n> {\n @service declare euiI18n: EuiI18n;\n\n tableId = `__table${randomId()}`;\n selectAllId = `_selection_column-checkbox${randomId()}`;\n\n constructor(owner: Owner, args: EuiBasicTableSignature<T>['Args']) {\n super(owner, args);\n // tabs/newlines for copied selections (upstream `OverrideCopiedTabularContent`\n // registers it on the document; static handler, ref-counted across instances)\n registerDestructor(this, retainDocumentListener('copy', onTabularCopy as EventListener));\n }\n\n /** Uncontrolled selection, `null` until the user (or `initialSelected`) sets it. */\n @tracked localSelection: T[] | null = null;\n\n get pageSize(): number {\n return (\n this.args.pagination?.pageSize ?? euiTablePaginationDefaults(this).itemsPerPage\n );\n }\n\n get isSelectionControlled(): boolean {\n return !!this.args.selection?.selected;\n }\n\n /** Upstream `getDerivedStateFromProps` + `getInitialSelection`. */\n @cached\n get selectionState(): { selection: T[]; removed: boolean } {\n const { selection, itemId, items } = this.args;\n if (!selection) {\n return { selection: [], removed: false };\n }\n let unfiltered: T[];\n if (selection.selected) {\n unfiltered = selection.selected;\n } else if (this.localSelection) {\n unfiltered = this.localSelection;\n } else if (selection.initialSelected && items.length > 0) {\n unfiltered = selection.initialSelected;\n } else {\n unfiltered = [];\n }\n // Ensure we're not including selections that aren't in the\n // current `items` array (affected by pagination)\n const ids = new Set(items.map((item) => getItemId(item, itemId)));\n const filtered = unfiltered.filter((selected) =>\n ids.has(getItemId(selected, itemId))\n );\n return {\n selection: filtered,\n removed: filtered.length !== unfiltered.length\n };\n }\n\n get selection(): T[] {\n return this.selectionState.selection;\n }\n\n /** Reports selections dropped because their items left `@items`. */\n syncSelection = modifier(\n (_element: Element, [state]: [{ selection: T[]; removed: boolean }]) => {\n if (!state.removed) return;\n next(() => {\n if (this.isDestroying || this.isDestroyed) return;\n if (!this.isSelectionControlled) this.localSelection = state.selection;\n this.args.selection?.onSelectionChange?.(state.selection);\n });\n }\n );\n\n buildCriteria(): Criteria<T> {\n const criteria: Criteria<T> = {};\n if (this.args.pagination) {\n criteria.page = {\n index: this.args.pagination.pageIndex,\n size: this.pageSize\n };\n }\n if (this.args.sorting) {\n criteria.sort = this.args.sorting.sort;\n }\n return criteria;\n }\n\n changeSelection(changedSelection: T[]): void {\n const { selection } = this.args;\n if (!selection) return;\n selection.onSelectionChange?.(changedSelection);\n if (!this.isSelectionControlled) {\n this.localSelection = changedSelection;\n }\n }\n\n clearSelection(): void {\n this.changeSelection([]);\n }\n\n @action\n onPageSizeChange(size: number): void {\n this.clearSelection();\n const currentCriteria = this.buildCriteria();\n const criteria = {\n ...currentCriteria,\n // when page size changes, we take the user back to the first page\n page: { index: 0, size }\n };\n this.args.onChange?.(criteria);\n }\n\n @action\n onPageChange(index: number): void {\n this.clearSelection();\n const currentCriteria = this.buildCriteria();\n const criteria = {\n ...currentCriteria,\n page: { ...currentCriteria.page!, index }\n };\n this.args.onChange?.(criteria);\n }\n\n onColumnSortChange(column: EuiBasicTableColumn<T>): void {\n this.clearSelection();\n const currentCriteria = this.buildCriteria();\n const field = (column as EuiTableFieldDataColumnType<T>).field;\n let direction: 'asc' | 'desc' = SortDirection.ASC;\n if (\n currentCriteria.sort &&\n (currentCriteria.sort.field === field ||\n currentCriteria.sort.field === column.name)\n ) {\n direction = SortDirection.reverse(currentCriteria.sort.direction);\n }\n const criteria: Criteria<T> = {\n ...currentCriteria,\n // resetting the page if the criteria has one\n page: !currentCriteria.page\n ? undefined\n : { index: 0, size: currentCriteria.page.size },\n sort: { field: (field || column.name) as keyof T, direction }\n };\n this.args.onChange?.(criteria as Criteria<T> & CriteriaWithPagination<T>);\n }\n\n /** `enableAllColumns` makes field columns without `sortable` sortable. */\n withDefaultSortable(column: EuiBasicTableColumn<T>): EuiBasicTableColumn<T> {\n const { sorting } = this.args;\n if (\n sorting?.sort &&\n !!sorting.enableAllColumns &&\n (column as EuiTableFieldDataColumnType<T>).field &&\n (column as EuiTableFieldDataColumnType<T>).sortable == null\n ) {\n return { ...(column as EuiTableFieldDataColumnType<T>), sortable: true };\n }\n return column;\n }\n\n resolveColumnSortDirection(column: EuiBasicTableColumn<T>) {\n const { sorting } = this.args;\n const { sortable, field, name } = column as EuiTableFieldDataColumnType<T>;\n if (!sorting || !sorting.sort || !sortable) {\n return undefined;\n }\n if (sorting.sort.field === field || sorting.sort.field === name) {\n return sorting.sort.direction;\n }\n return undefined;\n }\n\n resolveColumnOnSort(column: EuiBasicTableColumn<T>) {\n const { sorting } = this.args;\n const { sortable, name } = column as EuiTableFieldDataColumnType<T>;\n if (!sorting || !sortable) {\n return undefined;\n }\n if (!this.args.onChange) {\n throw new Error(`BasicTable is configured to be sortable on column [${String(name)}] but\n [onChange] is not configured. This callback must be implemented to handle the sort requests`);\n }\n return () => this.onColumnSortChange(column);\n }\n\n sortOptions(column: EuiBasicTableColumn<T>, readOnly?: boolean): SortOptions {\n const sortDirection = this.resolveColumnSortDirection(column);\n return {\n isSorted: !!sortDirection,\n isSortAscending: sortDirection ? SortDirection.isAsc(sortDirection) : undefined,\n onSort: this.resolveColumnOnSort(column),\n readOnly: this.args.sorting?.readOnly || readOnly\n };\n }\n\n /** Upstream: a sticky actions column needs inline scrolling. */\n stickyActions(column: EuiBasicTableColumn<T>): boolean {\n return Boolean(\n this.args.scrollableInline &&\n (column as EuiTableActionsColumnType<T>).actions &&\n (column as EuiTableActionsColumnType<T>).sticky\n );\n }\n\n @cached\n get headers(): HeaderModel[] {\n return this.args.columns.map((original, index) => {\n const {\n field,\n width,\n minWidth,\n maxWidth,\n name,\n nameTooltip,\n align,\n dataType,\n sortable,\n mobileOptions,\n readOnly,\n description\n } = original as EuiTableFieldDataColumnType<T>;\n\n const shared = {\n width,\n minWidth,\n maxWidth,\n tooltipProps: nameTooltip && {\n content: nameTooltip.content,\n icon: nameTooltip.icon,\n iconProps: nameTooltip.iconProps,\n tooltipProps: {\n ...nameTooltip.tooltipProps,\n position: nameTooltip.position ?? nameTooltip.tooltipProps?.position\n }\n },\n description,\n mobileOptions,\n name,\n align: align || getAlignForDataType(dataType)\n };\n\n // actions column\n if ((original as EuiTableActionsColumnType<T>).actions) {\n return {\n ...shared,\n key: `_actions_h_${index}`,\n align: 'right',\n sticky: this.stickyActions(original) ? STICKY_END : undefined,\n sorting: {}\n };\n }\n\n // computed column: only sortable if its `sortable` is a function\n if (!field) {\n return {\n ...shared,\n key: `_computed_column_h_${index}`,\n testSubj: `tableHeaderCell_${typeof name === 'string' ? name : ''}_${index}`,\n sorting:\n this.args.sorting && typeof sortable === 'function'\n ? this.sortOptions(original, readOnly)\n : {}\n };\n }\n\n // field data column\n const column = this.withDefaultSortable(original);\n return {\n ...shared,\n key: `_data_h_${String(field)}_${index}`,\n testSubj: `tableHeaderCell_${String(field)}_${index}`,\n sorting:\n this.args.sorting && (column as EuiTableFieldDataColumnType<T>).sortable\n ? this.sortOptions(column, readOnly)\n : {}\n };\n });\n }\n\n @cached\n get mobileSortItems(): EuiTableSortMobileItemOption[] {\n const { columns, sorting } = this.args;\n if (!sorting) return [];\n const items: EuiTableSortMobileItemOption[] = [];\n columns.forEach((original, index) => {\n const column = this.withDefaultSortable(original) as EuiTableFieldDataColumnType<T>;\n if (!column.sortable || column.mobileOptions?.show === false) {\n return;\n }\n const sortDirection = this.resolveColumnSortDirection(column);\n items.push({\n name: column.name,\n key: `_data_s_${String(column.field)}_${index}`,\n onSort: this.resolveColumnOnSort(column),\n isSorted: !!sortDirection,\n isSortAscending: sortDirection ? SortDirection.isAsc(sortDirection) : undefined\n });\n });\n return items;\n }\n\n @cached\n get selectAll() {\n const { items, selection } = this.args;\n if (!selection) return undefined;\n const selectableItems = items.filter(\n (item) => !selection.selectable || selection.selectable(item)\n );\n const current = this.selection;\n const checked =\n selectableItems.length > 0 && current.length === selectableItems.length;\n const indeterminate =\n !checked && selectableItems.length > 0 && current.length > 0;\n const selectAllRows = this.euiI18n.lookupToken(\n 'euiBasicTable.selectAllRows',\n 'Select all rows'\n );\n const deselectRows = this.euiI18n.lookupToken(\n 'euiBasicTable.deselectRows',\n 'Deselect rows'\n );\n return {\n selectableItems,\n checked,\n indeterminate,\n disabled: selectableItems.length === 0,\n label: checked || indeterminate ? deselectRows : selectAllRows,\n mobileLabel: selectAllRows\n };\n }\n\n @action\n onSelectAllChange(event: Event): void {\n const state = this.selectAll;\n const input = event.target as HTMLInputElement;\n if (!state) return;\n if (input.checked && !state.indeterminate) {\n this.changeSelection(state.selectableItems);\n } else {\n this.changeSelection([]);\n }\n // like React's controlled inputs, the box shows the resulting state\n input.checked = Boolean(this.selectAll?.checked);\n input.indeterminate = Boolean(this.selectAll?.indeterminate);\n }\n\n @action\n onRowSelectionChange(row: RowModel<T>, event: Event): void {\n const input = event.target as HTMLInputElement;\n const { itemId } = this.args;\n if (input.checked) {\n this.changeSelection([...this.selection, row.item]);\n } else {\n this.changeSelection(\n this.selection.filter(\n (selected) => getItemId(selected, itemId) !== row.itemId\n )\n );\n }\n // like React's controlled inputs, the box shows the resulting state\n input.checked = this.selection.some(\n (selected) => getItemId(selected, itemId) === row.itemId\n );\n }\n\n get hasPagination(): boolean {\n return !!this.args.pagination;\n }\n\n @cached\n get rows(): RowModel<T>[] {\n const {\n items,\n columns,\n selection,\n rowHeader,\n itemIdToExpandedRowMap,\n itemId: itemIdCallback\n } = this.args;\n const selected = this.selection;\n const allDisabled = selected.length > 0;\n\n // Occupy full width of table, taking checkbox & mobile only columns into account.\n const mobileOnlyCols = columns.filter(\n (column) => (column as EuiTableFieldDataColumnType<T>)?.mobileOptions?.only\n ).length;\n const expandedRowColSpan =\n (selection ? columns.length + 1 : columns.length) - mobileOnlyCols;\n\n return items.map((item, index) => {\n // with pagination the item's index is its position in the whole dataset\n const rowIndex =\n this.hasPagination && this.pageSize > 0\n ? this.args.pagination!.pageIndex * this.pageSize + index\n : index;\n const resolvedId = getItemId(item, itemIdCallback);\n const itemId: ItemIdResolved = resolvedId != null ? resolvedId : rowIndex;\n const isSelected = !selection\n ? false\n : !!selected.find(\n (selectedItem) => getItemId(selectedItem, itemIdCallback) === itemId\n );\n\n let checkbox: RowModel<T>['checkbox'];\n let rowSelectionDisabled = false;\n if (selection) {\n const disabled = !!(selection.selectable && !selection.selectable(item));\n const title = selection.selectableMessage?.(!disabled, item);\n checkbox = {\n id: `${this.tableId}_selection_column_${itemId}-checkbox`,\n disabled,\n label:\n title ||\n this.euiI18n.lookupToken('euiBasicTable.selectThisRow', 'Select row {index}', {\n index: index + 1\n }),\n testSubj: `checkboxSelectRow-${itemId}`\n };\n rowSelectionDisabled = disabled;\n }\n\n let hasActions: boolean | 'custom' = false;\n const cells = columns.map((column, columnIndex) =>\n this.cellModel(item, itemId, column, columnIndex, rowHeader, allDisabled)\n );\n cells.forEach((cell) => {\n if (cell.isActions) {\n // default action mobile row styles take precedence over custom\n hasActions = !hasActions && cell.hasActions === 'custom' ? 'custom' : true;\n }\n });\n\n const isExpandable = !!itemIdToExpandedRowMap &&\n Object.prototype.hasOwnProperty.call(itemIdToExpandedRowMap, itemId);\n const expandedValue = isExpandable ? itemIdToExpandedRowMap![itemId] : undefined;\n const { onClick, ...rowAttributes } = getRowProps(item, this.args.rowProps);\n\n return {\n key: `row_${itemId}`,\n item,\n itemId,\n rowIndex,\n displayedRowIndex: index,\n selected: isSelected,\n isSelectable: !rowSelectionDisabled,\n checkbox,\n hasActions,\n isExpandable,\n expandedRowId: isExpandable ? `row_${itemId}_expansion` : undefined,\n expandedValue,\n expandedText: isContent(expandedValue) ? expandedValue : undefined,\n expandedRowColSpan,\n rowAttributes,\n onClick: onClick as RowModel<T>['onClick'],\n cells\n };\n });\n }\n\n cellModel(\n item: T,\n itemId: ItemIdResolved,\n column: EuiBasicTableColumn<T>,\n columnIndex: number,\n rowHeader: string | undefined,\n allDisabled: boolean\n ): CellModel<T> {\n const actionsColumn = column as EuiTableActionsColumnType<T>;\n if (actionsColumn.actions) {\n const hasCustomActions = actionsColumn.actions.some(\n (action) => !!(action as { component?: unknown }).component\n );\n // Disable all actions if any row(s) are selected\n let actualActions = actionsColumn.actions.filter(\n (action) => !action.available || action.available(item)\n );\n let collapsed = false;\n if (actualActions.length > 2) {\n // if any of the actions `isPrimary`, add them inline as well, but only the first 2,\n // which we'll force to only show on hover for desktop views\n actualActions = allDisabled\n ? []\n : actualActions\n .filter((action) => action.isPrimary)\n .slice(0, 2)\n .map((action) => ({ ...action, showOnHover: true }) as Action<T>);\n // all the actions are in a popover\n collapsed = true;\n }\n return {\n key: `record_actions_${itemId}_${columnIndex}`,\n column,\n isActions: true,\n actions: actualActions,\n collapsed,\n hasActions: hasCustomActions ? 'custom' : true,\n sticky: this.stickyActions(column) ? STICKY_END : undefined\n };\n }\n\n const fieldColumn = column as EuiTableFieldDataColumnType<T>;\n const { field, dataType } = fieldColumn;\n let content: EuiTableContent;\n let value: unknown;\n if (field) {\n value = get(item, field as string);\n if (!fieldColumn.component) {\n const renderer = fieldColumn.render || getRendererForDataType(dataType);\n content = renderer(value, item);\n }\n } else {\n const computed = column as EuiTableComputedColumnType<T>;\n if (!computed.component) {\n content = computed.render\n ? computed.render(item)\n : getRendererForDataType()(undefined);\n }\n }\n\n const {\n align,\n render,\n isExpander,\n textOnly,\n name,\n mobileOptions,\n className,\n component\n } = fieldColumn;\n // Upstream spreads `cellProps` onto `EuiTableRowCell` (after the\n // derived props, before the column's own cell props): its cell\n // arguments are consumed by the cell, the rest reaches the element.\n const { args: cellArgs, attributes } = splitCellProps(\n getCellProps(item, column, this.args.cellProps)\n );\n const fromCellProps = <K extends keyof EuiTableCellArgs>(\n key: K,\n fallback: EuiTableCellArgs[K]\n ) => (Object.prototype.hasOwnProperty.call(cellArgs, key) ? cellArgs[key] : fallback);\n // the column's own cell props come after `cellProps` (upstream spread order)\n const fromColumn = <\n K extends\n | 'width'\n | 'minWidth'\n | 'maxWidth'\n | 'truncateText'\n | 'valign'\n | 'setScopeRow'\n | 'hasActions'\n | 'showOnHover'\n | 'sticky'\n >(\n key: K,\n fallback: EuiTableCellArgs[K] = cellArgs[key]\n ) =>\n Object.prototype.hasOwnProperty.call(column, key)\n ? (column as Pick<EuiTableCellArgs, K>)[key]\n : fallback;\n const { style: cellPropsStyle, ...cellPropsAttributes } = attributes;\n const columnAttributes = columnCellAttributes(column);\n const mobileComponent = mobileOptions?.component;\n const mobileContent = mobileOptions?.render?.(item);\n return {\n key: field\n ? `_data_column_${String(field)}_${itemId}_${columnIndex}`\n : `_computed_column_${itemId}_${columnIndex}`,\n column,\n isActions: false,\n content,\n component,\n value,\n align: fromCellProps('align', align || getAlignForDataType(dataType)),\n isExpander: fromCellProps('isExpander', isExpander),\n textOnly: fromCellProps('textOnly', textOnly || (!render && !component)),\n truncateText: fromColumn('truncateText'),\n valign: fromColumn('valign'),\n setScopeRow: fromColumn(\n 'setScopeRow',\n fromCellProps('setScopeRow', !!field && field === rowHeader)\n ),\n width: fromColumn('width'),\n minWidth: fromColumn('minWidth'),\n maxWidth: fromColumn('maxWidth'),\n hasActionsArg: fromColumn('hasActions'),\n showOnHover: fromColumn('showOnHover'),\n sticky: fromColumn('sticky'),\n mobileOptions: fromCellProps('mobileOptions', {\n ...mobileOptions,\n header: mobileOptions?.header ?? name\n }),\n mobileContent,\n mobileComponent,\n hasMobile: !!mobileComponent || mobileContent != null,\n style: (Object.prototype.hasOwnProperty.call(column, 'style')\n ? fieldColumn.style\n : cellPropsStyle) as EuiTableRowCellStyle | undefined,\n attributes: {\n ...cellPropsAttributes,\n // the column's own props come after `cellProps` (upstream)\n ...columnAttributes,\n className: [attributes['className'], className].filter(Boolean).join(' ') || undefined,\n 'data-test-subj': fieldColumn['data-test-subj'] ?? attributes['data-test-subj']\n }\n };\n }\n\n @cached\n get footers(): FooterModel[] | null {\n const { items, columns, pagination, selection, scrollableInline } = this.args;\n const footers: FooterModel[] = [];\n let hasDefinedFooter = false;\n if (selection) {\n // an empty cell for the selection column\n footers.push({ key: '_selection_column_f' });\n }\n columns.forEach((column) => {\n const { mobileOptions, field, align, footer } =\n column as EuiTableFieldDataColumnType<T>;\n if (mobileOptions?.only) {\n return; // exclude columns that only exist for mobile headers\n }\n const content =\n typeof footer === 'function' ? footer({ items, pagination }) : footer;\n const sticky =\n scrollableInline &&\n (column as EuiTableActionsColumnType<T>).actions &&\n (column as EuiTableActionsColumnType<T>).sticky === true\n ? STICKY_END\n : undefined;\n if (content) {\n footers.push({ key: `footer_${String(field)}_${footers.length - 1}`, align, sticky, content });\n hasDefinedFooter = true;\n } else {\n footers.push({ key: `footer_empty_${footers.length - 1}`, align, sticky });\n }\n });\n return footers.length && hasDefinedFooter ? footers : null;\n }\n\n get colSpan(): number {\n return this.args.columns.length + (this.args.selection ? 1 : 0);\n }\n\n get noItemsMessage(): string {\n return (\n this.args.noItemsMessage ??\n this.euiI18n.lookupToken('euiBasicTable.noItemsMessage', 'No items found')\n );\n }\n\n /** Upstream: \"Pagination for table: {tableCaption}\". */\n get paginationLabel(): string {\n return this.euiI18n.lookupToken(\n 'euiBasicTable.tablePagination',\n 'Pagination for table: {tableCaption}',\n { tableCaption: this.args.tableCaption ?? '' }\n );\n }\n\n @cached\n get caption() {\n const { items, pagination, tableCaption } = this.args;\n const itemCount = items.length;\n const totalItemCount = pagination ? pagination.totalItemCount : itemCount;\n const page = pagination ? pagination.pageIndex + 1 : 1;\n const pageCount = pagination\n ? Math.ceil(pagination.totalItemCount / this.pageSize)\n : 1;\n return {\n tableName:\n tableCaption ||\n this.euiI18n.lookupToken('euiBasicTable.caption.tableName', 'Data table'),\n empty:\n itemCount === 0\n ? this.euiI18n.lookupToken('euiBasicTable.caption.emptyState', '(empty)')\n : undefined,\n itemCountPart:\n itemCount && pagination && totalItemCount > 0\n ? this.euiI18n.lookupToken(\n 'euiBasicTable.caption.itemCountPart.withTotalItemCount',\n 'Showing {itemCount} of {totalItemCount} data rows.',\n { itemCount, totalItemCount }\n )\n : undefined,\n paginationPart:\n pagination && pageCount > 1\n ? this.euiI18n.lookupToken(\n 'euiBasicTable.caption.paginationPart.withPageCount',\n 'Page {page} of {pageCount}.',\n { page, pageCount }\n )\n : undefined\n };\n }\n\n get paginationForBar(): Pagination {\n return this.args.pagination!;\n }\n\n get showPagination(): boolean {\n const { error, pagination } = this.args;\n if (!error && pagination && pagination.totalItemCount > 0) {\n if (!this.args.onChange) {\n throw new Error(`The Basic Table is configured with pagination but [onChange] is\n not configured. This callback must be implemented to handle pagination changes`);\n }\n return true;\n }\n return false;\n }\n\n @cached\n get classes() {\n const context = getEuiThemeContext(this);\n return {\n root: this.args.css ? euiClass(context, this.args.css) : undefined,\n caption: euiClass(context, euiTableCaptionStyles, euiScreenReaderOnlyCss()),\n copyMarker: euiScreenReaderOnlyClass(context),\n body: this.args.loading\n ? euiClass(context, useEuiBorealisStyles(context, euiBasicTableBodyLoading))\n : undefined,\n panelled: this.args.panelled\n ? euiClass(\n context,\n useEuiBorealisStyles(context, panelledFactory(this.args.responsiveBreakpoint))\n )\n : undefined\n };\n }\n\n <template>\n <div\n class=\"euiBasicTable {{if @loading 'euiBasicTable-loading'}} {{this.classes.root}}\"\n {{this.syncSelection this.selectionState}}\n ...attributes\n >\n {{#if @panelled}}\n <div\n class={{this.classes.panelled}}\n data-test-subj=\"euiBasicTablePanelledWrapper\"\n >\n <BasicTableContent\n @table={{this}}\n @hasExpandedRowBlock={{flag @hasExpandedRowBlock (has-block \"expandedRow\")}}\n @hasNoItemsBlock={{flag @hasNoItemsBlock (has-block \"noItemsMessage\")}}\n >\n <:expandedRow as |item itemId value|>{{yield item itemId value to=\"expandedRow\"}}</:expandedRow>\n <:noItemsMessage>{{yield to=\"noItemsMessage\"}}</:noItemsMessage>\n </BasicTableContent>\n </div>\n {{else}}\n <BasicTableContent\n @table={{this}}\n @hasExpandedRowBlock={{flag @hasExpandedRowBlock (has-block \"expandedRow\")}}\n @hasNoItemsBlock={{flag @hasNoItemsBlock (has-block \"noItemsMessage\")}}\n >\n <:expandedRow as |item itemId value|>{{yield item itemId value to=\"expandedRow\"}}</:expandedRow>\n <:noItemsMessage>{{yield to=\"noItemsMessage\"}}</:noItemsMessage>\n </BasicTableContent>\n {{/if}}\n {{#if this.showPagination}}\n <PaginationBar\n @pagination={{this.paginationForBar}}\n @panelled={{@panelled}}\n @responsiveBreakpoint={{@responsiveBreakpoint}}\n @onPageSizeChange={{this.onPageSizeChange}}\n @onPageChange={{this.onPageChange}}\n @ariaControls={{this.tableId}}\n @ariaLabel={{this.paginationLabel}}\n />\n {{/if}}\n </div>\n </template>\n}\n\n/** A forwarded block flag, or this component's own `has-block`. */\nfunction flag(forwarded: boolean | undefined, own: boolean): boolean {\n return forwarded ?? own;\n}\n\nfunction isContent(value: unknown): value is EuiTableContent {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n (typeof value === 'object' && value !== null && 'toHTML' in value)\n );\n}\n\nfunction rowClick(onClick?: (event: Event) => void) {\n return onClick;\n}\n\ninterface BasicTableContentSignature<T extends object> {\n Args: {\n table: EuiBasicTable<T>;\n hasExpandedRowBlock: boolean;\n hasNoItemsBlock: boolean;\n };\n Blocks: {\n expandedRow: [item: T, itemId: ItemIdResolved, value: unknown];\n noItemsMessage: [];\n };\n}\n\n/** The mobile header and the table (wrapped by the panelled look or not). */\nclass BasicTableContent<T extends object> extends Component<\n BasicTableContentSignature<T>\n> {\n <template>\n {{#let @table as |t|}}\n <EuiTableHeaderMobile @responsiveBreakpoint={{t.args.responsiveBreakpoint}}>\n {{#if t.selectAll}}\n <EuiToolTip\n @content={{t.selectAll.label}}\n @display=\"block\"\n @disableScreenReaderOutput={{true}}\n >\n <EuiCheckbox\n @id=\"{{t.selectAllId}}-mobile\"\n @checked={{t.selectAll.checked}}\n @indeterminate={{t.selectAll.indeterminate}}\n @disabled={{t.selectAll.disabled}}\n @label={{t.selectAll.mobileLabel}}\n aria-label={{t.selectAll.label}}\n data-test-subj=\"checkboxSelectAll\"\n {{on \"change\" t.onSelectAllChange}}\n />\n </EuiToolTip>\n {{/if}}\n {{#if t.mobileSortItems.length}}\n <EuiTableSortMobile @items={{t.mobileSortItems}} />\n {{/if}}\n </EuiTableHeaderMobile>\n {{! upstream OverrideCopiedTabularContent }}\n <TabularCopyMarker @type=\"boundary\" @class={{t.classes.copyMarker}} />\n <EuiTable\n id={{t.tableId}}\n @tableLayout={{if t.args.tableLayout t.args.tableLayout \"fixed\"}}\n @responsiveBreakpoint={{t.args.responsiveBreakpoint}}\n @compressed={{t.args.compressed}}\n @hasBackground={{t.args.hasBackground}}\n @scrollableInline={{t.args.scrollableInline}}\n @stickyHeader={{t.args.stickyHeader}}\n @stickyScrollbar={{t.args.stickyScrollbar}}\n @css={{if t.args.loading SAFARI_LOADING_WORKAROUND}}\n >\n <caption class=\"euiTableCaption euiScreenReaderOnly {{t.classes.caption}}\">\n <TabularCopyMarker @type=\"no-copy\" @class={{t.classes.copyMarker}} />\n <EuiDelayRender>\n <p>{{t.caption.tableName}}{{#if t.caption.empty}} {{t.caption.empty}}{{/if}},</p>\n {{#if t.args.items.length}}\n {{#if t.caption.itemCountPart}}<p>{{t.caption.itemCountPart}}</p>{{/if}}\n {{else}}\n {{#if @hasNoItemsBlock}}{{yield to=\"noItemsMessage\"}},{{else}}{{t.noItemsMessage}},{{/if}}\n {{/if}}\n {{#if t.caption.paginationPart}}<p>{{t.caption.paginationPart}}</p>{{/if}}\n </EuiDelayRender>\n <TabularCopyMarker @type=\"no-copy\" @class={{t.classes.copyMarker}} />\n </caption>\n <EuiTableHeader>\n {{#if t.selectAll}}\n <EuiTableHeaderCellCheckbox>\n <:default>\n <EuiToolTip\n @content={{t.selectAll.label}}\n @display=\"block\"\n @disableScreenReaderOutput={{true}}\n >\n <EuiCheckbox\n @id={{t.selectAllId}}\n @checked={{t.selectAll.checked}}\n @indeterminate={{t.selectAll.indeterminate}}\n @disabled={{t.selectAll.disabled}}\n aria-label={{t.selectAll.label}}\n data-test-subj=\"checkboxSelectAll\"\n {{on \"change\" t.onSelectAllChange}}\n />\n </EuiToolTip>\n </:default>\n <:append><TabularCopyMarker @type=\"tab\" @class={{t.classes.copyMarker}} /></:append>\n </EuiTableHeaderCellCheckbox>\n {{/if}}\n {{#each t.headers key=\"key\" as |header index|}}\n <EuiTableHeaderCell\n @width={{header.width}}\n @minWidth={{header.minWidth}}\n @maxWidth={{header.maxWidth}}\n @description={{header.description}}\n @tooltipProps={{header.tooltipProps}}\n @mobileOptions={{header.mobileOptions}}\n @align={{header.align}}\n @isSorted={{header.sorting.isSorted}}\n @isSortAscending={{header.sorting.isSortAscending}}\n @onSort={{header.sorting.onSort}}\n @readOnly={{header.sorting.readOnly}}\n @sticky={{header.sticky}}\n data-test-subj={{header.testSubj}}\n >\n <:default><TableNode @node={{header.name}} /></:default>\n <:append><TabularCopyMarker\n @type={{copyMarkerType index t.args.columns.length}}\n @class={{t.classes.copyMarker}}\n /></:append>\n </EuiTableHeaderCell>\n {{/each}}\n </EuiTableHeader>\n <EuiTableBody class={{t.classes.body}}>\n {{#if t.args.error}}\n <EuiTableRow>\n <EuiTableRowCell @align=\"center\" colspan={{t.colSpan}} @mobileOptions={{FULL_WIDTH}}>\n <EuiIcon @type=\"minusCircle\" @color=\"danger\" aria-hidden=\"true\" />\n {{t.args.error}}\n </EuiTableRowCell>\n </EuiTableRow>\n {{else if t.args.items.length}}\n {{#each t.rows key=\"key\" as |row|}}\n <EuiTableRow\n aria-owns={{row.expandedRowId}}\n @hasSelection={{if t.args.selection true false}}\n @isSelectable={{row.isSelectable}}\n @isSelected={{row.selected}}\n @hasActions={{row.hasActions}}\n @isExpandable={{row.isExpandable}}\n @onClick={{rowClick row.onClick}}\n {{elementProps row.rowAttributes}}\n >\n {{#if row.checkbox}}\n <EuiTableRowCellCheckbox>\n <:default>\n <EuiToolTip\n @content={{row.checkbox.label}}\n @display=\"block\"\n @disableScreenReaderOutput={{true}}\n >\n <EuiCheckbox\n @id={{row.checkbox.id}}\n @disabled={{row.checkbox.disabled}}\n @checked={{row.selected}}\n aria-label={{row.checkbox.label}}\n data-test-subj={{row.checkbox.testSubj}}\n {{on \"change\" (fn t.onRowSelectionChange row)}}\n />\n </EuiToolTip>\n </:default>\n <:append><TabularCopyMarker @type=\"tab\" @class={{t.classes.copyMarker}} /></:append>\n </EuiTableRowCellCheckbox>\n {{/if}}\n {{#each row.cells key=\"key\" as |cell columnIndex|}}\n {{#if cell.isActions}}\n <EuiTableRowCell\n @align=\"right\"\n @textOnly={{false}}\n @hasActions={{cell.hasActions}}\n @sticky={{cell.sticky}}\n >\n <:default>\n <ExpandedItemActions\n @actions={{actionsOrEmpty cell.actions}}\n @actionsDisabled={{isTrue t.selection.length}}\n @itemId={{row.itemId}}\n @item={{row.item}}\n />\n {{#if cell.collapsed}}\n <div>\n <CollapsedItemActions\n @actions={{actionsOf cell.column}}\n @actionsDisabled={{isTrue t.selection.length}}\n @itemId={{row.itemId}}\n @item={{row.item}}\n @displayedRowIndex={{row.rowIndex}}\n />\n </div>\n {{/if}}\n </:default>\n <:append><TabularCopyMarker\n @type={{copyMarkerType columnIndex t.args.columns.length}}\n @class={{t.classes.copyMarker}}\n /></:append>\n </EuiTableRowCell>\n {{else if cell.hasMobile}}\n <EuiTableRowCell\n @align={{cell.align}}\n @isExpander={{cell.isExpander}}\n @textOnly={{cell.textOnly}}\n @truncateText={{cell.truncateText}}\n @valign={{cell.valign}}\n @setScopeRow={{cell.setScopeRow}}\n @width={{cell.width}}\n @minWidth={{cell.minWidth}}\n @maxWidth={{cell.maxWidth}}\n @hasActions={{cell.hasActionsArg}}\n @showOnHover={{cell.showOnHover}}\n @sticky={{cell.sticky}}\n @mobileOptions={{cell.mobileOptions}}\n @style={{cell.style}}\n {{elementProps cell.attributes}}\n >\n <:default>\n {{#if cell.component}}\n <cell.component @item={{row.item}} @value={{cell.value}} @column={{cell.column}} />\n {{else}}\n {{cell.content}}\n {{/if}}\n </:default>\n <:mobile>\n {{#if cell.mobileComponent}}\n <cell.mobileComponent @item={{row.item}} @value={{cell.value}} @column={{cell.column}} />\n {{else}}\n {{cell.mobileContent}}\n {{/if}}\n </:mobile>\n <:append><TabularCopyMarker\n @type={{copyMarkerType columnIndex t.args.columns.length}}\n @class={{t.classes.copyMarker}}\n /></:append>\n </EuiTableRowCell>\n {{else}}\n <EuiTableRowCell\n @align={{cell.align}}\n @isExpander={{cell.isExpander}}\n @textOnly={{cell.textOnly}}\n @truncateText={{cell.truncateText}}\n @valign={{cell.valign}}\n @setScopeRow={{cell.setScopeRow}}\n @width={{cell.width}}\n @minWidth={{cell.minWidth}}\n @maxWidth={{cell.maxWidth}}\n @hasActions={{cell.hasActionsArg}}\n @showOnHover={{cell.showOnHover}}\n @sticky={{cell.sticky}}\n @mobileOptions={{cell.mobileOptions}}\n @style={{cell.style}}\n {{elementProps cell.attributes}}\n >\n <:default>\n {{#if cell.component}}\n <cell.component @item={{row.item}} @value={{cell.value}} @column={{cell.column}} />\n {{else}}\n {{cell.content}}\n {{/if}}\n </:default>\n <:append><TabularCopyMarker\n @type={{copyMarkerType columnIndex t.args.columns.length}}\n @class={{t.classes.copyMarker}}\n /></:append>\n </EuiTableRowCell>\n {{/if}}\n {{/each}}\n </EuiTableRow>\n {{#if row.isExpandable}}\n <EuiTableRow\n id={{row.expandedRowId}}\n @isExpandedRow={{true}}\n @hasSelection={{if t.args.selection true false}}\n >\n <EuiTableRowCell colspan={{row.expandedRowColSpan}} @textOnly={{false}}>\n <:default>\n {{#if @hasExpandedRowBlock}}\n {{yield row.item row.itemId row.expandedValue to=\"expandedRow\"}}\n {{else}}\n {{row.expandedText}}\n {{/if}}\n </:default>\n <:append><TabularCopyMarker @type=\"newline\" @class={{t.classes.copyMarker}} /></:append>\n </EuiTableRowCell>\n </EuiTableRow>\n {{/if}}\n {{/each}}\n {{else}}\n <EuiTableRow>\n <EuiTableRowCell @align=\"center\" colspan={{t.colSpan}} @mobileOptions={{FULL_WIDTH}}>\n {{#if @hasNoItemsBlock}}\n {{yield to=\"noItemsMessage\"}}\n {{else}}\n {{t.noItemsMessage}}\n {{/if}}\n </EuiTableRowCell>\n </EuiTableRow>\n {{/if}}\n </EuiTableBody>\n {{#if t.footers}}\n <EuiTableFooter>\n {{#each t.footers key=\"key\" as |footer|}}\n <EuiTableFooterCell @align={{footer.align}} @sticky={{footer.sticky}}>{{footer.content}}</EuiTableFooterCell>\n {{/each}}\n </EuiTableFooter>\n {{/if}}\n </EuiTable>\n <TabularCopyMarker @type=\"boundary\" @class={{t.classes.copyMarker}} />\n {{/let}}\n </template>\n}\n\nconst FULL_WIDTH = { width: '100%' };\n\n/** Upstream `renderCopyChar`: a tab after each cell, a newline after the last. */\nfunction copyMarkerType(columnIndex: number, columnCount: number): 'tab' | 'newline' {\n return columnIndex === columnCount - 1 ? 'newline' : 'tab';\n}\n\nfunction actionsOrEmpty<T extends object>(actions?: Array<Action<T>>): Array<Action<T>> {\n return actions ?? [];\n}\n\nfunction isTrue(value: unknown): boolean {\n return Boolean(value);\n}\n\nfunction actionsOf<T extends object>(column: EuiBasicTableColumn<T>): Array<Action<T>> {\n return (column as EuiTableActionsColumnType<T>).actions;\n}\n\n"],"names":["STICKY_END","side","SAFARI_LOADING_WORKAROUND","safariLoadingWorkaround","PANELLED","Map","panelledFactory","breakpoint","factory","get","euiBasicTableWrapperPanelledStyles","set","EuiBasicTable","Component","g","prototype","service","i","tableId","randomId","selectAllId","constructor","owner","args","registerDestructor","retainDocumentListener","onTabularCopy","tracked","pageSize","pagination","euiTablePaginationDefaults","itemsPerPage","isSelectionControlled","selection","selected","selectionState","itemId","items","removed","unfiltered","localSelection","initialSelected","length","ids","Set","map","item","getItemId","filtered","filter","has","n","cached","syncSelection","modifier","_element","state","next","isDestroying","isDestroyed","onSelectionChange","buildCriteria","criteria","page","index","pageIndex","size","sorting","sort","changeSelection","changedSelection","clearSelection","onPageSizeChange","currentCriteria","onChange","action","onPageChange","onColumnSortChange","column","field","direction","SortDirection","ASC","name","reverse","undefined","withDefaultSortable","enableAllColumns","sortable","resolveColumnSortDirection","resolveColumnOnSort","Error","String","sortOptions","readOnly","sortDirection","isSorted","isSortAscending","isAsc","onSort","stickyActions","Boolean","scrollableInline","actions","sticky","headers","columns","original","width","minWidth","maxWidth","nameTooltip","align","dataType","mobileOptions","description","shared","tooltipProps","content","icon","iconProps","position","getAlignForDataType","key","testSubj","mobileSortItems","forEach","show","push","selectAll","selectableItems","selectable","current","checked","indeterminate","selectAllRows","euiI18n","lookupToken","deselectRows","disabled","label","mobileLabel","onSelectAllChange","event","input","target","onRowSelectionChange","row","some","hasPagination","rows","rowHeader","itemIdToExpandedRowMap","itemIdCallback","allDisabled","mobileOnlyCols","only","expandedRowColSpan","rowIndex","resolvedId","isSelected","find","selectedItem","checkbox","rowSelectionDisabled","title","selectableMessage","id","hasActions","cells","columnIndex","cellModel","cell","isActions","isExpandable","Object","hasOwnProperty","call","expandedValue","onClick","rowAttributes","getRowProps","rowProps","displayedRowIndex","isSelectable","expandedRowId","expandedText","isContent","actionsColumn","hasCustomActions","component","actualActions","available","collapsed","isPrimary","slice","showOnHover","fieldColumn","value","renderer","render","getRendererForDataType","computed","isExpander","textOnly","className","cellArgs","attributes","splitCellProps","getCellProps","cellProps","fromCellProps","fallback","fromColumn","style","cellPropsStyle","cellPropsAttributes","columnAttributes","columnCellAttributes","mobileComponent","mobileContent","truncateText","valign","setScopeRow","hasActionsArg","header","hasMobile","join","footers","hasDefinedFooter","footer","colSpan","noItemsMessage","paginationLabel","tableCaption","caption","itemCount","totalItemCount","pageCount","Math","ceil","tableName","empty","itemCountPart","paginationPart","paginationForBar","showPagination","error","classes","context","getEuiThemeContext","root","css","euiClass","euiTableCaptionStyles","euiScreenReaderOnlyCss","copyMarker","euiScreenReaderOnlyClass","body","loading","useEuiBorealisStyles","euiBasicTableBodyLoading","panelled","responsiveBreakpoint","setComponentTemplate","precompileTemplate","strictMode","scope","BasicTableContent","flag","PaginationBar","forwarded","own","rowClick","EuiTableHeaderMobile","EuiToolTip","EuiCheckbox","on","EuiTableSortMobile","TabularCopyMarker","EuiTable","EuiDelayRender","EuiTableHeader","EuiTableHeaderCellCheckbox","EuiTableHeaderCell","TableNode","copyMarkerType","EuiTableBody","EuiTableRow","EuiTableRowCell","FULL_WIDTH","EuiIcon","elementProps","EuiTableRowCellCheckbox","fn","ExpandedItemActions","actionsOrEmpty","isTrue","CollapsedItemActions","actionsOf","EuiTableFooter","EuiTableFooterCell","columnCount"],"mappings":"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"}
@@ -3,7 +3,7 @@ import { tracked, cached } from '@glimmer/tracking';
3
3
  import { fn } from '@ember/helper';
4
4
  import { on } from '@ember/modifier';
5
5
  import { action } from '@ember/object';
6
- import { next } from '@ember/runloop';
6
+ import { cancel, next } from '@ember/runloop';
7
7
  import { service } from '@ember/service';
8
8
  import chroma from 'chroma-js';
9
9
  import { modifier } from 'ember-modifier';
@@ -66,6 +66,11 @@ class EuiColorPicker extends Component {
66
66
  this.prevColor = color ? color.rgba().join() : null;
67
67
  this.colorAsHsv = color ? hsvOf(color) : HSV_FALLBACK;
68
68
  }
69
+ closeTimer;
70
+ willDestroy() {
71
+ super.willDestroy();
72
+ cancel(this.closeTimer);
73
+ }
69
74
  get id() {
70
75
  return this.args.id ?? this.ownId;
71
76
  }
@@ -239,7 +244,8 @@ class EuiColorPicker extends Component {
239
244
  }
240
245
  finalSelection() {
241
246
  this.input?.focus();
242
- next(this, this.closeColorSelector);
247
+ cancel(this.closeTimer);
248
+ this.closeTimer = next(this, this.closeColorSelector);
243
249
  }
244
250
  static {
245
251
  n(this.prototype, "finalSelection", [action]);