@cloudscape-design/components-themeable 3.0.157 → 3.0.158

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 (88) hide show
  1. package/lib/internal/manifest.json +1 -1
  2. package/lib/internal/scss/select/parts/styles.scss +9 -0
  3. package/lib/internal/scss/table/body-cell/styles.scss +131 -29
  4. package/lib/internal/scss/table/header-cell/styles.scss +15 -7
  5. package/lib/internal/template/breadcrumb-group/internal.d.ts +1 -1
  6. package/lib/internal/template/breadcrumb-group/internal.d.ts.map +1 -1
  7. package/lib/internal/template/breadcrumb-group/internal.js.map +1 -1
  8. package/lib/internal/template/button/internal.d.ts +1 -0
  9. package/lib/internal/template/button/internal.d.ts.map +1 -1
  10. package/lib/internal/template/button/internal.js +2 -2
  11. package/lib/internal/template/button/internal.js.map +1 -1
  12. package/lib/internal/template/form-field/interfaces.d.ts +10 -0
  13. package/lib/internal/template/form-field/interfaces.d.ts.map +1 -1
  14. package/lib/internal/template/form-field/interfaces.js.map +1 -1
  15. package/lib/internal/template/form-field/internal.d.ts +1 -1
  16. package/lib/internal/template/form-field/internal.d.ts.map +1 -1
  17. package/lib/internal/template/form-field/internal.js +5 -4
  18. package/lib/internal/template/form-field/internal.js.map +1 -1
  19. package/lib/internal/template/input/internal.d.ts.map +1 -1
  20. package/lib/internal/template/input/internal.js +16 -4
  21. package/lib/internal/template/input/internal.js.map +1 -1
  22. package/lib/internal/template/internal/context/form-field-context.d.ts +6 -2
  23. package/lib/internal/template/internal/context/form-field-context.d.ts.map +1 -1
  24. package/lib/internal/template/internal/context/form-field-context.js +7 -1
  25. package/lib/internal/template/internal/context/form-field-context.js.map +1 -1
  26. package/lib/internal/template/internal/environment.js +1 -1
  27. package/lib/internal/template/internal/types.d.ts +9 -0
  28. package/lib/internal/template/internal/types.d.ts.map +1 -1
  29. package/lib/internal/template/internal/types.js +0 -2
  30. package/lib/internal/template/internal/types.js.map +1 -1
  31. package/lib/internal/template/select/parts/styles.css.js +9 -9
  32. package/lib/internal/template/select/parts/styles.scoped.css +27 -9
  33. package/lib/internal/template/select/parts/styles.selectors.js +9 -9
  34. package/lib/internal/template/table/body-cell/click-away.d.ts +9 -0
  35. package/lib/internal/template/table/body-cell/click-away.d.ts.map +1 -0
  36. package/lib/internal/template/table/body-cell/click-away.js +38 -0
  37. package/lib/internal/template/table/body-cell/click-away.js.map +1 -0
  38. package/lib/internal/template/table/body-cell/index.d.ts +11 -20
  39. package/lib/internal/template/table/body-cell/index.d.ts.map +1 -1
  40. package/lib/internal/template/table/body-cell/index.js +48 -9
  41. package/lib/internal/template/table/body-cell/index.js.map +1 -1
  42. package/lib/internal/template/table/body-cell/inline-editor.d.ts +12 -0
  43. package/lib/internal/template/table/body-cell/inline-editor.d.ts.map +1 -0
  44. package/lib/internal/template/table/body-cell/inline-editor.js +88 -0
  45. package/lib/internal/template/table/body-cell/inline-editor.js.map +1 -0
  46. package/lib/internal/template/table/body-cell/styles.css.js +18 -12
  47. package/lib/internal/template/table/body-cell/styles.scoped.css +229 -46
  48. package/lib/internal/template/table/body-cell/styles.selectors.js +18 -12
  49. package/lib/internal/template/table/body-cell/td-element.d.ts +21 -0
  50. package/lib/internal/template/table/body-cell/td-element.d.ts.map +1 -0
  51. package/lib/internal/template/table/body-cell/td-element.js +11 -0
  52. package/lib/internal/template/table/body-cell/td-element.js.map +1 -0
  53. package/lib/internal/template/table/body-cell/use-stable-scroll-position.d.ts +17 -0
  54. package/lib/internal/template/table/body-cell/use-stable-scroll-position.d.ts.map +1 -0
  55. package/lib/internal/template/table/body-cell/use-stable-scroll-position.js +48 -0
  56. package/lib/internal/template/table/body-cell/use-stable-scroll-position.js.map +1 -0
  57. package/lib/internal/template/table/header-cell/index.d.ts +8 -7
  58. package/lib/internal/template/table/header-cell/index.d.ts.map +1 -1
  59. package/lib/internal/template/table/header-cell/index.js +6 -2
  60. package/lib/internal/template/table/header-cell/index.js.map +1 -1
  61. package/lib/internal/template/table/header-cell/styles.css.js +19 -18
  62. package/lib/internal/template/table/header-cell/styles.scoped.css +40 -35
  63. package/lib/internal/template/table/header-cell/styles.selectors.js +19 -18
  64. package/lib/internal/template/table/header-cell/utils.d.ts +1 -1
  65. package/lib/internal/template/table/header-cell/utils.d.ts.map +1 -1
  66. package/lib/internal/template/table/interfaces.d.ts +85 -10
  67. package/lib/internal/template/table/interfaces.d.ts.map +1 -1
  68. package/lib/internal/template/table/interfaces.js.map +1 -1
  69. package/lib/internal/template/table/internal.d.ts.map +1 -1
  70. package/lib/internal/template/table/internal.js +68 -18
  71. package/lib/internal/template/table/internal.js.map +1 -1
  72. package/lib/internal/template/table/thead.d.ts.map +1 -1
  73. package/lib/internal/template/table/thead.js +1 -1
  74. package/lib/internal/template/table/thead.js.map +1 -1
  75. package/lib/internal/template/table/use-table-focus-navigation.d.ts +16 -0
  76. package/lib/internal/template/table/use-table-focus-navigation.d.ts.map +1 -0
  77. package/lib/internal/template/table/use-table-focus-navigation.js +131 -0
  78. package/lib/internal/template/table/use-table-focus-navigation.js.map +1 -0
  79. package/lib/internal/template/table/utils.d.ts +1 -1
  80. package/lib/internal/template/table/utils.d.ts.map +1 -1
  81. package/lib/internal/template/test-utils/dom/table/index.d.ts +4 -0
  82. package/lib/internal/template/test-utils/dom/table/index.js +21 -5
  83. package/lib/internal/template/test-utils/dom/table/index.js.map +1 -1
  84. package/lib/internal/template/test-utils/selectors/table/index.d.ts +4 -0
  85. package/lib/internal/template/test-utils/selectors/table/index.js +21 -5
  86. package/lib/internal/template/test-utils/selectors/table/index.js.map +1 -1
  87. package/lib/internal/template/test-utils/tsconfig.tsbuildinfo +1 -1
  88. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"thead.js","sourceRoot":"","sources":["../../../src/table/thead.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 clsx from 'clsx';\nimport React from 'react';\nimport { TableProps } from './interfaces';\nimport SelectionControl, { SelectionControlProps } from './selection-control';\nimport { focusMarkers } from './use-selection';\nimport { fireNonCancelableEvent, NonCancelableEventHandler } from '../internal/events';\nimport { getColumnKey } from './utils';\nimport { TableHeaderCell } from './header-cell';\nimport { useColumnWidths } from './use-column-widths';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport styles from './styles.css.js';\nimport headerCellStyles from './header-cell/styles.css.js';\nimport ScreenreaderOnly from '../internal/components/screenreader-only';\n\nexport interface TheadProps {\n containerWidth: number | null;\n selectionType: TableProps.SelectionType | undefined;\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<any>>;\n sortingColumn: TableProps.SortingColumn<any> | undefined;\n sortingDescending: boolean | undefined;\n sortingDisabled: boolean | undefined;\n variant: TableProps.Variant;\n wrapLines: boolean | undefined;\n resizableColumns: boolean | undefined;\n selectAllProps: SelectionControlProps;\n onFocusMove: ((sourceElement: HTMLElement, fromIndex: number, direction: -1 | 1) => void) | undefined;\n onCellFocus?: (colIndex: number) => void;\n onCellBlur?: () => void;\n onResizeFinish: (newWidths: Record<string, number>) => void;\n showFocusRing?: number | null;\n onSortingChange: NonCancelableEventHandler<TableProps.SortingState<any>> | undefined;\n sticky?: boolean;\n hidden?: boolean;\n stuck?: boolean;\n singleSelectionHeaderAriaLabel?: string;\n stripedRows?: boolean;\n}\n\nconst Thead = React.forwardRef(\n (\n {\n containerWidth,\n selectionType,\n selectAllProps,\n columnDefinitions,\n sortingColumn,\n sortingDisabled,\n sortingDescending,\n resizableColumns,\n variant,\n wrapLines,\n onFocusMove,\n onCellFocus,\n onCellBlur,\n onSortingChange,\n onResizeFinish,\n singleSelectionHeaderAriaLabel,\n stripedRows,\n showFocusRing = null,\n sticky = false,\n hidden = false,\n stuck = false,\n }: TheadProps,\n outerRef: React.Ref<HTMLTableRowElement>\n ) => {\n const isVisualRefresh = useVisualRefresh();\n\n const headerCellClass = clsx(\n headerCellStyles['header-cell'],\n headerCellStyles[`header-cell-variant-${variant}`],\n sticky && headerCellStyles['header-cell-sticky'],\n stuck && headerCellStyles['header-cell-stuck'],\n stripedRows && headerCellStyles['has-striped-rows'],\n isVisualRefresh && headerCellStyles['is-visual-refresh']\n );\n\n const selectionCellClass = clsx(\n styles['selection-control'],\n styles['selection-control-header'],\n isVisualRefresh && styles['is-visual-refresh']\n );\n\n const { columnWidths, totalWidth, updateColumn } = useColumnWidths();\n\n return (\n <thead className={clsx(!hidden && styles['thead-active'])}>\n <tr {...focusMarkers.all} ref={outerRef} aria-rowindex={1}>\n {selectionType === 'multi' && (\n <th\n className={clsx(headerCellClass, selectionCellClass, hidden && headerCellStyles['header-cell-hidden'])}\n scope=\"col\"\n >\n <SelectionControl\n onFocusDown={event => onFocusMove!(event.target as HTMLElement, -1, +1)}\n {...selectAllProps}\n {...(hidden ? { tabIndex: -1 } : {})}\n />\n </th>\n )}\n {selectionType === 'single' && (\n <th\n className={clsx(headerCellClass, selectionCellClass, hidden && headerCellStyles['header-cell-hidden'])}\n scope=\"col\"\n >\n <ScreenreaderOnly>{singleSelectionHeaderAriaLabel}</ScreenreaderOnly>\n </th>\n )}\n {columnDefinitions.map((column, colIndex) => {\n let widthOverride;\n if (resizableColumns) {\n if (columnWidths) {\n // use stateful value if available\n widthOverride = columnWidths[getColumnKey(column, colIndex)];\n }\n if (colIndex === columnDefinitions.length - 1 && containerWidth && containerWidth > totalWidth) {\n // let the last column grow and fill the container width\n widthOverride = 'auto';\n }\n }\n return (\n <TableHeaderCell\n key={getColumnKey(column, colIndex)}\n className={headerCellClass}\n style={{\n width: widthOverride || column.width,\n minWidth: sticky ? undefined : column.minWidth,\n maxWidth: resizableColumns || sticky ? undefined : column.maxWidth,\n }}\n tabIndex={sticky ? -1 : 0}\n showFocusRing={colIndex === showFocusRing}\n column={column}\n activeSortingColumn={sortingColumn}\n sortingDescending={sortingDescending}\n sortingDisabled={sortingDisabled}\n wrapLines={wrapLines}\n hidden={hidden}\n colIndex={colIndex}\n updateColumn={updateColumn}\n onResizeFinish={() => onResizeFinish(columnWidths)}\n resizableColumns={resizableColumns}\n onClick={detail => fireNonCancelableEvent(onSortingChange, detail)}\n onFocus={() => onCellFocus?.(colIndex)}\n onBlur={onCellBlur}\n />\n );\n })}\n </tr>\n </thead>\n );\n }\n);\n\nexport default Thead;\n"]}
