@cloudscape-design/components-themeable 3.0.1334 → 3.0.1336

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 (27) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +1 -1
  3. package/lib/internal/template/internal/base-component/styles.scoped.css +1 -1
  4. package/lib/internal/template/internal/environment.js +2 -2
  5. package/lib/internal/template/internal/environment.json +2 -2
  6. package/lib/internal/template/internal/utils/scrollable-containers.d.ts +5 -0
  7. package/lib/internal/template/internal/utils/scrollable-containers.d.ts.map +1 -1
  8. package/lib/internal/template/internal/utils/scrollable-containers.js +16 -0
  9. package/lib/internal/template/internal/utils/scrollable-containers.js.map +1 -1
  10. package/lib/internal/template/table/index.d.ts.map +1 -1
  11. package/lib/internal/template/table/index.js +7 -4
  12. package/lib/internal/template/table/index.js.map +1 -1
  13. package/lib/internal/template/table/interfaces.d.ts +14 -1
  14. package/lib/internal/template/table/interfaces.d.ts.map +1 -1
  15. package/lib/internal/template/table/interfaces.js.map +1 -1
  16. package/lib/internal/template/table/internal.d.ts.map +1 -1
  17. package/lib/internal/template/table/internal.js +19 -6
  18. package/lib/internal/template/table/internal.js.map +1 -1
  19. package/lib/internal/template/table/use-auto-skeleton-rows.d.ts +12 -0
  20. package/lib/internal/template/table/use-auto-skeleton-rows.d.ts.map +1 -0
  21. package/lib/internal/template/table/use-auto-skeleton-rows.js +100 -0
  22. package/lib/internal/template/table/use-auto-skeleton-rows.js.map +1 -0
  23. package/lib/internal/template/test-utils/dom/pagination/index.js +2 -2
  24. package/lib/internal/template/test-utils/dom/pagination/index.js.map +1 -1
  25. package/lib/internal/template/test-utils/selectors/pagination/index.js +2 -2
  26. package/lib/internal/template/test-utils/selectors/pagination/index.js.map +1 -1
  27. package/package.json +1 -1
@@ -1,3 +1,3 @@
1
1
  {
2
- "commit": "bc0a6c94cacf6028d2505ddf05f0f4cadafa7061"
2
+ "commit": "409fa3800de4aa00f2e33cb947505d8d073f7043"
3
3
  }
@@ -1,6 +1,6 @@
1
1
 
2
2
  // Build environment
3
- $awsui-commit-hash: "bc0a6c94";
3
+ $awsui-commit-hash: "409fa380";
4
4
  // Manually managed CSS-variables
5
5
  $maxContentWidth: --awsui-max-content-width-esndbs;
6
6
  $minContentWidth: --awsui-min-content-width-esndbs;
@@ -4149,5 +4149,5 @@
4149
4149
  }
4150
4150
  }
4151
4151
  :root {
4152
- --awsui-version-info-bc0a6c94: true;
4152
+ --awsui-version-info-409fa380: true;
4153
4153
  }
@@ -1,6 +1,6 @@
1
1
  export var PACKAGE_SOURCE = "components";
2
- export var PACKAGE_VERSION = "3.0.0 (bc0a6c94)";
3
- export var GIT_SHA = "bc0a6c94";
2
+ export var PACKAGE_VERSION = "3.0.0 (409fa380)";
3
+ export var GIT_SHA = "409fa380";
4
4
  export var THEME = "open-source-visual-refresh";
5
5
  export var SYSTEM = "core";
6
6
  export var ALWAYS_VISUAL_REFRESH = true;
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "PACKAGE_SOURCE": "components",
3
- "PACKAGE_VERSION": "3.0.0 (bc0a6c94)",
4
- "GIT_SHA": "bc0a6c94",
3
+ "PACKAGE_VERSION": "3.0.0 (409fa380)",
4
+ "GIT_SHA": "409fa380",
5
5
  "THEME": "default",
6
6
  "SYSTEM": "core",
7
7
  "ALWAYS_VISUAL_REFRESH": false,
