@cloudscape-design/components 3.0.1308 → 3.0.1309

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 (137) hide show
  1. package/collection-preferences/content-display/content-display-option.js +1 -1
  2. package/collection-preferences/content-display/content-display-option.js.map +1 -1
  3. package/collection-preferences/content-display/index.d.ts +3 -7
  4. package/collection-preferences/content-display/index.d.ts.map +1 -1
  5. package/collection-preferences/content-display/index.js +63 -27
  6. package/collection-preferences/content-display/index.js.map +1 -1
  7. package/collection-preferences/content-display/utils.d.ts +41 -2
  8. package/collection-preferences/content-display/utils.d.ts.map +1 -1
  9. package/collection-preferences/content-display/utils.js +107 -13
  10. package/collection-preferences/content-display/utils.js.map +1 -1
  11. package/collection-preferences/index.d.ts.map +1 -1
  12. package/collection-preferences/index.js +2 -2
  13. package/collection-preferences/index.js.map +1 -1
  14. package/collection-preferences/interfaces.d.ts +30 -2
  15. package/collection-preferences/interfaces.d.ts.map +1 -1
  16. package/collection-preferences/interfaces.js.map +1 -1
  17. package/collection-preferences/styles.css.js +38 -36
  18. package/collection-preferences/styles.scoped.css +81 -37
  19. package/collection-preferences/styles.selectors.js +38 -36
  20. package/collection-preferences/utils.d.ts +1 -0
  21. package/collection-preferences/utils.d.ts.map +1 -1
  22. package/collection-preferences/utils.js +14 -0
  23. package/collection-preferences/utils.js.map +1 -1
  24. package/i18n/messages/all.all.js +1 -1
  25. package/i18n/messages/all.all.json +1 -1
  26. package/i18n/messages/all.en.js +1 -1
  27. package/i18n/messages/all.en.json +1 -1
  28. package/i18n/messages-types.d.ts +4 -0
  29. package/i18n/messages-types.d.ts.map +1 -1
  30. package/i18n/messages-types.js.map +1 -1
  31. package/internal/base-component/styles.scoped.css +1 -1
  32. package/internal/environment.js +2 -2
  33. package/internal/environment.json +2 -2
  34. package/internal/manifest.json +1 -1
  35. package/manifest.json +2 -2
  36. package/package.json +1 -1
  37. package/pagination/internal.d.ts.map +1 -1
  38. package/pagination/internal.js +4 -1
  39. package/pagination/internal.js.map +1 -1
  40. package/table/column-groups/col-group.d.ts +12 -0
  41. package/table/column-groups/col-group.d.ts.map +1 -0
  42. package/table/column-groups/col-group.js +24 -0
  43. package/table/column-groups/col-group.js.map +1 -0
  44. package/table/column-groups/split-utils.d.ts +31 -0
  45. package/table/column-groups/split-utils.d.ts.map +1 -0
  46. package/table/column-groups/split-utils.js +43 -0
  47. package/table/column-groups/split-utils.js.map +1 -0
  48. package/table/column-groups/use-column-groups.d.ts +7 -0
  49. package/table/column-groups/use-column-groups.d.ts.map +1 -0
  50. package/table/column-groups/use-column-groups.js +23 -0
  51. package/table/column-groups/use-column-groups.js.map +1 -0
  52. package/table/column-groups/utils.d.ts +54 -0
  53. package/table/column-groups/utils.d.ts.map +1 -0
  54. package/table/column-groups/utils.js +204 -0
  55. package/table/column-groups/utils.js.map +1 -0
  56. package/table/header-cell/common-props.d.ts +23 -0
  57. package/table/header-cell/common-props.d.ts.map +1 -0
  58. package/table/header-cell/common-props.js +4 -0
  59. package/table/header-cell/common-props.js.map +1 -0
  60. package/table/header-cell/group-header-cell.d.ts +45 -0
  61. package/table/header-cell/group-header-cell.d.ts.map +1 -0
  62. package/table/header-cell/group-header-cell.js +44 -0
  63. package/table/header-cell/group-header-cell.js.map +1 -0
  64. package/table/header-cell/index.d.ts +12 -22
  65. package/table/header-cell/index.d.ts.map +1 -1
  66. package/table/header-cell/index.js +3 -3
  67. package/table/header-cell/index.js.map +1 -1
  68. package/table/header-cell/styles.css.js +33 -30
  69. package/table/header-cell/styles.scoped.css +92 -68
  70. package/table/header-cell/styles.selectors.js +33 -30
  71. package/table/header-cell/th-element.d.ts +16 -0
  72. package/table/header-cell/th-element.d.ts.map +1 -1
  73. package/table/header-cell/th-element.js +6 -4
  74. package/table/header-cell/th-element.js.map +1 -1
  75. package/table/index.d.ts.map +1 -1
  76. package/table/index.js +5 -2
  77. package/table/index.js.map +1 -1
  78. package/table/interfaces.d.ts +37 -1
  79. package/table/interfaces.d.ts.map +1 -1
  80. package/table/interfaces.js.map +1 -1
  81. package/table/internal.d.ts.map +1 -1
  82. package/table/internal.js +17 -5
  83. package/table/internal.js.map +1 -1
  84. package/table/resizer/index.d.ts +9 -2
  85. package/table/resizer/index.d.ts.map +1 -1
  86. package/table/resizer/index.js +5 -5
  87. package/table/resizer/index.js.map +1 -1
  88. package/table/resizer/styles.css.js +16 -13
  89. package/table/resizer/styles.scoped.css +36 -26
  90. package/table/resizer/styles.selectors.js +16 -13
  91. package/table/sticky-header.d.ts +3 -0
  92. package/table/sticky-header.d.ts.map +1 -1
  93. package/table/sticky-header.js +7 -2
  94. package/table/sticky-header.js.map +1 -1
  95. package/table/sticky-scrolling.d.ts.map +1 -1
  96. package/table/sticky-scrolling.js +6 -1
  97. package/table/sticky-scrolling.js.map +1 -1
  98. package/table/styles.css.js +35 -34
  99. package/table/styles.scoped.css +47 -41
  100. package/table/styles.selectors.js +35 -34
  101. package/table/table-role/grid-navigation.d.ts.map +1 -1
  102. package/table/table-role/grid-navigation.js +5 -7
  103. package/table/table-role/grid-navigation.js.map +1 -1
  104. package/table/table-role/table-role-helper.d.ts +3 -0
  105. package/table/table-role/table-role-helper.d.ts.map +1 -1
  106. package/table/table-role/table-role-helper.js +9 -4
  107. package/table/table-role/table-role-helper.js.map +1 -1
  108. package/table/table-role/utils.d.ts +19 -0
  109. package/table/table-role/utils.d.ts.map +1 -1
  110. package/table/table-role/utils.js +86 -7
  111. package/table/table-role/utils.js.map +1 -1
  112. package/table/thead.d.ts +5 -0
  113. package/table/thead.d.ts.map +1 -1
  114. package/table/thead.js +145 -18
  115. package/table/thead.js.map +1 -1
  116. package/table/use-column-widths.d.ts +4 -0
  117. package/table/use-column-widths.d.ts.map +1 -1
  118. package/table/use-column-widths.js +68 -18
  119. package/table/use-column-widths.js.map +1 -1
  120. package/table/use-sticky-header.d.ts.map +1 -1
  121. package/table/use-sticky-header.js +4 -1
  122. package/table/use-sticky-header.js.map +1 -1
  123. package/table/utils.d.ts.map +1 -1
  124. package/table/utils.js +14 -4
  125. package/table/utils.js.map +1 -1
  126. package/test-utils/dom/collection-preferences/content-display-preference.d.ts +28 -2
  127. package/test-utils/dom/collection-preferences/content-display-preference.js +60 -2
  128. package/test-utils/dom/collection-preferences/content-display-preference.js.map +1 -1
  129. package/test-utils/dom/table/index.d.ts +18 -1
  130. package/test-utils/dom/table/index.js +22 -3
  131. package/test-utils/dom/table/index.js.map +1 -1
  132. package/test-utils/selectors/collection-preferences/content-display-preference.d.ts +28 -2
  133. package/test-utils/selectors/collection-preferences/content-display-preference.js +52 -2
  134. package/test-utils/selectors/collection-preferences/content-display-preference.js.map +1 -1
  135. package/test-utils/selectors/table/index.d.ts +18 -1
  136. package/test-utils/selectors/table/index.js +22 -3
  137. package/test-utils/selectors/table/index.js.map +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../../src/table/column-groups/utils.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 { warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nimport { TableProps } from '../interfaces';\nimport { getVisibleColumnDefinitions } from '../utils';\n\nexport interface HeaderRowColumn<T> {\n id: string;\n header?: React.ReactNode;\n colSpan: number;\n rowSpan: number;\n isGroup: boolean;\n columnDefinition?: TableProps.ColumnDefinition<T>;\n groupDefinition?: TableProps.GroupDefinition;\n parentGroupIds: string[];\n colIndex: number;\n}\n\nexport interface HeaderRow<T> {\n columns: HeaderRowColumn<T>[];\n}\n\nexport interface ColumnGroupsLayout<T> {\n rows: HeaderRow<T>[];\n maxDepth: number;\n columnToParentIds: Map<string, string[]>;\n}\n\nexport interface TableHeaderNodeProps<T> {\n columnDefinition?: TableProps.ColumnDefinition<T>;\n groupDefinition?: TableProps.GroupDefinition;\n isRoot?: boolean;\n colSpan?: number;\n rowSpan?: number;\n rowIndex?: number;\n colIndex?: number;\n}\n\n/**\n * A node in the table header tree.\n * - Column nodes map to column definitions.\n * - Internal nodes map to group definitions.\n * - The root is a virtual container (never rendered).\n */\nexport class TableHeaderNode<T> {\n public readonly id: string;\n public readonly isRoot: boolean;\n public readonly columnDefinition?: TableProps.ColumnDefinition<T>;\n public readonly groupDefinition?: TableProps.GroupDefinition;\n\n public colSpan: number;\n public rowSpan: number;\n public rowIndex: number;\n public colIndex: number;\n public subTreeHeight: number = 1;\n\n public children: TableHeaderNode<T>[] = [];\n public parent?: TableHeaderNode<T>;\n\n constructor(id: string, props: TableHeaderNodeProps<T> = {}) {\n this.id = id;\n this.isRoot = props.isRoot ?? false;\n this.columnDefinition = props.columnDefinition;\n this.groupDefinition = props.groupDefinition;\n this.colSpan = props.colSpan ?? 1;\n this.rowSpan = props.rowSpan ?? 1;\n this.rowIndex = props.rowIndex ?? -1;\n this.colIndex = props.colIndex ?? -1;\n }\n\n get isGroup(): boolean {\n return !!this.groupDefinition;\n }\n\n get isColumn(): boolean {\n return !this.isRoot && this.children.length === 0;\n }\n\n addChild(child: TableHeaderNode<T>): void {\n this.children.push(child);\n child.parent = this;\n }\n}\n\n/**\n * Builds the tree from the nested columnDisplay structure.\n * Groups are only attached if they contain at least one visible descendant.\n */\nfunction buildTreeFromColumnDisplay<T>(\n displayItems: ReadonlyArray<TableProps.ColumnDisplayProperties>,\n nodeMap: Map<string, TableHeaderNode<T>>,\n parent: TableHeaderNode<T>\n): void {\n for (const item of displayItems) {\n if (item.type === 'group') {\n const groupNode = nodeMap.get(item.id);\n if (!groupNode) {\n warnOnce('[Table]', `Group \"${item.id}\" referenced in columnDisplay not found in groupDefinitions. Skipping.`);\n continue;\n }\n buildTreeFromColumnDisplay(item.children, nodeMap, groupNode);\n // Only attach group if it has visible descendants. The recursive call above\n // only adds children that are either visible columns or nested groups with\n // their own visible descendants, so this check handles all nesting levels.\n if (groupNode.children.length > 0) {\n parent.addChild(groupNode);\n }\n } else {\n if (!item.visible) {\n continue;\n }\n const colNode = nodeMap.get(item.id);\n if (colNode) {\n parent.addChild(colNode);\n }\n }\n }\n}\n\n/**\n * Fallback when no columnDisplay is provided: all visible columns attach directly to root.\n */\nfunction buildTreeFromVisibleColumns<T>(\n visibleColumns: Readonly<TableProps.ColumnDefinition<T>[]>,\n nodeMap: Map<string, TableHeaderNode<T>>,\n root: TableHeaderNode<T>\n): void {\n for (const col of visibleColumns) {\n // Columns without IDs cannot participate in grouping, they have no key\n // to match against columnDisplay entries or groupDefinitions.\n if (!col.id) {\n continue;\n }\n const node = nodeMap.get(col.id);\n if (node) {\n root.addChild(node);\n }\n }\n}\n\nfunction computeSubTreeHeights<T>(node: TableHeaderNode<T>): number {\n if (node.isColumn || node.children.length === 0) {\n node.subTreeHeight = 1;\n return 1;\n }\n const maxChildHeight = Math.max(...node.children.map(child => computeSubTreeHeights(child)));\n node.subTreeHeight = maxChildHeight + 1;\n return node.subTreeHeight;\n}\n\nfunction computeRowSpansAndIndices<T>(node: TableHeaderNode<T>, treeHeight: number, ancestorRows: number = 0): void {\n const maxChildHeight = Math.max(...node.children.map(c => c.subTreeHeight), 0);\n node.rowSpan = treeHeight - ancestorRows - maxChildHeight;\n\n if (node.parent) {\n node.rowIndex = node.parent.rowIndex + node.parent.rowSpan;\n }\n\n for (const child of node.children) {\n computeRowSpansAndIndices(child, treeHeight, ancestorRows + node.rowSpan);\n }\n}\n\nfunction computeColSpansAndIndices<T>(node: TableHeaderNode<T>, startCol: number = 0): number {\n node.colIndex = startCol;\n\n if (node.isColumn) {\n node.colSpan = 1;\n return startCol + 1;\n }\n\n let nextCol = startCol;\n for (const child of node.children) {\n nextCol = computeColSpansAndIndices(child, nextCol);\n }\n\n node.colSpan = nextCol - startCol;\n return nextCol;\n}\n\nexport function calculateHierarchyTree<T>(\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<T>>,\n visibleColumnIds: readonly string[],\n groupDefinitions: ReadonlyArray<TableProps.GroupDefinition>,\n columnDisplay?: ReadonlyArray<TableProps.ColumnDisplayProperties>\n): ColumnGroupsLayout<T> {\n const visibleColumns = getVisibleColumnDefinitions({\n columnDisplay,\n visibleColumns: visibleColumnIds,\n columnDefinitions,\n });\n\n const nodeMap = new Map<string, TableHeaderNode<T>>();\n\n for (const col of visibleColumns) {\n if (col.id) {\n nodeMap.set(col.id, new TableHeaderNode<T>(col.id, { columnDefinition: col }));\n }\n }\n\n for (const group of groupDefinitions) {\n nodeMap.set(group.id, new TableHeaderNode<T>(group.id, { groupDefinition: group }));\n }\n\n const root = new TableHeaderNode<T>('*', { isRoot: true });\n\n if (columnDisplay && columnDisplay.length > 0) {\n buildTreeFromColumnDisplay(columnDisplay, nodeMap, root);\n } else {\n buildTreeFromVisibleColumns(visibleColumns, nodeMap, root);\n }\n\n computeSubTreeHeights(root);\n\n const treeHeight = root.subTreeHeight - 1;\n root.rowIndex = -1;\n root.rowSpan = 1;\n root.colSpan = visibleColumns.length;\n\n for (const child of root.children) {\n computeRowSpansAndIndices(child, treeHeight);\n }\n\n computeColSpansAndIndices(root);\n\n return buildOutput(root, treeHeight);\n}\n\nfunction getParentChain<T>(node: TableHeaderNode<T>): string[] {\n const chain: string[] = [];\n let current = node.parent;\n while (current && !current.isRoot) {\n chain.unshift(current.id);\n current = current.parent;\n }\n return chain;\n}\n\nfunction buildOutput<T>(root: TableHeaderNode<T>, maxDepth: number): ColumnGroupsLayout<T> {\n const rowsMap = new Map<number, HeaderRowColumn<T>[]>();\n const columnToParentIds = new Map<string, string[]>();\n\n const queue: TableHeaderNode<T>[] = [...root.children];\n\n while (queue.length > 0) {\n const node = queue.shift()!;\n const parentChain = getParentChain(node);\n\n const entry: HeaderRowColumn<T> = {\n id: node.id,\n header: node.groupDefinition?.header ?? node.columnDefinition?.header,\n colSpan: node.colSpan,\n rowSpan: node.rowSpan,\n isGroup: node.isGroup,\n columnDefinition: node.columnDefinition,\n groupDefinition: node.groupDefinition,\n parentGroupIds: parentChain,\n colIndex: node.colIndex,\n };\n\n if (!rowsMap.has(node.rowIndex)) {\n rowsMap.set(node.rowIndex, []);\n }\n rowsMap.get(node.rowIndex)!.push(entry);\n\n if (node.isColumn && node.columnDefinition && parentChain.length > 0) {\n columnToParentIds.set(node.id, parentChain);\n }\n\n queue.push(...node.children);\n }\n\n // Sort row indices to ensure rows are ordered top-to-bottom,\n // then sort columns within each row by their horizontal position.\n const rows: HeaderRow<T>[] = Array.from(rowsMap.keys())\n .sort((a, b) => a - b)\n .map(key => ({ columns: rowsMap.get(key)!.sort((a, b) => a.colIndex - b.colIndex) }));\n\n return { rows, maxDepth, columnToParentIds };\n}\n\nexport function getColumnGroupsDepth(columnDisplay?: ReadonlyArray<TableProps.ColumnDisplayProperties>): number {\n if (!columnDisplay) {\n return 0;\n }\n let maxDepth = 0;\n for (const item of columnDisplay) {\n if (item.type === 'group') {\n maxDepth = Math.max(maxDepth, 1 + getColumnGroupsDepth(item.children));\n }\n }\n return maxDepth;\n}\n"]}
@@ -0,0 +1,23 @@
1
+ import { ColumnWidthStyle } from '../column-widths-utils';
2
+ import { TableProps } from '../interfaces';
3
+ import { StickyColumnsModel } from '../sticky-columns';
4
+ import { TableRole } from '../table-role';
5
+ export interface BaseHeaderCellProps {
6
+ tabIndex: number;
7
+ colIndex: number;
8
+ focusedComponent?: null | string;
9
+ resizableColumns?: boolean;
10
+ resizableStyle?: ColumnWidthStyle;
11
+ onResizeFinish: () => void;
12
+ sticky?: boolean;
13
+ hidden?: boolean;
14
+ stripedRows?: boolean;
15
+ stickyState: StickyColumnsModel;
16
+ cellRef: React.RefCallback<HTMLElement>;
17
+ tableRole: TableRole;
18
+ resizerRoleDescription?: string;
19
+ resizerTooltipText?: string;
20
+ variant: TableProps.Variant;
21
+ tableVariant?: TableProps.Variant;
22
+ wrapLines?: boolean;
23
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-props.d.ts","sourceRoot":"","sources":["../../../../src/table/header-cell/common-props.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAE1C,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACjC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,kBAAkB,CAAC;IAChC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACxC,SAAS,EAAE,SAAS,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC;IAClC,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB"}
@@ -0,0 +1,4 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ export {};
4
+ //# sourceMappingURL=common-props.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"common-props.js","sourceRoot":"","sources":["../../../../src/table/header-cell/common-props.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { ColumnWidthStyle } from '../column-widths-utils';\nimport { TableProps } from '../interfaces';\nimport { StickyColumnsModel } from '../sticky-columns';\nimport { TableRole } from '../table-role';\n\nexport interface BaseHeaderCellProps {\n tabIndex: number;\n colIndex: number;\n focusedComponent?: null | string;\n resizableColumns?: boolean;\n resizableStyle?: ColumnWidthStyle;\n onResizeFinish: () => void;\n sticky?: boolean;\n hidden?: boolean;\n stripedRows?: boolean;\n stickyState: StickyColumnsModel;\n cellRef: React.RefCallback<HTMLElement>;\n tableRole: TableRole;\n resizerRoleDescription?: string;\n resizerTooltipText?: string;\n variant: TableProps.Variant;\n tableVariant?: TableProps.Variant;\n wrapLines?: boolean;\n}\n"]}
@@ -0,0 +1,45 @@
1
+ import { TableProps } from '../interfaces';
2
+ import { BaseHeaderCellProps } from './common-props';
3
+ export interface TableGroupHeaderCellProps extends BaseHeaderCellProps {
4
+ group: TableProps.GroupDefinition;
5
+ colspan: number;
6
+ rowspan: number;
7
+ groupId: string;
8
+ updateGroupWidth: (groupId: PropertyKey, newWidth: number) => void;
9
+ childColumnIds: PropertyKey[];
10
+ firstChildColumnId?: PropertyKey;
11
+ lastChildColumnId?: PropertyKey;
12
+ columnGroupId?: string;
13
+ stickyColumnId?: PropertyKey;
14
+ stickyBoundaryColumnId?: PropertyKey;
15
+ isLast?: boolean;
16
+ }
17
+ export declare function TableGroupHeaderCell({
18
+ group,
19
+ colspan,
20
+ rowspan,
21
+ colIndex,
22
+ groupId,
23
+ resizableColumns,
24
+ resizableStyle,
25
+ onResizeFinish,
26
+ updateGroupWidth,
27
+ childColumnIds,
28
+ focusedComponent,
29
+ tabIndex,
30
+ sticky,
31
+ hidden,
32
+ stripedRows,
33
+ stickyState,
34
+ cellRef,
35
+ tableRole,
36
+ resizerRoleDescription,
37
+ resizerTooltipText,
38
+ variant,
39
+ tableVariant,
40
+ columnGroupId,
41
+ stickyColumnId,
42
+ stickyBoundaryColumnId,
43
+ isLast,
44
+ wrapLines
45
+ }: TableGroupHeaderCellProps): JSX.Element;
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-header-cell.d.ts","sourceRoot":"","sources":["../../../../src/table/header-cell/group-header-cell.tsx"],"names":[],"mappings":"AAQA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAK3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAKrD,MAAM,WAAW,yBAA0B,SAAQ,mBAAmB;IACpE,KAAK,EAAE,UAAU,CAAC,eAAe,CAAC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IACnE,cAAc,EAAE,WAAW,EAAE,CAAC;IAC9B,kBAAkB,CAAC,EAAE,WAAW,CAAC;IACjC,iBAAiB,CAAC,EAAE,WAAW,CAAC;IAChC,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,WAAW,CAAC;IAC7B,sBAAsB,CAAC,EAAE,WAAW,CAAC;IACrC,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,OAAO,EACP,OAAO,EACP,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,cAAc,EACd,gBAAgB,EAChB,QAAQ,EACR,MAAM,EACN,MAAM,EACN,WAAW,EACX,WAAW,EACX,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,OAAO,EACP,YAAY,EACZ,aAAa,EACb,cAAc,EACd,sBAAsB,EACtB,MAAM,EACN,SAAS,GACV,EAAE,yBAAyB,eAmF3B"}
@@ -0,0 +1,44 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import React, { useRef } from 'react';
4
+ import clsx from 'clsx';
5
+ import { useSingleTabStopNavigation } from '@cloudscape-design/component-toolkit/internal';
6
+ import { useUniqueId } from '@cloudscape-design/component-toolkit/internal';
7
+ import { Divider, Resizer } from '../resizer';
8
+ import { useStickyCellStyles } from '../sticky-columns';
9
+ import { DEFAULT_COLUMN_WIDTH, useColumnWidths } from '../use-column-widths';
10
+ import { getStickyClassNames } from '../utils';
11
+ import { TableThElement } from './th-element';
12
+ import styles from './styles.css.js';
13
+ export function TableGroupHeaderCell({ group, colspan, rowspan, colIndex, groupId, resizableColumns, resizableStyle, onResizeFinish, updateGroupWidth, childColumnIds, focusedComponent, tabIndex, sticky, hidden, stripedRows, stickyState, cellRef, tableRole, resizerRoleDescription, resizerTooltipText, variant, tableVariant, columnGroupId, stickyColumnId, stickyBoundaryColumnId, isLast, wrapLines, }) {
14
+ var _a, _b;
15
+ const headerId = useUniqueId('table-group-header-');
16
+ const { columnWidths } = useColumnWidths();
17
+ // Effective min = sum of non-rightmost children's current widths (fixed) + rightmost child's minWidth
18
+ const lastChild = childColumnIds[childColumnIds.length - 1];
19
+ const groupMinWidth = childColumnIds.reduce((sum, id) => {
20
+ if (id === lastChild) {
21
+ return sum + DEFAULT_COLUMN_WIDTH;
22
+ }
23
+ return sum + (columnWidths.get(id) || DEFAULT_COLUMN_WIDTH);
24
+ }, 0);
25
+ const clickableHeaderRef = useRef(null);
26
+ const { tabIndex: clickableHeaderTabIndex } = useSingleTabStopNavigation(clickableHeaderRef, { tabIndex });
27
+ // Subscribe to the boundary column's sticky state to inherit shadow/clip-path classes.
28
+ // The offset/position comes from stickyColumnId (first child); this only adds boundary classes.
29
+ const boundaryStyles = useStickyCellStyles({
30
+ stickyColumns: stickyState,
31
+ columnId: (_a = stickyBoundaryColumnId !== null && stickyBoundaryColumnId !== void 0 ? stickyBoundaryColumnId : stickyColumnId) !== null && _a !== void 0 ? _a : groupId,
32
+ getClassName: props => getStickyClassNames(styles, props),
33
+ });
34
+ // boundaryStyles.className is populated by scroll/intersection observers in the browser.
35
+ // In JSDOM these observers don't fire, so this branch is only exercised in integration tests.
36
+ const boundaryClassName = stickyBoundaryColumnId && boundaryStyles.className ? boundaryStyles.className : undefined;
37
+ return (React.createElement(TableThElement, { resizableStyle: resizableStyle, cellRef: cellRef, focusedComponent: focusedComponent, sticky: sticky, resizable: resizableColumns, hidden: hidden, stripedRows: stripedRows, colIndex: colIndex, columnId: stickyColumnId !== null && stickyColumnId !== void 0 ? stickyColumnId : groupId, stickyState: stickyState, tableRole: tableRole, variant: variant, tableVariant: tableVariant, colSpan: colspan, rowSpan: rowspan, scope: "colgroup", isLast: isLast, columnGroupId: columnGroupId, className: boundaryClassName, boundaryRef: stickyBoundaryColumnId ? boundaryStyles.ref : undefined },
38
+ React.createElement("div", { ref: clickableHeaderRef, "data-focus-id": `group-header-${groupId}`, className: clsx(styles['header-cell-content'], {
39
+ [styles['header-cell-fake-focus']]: focusedComponent === `group-header-${groupId}`,
40
+ }), "aria-label": (_b = group.ariaLabel) === null || _b === void 0 ? void 0 : _b.call(group, { sorted: false, descending: false, disabled: true }), tabIndex: clickableHeaderTabIndex },
41
+ React.createElement("div", { className: clsx(styles['header-cell-text'], wrapLines && styles['header-cell-text-wrap']), id: headerId }, group.header)),
42
+ resizableColumns ? (React.createElement(Resizer, { tabIndex: tabIndex, focusId: `resize-group-${groupId}`, showFocusRing: focusedComponent === `resize-group-${groupId}`, onWidthUpdate: newWidth => updateGroupWidth(groupId, newWidth), onWidthUpdateCommit: onResizeFinish, ariaLabelledby: headerId, minWidth: groupMinWidth, roleDescription: resizerRoleDescription, tooltipText: resizerTooltipText, isBorderless: variant === 'full-page' || variant === 'embedded' || variant === 'borderless', isLast: isLast, dividerPosition: columnGroupId ? 'full' : 'bottom' })) : (React.createElement(Divider, { position: columnGroupId ? 'full' : 'bottom' }))));
43
+ }
44
+ //# sourceMappingURL=group-header-cell.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"group-header-cell.js","sourceRoot":"","sources":["../../../../src/table/header-cell/group-header-cell.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, { useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { useSingleTabStopNavigation } from '@cloudscape-design/component-toolkit/internal';\nimport { useUniqueId } from '@cloudscape-design/component-toolkit/internal';\n\nimport { TableProps } from '../interfaces';\nimport { Divider, Resizer } from '../resizer';\nimport { useStickyCellStyles } from '../sticky-columns';\nimport { DEFAULT_COLUMN_WIDTH, useColumnWidths } from '../use-column-widths';\nimport { getStickyClassNames } from '../utils';\nimport { BaseHeaderCellProps } from './common-props';\nimport { TableThElement } from './th-element';\n\nimport styles from './styles.css.js';\n\nexport interface TableGroupHeaderCellProps extends BaseHeaderCellProps {\n group: TableProps.GroupDefinition;\n colspan: number;\n rowspan: number;\n groupId: string;\n updateGroupWidth: (groupId: PropertyKey, newWidth: number) => void;\n childColumnIds: PropertyKey[];\n firstChildColumnId?: PropertyKey;\n lastChildColumnId?: PropertyKey;\n columnGroupId?: string;\n stickyColumnId?: PropertyKey;\n stickyBoundaryColumnId?: PropertyKey;\n isLast?: boolean;\n}\n\nexport function TableGroupHeaderCell({\n group,\n colspan,\n rowspan,\n colIndex,\n groupId,\n resizableColumns,\n resizableStyle,\n onResizeFinish,\n updateGroupWidth,\n childColumnIds,\n focusedComponent,\n tabIndex,\n sticky,\n hidden,\n stripedRows,\n stickyState,\n cellRef,\n tableRole,\n resizerRoleDescription,\n resizerTooltipText,\n variant,\n tableVariant,\n columnGroupId,\n stickyColumnId,\n stickyBoundaryColumnId,\n isLast,\n wrapLines,\n}: TableGroupHeaderCellProps) {\n const headerId = useUniqueId('table-group-header-');\n const { columnWidths } = useColumnWidths();\n\n // Effective min = sum of non-rightmost children's current widths (fixed) + rightmost child's minWidth\n const lastChild = childColumnIds[childColumnIds.length - 1];\n const groupMinWidth = childColumnIds.reduce<number>((sum, id) => {\n if (id === lastChild) {\n return sum + DEFAULT_COLUMN_WIDTH;\n }\n return sum + (columnWidths.get(id) || DEFAULT_COLUMN_WIDTH);\n }, 0);\n const clickableHeaderRef = useRef<HTMLDivElement>(null);\n const { tabIndex: clickableHeaderTabIndex } = useSingleTabStopNavigation(clickableHeaderRef, { tabIndex });\n\n // Subscribe to the boundary column's sticky state to inherit shadow/clip-path classes.\n // The offset/position comes from stickyColumnId (first child); this only adds boundary classes.\n const boundaryStyles = useStickyCellStyles({\n stickyColumns: stickyState,\n columnId: stickyBoundaryColumnId ?? stickyColumnId ?? groupId,\n getClassName: props => getStickyClassNames(styles, props),\n });\n\n // boundaryStyles.className is populated by scroll/intersection observers in the browser.\n // In JSDOM these observers don't fire, so this branch is only exercised in integration tests.\n const boundaryClassName = stickyBoundaryColumnId && boundaryStyles.className ? boundaryStyles.className : undefined;\n\n return (\n <TableThElement\n resizableStyle={resizableStyle}\n cellRef={cellRef}\n focusedComponent={focusedComponent}\n sticky={sticky}\n resizable={resizableColumns}\n hidden={hidden}\n stripedRows={stripedRows}\n colIndex={colIndex}\n columnId={stickyColumnId ?? groupId}\n stickyState={stickyState}\n tableRole={tableRole}\n variant={variant}\n tableVariant={tableVariant}\n colSpan={colspan}\n rowSpan={rowspan}\n scope=\"colgroup\"\n isLast={isLast}\n columnGroupId={columnGroupId}\n className={boundaryClassName}\n boundaryRef={stickyBoundaryColumnId ? boundaryStyles.ref : undefined}\n >\n <div\n ref={clickableHeaderRef}\n data-focus-id={`group-header-${groupId}`}\n className={clsx(styles['header-cell-content'], {\n [styles['header-cell-fake-focus']]: focusedComponent === `group-header-${groupId}`,\n })}\n aria-label={group.ariaLabel?.({ sorted: false, descending: false, disabled: true })}\n tabIndex={clickableHeaderTabIndex}\n >\n <div className={clsx(styles['header-cell-text'], wrapLines && styles['header-cell-text-wrap'])} id={headerId}>\n {group.header}\n </div>\n </div>\n {resizableColumns ? (\n <Resizer\n tabIndex={tabIndex}\n focusId={`resize-group-${groupId}`}\n showFocusRing={focusedComponent === `resize-group-${groupId}`}\n onWidthUpdate={newWidth => updateGroupWidth(groupId, newWidth)}\n onWidthUpdateCommit={onResizeFinish}\n ariaLabelledby={headerId}\n minWidth={groupMinWidth}\n roleDescription={resizerRoleDescription}\n tooltipText={resizerTooltipText}\n isBorderless={variant === 'full-page' || variant === 'embedded' || variant === 'borderless'}\n isLast={isLast}\n dividerPosition={columnGroupId ? 'full' : 'bottom'}\n />\n ) : (\n <Divider position={columnGroupId ? 'full' : 'bottom'} />\n )}\n </TableThElement>\n );\n}\n"]}
@@ -1,37 +1,22 @@
1
- import React from 'react';
2
- import { ColumnWidthStyle } from '../column-widths-utils';
3
1
  import { TableProps } from '../interfaces';
4
- import { StickyColumnsModel } from '../sticky-columns';
5
- import { TableRole } from '../table-role';
6
- export interface TableHeaderCellProps<ItemType> {
7
- tabIndex: number;
2
+ import { BaseHeaderCellProps } from './common-props';
3
+ export interface TableHeaderCellProps<ItemType> extends BaseHeaderCellProps {
8
4
  column: TableProps.ColumnDefinition<ItemType>;
9
5
  activeSortingColumn?: TableProps.SortingColumn<ItemType>;
10
6
  sortingDescending?: boolean;
11
7
  sortingDisabled?: boolean;
12
- wrapLines?: boolean;
13
8
  stuck?: boolean;
14
- sticky?: boolean;
15
- hidden?: boolean;
16
- stripedRows?: boolean;
17
9
  onClick(detail: TableProps.SortingState<any>): void;
18
- onResizeFinish: () => void;
19
- colIndex: number;
20
10
  updateColumn: (columnId: PropertyKey, newWidth: number) => void;
21
- resizableColumns?: boolean;
22
- resizableStyle?: ColumnWidthStyle;
23
11
  isEditable?: boolean;
24
12
  columnId: PropertyKey;
25
- stickyState: StickyColumnsModel;
26
- cellRef: React.RefCallback<HTMLElement>;
27
- focusedComponent?: null | string;
28
- tableRole: TableRole;
29
- resizerRoleDescription?: string;
30
- resizerTooltipText?: string;
31
13
  isExpandable?: boolean;
32
14
  hasDynamicContent?: boolean;
33
- variant: TableProps.Variant;
34
- tableVariant?: TableProps.Variant;
15
+ colSpan?: number;
16
+ rowSpan?: number;
17
+ columnGroupId?: string;
18
+ isLastChildOfGroup?: boolean;
19
+ isLast?: boolean;
35
20
  }
36
21
  export declare function TableHeaderCell<ItemType>({
37
22
  tabIndex,
@@ -61,5 +46,10 @@ export declare function TableHeaderCell<ItemType>({
61
46
  isExpandable,
62
47
  hasDynamicContent,
63
48
  variant,
49
+ colSpan,
50
+ rowSpan,
51
+ columnGroupId,
52
+ isLastChildOfGroup,
53
+ isLast,
64
54
  tableVariant
65
55
  }: TableHeaderCellProps<ItemType>): JSX.Element;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/table/header-cell/index.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAiB,MAAM,OAAO,CAAC;AAWtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAO1C,MAAM,WAAW,oBAAoB,CAAC,QAAQ;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9C,mBAAmB,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACzD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACpD,cAAc,EAAE,MAAM,IAAI,CAAC;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,cAAc,CAAC,EAAE,gBAAgB,CAAC;IAClC,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC;IACtB,WAAW,EAAE,kBAAkB,CAAC;IAChC,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;IACxC,gBAAgB,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IACjC,SAAS,EAAE,SAAS,CAAC;IACrB,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;IAC5B,YAAY,CAAC,EAAE,UAAU,CAAC,OAAO,CAAC;CACnC;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,EACxC,QAAQ,EACR,MAAM,EACN,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,MAAM,EACN,WAAW,EACX,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,UAAU,EACV,QAAQ,EACR,WAAW,EACX,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACP,YAAY,GACb,EAAE,oBAAoB,CAAC,QAAQ,CAAC,eA0IhC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/table/header-cell/index.tsx"],"names":[],"mappings":"AAaA,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAOrD,MAAM,WAAW,oBAAoB,CAAC,QAAQ,CAAE,SAAQ,mBAAmB;IACzE,MAAM,EAAE,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC9C,mBAAmB,CAAC,EAAE,UAAU,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;IACzD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IACpD,YAAY,EAAE,CAAC,QAAQ,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAC;IAChE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,WAAW,CAAC;IACtB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAgB,eAAe,CAAC,QAAQ,EAAE,EACxC,QAAQ,EACR,MAAM,EACN,mBAAmB,EACnB,iBAAiB,EACjB,eAAe,EACf,SAAS,EACT,gBAAgB,EAChB,KAAK,EACL,MAAM,EACN,MAAM,EACN,WAAW,EACX,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,UAAU,EACV,QAAQ,EACR,WAAW,EACX,OAAO,EACP,SAAS,EACT,sBAAsB,EACtB,kBAAkB,EAClB,YAAY,EACZ,iBAAiB,EACjB,OAAO,EACP,OAAO,EACP,OAAO,EACP,aAAa,EACb,kBAAkB,EAClB,MAAM,EACN,YAAY,GACb,EAAE,oBAAoB,CAAC,QAAQ,CAAC,eAgJhC"}
@@ -13,7 +13,7 @@ import { TableThElement } from './th-element';
13
13
  import { getSortingIconName, getSortingStatus, isSorted } from './utils';
14
14
  import analyticsSelectors from '../analytics-metadata/styles.css.js';
15
15
  import styles from './styles.css.js';
16
- export function TableHeaderCell({ tabIndex, column, activeSortingColumn, sortingDescending, sortingDisabled, wrapLines, focusedComponent, stuck, sticky, hidden, stripedRows, onClick, colIndex, updateColumn, resizableColumns, resizableStyle, onResizeFinish, isEditable, columnId, stickyState, cellRef, tableRole, resizerRoleDescription, resizerTooltipText, isExpandable, hasDynamicContent, variant, tableVariant, }) {
16
+ export function TableHeaderCell({ tabIndex, column, activeSortingColumn, sortingDescending, sortingDisabled, wrapLines, focusedComponent, stuck, sticky, hidden, stripedRows, onClick, colIndex, updateColumn, resizableColumns, resizableStyle, onResizeFinish, isEditable, columnId, stickyState, cellRef, tableRole, resizerRoleDescription, resizerTooltipText, isExpandable, hasDynamicContent, variant, colSpan, rowSpan, columnGroupId, isLastChildOfGroup, isLast, tableVariant, }) {
17
17
  var _a;
18
18
  const i18n = useInternalI18n('table');
19
19
  const sortable = !!column.sortingComparator || !!column.sortingField;
@@ -46,7 +46,7 @@ export function TableHeaderCell({ tabIndex, column, activeSortingColumn, sorting
46
46
  useResizeObserver(hasDynamicContent ? cellRefObject : () => null, entry => {
47
47
  updateColumn(columnId, entry.borderBoxWidth);
48
48
  });
49
- return (React.createElement(TableThElement, { resizableStyle: resizableStyle, cellRef: cellRefCombined, sortingStatus: sortingStatus, sortingDisabled: sortingDisabled, focusedComponent: focusedComponent, stuck: stuck, sticky: sticky, resizable: resizableColumns, hidden: hidden, stripedRows: stripedRows, colIndex: colIndex, columnId: columnId, stickyState: stickyState, tableRole: tableRole, variant: variant, tableVariant: tableVariant, ...(sortingDisabled
49
+ return (React.createElement(TableThElement, { resizableStyle: resizableStyle, cellRef: cellRefCombined, sortingStatus: sortingStatus, sortingDisabled: sortingDisabled, focusedComponent: focusedComponent, stuck: stuck, sticky: sticky, resizable: resizableColumns, hidden: hidden, stripedRows: stripedRows, colIndex: colIndex, columnId: columnId, stickyState: stickyState, tableRole: tableRole, variant: variant, tableVariant: tableVariant, colSpan: colSpan, rowSpan: rowSpan, columnGroupId: columnGroupId, isLast: isLast, ...(sortingDisabled
50
50
  ? {}
51
51
  : getAnalyticsMetadataAttribute({
52
52
  action: 'sort',
@@ -83,6 +83,6 @@ export function TableHeaderCell({ tabIndex, column, activeSortingColumn, sorting
83
83
  resizableColumns ? (React.createElement(Resizer, { tabIndex: tabIndex, focusId: `resize-control-${String(columnId)}`, showFocusRing: focusedComponent === `resize-control-${String(columnId)}`, onWidthUpdate: newWidth => updateColumn(columnId, newWidth), onWidthUpdateCommit: onResizeFinish, ariaLabelledby: headerId, minWidth: typeof column.minWidth === 'string' ? parseInt(column.minWidth) : column.minWidth, roleDescription: i18n('ariaLabels.resizerRoleDescription', resizerRoleDescription),
84
84
  // TODO: Replace with this when strings are available
85
85
  // tooltipText={i18n('ariaLabels.resizerTooltipText', resizerTooltipText)}
86
- tooltipText: resizerTooltipText, isBorderless: variant === 'full-page' || variant === 'embedded' || variant === 'borderless' })) : (React.createElement(Divider, { className: styles['resize-divider'] }))));
86
+ tooltipText: resizerTooltipText, isBorderless: variant === 'full-page' || variant === 'embedded' || variant === 'borderless', isLast: isLast, dividerPosition: isLastChildOfGroup ? 'top' : undefined })) : (React.createElement(Divider, { className: styles['resize-divider'], position: isLastChildOfGroup ? 'top' : undefined }))));
87
87
  }
88
88
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/table/header-cell/index.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, { useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs, useResizeObserver, useUniqueId } from '@cloudscape-design/component-toolkit/internal';\nimport { useSingleTabStopNavigation } from '@cloudscape-design/component-toolkit/internal';\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { useInternalI18n } from '../../i18n/context';\nimport InternalIcon from '../../icon/internal';\nimport { KeyCode } from '../../internal/keycode';\nimport { GeneratedAnalyticsMetadataTableSort } from '../analytics-metadata/interfaces';\nimport { ColumnWidthStyle } from '../column-widths-utils';\nimport { TableProps } from '../interfaces';\nimport { Divider, Resizer } from '../resizer';\nimport { StickyColumnsModel } from '../sticky-columns';\nimport { TableRole } from '../table-role';\nimport { TableThElement } from './th-element';\nimport { getSortingIconName, getSortingStatus, isSorted } from './utils';\n\nimport analyticsSelectors from '../analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\nexport interface TableHeaderCellProps<ItemType> {\n tabIndex: number;\n column: TableProps.ColumnDefinition<ItemType>;\n activeSortingColumn?: TableProps.SortingColumn<ItemType>;\n sortingDescending?: boolean;\n sortingDisabled?: boolean;\n wrapLines?: boolean;\n stuck?: boolean;\n sticky?: boolean;\n hidden?: boolean;\n stripedRows?: boolean;\n onClick(detail: TableProps.SortingState<any>): void;\n onResizeFinish: () => void;\n colIndex: number;\n updateColumn: (columnId: PropertyKey, newWidth: number) => void;\n resizableColumns?: boolean;\n resizableStyle?: ColumnWidthStyle;\n isEditable?: boolean;\n columnId: PropertyKey;\n stickyState: StickyColumnsModel;\n cellRef: React.RefCallback<HTMLElement>;\n focusedComponent?: null | string;\n tableRole: TableRole;\n resizerRoleDescription?: string;\n resizerTooltipText?: string;\n isExpandable?: boolean;\n hasDynamicContent?: boolean;\n variant: TableProps.Variant;\n tableVariant?: TableProps.Variant;\n}\n\nexport function TableHeaderCell<ItemType>({\n tabIndex,\n column,\n activeSortingColumn,\n sortingDescending,\n sortingDisabled,\n wrapLines,\n focusedComponent,\n stuck,\n sticky,\n hidden,\n stripedRows,\n onClick,\n colIndex,\n updateColumn,\n resizableColumns,\n resizableStyle,\n onResizeFinish,\n isEditable,\n columnId,\n stickyState,\n cellRef,\n tableRole,\n resizerRoleDescription,\n resizerTooltipText,\n isExpandable,\n hasDynamicContent,\n variant,\n tableVariant,\n}: TableHeaderCellProps<ItemType>) {\n const i18n = useInternalI18n('table');\n const sortable = !!column.sortingComparator || !!column.sortingField;\n const sorted = !!activeSortingColumn && isSorted(column, activeSortingColumn);\n const sortingStatus = getSortingStatus(sortable, sorted, !!sortingDescending, !!sortingDisabled);\n const handleClick = () =>\n onClick({\n sortingColumn: column,\n isDescending: sorted ? !sortingDescending : false,\n });\n\n // Elements with role=\"button\" do not have the default behavior of <button>, where pressing\n // Enter or Space will trigger a click event. Therefore we need to add this ourselves.\n // The native <button> element cannot be used due to a misaligned implementation in Firefox:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=843003\n const handleKeyPress = ({ nativeEvent: e }: React.KeyboardEvent) => {\n if (e.keyCode === KeyCode.enter || e.keyCode === KeyCode.space) {\n e.preventDefault();\n handleClick();\n }\n };\n\n const headerId = useUniqueId('table-header-');\n\n const clickableHeaderRef = useRef<HTMLDivElement>(null);\n const { tabIndex: clickableHeaderTabIndex } = useSingleTabStopNavigation(clickableHeaderRef, { tabIndex });\n\n const cellRefObject = useRef<HTMLElement>(null);\n const cellRefCombined = useMergeRefs(cellRef, cellRefObject);\n\n // Keep sticky and non-sticky headers in sync for dynamic cell\n // content changes. This is only needed when:\n // - Column has dynamic content\n // - This is the non-sticky version of a sticky header (hidden === true)\n // - Columns are not resizable\n useResizeObserver(hasDynamicContent ? cellRefObject : () => null, entry => {\n updateColumn(columnId, entry.borderBoxWidth);\n });\n\n return (\n <TableThElement\n resizableStyle={resizableStyle}\n cellRef={cellRefCombined}\n sortingStatus={sortingStatus}\n sortingDisabled={sortingDisabled}\n focusedComponent={focusedComponent}\n stuck={stuck}\n sticky={sticky}\n resizable={resizableColumns}\n hidden={hidden}\n stripedRows={stripedRows}\n colIndex={colIndex}\n columnId={columnId}\n stickyState={stickyState}\n tableRole={tableRole}\n variant={variant}\n tableVariant={tableVariant}\n {...(sortingDisabled\n ? {}\n : getAnalyticsMetadataAttribute({\n action: 'sort',\n detail: {\n position: `${colIndex + 1}`,\n columnId: column.id ? `${column.id}` : '',\n label: `.${analyticsSelectors['header-cell-text']}`,\n sortingDescending: `${!sortingDescending}`,\n },\n } as GeneratedAnalyticsMetadataTableSort))}\n >\n <div\n ref={clickableHeaderRef}\n data-focus-id={`sorting-control-${String(columnId)}`}\n className={clsx(styles['header-cell-content'], {\n [styles['header-cell-fake-focus']]: focusedComponent === `sorting-control-${String(columnId)}`,\n [styles['header-cell-content-expandable']]: isExpandable,\n })}\n aria-label={\n column.ariaLabel\n ? column.ariaLabel({\n sorted: sorted,\n descending: sorted && !!sortingDescending,\n disabled: !!sortingDisabled,\n })\n : undefined\n }\n {...(sortingStatus && !sortingDisabled\n ? {\n onKeyPress: handleKeyPress,\n tabIndex: clickableHeaderTabIndex,\n role: 'button',\n onClick: handleClick,\n }\n : {})}\n >\n <div\n className={clsx(\n styles['header-cell-text'],\n analyticsSelectors['header-cell-text'],\n wrapLines && styles['header-cell-text-wrap']\n )}\n id={headerId}\n >\n {column.header}\n {isEditable ? (\n <span className={styles['edit-icon']}>\n <InternalIcon\n name=\"edit\"\n ariaLabel={i18n('columnDefinitions.editConfig.editIconAriaLabel', column.editConfig?.editIconAriaLabel)}\n />\n </span>\n ) : null}\n </div>\n {sortingStatus && (\n <span className={styles['sorting-icon']}>\n <InternalIcon name={getSortingIconName(sortingStatus)} />\n </span>\n )}\n </div>\n {resizableColumns ? (\n <Resizer\n tabIndex={tabIndex}\n focusId={`resize-control-${String(columnId)}`}\n showFocusRing={focusedComponent === `resize-control-${String(columnId)}`}\n onWidthUpdate={newWidth => updateColumn(columnId, newWidth)}\n onWidthUpdateCommit={onResizeFinish}\n ariaLabelledby={headerId}\n minWidth={typeof column.minWidth === 'string' ? parseInt(column.minWidth) : column.minWidth}\n roleDescription={i18n('ariaLabels.resizerRoleDescription', resizerRoleDescription)}\n // TODO: Replace with this when strings are available\n // tooltipText={i18n('ariaLabels.resizerTooltipText', resizerTooltipText)}\n tooltipText={resizerTooltipText}\n isBorderless={variant === 'full-page' || variant === 'embedded' || variant === 'borderless'}\n />\n ) : (\n <Divider className={styles['resize-divider']} />\n )}\n </TableThElement>\n );\n}\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/table/header-cell/index.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, { useRef } from 'react';\nimport clsx from 'clsx';\n\nimport { useMergeRefs, useResizeObserver, useUniqueId } from '@cloudscape-design/component-toolkit/internal';\nimport { useSingleTabStopNavigation } from '@cloudscape-design/component-toolkit/internal';\nimport { getAnalyticsMetadataAttribute } from '@cloudscape-design/component-toolkit/internal/analytics-metadata';\n\nimport { useInternalI18n } from '../../i18n/context';\nimport InternalIcon from '../../icon/internal';\nimport { KeyCode } from '../../internal/keycode';\nimport { GeneratedAnalyticsMetadataTableSort } from '../analytics-metadata/interfaces';\nimport { TableProps } from '../interfaces';\nimport { Divider, Resizer } from '../resizer';\nimport { BaseHeaderCellProps } from './common-props';\nimport { TableThElement } from './th-element';\nimport { getSortingIconName, getSortingStatus, isSorted } from './utils';\n\nimport analyticsSelectors from '../analytics-metadata/styles.css.js';\nimport styles from './styles.css.js';\n\nexport interface TableHeaderCellProps<ItemType> extends BaseHeaderCellProps {\n column: TableProps.ColumnDefinition<ItemType>;\n activeSortingColumn?: TableProps.SortingColumn<ItemType>;\n sortingDescending?: boolean;\n sortingDisabled?: boolean;\n stuck?: boolean;\n onClick(detail: TableProps.SortingState<any>): void;\n updateColumn: (columnId: PropertyKey, newWidth: number) => void;\n isEditable?: boolean;\n columnId: PropertyKey;\n isExpandable?: boolean;\n hasDynamicContent?: boolean;\n colSpan?: number;\n rowSpan?: number;\n columnGroupId?: string;\n isLastChildOfGroup?: boolean;\n isLast?: boolean;\n}\n\nexport function TableHeaderCell<ItemType>({\n tabIndex,\n column,\n activeSortingColumn,\n sortingDescending,\n sortingDisabled,\n wrapLines,\n focusedComponent,\n stuck,\n sticky,\n hidden,\n stripedRows,\n onClick,\n colIndex,\n updateColumn,\n resizableColumns,\n resizableStyle,\n onResizeFinish,\n isEditable,\n columnId,\n stickyState,\n cellRef,\n tableRole,\n resizerRoleDescription,\n resizerTooltipText,\n isExpandable,\n hasDynamicContent,\n variant,\n colSpan,\n rowSpan,\n columnGroupId,\n isLastChildOfGroup,\n isLast,\n tableVariant,\n}: TableHeaderCellProps<ItemType>) {\n const i18n = useInternalI18n('table');\n const sortable = !!column.sortingComparator || !!column.sortingField;\n const sorted = !!activeSortingColumn && isSorted(column, activeSortingColumn);\n const sortingStatus = getSortingStatus(sortable, sorted, !!sortingDescending, !!sortingDisabled);\n const handleClick = () =>\n onClick({\n sortingColumn: column,\n isDescending: sorted ? !sortingDescending : false,\n });\n\n // Elements with role=\"button\" do not have the default behavior of <button>, where pressing\n // Enter or Space will trigger a click event. Therefore we need to add this ourselves.\n // The native <button> element cannot be used due to a misaligned implementation in Firefox:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=843003\n const handleKeyPress = ({ nativeEvent: e }: React.KeyboardEvent) => {\n if (e.keyCode === KeyCode.enter || e.keyCode === KeyCode.space) {\n e.preventDefault();\n handleClick();\n }\n };\n\n const headerId = useUniqueId('table-header-');\n\n const clickableHeaderRef = useRef<HTMLDivElement>(null);\n const { tabIndex: clickableHeaderTabIndex } = useSingleTabStopNavigation(clickableHeaderRef, { tabIndex });\n\n const cellRefObject = useRef<HTMLElement>(null);\n const cellRefCombined = useMergeRefs(cellRef, cellRefObject);\n\n // Keep sticky and non-sticky headers in sync for dynamic cell\n // content changes. This is only needed when:\n // - Column has dynamic content\n // - This is the non-sticky version of a sticky header (hidden === true)\n // - Columns are not resizable\n useResizeObserver(hasDynamicContent ? cellRefObject : () => null, entry => {\n updateColumn(columnId, entry.borderBoxWidth);\n });\n\n return (\n <TableThElement\n resizableStyle={resizableStyle}\n cellRef={cellRefCombined}\n sortingStatus={sortingStatus}\n sortingDisabled={sortingDisabled}\n focusedComponent={focusedComponent}\n stuck={stuck}\n sticky={sticky}\n resizable={resizableColumns}\n hidden={hidden}\n stripedRows={stripedRows}\n colIndex={colIndex}\n columnId={columnId}\n stickyState={stickyState}\n tableRole={tableRole}\n variant={variant}\n tableVariant={tableVariant}\n colSpan={colSpan}\n rowSpan={rowSpan}\n columnGroupId={columnGroupId}\n isLast={isLast}\n {...(sortingDisabled\n ? {}\n : getAnalyticsMetadataAttribute({\n action: 'sort',\n detail: {\n position: `${colIndex + 1}`,\n columnId: column.id ? `${column.id}` : '',\n label: `.${analyticsSelectors['header-cell-text']}`,\n sortingDescending: `${!sortingDescending}`,\n },\n } as GeneratedAnalyticsMetadataTableSort))}\n >\n <div\n ref={clickableHeaderRef}\n data-focus-id={`sorting-control-${String(columnId)}`}\n className={clsx(styles['header-cell-content'], {\n [styles['header-cell-fake-focus']]: focusedComponent === `sorting-control-${String(columnId)}`,\n [styles['header-cell-content-expandable']]: isExpandable,\n })}\n aria-label={\n column.ariaLabel\n ? column.ariaLabel({\n sorted: sorted,\n descending: sorted && !!sortingDescending,\n disabled: !!sortingDisabled,\n })\n : undefined\n }\n {...(sortingStatus && !sortingDisabled\n ? {\n onKeyPress: handleKeyPress,\n tabIndex: clickableHeaderTabIndex,\n role: 'button',\n onClick: handleClick,\n }\n : {})}\n >\n <div\n className={clsx(\n styles['header-cell-text'],\n analyticsSelectors['header-cell-text'],\n wrapLines && styles['header-cell-text-wrap']\n )}\n id={headerId}\n >\n {column.header}\n {isEditable ? (\n <span className={styles['edit-icon']}>\n <InternalIcon\n name=\"edit\"\n ariaLabel={i18n('columnDefinitions.editConfig.editIconAriaLabel', column.editConfig?.editIconAriaLabel)}\n />\n </span>\n ) : null}\n </div>\n {sortingStatus && (\n <span className={styles['sorting-icon']}>\n <InternalIcon name={getSortingIconName(sortingStatus)} />\n </span>\n )}\n </div>\n {resizableColumns ? (\n <Resizer\n tabIndex={tabIndex}\n focusId={`resize-control-${String(columnId)}`}\n showFocusRing={focusedComponent === `resize-control-${String(columnId)}`}\n onWidthUpdate={newWidth => updateColumn(columnId, newWidth)}\n onWidthUpdateCommit={onResizeFinish}\n ariaLabelledby={headerId}\n minWidth={typeof column.minWidth === 'string' ? parseInt(column.minWidth) : column.minWidth}\n roleDescription={i18n('ariaLabels.resizerRoleDescription', resizerRoleDescription)}\n // TODO: Replace with this when strings are available\n // tooltipText={i18n('ariaLabels.resizerTooltipText', resizerTooltipText)}\n tooltipText={resizerTooltipText}\n isBorderless={variant === 'full-page' || variant === 'embedded' || variant === 'borderless'}\n isLast={isLast}\n dividerPosition={isLastChildOfGroup ? 'top' : undefined}\n />\n ) : (\n <Divider className={styles['resize-divider']} position={isLastChildOfGroup ? 'top' : undefined} />\n )}\n </TableThElement>\n );\n}\n"]}
@@ -1,35 +1,38 @@
1
1
 
2
2
  import './styles.scoped.css';
3
3
  export default {
4
- "header-cell": "awsui_header-cell_1spae_wii4_149",
5
- "header-cell-fake-focus": "awsui_header-cell-fake-focus_1spae_wii4_183",
6
- "header-cell-sticky": "awsui_header-cell-sticky_1spae_wii4_204",
7
- "header-cell-stuck": "awsui_header-cell-stuck_1spae_wii4_207",
8
- "header-cell-variant-full-page": "awsui_header-cell-variant-full-page_1spae_wii4_207",
9
- "header-cell-hidden": "awsui_header-cell-hidden_1spae_wii4_213",
10
- "header-cell-variant-embedded": "awsui_header-cell-variant-embedded_1spae_wii4_216",
11
- "is-visual-refresh": "awsui_is-visual-refresh_1spae_wii4_216",
12
- "sticky-cell": "awsui_sticky-cell_1spae_wii4_216",
13
- "header-cell-variant-borderless": "awsui_header-cell-variant-borderless_1spae_wii4_216",
14
- "header-cell-sortable": "awsui_header-cell-sortable_1spae_wii4_219",
15
- "table-variant-full-page": "awsui_table-variant-full-page_1spae_wii4_240",
16
- "sticky-cell-pad-left": "awsui_sticky-cell-pad-left_1spae_wii4_243",
17
- "has-selection": "awsui_has-selection_1spae_wii4_243",
18
- "sticky-cell-last-inline-start": "awsui_sticky-cell-last-inline-start_1spae_wii4_246",
19
- "resize-divider": "awsui_resize-divider_1spae_wii4_251",
20
- "sticky-cell-last-inline-end": "awsui_sticky-cell-last-inline-end_1spae_wii4_258",
21
- "sorting-icon": "awsui_sorting-icon_1spae_wii4_268",
22
- "edit-icon": "awsui_edit-icon_1spae_wii4_276",
23
- "header-cell-content": "awsui_header-cell-content_1spae_wii4_282",
24
- "header-cell-content-expandable": "awsui_header-cell-content-expandable_1spae_wii4_288",
25
- "header-cell-disabled": "awsui_header-cell-disabled_1spae_wii4_340",
26
- "header-cell-sorted": "awsui_header-cell-sorted_1spae_wii4_340",
27
- "header-cell-text": "awsui_header-cell-text_1spae_wii4_354",
28
- "header-cell-text-wrap": "awsui_header-cell-text-wrap_1spae_wii4_358",
29
- "header-cell-ascending": "awsui_header-cell-ascending_1spae_wii4_364",
30
- "header-cell-descending": "awsui_header-cell-descending_1spae_wii4_365",
31
- "has-striped-rows": "awsui_has-striped-rows_1spae_wii4_479",
32
- "sticky-cell-pad-inline-start": "awsui_sticky-cell-pad-inline-start_1spae_wii4_479",
33
- "header-cell-resizable": "awsui_header-cell-resizable_1spae_wii4_491"
4
+ "header-cell": "awsui_header-cell_1spae_ysd4g_149",
5
+ "header-cell-fake-focus": "awsui_header-cell-fake-focus_1spae_ysd4g_183",
6
+ "header-cell-group": "awsui_header-cell-group_1spae_ysd4g_204",
7
+ "header-cell-grouped": "awsui_header-cell-grouped_1spae_ysd4g_204",
8
+ "header-cell-spans-rows": "awsui_header-cell-spans-rows_1spae_ysd4g_204",
9
+ "header-cell-sticky": "awsui_header-cell-sticky_1spae_ysd4g_208",
10
+ "header-cell-stuck": "awsui_header-cell-stuck_1spae_ysd4g_211",
11
+ "header-cell-variant-full-page": "awsui_header-cell-variant-full-page_1spae_ysd4g_211",
12
+ "header-cell-hidden": "awsui_header-cell-hidden_1spae_ysd4g_217",
13
+ "header-cell-variant-embedded": "awsui_header-cell-variant-embedded_1spae_ysd4g_220",
14
+ "is-visual-refresh": "awsui_is-visual-refresh_1spae_ysd4g_220",
15
+ "sticky-cell": "awsui_sticky-cell_1spae_ysd4g_220",
16
+ "header-cell-variant-borderless": "awsui_header-cell-variant-borderless_1spae_ysd4g_220",
17
+ "header-cell-sortable": "awsui_header-cell-sortable_1spae_ysd4g_223",
18
+ "table-variant-full-page": "awsui_table-variant-full-page_1spae_ysd4g_244",
19
+ "sticky-cell-pad-left": "awsui_sticky-cell-pad-left_1spae_ysd4g_247",
20
+ "has-selection": "awsui_has-selection_1spae_ysd4g_247",
21
+ "sticky-cell-last-inline-start": "awsui_sticky-cell-last-inline-start_1spae_ysd4g_250",
22
+ "resize-divider": "awsui_resize-divider_1spae_ysd4g_255",
23
+ "sticky-cell-last-inline-end": "awsui_sticky-cell-last-inline-end_1spae_ysd4g_262",
24
+ "sorting-icon": "awsui_sorting-icon_1spae_ysd4g_272",
25
+ "edit-icon": "awsui_edit-icon_1spae_ysd4g_280",
26
+ "header-cell-content": "awsui_header-cell-content_1spae_ysd4g_286",
27
+ "header-cell-content-expandable": "awsui_header-cell-content-expandable_1spae_ysd4g_292",
28
+ "header-cell-disabled": "awsui_header-cell-disabled_1spae_ysd4g_347",
29
+ "header-cell-sorted": "awsui_header-cell-sorted_1spae_ysd4g_347",
30
+ "header-cell-text": "awsui_header-cell-text_1spae_ysd4g_378",
31
+ "header-cell-text-wrap": "awsui_header-cell-text-wrap_1spae_ysd4g_382",
32
+ "header-cell-ascending": "awsui_header-cell-ascending_1spae_ysd4g_388",
33
+ "header-cell-descending": "awsui_header-cell-descending_1spae_ysd4g_389",
34
+ "has-striped-rows": "awsui_has-striped-rows_1spae_ysd4g_503",
35
+ "sticky-cell-pad-inline-start": "awsui_sticky-cell-pad-inline-start_1spae_ysd4g_503",
36
+ "header-cell-resizable": "awsui_header-cell-resizable_1spae_ysd4g_515"
34
37
  };
35
38