1
+ {"version":3,"file":"thead.js","sourceRoot":"","sources":["../../../src/table/thead.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 clsx from 'clsx';\nimport React from 'react';\nimport { TableProps } from './interfaces';\nimport SelectionControl, { SelectionControlProps } from './selection-control';\nimport { focusMarkers } from './use-selection';\nimport { fireNonCancelableEvent, NonCancelableEventHandler } from '../internal/events';\nimport { getColumnKey } from './utils';\nimport { TableHeaderCell } from './header-cell';\nimport { useColumnWidths } from './use-column-widths';\nimport { useVisualRefresh } from '../internal/hooks/use-visual-mode';\nimport styles from './styles.css.js';\nimport headerCellStyles from './header-cell/styles.css.js';\nimport ScreenreaderOnly from '../internal/components/screenreader-only';\n\nexport interface TheadProps {\n containerWidth: number | null;\n selectionType: TableProps.SelectionType | undefined;\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<any>>;\n sortingColumn: TableProps.SortingColumn<any> | undefined;\n sortingDescending: boolean | undefined;\n sortingDisabled: boolean | undefined;\n variant: TableProps.Variant;\n wrapLines: boolean | undefined;\n resizableColumns: boolean | undefined;\n selectAllProps: SelectionControlProps;\n onFocusMove: ((sourceElement: HTMLElement, fromIndex: number, direction: -1 | 1) => void) | undefined;\n onCellFocus?: (colIndex: number) => void;\n onCellBlur?: () => void;\n onResizeFinish: (newWidths: Record<string, number>) => void;\n showFocusRing?: number | null;\n onSortingChange: NonCancelableEventHandler<TableProps.SortingState<any>> | undefined;\n sticky?: boolean;\n hidden?: boolean;\n stuck?: boolean;\n singleSelectionHeaderAriaLabel?: string;\n stripedRows?: boolean;\n}\n\nconst Thead = React.forwardRef(\n (\n {\n containerWidth,\n selectionType,\n selectAllProps,\n columnDefinitions,\n sortingColumn,\n sortingDisabled,\n sortingDescending,\n resizableColumns,\n variant,\n wrapLines,\n onFocusMove,\n onCellFocus,\n onCellBlur,\n onSortingChange,\n onResizeFinish,\n singleSelectionHeaderAriaLabel,\n stripedRows,\n showFocusRing = null,\n sticky = false,\n hidden = false,\n stuck = false,\n }: TheadProps,\n outerRef: React.Ref<HTMLTableRowElement>\n ) => {\n const isVisualRefresh = useVisualRefresh();\n\n const headerCellClass = clsx(\n headerCellStyles['header-cell'],\n headerCellStyles[`header-cell-variant-${variant}`],\n sticky && headerCellStyles['header-cell-sticky'],\n stuck && headerCellStyles['header-cell-stuck'],\n stripedRows && headerCellStyles['has-striped-rows'],\n isVisualRefresh && headerCellStyles['is-visual-refresh']\n );\n\n const selectionCellClass = clsx(\n styles['selection-control'],\n styles['selection-control-header'],\n isVisualRefresh && styles['is-visual-refresh']\n );\n\n const { columnWidths, totalWidth, updateColumn } = useColumnWidths();\n\n return (\n <thead className={clsx(!hidden && styles['thead-active'])}>\n <tr {...focusMarkers.all} ref={outerRef} aria-rowindex={1}>\n {selectionType === 'multi' && (\n <th\n className={clsx(headerCellClass, selectionCellClass, hidden && headerCellStyles['header-cell-hidden'])}\n scope=\"col\"\n >\n <SelectionControl\n onFocusDown={event => onFocusMove!(event.target as HTMLElement, -1, +1)}\n {...selectAllProps}\n {...(hidden ? { tabIndex: -1 } : {})}\n />\n </th>\n )}\n {selectionType === 'single' && (\n <th\n className={clsx(headerCellClass, selectionCellClass, hidden && headerCellStyles['header-cell-hidden'])}\n scope=\"col\"\n >\n <ScreenreaderOnly>{singleSelectionHeaderAriaLabel}</ScreenreaderOnly>\n </th>\n )}\n {columnDefinitions.map((column, colIndex) => {\n let widthOverride;\n if (resizableColumns) {\n if (columnWidths) {\n // use stateful value if available\n widthOverride = columnWidths[getColumnKey(column, colIndex)];\n }\n if (colIndex === columnDefinitions.length - 1 && containerWidth && containerWidth > totalWidth) {\n // let the last column grow and fill the container width\n widthOverride = 'auto';\n }\n }\n return (\n <TableHeaderCell\n key={getColumnKey(column, colIndex)}\n className={headerCellClass}\n style={{\n width: widthOverride || column.width,\n minWidth: sticky ? undefined : column.minWidth,\n maxWidth: resizableColumns || sticky ? undefined : column.maxWidth,\n }}\n tabIndex={sticky ? -1 : 0}\n showFocusRing={colIndex === showFocusRing}\n column={column}\n activeSortingColumn={sortingColumn}\n sortingDescending={sortingDescending}\n sortingDisabled={sortingDisabled}\n wrapLines={wrapLines}\n hidden={hidden}\n colIndex={colIndex}\n updateColumn={updateColumn}\n onResizeFinish={() => onResizeFinish(columnWidths)}\n resizableColumns={resizableColumns}\n onClick={detail => fireNonCancelableEvent(onSortingChange, detail)}\n onFocus={() => onCellFocus?.(colIndex)}\n onBlur={onCellBlur}\n isEditable={!!column.editConfig}\n />\n );\n })}\n </tr>\n </thead>\n );\n }\n);\n\nexport default Thead;\n"]}
@@ -0,0 +1,16 @@
1
+ import { RefObject } from 'react';
2
+ import { TableProps } from './interfaces';
3
+ /**
4
+ * This hook is used to navigate between table cells using the keyboard arrow keys.
5
+ * All the functionality is implemented in the hook, so the table component does not
6
+ * need to implement any keyboard event handlers.
7
+ * @param enable - Toggle functionality of the hook
8
+ * @param tableRoot - A ref to a table container. Ideally the root element of the table (<table>); tbody is also acceptable.
9
+ * @param columnDefinitions - The column definitions for the table.
10
+ * @param numRows - The number of rows in the table.
11
+ */
12
+ declare function useTableFocusNavigation<T extends {
13
+ editConfig?: TableProps.EditConfig<any>;
14
+ }>(selectionType: "none" | "single" | "multi" | undefined, tableRoot: RefObject<HTMLTableElement>, columnDefinitions: Readonly<T[]>, numRows: number): void;
15
+ export default useTableFocusNavigation;
16
+ //# sourceMappingURL=use-table-focus-navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-table-focus-navigation.d.ts","sourceRoot":"","sources":["../../../src/table/use-table-focus-navigation.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAA2C,MAAM,OAAO,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAa1C;;;;;;;;GAQG;AACH,iBAAS,uBAAuB,CAAC,CAAC,SAAS;IAAE,UAAU,CAAC,EAAE,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAA;CAAE,EACpF,aAAa,yCAAsC,EACnD,SAAS,EAAE,SAAS,CAAC,gBAAgB,CAAC,EACtC,iBAAiB,EAAE,QAAQ,CAAC,CAAC,EAAE,CAAC,EAChC,OAAO,EAAE,MAAM,QAqIhB;AAED,eAAe,uBAAuB,CAAC"}
@@ -0,0 +1,131 @@
1
+ // Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
2
+ // SPDX-License-Identifier: Apache-2.0
3
+ import { useCallback, useEffect, useMemo, useRef } from 'react';
4
+ function iterateTableCells(table, func) {
5
+ table.querySelectorAll('tr').forEach(function (row, rowIndex) {
6
+ row.querySelectorAll('td').forEach(function (cell, cellIndex) {
7
+ func(cell, rowIndex, cellIndex);
8
+ });
9
+ });
10
+ }
11
+ /**
12
+ * This hook is used to navigate between table cells using the keyboard arrow keys.
13
+ * All the functionality is implemented in the hook, so the table component does not
14
+ * need to implement any keyboard event handlers.
15
+ * @param enable - Toggle functionality of the hook
16
+ * @param tableRoot - A ref to a table container. Ideally the root element of the table (<table>); tbody is also acceptable.
17
+ * @param columnDefinitions - The column definitions for the table.
18
+ * @param numRows - The number of rows in the table.
19
+ */
20
+ function useTableFocusNavigation(selectionType, tableRoot, columnDefinitions, numRows) {
21
+ if (selectionType === void 0) { selectionType = 'none'; }
22
+ var currentFocusCell = useRef(null);
23
+ var focusableColumns = useMemo(function () {
24
+ var cols = columnDefinitions.map(function (column) { return !!column.editConfig; });
25
+ if (selectionType !== 'none') {
26
+ cols.unshift(false);
27
+ }
28
+ return cols;
29
+ }, [columnDefinitions, selectionType]);
30
+ var maxColumnIndex = useMemo(function () { return focusableColumns.length - 1; }, [focusableColumns]);
31
+ var minColumnIndex = useMemo(function () { return (selectionType !== 'none' ? 1 : 0); }, [selectionType]);
32
+ var focusCell = useCallback(function (rowIndex, columnIndex) {
33
+ if (tableRoot === null || tableRoot === void 0 ? void 0 : tableRoot.current) {
34
+ iterateTableCells(tableRoot.current, function (cell, rIndex, cIndex) {
35
+ var _a;
36
+ if (rIndex === rowIndex && cIndex === columnIndex) {
37
+ var editButton = cell.querySelector('button:last-child');
38
+ (_a = editButton === null || editButton === void 0 ? void 0 : editButton.focus) === null || _a === void 0 ? void 0 : _a.call(editButton, { preventScroll: true });
39
+ }
40
+ });
41
+ }
42
+ }, [tableRoot]);
43
+ var shiftFocus = useCallback(function (vertical, horizontal) {
44
+ // istanbul ignore if next
45
+ if (!currentFocusCell.current) {
46
+ return;
47
+ }
48
+ var _a = currentFocusCell.current.slice(), rowIndex = _a[0], columnIndex = _a[1];
49
+ var newRowIndex = rowIndex;
50
+ var newColumnIndex = columnIndex;
51
+ if (vertical !== 0) {
52
+ newRowIndex = Math.min(numRows, Math.max(rowIndex + vertical, 0));
53
+ }
54
+ if (horizontal !== 0) {
55
+ while (newColumnIndex <= maxColumnIndex && newColumnIndex >= minColumnIndex) {
56
+ newColumnIndex += horizontal;
57
+ if (focusableColumns[newColumnIndex]) {
58
+ break;
59
+ }
60
+ }
61
+ }
62
+ if ((rowIndex !== newRowIndex || columnIndex !== newColumnIndex) &&
63
+ currentFocusCell.current &&
64
+ tableRoot.current) {
65
+ focusCell(newRowIndex, newColumnIndex);
66
+ }
67
+ }, [focusCell, focusableColumns, maxColumnIndex, minColumnIndex, numRows, tableRoot]);
68
+ var handleArrowKeyEvents = useCallback(function (event) {
69
+ var _a, _b;
70
+ var abort = !!((_a = tableRoot.current) === null || _a === void 0 ? void 0 : _a.querySelector('[data-inline-editing-active = "true"]')) ||
71
+ !((_b = document.activeElement) === null || _b === void 0 ? void 0 : _b.closest('[data-inline-editing-active]'));
72
+ if (abort) {
73
+ return;
74
+ }
75
+ switch (event.key) {
76
+ case 'ArrowUp':
77
+ event.preventDefault();
78
+ shiftFocus(-1, 0);
79
+ break;
80
+ case 'ArrowDown':
81
+ event.preventDefault();
82
+ shiftFocus(1, 0);
83
+ break;
84
+ case 'ArrowLeft':
85
+ event.preventDefault();
86
+ shiftFocus(0, -1);
87
+ break;
88
+ case 'ArrowRight':
89
+ event.preventDefault();
90
+ shiftFocus(0, 1);
91
+ break;
92
+ // istanbul ignore next (default case = do nothing, not testable)
93
+ default:
94
+ return;
95
+ }
96
+ }, [shiftFocus, tableRoot]);
97
+ useEffect(function () {
98
+ var eventListeners = new Map();
99
+ // istanbul ignore if
100
+ if (!tableRoot.current) {
101
+ return;
102
+ }
103
+ var tableElement = tableRoot.current;
104
+ // istanbul ignore next (tested in use-focus-navigation.test.tsx#L210)
105
+ function cleanUpListeners() {
106
+ iterateTableCells(tableElement, function (cell, rowIndex, columnIndex) {
107
+ var listeners = eventListeners.get([rowIndex, columnIndex]);
108
+ if (listeners === null || listeners === void 0 ? void 0 : listeners.focusin) {
109
+ cell.removeEventListener('focusin', listeners.focusin);
110
+ }
111
+ });
112
+ tableElement.removeEventListener('keydown', handleArrowKeyEvents);
113
+ }
114
+ iterateTableCells(tableElement, function (cell, rowIndex, cellIndex) {
115
+ if (!focusableColumns[cellIndex]) {
116
+ return;
117
+ }
118
+ var listenerFns = {
119
+ focusin: function () {
120
+ currentFocusCell.current = [rowIndex, cellIndex];
121
+ }
122
+ };
123
+ eventListeners.set([rowIndex, cellIndex], listenerFns);
124
+ cell.addEventListener('focusin', listenerFns.focusin, { passive: true });
125
+ });
126
+ tableElement.addEventListener('keydown', handleArrowKeyEvents);
127
+ return function () { return tableElement && cleanUpListeners(); };
128
+ }, [focusableColumns, handleArrowKeyEvents, tableRoot]);
129
+ }
130
+ export default useTableFocusNavigation;
131
+ //# sourceMappingURL=use-table-focus-navigation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-table-focus-navigation.js","sourceRoot":"","sources":["../../../src/table/use-table-focus-navigation.ts"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AAEtC,OAAO,EAAa,WAAW,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAG3E,SAAS,iBAAiB,CACxB,KAAQ,EACR,IAAiF;IAEjF,KAAK,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAC,GAAwB,EAAE,QAAgB;QAC9E,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAC,IAAI,EAAE,SAAS;YACjD,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;;GAQG;AACH,SAAS,uBAAuB,CAC9B,aAAmD,EACnD,SAAsC,EACtC,iBAAgC,EAChC,OAAe;IAHf,8BAAA,EAAA,sBAAmD;IAKnD,IAAM,gBAAgB,GAAG,MAAM,CAA0B,IAAI,CAAC,CAAC;IAE/D,IAAM,gBAAgB,GAAG,OAAO,CAAC;QAC/B,IAAM,IAAI,GAAG,iBAAiB,CAAC,GAAG,CAAC,UAAA,MAAM,IAAI,OAAA,CAAC,CAAC,MAAM,CAAC,UAAU,EAAnB,CAAmB,CAAC,CAAC;QAClE,IAAI,aAAa,KAAK,MAAM,EAAE;YAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;SACrB;QACD,OAAO,IAAI,CAAC;IACd,CAAC,EAAE,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC,CAAC;IAEvC,IAAM,cAAc,GAAG,OAAO,CAAC,cAAM,OAAA,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAA3B,CAA2B,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC;IACtF,IAAM,cAAc,GAAG,OAAO,CAAC,cAAM,OAAA,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAlC,CAAkC,EAAE,CAAC,aAAa,CAAC,CAAC,CAAC;IAE1F,IAAM,SAAS,GAAG,WAAW,CAC3B,UAAC,QAAgB,EAAE,WAAmB;QACpC,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,EAAE;YACtB,iBAAiB,CAAC,SAAS,CAAC,OAAO,EAAE,UAAC,IAAI,EAAE,MAAM,EAAE,MAAM;;gBACxD,IAAI,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,WAAW,EAAE;oBACjD,IAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAA6B,CAAC;oBACvF,MAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,KAAK,2DAAG,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;iBAC9C;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEF,IAAM,UAAU,GAAG,WAAW,CAC5B,UAAC,QAAoB,EAAE,UAAsB;QAC3C,0BAA0B;QAC1B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE;YAC7B,OAAO;SACR;QACK,IAAA,KAA0B,gBAAgB,CAAC,OAAO,CAAC,KAAK,EAAE,EAAzD,QAAQ,QAAA,EAAE,WAAW,QAAoC,CAAC;QACjE,IAAI,WAAW,GAAG,QAAQ,CAAC;QAC3B,IAAI,cAAc,GAAG,WAAW,CAAC;QAEjC,IAAI,QAAQ,KAAK,CAAC,EAAE;YAClB,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,QAAQ,EAAE,CAAC,CAAC,CAAC,CAAC;SACnE;QAED,IAAI,UAAU,KAAK,CAAC,EAAE;YACpB,OAAO,cAAc,IAAI,cAAc,IAAI,cAAc,IAAI,cAAc,EAAE;gBAC3E,cAAc,IAAI,UAAU,CAAC;gBAC7B,IAAI,gBAAgB,CAAC,cAAc,CAAC,EAAE;oBACpC,MAAM;iBACP;aACF;SACF;QAED,IACE,CAAC,QAAQ,KAAK,WAAW,IAAI,WAAW,KAAK,cAAc,CAAC;YAC5D,gBAAgB,CAAC,OAAO;YACxB,SAAS,CAAC,OAAO,EACjB;YACA,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;SACxC;IACH,CAAC,EACD,CAAC,SAAS,EAAE,gBAAgB,EAAE,cAAc,EAAE,cAAc,EAAE,OAAO,EAAE,SAAS,CAAC,CAClF,CAAC;IAEF,IAAM,oBAAoB,GAAG,WAAW,CACtC,UAAC,KAAoB;;QACnB,IAAM,KAAK,GACT,CAAC,CAAC,CAAA,MAAA,SAAS,CAAC,OAAO,0CAAE,aAAa,CAAC,uCAAuC,CAAC,CAAA;YAC3E,CAAC,CAAA,MAAA,QAAQ,CAAC,aAAa,0CAAE,OAAO,CAAC,8BAA8B,CAAC,CAAA,CAAC;QAEnE,IAAI,KAAK,EAAE;YACT,OAAO;SACR;QACD,QAAQ,KAAK,CAAC,GAAG,EAAE;YACjB,KAAK,SAAS;gBACZ,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBAClB,MAAM;YACR,KAAK,WAAW;gBACd,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjB,MAAM;YACR,KAAK,WAAW;gBACd,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;gBAClB,MAAM;YACR,KAAK,YAAY;gBACf,KAAK,CAAC,cAAc,EAAE,CAAC;gBACvB,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;gBACjB,MAAM;YACR,iEAAiE;YACjE;gBACE,OAAO;SACV;IACH,CAAC,EACD,CAAC,UAAU,EAAE,SAAS,CAAC,CACxB,CAAC;IAEF,SAAS,CAAC;QACR,IAAM,cAAc,GAAG,IAAI,GAAG,EAAiD,CAAC;QAChF,qBAAqB;QACrB,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE;YACtB,OAAO;SACR;QAED,IAAM,YAAY,GAAG,SAAS,CAAC,OAAO,CAAC;QAEvC,sEAAsE;QACtE,SAAS,gBAAgB;YACvB,iBAAiB,CAAC,YAAY,EAAE,UAAC,IAAI,EAAE,QAAQ,EAAE,WAAW;gBAC1D,IAAM,SAAS,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC,CAAC;gBAC9D,IAAI,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,OAAO,EAAE;oBACtB,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;iBACxD;YACH,CAAC,CAAC,CAAC;YACH,YAAY,CAAC,mBAAmB,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QACpE,CAAC;QAED,iBAAiB,CAAC,YAAY,EAAE,UAAC,IAAI,EAAE,QAAQ,EAAE,SAAS;YACxD,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAE;gBAChC,OAAO;aACR;YACD,IAAM,WAAW,GAAG;gBAClB,OAAO,EAAE;oBACP,gBAAgB,CAAC,OAAO,GAAG,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;gBACnD,CAAC;aACF,CAAC;YACF,cAAc,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,CAAC;YACvD,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,WAAW,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAC3E,CAAC,CAAC,CAAC;QACH,YAAY,CAAC,gBAAgB,CAAC,SAAS,EAAE,oBAAoB,CAAC,CAAC;QAE/D,OAAO,cAAM,OAAA,YAAY,IAAI,gBAAgB,EAAE,EAAlC,CAAkC,CAAC;IAClD,CAAC,EAAE,CAAC,gBAAgB,EAAE,oBAAoB,EAAE,SAAS,CAAC,CAAC,CAAC;AAC1D,CAAC;AAED,eAAe,uBAAuB,CAAC","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { RefObject, useCallback, useEffect, useMemo, useRef } from 'react';\nimport { TableProps } from './interfaces';\n\nfunction iterateTableCells<T extends HTMLElement>(\n table: T,\n func: (cell: HTMLTableCellElement, rowIndex: number, columnIndex: number) => void\n) {\n table.querySelectorAll('tr').forEach((row: HTMLTableRowElement, rowIndex: number) => {\n row.querySelectorAll('td').forEach((cell, cellIndex) => {\n func(cell, rowIndex, cellIndex);\n });\n });\n}\n\n/**\n * This hook is used to navigate between table cells using the keyboard arrow keys.\n * All the functionality is implemented in the hook, so the table component does not\n * need to implement any keyboard event handlers.\n * @param enable - Toggle functionality of the hook\n * @param tableRoot - A ref to a table container. Ideally the root element of the table (<table>); tbody is also acceptable.\n * @param columnDefinitions - The column definitions for the table.\n * @param numRows - The number of rows in the table.\n */\nfunction useTableFocusNavigation<T extends { editConfig?: TableProps.EditConfig<any> }>(\n selectionType: 'single' | 'multi' | 'none' = 'none',\n tableRoot: RefObject<HTMLTableElement>,\n columnDefinitions: Readonly<T[]>,\n numRows: number\n) {\n const currentFocusCell = useRef<[number, number] | null>(null);\n\n const focusableColumns = useMemo(() => {\n const cols = columnDefinitions.map(column => !!column.editConfig);\n if (selectionType !== 'none') {\n cols.unshift(false);\n }\n return cols;\n }, [columnDefinitions, selectionType]);\n\n const maxColumnIndex = useMemo(() => focusableColumns.length - 1, [focusableColumns]);\n const minColumnIndex = useMemo(() => (selectionType !== 'none' ? 1 : 0), [selectionType]);\n\n const focusCell = useCallback(\n (rowIndex: number, columnIndex: number) => {\n if (tableRoot?.current) {\n iterateTableCells(tableRoot.current, (cell, rIndex, cIndex) => {\n if (rIndex === rowIndex && cIndex === columnIndex) {\n const editButton = cell.querySelector('button:last-child') as HTMLButtonElement | null;\n editButton?.focus?.({ preventScroll: true });\n }\n });\n }\n },\n [tableRoot]\n );\n\n const shiftFocus = useCallback(\n (vertical: -1 | 0 | 1, horizontal: -1 | 0 | 1) => {\n // istanbul ignore if next\n if (!currentFocusCell.current) {\n return;\n }\n const [rowIndex, columnIndex] = currentFocusCell.current.slice();\n let newRowIndex = rowIndex;\n let newColumnIndex = columnIndex;\n\n if (vertical !== 0) {\n newRowIndex = Math.min(numRows, Math.max(rowIndex + vertical, 0));\n }\n\n if (horizontal !== 0) {\n while (newColumnIndex <= maxColumnIndex && newColumnIndex >= minColumnIndex) {\n newColumnIndex += horizontal;\n if (focusableColumns[newColumnIndex]) {\n break;\n }\n }\n }\n\n if (\n (rowIndex !== newRowIndex || columnIndex !== newColumnIndex) &&\n currentFocusCell.current &&\n tableRoot.current\n ) {\n focusCell(newRowIndex, newColumnIndex);\n }\n },\n [focusCell, focusableColumns, maxColumnIndex, minColumnIndex, numRows, tableRoot]\n );\n\n const handleArrowKeyEvents = useCallback(\n (event: KeyboardEvent) => {\n const abort =\n !!tableRoot.current?.querySelector('[data-inline-editing-active = \"true\"]') ||\n !document.activeElement?.closest('[data-inline-editing-active]');\n\n if (abort) {\n return;\n }\n switch (event.key) {\n case 'ArrowUp':\n event.preventDefault();\n shiftFocus(-1, 0);\n break;\n case 'ArrowDown':\n event.preventDefault();\n shiftFocus(1, 0);\n break;\n case 'ArrowLeft':\n event.preventDefault();\n shiftFocus(0, -1);\n break;\n case 'ArrowRight':\n event.preventDefault();\n shiftFocus(0, 1);\n break;\n // istanbul ignore next (default case = do nothing, not testable)\n default:\n return;\n }\n },\n [shiftFocus, tableRoot]\n );\n\n useEffect(() => {\n const eventListeners = new Map<[number, number], { focusin(evt: any): void }>();\n // istanbul ignore if\n if (!tableRoot.current) {\n return;\n }\n\n const tableElement = tableRoot.current;\n\n // istanbul ignore next (tested in use-focus-navigation.test.tsx#L210)\n function cleanUpListeners() {\n iterateTableCells(tableElement, (cell, rowIndex, columnIndex) => {\n const listeners = eventListeners.get([rowIndex, columnIndex]);\n if (listeners?.focusin) {\n cell.removeEventListener('focusin', listeners.focusin);\n }\n });\n tableElement.removeEventListener('keydown', handleArrowKeyEvents);\n }\n\n iterateTableCells(tableElement, (cell, rowIndex, cellIndex) => {\n if (!focusableColumns[cellIndex]) {\n return;\n }\n const listenerFns = {\n focusin: () => {\n currentFocusCell.current = [rowIndex, cellIndex];\n },\n };\n eventListeners.set([rowIndex, cellIndex], listenerFns);\n cell.addEventListener('focusin', listenerFns.focusin, { passive: true });\n });\n tableElement.addEventListener('keydown', handleArrowKeyEvents);\n\n return () => tableElement && cleanUpListeners();\n }, [focusableColumns, handleArrowKeyEvents, tableRoot]);\n}\n\nexport default useTableFocusNavigation;\n"]}
@@ -3,7 +3,7 @@ import { TableProps } from './interfaces';
3
3
  export declare const applyTrackBy: <T>(trackBy: TableProps.TrackBy<T>, item: T) => any;