@@ -30,6 +30,11 @@ export declare function calculateScroll({ insetBlockStart, blockSize }: Bounding
30
30
  * Supports only vertical scrolling.
31
31
  */
32
32
  export declare function scrollRectangleIntoView(box: BoundingBox, scrollableParent?: HTMLElement): void;
33
+ /**
34
+ * Returns the element's ancestors whose computed `overflow-y` is `auto` or `scroll`,
35
+ * ordered nearest-first. These are the ancestors capable of producing a vertical scrollbar.
36
+ */
37
+ export declare function getScrollableParents(element: HTMLElement): HTMLElement[];
33
38
  export declare function getFirstScrollableParent(element: HTMLElement): HTMLElement | undefined;
34
39
  export {};
35
40
  //# sourceMappingURL=scrollable-containers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"scrollable-containers.d.ts","sourceRoot":"","sources":["../../../../src/internal/utils/scrollable-containers.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,kBAAkB,GAAI,SAAS,WAAW,KAAG,WAAW,EAUpE,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,gFAKzC;IACD,OAAO,EAAE,WAAW,CAAC;IACrB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,wBAAwB,EAAE,OAAO,CAAC;CACnC,KAAG,WAAW,EAuCd,CAAC;AAEF,KAAK,qBAAqB,GAAG,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1E;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,OAAO,GAAE,qBAA+D,QAGzE;AAED,wBAAgB,eAAe,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,WAAW,UAW1E;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,EAAE,gBAAgB,CAAC,EAAE,WAAW,QAKvF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS,CAOtF"}
1
+ {"version":3,"file":"scrollable-containers.d.ts","sourceRoot":"","sources":["../../../../src/internal/utils/scrollable-containers.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,eAAO,MAAM,kBAAkB,GAAI,SAAS,WAAW,KAAG,WAAW,EAUpE,CAAC;AAEF,eAAO,MAAM,2BAA2B,GAAI,gFAKzC;IACD,OAAO,EAAE,WAAW,CAAC;IACrB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,wBAAwB,EAAE,OAAO,CAAC;CACnC,KAAG,WAAW,EAuCd,CAAC;AAEF,KAAK,qBAAqB,GAAG,UAAU,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAE1E;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,OAAO,GAAE,qBAA+D,QAGzE;AAED,wBAAgB,eAAe,CAAC,EAAE,eAAe,EAAE,SAAS,EAAE,EAAE,WAAW,UAW1E;AAED;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,WAAW,EAAE,gBAAgB,CAAC,EAAE,WAAW,QAKvF;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,EAAE,CAUxE;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS,CAOtF"}
@@ -1,6 +1,7 @@
1
1
  // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
2
  // SPDX-License-Identifier: Apache-2.0
3
3
  import { findUpUntil } from '@cloudscape-design/component-toolkit/dom';
4
+ import { isHTMLElement } from './dom';
4
5
  export const getOverflowParents = (element) => {
5
6
  const parents = [];
6
7
  let node = element;
@@ -89,6 +90,21 @@ export function scrollRectangleIntoView(box, scrollableParent) {
89
90
  (scrollableParent || window).scrollBy(0, scrollAmount);
90
91
  }
91
92
  }
93
+ /**
94
+ * Returns the element's ancestors whose computed `overflow-y` is `auto` or `scroll`,
95
+ * ordered nearest-first. These are the ancestors capable of producing a vertical scrollbar.
96
+ */
97
+ export function getScrollableParents(element) {
98
+ const parents = [];
99
+ let node = element.parentElement;
100
+ while (node) {
101
+ if (isHTMLElement(node) && ['auto', 'scroll'].includes(getComputedStyle(node).overflowY)) {
102
+ parents.push(node);
103
+ }
104
+ node = node.parentElement;
105
+ }
106
+ return parents;
107
+ }
92
108
  export function getFirstScrollableParent(element) {
93
109
  return (findUpUntil(element, el => {
94
110
  const overflows = el.scrollHeight > el.clientHeight;
@@ -1 +1 @@
1
- {"version":3,"file":"scrollable-containers.js","sourceRoot":"","sources":["../../../../src/internal/utils/scrollable-containers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { findUpUntil } from '@cloudscape-design/component-toolkit/dom';\n\nexport interface BoundingBox {\n blockSize: number;\n inlineSize: number;\n insetBlockStart: number;\n insetInlineStart: number;\n}\n\nexport const getOverflowParents = (element: HTMLElement): HTMLElement[] => {\n const parents = [];\n let node: HTMLElement | null = element;\n\n while ((node = node.parentElement) && node !== element.ownerDocument.body) {\n if (getComputedStyle(node).overflow !== 'visible') {\n parents.push(node);\n }\n }\n return parents;\n};\n\nexport const getOverflowParentDimensions = ({\n element,\n excludeClosestParent = false,\n expandToViewport = false,\n canExpandOutsideViewport = false,\n}: {\n element: HTMLElement;\n excludeClosestParent: boolean;\n expandToViewport: boolean;\n canExpandOutsideViewport: boolean;\n}): BoundingBox[] => {\n const parents = expandToViewport\n ? []\n : getOverflowParents(element).map(el => {\n const { height, width, top, left } = el.getBoundingClientRect();\n return {\n // Treat the whole scrollable area as the available height\n // if we're allowed to expand past the viewport.\n blockSize: canExpandOutsideViewport ? el.scrollHeight : height,\n inlineSize: width,\n insetBlockStart: top,\n insetInlineStart: left,\n };\n });\n\n if (canExpandOutsideViewport && !expandToViewport) {\n const document = element.ownerDocument;\n const documentDimensions = document.documentElement.getBoundingClientRect();\n parents.push({\n inlineSize: Math.max(documentDimensions.width, document.documentElement.clientWidth),\n blockSize: Math.max(documentDimensions.height, document.documentElement.clientHeight),\n insetBlockStart: documentDimensions.top,\n insetInlineStart: documentDimensions.left,\n });\n } else {\n const owningWindow = element.ownerDocument.defaultView ?? window;\n parents.push({\n blockSize: owningWindow.visualViewport?.height ?? owningWindow.innerHeight,\n inlineSize: owningWindow.visualViewport?.width ?? owningWindow.innerWidth,\n insetBlockStart: 0,\n insetInlineStart: 0,\n });\n }\n\n if (excludeClosestParent && !expandToViewport) {\n parents.shift();\n }\n\n return parents;\n};\n\ntype ScrollIntoViewOptions = Parameters<HTMLElement['scrollIntoView']>[0];\n\n/**\n * Calls `scrollIntoView` on the provided element with sensible defaults. If\n * the element does not exist or does not support the `scrollIntoView`\n * method, it will do nothing. This wrapper is created to support environments\n * where the native function is not available like JSDom (feature request:\n * https://github.com/jsdom/jsdom/issues/1422).\n *\n * @param element to be scrolled into view\n * @param options native options for `scrollIntoView`\n */\nexport function scrollElementIntoView(\n element: HTMLElement | undefined,\n options: ScrollIntoViewOptions = { block: 'nearest', inline: 'nearest' }\n) {\n element?.scrollIntoView?.(options);\n}\n\nexport function calculateScroll({ insetBlockStart, blockSize }: BoundingBox) {\n if (insetBlockStart < 0) {\n return insetBlockStart;\n } else if (insetBlockStart + blockSize > window.innerHeight) {\n if (blockSize > window.innerHeight) {\n return insetBlockStart;\n } else {\n return insetBlockStart + blockSize - window.innerHeight;\n }\n }\n return 0;\n}\n\n/**\n * For elements with fixed position, the browser's native scrollIntoView API doesn't work,\n * so we need to manually scroll to the element's position.\n * Supports only vertical scrolling.\n */\nexport function scrollRectangleIntoView(box: BoundingBox, scrollableParent?: HTMLElement) {\n const scrollAmount = calculateScroll(box);\n if (scrollAmount) {\n (scrollableParent || window).scrollBy(0, scrollAmount);\n }\n}\n\nexport function getFirstScrollableParent(element: HTMLElement): HTMLElement | undefined {\n return (\n findUpUntil(element, el => {\n const overflows = el.scrollHeight > el.clientHeight;\n return overflows && ['scroll', 'auto'].includes(getComputedStyle(el).overflowY);\n }) || undefined\n );\n}\n"]}
1
+ {"version":3,"file":"scrollable-containers.js","sourceRoot":"","sources":["../../../../src/internal/utils/scrollable-containers.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { findUpUntil } from '@cloudscape-design/component-toolkit/dom';\n\nimport { isHTMLElement } from './dom';\n\nexport interface BoundingBox {\n blockSize: number;\n inlineSize: number;\n insetBlockStart: number;\n insetInlineStart: number;\n}\n\nexport const getOverflowParents = (element: HTMLElement): HTMLElement[] => {\n const parents = [];\n let node: HTMLElement | null = element;\n\n while ((node = node.parentElement) && node !== element.ownerDocument.body) {\n if (getComputedStyle(node).overflow !== 'visible') {\n parents.push(node);\n }\n }\n return parents;\n};\n\nexport const getOverflowParentDimensions = ({\n element,\n excludeClosestParent = false,\n expandToViewport = false,\n canExpandOutsideViewport = false,\n}: {\n element: HTMLElement;\n excludeClosestParent: boolean;\n expandToViewport: boolean;\n canExpandOutsideViewport: boolean;\n}): BoundingBox[] => {\n const parents = expandToViewport\n ? []\n : getOverflowParents(element).map(el => {\n const { height, width, top, left } = el.getBoundingClientRect();\n return {\n // Treat the whole scrollable area as the available height\n // if we're allowed to expand past the viewport.\n blockSize: canExpandOutsideViewport ? el.scrollHeight : height,\n inlineSize: width,\n insetBlockStart: top,\n insetInlineStart: left,\n };\n });\n\n if (canExpandOutsideViewport && !expandToViewport) {\n const document = element.ownerDocument;\n const documentDimensions = document.documentElement.getBoundingClientRect();\n parents.push({\n inlineSize: Math.max(documentDimensions.width, document.documentElement.clientWidth),\n blockSize: Math.max(documentDimensions.height, document.documentElement.clientHeight),\n insetBlockStart: documentDimensions.top,\n insetInlineStart: documentDimensions.left,\n });\n } else {\n const owningWindow = element.ownerDocument.defaultView ?? window;\n parents.push({\n blockSize: owningWindow.visualViewport?.height ?? owningWindow.innerHeight,\n inlineSize: owningWindow.visualViewport?.width ?? owningWindow.innerWidth,\n insetBlockStart: 0,\n insetInlineStart: 0,\n });\n }\n\n if (excludeClosestParent && !expandToViewport) {\n parents.shift();\n }\n\n return parents;\n};\n\ntype ScrollIntoViewOptions = Parameters<HTMLElement['scrollIntoView']>[0];\n\n/**\n * Calls `scrollIntoView` on the provided element with sensible defaults. If\n * the element does not exist or does not support the `scrollIntoView`\n * method, it will do nothing. This wrapper is created to support environments\n * where the native function is not available like JSDom (feature request:\n * https://github.com/jsdom/jsdom/issues/1422).\n *\n * @param element to be scrolled into view\n * @param options native options for `scrollIntoView`\n */\nexport function scrollElementIntoView(\n element: HTMLElement | undefined,\n options: ScrollIntoViewOptions = { block: 'nearest', inline: 'nearest' }\n) {\n element?.scrollIntoView?.(options);\n}\n\nexport function calculateScroll({ insetBlockStart, blockSize }: BoundingBox) {\n if (insetBlockStart < 0) {\n return insetBlockStart;\n } else if (insetBlockStart + blockSize > window.innerHeight) {\n if (blockSize > window.innerHeight) {\n return insetBlockStart;\n } else {\n return insetBlockStart + blockSize - window.innerHeight;\n }\n }\n return 0;\n}\n\n/**\n * For elements with fixed position, the browser's native scrollIntoView API doesn't work,\n * so we need to manually scroll to the element's position.\n * Supports only vertical scrolling.\n */\nexport function scrollRectangleIntoView(box: BoundingBox, scrollableParent?: HTMLElement) {\n const scrollAmount = calculateScroll(box);\n if (scrollAmount) {\n (scrollableParent || window).scrollBy(0, scrollAmount);\n }\n}\n\n/**\n * Returns the element's ancestors whose computed `overflow-y` is `auto` or `scroll`,\n * ordered nearest-first. These are the ancestors capable of producing a vertical scrollbar.\n */\nexport function getScrollableParents(element: HTMLElement): HTMLElement[] {\n const parents: HTMLElement[] = [];\n let node = element.parentElement;\n while (node) {\n if (isHTMLElement(node) && ['auto', 'scroll'].includes(getComputedStyle(node).overflowY)) {\n parents.push(node);\n }\n node = node.parentElement;\n }\n return parents;\n}\n\nexport function getFirstScrollableParent(element: HTMLElement): HTMLElement | undefined {\n return (\n findUpUntil(element, el => {\n const overflows = el.scrollHeight > el.clientHeight;\n return overflows && ['scroll', 'auto'].includes(getComputedStyle(el).overflowY);\n }) || undefined\n );\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/table/index.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,QAAA,MAAM,KAAK,EAsHN,mBAAmB,CAAC;AAGzB,eAAe,KAAK,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/table/index.tsx"],"names":[],"mappings":"AAeA,OAAO,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG/D,OAAO,EAAE,UAAU,EAAE,CAAC;AACtB,QAAA,MAAM,KAAK,EAyHN,mBAAmB,CAAC;AAGzB,eAAe,KAAK,CAAC"}
@@ -12,7 +12,7 @@ import { getColumnGroupsDepth } from './column-groups/utils';
12
12
  import { getSortingColumnId } from './header-cell/utils';
13
13
  import InternalTable, { InternalTableAsSubstep } from './internal';
14
14
  const Table = React.forwardRef(({ items = [], selectedItems = [], variant = 'container', contentDensity = 'comfortable', cellVerticalAlign = 'middle', firstIndex = 1, ...props }, ref) => {
15
- var _a, _b, _c, _d, _e, _f, _g;
15
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l;
16
16
  const analyticsMetadata = getAnalyticsMetadataProps(props);
17
17
  const hasHiddenColumns = (props.visibleColumns && props.visibleColumns.length < props.columnDefinitions.length) ||
18
18
  ((_a = props.columnDisplay) === null || _a === void 0 ? void 0 : _a.some(col => col.type !== 'group' && !col.visible));
@@ -35,9 +35,12 @@ const Table = React.forwardRef(({ items = [], selectedItems = [], variant = 'con
35
35
  expandableRows: !!props.expandableRows,
36
36
  progressiveLoading: !!props.getLoadingStatus,
37
37
  hasSkeleton: !!props.skeleton,
38
- skeletonTotalRows: (_e = (_d = props.skeleton) === null || _d === void 0 ? void 0 : _d.totalRows) !== null && _e !== void 0 ? _e : null,
39
- groupSelection: !!((_f = props.expandableRows) === null || _f === void 0 ? void 0 : _f.groupSelection),
40
- columnGroups: !!((_g = props.groupDefinitions) === null || _g === void 0 ? void 0 : _g.length),
38
+ skeletonTotalRows: typeof ((_d = props.skeleton) === null || _d === void 0 ? void 0 : _d.totalRows) === 'number' ? props.skeleton.totalRows : null,
39
+ skeletonAutoRows: ((_e = props.skeleton) === null || _e === void 0 ? void 0 : _e.totalRows) === 'auto',
40
+ skeletonMaxAutoRows: ((_f = props.skeleton) === null || _f === void 0 ? void 0 : _f.totalRows) === 'auto' ? ((_g = props.skeleton.maxAutoRows) !== null && _g !== void 0 ? _g : null) : null,
41
+ skeletonMinAutoRows: ((_h = props.skeleton) === null || _h === void 0 ? void 0 : _h.totalRows) === 'auto' ? ((_j = props.skeleton.minAutoRows) !== null && _j !== void 0 ? _j : null) : null,
42
+ groupSelection: !!((_k = props.expandableRows) === null || _k === void 0 ? void 0 : _k.groupSelection),
43
+ columnGroups: !!((_l = props.groupDefinitions) === null || _l === void 0 ? void 0 : _l.length),
41
44
  columnGroupsDepth: getColumnGroupsDepth(props.columnDisplay),
42
45
  cellCounters: props.columnDefinitions.filter(dev => !!dev.counter).length,
43
46
  loaderCounters: !!props.renderLoaderCounter,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/table/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,YAAY,CAAC;AACb,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,kEAAkE,CAAC;AAEjH,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,OAAO,EAAkC,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvG,OAAO,EAAE,6BAA6B,EAAE,MAAM,6DAA6D,CAAC;AAC5G,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,aAAa,EAAE,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGnE,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAC5B,CACE,EACE,KAAK,GAAG,EAAE,EACV,aAAa,GAAG,EAAE,EAClB,OAAO,GAAG,WAAW,EACrB,cAAc,GAAG,aAAa,EAC9B,iBAAiB,GAAG,QAAQ,EAC5B,UAAU,GAAG,CAAC,EACd,GAAG,KAAK,EACM,EAChB,GAA8B,EAC9B,EAAE;;IACF,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,KAAuC,CAAC,CAAC;IAC7F,MAAM,gBAAgB,GACpB,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC;SACtF,MAAA,KAAK,CAAC,aAAa,0CAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA,CAAC;IACzE,MAAM,gBAAgB,GAAG,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,aAAa,0CAAE,KAAK,CAAA,IAAI,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,aAAa,0CAAE,IAAI,CAAA,CAAC;IACrF,MAAM,kBAAkB,GAAG,gBAAgB,CACzC,OAAO,EACP;QACE,KAAK,EAAE;YACL,cAAc;YACd,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,OAAO;YACP,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;YACxD,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;YACpC,iBAAiB;SAClB;QACD,QAAQ,EAAE;YACR,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc;YACtC,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB;YAC5C,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ;YAC7B,iBAAiB,EAAE,MAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,SAAS,mCAAI,IAAI;YACpD,cAAc,EAAE,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,cAAc,0CAAE,cAAc,CAAA;YACtD,YAAY,EAAE,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,gBAAgB,0CAAE,MAAM,CAAA;YAC9C,iBAAiB,EAAE,oBAAoB,CAAC,KAAK,CAAC,aAAa,CAAC;YAC5D,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM;YACzE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB;YAC3C,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;YACjE,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,WAAC,OAAA,CAAC,CAAC,CAAA,MAAA,GAAG,CAAC,UAAU,0CAAE,cAAc,CAAA,CAAA,EAAA,CAAC;YACzF,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,iBAAiB,CAAC;YAClG,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe;YAC3C,gBAAgB;YAChB,gBAAgB;YAChB,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM;YAC7B,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU;YACrC,UAAU,EAAE,KAAK,CAAC,MAAM;YACxB,qBAAqB,EAAE,OAAO,CAAC,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,kBAAkB,CAAC;YACrE,eAAe,EAAE,OAAO,CAAC,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,YAAY,CAAC;YACzD,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc;YAC1C,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa;YACxC,kCAAkC,EAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAC9D,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,KAAK,iBAAiB,CAC/C;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;IAEF,MAAM,0BAA0B,GAA6C;QAC3E,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACvB,UAAU,EAAE;YACV,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,MAAM;YAC5C,UAAU,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE;YAC7B,kBAAkB,EAAE,GAAG,aAAa,CAAC,MAAM,EAAE;YAC7C,OAAO;SACR;KACF,CAAC;IAEF,MAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACzF,IAAI,eAAe,EAAE,CAAC;QACpB,0BAA0B,CAAC,UAAU,CAAC,eAAe,GAAG,eAAe,CAAC;QACxE,0BAA0B,CAAC,UAAU,CAAC,iBAAiB,GAAG,GAAG,KAAK,CAAC,iBAAiB,IAAI,KAAK,EAAE,CAAC;IAClG,CAAC;IAED,MAAM,UAAU,GAA2C;QACzD,KAAK;QACL,aAAa;QACb,OAAO;QACP,cAAc;QACd,UAAU;QACV,iBAAiB;QACjB,GAAG,KAAK;QACR,GAAG,kBAAkB;QACrB,GAAG;QACH,GAAG,6BAA6B,CAAC,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAAC;KAC5E,CAAC;IAEF,MAAM,6BAA6B,GAAG;QACpC,mBAAmB,EAAE,cAAc;QACnC,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW;QACxC,qBAAqB,EAAE,gBAAgB;QACvC,qBAAqB,EAAE,gBAAgB;KACxC,CAAC;IAEF,IAAI,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QACvD,OAAO,CACL,oBAAC,6BAA6B,CAAC,QAAQ,IAAC,KAAK,EAAE,6BAA6B;YAC1E,oBAAC,aAAa,OAAK,UAAU,GAAI,CACM,CAC1C,CAAC;IACJ,CAAC;IAED,OAAO,CACL,oBAAC,6BAA6B,CAAC,QAAQ,IAAC,KAAK,EAAE,6BAA6B;QAC1E,oBAAC,sBAAsB;YACrB,oBAAC,sBAAsB,OAAK,UAAU,GAAI,CACnB,CACc,CAC1C,CAAC;AACJ,CAAC,CACqB,CAAC;AAEzB,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACjC,eAAe,KAAK,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n'use client';\nimport React from 'react';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { AnalyticsFunnelSubStep } from '../internal/analytics/components/analytics-funnel';\nimport { BasePropsWithAnalyticsMetadata, getAnalyticsMetadataProps } from '../internal/base-component';\nimport { CollectionPreferencesMetadata } from '../internal/context/collection-preferences-metadata-context';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { GeneratedAnalyticsMetadataTableComponent } from './analytics-metadata/interfaces';\nimport { getColumnGroupsDepth } from './column-groups/utils';\nimport { getSortingColumnId } from './header-cell/utils';\nimport { TableForwardRefType, TableProps } from './interfaces';\nimport InternalTable, { InternalTableAsSubstep } from './internal';\n\nexport { TableProps };\nconst Table = React.forwardRef(\n <T,>(\n {\n items = [],\n selectedItems = [],\n variant = 'container',\n contentDensity = 'comfortable',\n cellVerticalAlign = 'middle',\n firstIndex = 1,\n ...props\n }: TableProps<T>,\n ref: React.Ref<TableProps.Ref>\n ) => {\n const analyticsMetadata = getAnalyticsMetadataProps(props as BasePropsWithAnalyticsMetadata);\n const hasHiddenColumns =\n (props.visibleColumns && props.visibleColumns.length < props.columnDefinitions.length) ||\n props.columnDisplay?.some(col => col.type !== 'group' && !col.visible);\n const hasStickyColumns = !!props.stickyColumns?.first || !!props.stickyColumns?.last;\n const baseComponentProps = useBaseComponent(\n 'Table',\n {\n props: {\n contentDensity,\n resizableColumns: props.resizableColumns,\n selectionType: props.selectionType,\n stickyHeader: props.stickyHeader,\n stripedRows: props.stripedRows,\n variant,\n wrapLines: props.wrapLines,\n enableKeyboardNavigation: props.enableKeyboardNavigation,\n totalItemsCount: props.totalItemsCount,\n flowType: analyticsMetadata.flowType,\n cellVerticalAlign,\n },\n metadata: {\n expandableRows: !!props.expandableRows,\n progressiveLoading: !!props.getLoadingStatus,\n hasSkeleton: !!props.skeleton,\n skeletonTotalRows: props.skeleton?.totalRows ?? null,\n groupSelection: !!props.expandableRows?.groupSelection,\n columnGroups: !!props.groupDefinitions?.length,\n columnGroupsDepth: getColumnGroupsDepth(props.columnDisplay),\n cellCounters: props.columnDefinitions.filter(dev => !!dev.counter).length,\n loaderCounters: !!props.renderLoaderCounter,\n inlineEdit: props.columnDefinitions.some(def => !!def.editConfig),\n disabledInlineEdit: props.columnDefinitions.some(def => !!def.editConfig?.disabledReason),\n hasSortableColumns: props.columnDefinitions.some(def => def.sortingField || def.sortingComparator),\n hasMultiColumnSort: !!props.multiColumnSort,\n hasHiddenColumns,\n hasStickyColumns,\n hasFilterSlot: !!props.filter,\n hasPaginationSlot: !!props.pagination,\n itemsCount: items.length,\n hasInstanceIdentifier: Boolean(analyticsMetadata?.instanceIdentifier),\n hasResourceType: Boolean(analyticsMetadata?.resourceType),\n usesVisibleColumns: !!props.visibleColumns,\n usesColumnDisplay: !!props.columnDisplay,\n usesColumnDefinitionsVerticalAlign: props.columnDefinitions.some(\n def => def.verticalAlign !== cellVerticalAlign\n ),\n },\n },\n analyticsMetadata\n );\n\n const analyticsComponentMetadata: GeneratedAnalyticsMetadataTableComponent = {\n name: 'awsui.Table',\n label: { root: 'self' },\n properties: {\n selectionType: props.selectionType || 'none',\n itemsCount: `${items.length}`,\n selectedItemsCount: `${selectedItems.length}`,\n variant,\n },\n };\n\n const sortingColumnId = getSortingColumnId(props.columnDefinitions, props.sortingColumn);\n if (sortingColumnId) {\n analyticsComponentMetadata.properties.sortingColumnId = sortingColumnId;\n analyticsComponentMetadata.properties.sortingDescending = `${props.sortingDescending || false}`;\n }\n\n const tableProps: Parameters<typeof InternalTable<T>>[0] = {\n items,\n selectedItems,\n variant,\n contentDensity,\n firstIndex,\n cellVerticalAlign,\n ...props,\n ...baseComponentProps,\n ref,\n ...getAnalyticsMetadataAttribute({ component: analyticsComponentMetadata }),\n };\n\n const collectionPreferencesMetadata = {\n tableContentDensity: contentDensity,\n tableHasStripedRows: !!props.stripedRows,\n tableHasHiddenColumns: hasHiddenColumns,\n tableHasStickyColumns: hasStickyColumns,\n };\n\n if (variant === 'borderless' || variant === 'embedded') {\n return (\n <CollectionPreferencesMetadata.Provider value={collectionPreferencesMetadata}>\n <InternalTable {...tableProps} />\n </CollectionPreferencesMetadata.Provider>\n );\n }\n\n return (\n <CollectionPreferencesMetadata.Provider value={collectionPreferencesMetadata}>\n <AnalyticsFunnelSubStep>\n <InternalTableAsSubstep {...tableProps} />\n </AnalyticsFunnelSubStep>\n </CollectionPreferencesMetadata.Provider>\n );\n }\n) as TableForwardRefType;\n\napplyDisplayName(Table, 'Table');\nexport default Table;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/table/index.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,YAAY,CAAC;AACb,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,6BAA6B,EAAE,MAAM,kEAAkE,CAAC;AAEjH,OAAO,EAAE,sBAAsB,EAAE,MAAM,mDAAmD,CAAC;AAC3F,OAAO,EAAkC,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AACvG,OAAO,EAAE,6BAA6B,EAAE,MAAM,6DAA6D,CAAC;AAC5G,OAAO,gBAAgB,MAAM,sCAAsC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,MAAM,sCAAsC,CAAC;AAExE,OAAO,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAEzD,OAAO,aAAa,EAAE,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGnE,MAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAC5B,CACE,EACE,KAAK,GAAG,EAAE,EACV,aAAa,GAAG,EAAE,EAClB,OAAO,GAAG,WAAW,EACrB,cAAc,GAAG,aAAa,EAC9B,iBAAiB,GAAG,QAAQ,EAC5B,UAAU,GAAG,CAAC,EACd,GAAG,KAAK,EACM,EAChB,GAA8B,EAC9B,EAAE;;IACF,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,KAAuC,CAAC,CAAC;IAC7F,MAAM,gBAAgB,GACpB,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,GAAG,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC;SACtF,MAAA,KAAK,CAAC,aAAa,0CAAE,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAA,CAAC;IACzE,MAAM,gBAAgB,GAAG,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,aAAa,0CAAE,KAAK,CAAA,IAAI,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,aAAa,0CAAE,IAAI,CAAA,CAAC;IACrF,MAAM,kBAAkB,GAAG,gBAAgB,CACzC,OAAO,EACP;QACE,KAAK,EAAE;YACL,cAAc;YACd,gBAAgB,EAAE,KAAK,CAAC,gBAAgB;YACxC,aAAa,EAAE,KAAK,CAAC,aAAa;YAClC,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,WAAW,EAAE,KAAK,CAAC,WAAW;YAC9B,OAAO;YACP,SAAS,EAAE,KAAK,CAAC,SAAS;YAC1B,wBAAwB,EAAE,KAAK,CAAC,wBAAwB;YACxD,eAAe,EAAE,KAAK,CAAC,eAAe;YACtC,QAAQ,EAAE,iBAAiB,CAAC,QAAQ;YACpC,iBAAiB;SAClB;QACD,QAAQ,EAAE;YACR,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc;YACtC,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,gBAAgB;YAC5C,WAAW,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ;YAC7B,iBAAiB,EAAE,OAAO,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,SAAS,CAAA,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI;YAClG,gBAAgB,EAAE,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,SAAS,MAAK,MAAM;YACtD,mBAAmB,EAAE,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,SAAS,MAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAA,KAAK,CAAC,QAAQ,CAAC,WAAW,mCAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YACvG,mBAAmB,EAAE,CAAA,MAAA,KAAK,CAAC,QAAQ,0CAAE,SAAS,MAAK,MAAM,CAAC,CAAC,CAAC,CAAC,MAAA,KAAK,CAAC,QAAQ,CAAC,WAAW,mCAAI,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;YACvG,cAAc,EAAE,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,cAAc,0CAAE,cAAc,CAAA;YACtD,YAAY,EAAE,CAAC,CAAC,CAAA,MAAA,KAAK,CAAC,gBAAgB,0CAAE,MAAM,CAAA;YAC9C,iBAAiB,EAAE,oBAAoB,CAAC,KAAK,CAAC,aAAa,CAAC;YAC5D,YAAY,EAAE,KAAK,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM;YACzE,cAAc,EAAE,CAAC,CAAC,KAAK,CAAC,mBAAmB;YAC3C,UAAU,EAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC;YACjE,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,WAAC,OAAA,CAAC,CAAC,CAAA,MAAA,GAAG,CAAC,UAAU,0CAAE,cAAc,CAAA,CAAA,EAAA,CAAC;YACzF,kBAAkB,EAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,YAAY,IAAI,GAAG,CAAC,iBAAiB,CAAC;YAClG,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,eAAe;YAC3C,gBAAgB;YAChB,gBAAgB;YAChB,aAAa,EAAE,CAAC,CAAC,KAAK,CAAC,MAAM;YAC7B,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,UAAU;YACrC,UAAU,EAAE,KAAK,CAAC,MAAM;YACxB,qBAAqB,EAAE,OAAO,CAAC,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,kBAAkB,CAAC;YACrE,eAAe,EAAE,OAAO,CAAC,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,YAAY,CAAC;YACzD,kBAAkB,EAAE,CAAC,CAAC,KAAK,CAAC,cAAc;YAC1C,iBAAiB,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa;YACxC,kCAAkC,EAAE,KAAK,CAAC,iBAAiB,CAAC,IAAI,CAC9D,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,aAAa,KAAK,iBAAiB,CAC/C;SACF;KACF,EACD,iBAAiB,CAClB,CAAC;IAEF,MAAM,0BAA0B,GAA6C;QAC3E,IAAI,EAAE,aAAa;QACnB,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE;QACvB,UAAU,EAAE;YACV,aAAa,EAAE,KAAK,CAAC,aAAa,IAAI,MAAM;YAC5C,UAAU,EAAE,GAAG,KAAK,CAAC,MAAM,EAAE;YAC7B,kBAAkB,EAAE,GAAG,aAAa,CAAC,MAAM,EAAE;YAC7C,OAAO;SACR;KACF,CAAC;IAEF,MAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC,iBAAiB,EAAE,KAAK,CAAC,aAAa,CAAC,CAAC;IACzF,IAAI,eAAe,EAAE,CAAC;QACpB,0BAA0B,CAAC,UAAU,CAAC,eAAe,GAAG,eAAe,CAAC;QACxE,0BAA0B,CAAC,UAAU,CAAC,iBAAiB,GAAG,GAAG,KAAK,CAAC,iBAAiB,IAAI,KAAK,EAAE,CAAC;IAClG,CAAC;IAED,MAAM,UAAU,GAA2C;QACzD,KAAK;QACL,aAAa;QACb,OAAO;QACP,cAAc;QACd,UAAU;QACV,iBAAiB;QACjB,GAAG,KAAK;QACR,GAAG,kBAAkB;QACrB,GAAG;QACH,GAAG,6BAA6B,CAAC,EAAE,SAAS,EAAE,0BAA0B,EAAE,CAAC;KAC5E,CAAC;IAEF,MAAM,6BAA6B,GAAG;QACpC,mBAAmB,EAAE,cAAc;QACnC,mBAAmB,EAAE,CAAC,CAAC,KAAK,CAAC,WAAW;QACxC,qBAAqB,EAAE,gBAAgB;QACvC,qBAAqB,EAAE,gBAAgB;KACxC,CAAC;IAEF,IAAI,OAAO,KAAK,YAAY,IAAI,OAAO,KAAK,UAAU,EAAE,CAAC;QACvD,OAAO,CACL,oBAAC,6BAA6B,CAAC,QAAQ,IAAC,KAAK,EAAE,6BAA6B;YAC1E,oBAAC,aAAa,OAAK,UAAU,GAAI,CACM,CAC1C,CAAC;IACJ,CAAC;IAED,OAAO,CACL,oBAAC,6BAA6B,CAAC,QAAQ,IAAC,KAAK,EAAE,6BAA6B;QAC1E,oBAAC,sBAAsB;YACrB,oBAAC,sBAAsB,OAAK,UAAU,GAAI,CACnB,CACc,CAC1C,CAAC;AACJ,CAAC,CACqB,CAAC;AAEzB,gBAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;AACjC,eAAe,KAAK,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n'use client';\nimport React from 'react';\n\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { AnalyticsFunnelSubStep } from '../internal/analytics/components/analytics-funnel';\nimport { BasePropsWithAnalyticsMetadata, getAnalyticsMetadataProps } from '../internal/base-component';\nimport { CollectionPreferencesMetadata } from '../internal/context/collection-preferences-metadata-context';\nimport useBaseComponent from '../internal/hooks/use-base-component';\nimport { applyDisplayName } from '../internal/utils/apply-display-name';\nimport { GeneratedAnalyticsMetadataTableComponent } from './analytics-metadata/interfaces';\nimport { getColumnGroupsDepth } from './column-groups/utils';\nimport { getSortingColumnId } from './header-cell/utils';\nimport { TableForwardRefType, TableProps } from './interfaces';\nimport InternalTable, { InternalTableAsSubstep } from './internal';\n\nexport { TableProps };\nconst Table = React.forwardRef(\n <T,>(\n {\n items = [],\n selectedItems = [],\n variant = 'container',\n contentDensity = 'comfortable',\n cellVerticalAlign = 'middle',\n firstIndex = 1,\n ...props\n }: TableProps<T>,\n ref: React.Ref<TableProps.Ref>\n ) => {\n const analyticsMetadata = getAnalyticsMetadataProps(props as BasePropsWithAnalyticsMetadata);\n const hasHiddenColumns =\n (props.visibleColumns && props.visibleColumns.length < props.columnDefinitions.length) ||\n props.columnDisplay?.some(col => col.type !== 'group' && !col.visible);\n const hasStickyColumns = !!props.stickyColumns?.first || !!props.stickyColumns?.last;\n const baseComponentProps = useBaseComponent(\n 'Table',\n {\n props: {\n contentDensity,\n resizableColumns: props.resizableColumns,\n selectionType: props.selectionType,\n stickyHeader: props.stickyHeader,\n stripedRows: props.stripedRows,\n variant,\n wrapLines: props.wrapLines,\n enableKeyboardNavigation: props.enableKeyboardNavigation,\n totalItemsCount: props.totalItemsCount,\n flowType: analyticsMetadata.flowType,\n cellVerticalAlign,\n },\n metadata: {\n expandableRows: !!props.expandableRows,\n progressiveLoading: !!props.getLoadingStatus,\n hasSkeleton: !!props.skeleton,\n skeletonTotalRows: typeof props.skeleton?.totalRows === 'number' ? props.skeleton.totalRows : null,\n skeletonAutoRows: props.skeleton?.totalRows === 'auto',\n skeletonMaxAutoRows: props.skeleton?.totalRows === 'auto' ? (props.skeleton.maxAutoRows ?? null) : null,\n skeletonMinAutoRows: props.skeleton?.totalRows === 'auto' ? (props.skeleton.minAutoRows ?? null) : null,\n groupSelection: !!props.expandableRows?.groupSelection,\n columnGroups: !!props.groupDefinitions?.length,\n columnGroupsDepth: getColumnGroupsDepth(props.columnDisplay),\n cellCounters: props.columnDefinitions.filter(dev => !!dev.counter).length,\n loaderCounters: !!props.renderLoaderCounter,\n inlineEdit: props.columnDefinitions.some(def => !!def.editConfig),\n disabledInlineEdit: props.columnDefinitions.some(def => !!def.editConfig?.disabledReason),\n hasSortableColumns: props.columnDefinitions.some(def => def.sortingField || def.sortingComparator),\n hasMultiColumnSort: !!props.multiColumnSort,\n hasHiddenColumns,\n hasStickyColumns,\n hasFilterSlot: !!props.filter,\n hasPaginationSlot: !!props.pagination,\n itemsCount: items.length,\n hasInstanceIdentifier: Boolean(analyticsMetadata?.instanceIdentifier),\n hasResourceType: Boolean(analyticsMetadata?.resourceType),\n usesVisibleColumns: !!props.visibleColumns,\n usesColumnDisplay: !!props.columnDisplay,\n usesColumnDefinitionsVerticalAlign: props.columnDefinitions.some(\n def => def.verticalAlign !== cellVerticalAlign\n ),\n },\n },\n analyticsMetadata\n );\n\n const analyticsComponentMetadata: GeneratedAnalyticsMetadataTableComponent = {\n name: 'awsui.Table',\n label: { root: 'self' },\n properties: {\n selectionType: props.selectionType || 'none',\n itemsCount: `${items.length}`,\n selectedItemsCount: `${selectedItems.length}`,\n variant,\n },\n };\n\n const sortingColumnId = getSortingColumnId(props.columnDefinitions, props.sortingColumn);\n if (sortingColumnId) {\n analyticsComponentMetadata.properties.sortingColumnId = sortingColumnId;\n analyticsComponentMetadata.properties.sortingDescending = `${props.sortingDescending || false}`;\n }\n\n const tableProps: Parameters<typeof InternalTable<T>>[0] = {\n items,\n selectedItems,\n variant,\n contentDensity,\n firstIndex,\n cellVerticalAlign,\n ...props,\n ...baseComponentProps,\n ref,\n ...getAnalyticsMetadataAttribute({ component: analyticsComponentMetadata }),\n };\n\n const collectionPreferencesMetadata = {\n tableContentDensity: contentDensity,\n tableHasStripedRows: !!props.stripedRows,\n tableHasHiddenColumns: hasHiddenColumns,\n tableHasStickyColumns: hasStickyColumns,\n };\n\n if (variant === 'borderless' || variant === 'embedded') {\n return (\n <CollectionPreferencesMetadata.Provider value={collectionPreferencesMetadata}>\n <InternalTable {...tableProps} />\n </CollectionPreferencesMetadata.Provider>\n );\n }\n\n return (\n <CollectionPreferencesMetadata.Provider value={collectionPreferencesMetadata}>\n <AnalyticsFunnelSubStep>\n <InternalTableAsSubstep {...tableProps} />\n </AnalyticsFunnelSubStep>\n </CollectionPreferencesMetadata.Provider>\n );\n }\n) as TableForwardRefType;\n\napplyDisplayName(Table, 'Table');\nexport default Table;\n"]}
@@ -48,6 +48,11 @@ export interface TableProps<T = any> extends BaseComponentProps {
48
48
  * - `totalRows` (number) - The total number of rows that should be rendered. If `items`
49
49
  * are also provided, those items will be rendered first, and `totalRows - items.length`
50
50
  * additional skeleton rows rendered after.
51
+ * - `totalRows` ('auto') - The number of skeleton rows is calculated from the available viewport height.
52
+ * - `maxAutoRows` (number) - Limits the number of skeleton rows rendered when `totalRows` is set to `'auto'`.
53
+ * - `minAutoRows` (number) - Sets the minimum number of skeleton rows rendered when `totalRows` is set to `'auto'`.
54
+ * Defaults to 1. Useful for tables rendered off-screen, where the calculated available height would
55
+ * otherwise yield a single row.
51
56
  */
52
57
  skeleton?: TableProps.SkeletonConfig;
53
58
  /**
@@ -683,9 +688,17 @@ export declare namespace TableProps {
683
688
  interface RenderLoaderEmptyDetail<T> {
684
689
  item: T;
685
690
  }
686
- interface SkeletonConfig {
691
+ interface FixedSkeletonConfig {
687
692
  totalRows: number;
693
+ maxAutoRows?: never;
694
+ minAutoRows?: never;
688
695
  }
696
+ interface AutoSkeletonConfig {
697
+ totalRows: 'auto';
698
+ maxAutoRows?: number;
699
+ minAutoRows?: number;
700
+ }
701
+ type SkeletonConfig = FixedSkeletonConfig | AutoSkeletonConfig;
689
702
  }
690
703
  export type TableRow<T> = TableDataRow<T> | TableLoaderRow<T>;
691
704
  interface TableDataRow<T> {
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/table/interfaces.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,MAAM,iBAAiB,CAAC;AACpF,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,uBAAuB,GAAG,UAAU,CAAC,uBAAuB,CAAC;AAYpE,MAAM,WAAW,mBAAmB;IAClC,CAAC,CAAC,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,GAAG;QAAE,GAAG,CAAC,EAAE,KAAK,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;KAAE,GAAG,GAAG,CAAC,OAAO,CAAC;CAC9E;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,GAAG,GAAG,CAAE,SAAQ,kBAAkB;IAC7D;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,UAAU,CAAC,iBAAiB,CAAC;IACjD;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB;;OAEG;IACH,KAAK,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAExB;;;OAGG;IACH,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAExB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC;IAErC;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEhC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAqDG;IACH,iBAAiB,EAAE,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjE;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAErC;;OAEG;IACH,aAAa,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC;IACzC;;OAEG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;IAEjC;;OAEG;IACH,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAEzB;;OAEG;IACH,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE7B;;OAEG;IACH,WAAW,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAE9B;;OAEG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAE9C;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB;;OAEG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB;;OAEG;IACH,cAAc,CAAC,EAAE,aAAa,GAAG,SAAS,CAAC;IAE3C;;OAEG;IACH,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsCG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;IAEtC;;;OAGG;IACH,aAAa,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;IAC5C;;OAEG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B;;;OAGG;IACH,eAAe,CAAC,EAAE,OAAO,CAAC;IAE1B;;;;;;;;;;OAUG;IACH,eAAe,CAAC,EAAE,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAEhD;;;;;;;;;;;;;;;;OAgBG;IACH,WAAW,CAAC,EAAE,UAAU,CAAC,WAAW,CAAC;IAErC;;;;;;;;OAQG;IACH,aAAa,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC;IAEzC;;;;;;;;;;;;;;;;;OAiBG;IACH,aAAa,CAAC,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;IAEvD;;;;;;;;;;OAUG;IACH,gBAAgB,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhE;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAEvC;;;OAGG;IACH,oBAAoB,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,wBAAwB,CAAC,CAAC;IAEtF;;;OAGG;IACH,eAAe,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAExE;;;OAGG;IACH,iBAAiB,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnF;;;;;;OAMG;IACH,UAAU,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEvE;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,sBAAsB,CAAC,UAAU,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC;IAEhF;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB;;;OAGG;IACH,0BAA0B,CAAC,EAAE,MAAM,CAAC;IAEpC;;;;;;;;;;;;OAYG;IACH,OAAO,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC;IAE7B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;OAQG;IACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,CAAC,gBAAgB,KAAK,MAAM,CAAC;IAC/D;;;OAGG;IACH,UAAU,CAAC,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;IAE9C;;;OAGG;IACH,YAAY,CAAC,EAAE,sBAAsB,CAAC;IAEtC;;;;;OAKG;IACH,wBAAwB,CAAC,EAAE,OAAO,CAAC;IAEnC;;;;;;;;;;;;;;;;;;;;;OAqBG;IACH,cAAc,CAAC,EAAE,UAAU,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAE9C;;;;;;;QAOI;IACJ,gBAAgB,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IAClD;;OAEG;IACH,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACpF;;OAEG;IACH,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACpF;;OAEG;IACH,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IAClF;;;;;;OAMG;IACH,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,uBAAuB,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;IACvF;;OAEG;IACH,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC,yBAAyB,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;CAC5F;AAED,yBAAiB,UAAU,CAAC;IAC1B,UAAiB,iBAAiB;QAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,QAAQ,CAAC,EAAE,eAAe,CAAC;QAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB;IAED,KAAY,OAAO,CAAC,CAAC,IAAI,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC,CAAC;IAExD,UAAiB,WAAW,CAAC,CAAC;QAC5B,YAAY,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;QAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,GAAG,SAAS,KAAK,IAAI,CAAC;QACzC,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB;IAED,UAAiB,UAAU,CAAC,CAAC,EAAE,CAAC,GAAG,GAAG;QACpC;;;WAGG;QACH,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB;;;WAGG;QACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B;;WAEG;QACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B;;WAEG;QACH,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB;;;;;;WAMG;QACH,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC;QAE/D;;WAEG;QACH,WAAW,CAAC,IAAI,EAAE,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;QAExE;;WAEG;QACH,cAAc,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,GAAG,SAAS,CAAC;QAEjD;;;;WAIG;QACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;KAC7B;IAED,KAAY,gBAAgB,CAAC,CAAC,IAAI;QAChC,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;QACxB,SAAS,CAAC,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAAC;QACpC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;QAC3B,OAAO,CAAC,CAAC,KAAK,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;QACrD,UAAU,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;QAC3B,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,aAAa,CAAC,EAAE,aAAa,CAAC;QAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,KAAK,CAAC,SAAS,CAAC;KAChC,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;IAGrB,UAAiB,eAAe,CAAC,CAAC,GAAG,GAAG;QACtC,EAAE,EAAE,MAAM,CAAC;QACX,MAAM,EAAE,KAAK,CAAC,SAAS,CAAC;QACxB,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,MAAM,CAAC;KACzC;IAED,UAAiB,eAAe,CAAC,CAAC;QAChC,IAAI,EAAE,CAAC,CAAC;QACR,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B;IAED,UAAiB,aAAa;QAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;KACf;IAED,KAAY,aAAa,GAAG,QAAQ,GAAG,KAAK,CAAC;IAC7C,KAAY,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;IAC/C,KAAY,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,GAAG,SAAS,GAAG,WAAW,CAAC;IACxF,UAAiB,cAAc,CAAC,CAAC;QAC/B,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QAChC,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,kBAAkB,CAAC,EAAE,MAAM,CAAC;KAC7B;IACD,UAAiB,qBAAqB,CAAC,CAAC;QACtC,aAAa,EAAE,CAAC,EAAE,CAAC;KACpB;IACD,KAAY,cAAc,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;IACrD,UAAiB,UAAU,CAAC,CAAC;QAC3B,sBAAsB,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC;QAC7D,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,MAAM,CAAC;QACjE,wBAAwB,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,IAAI,GAAG,CAAC,KAAK,MAAM,CAAC;QAC9E,mBAAmB,CAAC,EAAE,MAAM,CAAC;QAC7B,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,sBAAsB,CAAC,EAAE,MAAM,CAAC;QAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAG5B,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;QACvE,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC;QAC5D,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC;QAC5D,kBAAkB,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC;QAC/D,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,MAAM,CAAC;QAChE,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;QACxC,mBAAmB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;QAC1C,oBAAoB,CAAC,EAAE,MAAM,CAAC;QAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,yBAAyB,CAAC,EAAE,CAAC,IAAI,EAAE;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,KAAK,MAAM,CAAC;QAClE,2BAA2B,CAAC,EAAE,MAAM,CAAC;QACrC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE;YAAE,QAAQ,EAAE,MAAM,CAAA;SAAE,KAAK,MAAM,CAAC;KACvD;IACD,UAAiB,YAAY,CAAC,CAAC;QAC7B,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;KACjC;IACD,UAAiB,aAAa,CAAC,CAAC;QAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC;KAC5C;IACD,UAAiB,eAAe,CAAC,CAAC;QAChC,cAAc,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,QAAQ,EAAE,yBAAyB,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC;KACrE;IACD,UAAiB,2BAA2B,CAAC,CAAC;QAC5C,cAAc,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;KAChD;IACD,UAAiB,WAAW;QAC1B,yBAAyB,CAAC,EAAE,MAAM,CAAC;QACnC,0BAA0B,CAAC,EAAE,MAAM,CAAC;QACpC,gCAAgC,CAAC,EAAE,MAAM,CAAC;QAC1C,8BAA8B,CAAC,EAAE,MAAM,CAAC;QACxC,+BAA+B,CAAC,EAAE,MAAM,CAAC;QACzC,0BAA0B,CAAC,EAAE,MAAM,CAAC;QACpC,mCAAmC,CAAC,EAAE,MAAM,CAAC;QAC7C,wCAAwC,CAAC,EAAE,MAAM,CAAC;QAClD,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IACD,UAAiB,SAAS;QACxB,MAAM,EAAE,OAAO,CAAC;QAChB,UAAU,EAAE,OAAO,CAAC;QACpB,QAAQ,EAAE,OAAO,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB;IACD,UAAiB,gBAAgB,CAAC,CAAC;QACjC,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,CAAC,CAAC;KACT;IACD,UAAiB,sBAAsB,CAAC,CAAC;QACvC,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,CAAC,CAAC;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;KACjB;IAED,UAAiB,wBAAwB;QACvC,MAAM,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;KAC/B;IAED,UAAiB,gBAAgB;QAC/B,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;KAC1B;IAED,UAAiB,GAAG;QAClB;;;WAGG;QACH,WAAW,IAAI,IAAI,CAAC;QAEpB;;WAEG;QACH,UAAU,CAAC,IAAI,IAAI,CAAC;KACrB;IAED,KAAY,kBAAkB,CAAC,QAAQ,EAAE,SAAS,GAAG,OAAO,IAAI,CAC9D,IAAI,EAAE,QAAQ,EACd,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAClC,QAAQ,EAAE,SAAS,KAChB,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAE1B,UAAiB,aAAa;QAC5B,IAAI,CAAC,EAAE,QAAQ,CAAC;QAChB,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,OAAO,CAAC;KAClB;IAED,UAAiB,YAAY;QAC3B,IAAI,EAAE,OAAO,CAAC;QACd,EAAE,EAAE,MAAM,CAAC;QACX,OAAO,EAAE,OAAO,CAAC;QACjB,QAAQ,EAAE,aAAa,CAAC,uBAAuB,CAAC,CAAC;KAClD;IAED,KAAY,uBAAuB,GAAG,aAAa,GAAG,YAAY,CAAC;IAEnE,UAAiB,cAAc,CAAC,CAAC;QAC/B,eAAe,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC,EAAE,CAAC;QAC3C,gBAAgB,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC;QACvC,aAAa,EAAE,aAAa,CAAC,CAAC,CAAC,CAAC;QAChC,sBAAsB,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;QAClD,cAAc,CAAC,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;QACxC,sBAAsB,CAAC,EAAE,sBAAsB,CAAC,CAAC,CAAC,CAAC;QACnD,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;QACpC,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,qBAAqB,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;QAC5C,uBAAuB,CAAC,EAAE,MAAM,CAAC;KAClC;IAED,KAAY,sBAAsB,CAAC,CAAC,IAAI,yBAAyB,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjG,UAAiB,0BAA0B,CAAC,CAAC;QAC3C,IAAI,EAAE,CAAC,CAAC;QACR,QAAQ,EAAE,OAAO,CAAC;KACnB;IAED,KAAY,sBAAsB,CAAC,CAAC,IAAI,yBAAyB,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjG,UAAiB,0BAA0B,CAAC,CAAC;QAC3C,cAAc,EAAE,mBAAmB,CAAC,CAAC,CAAC,CAAC;KACxC;IAED,UAAiB,mBAAmB,CAAC,CAAC;QACpC,QAAQ,EAAE,OAAO,CAAC;QAClB,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;KAC5B;IAED,KAAY,gBAAgB,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,KAAK,aAAa,CAAC;IAEpE,KAAY,aAAa,GAAG,SAAS,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;IAEzE,UAAiB,kBAAkB,CAAC,CAAC;QACnC,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;KAChB;IAED,UAAiB,yBAAyB,CAAC,CAAC;QAC1C,aAAa,EAAE,aAAa,CAAC;QAC7B,QAAQ,EAAE,OAAO,CAAC;QAClB,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;KAChB;IAED,UAAiB,uBAAuB,CAAC,CAAC;QACxC,IAAI,EAAE,CAAC,CAAC;KACT;IAED,UAAiB,cAAc;QAC7B,SAAS,EAAE,MAAM,CAAC;KACnB;CACF;AAED,MAAM,MAAM,QAAQ,CAAC,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AAE9D,UAAU,YAAY,CAAC,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,CAAC,CAAC;CACT;AAED,UAAU,cAAc,CAAC,CAAC;IACxB,IAAI,EAAE,QAAQ,CAAC;IACf,IAAI,EAAE,IAAI,GAAG,CAAC,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,UAAU,CAAC,aAAa,CAAC;IACjC,IAAI,EAAE,MAAM,CAAC;CACd"}
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../../src/table/interfaces.tsx"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/table/interfaces.tsx"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport { BaseComponentProps } from '../types/base-component';\nimport { CancelableEventHandler, NonCancelableEventHandler } from '../types/events';\nimport { Optional } from '../types/utils';\nimport ColumnDisplayProperties = TableProps.ColumnDisplayProperties;\n\n/*\n * HACK: Cast the component to a named parametrized interface.\n *\n * This lets us use React.forwardRef and still let the component have type\n * parameters, and the naming convention lets the documenter know that this is\n * a forwardRef-wrapped component.\n *\n * We don't need to expose this type to customers because it's just a simple\n * function type.\n */\nexport interface TableForwardRefType {\n <T>(props: TableProps<T> & { ref?: React.Ref<TableProps.Ref> }): JSX.Element;\n}\n\nexport interface TableProps<T = any> extends BaseComponentProps {\n /**\n * Specifies additional analytics-related metadata.\n * * `instanceIdentifier` - A unique string that identifies this component instance in your application.\n * * `flowType` - Identifies the type of flow represented by the component.\n * * `resourceType` - Identifies the type of resource represented by the flow. **Note:** This API is currently experimental.\n * @analytics\n */\n analyticsMetadata?: TableProps.AnalyticsMetadata;\n /**\n * Heading element of the table container. Use the [header component](/components/header/).\n */\n header?: React.ReactNode;\n\n /**\n * Footer of the table container.\n */\n footer?: React.ReactNode;\n\n /**\n * Displayed when the `items` property is an empty array. Use it to render an empty or no-match state.\n */\n empty?: React.ReactNode;\n\n /**\n * Specifies the data that's displayed in the table rows. Each item contains the data for one row. The display of a row is handled\n * by the `cell` property of each column definition in the `columnDefinitions` property.\n */\n items: ReadonlyArray<T>;\n\n /**\n * Renders the table in a loading state. We recommend that you also set a `loadingText`.\n */\n loading?: boolean;\n\n /**\n * Specifies the text that's displayed when the table is in a loading state.\n * In skeleton-loading mode this will be used as a label for screenreaders.\n */\n loadingText?: string;\n\n /**\n * Renders skeleton placeholder rows to fill the table while data is loading. Accepts:\n * - `totalRows` (number) - The total number of rows that should be rendered. If `items`\n * are also provided, those items will be rendered first, and `totalRows - items.length`\n * additional skeleton rows rendered after.\n */\n skeleton?: TableProps.SkeletonConfig;\n\n /**\n * Specifies a property that uniquely identifies an individual item.\n * When it's set, it's used to provide [keys for React](https://reactjs.org/docs/lists-and-keys.html#keys)\n * for performance optimizations.\n *\n * It is also used in the following situations:\n * - to connect `items` and `selectedItems` values when they reference different objects.\n * - to connect `items` and `expandableRows.expandedItems` values when they reference different objects.\n * - to attach successful edit state to the correct item if its row index changes after editing.\n */\n trackBy?: TableProps.TrackBy<T>;\n\n /**\n * The columns configuration object\n * * `id` (string) - Specifies a unique column identifier. The property is used 1) as a [keys](https://reactjs.org/docs/lists-and-keys.html#keys) source for React rendering,\n * and 2) to match entries in the `columnDisplay` property, if defined.\n * * `header` (ReactNode) - Determines the display of the column header.\n * * `cell` ((item) => ReactNode) - Determines the display of a cell's content. You receive the current table row\n * item as an argument.\n * * `width` (string | number) - Specifies the column width. Corresponds to the `width` css-property. If the width is not set,\n * the browser automatically adjusts the column width based on the content. When `resizableColumns` property is\n * set to `true`, additional constraints apply: 1) string values are not allowed, and 2) the last visible column always\n * fills the remaining space of the table so the specified width is ignored.\n * * `minWidth` (string | number) - Specifies the minimum column width. Corresponds to the `min-width` css-property. When\n * `resizableColumns` property is set to `true`, additional constraints apply: 1) string values are not allowed,\n * and 2) the column can't resize below than the specified width (defaults to \"120px\"). We recommend that you set a minimum width\n * of at least 176px for columns that are editable.\n * * `maxWidth` (string | number) - Specifies the maximum column width. Corresponds to the `max-width` css-property.\n * Note that when the `resizableColumns` property is set to `true` this property is ignored.\n * * `ariaLabel` (LabelData => string) - An optional function that's called to provide an `aria-label` for the cell header.\n * It receives the current sorting state of this column, the direction it's sorted in, and an indication of\n * whether the sorting is disabled, as three Boolean values: `sorted`, `descending` and `disabled`,\n * plus a number `sortIndex` if the column is part of a multi-column sort.\n * We recommend that you use this for sortable columns to provide more meaningful labels based on the\n * current sorting direction.\n * * `sortingField` (string) - Enables default column sorting. The value is used in [collection hooks](/get-started/dev-guides/collection-hooks/)\n * to reorder the items. Provide the name of the property within each item that should be used for sorting by this column.\n * For more complex sorting use `sortingComparator` instead.\n * * `sortingComparator` ((T, T) => number) - Enables custom column sorting. The value is used in [collection hooks](/get-started/dev-guides/collection-hooks/)\n * to reorder the items. This property accepts a custom comparator that is used to compare two items.\n * The comparator must implement ascending ordering, and the output is inverted automatically in case of descending order.\n * If present, the `sortingField` property is ignored.\n * * `counter` ((ItemCounterData) => string) - Specifies secondary cell content, displayed next to the primary. Use it to display\n * resource counters in the first column of expandable tables with data grouping.\n * * `editConfig` (EditConfig) - Enables inline editing in column when present. The value is used to configure the editing behavior.\n * * `editConfig.ariaLabel` (string) - Specifies a label for the edit control. Visually hidden but read by screen readers.\n * * `editConfig.errorIconAriaLabel` (string) - Specifies an ariaLabel for the error icon that is displayed when the validation fails.\n * * `editConfig.editIconAriaLabel` (string) - Specifies an alternate text for the edit icon used in column header.\n * * `editConfig.constraintText` (string) - Constraint text that is displayed below the edit control.\n * * `editConfig.disabledReason` ((item) => string | undefined) - A function that determines whether inline edit for certain items is disabled, and provides a reason why.\n * Return a string from the function to disable inline edit with a reason. Return `undefined` (or no return) from the function allow inline edit.\n * * `editConfig.validation` ((item, value) => string) - A function that allows you to validate the value of the edit control.\n * Return a string from the function to display an error message. Return `undefined` (or no return) from the function to indicate that the value is valid.\n * * `editConfig.editingCell` ((item, cellContext) => ReactNode) - Determines the display of a cell's content when inline editing is active on a cell;\n * You receive the current table row `item` and a `cellContext` object as arguments.\n * The `cellContext` object contains the following properties:\n * * `cellContext.currentValue` - State to keep track of a value in input fields while editing.\n * * `cellContext.setValue` - Function to update `currentValue`. This should be called when the value in input field changes.\n * * `cellContext.submitValue` - Function to submit the `currentValue`.\n * * `editConfig.disableNativeForm` (boolean) - Disables the use of a `<form>` element to capture submissions inside the inline editor.\n * If enabled, ensure that any text inputs in the editing cell submit the cell value when the Enter key is pressed, using `cellContext.submitValue`.\n * * `isRowHeader` (boolean) - Specifies that cells in this column should be used as row headers.\n * * `hasDynamicContent` (boolean) - Specifies that cells in this column may have dynamic content. The contents will then be observed to update calculated column widths.\n * This may have a negative performance impact, so should be used only if necessary. It has no effect if `resizableColumns` is set to `true`.\n * * `verticalAlign` ('middle' | 'top') - Determines the alignment of the content in the table cell.\n */\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<T>>;\n\n /**\n * Determines the alignment of the content inside table cells.\n * This property affects all cells, including the ones in the selection column.\n * To target individual cells use `columnDefinitions.verticalAlign`, that takes precedence over `cellVerticalAlign`.\n */\n cellVerticalAlign?: 'middle' | 'top';\n\n /**\n * Specifies the selection type (`'single' | 'multi'`).\n */\n selectionType?: TableProps.SelectionType;\n /**\n * List of selected items.\n */\n selectedItems?: ReadonlyArray<T>;\n\n /**\n * Use this slot to add filtering controls to the table.\n */\n filter?: React.ReactNode;\n\n /**\n * Use this slot to add the [pagination component](/components/pagination/) to the table.\n */\n pagination?: React.ReactNode;\n\n /**\n * Use this slot to add [collection preferences](/components/collection-preferences/) to the table.\n */\n preferences?: React.ReactNode;\n\n /**\n * Determines whether a given item is disabled. If an item is disabled, the user can't select it.\n */\n isItemDisabled?: TableProps.IsItemDisabled<T>;\n\n /**\n * Specifies if text wraps within table cells. If set to `true`, long text within cells may wrap onto\n * multiple lines instead of being truncated with an ellipsis.\n */\n wrapLines?: boolean;\n\n /**\n * Specifies if table rows alternate being shaded and unshaded. If set to `true`, every other row will be shaded.\n */\n stripedRows?: boolean;\n\n /**\n * Toggles the content density of the table. Defaults to `'comfortable'`.\n */\n contentDensity?: 'comfortable' | 'compact';\n\n /**\n * Specifies if columns can be resized. If set to `true`, users can resize the columns in the table.\n */\n resizableColumns?: boolean;\n\n /**\n * Specifies alternative text for the selection components (checkboxes and radio buttons) as follows:\n * * `selectionGroupLabel` (string) - Specifies the alternative text for the whole selection and single-selection column header.\n * * `itemSelectionLabel` ((SelectionState, Item) => string) - Specifies the alternative text for item selection controls.\n * The selection state includes:\n * * `selectedItems` (Item[]) - corresponds to table's `selectedItems`.\n * * `itemsCount` (optional, number) - corresponds to table's `expandableRows.getItemsCount(item)`.\n * * `selectedItemsCount` (optional, number) - corresponds to table's `expandableRows.getItemsCount(item)`.\n * * `allItemsSelectionLabel` ((SelectionState) => string) - Specifies the alternative text for all items selection control.\n * The selection state includes:\n * * `selectedItems` (Item[]) - corresponds to table's `selectedItems`.\n * * `itemsCount` (optional, number) - corresponds to `expandableRows.totalItemsCount` or `totalItemsCount`.\n * * `selectedItemsCount` (optional, number) - corresponds to `expandableRows.totalSelectedItemsCount` or `selectedItems.length`.\n * * `itemLoaderSelectionLabel`: ((SelectionState, Item) => string) - Specifies the alternative text for resource loader selector\n * in tables with data grouping.\n * * `tableLabel` (string) - Provides an alternative text for the table. If you use a header for this table, you may reuse the string\n * to provide a caption-like description. For example, tableLabel=Instances will be announced as 'Instances table'.\n * * `resizerRoleDescription` (string) - Provides role description for table column resizer buttons.\n * * `resizerTooltipText` (string) - Provides text for the table column resizer tooltip.\n * * `activateEditLabel` (EditableColumnDefinition, Item) => string -\n * Specifies an alternative text for the edit button in editable cells.\n * * `cancelEditLabel` (EditableColumnDefinition) => string -\n * Specifies an alternative text for the cancel button in editable cells.\n * * `submitEditLabel` (EditableColumnDefinition) => string -\n * Specifies an alternative text for the submit button in editable cells.\n * * `successfulEditLabel` (EditableColumnDefinition) => string -\n * Specifies an alternative text for the success icon in editable cells. This text is also announced to screen readers.\n * * `submittingEditText` (EditableColumnDefinition) => string -\n * Specifies a text that is announced to screen readers when a cell edit operation is submitted.\n * * `expandButtonLabel` (Item) => string - Specifies an alternative text for row expand button.\n * * `collapseButtonLabel` (Item) => string - Specifies an alternative text for row collapse button.\n * * `sortMenuTriggerLabel` (string) - Provides an alternative text for the column header sort menu trigger button when multi-column sort is enabled.\n * * `sortAscending` (string) - Screen reader word for ascending sort direction, used in sort announcements and a sorted column header's accessible text.\n * * `sortDescending` (string) - Screen reader word for descending sort direction, used in sort announcements and a sorted column header's accessible text.\n * * `liveAnnouncementSortOrder` (({ columns }) => string) - Formats the screen reader announcement for the current multi-column sort order.\n * * `liveAnnouncementSortCleared` (string) - Screen reader announcement made when the multi-column sort is cleared.\n * * `sortPriority` (({ priority }) => string) - Formats a sorted column's position in a multi-column sort, used in the sorted column header's accessible label.\n * @i18n\n */\n ariaLabels?: TableProps.AriaLabels<T>;\n\n /**\n * Specifies the definition object of the currently sorted column. Make sure you pass an object that's\n * present in the `columnDefinitions` array.\n */\n sortingColumn?: TableProps.SortingColumn<T>;\n /**\n * Specifies whether to use a descending sort order.\n */\n sortingDescending?: boolean;\n /**\n * Specifies if sorting buttons are disabled. For example, use this property\n * to prevent the user from sorting before items are fully loaded.\n */\n sortingDisabled?: boolean;\n\n /**\n * Enables multi-column sorting on the table. The object contains:\n *\n * * `sortingColumns` (ReadonlyArray<TableProps.SortingState<T>>) - The current multi-column\n * sort state. The first entry has the highest sort priority, and subsequent entries act as\n * tiebreakers.\n * * `onChange` (NonCancelableEventHandler<TableProps.MultiColumnSortChangeDetail<T>>) - Called\n * when the user changes the sort state.\n *\n * Use either this property or `sortingColumn` / `sortingDescending` / `onSortingChange`, but not both.\n */\n multiColumnSort?: TableProps.MultiColumnSort<T>;\n\n /**\n * Object containing the localized visible strings used by the Table component.\n *\n * When multi-column sorting is enabled it provides the sort UI labels:\n *\n * * `sortDropdownSortAscending` (string): Label for the \"Sort ascending\" dropdown menu item.\n * * `sortDropdownSortDescending` (string): Label for the \"Sort descending\" dropdown menu item.\n * * `sortDropdownMultiColumnSortGroup` (string): Label for the multi-column sort dropdown menu group.\n * * `sortDropdownAddToSortAscending` (string): Label for the \"Add to sort (ascending)\" dropdown menu item.\n * * `sortDropdownAddToSortDescending` (string): Label for the \"Add to sort (descending)\" dropdown menu item.\n * * `sortDropdownRemoveFromSort` (string): Label for the \"Remove from sort\" dropdown menu item.\n * * `sortDropdownAddToSortDisabledReason` (string): Reason shown when the \"Add to sort\" menu items are disabled.\n * * `sortDropdownRemoveFromSortDisabledReason` (string): Reason shown when the \"Remove from sort\" menu item is disabled.\n * * `clearSort` (string): Label for the \"Clear sort\" button.\n *\n * @i18n\n */\n i18nStrings?: TableProps.I18nStrings;\n\n /**\n * Specifies the number of first and/or last columns that should be sticky.\n *\n * If the available scrollable space is less than a certain threshold, the feature is deactivated.\n *\n * Use it in conjunction with the sticky columns preference of the\n * [collection preferences](/components/collection-preferences/) component.\n *\n */\n stickyColumns?: TableProps.StickyColumns;\n\n /**\n * Specifies an array that represents the table columns in the order in which they will be displayed, together with their visibility.\n *\n * If not set, all columns are displayed and the order is dictated by the `columnDefinitions` property.\n *\n * Use it in conjunction with the content display preference of the [collection preferences](/components/collection-preferences/) component.\n *\n * Each entry is one of the following:\n * - `ColumnDisplay` - Represents a single column.\n * - `type` ('column') - (Optional) Identifies the entry as a column. Defaults to `'column'` when omitted.\n * - `id` (string) - The column identifier. Must match a column `id` from `columnDefinitions`.\n * - `visible` (boolean) - Whether the column is visible.\n * - `GroupDisplay` - Represents a column group.\n * - `type` ('group') - Identifies the entry as a group.\n * - `id` (string) - The group identifier. Must match a group `id` from `groupDefinitions`.\n * - `visible` (boolean) - Whether the group is visible.\n * - `children` (ReadonlyArray<ColumnDisplayProperties>) - The columns or nested groups within this group.\n */\n columnDisplay?: ReadonlyArray<ColumnDisplayProperties>;\n\n /**\n * Defines the column groups. Each group has an `id` and `header` used to label the group header cell.\n *\n * When using grouped columns, you must also provide the `columnDisplay` property with `{ type: 'group', id, children }` entries\n * to assign columns to their respective groups and define the display hierarchy.\n *\n * Each group definition contains the following:\n * - `id` (string) - A unique identifier for the group.\n * - `header` (ReactNode) - The content displayed in the group header cell.\n * - `ariaLabel` ((LabelData) => string) - (Optional) A function that provides an `aria-label` for the group header.\n */\n groupDefinitions?: ReadonlyArray<TableProps.GroupDefinition<T>>;\n\n /**\n * Specifies an array containing the `id`s of visible columns. If not set, all columns are displayed.\n *\n * Use it in conjunction with the visible content preference of the [collection preferences](/components/collection-preferences/) component.\n *\n * The order of ids doesn't influence the order in which columns are displayed - this is dictated by the `columnDefinitions` property.\n *\n * @deprecated Replaced by `columnDisplay`.\n */\n visibleColumns?: ReadonlyArray<string>;\n\n /**\n * Fired when the user resizes a table column. The event detail contains an array of column widths in pixels,\n * including the hidden via preferences columns. Use this event to persist the column widths.\n */\n onColumnWidthsChange?: NonCancelableEventHandler<TableProps.ColumnWidthsChangeDetail>;\n\n /**\n * Called when either the column to sort by or the direction of sorting changes upon user interaction.\n * The event detail contains the current sortingColumn and isDescending.\n */\n onSortingChange?: NonCancelableEventHandler<TableProps.SortingState<T>>;\n\n /**\n * Fired when a user interaction triggers a change in the list of selected items.\n * The event `detail` contains the new state for `selectedItems`.\n */\n onSelectionChange?: NonCancelableEventHandler<TableProps.SelectionChangeDetail<T>>;\n\n /**\n * Note: This feature is provided for backwards compatibility. Its use is not recommended,\n * and it may be deprecated in the future.\n *\n * Called when the user clicked at a table row. The event detail contains the index of the\n * clicked row and the row object itself. Use this event to define a row click behavior.\n */\n onRowClick?: NonCancelableEventHandler<TableProps.OnRowClickDetail<T>>;\n\n /**\n * Note: This feature is provided for backwards compatibility. Its use is not recommended,\n * and it may be deprecated in the future.\n *\n * Called when the user clicked at a table row with the right mouse click. The event detail\n * contains the index of the clicked row and the row object itself. Use this event to override\n * the default browser context menu behavior.\n */\n onRowContextMenu?: CancelableEventHandler<TableProps.OnRowContextMenuDetail<T>>;\n\n /**\n * If set to `true`, the table header remains visible when the user scrolls down.\n *\n * Do not use `stickyHeader` conditionally. Instead, keep its value constant during the component lifecycle.\n */\n stickyHeader?: boolean;\n\n /**\n * Specifies a vertical offset (in pixels) for the sticky header. For example, use this if you\n * need to position the sticky header below other fixed position elements on the page.\n */\n stickyHeaderVerticalOffset?: number;\n\n /**\n * Specify a table variant with one of the following:\n * * `container` - Use this variant to have the table displayed within a container.\n * * `borderless` - Use this variant when the table should have no outer borders or shadow\n * (such as in a dashboard item container).\n * * `embedded` - Use this variant within a parent container (such as a modal, expandable\n * section, container or split panel).\n * **Deprecated**, replaced by `borderless` and `container`.\n * * `stacked` - Use this variant adjacent to other stacked containers (such as a container,\n * table).\n * * `full-page` – Use this variant when the table is the entire content of a page.\n * @visualrefresh `embedded`, `stacked`, and `full-page` variants\n */\n variant?: TableProps.Variant;\n\n /**\n * Use this property to inform screen readers how many items there are in a table.\n * It specifies the total count of all items in a table.\n * If there is an unknown total of items in a table, leave this property undefined.\n */\n totalItemsCount?: number;\n /**\n * Use this property to inform screen readers which range of items is currently displayed in the table.\n * It specifies the index (1-based) of the first item in the table.\n */\n firstIndex?: number;\n /**\n * Use this function to announce page changes to screen reader users.\n * The function argument takes the following properties:\n * * `firstIndex` (number) - The provided `firstIndex` property which defaults to 1 when not defined.\n * * `lastIndex` (number) - The index of the last visible item of the table.\n * * `visibleItemsCount` (number) - The number of rendered table items.\n * * `totalItemsCount` (optional, number) - The provided `totalItemsCount` property.\n * Important: in tables with expandable rows the `firstIndex`, `lastIndex`, and `totalItemsCount` reflect the top-level items only.\n */\n renderAriaLive?: (data: TableProps.LiveAnnouncement) => string;\n /**\n * Specifies a function that will be called after user submits an inline edit.\n * Return a promise to keep loading state while the submit request is in progress.\n */\n submitEdit?: TableProps.SubmitEditFunction<T>;\n\n /**\n * Called whenever user cancels an inline edit. Use this function to reset any\n * validation states, or show warning for unsaved changes.\n */\n onEditCancel?: CancelableEventHandler;\n\n /**\n * Use this property to activate advanced keyboard navigation and focusing behaviors.\n * When set to `true`, table cells become navigable with arrow keys, and the entire table has a single tab stop.\n *\n * By default, the keyboard navigation is active for tables with expandable rows.\n */\n enableKeyboardNavigation?: boolean;\n\n /**\n * Use this property to define expandable table rows. The expandableRows configuration object consists of:\n * * `getItemChildren` ((Item) => Item[]) - Use it to define nested data that are shown when an item gets expanded.\n * * `isItemExpandable` ((Item) => boolean) - Use it for items that can be expanded to show nested data.\n * * `expandedItems` (Item[]) - Use it to represent the expanded state of items.\n * * `onExpandableItemToggle` (TableProps.OnExpandableItemToggle<Item>) - Called when an item's expand toggle is clicked.\n * * `groupSelection` (optional, GroupSelectionState<Item>) - Tree-like selection state for tables with grouped data. When defined, the\n * properties `selectionType` and `selectedItems` no longer apply. It reads as (assuming item \"a.1\" is nested under \"a\"):\n * * `{ inverted: false, toggledItems: [] }` - no items are selected;\n * * `{ inverted: true, toggledItems: [] }` - all items are selected;\n * * `{ inverted: false, toggledItems: [\"a\", \"a.1\"] }` - all items nested under \"a\", unless also nested under \"a.1\", are selected.\n * * `{ inverted: true, toggledItems: [\"a\", \"a.1\"] }` - the opposite of above.\n * * `onGroupSelectionChange` (optional, TableProps.OnGroupSelectionChange<Item>) - Called when group selection changes.\n * * `getItemsCount` (optional, (Item) => number) - Use it to indicate the number of resources nested under the given item.\n * The value is passed as `itemsCount` property to the `columnDefinitions[index].counter` and `ariaLabels.itemSelectionLabel` functions.\n * * `totalItemsCount` (optional, number) - Use it to indicate the total number of resources in the table.\n * The value is passed as `itemsCount` property to the `ariaLabels.allItemsSelectionLabel`.\n * * `getSelectedItemsCount` (optional, (Item) => number) - Use it to indicate the number of selected resources nested under the given item.\n * The value is passed as `selectedItemsCount` property to the `columnDefinitions[index].counter` and `ariaLabels.itemSelectionLabel` functions.\n * * `totalSelectedItemsCount` (optional, number) - Use it to indicate the total number of selected resources in the table.\n * The value is passed as `selectedItemsCount` property to the `ariaLabels.allItemsSelectionLabel`.\n */\n expandableRows?: TableProps.ExpandableRows<T>;\n\n /**\n * A function that specifies the current status of loading more items. It is called once for the entire\n * table with `item=null` and then for each expanded item. The function result is one of the four possible states:\n * * `pending` - Indicates that no request in progress, but more options may be loaded.\n * * `loading` - Indicates that data fetching is in progress.\n * * `finished` - Indicates that loading has finished and no more requests are expected.\n * * `error` - Indicates that an error occurred during fetch.\n **/\n getLoadingStatus?: TableProps.GetLoadingStatus<T>;\n /**\n * Renders loader row content for pending state.\n */\n renderLoaderPending?: (detail: TableProps.RenderLoaderDetail<T>) => React.ReactNode;\n /**\n * Renders loader row content for loading state.\n */\n renderLoaderLoading?: (detail: TableProps.RenderLoaderDetail<T>) => React.ReactNode;\n /**\n * Renders loader row content for error state.\n */\n renderLoaderError?: (detail: TableProps.RenderLoaderDetail<T>) => React.ReactNode;\n /**\n * Renders loader row content for empty row state: the loading status is \"finished\",\n * and the row is expanded but has empty children array.\n *\n * The empty loader state is only supported for expandable rows. Use `empty` slot if\n * the table items array is empty.\n */\n renderLoaderEmpty?: (detail: TableProps.RenderLoaderEmptyDetail<T>) => React.ReactNode;\n /**\n * Renders loader counter that is appended to the loader content in all loader states.\n */\n renderLoaderCounter?: (detail: TableProps.RenderLoaderCounterDetail<T>) => React.ReactNode;\n}\n\nexport namespace TableProps {\n export interface AnalyticsMetadata {\n instanceIdentifier?: string;\n flowType?: 'view-resource';\n resourceType?: string;\n }\n\n export type TrackBy<T> = string | ((item: T) => string);\n\n export interface CellContext<V> {\n currentValue: Optional<V>;\n setValue: (value: V | undefined) => void;\n submitValue: () => void;\n }\n\n export interface EditConfig<T, V = any> {\n /**\n * Specifies a label for the edit control. Visually hidden but read\n * by screen readers.\n */\n ariaLabel?: string;\n /**\n * Specifies an ariaLabel for the error icon that is displayed when\n * the validation fails.\n */\n errorIconAriaLabel?: string;\n /**\n * Specifies an alternate text for the edit icon used in column header.\n */\n editIconAriaLabel?: string;\n /**\n * Constraint text that is displayed below the edit control.\n */\n constraintText?: string;\n /**\n * A function that allows you to validate the value of the edit control. Return\n * a string from the function to display an error message. Return\n * `undefined` (or no return) from the function to indicate that the value is valid.\n * @param item - The item that is being edited.\n * @param value - The current value of the edit control.\n */\n validation?: (item: T, value: Optional<V>) => Optional<string>;\n\n /**\n * Determines the display of a cell's content when inline edit is active.\n */\n editingCell(item: T, ctx: TableProps.CellContext<any>): React.ReactNode;\n\n /**\n * Determines whether inline edit for certain items is disabled, and provides a reason why.\n */\n disabledReason?: (item: T) => string | undefined;\n\n /**\n * Disables the use of a `<form>` element to capture submissions inside the inline editor.\n * If enabled, ensure that any text inputs in the editing cell submit the cell value when\n * the Enter key is pressed, using `cellContext.submitValue`.\n */\n disableNativeForm?: boolean;\n }\n\n export type ColumnDefinition<T> = {\n id?: string;\n header: React.ReactNode;\n ariaLabel?(data: LabelData): string;\n width?: number | string;\n minWidth?: number | string;\n maxWidth?: number | string;\n counter?(props: ItemCounterData<T>): React.ReactNode;\n editConfig?: EditConfig<T>;\n isRowHeader?: boolean;\n verticalAlign?: VerticalAlign;\n hasDynamicContent?: boolean;\n cell(item: T): React.ReactNode;\n } & SortingColumn<T>;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n export interface GroupDefinition<T = any> {\n id: string;\n header: React.ReactNode;\n ariaLabel?: (data: LabelData) => string;\n }\n\n export interface ItemCounterData<T> {\n item: T;\n itemsCount?: number;\n selectedItemsCount?: number;\n }\n\n export interface StickyColumns {\n first?: number;\n last?: number;\n }\n\n export type VerticalAlign = 'middle' | 'top';\n export type SelectionType = 'single' | 'multi';\n export type Variant = 'container' | 'embedded' | 'borderless' | 'stacked' | 'full-page';\n export interface SelectionState<T> {\n selectedItems: ReadonlyArray<T>;\n itemsCount?: number;\n selectedItemsCount?: number;\n }\n export interface SelectionChangeDetail<T> {\n selectedItems: T[];\n }\n export type IsItemDisabled<T> = (item: T) => boolean;\n export interface AriaLabels<T> {\n allItemsSelectionLabel?: (data: SelectionState<T>) => string;\n itemSelectionLabel?: (data: SelectionState<T>, row: T) => string;\n itemLoaderSelectionLabel?: (data: SelectionState<T>, row: null | T) => string;\n selectionGroupLabel?: string;\n tableLabel?: string;\n resizerRoleDescription?: string;\n resizerTooltipText?: string;\n // do not use <T> to prevent overly strict validation on consumer end\n // it works, practically, we are only interested in `id` and `header` properties only\n activateEditLabel?: (column: ColumnDefinition<any>, item: T) => string;\n cancelEditLabel?: (column: ColumnDefinition<any>) => string;\n submitEditLabel?: (column: ColumnDefinition<any>) => string;\n submittingEditText?: (column: ColumnDefinition<any>) => string;\n successfulEditLabel?: (column: ColumnDefinition<any>) => string;\n expandButtonLabel?: (item: T) => string;\n collapseButtonLabel?: (item: T) => string;\n sortMenuTriggerLabel?: string;\n sortAscending?: string;\n sortDescending?: string;\n liveAnnouncementSortOrder?: (data: { columns: string }) => string;\n liveAnnouncementSortCleared?: string;\n sortPriority?: (data: { priority: number }) => string;\n }\n export interface SortingState<T> {\n isDescending?: boolean;\n sortingColumn: SortingColumn<T>;\n }\n export interface SortingColumn<T> {\n sortingField?: string;\n sortingComparator?: (a: T, b: T) => number;\n }\n export interface MultiColumnSort<T> {\n sortingColumns: ReadonlyArray<SortingState<T>>;\n onChange: NonCancelableEventHandler<MultiColumnSortChangeDetail<T>>;\n }\n export interface MultiColumnSortChangeDetail<T> {\n sortingColumns: ReadonlyArray<SortingState<T>>;\n }\n export interface I18nStrings {\n sortDropdownSortAscending?: string;\n sortDropdownSortDescending?: string;\n sortDropdownMultiColumnSortGroup?: string;\n sortDropdownAddToSortAscending?: string;\n sortDropdownAddToSortDescending?: string;\n sortDropdownRemoveFromSort?: string;\n sortDropdownAddToSortDisabledReason?: string;\n sortDropdownRemoveFromSortDisabledReason?: string;\n clearSort?: string;\n }\n export interface LabelData {\n sorted: boolean;\n descending: boolean;\n disabled: boolean;\n sortIndex?: number;\n }\n export interface OnRowClickDetail<T> {\n rowIndex: number;\n item: T;\n }\n export interface OnRowContextMenuDetail<T> {\n rowIndex: number;\n item: T;\n clientX: number;\n clientY: number;\n }\n\n export interface ColumnWidthsChangeDetail {\n widths: ReadonlyArray<number>;\n }\n\n export interface LiveAnnouncement {\n firstIndex: number;\n lastIndex: number;\n visibleItemsCount: number;\n totalItemsCount?: number;\n }\n\n export interface Ref {\n /**\n * When the sticky header is enabled and you call this function, the table\n * scroll parent scrolls to reveal the first row of the table.\n */\n scrollToTop(): void;\n\n /**\n * Dismiss an inline edit if currently active.\n */\n cancelEdit?(): void;\n }\n\n export type SubmitEditFunction<ItemType, ValueType = unknown> = (\n item: ItemType,\n column: ColumnDefinition<ItemType>,\n newValue: ValueType\n ) => Promise<void> | void;\n\n export interface ColumnDisplay {\n type?: 'column';\n id: string;\n visible: boolean;\n }\n\n export interface GroupDisplay {\n type: 'group';\n id: string;\n visible: boolean;\n children: ReadonlyArray<ColumnDisplayProperties>;\n }\n\n export type ColumnDisplayProperties = ColumnDisplay | GroupDisplay;\n\n export interface ExpandableRows<T> {\n getItemChildren: (item: T) => readonly T[];\n isItemExpandable: (item: T) => boolean;\n expandedItems: ReadonlyArray<T>;\n onExpandableItemToggle: OnExpandableItemToggle<T>;\n groupSelection?: GroupSelectionState<T>;\n onGroupSelectionChange?: OnGroupSelectionChange<T>;\n getItemsCount?: (item: T) => number;\n totalItemsCount?: number;\n getSelectedItemsCount?: (item: T) => number;\n totalSelectedItemsCount?: number;\n }\n\n export type OnExpandableItemToggle<T> = NonCancelableEventHandler<ExpandableItemToggleDetail<T>>;\n\n export interface ExpandableItemToggleDetail<T> {\n item: T;\n expanded: boolean;\n }\n\n export type OnGroupSelectionChange<T> = NonCancelableEventHandler<GroupSelectionChangeDetail<T>>;\n\n export interface GroupSelectionChangeDetail<T> {\n groupSelection: GroupSelectionState<T>;\n }\n\n export interface GroupSelectionState<T> {\n inverted: boolean;\n toggledItems: readonly T[];\n }\n\n export type GetLoadingStatus<T> = (item: null | T) => LoadingStatus;\n\n export type LoadingStatus = 'pending' | 'loading' | 'error' | 'finished';\n\n export interface RenderLoaderDetail<T> {\n item: null | T;\n }\n\n export interface RenderLoaderCounterDetail<T> {\n loadingStatus: LoadingStatus;\n selected: boolean;\n item: null | T;\n }\n\n export interface RenderLoaderEmptyDetail<T> {\n item: T;\n }\n\n export interface SkeletonConfig {\n totalRows: number;\n }\n}\n\nexport type TableRow<T> = TableDataRow<T> | TableLoaderRow<T>;\n\ninterface TableDataRow<T> {\n type: 'data';\n item: T;\n}\n\ninterface TableLoaderRow<T> {\n type: 'loader';\n item: null | T;\n level: number;\n status: TableProps.LoadingStatus;\n from: number;\n}\n"]}
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../../src/table/interfaces.tsx"],"names":[],"mappings":"","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React from 'react';\n\nimport { BaseComponentProps } from '../types/base-component';\nimport { CancelableEventHandler, NonCancelableEventHandler } from '../types/events';\nimport { Optional } from '../types/utils';\nimport ColumnDisplayProperties = TableProps.ColumnDisplayProperties;\n\n/*\n * HACK: Cast the component to a named parametrized interface.\n *\n * This lets us use React.forwardRef and still let the component have type\n * parameters, and the naming convention lets the documenter know that this is\n * a forwardRef-wrapped component.\n *\n * We don't need to expose this type to customers because it's just a simple\n * function type.\n */\nexport interface TableForwardRefType {\n <T>(props: TableProps<T> & { ref?: React.Ref<TableProps.Ref> }): JSX.Element;\n}\n\nexport interface TableProps<T = any> extends BaseComponentProps {\n /**\n * Specifies additional analytics-related metadata.\n * * `instanceIdentifier` - A unique string that identifies this component instance in your application.\n * * `flowType` - Identifies the type of flow represented by the component.\n * * `resourceType` - Identifies the type of resource represented by the flow. **Note:** This API is currently experimental.\n * @analytics\n */\n analyticsMetadata?: TableProps.AnalyticsMetadata;\n /**\n * Heading element of the table container. Use the [header component](/components/header/).\n */\n header?: React.ReactNode;\n\n /**\n * Footer of the table container.\n */\n footer?: React.ReactNode;\n\n /**\n * Displayed when the `items` property is an empty array. Use it to render an empty or no-match state.\n */\n empty?: React.ReactNode;\n\n /**\n * Specifies the data that's displayed in the table rows. Each item contains the data for one row. The display of a row is handled\n * by the `cell` property of each column definition in the `columnDefinitions` property.\n */\n items: ReadonlyArray<T>;\n\n /**\n * Renders the table in a loading state. We recommend that you also set a `loadingText`.\n */\n loading?: boolean;\n\n /**\n * Specifies the text that's displayed when the table is in a loading state.\n * In skeleton-loading mode this will be used as a label for screenreaders.\n */\n loadingText?: string;\n\n /**\n * Renders skeleton placeholder rows to fill the table while data is loading. Accepts:\n * - `totalRows` (number) - The total number of rows that should be rendered. If `items`\n * are also provided, those items will be rendered first, and `totalRows - items.length`\n * additional skeleton rows rendered after.\n * - `totalRows` ('auto') - The number of skeleton rows is calculated from the available viewport height.\n * - `maxAutoRows` (number) - Limits the number of skeleton rows rendered when `totalRows` is set to `'auto'`.\n * - `minAutoRows` (number) - Sets the minimum number of skeleton rows rendered when `totalRows` is set to `'auto'`.\n * Defaults to 1. Useful for tables rendered off-screen, where the calculated available height would\n * otherwise yield a single row.\n */\n skeleton?: TableProps.SkeletonConfig;\n\n /**\n * Specifies a property that uniquely identifies an individual item.\n * When it's set, it's used to provide [keys for React](https://reactjs.org/docs/lists-and-keys.html#keys)\n * for performance optimizations.\n *\n * It is also used in the following situations:\n * - to connect `items` and `selectedItems` values when they reference different objects.\n * - to connect `items` and `expandableRows.expandedItems` values when they reference different objects.\n * - to attach successful edit state to the correct item if its row index changes after editing.\n */\n trackBy?: TableProps.TrackBy<T>;\n\n /**\n * The columns configuration object\n * * `id` (string) - Specifies a unique column identifier. The property is used 1) as a [keys](https://reactjs.org/docs/lists-and-keys.html#keys) source for React rendering,\n * and 2) to match entries in the `columnDisplay` property, if defined.\n * * `header` (ReactNode) - Determines the display of the column header.\n * * `cell` ((item) => ReactNode) - Determines the display of a cell's content. You receive the current table row\n * item as an argument.\n * * `width` (string | number) - Specifies the column width. Corresponds to the `width` css-property. If the width is not set,\n * the browser automatically adjusts the column width based on the content. When `resizableColumns` property is\n * set to `true`, additional constraints apply: 1) string values are not allowed, and 2) the last visible column always\n * fills the remaining space of the table so the specified width is ignored.\n * * `minWidth` (string | number) - Specifies the minimum column width. Corresponds to the `min-width` css-property. When\n * `resizableColumns` property is set to `true`, additional constraints apply: 1) string values are not allowed,\n * and 2) the column can't resize below than the specified width (defaults to \"120px\"). We recommend that you set a minimum width\n * of at least 176px for columns that are editable.\n * * `maxWidth` (string | number) - Specifies the maximum column width. Corresponds to the `max-width` css-property.\n * Note that when the `resizableColumns` property is set to `true` this property is ignored.\n * * `ariaLabel` (LabelData => string) - An optional function that's called to provide an `aria-label` for the cell header.\n * It receives the current sorting state of this column, the direction it's sorted in, and an indication of\n * whether the sorting is disabled, as three Boolean values: `sorted`, `descending` and `disabled`,\n * plus a number `sortIndex` if the column is part of a multi-column sort.\n * We recommend that you use this for sortable columns to provide more meaningful labels based on the\n * current sorting direction.\n * * `sortingField` (string) - Enables default column sorting. The value is used in [collection hooks](/get-started/dev-guides/collection-hooks/)\n * to reorder the items. Provide the name of the property within each item that should be used for sorting by this column.\n * For more complex sorting use `sortingComparator` instead.\n * * `sortingComparator` ((T, T) => number) - Enables custom column sorting. The value is used in [collection hooks](/get-started/dev-guides/collection-hooks/)\n * to reorder the items. This property accepts a custom comparator that is used to compare two items.\n * The comparator must implement ascending ordering, and the output is inverted automatically in case of descending order.\n * If present, the `sortingField` property is ignored.\n * * `counter` ((ItemCounterData) => string) - Specifies secondary cell content, displayed next to the primary. Use it to display\n * resource counters in the first column of expandable tables with data grouping.\n * * `editConfig` (EditConfig) - Enables inline editing in column when present. The value is used to configure the editing behavior.\n * * `editConfig.ariaLabel` (string) - Specifies a label for the edit control. Visually hidden but read by screen readers.\n * * `editConfig.errorIconAriaLabel` (string) - Specifies an ariaLabel for the error icon that is displayed when the validation fails.\n * * `editConfig.editIconAriaLabel` (string) - Specifies an alternate text for the edit icon used in column header.\n * * `editConfig.constraintText` (string) - Constraint text that is displayed below the edit control.\n * * `editConfig.disabledReason` ((item) => string | undefined) - A function that determines whether inline edit for certain items is disabled, and provides a reason why.\n * Return a string from the function to disable inline edit with a reason. Return `undefined` (or no return) from the function allow inline edit.\n * * `editConfig.validation` ((item, value) => string) - A function that allows you to validate the value of the edit control.\n * Return a string from the function to display an error message. Return `undefined` (or no return) from the function to indicate that the value is valid.\n * * `editConfig.editingCell` ((item, cellContext) => ReactNode) - Determines the display of a cell's content when inline editing is active on a cell;\n * You receive the current table row `item` and a `cellContext` object as arguments.\n * The `cellContext` object contains the following properties:\n * * `cellContext.currentValue` - State to keep track of a value in input fields while editing.\n * * `cellContext.setValue` - Function to update `currentValue`. This should be called when the value in input field changes.\n * * `cellContext.submitValue` - Function to submit the `currentValue`.\n * * `editConfig.disableNativeForm` (boolean) - Disables the use of a `<form>` element to capture submissions inside the inline editor.\n * If enabled, ensure that any text inputs in the editing cell submit the cell value when the Enter key is pressed, using `cellContext.submitValue`.\n * * `isRowHeader` (boolean) - Specifies that cells in this column should be used as row headers.\n * * `hasDynamicContent` (boolean) - Specifies that cells in this column may have dynamic content. The contents will then be observed to update calculated column widths.\n * This may have a negative performance impact, so should be used only if necessary. It has no effect if `resizableColumns` is set to `true`.\n * * `verticalAlign` ('middle' | 'top') - Determines the alignment of the content in the table cell.\n */\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<T>>;\n\n /**\n * Determines the alignment of the content inside table cells.\n * This property affects all cells, including the ones in the selection column.\n * To target individual cells use `columnDefinitions.verticalAlign`, that takes precedence over `cellVerticalAlign`.\n */\n cellVerticalAlign?: 'middle' | 'top';\n\n /**\n * Specifies the selection type (`'single' | 'multi'`).\n */\n selectionType?: TableProps.SelectionType;\n /**\n * List of selected items.\n */\n selectedItems?: ReadonlyArray<T>;\n\n /**\n * Use this slot to add filtering controls to the table.\n */\n filter?: React.ReactNode;\n\n /**\n * Use this slot to add the [pagination component](/components/pagination/) to the table.\n */\n pagination?: React.ReactNode;\n\n /**\n * Use this slot to add [collection preferences](/components/collection-preferences/) to the table.\n */\n preferences?: React.ReactNode;\n\n /**\n * Determines whether a given item is disabled. If an item is disabled, the user can't select it.\n */\n isItemDisabled?: TableProps.IsItemDisabled<T>;\n\n /**\n * Specifies if text wraps within table cells. If set to `true`, long text within cells may wrap onto\n * multiple lines instead of being truncated with an ellipsis.\n */\n wrapLines?: boolean;\n\n /**\n * Specifies if table rows alternate being shaded and unshaded. If set to `true`, every other row will be shaded.\n */\n stripedRows?: boolean;\n\n /**\n * Toggles the content density of the table. Defaults to `'comfortable'`.\n */\n contentDensity?: 'comfortable' | 'compact';\n\n /**\n * Specifies if columns can be resized. If set to `true`, users can resize the columns in the table.\n */\n resizableColumns?: boolean;\n\n /**\n * Specifies alternative text for the selection components (checkboxes and radio buttons) as follows:\n * * `selectionGroupLabel` (string) - Specifies the alternative text for the whole selection and single-selection column header.\n * * `itemSelectionLabel` ((SelectionState, Item) => string) - Specifies the alternative text for item selection controls.\n * The selection state includes:\n * * `selectedItems` (Item[]) - corresponds to table's `selectedItems`.\n * * `itemsCount` (optional, number) - corresponds to table's `expandableRows.getItemsCount(item)`.\n * * `selectedItemsCount` (optional, number) - corresponds to table's `expandableRows.getItemsCount(item)`.\n * * `allItemsSelectionLabel` ((SelectionState) => string) - Specifies the alternative text for all items selection control.\n * The selection state includes:\n * * `selectedItems` (Item[]) - corresponds to table's `selectedItems`.\n * * `itemsCount` (optional, number) - corresponds to `expandableRows.totalItemsCount` or `totalItemsCount`.\n * * `selectedItemsCount` (optional, number) - corresponds to `expandableRows.totalSelectedItemsCount` or `selectedItems.length`.\n * * `itemLoaderSelectionLabel`: ((SelectionState, Item) => string) - Specifies the alternative text for resource loader selector\n * in tables with data grouping.\n * * `tableLabel` (string) - Provides an alternative text for the table. If you use a header for this table, you may reuse the string\n * to provide a caption-like description. For example, tableLabel=Instances will be announced as 'Instances table'.\n * * `resizerRoleDescription` (string) - Provides role description for table column resizer buttons.\n * * `resizerTooltipText` (string) - Provides text for the table column resizer tooltip.\n * * `activateEditLabel` (EditableColumnDefinition, Item) => string -\n * Specifies an alternative text for the edit button in editable cells.\n * * `cancelEditLabel` (EditableColumnDefinition) => string -\n * Specifies an alternative text for the cancel button in editable cells.\n * * `submitEditLabel` (EditableColumnDefinition) => string -\n * Specifies an alternative text for the submit button in editable cells.\n * * `successfulEditLabel` (EditableColumnDefinition) => string -\n * Specifies an alternative text for the success icon in editable cells. This text is also announced to screen readers.\n * * `submittingEditText` (EditableColumnDefinition) => string -\n * Specifies a text that is announced to screen readers when a cell edit operation is submitted.\n * * `expandButtonLabel` (Item) => string - Specifies an alternative text for row expand button.\n * * `collapseButtonLabel` (Item) => string - Specifies an alternative text for row collapse button.\n * * `sortMenuTriggerLabel` (string) - Provides an alternative text for the column header sort menu trigger button when multi-column sort is enabled.\n * * `sortAscending` (string) - Screen reader word for ascending sort direction, used in sort announcements and a sorted column header's accessible text.\n * * `sortDescending` (string) - Screen reader word for descending sort direction, used in sort announcements and a sorted column header's accessible text.\n * * `liveAnnouncementSortOrder` (({ columns }) => string) - Formats the screen reader announcement for the current multi-column sort order.\n * * `liveAnnouncementSortCleared` (string) - Screen reader announcement made when the multi-column sort is cleared.\n * * `sortPriority` (({ priority }) => string) - Formats a sorted column's position in a multi-column sort, used in the sorted column header's accessible label.\n * @i18n\n */\n ariaLabels?: TableProps.AriaLabels<T>;\n\n /**\n * Specifies the definition object of the currently sorted column. Make sure you pass an object that's\n * present in the `columnDefinitions` array.\n */\n sortingColumn?: TableProps.SortingColumn<T>;\n /**\n * Specifies whether to use a descending sort order.\n */\n sortingDescending?: boolean;\n /**\n * Specifies if sorting buttons are disabled. For example, use this property\n * to prevent the user from sorting before items are fully loaded.\n */\n sortingDisabled?: boolean;\n\n /**\n * Enables multi-column sorting on the table. The object contains:\n *\n * * `sortingColumns` (ReadonlyArray<TableProps.SortingState<T>>) - The current multi-column\n * sort state. The first entry has the highest sort priority, and subsequent entries act as\n * tiebreakers.\n * * `onChange` (NonCancelableEventHandler<TableProps.MultiColumnSortChangeDetail<T>>) - Called\n * when the user changes the sort state.\n *\n * Use either this property or `sortingColumn` / `sortingDescending` / `onSortingChange`, but not both.\n */\n multiColumnSort?: TableProps.MultiColumnSort<T>;\n\n /**\n * Object containing the localized visible strings used by the Table component.\n *\n * When multi-column sorting is enabled it provides the sort UI labels:\n *\n * * `sortDropdownSortAscending` (string): Label for the \"Sort ascending\" dropdown menu item.\n * * `sortDropdownSortDescending` (string): Label for the \"Sort descending\" dropdown menu item.\n * * `sortDropdownMultiColumnSortGroup` (string): Label for the multi-column sort dropdown menu group.\n * * `sortDropdownAddToSortAscending` (string): Label for the \"Add to sort (ascending)\" dropdown menu item.\n * * `sortDropdownAddToSortDescending` (string): Label for the \"Add to sort (descending)\" dropdown menu item.\n * * `sortDropdownRemoveFromSort` (string): Label for the \"Remove from sort\" dropdown menu item.\n * * `sortDropdownAddToSortDisabledReason` (string): Reason shown when the \"Add to sort\" menu items are disabled.\n * * `sortDropdownRemoveFromSortDisabledReason` (string): Reason shown when the \"Remove from sort\" menu item is disabled.\n * * `clearSort` (string): Label for the \"Clear sort\" button.\n *\n * @i18n\n */\n i18nStrings?: TableProps.I18nStrings;\n\n /**\n * Specifies the number of first and/or last columns that should be sticky.\n *\n * If the available scrollable space is less than a certain threshold, the feature is deactivated.\n *\n * Use it in conjunction with the sticky columns preference of the\n * [collection preferences](/components/collection-preferences/) component.\n *\n */\n stickyColumns?: TableProps.StickyColumns;\n\n /**\n * Specifies an array that represents the table columns in the order in which they will be displayed, together with their visibility.\n *\n * If not set, all columns are displayed and the order is dictated by the `columnDefinitions` property.\n *\n * Use it in conjunction with the content display preference of the [collection preferences](/components/collection-preferences/) component.\n *\n * Each entry is one of the following:\n * - `ColumnDisplay` - Represents a single column.\n * - `type` ('column') - (Optional) Identifies the entry as a column. Defaults to `'column'` when omitted.\n * - `id` (string) - The column identifier. Must match a column `id` from `columnDefinitions`.\n * - `visible` (boolean) - Whether the column is visible.\n * - `GroupDisplay` - Represents a column group.\n * - `type` ('group') - Identifies the entry as a group.\n * - `id` (string) - The group identifier. Must match a group `id` from `groupDefinitions`.\n * - `visible` (boolean) - Whether the group is visible.\n * - `children` (ReadonlyArray<ColumnDisplayProperties>) - The columns or nested groups within this group.\n */\n columnDisplay?: ReadonlyArray<ColumnDisplayProperties>;\n\n /**\n * Defines the column groups. Each group has an `id` and `header` used to label the group header cell.\n *\n * When using grouped columns, you must also provide the `columnDisplay` property with `{ type: 'group', id, children }` entries\n * to assign columns to their respective groups and define the display hierarchy.\n *\n * Each group definition contains the following:\n * - `id` (string) - A unique identifier for the group.\n * - `header` (ReactNode) - The content displayed in the group header cell.\n * - `ariaLabel` ((LabelData) => string) - (Optional) A function that provides an `aria-label` for the group header.\n */\n groupDefinitions?: ReadonlyArray<TableProps.GroupDefinition<T>>;\n\n /**\n * Specifies an array containing the `id`s of visible columns. If not set, all columns are displayed.\n *\n * Use it in conjunction with the visible content preference of the [collection preferences](/components/collection-preferences/) component.\n *\n * The order of ids doesn't influence the order in which columns are displayed - this is dictated by the `columnDefinitions` property.\n *\n * @deprecated Replaced by `columnDisplay`.\n */\n visibleColumns?: ReadonlyArray<string>;\n\n /**\n * Fired when the user resizes a table column. The event detail contains an array of column widths in pixels,\n * including the hidden via preferences columns. Use this event to persist the column widths.\n */\n onColumnWidthsChange?: NonCancelableEventHandler<TableProps.ColumnWidthsChangeDetail>;\n\n /**\n * Called when either the column to sort by or the direction of sorting changes upon user interaction.\n * The event detail contains the current sortingColumn and isDescending.\n */\n onSortingChange?: NonCancelableEventHandler<TableProps.SortingState<T>>;\n\n /**\n * Fired when a user interaction triggers a change in the list of selected items.\n * The event `detail` contains the new state for `selectedItems`.\n */\n onSelectionChange?: NonCancelableEventHandler<TableProps.SelectionChangeDetail<T>>;\n\n /**\n * Note: This feature is provided for backwards compatibility. Its use is not recommended,\n * and it may be deprecated in the future.\n *\n * Called when the user clicked at a table row. The event detail contains the index of the\n * clicked row and the row object itself. Use this event to define a row click behavior.\n */\n onRowClick?: NonCancelableEventHandler<TableProps.OnRowClickDetail<T>>;\n\n /**\n * Note: This feature is provided for backwards compatibility. Its use is not recommended,\n * and it may be deprecated in the future.\n *\n * Called when the user clicked at a table row with the right mouse click. The event detail\n * contains the index of the clicked row and the row object itself. Use this event to override\n * the default browser context menu behavior.\n */\n onRowContextMenu?: CancelableEventHandler<TableProps.OnRowContextMenuDetail<T>>;\n\n /**\n * If set to `true`, the table header remains visible when the user scrolls down.\n *\n * Do not use `stickyHeader` conditionally. Instead, keep its value constant during the component lifecycle.\n */\n stickyHeader?: boolean;\n\n /**\n * Specifies a vertical offset (in pixels) for the sticky header. For example, use this if you\n * need to position the sticky header below other fixed position elements on the page.\n */\n stickyHeaderVerticalOffset?: number;\n\n /**\n * Specify a table variant with one of the following:\n * * `container` - Use this variant to have the table displayed within a container.\n * * `borderless` - Use this variant when the table should have no outer borders or shadow\n * (such as in a dashboard item container).\n * * `embedded` - Use this variant within a parent container (such as a modal, expandable\n * section, container or split panel).\n * **Deprecated**, replaced by `borderless` and `container`.\n * * `stacked` - Use this variant adjacent to other stacked containers (such as a container,\n * table).\n * * `full-page` – Use this variant when the table is the entire content of a page.\n * @visualrefresh `embedded`, `stacked`, and `full-page` variants\n */\n variant?: TableProps.Variant;\n\n /**\n * Use this property to inform screen readers how many items there are in a table.\n * It specifies the total count of all items in a table.\n * If there is an unknown total of items in a table, leave this property undefined.\n */\n totalItemsCount?: number;\n /**\n * Use this property to inform screen readers which range of items is currently displayed in the table.\n * It specifies the index (1-based) of the first item in the table.\n */\n firstIndex?: number;\n /**\n * Use this function to announce page changes to screen reader users.\n * The function argument takes the following properties:\n * * `firstIndex` (number) - The provided `firstIndex` property which defaults to 1 when not defined.\n * * `lastIndex` (number) - The index of the last visible item of the table.\n * * `visibleItemsCount` (number) - The number of rendered table items.\n * * `totalItemsCount` (optional, number) - The provided `totalItemsCount` property.\n * Important: in tables with expandable rows the `firstIndex`, `lastIndex`, and `totalItemsCount` reflect the top-level items only.\n */\n renderAriaLive?: (data: TableProps.LiveAnnouncement) => string;\n /**\n * Specifies a function that will be called after user submits an inline edit.\n * Return a promise to keep loading state while the submit request is in progress.\n */\n submitEdit?: TableProps.SubmitEditFunction<T>;\n\n /**\n * Called whenever user cancels an inline edit. Use this function to reset any\n * validation states, or show warning for unsaved changes.\n */\n onEditCancel?: CancelableEventHandler;\n\n /**\n * Use this property to activate advanced keyboard navigation and focusing behaviors.\n * When set to `true`, table cells become navigable with arrow keys, and the entire table has a single tab stop.\n *\n * By default, the keyboard navigation is active for tables with expandable rows.\n */\n enableKeyboardNavigation?: boolean;\n\n /**\n * Use this property to define expandable table rows. The expandableRows configuration object consists of:\n * * `getItemChildren` ((Item) => Item[]) - Use it to define nested data that are shown when an item gets expanded.\n * * `isItemExpandable` ((Item) => boolean) - Use it for items that can be expanded to show nested data.\n * * `expandedItems` (Item[]) - Use it to represent the expanded state of items.\n * * `onExpandableItemToggle` (TableProps.OnExpandableItemToggle<Item>) - Called when an item's expand toggle is clicked.\n * * `groupSelection` (optional, GroupSelectionState<Item>) - Tree-like selection state for tables with grouped data. When defined, the\n * properties `selectionType` and `selectedItems` no longer apply. It reads as (assuming item \"a.1\" is nested under \"a\"):\n * * `{ inverted: false, toggledItems: [] }` - no items are selected;\n * * `{ inverted: true, toggledItems: [] }` - all items are selected;\n * * `{ inverted: false, toggledItems: [\"a\", \"a.1\"] }` - all items nested under \"a\", unless also nested under \"a.1\", are selected.\n * * `{ inverted: true, toggledItems: [\"a\", \"a.1\"] }` - the opposite of above.\n * * `onGroupSelectionChange` (optional, TableProps.OnGroupSelectionChange<Item>) - Called when group selection changes.\n * * `getItemsCount` (optional, (Item) => number) - Use it to indicate the number of resources nested under the given item.\n * The value is passed as `itemsCount` property to the `columnDefinitions[index].counter` and `ariaLabels.itemSelectionLabel` functions.\n * * `totalItemsCount` (optional, number) - Use it to indicate the total number of resources in the table.\n * The value is passed as `itemsCount` property to the `ariaLabels.allItemsSelectionLabel`.\n * * `getSelectedItemsCount` (optional, (Item) => number) - Use it to indicate the number of selected resources nested under the given item.\n * The value is passed as `selectedItemsCount` property to the `columnDefinitions[index].counter` and `ariaLabels.itemSelectionLabel` functions.\n * * `totalSelectedItemsCount` (optional, number) - Use it to indicate the total number of selected resources in the table.\n * The value is passed as `selectedItemsCount` property to the `ariaLabels.allItemsSelectionLabel`.\n */\n expandableRows?: TableProps.ExpandableRows<T>;\n\n /**\n * A function that specifies the current status of loading more items. It is called once for the entire\n * table with `item=null` and then for each expanded item. The function result is one of the four possible states:\n * * `pending` - Indicates that no request in progress, but more options may be loaded.\n * * `loading` - Indicates that data fetching is in progress.\n * * `finished` - Indicates that loading has finished and no more requests are expected.\n * * `error` - Indicates that an error occurred during fetch.\n **/\n getLoadingStatus?: TableProps.GetLoadingStatus<T>;\n /**\n * Renders loader row content for pending state.\n */\n renderLoaderPending?: (detail: TableProps.RenderLoaderDetail<T>) => React.ReactNode;\n /**\n * Renders loader row content for loading state.\n */\n renderLoaderLoading?: (detail: TableProps.RenderLoaderDetail<T>) => React.ReactNode;\n /**\n * Renders loader row content for error state.\n */\n renderLoaderError?: (detail: TableProps.RenderLoaderDetail<T>) => React.ReactNode;\n /**\n * Renders loader row content for empty row state: the loading status is \"finished\",\n * and the row is expanded but has empty children array.\n *\n * The empty loader state is only supported for expandable rows. Use `empty` slot if\n * the table items array is empty.\n */\n renderLoaderEmpty?: (detail: TableProps.RenderLoaderEmptyDetail<T>) => React.ReactNode;\n /**\n * Renders loader counter that is appended to the loader content in all loader states.\n */\n renderLoaderCounter?: (detail: TableProps.RenderLoaderCounterDetail<T>) => React.ReactNode;\n}\n\nexport namespace TableProps {\n export interface AnalyticsMetadata {\n instanceIdentifier?: string;\n flowType?: 'view-resource';\n resourceType?: string;\n }\n\n export type TrackBy<T> = string | ((item: T) => string);\n\n export interface CellContext<V> {\n currentValue: Optional<V>;\n setValue: (value: V | undefined) => void;\n submitValue: () => void;\n }\n\n export interface EditConfig<T, V = any> {\n /**\n * Specifies a label for the edit control. Visually hidden but read\n * by screen readers.\n */\n ariaLabel?: string;\n /**\n * Specifies an ariaLabel for the error icon that is displayed when\n * the validation fails.\n */\n errorIconAriaLabel?: string;\n /**\n * Specifies an alternate text for the edit icon used in column header.\n */\n editIconAriaLabel?: string;\n /**\n * Constraint text that is displayed below the edit control.\n */\n constraintText?: string;\n /**\n * A function that allows you to validate the value of the edit control. Return\n * a string from the function to display an error message. Return\n * `undefined` (or no return) from the function to indicate that the value is valid.\n * @param item - The item that is being edited.\n * @param value - The current value of the edit control.\n */\n validation?: (item: T, value: Optional<V>) => Optional<string>;\n\n /**\n * Determines the display of a cell's content when inline edit is active.\n */\n editingCell(item: T, ctx: TableProps.CellContext<any>): React.ReactNode;\n\n /**\n * Determines whether inline edit for certain items is disabled, and provides a reason why.\n */\n disabledReason?: (item: T) => string | undefined;\n\n /**\n * Disables the use of a `<form>` element to capture submissions inside the inline editor.\n * If enabled, ensure that any text inputs in the editing cell submit the cell value when\n * the Enter key is pressed, using `cellContext.submitValue`.\n */\n disableNativeForm?: boolean;\n }\n\n export type ColumnDefinition<T> = {\n id?: string;\n header: React.ReactNode;\n ariaLabel?(data: LabelData): string;\n width?: number | string;\n minWidth?: number | string;\n maxWidth?: number | string;\n counter?(props: ItemCounterData<T>): React.ReactNode;\n editConfig?: EditConfig<T>;\n isRowHeader?: boolean;\n verticalAlign?: VerticalAlign;\n hasDynamicContent?: boolean;\n cell(item: T): React.ReactNode;\n } & SortingColumn<T>;\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n export interface GroupDefinition<T = any> {\n id: string;\n header: React.ReactNode;\n ariaLabel?: (data: LabelData) => string;\n }\n\n export interface ItemCounterData<T> {\n item: T;\n itemsCount?: number;\n selectedItemsCount?: number;\n }\n\n export interface StickyColumns {\n first?: number;\n last?: number;\n }\n\n export type VerticalAlign = 'middle' | 'top';\n export type SelectionType = 'single' | 'multi';\n export type Variant = 'container' | 'embedded' | 'borderless' | 'stacked' | 'full-page';\n export interface SelectionState<T> {\n selectedItems: ReadonlyArray<T>;\n itemsCount?: number;\n selectedItemsCount?: number;\n }\n export interface SelectionChangeDetail<T> {\n selectedItems: T[];\n }\n export type IsItemDisabled<T> = (item: T) => boolean;\n export interface AriaLabels<T> {\n allItemsSelectionLabel?: (data: SelectionState<T>) => string;\n itemSelectionLabel?: (data: SelectionState<T>, row: T) => string;\n itemLoaderSelectionLabel?: (data: SelectionState<T>, row: null | T) => string;\n selectionGroupLabel?: string;\n tableLabel?: string;\n resizerRoleDescription?: string;\n resizerTooltipText?: string;\n // do not use <T> to prevent overly strict validation on consumer end\n // it works, practically, we are only interested in `id` and `header` properties only\n activateEditLabel?: (column: ColumnDefinition<any>, item: T) => string;\n cancelEditLabel?: (column: ColumnDefinition<any>) => string;\n submitEditLabel?: (column: ColumnDefinition<any>) => string;\n submittingEditText?: (column: ColumnDefinition<any>) => string;\n successfulEditLabel?: (column: ColumnDefinition<any>) => string;\n expandButtonLabel?: (item: T) => string;\n collapseButtonLabel?: (item: T) => string;\n sortMenuTriggerLabel?: string;\n sortAscending?: string;\n sortDescending?: string;\n liveAnnouncementSortOrder?: (data: { columns: string }) => string;\n liveAnnouncementSortCleared?: string;\n sortPriority?: (data: { priority: number }) => string;\n }\n export interface SortingState<T> {\n isDescending?: boolean;\n sortingColumn: SortingColumn<T>;\n }\n export interface SortingColumn<T> {\n sortingField?: string;\n sortingComparator?: (a: T, b: T) => number;\n }\n export interface MultiColumnSort<T> {\n sortingColumns: ReadonlyArray<SortingState<T>>;\n onChange: NonCancelableEventHandler<MultiColumnSortChangeDetail<T>>;\n }\n export interface MultiColumnSortChangeDetail<T> {\n sortingColumns: ReadonlyArray<SortingState<T>>;\n }\n export interface I18nStrings {\n sortDropdownSortAscending?: string;\n sortDropdownSortDescending?: string;\n sortDropdownMultiColumnSortGroup?: string;\n sortDropdownAddToSortAscending?: string;\n sortDropdownAddToSortDescending?: string;\n sortDropdownRemoveFromSort?: string;\n sortDropdownAddToSortDisabledReason?: string;\n sortDropdownRemoveFromSortDisabledReason?: string;\n clearSort?: string;\n }\n export interface LabelData {\n sorted: boolean;\n descending: boolean;\n disabled: boolean;\n sortIndex?: number;\n }\n export interface OnRowClickDetail<T> {\n rowIndex: number;\n item: T;\n }\n export interface OnRowContextMenuDetail<T> {\n rowIndex: number;\n item: T;\n clientX: number;\n clientY: number;\n }\n\n export interface ColumnWidthsChangeDetail {\n widths: ReadonlyArray<number>;\n }\n\n export interface LiveAnnouncement {\n firstIndex: number;\n lastIndex: number;\n visibleItemsCount: number;\n totalItemsCount?: number;\n }\n\n export interface Ref {\n /**\n * When the sticky header is enabled and you call this function, the table\n * scroll parent scrolls to reveal the first row of the table.\n */\n scrollToTop(): void;\n\n /**\n * Dismiss an inline edit if currently active.\n */\n cancelEdit?(): void;\n }\n\n export type SubmitEditFunction<ItemType, ValueType = unknown> = (\n item: ItemType,\n column: ColumnDefinition<ItemType>,\n newValue: ValueType\n ) => Promise<void> | void;\n\n export interface ColumnDisplay {\n type?: 'column';\n id: string;\n visible: boolean;\n }\n\n export interface GroupDisplay {\n type: 'group';\n id: string;\n visible: boolean;\n children: ReadonlyArray<ColumnDisplayProperties>;\n }\n\n export type ColumnDisplayProperties = ColumnDisplay | GroupDisplay;\n\n export interface ExpandableRows<T> {\n getItemChildren: (item: T) => readonly T[];\n isItemExpandable: (item: T) => boolean;\n expandedItems: ReadonlyArray<T>;\n onExpandableItemToggle: OnExpandableItemToggle<T>;\n groupSelection?: GroupSelectionState<T>;\n onGroupSelectionChange?: OnGroupSelectionChange<T>;\n getItemsCount?: (item: T) => number;\n totalItemsCount?: number;\n getSelectedItemsCount?: (item: T) => number;\n totalSelectedItemsCount?: number;\n }\n\n export type OnExpandableItemToggle<T> = NonCancelableEventHandler<ExpandableItemToggleDetail<T>>;\n\n export interface ExpandableItemToggleDetail<T> {\n item: T;\n expanded: boolean;\n }\n\n export type OnGroupSelectionChange<T> = NonCancelableEventHandler<GroupSelectionChangeDetail<T>>;\n\n export interface GroupSelectionChangeDetail<T> {\n groupSelection: GroupSelectionState<T>;\n }\n\n export interface GroupSelectionState<T> {\n inverted: boolean;\n toggledItems: readonly T[];\n }\n\n export type GetLoadingStatus<T> = (item: null | T) => LoadingStatus;\n\n export type LoadingStatus = 'pending' | 'loading' | 'error' | 'finished';\n\n export interface RenderLoaderDetail<T> {\n item: null | T;\n }\n\n export interface RenderLoaderCounterDetail<T> {\n loadingStatus: LoadingStatus;\n selected: boolean;\n item: null | T;\n }\n\n export interface RenderLoaderEmptyDetail<T> {\n item: T;\n }\n\n export interface FixedSkeletonConfig {\n totalRows: number;\n maxAutoRows?: never;\n minAutoRows?: never;\n }\n\n export interface AutoSkeletonConfig {\n totalRows: 'auto';\n maxAutoRows?: number;\n minAutoRows?: number;\n }\n\n export type SkeletonConfig = FixedSkeletonConfig | AutoSkeletonConfig;\n}\n\nexport type TableRow<T> = TableDataRow<T> | TableLoaderRow<T>;\n\ninterface TableDataRow<T> {\n type: 'data';\n item: T;\n}\n\ninterface TableLoaderRow<T> {\n type: 'loader';\n item: null | T;\n level: number;\n status: TableProps.LoadingStatus;\n from: number;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/table/internal.tsx"],"names":[],"mappings":"AA4CA,OAAO,EAAE,mBAAmB,EAAwB,MAAM,cAAc,CAAC;AA8CzE,eAAO,MAAM,sBAAsB,EAW9B,mBAAmB,CAAC;AAEzB,QAAA,MAAM,aAAa,EAkyBd,mBAAmB,CAAC;AAEzB,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/table/internal.tsx"],"names":[],"mappings":"AA4CA,OAAO,EAAE,mBAAmB,EAAwB,MAAM,cAAc,CAAC;AA+CzE,eAAO,MAAM,sBAAsB,EAW9B,mBAAmB,CAAC;AAEzB,QAAA,MAAM,aAAa,EA+yBd,mBAAmB,CAAC;AAEzB,eAAe,aAAa,CAAC"}
@@ -44,6 +44,7 @@ import { StickyScrollbar } from './sticky-scrollbar';
44
44
  import { getTableRoleProps, getTableRowRoleProps, getTableWrapperRoleProps, GridNavigationProvider, } from './table-role';
45
45
  import Thead from './thead';
46
46
  import ToolsHeader from './tools-header';
47
+ import { useAutoSkeletonRows } from './use-auto-skeleton-rows';
47
48
  import { useCellEditing } from './use-cell-editing';
48
49
  import { ColumnWidthsProvider, DEFAULT_COLUMN_WIDTH } from './use-column-widths';
49
50
  import { usePreventStickyClickScroll } from './use-prevent-sticky-click-scroll';
@@ -65,7 +66,7 @@ export const InternalTableAsSubstep = React.forwardRef((props, ref) => {
65
66
  return React.createElement(InternalTable, { ...tableProps, ref: ref });
66
67
  });
67
68
  const InternalTable = React.forwardRef(({ header, footer, empty, filter, pagination, preferences, items, columnDefinitions, groupDefinitions, trackBy, loading, loadingText, skeleton, selectionType: externalSelectionType, selectedItems, isItemDisabled, ariaLabels, onSelectionChange, onSortingChange, sortingColumn, sortingDescending, sortingDisabled, multiColumnSort, i18nStrings, visibleColumns, stickyHeader, stickyHeaderVerticalOffset, onRowClick, onRowContextMenu, wrapLines, stripedRows, contentDensity, submitEdit, onEditCancel, resizableColumns, onColumnWidthsChange, variant, __internalRootRef, totalItemsCount, firstIndex, renderAriaLive, stickyColumns, columnDisplay, enableKeyboardNavigation, expandableRows: externalExpandableRows, getLoadingStatus, renderLoaderPending, renderLoaderLoading, renderLoaderError, renderLoaderEmpty, renderLoaderCounter, cellVerticalAlign, __funnelSubStepProps, ...rest }, ref) => {
68
- var _a, _b, _c, _d, _e;
69
+ var _a, _b, _c, _d, _e, _f;
69
70
  // Keyboard navigation defaults to `true` for tables with expandable rows.
70
71
  if (externalExpandableRows && enableKeyboardNavigation === undefined) {
71
72
  enableKeyboardNavigation = true;
@@ -178,6 +179,8 @@ const InternalTable = React.forwardRef(({ header, footer, empty, filter, paginat
178
179
  cancelEdit,
179
180
  });
180
181
  }, [cancelEdit]);
182
+ const tableRootRefObject = useRef(null);
183
+ const tableBodyRef = useRef(null);
181
184
  const wrapperRefObject = useRef(null);
182
185
  const handleScroll = useScrollSync([wrapperRefObject, scrollbarRef, secondaryWrapperRef]);
183
186
  const { moveFocusDown, moveFocusUp, moveFocus } = useSelectionFocusMove(selectionType, allItems.length);
@@ -314,8 +317,18 @@ const InternalTable = React.forwardRef(({ header, footer, empty, filter, paginat
314
317
  setLastUserAction,
315
318
  };
316
319
  usePreventStickyClickScroll(wrapperRefObject);
320
+ const tableRootRef = useMergeRefs(__internalRootRef, tableRootRefObject);
317
321
  const wrapperRef = useMergeRefs(wrapperRefObject, stickyState.refs.wrapper);
318
322
  const tableRef = useMergeRefs(tableMeasureRef, tableRefObject, stickyState.refs.table);
323
+ const autoSkeletonRows = useAutoSkeletonRows({
324
+ enabled: !!loading && (skeleton === null || skeleton === void 0 ? void 0 : skeleton.totalRows) === 'auto',
325
+ maxRows: skeleton === null || skeleton === void 0 ? void 0 : skeleton.maxAutoRows,
326
+ minRows: skeleton === null || skeleton === void 0 ? void 0 : skeleton.minAutoRows,
327
+ tableBodyRef,
328
+ tableRootRef: tableRootRefObject,
329
+ tableWrapperRef: wrapperRefObject,
330
+ });
331
+ const skeletonRowsCount = (skeleton === null || skeleton === void 0 ? void 0 : skeleton.totalRows) === 'auto' ? allItems.length + autoSkeletonRows : ((_f = skeleton === null || skeleton === void 0 ? void 0 : skeleton.totalRows) !== null && _f !== void 0 ? _f : 0);
319
332
  // When the clear-sort button is activated it unmounts (there is no longer a sort to clear),
320
333
  // which would drop keyboard focus to the document body. Move focus to the first sortable
321
334
  // column header instead. Focusing synchronously (before the re-render unmounts the button)
@@ -348,7 +361,7 @@ const InternalTable = React.forwardRef(({ header, footer, empty, filter, paginat
348
361
  return (React.createElement(LinkDefaultVariantContext.Provider, { value: { defaultVariant: 'primary' } },
349
362
  React.createElement(TableComponentsContextProvider, { value: { paginationRef, filterRef, preferencesRef, headerRef } },
350
363
  React.createElement(ColumnWidthsProvider, { visibleColumns: visibleColumnWidthsWithSelection, resizableColumns: resizableColumns, containerRef: wrapperMeasureRefObject, groupColumnMap: groupColumnMap },
351
- React.createElement(InternalContainer, { ...baseProps, ...tableInteractionAttributes, __internalRootRef: __internalRootRef, className: clsx(baseProps.className, styles.root), __funnelSubStepProps: __funnelSubStepProps, __fullPage: variant === 'full-page', header: React.createElement(React.Fragment, null,
364
+ React.createElement(InternalContainer, { ...baseProps, ...tableInteractionAttributes, __internalRootRef: tableRootRef, className: clsx(baseProps.className, styles.root), __funnelSubStepProps: __funnelSubStepProps, __fullPage: variant === 'full-page', header: React.createElement(React.Fragment, null,
352
365
  hasHeader && (React.createElement("div", null,
353
366
  React.createElement("div", { ref: toolsHeaderWrapper, className: clsx(styles['header-controls'], styles[`variant-${computedVariant}`]) },
354
367
  React.createElement(CollectionLabelContext.Provider, { value: { assignId: setHeaderRef } },
@@ -381,11 +394,11 @@ const InternalTable = React.forwardRef(({ header, footer, empty, filter, paginat
381
394
  }) },
382
395
  resizableColumns && columnGroupsLayout && columnGroupsLayout.rows.length > 1 && (React.createElement(TableColGroup, { visibleColumnDefinitions: visibleColumnDefinitions, hasSelection: hasSelection })),
383
396
  React.createElement(Thead, { ref: theadRef, hidden: stickyHeader, onFocusedComponentChange: focusId => { var _a; return (_a = stickyHeaderRef.current) === null || _a === void 0 ? void 0 : _a.setFocus(focusId); }, ...theadProps }),
384
- React.createElement("tbody", null,
385
- skeleton && allItems.length === 0 && loading ? (React.createElement(SkeletonRows, { count: skeleton.totalRows, hasDataRows: false, totalColumnsCount: totalColumnsCount, loadingText: loadingText, hasSelection: hasSelection, hasFooter: hasFooter, stickyState: stickyState, tableRole: tableRole, ariaLabels: ariaLabels, cellVerticalAlign: cellVerticalAlign, computedVariant: computedVariant, visibleColumnDefinitions: visibleColumnDefinitions, wrapLines: wrapLines, resizableColumns: resizableColumns, colIndexOffset: colIndexOffset })) : !skeleton && (loading || allItems.length === 0) ? (React.createElement("tr", null,
397
+ React.createElement("tbody", { ref: tableBodyRef },
398
+ skeleton && allItems.length === 0 && loading ? (React.createElement(SkeletonRows, { count: skeletonRowsCount, hasDataRows: false, totalColumnsCount: totalColumnsCount, loadingText: loadingText, hasSelection: hasSelection, hasFooter: hasFooter, stickyState: stickyState, tableRole: tableRole, ariaLabels: ariaLabels, cellVerticalAlign: cellVerticalAlign, computedVariant: computedVariant, visibleColumnDefinitions: visibleColumnDefinitions, wrapLines: wrapLines, resizableColumns: resizableColumns, colIndexOffset: colIndexOffset })) : !skeleton && (loading || allItems.length === 0) ? (React.createElement("tr", null,
386
399
  React.createElement(NoDataCell, { totalColumnsCount: totalColumnsCount, hasFooter: hasFooter, loading: loading, loadingText: loadingText, empty: empty, tableRef: tableRefObject, containerRef: wrapperMeasureRefObject }))) : (allRows.map((row, rowIndex) => {
387
400
  const isFirstRow = rowIndex === 0;
388
- const hasSkeletonBelow = loading && skeleton && allItems.length > 0 && skeleton.totalRows - allItems.length > 0;
401
+ const hasSkeletonBelow = loading && skeleton && allItems.length > 0 && skeletonRowsCount - allItems.length > 0;
389
402
  const isLastDataRow = rowIndex === allRows.length - 1;
390
403
  const isLastRow = isLastDataRow && !hasSkeletonBelow;
391
404
  const rowExpandableProps = row.type === 'data' ? expandableRows.getExpandableItemProps(row.item) : undefined;
@@ -484,7 +497,7 @@ const InternalTable = React.forwardRef(({ header, footer, empty, filter, paginat
484
497
  return (React.createElement(TableLoaderCell, { key: getColumnKey(column, colIndex), ...sharedCellProps, wrapLines: false, columnId: (_a = column.id) !== null && _a !== void 0 ? _a : colIndex, colIndex: colIndex + colIndexOffset, isSelected: selectionType === 'group' && !!(loaderSelectionProps === null || loaderSelectionProps === void 0 ? void 0 : loaderSelectionProps.checked), isRowHeader: colIndex === 0, level: row.level, item: row.item, trackBy: trackBy, counter: loaderCounter }, loaderContent));
485
498
  }))));
486
499
  })),
487
- loading && skeleton && allItems.length > 0 && skeleton.totalRows - allItems.length > 0 && (React.createElement(SkeletonRows, { count: skeleton.totalRows - allItems.length, hasDataRows: true, totalColumnsCount: totalColumnsCount, loadingText: loadingText, hasSelection: hasSelection, hasFooter: hasFooter, stickyState: stickyState, tableRole: tableRole, ariaLabels: ariaLabels, cellVerticalAlign: cellVerticalAlign, computedVariant: computedVariant, visibleColumnDefinitions: visibleColumnDefinitions, wrapLines: wrapLines, resizableColumns: resizableColumns, colIndexOffset: colIndexOffset }))))),
500
+ loading && skeleton && allItems.length > 0 && skeletonRowsCount - allItems.length > 0 && (React.createElement(SkeletonRows, { count: skeletonRowsCount - allItems.length, hasDataRows: true, totalColumnsCount: totalColumnsCount, loadingText: loadingText, hasSelection: hasSelection, hasFooter: hasFooter, stickyState: stickyState, tableRole: tableRole, ariaLabels: ariaLabels, cellVerticalAlign: cellVerticalAlign, computedVariant: computedVariant, visibleColumnDefinitions: visibleColumnDefinitions, wrapLines: wrapLines, resizableColumns: resizableColumns, colIndexOffset: colIndexOffset }))))),
488
501
  resizableColumns && React.createElement(ResizeTracker, null)),
489
502
  React.createElement(StickyScrollbar, { ref: scrollbarRef, wrapperRef: wrapperRefObject, tableRef: tableRefObject, onScroll: handleScroll, hasStickyColumns: hasStickyColumns }))))));
490
503
  });
@@ -1 +1 @@
1
- {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/table/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useCallback, useImperativeHandle, useMemo, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { useContainerQuery } from '@cloudscape-design/component-toolkit';\nimport { useMergeRefs, warnOnce } from '@cloudscape-design/component-toolkit/internal';\nimport {\n GeneratedAnalyticsMetadataFragment,\n getAnalyticsMetadataAttribute,\n} from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalContainer, { InternalContainerProps } from '../container/internal';\nimport { useFunnelSubStep } from '../internal/analytics/hooks/use-funnel';\nimport { getAnalyticsMetadataProps, getBaseProps } from '../internal/base-component';\nimport { getVisualContextClassname } from '../internal/components/visual-context';\nimport { CollectionLabelContext } from '../internal/context/collection-label-context';\nimport { LinkDefaultVariantContext } from '../internal/context/link-default-variant-context';\nimport {\n FilterRef,\n HeaderRef,\n PaginationRef,\n PreferencesRef,\n TableComponentsContextProvider,\n} from '../internal/context/table-component-context';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useMobile } from '../internal/hooks/use-mobile';\nimport useMouseDownTarget from '../internal/hooks/use-mouse-down-target';\nimport { usePerformanceMarks } from '../internal/hooks/use-performance-marks';\nimport { usePrevious } from '../internal/hooks/use-previous';\nimport { useScrollSync } from '../internal/hooks/use-scroll-sync';\nimport { useTableInteractionMetrics } from '../internal/hooks/use-table-interaction-metrics';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { isDevelopment } from '../internal/is-development';\nimport { SomeRequired } from '../internal/types';\nimport InternalLiveRegion from '../live-region/internal';\nimport { GeneratedAnalyticsMetadataTableComponent } from './analytics-metadata/interfaces';\nimport { TableBodyCell } from './body-cell';\nimport { ClearSortButton } from './clear-sort';\nimport { TableColGroup } from './column-groups/col-group';\nimport { useColumnGroups } from './column-groups/use-column-groups';\nimport { checkColumnWidths } from './column-widths-utils';\nimport { useExpandableTableProps } from './expandable-rows/expandable-rows-utils';\nimport { TableForwardRefType, TableProps, TableRow } from './interfaces';\nimport { SortLiveAnnouncement } from './multi-column-sort/live-announcement';\nimport { NoDataCell } from './no-data-cell';\nimport { getLoaderContent } from './progressive-loading/items-loader';\nimport { TableLoaderCell } from './progressive-loading/loader-cell';\nimport { useProgressiveLoadingProps } from './progressive-loading/progressive-loading-utils';\nimport { ResizeTracker } from './resizer';\nimport { focusMarkers, useSelection, useSelectionFocusMove } from './selection';\nimport { TableBodySelectionCell } from './selection/selection-cell';\nimport { useGroupSelection } from './selection/use-group-selection';\nimport { SkeletonRows } from './skeleton-rows';\nimport { useStickyColumns } from './sticky-columns';\nimport StickyHeader, { StickyHeaderRef } from './sticky-header';\nimport { StickyScrollbar } from './sticky-scrollbar';\nimport {\n getTableRoleProps,\n getTableRowRoleProps,\n getTableWrapperRoleProps,\n GridNavigationProvider,\n TableRole,\n} from './table-role';\nimport Thead, { TheadProps } from './thead';\nimport ToolsHeader from './tools-header';\nimport { useCellEditing } from './use-cell-editing';\nimport { ColumnWidthDefinition, ColumnWidthsProvider, DEFAULT_COLUMN_WIDTH } from './use-column-widths';\nimport { usePreventStickyClickScroll } from './use-prevent-sticky-click-scroll';\nimport { useRowEvents } from './use-row-events';\nimport useTableFocusNavigation from './use-table-focus-navigation';\nimport { checkSortingState, getColumnKey, getItemKey, getVisibleColumnDefinitions, toContainerVariant } from './utils';\n\nimport buttonStyles from '../button/styles.css.js';\nimport headerStyles from '../header/styles.css.js';\nimport styles from './styles.css.js';\n\nconst GRID_NAVIGATION_PAGE_SIZE = 10;\nconst SELECTION_COLUMN_WIDTH = 54;\nconst selectionColumnId = Symbol('selection-column-id');\n\ntype InternalTableProps<T> = SomeRequired<\n TableProps<T>,\n 'items' | 'selectedItems' | 'variant' | 'firstIndex' | 'cellVerticalAlign'\n> &\n InternalBaseComponentProps & {\n __funnelSubStepProps?: InternalContainerProps['__funnelSubStepProps'];\n };\n\nexport const InternalTableAsSubstep = React.forwardRef(\n <T,>(props: InternalTableProps<T>, ref: React.Ref<TableProps.Ref>) => {\n const { funnelSubStepProps } = useFunnelSubStep();\n\n const tableProps: InternalTableProps<T> = {\n ...props,\n __funnelSubStepProps: funnelSubStepProps,\n };\n\n return <InternalTable {...tableProps} ref={ref} />;\n }\n) as TableForwardRefType;\n\nconst InternalTable = React.forwardRef(\n <T,>(\n {\n header,\n footer,\n empty,\n filter,\n pagination,\n preferences,\n items,\n columnDefinitions,\n groupDefinitions,\n trackBy,\n loading,\n loadingText,\n skeleton,\n selectionType: externalSelectionType,\n selectedItems,\n isItemDisabled,\n ariaLabels,\n onSelectionChange,\n onSortingChange,\n sortingColumn,\n sortingDescending,\n sortingDisabled,\n multiColumnSort,\n i18nStrings,\n visibleColumns,\n stickyHeader,\n stickyHeaderVerticalOffset,\n onRowClick,\n onRowContextMenu,\n wrapLines,\n stripedRows,\n contentDensity,\n submitEdit,\n onEditCancel,\n resizableColumns,\n onColumnWidthsChange,\n variant,\n __internalRootRef,\n totalItemsCount,\n firstIndex,\n renderAriaLive,\n stickyColumns,\n columnDisplay,\n enableKeyboardNavigation,\n expandableRows: externalExpandableRows,\n getLoadingStatus,\n renderLoaderPending,\n renderLoaderLoading,\n renderLoaderError,\n renderLoaderEmpty,\n renderLoaderCounter,\n cellVerticalAlign,\n __funnelSubStepProps,\n ...rest\n }: InternalTableProps<T>,\n ref: React.Ref<TableProps.Ref>\n ) => {\n // Keyboard navigation defaults to `true` for tables with expandable rows.\n if (externalExpandableRows && enableKeyboardNavigation === undefined) {\n enableKeyboardNavigation = true;\n }\n\n const baseProps = getBaseProps(rest);\n\n const prevStickyHeader = usePrevious(stickyHeader);\n if (prevStickyHeader !== undefined && !!stickyHeader !== !!prevStickyHeader) {\n warnOnce(\n 'Table',\n `\\`stickyHeader\\` has changed from \"${prevStickyHeader}\" to \"${stickyHeader}\". It is not recommended to change the value of this property during the component lifecycle. Please set it to either \"true\" or \"false\" unconditionally.`\n );\n }\n\n const isMobile = useMobile();\n\n const expandableRows = useExpandableTableProps({\n items,\n expandableRows: externalExpandableRows,\n trackBy,\n ariaLabels,\n });\n const { allItems, isExpandable } = expandableRows;\n const { allRows } = useProgressiveLoadingProps({ getLoadingStatus, expandableRows });\n const selectionType = expandableRows.hasGroupSelection ? ('group' as const) : externalSelectionType;\n\n const [containerWidth, wrapperMeasureRef] = useContainerQuery<number>(rect => rect.borderBoxWidth);\n const wrapperMeasureRefObject = useRef(null);\n const wrapperMeasureMergedRef = useMergeRefs(wrapperMeasureRef, wrapperMeasureRefObject);\n\n const [tableWidth, tableMeasureRef] = useContainerQuery<number>(rect => rect.borderBoxWidth);\n const tableRefObject = useRef<HTMLTableElement>(null);\n\n const secondaryWrapperRef = React.useRef<HTMLDivElement>(null);\n const theadRef = useRef<HTMLTableRowElement>(null);\n const stickyHeaderRef = React.useRef<StickyHeaderRef>(null);\n const scrollbarRef = React.useRef<HTMLDivElement>(null);\n const { cancelEdit, ...cellEditing } = useCellEditing({ onCancel: onEditCancel, onSubmit: submitEdit });\n const paginationRef = useRef<PaginationRef>({});\n const filterRef = useRef<FilterRef>({});\n const preferencesRef = useRef<PreferencesRef>({});\n const headerRef = useRef<HeaderRef>({});\n /* istanbul ignore next: performance marks do not work in JSDOM */\n const getHeaderText = () =>\n toolsHeaderPerformanceMarkRef.current?.querySelector<HTMLElement>(`.${headerStyles['heading-text']}`)\n ?.innerText ?? toolsHeaderPerformanceMarkRef.current?.innerText;\n const getPatternIdentifier = () => {\n const hasActions = !!toolsHeaderPerformanceMarkRef.current?.querySelector<HTMLElement>(\n `.${headerStyles.actions} .${buttonStyles.button}`\n );\n\n if (hasActions) {\n return 'table-with-actions';\n }\n\n return '';\n };\n\n const performanceMarkAttributes = usePerformanceMarks(\n 'table',\n () => !loading,\n tableRefObject,\n () => ({\n loading: loading ?? false,\n header: getHeaderText(),\n }),\n [loading]\n );\n\n const analyticsMetadata = getAnalyticsMetadataProps(rest);\n const interactionMetadata = () => {\n const filterData = filterRef.current;\n const paginationData = paginationRef.current;\n return JSON.stringify({\n filterData,\n paginationData,\n sortingColumn: sortingColumn?.sortingField,\n sortingOrder: sortingColumn ? (sortingDescending ? 'Descending' : 'Ascending') : undefined,\n });\n };\n const getComponentConfiguration = () => {\n const headerData = headerRef.current;\n const filterData = filterRef.current;\n const paginationData = paginationRef.current;\n const preferencesData = preferencesRef.current;\n\n return {\n variant,\n flowType: rest.analyticsMetadata?.flowType,\n resourceType: rest.analyticsMetadata?.resourceType,\n instanceIdentifier: analyticsMetadata?.instanceIdentifier,\n taskName: analyticsMetadata?.instanceIdentifier ?? getHeaderText(),\n uxTaskName: getHeaderText(),\n patternIdentifier: getPatternIdentifier(),\n sortedBy: {\n columnId: sortingColumn?.sortingField,\n sortingOrder: sortingColumn ? (sortingDescending ? 'desc' : 'asc') : undefined,\n },\n filtered: filterData?.filtered ?? null,\n filteredBy: filterData?.filteredBy ?? [],\n filteredCount: filterData?.filterCount ?? null,\n totalNumberOfResources: headerData?.totalCount ?? null,\n tablePreferences: {\n visibleColumns: preferencesData?.visibleColumns ?? [],\n resourcesPerPage: preferencesData?.pageSize ?? null,\n },\n pagination: {\n currentPageIndex: paginationData?.currentPageIndex ?? 0,\n totalNumberOfPages: paginationData?.openEnd ? null : (paginationData?.totalPageCount ?? null),\n openEnd: Boolean(paginationData?.openEnd),\n },\n resourcesSelected: selectedItems?.length > 0,\n };\n };\n\n const { setLastUserAction, tableInteractionAttributes } = useTableInteractionMetrics({\n elementRef: tableRefObject,\n loading,\n items,\n instanceIdentifier: analyticsMetadata?.instanceIdentifier,\n itemCount: items.length,\n getComponentIdentifier: getHeaderText,\n getComponentConfiguration,\n interactionMetadata,\n });\n\n useImperativeHandle(\n ref,\n () => ({\n scrollToTop: stickyHeaderRef.current?.scrollToTop || (() => undefined),\n cancelEdit,\n }),\n [cancelEdit]\n );\n\n const wrapperRefObject = useRef<HTMLDivElement>(null);\n const handleScroll = useScrollSync([wrapperRefObject, scrollbarRef, secondaryWrapperRef]);\n\n const { moveFocusDown, moveFocusUp, moveFocus } = useSelectionFocusMove(selectionType, allItems.length);\n const { onRowClickHandler, onRowContextMenuHandler } = useRowEvents({ onRowClick, onRowContextMenu });\n\n const visibleColumnDefinitions = useMemo(\n () => getVisibleColumnDefinitions({ columnDefinitions, columnDisplay, visibleColumns }),\n [columnDefinitions, columnDisplay, visibleColumns]\n );\n\n const visibleColumnIds = visibleColumnDefinitions.map((col, idx) => getColumnKey(col, idx).toString());\n\n const { groupColumnMap, ...columnGroupsLayout } = useColumnGroups(\n columnDefinitions,\n visibleColumnIds,\n groupDefinitions,\n columnDisplay\n );\n\n const selectionProps = {\n items: allItems,\n rootItems: items,\n trackBy,\n selectedItems,\n totalItemsCount,\n selectionType,\n isItemDisabled,\n onSelectionChange,\n ariaLabels: {\n ...ariaLabels,\n // `selectionGroupLabel` should not be part of the selection control, it is already part of the selection column header.\n selectionGroupLabel: undefined,\n },\n loading,\n expandableRows,\n getLoadingStatus,\n setLastUserAction,\n };\n const normalSelection = useSelection(selectionProps);\n const groupSelection = useGroupSelection(selectionProps);\n const selection = selectionType === 'group' ? groupSelection : normalSelection;\n const isRowSelected = (row: TableRow<T>) => {\n if (row.type === 'data') {\n return selection.isItemSelected(row.item);\n }\n if (selectionType !== 'group') {\n return false;\n }\n // Group loader is selected when its parent is selected.\n return !row.item ? expandableRows.groupSelection.inverted : selection.isItemSelected(row.item);\n };\n\n if (isDevelopment) {\n if (resizableColumns) {\n checkColumnWidths(columnDefinitions);\n }\n if (sortingColumn?.sortingComparator) {\n checkSortingState(columnDefinitions, sortingColumn.sortingComparator);\n }\n if (multiColumnSort && (sortingColumn || sortingDescending !== undefined || onSortingChange)) {\n warnOnce(\n 'Table',\n 'The `multiColumnSort` prop is mutually exclusive with `sortingColumn`, `sortingDescending`, and `onSortingChange`. When both are provided, the single-column sorting props are ignored.'\n );\n }\n }\n\n const isVisualRefresh = useVisualRefresh();\n const computedVariant = isVisualRefresh\n ? variant\n : ['embedded', 'full-page'].indexOf(variant) > -1\n ? 'container'\n : variant;\n const hasActiveMultiSort = !!multiColumnSort && multiColumnSort.sortingColumns.length > 0;\n const hasHeader = !!(header || filter || pagination || preferences || hasActiveMultiSort);\n const hasSelection = !!selectionType;\n const hasFooterPagination = isMobile && variant === 'full-page' && !!pagination;\n const hasFooter = !!footer || hasFooterPagination;\n\n const headerIdRef = useRef<string | undefined>(undefined);\n const isLabelledByHeader = !ariaLabels?.tableLabel && !!header;\n const ariaLabelledby = isLabelledByHeader && headerIdRef.current ? headerIdRef.current : undefined;\n const setHeaderRef = useCallback((id: string) => {\n headerIdRef.current = id;\n }, []);\n\n const { visibleColumnWidthsWithSelection, visibleColumnIdsWithSelection } = useMemo(() => {\n const widths: ColumnWidthDefinition[] = [];\n const ids: PropertyKey[] = [];\n if (hasSelection) {\n widths.push({ id: selectionColumnId, width: SELECTION_COLUMN_WIDTH });\n ids.push(selectionColumnId);\n }\n for (let columnIndex = 0; columnIndex < visibleColumnDefinitions.length; columnIndex++) {\n const columnId = getColumnKey(visibleColumnDefinitions[columnIndex], columnIndex);\n widths.push({ ...visibleColumnDefinitions[columnIndex], id: columnId });\n ids.push(columnId);\n }\n return { visibleColumnWidthsWithSelection: widths, visibleColumnIdsWithSelection: ids };\n }, [hasSelection, visibleColumnDefinitions]);\n\n const stickyState = useStickyColumns({\n visibleColumns: visibleColumnIdsWithSelection,\n stickyColumnsFirst: (stickyColumns?.first ?? 0) + (stickyColumns?.first && hasSelection ? 1 : 0),\n stickyColumnsLast: stickyColumns?.last || 0,\n });\n\n const hasStickyColumns = !!((stickyColumns?.first ?? 0) + (stickyColumns?.last ?? 0) > 0);\n const hasEditableCells = !!columnDefinitions.find(col => col.editConfig);\n\n let tableRole: TableRole = 'table';\n if (isExpandable) {\n tableRole = 'treegrid';\n } else if (enableKeyboardNavigation) {\n tableRole = 'grid';\n } else if (hasEditableCells) {\n tableRole = 'grid-default';\n }\n\n const theadProps: TheadProps = {\n selectionType,\n getSelectAllProps: selection.getSelectAllProps,\n columnDefinitions: visibleColumnDefinitions,\n groupDefinitions,\n columnGroupsLayout,\n variant: computedVariant,\n tableVariant: computedVariant,\n wrapLines,\n resizableColumns,\n sortingColumn,\n sortingDisabled,\n sortingDescending,\n onSortingChange,\n multiColumnSort,\n i18nStrings,\n ariaLabels,\n onFocusMove: moveFocus,\n onResizeFinish(newWidth) {\n const widthsDetail = columnDefinitions.map(\n (column, index) =>\n newWidth.get(getColumnKey(column, index)) || (column.width as number) || DEFAULT_COLUMN_WIDTH\n );\n const widthsChanged = widthsDetail.some((width, index) => columnDefinitions[index].width !== width);\n if (widthsChanged) {\n fireNonCancelableEvent(onColumnWidthsChange, { widths: widthsDetail });\n }\n },\n singleSelectionHeaderAriaLabel: ariaLabels?.selectionGroupLabel,\n resizerRoleDescription: ariaLabels?.resizerRoleDescription,\n resizerTooltipText: ariaLabels?.resizerTooltipText,\n stripedRows,\n stickyState,\n stickyColumnsFirst: stickyColumns?.first ?? 0,\n stickyColumnsLast: stickyColumns?.last ?? 0,\n selectionColumnId,\n tableRole,\n isExpandable,\n setLastUserAction,\n };\n\n usePreventStickyClickScroll(wrapperRefObject);\n\n const wrapperRef = useMergeRefs(wrapperRefObject, stickyState.refs.wrapper);\n const tableRef = useMergeRefs(tableMeasureRef, tableRefObject, stickyState.refs.table);\n\n // When the clear-sort button is activated it unmounts (there is no longer a sort to clear),\n // which would drop keyboard focus to the document body. Move focus to the first sortable\n // column header instead. Focusing synchronously (before the re-render unmounts the button)\n // keeps focus on the persistent header element.\n const focusFirstSortableColumn = () => {\n tableRefObject.current?.querySelector<HTMLElement>('[data-focus-id^=\"sorting-control-\"][role=\"button\"]')?.focus();\n };\n\n const wrapperProps = getTableWrapperRoleProps({\n tableRole,\n isScrollable: !!(tableWidth && containerWidth && tableWidth > containerWidth),\n ariaLabel: ariaLabels?.tableLabel,\n ariaLabelledby,\n });\n\n const getMouseDownTarget = useMouseDownTarget();\n\n useTableFocusNavigation({\n enableKeyboardNavigation,\n selectionType,\n tableRoot: tableRefObject,\n columnDefinitions: visibleColumnDefinitions,\n numRows: allRows?.length,\n });\n const toolsHeaderPerformanceMarkRef = useRef<HTMLDivElement>(null);\n // If is mobile, we take into consideration the AppLayout's mobile bar and we subtract the tools wrapper height so only the table header is sticky\n const [toolsHeaderHeight, toolsHeaderWrapperMeasureRef] = useContainerQuery(rect => rect.borderBoxHeight);\n const toolsHeaderWrapper = useMergeRefs(toolsHeaderPerformanceMarkRef, toolsHeaderWrapperMeasureRef);\n\n const colIndexOffset = selectionType ? 1 : 0;\n const totalColumnsCount = visibleColumnDefinitions.length + colIndexOffset;\n const headerRowCount = columnGroupsLayout?.rows.length || 1;\n\n return (\n <LinkDefaultVariantContext.Provider value={{ defaultVariant: 'primary' }}>\n <TableComponentsContextProvider value={{ paginationRef, filterRef, preferencesRef, headerRef }}>\n <ColumnWidthsProvider\n visibleColumns={visibleColumnWidthsWithSelection}\n resizableColumns={resizableColumns}\n containerRef={wrapperMeasureRefObject}\n groupColumnMap={groupColumnMap}\n >\n <InternalContainer\n {...baseProps}\n {...tableInteractionAttributes}\n __internalRootRef={__internalRootRef}\n className={clsx(baseProps.className, styles.root)}\n __funnelSubStepProps={__funnelSubStepProps}\n __fullPage={variant === 'full-page'}\n header={\n <>\n {hasHeader && (\n <div>\n <div\n ref={toolsHeaderWrapper}\n className={clsx(styles['header-controls'], styles[`variant-${computedVariant}`])}\n >\n <CollectionLabelContext.Provider value={{ assignId: setHeaderRef }}>\n <ToolsHeader\n header={header}\n filter={filter}\n clearSort={\n hasActiveMultiSort && multiColumnSort ? (\n <ClearSortButton\n multiColumnSort={multiColumnSort}\n i18nStrings={i18nStrings}\n onClearSort={focusFirstSortableColumn}\n />\n ) : undefined\n }\n pagination={pagination}\n preferences={preferences}\n setLastUserAction={setLastUserAction}\n />\n </CollectionLabelContext.Provider>\n </div>\n </div>\n )}\n {stickyHeader && (\n <StickyHeader\n ref={stickyHeaderRef}\n variant={computedVariant}\n theadProps={theadProps}\n wrapperRef={wrapperRefObject}\n theadRef={theadRef}\n secondaryWrapperRef={secondaryWrapperRef}\n tableRef={tableRefObject}\n onScroll={handleScroll}\n tableHasHeader={hasHeader}\n contentDensity={contentDensity}\n tableRole={tableRole}\n hasGroupedColumns={!!columnGroupsLayout && columnGroupsLayout.rows.length > 1}\n columnDefinitions={visibleColumnDefinitions}\n hasSelection={hasSelection}\n />\n )}\n </>\n }\n disableHeaderPaddings={true}\n disableContentPaddings={true}\n disableFooterPaddings={true}\n variant={toContainerVariant(computedVariant)}\n __disableFooterDivider={true}\n __disableStickyMobile={false}\n footer={\n hasFooter ? (\n <div className={clsx(styles['footer-wrapper'], styles[`variant-${computedVariant}`])}>\n <div className={clsx(styles.footer, hasFooterPagination && styles['footer-with-pagination'])}>\n {footer && <span>{footer}</span>}\n {hasFooterPagination && <div className={styles['footer-pagination']}>{pagination}</div>}\n </div>\n </div>\n ) : null\n }\n __stickyHeader={stickyHeader}\n __mobileStickyOffset={toolsHeaderHeight ?? 0}\n __stickyOffset={stickyHeaderVerticalOffset}\n {...focusMarkers.root}\n >\n <div\n ref={wrapperRef}\n className={clsx(styles.wrapper, styles[`variant-${computedVariant}`], {\n [styles['has-footer']]: hasFooter,\n [styles['has-header']]: hasHeader,\n })}\n style={stickyState.style.wrapper}\n onScroll={handleScroll}\n {...wrapperProps}\n >\n <div className={styles['wrapper-content-measure']} ref={wrapperMeasureMergedRef}></div>\n {!!renderAriaLive && !!firstIndex && !loading && (\n <InternalLiveRegion hidden={true} tagName=\"span\">\n <span>\n {renderAriaLive({\n firstIndex,\n lastIndex: firstIndex + items.length - 1,\n visibleItemsCount: allItems.length,\n totalItemsCount,\n })}\n </span>\n </InternalLiveRegion>\n )}\n {/* Announce multi-column sort changes politely. The text is built internally from\n per-column i18n fragments and only changes when the sort changes, so it isn't\n announced on initial mount. */}\n {multiColumnSort?.sortingColumns && (\n <SortLiveAnnouncement\n sortingColumns={multiColumnSort.sortingColumns}\n columnDefinitions={columnDefinitions}\n ariaLabels={ariaLabels}\n containerRef={tableRefObject}\n />\n )}\n <GridNavigationProvider\n keyboardNavigation={!!enableKeyboardNavigation}\n pageSize={GRID_NAVIGATION_PAGE_SIZE}\n getTable={() => tableRefObject.current}\n >\n <table\n {...performanceMarkAttributes}\n ref={tableRef}\n className={clsx(\n styles.table,\n resizableColumns && styles['table-layout-fixed'],\n columnGroupsLayout && columnGroupsLayout.rows.length > 1 && styles['has-grouped-header'],\n contentDensity === 'compact' && getVisualContextClassname('compact-table')\n )}\n {...getTableRoleProps({\n tableRole,\n totalItemsCount,\n totalColumnsCount: totalColumnsCount,\n headerRowCount,\n ariaLabel: ariaLabels?.tableLabel,\n ariaLabelledby,\n })}\n >\n {resizableColumns && columnGroupsLayout && columnGroupsLayout.rows.length > 1 && (\n <TableColGroup visibleColumnDefinitions={visibleColumnDefinitions} hasSelection={hasSelection} />\n )}\n <Thead\n ref={theadRef}\n hidden={stickyHeader}\n onFocusedComponentChange={focusId => stickyHeaderRef.current?.setFocus(focusId)}\n {...theadProps}\n />\n <tbody>\n {skeleton && allItems.length === 0 && loading ? (\n <SkeletonRows\n count={skeleton.totalRows}\n hasDataRows={false}\n totalColumnsCount={totalColumnsCount}\n loadingText={loadingText}\n hasSelection={hasSelection}\n hasFooter={hasFooter}\n stickyState={stickyState}\n tableRole={tableRole}\n ariaLabels={ariaLabels}\n cellVerticalAlign={cellVerticalAlign}\n computedVariant={computedVariant}\n visibleColumnDefinitions={visibleColumnDefinitions}\n wrapLines={wrapLines}\n resizableColumns={resizableColumns}\n colIndexOffset={colIndexOffset}\n />\n ) : !skeleton && (loading || allItems.length === 0) ? (\n <tr>\n <NoDataCell\n totalColumnsCount={totalColumnsCount}\n hasFooter={hasFooter}\n loading={loading}\n loadingText={loadingText}\n empty={empty}\n tableRef={tableRefObject}\n containerRef={wrapperMeasureRefObject}\n />\n </tr>\n ) : (\n allRows.map((row, rowIndex) => {\n const isFirstRow = rowIndex === 0;\n const hasSkeletonBelow =\n loading && skeleton && allItems.length > 0 && skeleton.totalRows - allItems.length > 0;\n const isLastDataRow = rowIndex === allRows.length - 1;\n const isLastRow = isLastDataRow && !hasSkeletonBelow;\n const rowExpandableProps =\n row.type === 'data' ? expandableRows.getExpandableItemProps(row.item) : undefined;\n const rowRoleProps = getTableRowRoleProps({\n tableRole,\n firstIndex,\n rowIndex,\n headerRowCount,\n level: row.type === 'loader' ? row.level : undefined,\n ...rowExpandableProps,\n });\n const getTableItemKey = (item: T) => getItemKey(trackBy, item, rowIndex);\n const sharedCellProps = {\n isFirstRow,\n isLastRow,\n isSelected: hasSelection && isRowSelected(row),\n isPrevSelected: hasSelection && !isFirstRow && isRowSelected(allRows[rowIndex - 1]),\n isNextSelected: hasSelection && !isLastDataRow && isRowSelected(allRows[rowIndex + 1]),\n isEvenRow: rowIndex % 2 === 0,\n stripedRows,\n hasSelection,\n hasFooter,\n stickyState,\n tableRole,\n };\n if (row.type === 'data') {\n const rowId = `${getTableItemKey(row.item)}`;\n return (\n <tr\n key={rowId}\n className={clsx(styles.row, sharedCellProps.isSelected && styles['row-selected'])}\n onFocus={({ currentTarget }) => {\n // When an element inside table row receives focus we want to adjust the scroll.\n // However, that behavior is unwanted when the focus is received as result of a click\n // as it causes the click to never reach the target element.\n if (!currentTarget.contains(getMouseDownTarget())) {\n stickyHeaderRef.current?.scrollToRow(currentTarget);\n }\n }}\n {...focusMarkers.item}\n onClick={onRowClickHandler && onRowClickHandler.bind(null, rowIndex, row.item)}\n onContextMenu={\n onRowContextMenuHandler && onRowContextMenuHandler.bind(null, rowIndex, row.item)\n }\n {...rowRoleProps}\n >\n {selection.getItemSelectionProps && (\n <TableBodySelectionCell\n {...sharedCellProps}\n columnId={selectionColumnId}\n selectionControlProps={{\n ...selection.getItemSelectionProps(row.item),\n onFocusDown: moveFocusDown,\n onFocusUp: moveFocusUp,\n rowIndex,\n itemKey: rowId,\n }}\n verticalAlign={cellVerticalAlign}\n tableVariant={computedVariant}\n />\n )}\n\n {visibleColumnDefinitions.map((column, colIndex) => {\n const colId = `${getColumnKey(column, colIndex)}`;\n const cellId = { row: rowId, col: colId };\n const isEditing = cellEditing.checkEditing(cellId);\n const successfulEdit = cellEditing.checkLastSuccessfulEdit(cellId);\n const isEditable = !!column.editConfig && !cellEditing.isLoading;\n const cellExpandableProps =\n isExpandable && colIndex === 0 ? rowExpandableProps : undefined;\n const counter = column.counter?.({\n item: row.item,\n itemsCount: rowExpandableProps?.itemsCount,\n selectedItemsCount: rowExpandableProps?.selectedItemsCount,\n });\n\n const analyticsMetadata: GeneratedAnalyticsMetadataFragment = {\n component: {\n innerContext: {\n position: `${rowIndex + 1},${colIndex + 1}`,\n columnId: column.id ? `${column.id}` : '',\n columnLabel: {\n selector: `table thead tr th:nth-child(${colIndex + (selectionType ? 2 : 1)})`,\n root: 'component',\n },\n item: rowId,\n } as GeneratedAnalyticsMetadataTableComponent['innerContext'],\n },\n };\n\n return (\n <TableBodyCell\n key={colId}\n {...sharedCellProps}\n resizableStyle={{\n width: column.width,\n minWidth: column.minWidth,\n maxWidth: column.maxWidth,\n }}\n ariaLabels={ariaLabels}\n column={column}\n item={row.item}\n wrapLines={wrapLines}\n isEditable={isEditable}\n isEditing={isEditing}\n isRowHeader={column.isRowHeader}\n successfulEdit={successfulEdit}\n resizableColumns={resizableColumns}\n onEditStart={() => cellEditing.startEdit(cellId)}\n onEditEnd={editCancelled => cellEditing.completeEdit(cellId, editCancelled)}\n submitEdit={cellEditing.submitEdit}\n columnId={column.id ?? colIndex}\n colIndex={colIndex + colIndexOffset}\n verticalAlign={column.verticalAlign ?? cellVerticalAlign}\n tableVariant={computedVariant}\n counter={counter}\n {...cellExpandableProps}\n {...getAnalyticsMetadataAttribute(analyticsMetadata)}\n />\n );\n })}\n </tr>\n );\n }\n const loaderSelectionProps =\n selection.getLoaderSelectionProps && selection.getLoaderSelectionProps(row.item);\n const rowSelection = selectionType === 'group' ? loaderSelectionProps : undefined;\n const loaderContent = getLoaderContent({\n item: row.item,\n loadingStatus: row.status,\n renderLoaderPending,\n renderLoaderLoading,\n renderLoaderError,\n renderLoaderEmpty,\n });\n const loaderCounter = renderLoaderCounter?.({\n item: row.item,\n loadingStatus: row.status,\n selected: !!rowSelection?.checked,\n });\n return (\n loaderContent && (\n <tr\n key={(row.item ? getTableItemKey(row.item) : 'root-' + rowIndex) + '-' + row.from}\n className={styles.row}\n {...rowRoleProps}\n >\n {selectionType ? (\n <TableBodySelectionCell\n {...sharedCellProps}\n columnId={selectionColumnId}\n verticalAlign={cellVerticalAlign}\n tableVariant={computedVariant}\n selectionControlProps={selectionType === 'group' ? loaderSelectionProps : undefined}\n isSelected={selectionType === 'group' && !!loaderSelectionProps?.checked}\n />\n ) : null}\n {visibleColumnDefinitions.map((column, colIndex) => (\n <TableLoaderCell\n key={getColumnKey(column, colIndex)}\n {...sharedCellProps}\n wrapLines={false}\n columnId={column.id ?? colIndex}\n colIndex={colIndex + colIndexOffset}\n isSelected={selectionType === 'group' && !!loaderSelectionProps?.checked}\n isRowHeader={colIndex === 0}\n level={row.level}\n item={row.item}\n trackBy={trackBy}\n counter={loaderCounter}\n >\n {loaderContent}\n </TableLoaderCell>\n ))}\n </tr>\n )\n );\n })\n )}\n {loading && skeleton && allItems.length > 0 && skeleton.totalRows - allItems.length > 0 && (\n <SkeletonRows\n count={skeleton.totalRows - allItems.length}\n hasDataRows={true}\n totalColumnsCount={totalColumnsCount}\n loadingText={loadingText}\n hasSelection={hasSelection}\n hasFooter={hasFooter}\n stickyState={stickyState}\n tableRole={tableRole}\n ariaLabels={ariaLabels}\n cellVerticalAlign={cellVerticalAlign}\n computedVariant={computedVariant}\n visibleColumnDefinitions={visibleColumnDefinitions}\n wrapLines={wrapLines}\n resizableColumns={resizableColumns}\n colIndexOffset={colIndexOffset}\n />\n )}\n </tbody>\n </table>\n </GridNavigationProvider>\n\n {resizableColumns && <ResizeTracker />}\n </div>\n\n <StickyScrollbar\n ref={scrollbarRef}\n wrapperRef={wrapperRefObject}\n tableRef={tableRefObject}\n onScroll={handleScroll}\n hasStickyColumns={hasStickyColumns}\n />\n </InternalContainer>\n </ColumnWidthsProvider>\n </TableComponentsContextProvider>\n </LinkDefaultVariantContext.Provider>\n );\n }\n) as TableForwardRefType;\n\nexport default InternalTable;\n"]}
1
+ {"version":3,"file":"internal.js","sourceRoot":"","sources":["../../../src/table/internal.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useCallback, useImperativeHandle, useMemo, useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { useContainerQuery } from '@cloudscape-design/component-toolkit';\nimport { useMergeRefs, warnOnce } from '@cloudscape-design/component-toolkit/internal';\nimport {\n GeneratedAnalyticsMetadataFragment,\n getAnalyticsMetadataAttribute,\n} from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport InternalContainer, { InternalContainerProps } from '../container/internal';\nimport { useFunnelSubStep } from '../internal/analytics/hooks/use-funnel';\nimport { getAnalyticsMetadataProps, getBaseProps } from '../internal/base-component';\nimport { getVisualContextClassname } from '../internal/components/visual-context';\nimport { CollectionLabelContext } from '../internal/context/collection-label-context';\nimport { LinkDefaultVariantContext } from '../internal/context/link-default-variant-context';\nimport {\n FilterRef,\n HeaderRef,\n PaginationRef,\n PreferencesRef,\n TableComponentsContextProvider,\n} from '../internal/context/table-component-context';\nimport { fireNonCancelableEvent } from '../internal/events';\nimport { InternalBaseComponentProps } from '../internal/hooks/use-base-component';\nimport { useMobile } from '../internal/hooks/use-mobile';\nimport useMouseDownTarget from '../internal/hooks/use-mouse-down-target';\nimport { usePerformanceMarks } from '../internal/hooks/use-performance-marks';\nimport { usePrevious } from '../internal/hooks/use-previous';\nimport { useScrollSync } from '../internal/hooks/use-scroll-sync';\nimport { useTableInteractionMetrics } from '../internal/hooks/use-table-interaction-metrics';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport { isDevelopment } from '../internal/is-development';\nimport { SomeRequired } from '../internal/types';\nimport InternalLiveRegion from '../live-region/internal';\nimport { GeneratedAnalyticsMetadataTableComponent } from './analytics-metadata/interfaces';\nimport { TableBodyCell } from './body-cell';\nimport { ClearSortButton } from './clear-sort';\nimport { TableColGroup } from './column-groups/col-group';\nimport { useColumnGroups } from './column-groups/use-column-groups';\nimport { checkColumnWidths } from './column-widths-utils';\nimport { useExpandableTableProps } from './expandable-rows/expandable-rows-utils';\nimport { TableForwardRefType, TableProps, TableRow } from './interfaces';\nimport { SortLiveAnnouncement } from './multi-column-sort/live-announcement';\nimport { NoDataCell } from './no-data-cell';\nimport { getLoaderContent } from './progressive-loading/items-loader';\nimport { TableLoaderCell } from './progressive-loading/loader-cell';\nimport { useProgressiveLoadingProps } from './progressive-loading/progressive-loading-utils';\nimport { ResizeTracker } from './resizer';\nimport { focusMarkers, useSelection, useSelectionFocusMove } from './selection';\nimport { TableBodySelectionCell } from './selection/selection-cell';\nimport { useGroupSelection } from './selection/use-group-selection';\nimport { SkeletonRows } from './skeleton-rows';\nimport { useStickyColumns } from './sticky-columns';\nimport StickyHeader, { StickyHeaderRef } from './sticky-header';\nimport { StickyScrollbar } from './sticky-scrollbar';\nimport {\n getTableRoleProps,\n getTableRowRoleProps,\n getTableWrapperRoleProps,\n GridNavigationProvider,\n TableRole,\n} from './table-role';\nimport Thead, { TheadProps } from './thead';\nimport ToolsHeader from './tools-header';\nimport { useAutoSkeletonRows } from './use-auto-skeleton-rows';\nimport { useCellEditing } from './use-cell-editing';\nimport { ColumnWidthDefinition, ColumnWidthsProvider, DEFAULT_COLUMN_WIDTH } from './use-column-widths';\nimport { usePreventStickyClickScroll } from './use-prevent-sticky-click-scroll';\nimport { useRowEvents } from './use-row-events';\nimport useTableFocusNavigation from './use-table-focus-navigation';\nimport { checkSortingState, getColumnKey, getItemKey, getVisibleColumnDefinitions, toContainerVariant } from './utils';\n\nimport buttonStyles from '../button/styles.css.js';\nimport headerStyles from '../header/styles.css.js';\nimport styles from './styles.css.js';\n\nconst GRID_NAVIGATION_PAGE_SIZE = 10;\nconst SELECTION_COLUMN_WIDTH = 54;\nconst selectionColumnId = Symbol('selection-column-id');\n\ntype InternalTableProps<T> = SomeRequired<\n TableProps<T>,\n 'items' | 'selectedItems' | 'variant' | 'firstIndex' | 'cellVerticalAlign'\n> &\n InternalBaseComponentProps & {\n __funnelSubStepProps?: InternalContainerProps['__funnelSubStepProps'];\n };\n\nexport const InternalTableAsSubstep = React.forwardRef(\n <T,>(props: InternalTableProps<T>, ref: React.Ref<TableProps.Ref>) => {\n const { funnelSubStepProps } = useFunnelSubStep();\n\n const tableProps: InternalTableProps<T> = {\n ...props,\n __funnelSubStepProps: funnelSubStepProps,\n };\n\n return <InternalTable {...tableProps} ref={ref} />;\n }\n) as TableForwardRefType;\n\nconst InternalTable = React.forwardRef(\n <T,>(\n {\n header,\n footer,\n empty,\n filter,\n pagination,\n preferences,\n items,\n columnDefinitions,\n groupDefinitions,\n trackBy,\n loading,\n loadingText,\n skeleton,\n selectionType: externalSelectionType,\n selectedItems,\n isItemDisabled,\n ariaLabels,\n onSelectionChange,\n onSortingChange,\n sortingColumn,\n sortingDescending,\n sortingDisabled,\n multiColumnSort,\n i18nStrings,\n visibleColumns,\n stickyHeader,\n stickyHeaderVerticalOffset,\n onRowClick,\n onRowContextMenu,\n wrapLines,\n stripedRows,\n contentDensity,\n submitEdit,\n onEditCancel,\n resizableColumns,\n onColumnWidthsChange,\n variant,\n __internalRootRef,\n totalItemsCount,\n firstIndex,\n renderAriaLive,\n stickyColumns,\n columnDisplay,\n enableKeyboardNavigation,\n expandableRows: externalExpandableRows,\n getLoadingStatus,\n renderLoaderPending,\n renderLoaderLoading,\n renderLoaderError,\n renderLoaderEmpty,\n renderLoaderCounter,\n cellVerticalAlign,\n __funnelSubStepProps,\n ...rest\n }: InternalTableProps<T>,\n ref: React.Ref<TableProps.Ref>\n ) => {\n // Keyboard navigation defaults to `true` for tables with expandable rows.\n if (externalExpandableRows && enableKeyboardNavigation === undefined) {\n enableKeyboardNavigation = true;\n }\n\n const baseProps = getBaseProps(rest);\n\n const prevStickyHeader = usePrevious(stickyHeader);\n if (prevStickyHeader !== undefined && !!stickyHeader !== !!prevStickyHeader) {\n warnOnce(\n 'Table',\n `\\`stickyHeader\\` has changed from \"${prevStickyHeader}\" to \"${stickyHeader}\". It is not recommended to change the value of this property during the component lifecycle. Please set it to either \"true\" or \"false\" unconditionally.`\n );\n }\n\n const isMobile = useMobile();\n\n const expandableRows = useExpandableTableProps({\n items,\n expandableRows: externalExpandableRows,\n trackBy,\n ariaLabels,\n });\n const { allItems, isExpandable } = expandableRows;\n const { allRows } = useProgressiveLoadingProps({ getLoadingStatus, expandableRows });\n const selectionType = expandableRows.hasGroupSelection ? ('group' as const) : externalSelectionType;\n\n const [containerWidth, wrapperMeasureRef] = useContainerQuery<number>(rect => rect.borderBoxWidth);\n const wrapperMeasureRefObject = useRef(null);\n const wrapperMeasureMergedRef = useMergeRefs(wrapperMeasureRef, wrapperMeasureRefObject);\n\n const [tableWidth, tableMeasureRef] = useContainerQuery<number>(rect => rect.borderBoxWidth);\n const tableRefObject = useRef<HTMLTableElement>(null);\n\n const secondaryWrapperRef = React.useRef<HTMLDivElement>(null);\n const theadRef = useRef<HTMLTableRowElement>(null);\n const stickyHeaderRef = React.useRef<StickyHeaderRef>(null);\n const scrollbarRef = React.useRef<HTMLDivElement>(null);\n const { cancelEdit, ...cellEditing } = useCellEditing({ onCancel: onEditCancel, onSubmit: submitEdit });\n const paginationRef = useRef<PaginationRef>({});\n const filterRef = useRef<FilterRef>({});\n const preferencesRef = useRef<PreferencesRef>({});\n const headerRef = useRef<HeaderRef>({});\n /* istanbul ignore next: performance marks do not work in JSDOM */\n const getHeaderText = () =>\n toolsHeaderPerformanceMarkRef.current?.querySelector<HTMLElement>(`.${headerStyles['heading-text']}`)\n ?.innerText ?? toolsHeaderPerformanceMarkRef.current?.innerText;\n const getPatternIdentifier = () => {\n const hasActions = !!toolsHeaderPerformanceMarkRef.current?.querySelector<HTMLElement>(\n `.${headerStyles.actions} .${buttonStyles.button}`\n );\n\n if (hasActions) {\n return 'table-with-actions';\n }\n\n return '';\n };\n\n const performanceMarkAttributes = usePerformanceMarks(\n 'table',\n () => !loading,\n tableRefObject,\n () => ({\n loading: loading ?? false,\n header: getHeaderText(),\n }),\n [loading]\n );\n\n const analyticsMetadata = getAnalyticsMetadataProps(rest);\n const interactionMetadata = () => {\n const filterData = filterRef.current;\n const paginationData = paginationRef.current;\n return JSON.stringify({\n filterData,\n paginationData,\n sortingColumn: sortingColumn?.sortingField,\n sortingOrder: sortingColumn ? (sortingDescending ? 'Descending' : 'Ascending') : undefined,\n });\n };\n const getComponentConfiguration = () => {\n const headerData = headerRef.current;\n const filterData = filterRef.current;\n const paginationData = paginationRef.current;\n const preferencesData = preferencesRef.current;\n\n return {\n variant,\n flowType: rest.analyticsMetadata?.flowType,\n resourceType: rest.analyticsMetadata?.resourceType,\n instanceIdentifier: analyticsMetadata?.instanceIdentifier,\n taskName: analyticsMetadata?.instanceIdentifier ?? getHeaderText(),\n uxTaskName: getHeaderText(),\n patternIdentifier: getPatternIdentifier(),\n sortedBy: {\n columnId: sortingColumn?.sortingField,\n sortingOrder: sortingColumn ? (sortingDescending ? 'desc' : 'asc') : undefined,\n },\n filtered: filterData?.filtered ?? null,\n filteredBy: filterData?.filteredBy ?? [],\n filteredCount: filterData?.filterCount ?? null,\n totalNumberOfResources: headerData?.totalCount ?? null,\n tablePreferences: {\n visibleColumns: preferencesData?.visibleColumns ?? [],\n resourcesPerPage: preferencesData?.pageSize ?? null,\n },\n pagination: {\n currentPageIndex: paginationData?.currentPageIndex ?? 0,\n totalNumberOfPages: paginationData?.openEnd ? null : (paginationData?.totalPageCount ?? null),\n openEnd: Boolean(paginationData?.openEnd),\n },\n resourcesSelected: selectedItems?.length > 0,\n };\n };\n\n const { setLastUserAction, tableInteractionAttributes } = useTableInteractionMetrics({\n elementRef: tableRefObject,\n loading,\n items,\n instanceIdentifier: analyticsMetadata?.instanceIdentifier,\n itemCount: items.length,\n getComponentIdentifier: getHeaderText,\n getComponentConfiguration,\n interactionMetadata,\n });\n\n useImperativeHandle(\n ref,\n () => ({\n scrollToTop: stickyHeaderRef.current?.scrollToTop || (() => undefined),\n cancelEdit,\n }),\n [cancelEdit]\n );\n\n const tableRootRefObject = useRef<HTMLDivElement>(null);\n const tableBodyRef = useRef<HTMLTableSectionElement>(null);\n const wrapperRefObject = useRef<HTMLDivElement>(null);\n const handleScroll = useScrollSync([wrapperRefObject, scrollbarRef, secondaryWrapperRef]);\n\n const { moveFocusDown, moveFocusUp, moveFocus } = useSelectionFocusMove(selectionType, allItems.length);\n const { onRowClickHandler, onRowContextMenuHandler } = useRowEvents({ onRowClick, onRowContextMenu });\n\n const visibleColumnDefinitions = useMemo(\n () => getVisibleColumnDefinitions({ columnDefinitions, columnDisplay, visibleColumns }),\n [columnDefinitions, columnDisplay, visibleColumns]\n );\n\n const visibleColumnIds = visibleColumnDefinitions.map((col, idx) => getColumnKey(col, idx).toString());\n\n const { groupColumnMap, ...columnGroupsLayout } = useColumnGroups(\n columnDefinitions,\n visibleColumnIds,\n groupDefinitions,\n columnDisplay\n );\n\n const selectionProps = {\n items: allItems,\n rootItems: items,\n trackBy,\n selectedItems,\n totalItemsCount,\n selectionType,\n isItemDisabled,\n onSelectionChange,\n ariaLabels: {\n ...ariaLabels,\n // `selectionGroupLabel` should not be part of the selection control, it is already part of the selection column header.\n selectionGroupLabel: undefined,\n },\n loading,\n expandableRows,\n getLoadingStatus,\n setLastUserAction,\n };\n const normalSelection = useSelection(selectionProps);\n const groupSelection = useGroupSelection(selectionProps);\n const selection = selectionType === 'group' ? groupSelection : normalSelection;\n const isRowSelected = (row: TableRow<T>) => {\n if (row.type === 'data') {\n return selection.isItemSelected(row.item);\n }\n if (selectionType !== 'group') {\n return false;\n }\n // Group loader is selected when its parent is selected.\n return !row.item ? expandableRows.groupSelection.inverted : selection.isItemSelected(row.item);\n };\n\n if (isDevelopment) {\n if (resizableColumns) {\n checkColumnWidths(columnDefinitions);\n }\n if (sortingColumn?.sortingComparator) {\n checkSortingState(columnDefinitions, sortingColumn.sortingComparator);\n }\n if (multiColumnSort && (sortingColumn || sortingDescending !== undefined || onSortingChange)) {\n warnOnce(\n 'Table',\n 'The `multiColumnSort` prop is mutually exclusive with `sortingColumn`, `sortingDescending`, and `onSortingChange`. When both are provided, the single-column sorting props are ignored.'\n );\n }\n }\n\n const isVisualRefresh = useVisualRefresh();\n const computedVariant = isVisualRefresh\n ? variant\n : ['embedded', 'full-page'].indexOf(variant) > -1\n ? 'container'\n : variant;\n const hasActiveMultiSort = !!multiColumnSort && multiColumnSort.sortingColumns.length > 0;\n const hasHeader = !!(header || filter || pagination || preferences || hasActiveMultiSort);\n const hasSelection = !!selectionType;\n const hasFooterPagination = isMobile && variant === 'full-page' && !!pagination;\n const hasFooter = !!footer || hasFooterPagination;\n\n const headerIdRef = useRef<string | undefined>(undefined);\n const isLabelledByHeader = !ariaLabels?.tableLabel && !!header;\n const ariaLabelledby = isLabelledByHeader && headerIdRef.current ? headerIdRef.current : undefined;\n const setHeaderRef = useCallback((id: string) => {\n headerIdRef.current = id;\n }, []);\n\n const { visibleColumnWidthsWithSelection, visibleColumnIdsWithSelection } = useMemo(() => {\n const widths: ColumnWidthDefinition[] = [];\n const ids: PropertyKey[] = [];\n if (hasSelection) {\n widths.push({ id: selectionColumnId, width: SELECTION_COLUMN_WIDTH });\n ids.push(selectionColumnId);\n }\n for (let columnIndex = 0; columnIndex < visibleColumnDefinitions.length; columnIndex++) {\n const columnId = getColumnKey(visibleColumnDefinitions[columnIndex], columnIndex);\n widths.push({ ...visibleColumnDefinitions[columnIndex], id: columnId });\n ids.push(columnId);\n }\n return { visibleColumnWidthsWithSelection: widths, visibleColumnIdsWithSelection: ids };\n }, [hasSelection, visibleColumnDefinitions]);\n\n const stickyState = useStickyColumns({\n visibleColumns: visibleColumnIdsWithSelection,\n stickyColumnsFirst: (stickyColumns?.first ?? 0) + (stickyColumns?.first && hasSelection ? 1 : 0),\n stickyColumnsLast: stickyColumns?.last || 0,\n });\n\n const hasStickyColumns = !!((stickyColumns?.first ?? 0) + (stickyColumns?.last ?? 0) > 0);\n const hasEditableCells = !!columnDefinitions.find(col => col.editConfig);\n\n let tableRole: TableRole = 'table';\n if (isExpandable) {\n tableRole = 'treegrid';\n } else if (enableKeyboardNavigation) {\n tableRole = 'grid';\n } else if (hasEditableCells) {\n tableRole = 'grid-default';\n }\n\n const theadProps: TheadProps = {\n selectionType,\n getSelectAllProps: selection.getSelectAllProps,\n columnDefinitions: visibleColumnDefinitions,\n groupDefinitions,\n columnGroupsLayout,\n variant: computedVariant,\n tableVariant: computedVariant,\n wrapLines,\n resizableColumns,\n sortingColumn,\n sortingDisabled,\n sortingDescending,\n onSortingChange,\n multiColumnSort,\n i18nStrings,\n ariaLabels,\n onFocusMove: moveFocus,\n onResizeFinish(newWidth) {\n const widthsDetail = columnDefinitions.map(\n (column, index) =>\n newWidth.get(getColumnKey(column, index)) || (column.width as number) || DEFAULT_COLUMN_WIDTH\n );\n const widthsChanged = widthsDetail.some((width, index) => columnDefinitions[index].width !== width);\n if (widthsChanged) {\n fireNonCancelableEvent(onColumnWidthsChange, { widths: widthsDetail });\n }\n },\n singleSelectionHeaderAriaLabel: ariaLabels?.selectionGroupLabel,\n resizerRoleDescription: ariaLabels?.resizerRoleDescription,\n resizerTooltipText: ariaLabels?.resizerTooltipText,\n stripedRows,\n stickyState,\n stickyColumnsFirst: stickyColumns?.first ?? 0,\n stickyColumnsLast: stickyColumns?.last ?? 0,\n selectionColumnId,\n tableRole,\n isExpandable,\n setLastUserAction,\n };\n\n usePreventStickyClickScroll(wrapperRefObject);\n\n const tableRootRef = useMergeRefs(__internalRootRef, tableRootRefObject);\n const wrapperRef = useMergeRefs(wrapperRefObject, stickyState.refs.wrapper);\n const tableRef = useMergeRefs(tableMeasureRef, tableRefObject, stickyState.refs.table);\n const autoSkeletonRows = useAutoSkeletonRows({\n enabled: !!loading && skeleton?.totalRows === 'auto',\n maxRows: skeleton?.maxAutoRows,\n minRows: skeleton?.minAutoRows,\n tableBodyRef,\n tableRootRef: tableRootRefObject,\n tableWrapperRef: wrapperRefObject,\n });\n const skeletonRowsCount =\n skeleton?.totalRows === 'auto' ? allItems.length + autoSkeletonRows : (skeleton?.totalRows ?? 0);\n\n // When the clear-sort button is activated it unmounts (there is no longer a sort to clear),\n // which would drop keyboard focus to the document body. Move focus to the first sortable\n // column header instead. Focusing synchronously (before the re-render unmounts the button)\n // keeps focus on the persistent header element.\n const focusFirstSortableColumn = () => {\n tableRefObject.current?.querySelector<HTMLElement>('[data-focus-id^=\"sorting-control-\"][role=\"button\"]')?.focus();\n };\n\n const wrapperProps = getTableWrapperRoleProps({\n tableRole,\n isScrollable: !!(tableWidth && containerWidth && tableWidth > containerWidth),\n ariaLabel: ariaLabels?.tableLabel,\n ariaLabelledby,\n });\n\n const getMouseDownTarget = useMouseDownTarget();\n\n useTableFocusNavigation({\n enableKeyboardNavigation,\n selectionType,\n tableRoot: tableRefObject,\n columnDefinitions: visibleColumnDefinitions,\n numRows: allRows?.length,\n });\n const toolsHeaderPerformanceMarkRef = useRef<HTMLDivElement>(null);\n // If is mobile, we take into consideration the AppLayout's mobile bar and we subtract the tools wrapper height so only the table header is sticky\n const [toolsHeaderHeight, toolsHeaderWrapperMeasureRef] = useContainerQuery(rect => rect.borderBoxHeight);\n const toolsHeaderWrapper = useMergeRefs(toolsHeaderPerformanceMarkRef, toolsHeaderWrapperMeasureRef);\n\n const colIndexOffset = selectionType ? 1 : 0;\n const totalColumnsCount = visibleColumnDefinitions.length + colIndexOffset;\n const headerRowCount = columnGroupsLayout?.rows.length || 1;\n\n return (\n <LinkDefaultVariantContext.Provider value={{ defaultVariant: 'primary' }}>\n <TableComponentsContextProvider value={{ paginationRef, filterRef, preferencesRef, headerRef }}>\n <ColumnWidthsProvider\n visibleColumns={visibleColumnWidthsWithSelection}\n resizableColumns={resizableColumns}\n containerRef={wrapperMeasureRefObject}\n groupColumnMap={groupColumnMap}\n >\n <InternalContainer\n {...baseProps}\n {...tableInteractionAttributes}\n __internalRootRef={tableRootRef}\n className={clsx(baseProps.className, styles.root)}\n __funnelSubStepProps={__funnelSubStepProps}\n __fullPage={variant === 'full-page'}\n header={\n <>\n {hasHeader && (\n <div>\n <div\n ref={toolsHeaderWrapper}\n className={clsx(styles['header-controls'], styles[`variant-${computedVariant}`])}\n >\n <CollectionLabelContext.Provider value={{ assignId: setHeaderRef }}>\n <ToolsHeader\n header={header}\n filter={filter}\n clearSort={\n hasActiveMultiSort && multiColumnSort ? (\n <ClearSortButton\n multiColumnSort={multiColumnSort}\n i18nStrings={i18nStrings}\n onClearSort={focusFirstSortableColumn}\n />\n ) : undefined\n }\n pagination={pagination}\n preferences={preferences}\n setLastUserAction={setLastUserAction}\n />\n </CollectionLabelContext.Provider>\n </div>\n </div>\n )}\n {stickyHeader && (\n <StickyHeader\n ref={stickyHeaderRef}\n variant={computedVariant}\n theadProps={theadProps}\n wrapperRef={wrapperRefObject}\n theadRef={theadRef}\n secondaryWrapperRef={secondaryWrapperRef}\n tableRef={tableRefObject}\n onScroll={handleScroll}\n tableHasHeader={hasHeader}\n contentDensity={contentDensity}\n tableRole={tableRole}\n hasGroupedColumns={!!columnGroupsLayout && columnGroupsLayout.rows.length > 1}\n columnDefinitions={visibleColumnDefinitions}\n hasSelection={hasSelection}\n />\n )}\n </>\n }\n disableHeaderPaddings={true}\n disableContentPaddings={true}\n disableFooterPaddings={true}\n variant={toContainerVariant(computedVariant)}\n __disableFooterDivider={true}\n __disableStickyMobile={false}\n footer={\n hasFooter ? (\n <div className={clsx(styles['footer-wrapper'], styles[`variant-${computedVariant}`])}>\n <div className={clsx(styles.footer, hasFooterPagination && styles['footer-with-pagination'])}>\n {footer && <span>{footer}</span>}\n {hasFooterPagination && <div className={styles['footer-pagination']}>{pagination}</div>}\n </div>\n </div>\n ) : null\n }\n __stickyHeader={stickyHeader}\n __mobileStickyOffset={toolsHeaderHeight ?? 0}\n __stickyOffset={stickyHeaderVerticalOffset}\n {...focusMarkers.root}\n >\n <div\n ref={wrapperRef}\n className={clsx(styles.wrapper, styles[`variant-${computedVariant}`], {\n [styles['has-footer']]: hasFooter,\n [styles['has-header']]: hasHeader,\n })}\n style={stickyState.style.wrapper}\n onScroll={handleScroll}\n {...wrapperProps}\n >\n <div className={styles['wrapper-content-measure']} ref={wrapperMeasureMergedRef}></div>\n {!!renderAriaLive && !!firstIndex && !loading && (\n <InternalLiveRegion hidden={true} tagName=\"span\">\n <span>\n {renderAriaLive({\n firstIndex,\n lastIndex: firstIndex + items.length - 1,\n visibleItemsCount: allItems.length,\n totalItemsCount,\n })}\n </span>\n </InternalLiveRegion>\n )}\n {/* Announce multi-column sort changes politely. The text is built internally from\n per-column i18n fragments and only changes when the sort changes, so it isn't\n announced on initial mount. */}\n {multiColumnSort?.sortingColumns && (\n <SortLiveAnnouncement\n sortingColumns={multiColumnSort.sortingColumns}\n columnDefinitions={columnDefinitions}\n ariaLabels={ariaLabels}\n containerRef={tableRefObject}\n />\n )}\n <GridNavigationProvider\n keyboardNavigation={!!enableKeyboardNavigation}\n pageSize={GRID_NAVIGATION_PAGE_SIZE}\n getTable={() => tableRefObject.current}\n >\n <table\n {...performanceMarkAttributes}\n ref={tableRef}\n className={clsx(\n styles.table,\n resizableColumns && styles['table-layout-fixed'],\n columnGroupsLayout && columnGroupsLayout.rows.length > 1 && styles['has-grouped-header'],\n contentDensity === 'compact' && getVisualContextClassname('compact-table')\n )}\n {...getTableRoleProps({\n tableRole,\n totalItemsCount,\n totalColumnsCount: totalColumnsCount,\n headerRowCount,\n ariaLabel: ariaLabels?.tableLabel,\n ariaLabelledby,\n })}\n >\n {resizableColumns && columnGroupsLayout && columnGroupsLayout.rows.length > 1 && (\n <TableColGroup visibleColumnDefinitions={visibleColumnDefinitions} hasSelection={hasSelection} />\n )}\n <Thead\n ref={theadRef}\n hidden={stickyHeader}\n onFocusedComponentChange={focusId => stickyHeaderRef.current?.setFocus(focusId)}\n {...theadProps}\n />\n <tbody ref={tableBodyRef}>\n {skeleton && allItems.length === 0 && loading ? (\n <SkeletonRows\n count={skeletonRowsCount}\n hasDataRows={false}\n totalColumnsCount={totalColumnsCount}\n loadingText={loadingText}\n hasSelection={hasSelection}\n hasFooter={hasFooter}\n stickyState={stickyState}\n tableRole={tableRole}\n ariaLabels={ariaLabels}\n cellVerticalAlign={cellVerticalAlign}\n computedVariant={computedVariant}\n visibleColumnDefinitions={visibleColumnDefinitions}\n wrapLines={wrapLines}\n resizableColumns={resizableColumns}\n colIndexOffset={colIndexOffset}\n />\n ) : !skeleton && (loading || allItems.length === 0) ? (\n <tr>\n <NoDataCell\n totalColumnsCount={totalColumnsCount}\n hasFooter={hasFooter}\n loading={loading}\n loadingText={loadingText}\n empty={empty}\n tableRef={tableRefObject}\n containerRef={wrapperMeasureRefObject}\n />\n </tr>\n ) : (\n allRows.map((row, rowIndex) => {\n const isFirstRow = rowIndex === 0;\n const hasSkeletonBelow =\n loading && skeleton && allItems.length > 0 && skeletonRowsCount - allItems.length > 0;\n const isLastDataRow = rowIndex === allRows.length - 1;\n const isLastRow = isLastDataRow && !hasSkeletonBelow;\n const rowExpandableProps =\n row.type === 'data' ? expandableRows.getExpandableItemProps(row.item) : undefined;\n const rowRoleProps = getTableRowRoleProps({\n tableRole,\n firstIndex,\n rowIndex,\n headerRowCount,\n level: row.type === 'loader' ? row.level : undefined,\n ...rowExpandableProps,\n });\n const getTableItemKey = (item: T) => getItemKey(trackBy, item, rowIndex);\n const sharedCellProps = {\n isFirstRow,\n isLastRow,\n isSelected: hasSelection && isRowSelected(row),\n isPrevSelected: hasSelection && !isFirstRow && isRowSelected(allRows[rowIndex - 1]),\n isNextSelected: hasSelection && !isLastDataRow && isRowSelected(allRows[rowIndex + 1]),\n isEvenRow: rowIndex % 2 === 0,\n stripedRows,\n hasSelection,\n hasFooter,\n stickyState,\n tableRole,\n };\n if (row.type === 'data') {\n const rowId = `${getTableItemKey(row.item)}`;\n return (\n <tr\n key={rowId}\n className={clsx(styles.row, sharedCellProps.isSelected && styles['row-selected'])}\n onFocus={({ currentTarget }) => {\n // When an element inside table row receives focus we want to adjust the scroll.\n // However, that behavior is unwanted when the focus is received as result of a click\n // as it causes the click to never reach the target element.\n if (!currentTarget.contains(getMouseDownTarget())) {\n stickyHeaderRef.current?.scrollToRow(currentTarget);\n }\n }}\n {...focusMarkers.item}\n onClick={onRowClickHandler && onRowClickHandler.bind(null, rowIndex, row.item)}\n onContextMenu={\n onRowContextMenuHandler && onRowContextMenuHandler.bind(null, rowIndex, row.item)\n }\n {...rowRoleProps}\n >\n {selection.getItemSelectionProps && (\n <TableBodySelectionCell\n {...sharedCellProps}\n columnId={selectionColumnId}\n selectionControlProps={{\n ...selection.getItemSelectionProps(row.item),\n onFocusDown: moveFocusDown,\n onFocusUp: moveFocusUp,\n rowIndex,\n itemKey: rowId,\n }}\n verticalAlign={cellVerticalAlign}\n tableVariant={computedVariant}\n />\n )}\n\n {visibleColumnDefinitions.map((column, colIndex) => {\n const colId = `${getColumnKey(column, colIndex)}`;\n const cellId = { row: rowId, col: colId };\n const isEditing = cellEditing.checkEditing(cellId);\n const successfulEdit = cellEditing.checkLastSuccessfulEdit(cellId);\n const isEditable = !!column.editConfig && !cellEditing.isLoading;\n const cellExpandableProps =\n isExpandable && colIndex === 0 ? rowExpandableProps : undefined;\n const counter = column.counter?.({\n item: row.item,\n itemsCount: rowExpandableProps?.itemsCount,\n selectedItemsCount: rowExpandableProps?.selectedItemsCount,\n });\n\n const analyticsMetadata: GeneratedAnalyticsMetadataFragment = {\n component: {\n innerContext: {\n position: `${rowIndex + 1},${colIndex + 1}`,\n columnId: column.id ? `${column.id}` : '',\n columnLabel: {\n selector: `table thead tr th:nth-child(${colIndex + (selectionType ? 2 : 1)})`,\n root: 'component',\n },\n item: rowId,\n } as GeneratedAnalyticsMetadataTableComponent['innerContext'],\n },\n };\n\n return (\n <TableBodyCell\n key={colId}\n {...sharedCellProps}\n resizableStyle={{\n width: column.width,\n minWidth: column.minWidth,\n maxWidth: column.maxWidth,\n }}\n ariaLabels={ariaLabels}\n column={column}\n item={row.item}\n wrapLines={wrapLines}\n isEditable={isEditable}\n isEditing={isEditing}\n isRowHeader={column.isRowHeader}\n successfulEdit={successfulEdit}\n resizableColumns={resizableColumns}\n onEditStart={() => cellEditing.startEdit(cellId)}\n onEditEnd={editCancelled => cellEditing.completeEdit(cellId, editCancelled)}\n submitEdit={cellEditing.submitEdit}\n columnId={column.id ?? colIndex}\n colIndex={colIndex + colIndexOffset}\n verticalAlign={column.verticalAlign ?? cellVerticalAlign}\n tableVariant={computedVariant}\n counter={counter}\n {...cellExpandableProps}\n {...getAnalyticsMetadataAttribute(analyticsMetadata)}\n />\n );\n })}\n </tr>\n );\n }\n const loaderSelectionProps =\n selection.getLoaderSelectionProps && selection.getLoaderSelectionProps(row.item);\n const rowSelection = selectionType === 'group' ? loaderSelectionProps : undefined;\n const loaderContent = getLoaderContent({\n item: row.item,\n loadingStatus: row.status,\n renderLoaderPending,\n renderLoaderLoading,\n renderLoaderError,\n renderLoaderEmpty,\n });\n const loaderCounter = renderLoaderCounter?.({\n item: row.item,\n loadingStatus: row.status,\n selected: !!rowSelection?.checked,\n });\n return (\n loaderContent && (\n <tr\n key={(row.item ? getTableItemKey(row.item) : 'root-' + rowIndex) + '-' + row.from}\n className={styles.row}\n {...rowRoleProps}\n >\n {selectionType ? (\n <TableBodySelectionCell\n {...sharedCellProps}\n columnId={selectionColumnId}\n verticalAlign={cellVerticalAlign}\n tableVariant={computedVariant}\n selectionControlProps={selectionType === 'group' ? loaderSelectionProps : undefined}\n isSelected={selectionType === 'group' && !!loaderSelectionProps?.checked}\n />\n ) : null}\n {visibleColumnDefinitions.map((column, colIndex) => (\n <TableLoaderCell\n key={getColumnKey(column, colIndex)}\n {...sharedCellProps}\n wrapLines={false}\n columnId={column.id ?? colIndex}\n colIndex={colIndex + colIndexOffset}\n isSelected={selectionType === 'group' && !!loaderSelectionProps?.checked}\n isRowHeader={colIndex === 0}\n level={row.level}\n item={row.item}\n trackBy={trackBy}\n counter={loaderCounter}\n >\n {loaderContent}\n </TableLoaderCell>\n ))}\n </tr>\n )\n );\n })\n )}\n {loading && skeleton && allItems.length > 0 && skeletonRowsCount - allItems.length > 0 && (\n <SkeletonRows\n count={skeletonRowsCount - allItems.length}\n hasDataRows={true}\n totalColumnsCount={totalColumnsCount}\n loadingText={loadingText}\n hasSelection={hasSelection}\n hasFooter={hasFooter}\n stickyState={stickyState}\n tableRole={tableRole}\n ariaLabels={ariaLabels}\n cellVerticalAlign={cellVerticalAlign}\n computedVariant={computedVariant}\n visibleColumnDefinitions={visibleColumnDefinitions}\n wrapLines={wrapLines}\n resizableColumns={resizableColumns}\n colIndexOffset={colIndexOffset}\n />\n )}\n </tbody>\n </table>\n </GridNavigationProvider>\n\n {resizableColumns && <ResizeTracker />}\n </div>\n\n <StickyScrollbar\n ref={scrollbarRef}\n wrapperRef={wrapperRefObject}\n tableRef={tableRefObject}\n onScroll={handleScroll}\n hasStickyColumns={hasStickyColumns}\n />\n </InternalContainer>\n </ColumnWidthsProvider>\n </TableComponentsContextProvider>\n </LinkDefaultVariantContext.Provider>\n );\n }\n) as TableForwardRefType;\n\nexport default InternalTable;\n"]}
@@ -0,0 +1,12 @@
1
+ import React from 'react';
2
+ interface UseAutoSkeletonRowsProps {
3
+ enabled: boolean;
4
+ maxRows?: number;
5
+ minRows?: number;
6
+ tableBodyRef: React.RefObject<HTMLTableSectionElement>;
7
+ tableRootRef: React.RefObject<HTMLElement>;
8
+ tableWrapperRef: React.RefObject<HTMLElement>;
9
+ }
10
+ export declare function useAutoSkeletonRows({ enabled, maxRows, minRows, tableBodyRef, tableRootRef, tableWrapperRef, }: UseAutoSkeletonRowsProps): number;
11
+ export {};
12
+ //# sourceMappingURL=use-auto-skeleton-rows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-auto-skeleton-rows.d.ts","sourceRoot":"","sources":["../../../src/table/use-auto-skeleton-rows.ts"],"names":[],"mappings":"AAEA,OAAO,KAAyD,MAAM,OAAO,CAAC;AAwB9E,UAAU,wBAAwB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,uBAAuB,CAAC,CAAC;IACvD,YAAY,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;IAC3C,eAAe,EAAE,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;CAC/C;AAuDD,wBAAgB,mBAAmB,CAAC,EAClC,OAAO,EACP,OAAO,EACP,OAAO,EACP,YAAY,EACZ,YAAY,EACZ,eAAe,GAChB,EAAE,wBAAwB,UAkF1B"}
@@ -0,0 +1,100 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { useCallback, useLayoutEffect, useRef, useState } from 'react';
4
+ import { getScrollableParents } from '../internal/utils/scrollable-containers';
5
+ const AUTO_SKELETON_VIEWPORT_BUFFER = 16;
6
+ const SKELETON_ROW_SELECTOR = 'tr[aria-hidden="true"]';
7
+ function getDocumentViewportBottom() {
8
+ return document.documentElement.clientHeight || window.innerHeight;
9
+ }
10
+ function getViewportBottom(element) {
11
+ return getScrollableParents(element).reduce((viewportBottom, scrollContainer) => Math.min(viewportBottom, scrollContainer.getBoundingClientRect().bottom), getDocumentViewportBottom());
12
+ }
13
+ function getOverflowHeight(element) {
14
+ const scrollContainer = getScrollableParents(element)[0];
15
+ if (scrollContainer) {
16
+ return Math.max(0, scrollContainer.scrollHeight - scrollContainer.clientHeight);
17
+ }
18
+ return Math.max(0, Math.max(document.documentElement.scrollHeight, document.body.scrollHeight) - getDocumentViewportBottom());
19
+ }
20
+ function calculateAutoSkeletonRows({ maxRows, minRows, rowHeight, skeletonRowBottom, skeletonRowTop, tableBottom, viewportBottom, }) {
21
+ const staticHeightBelowSkeletonRow = Math.max(0, tableBottom - skeletonRowBottom);
22
+ const availableHeight = Math.max(0, viewportBottom - skeletonRowTop - staticHeightBelowSkeletonRow - AUTO_SKELETON_VIEWPORT_BUFFER);
23
+ const rows = Math.floor(availableHeight / rowHeight);
24
+ return Math.max(minRows, Math.min(maxRows !== null && maxRows !== void 0 ? maxRows : Number.POSITIVE_INFINITY, rows));
25
+ }
26
+ function calculateAutoSkeletonRowReduction({ currentRows, minRows, overflowHeight, rowHeight, }) {
27
+ return Math.min(currentRows - minRows, Math.max(1, Math.ceil((overflowHeight + AUTO_SKELETON_VIEWPORT_BUFFER) / rowHeight)));
28
+ }
29
+ export function useAutoSkeletonRows({ enabled, maxRows, minRows, tableBodyRef, tableRootRef, tableWrapperRef, }) {
30
+ const maxRowsValue = maxRows === undefined ? undefined : Math.max(1, maxRows);
31
+ const minRowsValue = Math.min(Math.max(1, minRows !== null && minRows !== void 0 ? minRows : 1), maxRowsValue !== null && maxRowsValue !== void 0 ? maxRowsValue : Number.POSITIVE_INFINITY);
32
+ const [rows, setRows] = useState(minRowsValue);
33
+ const rowHeightRef = useRef();
34
+ const updateRows = useCallback(() => {
35
+ var _a, _b, _c, _d;
36
+ if (!enabled) {
37
+ return;
38
+ }
39
+ const tableRoot = tableRootRef.current;
40
+ const tableWrapper = tableWrapperRef.current;
41
+ const skeletonRows = (_a = tableBodyRef.current) === null || _a === void 0 ? void 0 : _a.querySelectorAll(SKELETON_ROW_SELECTOR);
42
+ const firstSkeletonRowRect = (_b = skeletonRows === null || skeletonRows === void 0 ? void 0 : skeletonRows[0]) === null || _b === void 0 ? void 0 : _b.getBoundingClientRect();
43
+ const lastSkeletonRowRect = (_c = skeletonRows === null || skeletonRows === void 0 ? void 0 : skeletonRows[skeletonRows.length - 1]) === null || _c === void 0 ? void 0 : _c.getBoundingClientRect();
44
+ const rowHeight = (_d = lastSkeletonRowRect === null || lastSkeletonRowRect === void 0 ? void 0 : lastSkeletonRowRect.height) !== null && _d !== void 0 ? _d : rowHeightRef.current;
45
+ if (!tableRoot || !tableWrapper || !firstSkeletonRowRect || !lastSkeletonRowRect || !rowHeight) {
46
+ return;
47
+ }
48
+ rowHeightRef.current = rowHeight;
49
+ const nextRows = calculateAutoSkeletonRows({
50
+ maxRows: maxRowsValue,
51
+ minRows: minRowsValue,
52
+ rowHeight,
53
+ skeletonRowBottom: lastSkeletonRowRect.bottom,
54
+ skeletonRowTop: firstSkeletonRowRect.top,
55
+ tableBottom: tableRoot.getBoundingClientRect().bottom,
56
+ viewportBottom: getViewportBottom(tableWrapper),
57
+ });
58
+ setRows(currentRows => (currentRows === nextRows ? currentRows : nextRows));
59
+ }, [enabled, maxRowsValue, minRowsValue, tableBodyRef, tableRootRef, tableWrapperRef]);
60
+ useLayoutEffect(updateRows, [updateRows]);
61
+ useLayoutEffect(() => {
62
+ const tableWrapper = tableWrapperRef.current;
63
+ const rowHeight = rowHeightRef.current;
64
+ if (!enabled || rows <= minRowsValue || !tableWrapper || !rowHeight) {
65
+ return;
66
+ }
67
+ const overflowHeight = getOverflowHeight(tableWrapper);
68
+ if (overflowHeight === 0) {
69
+ return;
70
+ }
71
+ const rowsToRemove = calculateAutoSkeletonRowReduction({
72
+ currentRows: rows,
73
+ minRows: minRowsValue,
74
+ overflowHeight,
75
+ rowHeight,
76
+ });
77
+ setRows(currentRows => currentRows - rowsToRemove);
78
+ }, [enabled, rows, minRowsValue, tableWrapperRef]);
79
+ useLayoutEffect(() => {
80
+ if (!enabled || typeof ResizeObserver === 'undefined') {
81
+ return undefined;
82
+ }
83
+ const tableRoot = tableRootRef.current;
84
+ const tableWrapper = tableWrapperRef.current;
85
+ if (!tableRoot || !tableWrapper) {
86
+ return undefined;
87
+ }
88
+ const resizeObserver = new ResizeObserver(updateRows);
89
+ resizeObserver.observe(tableRoot);
90
+ resizeObserver.observe(tableWrapper);
91
+ getScrollableParents(tableWrapper).forEach(scrollContainer => resizeObserver.observe(scrollContainer));
92
+ window.addEventListener('resize', updateRows);
93
+ return () => {
94
+ resizeObserver.disconnect();
95
+ window.removeEventListener('resize', updateRows);
96
+ };
97
+ }, [enabled, tableRootRef, tableWrapperRef, updateRows]);
98
+ return rows;
99
+ }
100
+ //# sourceMappingURL=use-auto-skeleton-rows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-auto-skeleton-rows.js","sourceRoot":"","sources":["../../../src/table/use-auto-skeleton-rows.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useCallback, useLayoutEffect, useRef, useState } from 'react';\n\nimport { getScrollableParents } from '../internal/utils/scrollable-containers';\n\nconst AUTO_SKELETON_VIEWPORT_BUFFER = 16;\nconst SKELETON_ROW_SELECTOR = 'tr[aria-hidden=\"true\"]';\n\ninterface AutoSkeletonRowsCalculation {\n maxRows?: number;\n minRows: number;\n rowHeight: number;\n skeletonRowBottom: number;\n skeletonRowTop: number;\n tableBottom: number;\n viewportBottom: number;\n}\n\ninterface AutoSkeletonRowReductionCalculation {\n currentRows: number;\n minRows: number;\n overflowHeight: number;\n rowHeight: number;\n}\n\ninterface UseAutoSkeletonRowsProps {\n enabled: boolean;\n maxRows?: number;\n minRows?: number;\n tableBodyRef: React.RefObject<HTMLTableSectionElement>;\n tableRootRef: React.RefObject<HTMLElement>;\n tableWrapperRef: React.RefObject<HTMLElement>;\n}\n\nfunction getDocumentViewportBottom() {\n return document.documentElement.clientHeight || window.innerHeight;\n}\n\nfunction getViewportBottom(element: HTMLElement) {\n return getScrollableParents(element).reduce(\n (viewportBottom, scrollContainer) => Math.min(viewportBottom, scrollContainer.getBoundingClientRect().bottom),\n getDocumentViewportBottom()\n );\n}\n\nfunction getOverflowHeight(element: HTMLElement) {\n const scrollContainer = getScrollableParents(element)[0];\n if (scrollContainer) {\n return Math.max(0, scrollContainer.scrollHeight - scrollContainer.clientHeight);\n }\n\n return Math.max(\n 0,\n Math.max(document.documentElement.scrollHeight, document.body.scrollHeight) - getDocumentViewportBottom()\n );\n}\n\nfunction calculateAutoSkeletonRows({\n maxRows,\n minRows,\n rowHeight,\n skeletonRowBottom,\n skeletonRowTop,\n tableBottom,\n viewportBottom,\n}: AutoSkeletonRowsCalculation) {\n const staticHeightBelowSkeletonRow = Math.max(0, tableBottom - skeletonRowBottom);\n const availableHeight = Math.max(\n 0,\n viewportBottom - skeletonRowTop - staticHeightBelowSkeletonRow - AUTO_SKELETON_VIEWPORT_BUFFER\n );\n const rows = Math.floor(availableHeight / rowHeight);\n return Math.max(minRows, Math.min(maxRows ?? Number.POSITIVE_INFINITY, rows));\n}\n\nfunction calculateAutoSkeletonRowReduction({\n currentRows,\n minRows,\n overflowHeight,\n rowHeight,\n}: AutoSkeletonRowReductionCalculation) {\n return Math.min(\n currentRows - minRows,\n Math.max(1, Math.ceil((overflowHeight + AUTO_SKELETON_VIEWPORT_BUFFER) / rowHeight))\n );\n}\n\nexport function useAutoSkeletonRows({\n enabled,\n maxRows,\n minRows,\n tableBodyRef,\n tableRootRef,\n tableWrapperRef,\n}: UseAutoSkeletonRowsProps) {\n const maxRowsValue = maxRows === undefined ? undefined : Math.max(1, maxRows);\n const minRowsValue = Math.min(Math.max(1, minRows ?? 1), maxRowsValue ?? Number.POSITIVE_INFINITY);\n const [rows, setRows] = useState(minRowsValue);\n const rowHeightRef = useRef<number>();\n\n const updateRows = useCallback(() => {\n if (!enabled) {\n return;\n }\n\n const tableRoot = tableRootRef.current;\n const tableWrapper = tableWrapperRef.current;\n const skeletonRows = tableBodyRef.current?.querySelectorAll<HTMLElement>(SKELETON_ROW_SELECTOR);\n const firstSkeletonRowRect = skeletonRows?.[0]?.getBoundingClientRect();\n const lastSkeletonRowRect = skeletonRows?.[skeletonRows.length - 1]?.getBoundingClientRect();\n const rowHeight = lastSkeletonRowRect?.height ?? rowHeightRef.current;\n\n if (!tableRoot || !tableWrapper || !firstSkeletonRowRect || !lastSkeletonRowRect || !rowHeight) {\n return;\n }\n\n rowHeightRef.current = rowHeight;\n const nextRows = calculateAutoSkeletonRows({\n maxRows: maxRowsValue,\n minRows: minRowsValue,\n rowHeight,\n skeletonRowBottom: lastSkeletonRowRect.bottom,\n skeletonRowTop: firstSkeletonRowRect.top,\n tableBottom: tableRoot.getBoundingClientRect().bottom,\n viewportBottom: getViewportBottom(tableWrapper),\n });\n setRows(currentRows => (currentRows === nextRows ? currentRows : nextRows));\n }, [enabled, maxRowsValue, minRowsValue, tableBodyRef, tableRootRef, tableWrapperRef]);\n\n useLayoutEffect(updateRows, [updateRows]);\n\n useLayoutEffect(() => {\n const tableWrapper = tableWrapperRef.current;\n const rowHeight = rowHeightRef.current;\n if (!enabled || rows <= minRowsValue || !tableWrapper || !rowHeight) {\n return;\n }\n\n const overflowHeight = getOverflowHeight(tableWrapper);\n if (overflowHeight === 0) {\n return;\n }\n\n const rowsToRemove = calculateAutoSkeletonRowReduction({\n currentRows: rows,\n minRows: minRowsValue,\n overflowHeight,\n rowHeight,\n });\n setRows(currentRows => currentRows - rowsToRemove);\n }, [enabled, rows, minRowsValue, tableWrapperRef]);\n\n useLayoutEffect(() => {\n if (!enabled || typeof ResizeObserver === 'undefined') {\n return undefined;\n }\n\n const tableRoot = tableRootRef.current;\n const tableWrapper = tableWrapperRef.current;\n if (!tableRoot || !tableWrapper) {\n return undefined;\n }\n\n const resizeObserver = new ResizeObserver(updateRows);\n resizeObserver.observe(tableRoot);\n resizeObserver.observe(tableWrapper);\n getScrollableParents(tableWrapper).forEach(scrollContainer => resizeObserver.observe(scrollContainer));\n window.addEventListener('resize', updateRows);\n\n return () => {\n resizeObserver.disconnect();\n window.removeEventListener('resize', updateRows);\n };\n }, [enabled, tableRootRef, tableWrapperRef, updateRows]);\n\n return rows;\n}\n"]}
@@ -41,10 +41,10 @@ class PaginationWrapper extends dom_1.ComponentWrapper {
41
41
  return this.findComponent(`li:nth-child(${pageIndex}) .${styles_selectors_js_1.default.button}`, PaginationButtonWrapper);
42
42
  }
43
43
  findPreviousPageButton() {
44
- return this.findComponent(`li:first-child .${styles_selectors_js_1.default.button}`, PaginationButtonWrapper);
44
+ return this.findComponent(`li:first-child .${styles_selectors_js_1.default.arrow}`, PaginationButtonWrapper);
45
45
  }
46
46
  findNextPageButton() {
47
- return this.findComponent(`li:last-child .${styles_selectors_js_1.default.button}`, PaginationButtonWrapper);
47
+ return this.findComponent(`li:not(:first-child) .${styles_selectors_js_1.default.arrow}`, PaginationButtonWrapper);
48
48
  }
49
49
  /**
50
50
  * Returns the jump to page input field.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/dom/pagination/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,gEAAmF;AAEnF,sCAAsC;AACtC,oCAAoC;AACpC,wCAAwC;AAExC,iFAA6D;AAE7D,MAAa,uBAAwB,SAAQ,sBAAmC;IAE9E,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,MAAM,CAAC;IACxF,CAAC;CACF;AALD,0DAKC;AAHC;IADC,aAAO;yDAGP;AAGH,MAAqB,iBAAkB,SAAQ,sBAAgB;IAG7D,eAAe;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,uBAAuB,CAAE,CAAC;IACtF,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAoB,6BAAM,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAC1E,OAAO,CAAC,EAAE,CAAC,IAAI,uBAAuB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAC7D,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CAAC,KAAa;QACjC,6CAA6C;QAC7C,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,SAAS,MAAM,6BAAM,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC;IACrG,CAAC;IAED,sBAAsB;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC,mBAAmB,6BAAM,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAE,CAAC;IAC1F,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,kBAAkB,6BAAM,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAE,CAAC;IACzF,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,eAAY,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QACzE,OAAO,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjG,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,iBAAc,CAAC,YAAY,EAAE,EAAE,iBAAc,CAAC,CAAC;IAC/E,CAAC;IAGD,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,6BAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IAClE,CAAC;;AAxDM,8BAAY,GAAG,6BAAM,CAAC,IAAI,CAAC;kBADf,iBAAiB;AAuDpC;IADC,aAAO;mDAGP"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/dom/pagination/index.ts"],"names":[],"mappings":";;;;;;;;;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,gEAAmF;AAEnF,sCAAsC;AACtC,oCAAoC;AACpC,wCAAwC;AAExC,iFAA6D;AAE7D,MAAa,uBAAwB,SAAQ,sBAAmC;IAE9E,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,MAAM,CAAC;IACxF,CAAC;CACF;AALD,0DAKC;AAHC;IADC,aAAO;yDAGP;AAGH,MAAqB,iBAAkB,SAAQ,sBAAgB;IAG7D,eAAe;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,uBAAuB,CAAE,CAAC;IACtF,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAoB,6BAAM,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAC1E,OAAO,CAAC,EAAE,CAAC,IAAI,uBAAuB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAC7D,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CAAC,KAAa;QACjC,6CAA6C;QAC7C,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,SAAS,MAAM,6BAAM,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC;IACrG,CAAC;IAED,sBAAsB;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC,mBAAmB,6BAAM,CAAC,KAAK,EAAE,EAAE,uBAAuB,CAAE,CAAC;IACzF,CAAC;IAED,kBAAkB;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,yBAAyB,6BAAM,CAAC,KAAK,EAAE,EAAE,uBAAuB,CAAE,CAAC;IAC/F,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,eAAY,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QACzE,OAAO,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjG,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,iBAAc,CAAC,YAAY,EAAE,EAAE,iBAAc,CAAC,CAAC;IAC/E,CAAC;IAGD,UAAU;QACR,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,QAAQ,CAAC,6BAAM,CAAC,eAAe,CAAC,CAAC,CAAC;IAClE,CAAC;;AAxDM,8BAAY,GAAG,6BAAM,CAAC,IAAI,CAAC;kBADf,iBAAiB;AAuDpC;IADC,aAAO;mDAGP"}
@@ -29,10 +29,10 @@ class PaginationWrapper extends selectors_1.ComponentWrapper {
29
29
  return this.findComponent(`li:nth-child(${pageIndex}) .${styles_selectors_js_1.default.button}`, PaginationButtonWrapper);
30
30
  }
31
31
  findPreviousPageButton() {
32
- return this.findComponent(`li:first-child .${styles_selectors_js_1.default.button}`, PaginationButtonWrapper);
32
+ return this.findComponent(`li:first-child .${styles_selectors_js_1.default.arrow}`, PaginationButtonWrapper);
33
33
  }
34
34
  findNextPageButton() {
35
- return this.findComponent(`li:last-child .${styles_selectors_js_1.default.button}`, PaginationButtonWrapper);
35
+ return this.findComponent(`li:not(:first-child) .${styles_selectors_js_1.default.arrow}`, PaginationButtonWrapper);
36
36
  }
37
37
  /**
38
38
  * Returns the jump to page input field.
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/pagination/index.ts"],"names":[],"mappings":";;;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,4EAAgF;AAChF,sCAAsC;AACtC,oCAAoC;AACpC,wCAAwC;AACxC,iFAA6D;AAC7D,MAAa,uBAAwB,SAAQ,4BAAgB;CAAG;AAAhE,0DAAgE;AAChE,MAAqB,iBAAkB,SAAQ,4BAAgB;IAE7D,eAAe;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,uBAAuB,CAAE,CAAC;IACtF,CAAC;IACD,eAAe;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC,6BAAM,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,uBAAuB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC1H,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CAAC,KAAa;QACjC,6CAA6C;QAC7C,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,SAAS,MAAM,6BAAM,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC;IACrG,CAAC;IACD,sBAAsB;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC,mBAAmB,6BAAM,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAE,CAAC;IAC1F,CAAC;IACD,kBAAkB;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,kBAAkB,6BAAM,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAE,CAAC;IACzF,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,eAAY,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QACzE,OAAO,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjG,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,iBAAc,CAAC,YAAY,EAAE,EAAE,iBAAc,CAAC,CAAC;IAC/E,CAAC;;AA7CM,8BAAY,GAAG,6BAAM,CAAC,IAAI,CAAC;kBADf,iBAAiB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/pagination/index.ts"],"names":[],"mappings":";;;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,4EAAgF;AAChF,sCAAsC;AACtC,oCAAoC;AACpC,wCAAwC;AACxC,iFAA6D;AAC7D,MAAa,uBAAwB,SAAQ,4BAAgB;CAAG;AAAhE,0DAAgE;AAChE,MAAqB,iBAAkB,SAAQ,4BAAgB;IAE7D,eAAe;QACb,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAM,CAAC,gBAAgB,CAAC,EAAE,EAAE,uBAAuB,CAAE,CAAC;IACtF,CAAC;IACD,eAAe;QACb,OAAO,IAAI,CAAC,kBAAkB,CAAC,6BAAM,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,IAAI,uBAAuB,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC;IAC1H,CAAC;IAED;;;;OAIG;IACH,qBAAqB,CAAC,KAAa;QACjC,6CAA6C;QAC7C,MAAM,SAAS,GAAG,KAAK,GAAG,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,gBAAgB,SAAS,MAAM,6BAAM,CAAC,MAAM,EAAE,EAAE,uBAAuB,CAAC,CAAC;IACrG,CAAC;IACD,sBAAsB;QACpB,OAAO,IAAI,CAAC,aAAa,CAAC,mBAAmB,6BAAM,CAAC,KAAK,EAAE,EAAE,uBAAuB,CAAE,CAAC;IACzF,CAAC;IACD,kBAAkB;QAChB,OAAO,IAAI,CAAC,aAAa,CAAC,yBAAyB,6BAAM,CAAC,KAAK,EAAE,EAAE,uBAAuB,CAAE,CAAC;IAC/F,CAAC;IAED;;OAEG;IACH,mBAAmB;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,6BAAM,CAAC,oBAAoB,CAAC,EAAE,EAAE,eAAY,CAAC,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,oBAAoB;QAClB,MAAM,mBAAmB,GAAG,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,cAAc,CAAC,CAAC,CAAC;QACzE,OAAO,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,CAAC,aAAa,CAAC,QAAQ,EAAE,gBAAa,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACjG,CAAC;IAED;;OAEG;IACH,qBAAqB;QACnB,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,iBAAc,CAAC,YAAY,EAAE,EAAE,iBAAc,CAAC,CAAC;IAC/E,CAAC;;AA7CM,8BAAY,GAAG,6BAAM,CAAC,IAAI,CAAC;kBADf,iBAAiB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cloudscape-design/components-themeable",
3
- "version": "3.0.1334",
3
+ "version": "3.0.1336",
4
4
  "files": [
5
5
  "lib"
6
6
  ],