@cloudscape-design/components-themeable 3.0.156 → 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.
- package/lib/internal/manifest.json +1 -1
- package/lib/internal/scss/select/parts/styles.scss +9 -0
- package/lib/internal/scss/table/body-cell/styles.scss +131 -29
- package/lib/internal/scss/table/header-cell/styles.scss +15 -7
- package/lib/internal/template/breadcrumb-group/internal.d.ts +1 -1
- package/lib/internal/template/breadcrumb-group/internal.d.ts.map +1 -1
- package/lib/internal/template/breadcrumb-group/internal.js.map +1 -1
- package/lib/internal/template/button/internal.d.ts +1 -0
- package/lib/internal/template/button/internal.d.ts.map +1 -1
- package/lib/internal/template/button/internal.js +2 -2
- package/lib/internal/template/button/internal.js.map +1 -1
- package/lib/internal/template/form-field/interfaces.d.ts +10 -0
- package/lib/internal/template/form-field/interfaces.d.ts.map +1 -1
- package/lib/internal/template/form-field/interfaces.js.map +1 -1
- package/lib/internal/template/form-field/internal.d.ts +1 -1
- package/lib/internal/template/form-field/internal.d.ts.map +1 -1
- package/lib/internal/template/form-field/internal.js +5 -4
- package/lib/internal/template/form-field/internal.js.map +1 -1
- package/lib/internal/template/input/internal.d.ts.map +1 -1
- package/lib/internal/template/input/internal.js +16 -4
- package/lib/internal/template/input/internal.js.map +1 -1
- package/lib/internal/template/internal/components/button-trigger/index.d.ts +1 -0
- package/lib/internal/template/internal/components/button-trigger/index.d.ts.map +1 -1
- package/lib/internal/template/internal/components/button-trigger/index.js +2 -2
- package/lib/internal/template/internal/components/button-trigger/index.js.map +1 -1
- package/lib/internal/template/internal/context/form-field-context.d.ts +6 -2
- package/lib/internal/template/internal/context/form-field-context.d.ts.map +1 -1
- package/lib/internal/template/internal/context/form-field-context.js +7 -1
- package/lib/internal/template/internal/context/form-field-context.js.map +1 -1
- package/lib/internal/template/internal/environment.js +1 -1
- package/lib/internal/template/internal/types.d.ts +9 -0
- package/lib/internal/template/internal/types.d.ts.map +1 -1
- package/lib/internal/template/internal/types.js +0 -2
- package/lib/internal/template/internal/types.js.map +1 -1
- package/lib/internal/template/multiselect/interfaces.d.ts +4 -0
- package/lib/internal/template/multiselect/interfaces.d.ts.map +1 -1
- package/lib/internal/template/multiselect/interfaces.js.map +1 -1
- package/lib/internal/template/multiselect/internal.d.ts.map +1 -1
- package/lib/internal/template/multiselect/internal.js +2 -2
- package/lib/internal/template/multiselect/internal.js.map +1 -1
- package/lib/internal/template/select/interfaces.d.ts +4 -0
- package/lib/internal/template/select/interfaces.d.ts.map +1 -1
- package/lib/internal/template/select/interfaces.js.map +1 -1
- package/lib/internal/template/select/internal.d.ts +1 -1
- package/lib/internal/template/select/internal.d.ts.map +1 -1
- package/lib/internal/template/select/internal.js +2 -2
- package/lib/internal/template/select/internal.js.map +1 -1
- package/lib/internal/template/select/parts/styles.css.js +9 -9
- package/lib/internal/template/select/parts/styles.scoped.css +27 -9
- package/lib/internal/template/select/parts/styles.selectors.js +9 -9
- package/lib/internal/template/select/utils/use-select.d.ts +2 -1
- package/lib/internal/template/select/utils/use-select.d.ts.map +1 -1
- package/lib/internal/template/select/utils/use-select.js +4 -2
- package/lib/internal/template/select/utils/use-select.js.map +1 -1
- package/lib/internal/template/table/body-cell/click-away.d.ts +9 -0
- package/lib/internal/template/table/body-cell/click-away.d.ts.map +1 -0
- package/lib/internal/template/table/body-cell/click-away.js +38 -0
- package/lib/internal/template/table/body-cell/click-away.js.map +1 -0
- package/lib/internal/template/table/body-cell/index.d.ts +11 -20
- package/lib/internal/template/table/body-cell/index.d.ts.map +1 -1
- package/lib/internal/template/table/body-cell/index.js +48 -9
- package/lib/internal/template/table/body-cell/index.js.map +1 -1
- package/lib/internal/template/table/body-cell/inline-editor.d.ts +12 -0
- package/lib/internal/template/table/body-cell/inline-editor.d.ts.map +1 -0
- package/lib/internal/template/table/body-cell/inline-editor.js +88 -0
- package/lib/internal/template/table/body-cell/inline-editor.js.map +1 -0
- package/lib/internal/template/table/body-cell/styles.css.js +18 -12
- package/lib/internal/template/table/body-cell/styles.scoped.css +229 -46
- package/lib/internal/template/table/body-cell/styles.selectors.js +18 -12
- package/lib/internal/template/table/body-cell/td-element.d.ts +21 -0
- package/lib/internal/template/table/body-cell/td-element.d.ts.map +1 -0
- package/lib/internal/template/table/body-cell/td-element.js +11 -0
- package/lib/internal/template/table/body-cell/td-element.js.map +1 -0
- package/lib/internal/template/table/body-cell/use-stable-scroll-position.d.ts +17 -0
- package/lib/internal/template/table/body-cell/use-stable-scroll-position.d.ts.map +1 -0
- package/lib/internal/template/table/body-cell/use-stable-scroll-position.js +48 -0
- package/lib/internal/template/table/body-cell/use-stable-scroll-position.js.map +1 -0
- package/lib/internal/template/table/header-cell/index.d.ts +8 -7
- package/lib/internal/template/table/header-cell/index.d.ts.map +1 -1
- package/lib/internal/template/table/header-cell/index.js +6 -2
- package/lib/internal/template/table/header-cell/index.js.map +1 -1
- package/lib/internal/template/table/header-cell/styles.css.js +19 -18
- package/lib/internal/template/table/header-cell/styles.scoped.css +40 -35
- package/lib/internal/template/table/header-cell/styles.selectors.js +19 -18
- package/lib/internal/template/table/header-cell/utils.d.ts +1 -1
- package/lib/internal/template/table/header-cell/utils.d.ts.map +1 -1
- package/lib/internal/template/table/interfaces.d.ts +85 -10
- package/lib/internal/template/table/interfaces.d.ts.map +1 -1
- package/lib/internal/template/table/interfaces.js.map +1 -1
- package/lib/internal/template/table/internal.d.ts.map +1 -1
- package/lib/internal/template/table/internal.js +68 -18
- package/lib/internal/template/table/internal.js.map +1 -1
- package/lib/internal/template/table/thead.d.ts.map +1 -1
- package/lib/internal/template/table/thead.js +1 -1
- package/lib/internal/template/table/thead.js.map +1 -1
- package/lib/internal/template/table/use-table-focus-navigation.d.ts +16 -0
- package/lib/internal/template/table/use-table-focus-navigation.d.ts.map +1 -0
- package/lib/internal/template/table/use-table-focus-navigation.js +131 -0
- package/lib/internal/template/table/use-table-focus-navigation.js.map +1 -0
- package/lib/internal/template/table/utils.d.ts +1 -1
- package/lib/internal/template/table/utils.d.ts.map +1 -1
- package/lib/internal/template/test-utils/dom/table/index.d.ts +4 -0
- package/lib/internal/template/test-utils/dom/table/index.js +21 -5
- package/lib/internal/template/test-utils/dom/table/index.js.map +1 -1
- package/lib/internal/template/test-utils/selectors/table/index.d.ts +4 -0
- package/lib/internal/template/test-utils/selectors/table/index.js +21 -5
- package/lib/internal/template/test-utils/selectors/table/index.js.map +1 -1
- package/lib/internal/template/test-utils/tsconfig.tsbuildinfo +1 -1
- 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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
|
|
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":"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","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,
|
|
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/
|
|
24
|
-
var styles_selectors_js_4 = require("../../../table/
|
|
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(
|
|
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(
|
|
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(
|
|
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":";;;;;;;;;;;;;;;;;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,8DAA0F;AAC1F,0EAAwD;AACxD,sFAA8E;AAC9E,4FAAmF;AACnF,kFAAuE;AACvE,oEAAqE;AACrE,0CAA4C;AAC5C,4CAA8C;AAC9C,8CAA+C;AAE/C;IAA0C,gCAAgB;IAA1D;QAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/dom/table/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,8DAA0F;AAC1F,0EAAwD;AACxD,sFAA8E;AAC9E,oFAA0E;AAC1E,4FAAmF;AACnF,kFAAuE;AACvE,oEAAqE;AACrE,0CAA4C;AAC5C,4CAA8C;AAC9C,8CAA+C;AAE/C;IAA0C,gCAAgB;IAA1D;QAAA,qEA0IC;QAvIS,sBAAgB,GAAG,IAAI,mBAAgB,CAAC,KAAI,CAAC,UAAU,EAAE,CAAC,CAAC;;IAuIrE,CAAC;IArIS,sCAAe,GAAvB;QACE,OAAO,IAAI,CAAC,IAAI,CAAC,WAAI,6BAAM,CAAC,OAAO,iBAAO,6BAAM,CAAC,KAAK,CAAE,CAAE,CAAC;IAC7D,CAAC;IAEO,sCAAe,GAAvB;QACE,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,cAAc,CAAC,CAAE,CAAC;IACvD,CAAC;IAED,qCAAc,GAAd;QACE,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;;OAGG;IACH,uCAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,cAAc,EAAE,CAAC;IAC/B,CAAC;IAED,qCAAc,GAAd;QACE,OAAO,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;IAC5C,CAAC;IAED,wCAAiB,GAAjB;QACE,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;IAClD,CAAC;IAED;;;;OAIG;IACH,wCAAiB,GAAjB,UAAkB,WAAmB;QACnC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,uBAAgB,WAAW,gBAAM,6BAAa,CAAC,OAAO,CAAE,CAAC,CAAC;IAC/F,CAAC;IAED;;;;;OAKG;IACH,mCAAY,GAAZ,UAAa,QAAgB,EAAE,WAAmB;QAChD,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,6BAAsB,QAAQ,4BAAkB,WAAW,MAAG,CAAC,CAAC;IACrG,CAAC;IAED,+BAAQ,GAAR;QACE,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,kBAAkB,CAAC,6BAAM,CAAC,GAAG,CAAC,CAAC;IAC/D,CAAC;IAED,uCAAgB,GAAhB;QACE,OAAO,IAAI,CAAC,kBAAkB,CAAC,6BAAM,CAAC,cAAc,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;;OAGG;IACH,sCAAe,GAAf;QACE,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC;IAC9B,CAAC;IAED,oCAAa,GAAb;QACE,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;IAED,sCAAe,GAAf;QACE,OAAO,IAAI,CAAC,eAAe,CAAC,6BAAM,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;IAED,4CAAqB,GAArB,UAAsB,QAAgB;QACpC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,2BAAoB,QAAQ,oBAAiB,CAAC,CAAC;IACpF,CAAC;IAED;;OAEG;IACH,0CAAmB,GAAnB;QACE,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,eAAe,CAAC,6BAAgB,CAAC,uBAAuB,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED;;OAEG;IACH,2CAAoB,GAApB;QACE,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,eAAe,CAAC,6BAAgB,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAC5F,CAAC;IAED;;;;OAIG;IACH,2CAAoB,GAApB,UAAqB,QAAgB;QACnC,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,6BAAsB,QAAQ,gBAAM,6BAAe,CAAC,IAAI,CAAE,CAAC,CAAC;IACjG,CAAC;IAED,2CAAoB,GAApB;QACE,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,WAAI,6BAAe,CAAC,IAAI,CAAE,CAAC,CAAC;IACjE,CAAC;IAED,qCAAc,GAAd;QACE,OAAO,IAAI,CAAC,aAAa,CAAC,WAAI,6BAAM,CAAC,iBAAiB,CAAC,CAAE,EAAE,qBAAiB,CAAC,CAAC;IAChF,CAAC;IACD,EAAE;IACF,2DAA2D;IAC3D,wGAAwG;IACxG,IAAI;IACJ,EAAE;IACF,gDAAyB,GAAzB;QACE,OAAO,IAAI,CAAC,aAAa,CAAC,WAAI,6BAAM,CAAC,mBAAmB,CAAC,CAAE,EAAE,gCAA4B,CAAC,CAAC;IAC7F,CAAC;IAED,qCAAc,GAAd;QACE,OAAO,IAAI,CAAC,aAAa,CAAC,WAAI,6BAAM,CAAC,kBAAkB,CAAC,CAAE,EAAE,oBAAiB,CAAC,CAAC;IACjF,CAAC;IAED,sCAAe,GAAf;QACE,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC,eAAe,CAAC,6BAAc,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACzF,CAAC;IAEO,+CAAwB,GAAhC;;QACE,OAAO,MAAA,MAAA,IAAI,CAAC,eAAe,EAAE,0CAAE,eAAe,CAAC,6BAAc,CAAC,2BAA2B,CAAC,CAAC,mCAAI,IAAI,CAAC;IACtG,CAAC;IAED,gDAAyB,GAAzB;;QACE,OAAO,MAAA,MAAA,IAAI,CAAC,wBAAwB,EAAE,0CAAE,IAAI,CAAC,uBAAuB,CAAC,mCAAI,IAAI,CAAC;IAChF,CAAC;IAED,kDAA2B,GAA3B;;QACE,OAAO,MAAA,MAAA,IAAI,CAAC,wBAAwB,EAAE,0CAAE,IAAI,CAAC,oBAAoB,CAAC,mCAAI,IAAI,CAAC;IAC7E,CAAC;IAxIM,yBAAY,GAAW,6BAAM,CAAC,IAAI,CAAC;IAyI5C,mBAAC;CAAA,AA1ID,CAA0C,sBAAgB,GA0IzD;kBA1IoB,YAAY"}
|
|
@@ -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/
|
|
24
|
-
var styles_selectors_js_4 = require("../../../table/
|
|
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(
|
|
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(
|
|
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(
|
|
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":";;;;;;;;;;;;;;;;;AAAA,qEAAqE;AACrE,sCAAsC;AACtC,0EAAgG;AAChG,0EAAwD;AACxD,sFAA8E;AAC9E,4FAAmF;AACnF,kFAAuE;AACvE,oEAAqE;AACrE,0CAA4C;AAC5C,4CAA8C;AAC9C,8CAA+C;AAC/C;IAA0C,gCAAgB;IAA1D;QAAA,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/test-utils/selectors/table/index.ts"],"names":[],"mappings":"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"}
|