4
4
  export declare const getItemKey: <T>(trackBy: TableProps.TrackBy<T> | undefined, item: T, index: number) => any;
5
5
  export declare const getTrackableValue: <T>(trackBy: TableProps.TrackBy<T> | undefined, item: T) => any;
6
- export declare const getColumnKey: <T>(column: TableProps.ColumnDefinition<T>, index: number) => string | number;
6
+ export declare const getColumnKey: <T>(column: TableProps.ColumnDefinition<T, any>, index: number) => string | number;
7
7
  export declare const toContainerVariant: (variant: TableProps.Variant | undefined) => InternalContainerProps['variant'];
8
8
  export declare function checkSortingState<T>(columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<T>>, sortingComparator: TableProps.SortingColumn<T>['sortingComparator']): void;
9
9
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/table/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,eAAO,MAAM,YAAY,qDAKxB,CAAC;AAEF,eAAO,MAAM,UAAU,kEAAmE,MAAM,QAK/F,CAAC;AAEF,eAAO,MAAM,iBAAiB,iEAK7B,CAAC;AAEF,eAAO,MAAM,YAAY,qDAAsD,MAAM,oBAEpF,CAAC;AAEF,eAAO,MAAM,kBAAkB,YAAa,WAAW,OAAO,GAAG,SAAS,KAAG,sBAAsB,CAAC,SAAS,CAG5G,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,iBAAiB,EAAE,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAChE,iBAAiB,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,QASpE"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/table/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,eAAO,MAAM,YAAY,qDAKxB,CAAC;AAEF,eAAO,MAAM,UAAU,kEAAmE,MAAM,QAK/F,CAAC;AAEF,eAAO,MAAM,iBAAiB,iEAK7B,CAAC;AAEF,eAAO,MAAM,YAAY,0DAAsD,MAAM,oBAEpF,CAAC;AAEF,eAAO,MAAM,kBAAkB,YAAa,WAAW,OAAO,GAAG,SAAS,KAAG,sBAAsB,CAAC,SAAS,CAG5G,CAAC;AAEF,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,iBAAiB,EAAE,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAChE,iBAAiB,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,mBAAmB,CAAC,QASpE"}
@@ -56,4 +56,8 @@ export default class TableWrapper extends ComponentWrapper {
56
56
  findTextFilter(): TextFilterWrapper | null;
57
57
  findCollectionPreferences(): CollectionPreferencesWrapper | null;
58
58
  findPagination(): PaginationWrapper | null;
59
+ findEditingCell(): ElementWrapper | null;
60
+ private _findEditingCellControls;
61
+ findEditingCellSaveButton(): ElementWrapper | null;
62
+ findEditingCellCancelButton(): ElementWrapper | null;
59
63
  }
