@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.
- 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/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/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/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":";AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,gBAA2C,MAAM,qBAAqB,CAAC;AAC9E,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,sBAAsB,EAA6B,MAAM,oBAAoB,CAAC;AACvF,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AACrE,OAAO,MAAM,MAAM,iBAAiB,CAAC;AACrC,OAAO,gBAAgB,MAAM,6BAA6B,CAAC;AAC3D,OAAO,gBAAgB,MAAM,0CAA0C,CAAC;AA0BxE,IAAM,KAAK,GAAG,KAAK,CAAC,UAAU,CAC5B,UACE,EAsBa,EACb,QAAwC;QAtBtC,cAAc,oBAAA,EACd,aAAa,mBAAA,EACb,cAAc,oBAAA,EACd,iBAAiB,uBAAA,EACjB,aAAa,mBAAA,EACb,eAAe,qBAAA,EACf,iBAAiB,uBAAA,EACjB,gBAAgB,sBAAA,EAChB,OAAO,aAAA,EACP,SAAS,eAAA,EACT,WAAW,iBAAA,EACX,WAAW,iBAAA,EACX,UAAU,gBAAA,EACV,eAAe,qBAAA,EACf,cAAc,oBAAA,EACd,8BAA8B,oCAAA,EAC9B,WAAW,iBAAA,EACX,qBAAoB,EAApB,aAAa,mBAAG,IAAI,KAAA,EACpB,cAAc,EAAd,MAAM,mBAAG,KAAK,KAAA,EACd,cAAc,EAAd,MAAM,mBAAG,KAAK,KAAA,EACd,aAAa,EAAb,KAAK,mBAAG,KAAK,KAAA;IAIf,IAAM,eAAe,GAAG,gBAAgB,EAAE,CAAC;IAE3C,IAAM,eAAe,GAAG,IAAI,CAC1B,gBAAgB,CAAC,aAAa,CAAC,EAC/B,gBAAgB,CAAC,8BAAuB,OAAO,CAAE,CAAC,EAClD,MAAM,IAAI,gBAAgB,CAAC,oBAAoB,CAAC,EAChD,KAAK,IAAI,gBAAgB,CAAC,mBAAmB,CAAC,EAC9C,WAAW,IAAI,gBAAgB,CAAC,kBAAkB,CAAC,EACnD,eAAe,IAAI,gBAAgB,CAAC,mBAAmB,CAAC,CACzD,CAAC;IAEF,IAAM,kBAAkB,GAAG,IAAI,CAC7B,MAAM,CAAC,mBAAmB,CAAC,EAC3B,MAAM,CAAC,0BAA0B,CAAC,EAClC,eAAe,IAAI,MAAM,CAAC,mBAAmB,CAAC,CAC/C,CAAC;IAEI,IAAA,KAA6C,eAAe,EAAE,EAA5D,YAAY,kBAAA,EAAE,UAAU,gBAAA,EAAE,YAAY,kBAAsB,CAAC;IAErE,OAAO,CACL,+BAAO,SAAS,EAAE,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM,CAAC,cAAc,CAAC,CAAC;QACvD,uCAAQ,YAAY,CAAC,GAAG,IAAE,GAAG,EAAE,QAAQ,mBAAiB,CAAC;YACtD,aAAa,KAAK,OAAO,IAAI,CAC5B,4BACE,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,kBAAkB,EAAE,MAAM,IAAI,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,EACtG,KAAK,EAAC,KAAK;gBAEX,oBAAC,gBAAgB,aACf,WAAW,EAAE,UAAA,KAAK,IAAI,OAAA,WAAY,CAAC,KAAK,CAAC,MAAqB,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAjD,CAAiD,IACnE,cAAc,EACd,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EACpC,CACC,CACN;YACA,aAAa,KAAK,QAAQ,IAAI,CAC7B,4BACE,SAAS,EAAE,IAAI,CAAC,eAAe,EAAE,kBAAkB,EAAE,MAAM,IAAI,gBAAgB,CAAC,oBAAoB,CAAC,CAAC,EACtG,KAAK,EAAC,KAAK;gBAEX,oBAAC,gBAAgB,QAAE,8BAA8B,CAAoB,CAClE,CACN;YACA,iBAAiB,CAAC,GAAG,CAAC,UAAC,MAAM,EAAE,QAAQ;gBACtC,IAAI,aAAa,CAAC;gBAClB,IAAI,gBAAgB,EAAE;oBACpB,IAAI,YAAY,EAAE;wBAChB,kCAAkC;wBAClC,aAAa,GAAG,YAAY,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;qBAC9D;oBACD,IAAI,QAAQ,KAAK,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,cAAc,IAAI,cAAc,GAAG,UAAU,EAAE;wBAC9F,wDAAwD;wBACxD,aAAa,GAAG,MAAM,CAAC;qBACxB;iBACF;gBACD,OAAO,CACL,oBAAC,eAAe,IACd,GAAG,EAAE,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,EACnC,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE;wBACL,KAAK,EAAE,aAAa,IAAI,MAAM,CAAC,KAAK;wBACpC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ;wBAC9C,QAAQ,EAAE,gBAAgB,IAAI,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,QAAQ;qBACnE,EACD,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACzB,aAAa,EAAE,QAAQ,KAAK,aAAa,EACzC,MAAM,EAAE,MAAM,EACd,mBAAmB,EAAE,aAAa,EAClC,iBAAiB,EAAE,iBAAiB,EACpC,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,SAAS,EACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,YAAY,EAC1B,cAAc,EAAE,cAAM,OAAA,cAAc,CAAC,YAAY,CAAC,EAA5B,CAA4B,EAClD,gBAAgB,EAAE,gBAAgB,EAClC,OAAO,EAAE,UAAA,MAAM,IAAI,OAAA,sBAAsB,CAAC,eAAe,EAAE,MAAM,CAAC,EAA/C,CAA+C,EAClE,OAAO,EAAE,cAAM,OAAA,WAAW,aAAX,WAAW,uBAAX,WAAW,CAAG,QAAQ,CAAC,EAAvB,CAAuB,EACtC,MAAM,EAAE,UAAU,EAClB,UAAU,EAAE,CAAC,CAAC,MAAM,CAAC,UAAU,GAC/B,CACH,CAAC;YACJ,CAAC,CAAC,CACC,CACC,CACT,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,KAAK,CAAC","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":"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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/
|
|
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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"}
|