@@ -20,8 +20,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
20
20
  var dom_1 = require("@cloudscape-design/test-utils-core/dom");
21
21
  var styles_selectors_js_1 = require("../../../table/styles.selectors.js");
22
22
  var styles_selectors_js_2 = require("../../../table/header-cell/styles.selectors.js");
23
- var styles_selectors_js_3 = require("../../../table/selection-control/styles.selectors.js");
24
- var styles_selectors_js_4 = require("../../../table/resizer/styles.selectors.js");
23
+ var styles_selectors_js_3 = require("../../../table/body-cell/styles.selectors.js");
24
+ var styles_selectors_js_4 = require("../../../table/selection-control/styles.selectors.js");
25
+ var styles_selectors_js_5 = require("../../../table/resizer/styles.selectors.js");
25
26
  var collection_preferences_1 = require("../collection-preferences");
26
27
  var container_1 = require("../container");
27
28
  var pagination_1 = require("../pagination");
@@ -61,7 +62,7 @@ var TableWrapper = /** @class */ (function (_super) {
61
62
  * @param columnIndex 1-based index of the column containing the resizer.
62
63
  */
63
64
  TableWrapper.prototype.findColumnResizer = function (columnIndex) {
64
- return this.findActiveTHead().find("th:nth-child(".concat(columnIndex, ") .").concat(styles_selectors_js_4.default.resizer));
65
+ return this.findActiveTHead().find("th:nth-child(".concat(columnIndex, ") .").concat(styles_selectors_js_5.default.resizer));
65
66
  };
66
67
  /**
67
68
  * Returns a table cell based on given row and column indices.
@@ -112,10 +113,10 @@ var TableWrapper = /** @class */ (function (_super) {
112
113
  * @param rowIndex 1-based index of the row selection area to return.
113
114
  */
114
115
  TableWrapper.prototype.findRowSelectionArea = function (rowIndex) {
115
- return this.findNativeTable().find("tbody tr:nth-child(".concat(rowIndex, ") .").concat(styles_selectors_js_3.default.root));
116
+ return this.findNativeTable().find("tbody tr:nth-child(".concat(rowIndex, ") .").concat(styles_selectors_js_4.default.root));
116
117
  };
117
118
  TableWrapper.prototype.findSelectAllTrigger = function () {
118
- return this.findActiveTHead().find(".".concat(styles_selectors_js_3.default.root));
119
+ return this.findActiveTHead().find(".".concat(styles_selectors_js_4.default.root));
119
120
  };
120
121
  TableWrapper.prototype.findTextFilter = function () {
121
122
  return this.findComponent(".".concat(styles_selectors_js_1.default['tools-filtering']), text_filter_1.default);
@@ -131,6 +132,21 @@ var TableWrapper = /** @class */ (function (_super) {
131
132
  TableWrapper.prototype.findPagination = function () {
132
133
  return this.findComponent(".".concat(styles_selectors_js_1.default['tools-pagination']), pagination_1.default);
133
134
  };
135
+ TableWrapper.prototype.findEditingCell = function () {
136
+ return this.findNativeTable().findByClassName(styles_selectors_js_3.default['body-cell-edit-active']);
137
+ };
138
+ TableWrapper.prototype._findEditingCellControls = function () {
139
+ var _a, _b;
140
+ return (_b = (_a = this.findEditingCell()) === null || _a === void 0 ? void 0 : _a.findByClassName(styles_selectors_js_3.default['body-cell-editor-controls'])) !== null && _b !== void 0 ? _b : null;
141
+ };
142
+ TableWrapper.prototype.findEditingCellSaveButton = function () {
143
+ var _a, _b;
144
+ return (_b = (_a = this._findEditingCellControls()) === null || _a === void 0 ? void 0 : _a.find('button[type="submit"]')) !== null && _b !== void 0 ? _b : null;
145
+ };
146
+ TableWrapper.prototype.findEditingCellCancelButton = function () {
147
+ var _a, _b;
148
+ return (_b = (_a = this._findEditingCellControls()) === null || _a === void 0 ? void 0 : _a.find('button:first-child')) !== null && _b !== void 0 ? _b : null;
149
+ };
134
150
  TableWrapper.rootSelector = styles_selectors_js_1.default.root;
135
151
  return TableWrapper;
136
152
  }(dom_1.ComponentWrapper));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/dom/table/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/dom/table/index.ts"],"names":[],"mappings":"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"}
@@ -56,4 +56,8 @@ export default class TableWrapper extends ComponentWrapper {
56
56
  findTextFilter(): TextFilterWrapper;
57
57
  findCollectionPreferences(): CollectionPreferencesWrapper;
58
58
  findPagination(): PaginationWrapper;
59
+ findEditingCell(): ElementWrapper;
60
+ private _findEditingCellControls;
61
+ findEditingCellSaveButton(): ElementWrapper;
62
+ findEditingCellCancelButton(): ElementWrapper;
59
63
  }
@@ -20,8 +20,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
20
20
  var selectors_1 = require("@cloudscape-design/test-utils-core/selectors");
21
21
  var styles_selectors_js_1 = require("../../../table/styles.selectors.js");
22
22
  var styles_selectors_js_2 = require("../../../table/header-cell/styles.selectors.js");
23
- var styles_selectors_js_3 = require("../../../table/selection-control/styles.selectors.js");
24
- var styles_selectors_js_4 = require("../../../table/resizer/styles.selectors.js");
23
+ var styles_selectors_js_3 = require("../../../table/body-cell/styles.selectors.js");
24
+ var styles_selectors_js_4 = require("../../../table/selection-control/styles.selectors.js");
25
+ var styles_selectors_js_5 = require("../../../table/resizer/styles.selectors.js");
25
26
  var collection_preferences_1 = require("../collection-preferences");
26
27
  var container_1 = require("../container");
27
28
  var pagination_1 = require("../pagination");
@@ -61,7 +62,7 @@ var TableWrapper = /** @class */ (function (_super) {
61
62
  * @param columnIndex 1-based index of the column containing the resizer.
62
63
  */
63
64
  TableWrapper.prototype.findColumnResizer = function (columnIndex) {
64
- return this.findActiveTHead().find("th:nth-child(".concat(columnIndex, ") .").concat(styles_selectors_js_4.default.resizer));
65
+ return this.findActiveTHead().find("th:nth-child(".concat(columnIndex, ") .").concat(styles_selectors_js_5.default.resizer));
65
66
  };
66
67
  /**
67
68
  * Returns a table cell based on given row and column indices.
@@ -112,10 +113,10 @@ var TableWrapper = /** @class */ (function (_super) {
112
113
  * @param rowIndex 1-based index of the row selection area to return.
113
114
  */
114
115
  TableWrapper.prototype.findRowSelectionArea = function (rowIndex) {
115
- return this.findNativeTable().find("tbody tr:nth-child(".concat(rowIndex, ") .").concat(styles_selectors_js_3.default.root));
116
+ return this.findNativeTable().find("tbody tr:nth-child(".concat(rowIndex, ") .").concat(styles_selectors_js_4.default.root));
116
117
  };
117
118
  TableWrapper.prototype.findSelectAllTrigger = function () {
118
- return this.findActiveTHead().find(".".concat(styles_selectors_js_3.default.root));
119
+ return this.findActiveTHead().find(".".concat(styles_selectors_js_4.default.root));
119
120
  };
120
121
  TableWrapper.prototype.findTextFilter = function () {
121
122
  return this.findComponent(".".concat(styles_selectors_js_1.default['tools-filtering']), text_filter_1.default);
@@ -131,6 +132,21 @@ var TableWrapper = /** @class */ (function (_super) {
131
132
  TableWrapper.prototype.findPagination = function () {
132
133
  return this.findComponent(".".concat(styles_selectors_js_1.default['tools-pagination']), pagination_1.default);
133
134
  };
135
+ TableWrapper.prototype.findEditingCell = function () {
136
+ return this.findNativeTable().findByClassName(styles_selectors_js_3.default['body-cell-edit-active']);
137
+ };
138
+ TableWrapper.prototype._findEditingCellControls = function () {
139
+ var _a, _b;
140
+ return (_b = (_a = this.findEditingCell()) === null || _a === void 0 ? void 0 : _a.findByClassName(styles_selectors_js_3.default['body-cell-editor-controls'])) !== null && _b !== void 0 ? _b : null;
141
+ };
142
+ TableWrapper.prototype.findEditingCellSaveButton = function () {
143
+ var _a, _b;
144
+ return (_b = (_a = this._findEditingCellControls()) === null || _a === void 0 ? void 0 : _a.find('button[type="submit"]')) !== null && _b !== void 0 ? _b : null;
145
+ };
146
+ TableWrapper.prototype.findEditingCellCancelButton = function () {
147
+ var _a, _b;
148
+ return (_b = (_a = this._findEditingCellControls()) === null || _a === void 0 ? void 0 : _a.find('button:first-child')) !== null && _b !== void 0 ? _b : null;
149
+ };
134
150
  TableWrapper.rootSelector = styles_selectors_js_1.default.root;
135
151
  return TableWrapper;
136
152
  }(selectors_1.ComponentWrapper));
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/table/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/table/index.ts"],"names":[],"mappings":"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"}