@cloudscape-design/components-themeable 3.0.327 → 3.0.329
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/app-layout/styles.scss +26 -0
- package/lib/internal/scss/app-layout/visual-refresh/drawers.scss +17 -13
- package/lib/internal/scss/expandable-section/styles.scss +14 -9
- package/lib/internal/scss/internal/generated/custom-css-properties/index.scss +39 -39
- package/lib/internal/scss/split-panel/styles.scss +0 -18
- package/lib/internal/scss/table/sticky-scrollbar/styles.scss +26 -0
- package/lib/internal/scss/table/styles.scss +0 -22
- package/lib/internal/template/annotation-context/annotation/styles.css.js +24 -24
- package/lib/internal/template/annotation-context/annotation/styles.scoped.css +30 -30
- package/lib/internal/template/annotation-context/annotation/styles.selectors.js +24 -24
- package/lib/internal/template/app-layout/drawer/interfaces.d.ts +0 -7
- package/lib/internal/template/app-layout/drawer/interfaces.d.ts.map +1 -1
- package/lib/internal/template/app-layout/drawer/interfaces.js.map +1 -1
- package/lib/internal/template/app-layout/drawer/resizable-drawer.d.ts.map +1 -1
- package/lib/internal/template/app-layout/drawer/resizable-drawer.js +3 -3
- package/lib/internal/template/app-layout/drawer/resizable-drawer.js.map +1 -1
- package/lib/internal/template/app-layout/index.d.ts.map +1 -1
- package/lib/internal/template/app-layout/index.js +19 -2
- package/lib/internal/template/app-layout/index.js.map +1 -1
- package/lib/internal/template/app-layout/notifications/styles.css.js +3 -3
- package/lib/internal/template/app-layout/notifications/styles.scoped.css +7 -7
- package/lib/internal/template/app-layout/notifications/styles.selectors.js +3 -3
- package/lib/internal/template/app-layout/runtime-api.d.ts +8 -0
- package/lib/internal/template/app-layout/runtime-api.d.ts.map +1 -0
- package/lib/internal/template/app-layout/runtime-api.js +35 -0
- package/lib/internal/template/app-layout/runtime-api.js.map +1 -0
- package/lib/internal/template/app-layout/styles.css.js +17 -13
- package/lib/internal/template/app-layout/styles.scoped.css +44 -13
- package/lib/internal/template/app-layout/styles.selectors.js +17 -13
- package/lib/internal/template/app-layout/utils/interfaces.d.ts +10 -0
- package/lib/internal/template/app-layout/utils/interfaces.d.ts.map +1 -0
- package/lib/internal/template/app-layout/utils/interfaces.js +2 -0
- package/lib/internal/template/app-layout/utils/interfaces.js.map +1 -0
- package/lib/internal/template/app-layout/utils/use-drawer-focus-control.d.ts.map +1 -1
- package/lib/internal/template/app-layout/utils/use-drawer-focus-control.js +8 -3
- package/lib/internal/template/app-layout/utils/use-drawer-focus-control.js.map +1 -1
- package/lib/internal/template/app-layout/utils/use-keyboard-events.d.ts +4 -0
- package/lib/internal/template/app-layout/utils/use-keyboard-events.d.ts.map +1 -0
- package/lib/internal/template/{split-panel → app-layout}/utils/use-keyboard-events.js +10 -11
- package/lib/internal/template/app-layout/utils/use-keyboard-events.js.map +1 -0
- package/lib/internal/template/app-layout/utils/use-pointer-events.d.ts +3 -0
- package/lib/internal/template/app-layout/utils/use-pointer-events.d.ts.map +1 -0
- package/lib/internal/template/{split-panel → app-layout}/utils/use-pointer-events.js +15 -8
- package/lib/internal/template/app-layout/utils/use-pointer-events.js.map +1 -0
- package/lib/internal/template/app-layout/utils/use-resize.d.ts +16 -0
- package/lib/internal/template/app-layout/utils/use-resize.d.ts.map +1 -0
- package/lib/internal/template/app-layout/utils/use-resize.js +84 -0
- package/lib/internal/template/app-layout/utils/use-resize.js.map +1 -0
- package/lib/internal/template/app-layout/visual-refresh/context.d.ts +11 -6
- package/lib/internal/template/app-layout/visual-refresh/context.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh/context.js +26 -7
- package/lib/internal/template/app-layout/visual-refresh/context.js.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh/drawers.d.ts +1 -33
- package/lib/internal/template/app-layout/visual-refresh/drawers.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh/drawers.js +14 -7
- package/lib/internal/template/app-layout/visual-refresh/drawers.js.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh/styles.css.js +69 -68
- package/lib/internal/template/app-layout/visual-refresh/styles.scoped.css +294 -298
- package/lib/internal/template/app-layout/visual-refresh/styles.selectors.js +69 -68
- package/lib/internal/template/app-layout/visual-refresh/trigger-button.d.ts.map +1 -1
- package/lib/internal/template/app-layout/visual-refresh/trigger-button.js +1 -2
- package/lib/internal/template/app-layout/visual-refresh/trigger-button.js.map +1 -1
- package/lib/internal/template/area-chart/{model/async-store.d.ts → async-store/index.d.ts} +1 -1
- package/lib/internal/template/area-chart/async-store/index.d.ts.map +1 -0
- package/lib/internal/template/area-chart/{model/async-store.js → async-store/index.js} +1 -1
- package/lib/internal/template/area-chart/async-store/index.js.map +1 -0
- package/lib/internal/template/area-chart/elements/area-chart-legend.d.ts.map +1 -1
- package/lib/internal/template/area-chart/elements/area-chart-legend.js +1 -1
- package/lib/internal/template/area-chart/elements/area-chart-legend.js.map +1 -1
- package/lib/internal/template/area-chart/elements/data-series.js +1 -1
- package/lib/internal/template/area-chart/elements/data-series.js.map +1 -1
- package/lib/internal/template/area-chart/elements/highlighted-point.js +1 -1
- package/lib/internal/template/area-chart/elements/highlighted-point.js.map +1 -1
- package/lib/internal/template/area-chart/elements/use-highlight-details.d.ts.map +1 -1
- package/lib/internal/template/area-chart/elements/use-highlight-details.js +3 -1
- package/lib/internal/template/area-chart/elements/use-highlight-details.js.map +1 -1
- package/lib/internal/template/area-chart/elements/vertical-marker.js +1 -1
- package/lib/internal/template/area-chart/elements/vertical-marker.js.map +1 -1
- package/lib/internal/template/area-chart/model/index.d.ts +1 -1
- package/lib/internal/template/area-chart/model/index.d.ts.map +1 -1
- package/lib/internal/template/area-chart/model/index.js.map +1 -1
- package/lib/internal/template/area-chart/model/interactions-store.d.ts +1 -1
- package/lib/internal/template/area-chart/model/interactions-store.d.ts.map +1 -1
- package/lib/internal/template/area-chart/model/interactions-store.js +1 -1
- package/lib/internal/template/area-chart/model/interactions-store.js.map +1 -1
- package/lib/internal/template/area-chart/model/use-chart-model.d.ts.map +1 -1
- package/lib/internal/template/area-chart/model/use-chart-model.js +1 -1
- package/lib/internal/template/area-chart/model/use-chart-model.js.map +1 -1
- package/lib/internal/template/attribute-editor/interfaces.d.ts +1 -1
- package/lib/internal/template/attribute-editor/interfaces.d.ts.map +1 -1
- package/lib/internal/template/attribute-editor/interfaces.js.map +1 -1
- package/lib/internal/template/content-layout/styles.css.js +7 -7
- package/lib/internal/template/content-layout/styles.scoped.css +13 -13
- package/lib/internal/template/content-layout/styles.selectors.js +7 -7
- package/lib/internal/template/expandable-section/expandable-section-header.d.ts.map +1 -1
- package/lib/internal/template/expandable-section/expandable-section-header.js +10 -10
- package/lib/internal/template/expandable-section/expandable-section-header.js.map +1 -1
- package/lib/internal/template/expandable-section/interfaces.d.ts +1 -1
- package/lib/internal/template/expandable-section/interfaces.js.map +1 -1
- package/lib/internal/template/expandable-section/styles.css.js +31 -29
- package/lib/internal/template/expandable-section/styles.scoped.css +56 -51
- package/lib/internal/template/expandable-section/styles.selectors.js +31 -29
- package/lib/internal/template/expandable-section/utils.js +1 -1
- package/lib/internal/template/expandable-section/utils.js.map +1 -1
- package/lib/internal/template/flashbar/styles.css.js +45 -45
- package/lib/internal/template/flashbar/styles.scoped.css +169 -169
- package/lib/internal/template/flashbar/styles.selectors.js +45 -45
- package/lib/internal/template/internal/environment.js +1 -1
- package/lib/internal/template/internal/generated/custom-css-properties/index.js +39 -39
- package/lib/internal/template/internal/generated/custom-css-properties/index.js.map +1 -1
- package/lib/internal/template/internal/plugins/api.d.ts +15 -0
- package/lib/internal/template/internal/plugins/api.d.ts.map +1 -0
- package/lib/internal/template/internal/plugins/api.js +50 -0
- package/lib/internal/template/internal/plugins/api.js.map +1 -0
- package/lib/internal/template/internal/plugins/drawers-controller.d.ts +22 -0
- package/lib/internal/template/internal/plugins/drawers-controller.d.ts.map +1 -0
- package/lib/internal/template/internal/plugins/drawers-controller.js +34 -0
- package/lib/internal/template/internal/plugins/drawers-controller.js.map +1 -0
- package/lib/internal/template/internal/plugins/index.d.ts +2 -0
- package/lib/internal/template/internal/plugins/index.d.ts.map +1 -0
- package/lib/internal/template/internal/plugins/index.js +4 -0
- package/lib/internal/template/internal/plugins/index.js.map +1 -0
- package/lib/internal/template/mixed-line-bar-chart/data-series.d.ts.map +1 -1
- package/lib/internal/template/mixed-line-bar-chart/data-series.js +8 -2
- package/lib/internal/template/mixed-line-bar-chart/data-series.js.map +1 -1
- package/lib/internal/template/split-panel/index.d.ts.map +1 -1
- package/lib/internal/template/split-panel/index.js +3 -3
- package/lib/internal/template/split-panel/index.js.map +1 -1
- package/lib/internal/template/split-panel/interfaces.d.ts +0 -7
- package/lib/internal/template/split-panel/interfaces.d.ts.map +1 -1
- package/lib/internal/template/split-panel/interfaces.js.map +1 -1
- package/lib/internal/template/split-panel/styles.css.js +56 -59
- package/lib/internal/template/split-panel/styles.scoped.css +77 -93
- package/lib/internal/template/split-panel/styles.selectors.js +56 -59
- package/lib/internal/template/table/body-cell/td-element.d.ts +2 -2
- package/lib/internal/template/table/body-cell/td-element.d.ts.map +1 -1
- package/lib/internal/template/table/body-cell/td-element.js +2 -2
- package/lib/internal/template/table/body-cell/td-element.js.map +1 -1
- package/lib/internal/template/table/column-widths-utils.d.ts +3 -0
- package/lib/internal/template/table/column-widths-utils.d.ts.map +1 -0
- package/lib/internal/template/table/column-widths-utils.js +16 -0
- package/lib/internal/template/table/column-widths-utils.js.map +1 -0
- package/lib/internal/template/table/header-cell/index.d.ts +3 -3
- package/lib/internal/template/table/header-cell/index.d.ts.map +1 -1
- package/lib/internal/template/table/header-cell/index.js +2 -2
- package/lib/internal/template/table/header-cell/index.js.map +1 -1
- package/lib/internal/template/table/internal.d.ts.map +1 -1
- package/lib/internal/template/table/internal.js +15 -10
- package/lib/internal/template/table/internal.js.map +1 -1
- package/lib/internal/template/table/resizer/index.d.ts.map +1 -1
- package/lib/internal/template/table/resizer/index.js +2 -2
- package/lib/internal/template/table/resizer/index.js.map +1 -1
- package/lib/internal/template/table/sticky-columns/index.d.ts +2 -0
- package/lib/internal/template/table/sticky-columns/index.d.ts.map +1 -0
- package/lib/internal/template/table/sticky-columns/index.js +4 -0
- package/lib/internal/template/table/sticky-columns/index.js.map +1 -0
- package/lib/internal/template/table/{use-sticky-columns.d.ts → sticky-columns/use-sticky-columns.d.ts} +7 -9
- package/lib/internal/template/table/sticky-columns/use-sticky-columns.d.ts.map +1 -0
- package/lib/internal/template/table/{use-sticky-columns.js → sticky-columns/use-sticky-columns.js} +3 -4
- package/lib/internal/template/table/sticky-columns/use-sticky-columns.js.map +1 -0
- package/lib/internal/template/table/sticky-scrollbar/index.d.ts +2 -0
- package/lib/internal/template/table/sticky-scrollbar/index.d.ts.map +1 -0
- package/lib/internal/template/table/sticky-scrollbar/index.js +4 -0
- package/lib/internal/template/table/sticky-scrollbar/index.js.map +1 -0
- package/lib/internal/template/table/sticky-scrollbar/sticky-scrollbar.d.ts.map +1 -0
- package/lib/internal/template/table/{sticky-scrollbar.js → sticky-scrollbar/sticky-scrollbar.js} +2 -2
- package/lib/internal/template/table/sticky-scrollbar/sticky-scrollbar.js.map +1 -0
- package/lib/internal/template/table/sticky-scrollbar/styles.css.js +9 -0
- package/lib/internal/template/table/sticky-scrollbar/styles.scoped.css +22 -0
- package/lib/internal/template/table/sticky-scrollbar/styles.selectors.js +10 -0
- package/lib/internal/template/table/sticky-scrollbar/use-sticky-scrollbar.d.ts.map +1 -0
- package/lib/internal/template/table/{use-sticky-scrollbar.js → sticky-scrollbar/use-sticky-scrollbar.js} +3 -3
- package/lib/internal/template/table/sticky-scrollbar/use-sticky-scrollbar.js.map +1 -0
- package/lib/internal/template/table/styles.css.js +32 -36
- package/lib/internal/template/table/styles.scoped.css +40 -59
- package/lib/internal/template/table/styles.selectors.js +32 -36
- package/lib/internal/template/table/thead.d.ts +2 -1
- package/lib/internal/template/table/thead.d.ts.map +1 -1
- package/lib/internal/template/table/thead.js +4 -4
- package/lib/internal/template/table/thead.js.map +1 -1
- package/lib/internal/template/table/use-column-widths.d.ts +10 -8
- package/lib/internal/template/table/use-column-widths.d.ts.map +1 -1
- package/lib/internal/template/table/use-column-widths.js +30 -47
- package/lib/internal/template/table/use-column-widths.js.map +1 -1
- 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/table/utils.js.map +1 -1
- package/lib/internal/template/test-utils/dom/app-layout/index.d.ts +1 -1
- package/lib/internal/template/test-utils/tsconfig.tsbuildinfo +1 -1
- package/lib/internal/template/wizard/styles.css.js +31 -31
- package/lib/internal/template/wizard/styles.scoped.css +63 -63
- package/lib/internal/template/wizard/styles.selectors.js +31 -31
- package/lib/internal/template-tokens/package.json +9 -0
- package/lib/theming.d.ts +9 -0
- package/lib/theming.d.ts.map +1 -0
- package/lib/theming.js +26 -0
- package/lib/theming.js.map +1 -0
- package/package.json +1 -1
- package/lib/internal/template/area-chart/model/async-store.d.ts.map +0 -1
- package/lib/internal/template/area-chart/model/async-store.js.map +0 -1
- package/lib/internal/template/split-panel/utils/use-keyboard-events.d.ts +0 -4
- package/lib/internal/template/split-panel/utils/use-keyboard-events.d.ts.map +0 -1
- package/lib/internal/template/split-panel/utils/use-keyboard-events.js.map +0 -1
- package/lib/internal/template/split-panel/utils/use-pointer-events.d.ts +0 -3
- package/lib/internal/template/split-panel/utils/use-pointer-events.d.ts.map +0 -1
- package/lib/internal/template/split-panel/utils/use-pointer-events.js.map +0 -1
- package/lib/internal/template/table/sticky-scrollbar.d.ts.map +0 -1
- package/lib/internal/template/table/sticky-scrollbar.js.map +0 -1
- package/lib/internal/template/table/use-sticky-columns.d.ts.map +0 -1
- package/lib/internal/template/table/use-sticky-columns.js.map +0 -1
- package/lib/internal/template/table/use-sticky-scrollbar.d.ts.map +0 -1
- package/lib/internal/template/table/use-sticky-scrollbar.js.map +0 -1
- /package/lib/internal/template/table/{sticky-scrollbar.d.ts → sticky-scrollbar/sticky-scrollbar.d.ts} +0 -0
- /package/lib/internal/template/table/{use-sticky-scrollbar.d.ts → sticky-scrollbar/use-sticky-scrollbar.d.ts} +0 -0
|
@@ -1,90 +1,73 @@
|
|
|
1
1
|
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
|
|
2
2
|
// SPDX-License-Identifier: Apache-2.0
|
|
3
3
|
import React, { useEffect, useRef, useState, createContext, useContext } from 'react';
|
|
4
|
-
import { getColumnKey } from './utils';
|
|
5
4
|
import headerCellStyles from './header-cell/styles.css.js';
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const SELECTION_CELL_WIDTH = 54;
|
|
9
|
-
function checkProperty(column, name) {
|
|
10
|
-
const value = column[name];
|
|
11
|
-
if (typeof value !== 'number' && typeof value !== 'undefined') {
|
|
12
|
-
warnOnce('Table', `resizableColumns feature requires ${name} property to be a number, got ${value}. The component may work incorrectly.`);
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
export function checkColumnWidths(columnDefinitions) {
|
|
16
|
-
for (const column of columnDefinitions) {
|
|
17
|
-
checkProperty(column, 'minWidth');
|
|
18
|
-
checkProperty(column, 'width');
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
function readWidths(headerEl, columnDefinitions, hasSelection) {
|
|
5
|
+
export const DEFAULT_COLUMN_WIDTH = 120;
|
|
6
|
+
function readWidths(headerEl, visibleColumns) {
|
|
22
7
|
const result = {};
|
|
23
|
-
for (let index = 0; index <
|
|
24
|
-
const column =
|
|
25
|
-
const id = getColumnKey(columnDefinitions[index], index);
|
|
8
|
+
for (let index = 0; index < visibleColumns.length; index++) {
|
|
9
|
+
const column = visibleColumns[index];
|
|
26
10
|
let width = column.width || 0;
|
|
27
|
-
const minWidth = column.minWidth || width ||
|
|
11
|
+
const minWidth = column.minWidth || width || DEFAULT_COLUMN_WIDTH;
|
|
28
12
|
if (!width && // read width from the DOM if it is missing in the config
|
|
29
|
-
index !==
|
|
13
|
+
index !== visibleColumns.length - 1 // skip reading for the last column, because it expands to fully fit the container
|
|
30
14
|
) {
|
|
31
|
-
const colIndex =
|
|
15
|
+
const colIndex = index + 1;
|
|
32
16
|
const colEl = headerEl.querySelector(`.${headerCellStyles['header-cell']}:nth-child(${colIndex})`);
|
|
33
17
|
width = colEl.getBoundingClientRect().width;
|
|
34
18
|
}
|
|
35
|
-
result[id] = Math.max(width, minWidth);
|
|
19
|
+
result[column.id] = Math.max(width, minWidth);
|
|
36
20
|
}
|
|
37
21
|
return result;
|
|
38
22
|
}
|
|
39
|
-
function updateWidths(
|
|
40
|
-
const
|
|
41
|
-
const
|
|
42
|
-
const minWidth = typeof definition.minWidth === 'number' ? definition.minWidth : DEFAULT_WIDTH;
|
|
23
|
+
function updateWidths(visibleColumns, oldWidths, newWidth, columnId) {
|
|
24
|
+
const column = visibleColumns.find(column => column.id === columnId);
|
|
25
|
+
const minWidth = typeof (column === null || column === void 0 ? void 0 : column.minWidth) === 'number' ? column.minWidth : DEFAULT_COLUMN_WIDTH;
|
|
43
26
|
newWidth = Math.max(newWidth, minWidth);
|
|
44
|
-
if (oldWidths[
|
|
27
|
+
if (oldWidths[columnId] === newWidth) {
|
|
45
28
|
return oldWidths;
|
|
46
29
|
}
|
|
47
|
-
return Object.assign(Object.assign({}, oldWidths), { [
|
|
30
|
+
return Object.assign(Object.assign({}, oldWidths), { [columnId]: newWidth });
|
|
48
31
|
}
|
|
49
32
|
const WidthsContext = createContext({
|
|
50
33
|
totalWidth: 0,
|
|
51
34
|
columnWidths: {},
|
|
52
35
|
updateColumn: () => { },
|
|
53
36
|
});
|
|
54
|
-
export function ColumnWidthsProvider({ tableRef,
|
|
55
|
-
const
|
|
37
|
+
export function ColumnWidthsProvider({ tableRef, visibleColumns, resizableColumns, children }) {
|
|
38
|
+
const visibleColumnsRef = useRef(null);
|
|
56
39
|
const [columnWidths, setColumnWidths] = useState({});
|
|
40
|
+
// The widths of the dynamically added columns (after the first render) if not set explicitly
|
|
41
|
+
// will default to the DEFAULT_COLUMN_WIDTH.
|
|
57
42
|
useEffect(() => {
|
|
58
43
|
if (!resizableColumns) {
|
|
59
44
|
return;
|
|
60
45
|
}
|
|
61
|
-
const lastVisible =
|
|
46
|
+
const lastVisible = visibleColumnsRef.current;
|
|
62
47
|
if (lastVisible) {
|
|
63
|
-
for (let index = 0; index <
|
|
64
|
-
const column =
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
setColumnWidths(columnWidths => (Object.assign(Object.assign({}, columnWidths), { [id]: column.width || DEFAULT_WIDTH })));
|
|
48
|
+
for (let index = 0; index < visibleColumns.length; index++) {
|
|
49
|
+
const column = visibleColumns[index];
|
|
50
|
+
if (!columnWidths[column.id] && lastVisible.indexOf(column.id) === -1) {
|
|
51
|
+
setColumnWidths(columnWidths => (Object.assign(Object.assign({}, columnWidths), { [column.id]: column.width || DEFAULT_COLUMN_WIDTH })));
|
|
68
52
|
}
|
|
69
53
|
}
|
|
70
54
|
}
|
|
71
|
-
|
|
72
|
-
}, [columnWidths, resizableColumns,
|
|
55
|
+
visibleColumnsRef.current = visibleColumns.map(column => column.id);
|
|
56
|
+
}, [columnWidths, resizableColumns, visibleColumns]);
|
|
57
|
+
// Read the actual column widths after the first render to employ the browser defaults for
|
|
58
|
+
// those columns without explicit width.
|
|
73
59
|
useEffect(() => {
|
|
74
60
|
if (!resizableColumns) {
|
|
75
61
|
return;
|
|
76
62
|
}
|
|
77
|
-
setColumnWidths(() => readWidths(tableRef.current,
|
|
63
|
+
setColumnWidths(() => readWidths(tableRef.current, visibleColumns));
|
|
78
64
|
// This code is intended to run only at the first render and should not re-run when table props change
|
|
79
65
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
80
66
|
}, []);
|
|
81
|
-
function updateColumn(
|
|
82
|
-
setColumnWidths(columnWidths => updateWidths(
|
|
83
|
-
}
|
|
84
|
-
let totalWidth = visibleColumnDefinitions.reduce((total, column, index) => total + (columnWidths[getColumnKey(column, index)] || DEFAULT_WIDTH), 0);
|
|
85
|
-
if (hasSelection) {
|
|
86
|
-
totalWidth += SELECTION_CELL_WIDTH;
|
|
67
|
+
function updateColumn(columnId, newWidth) {
|
|
68
|
+
setColumnWidths(columnWidths => updateWidths(visibleColumns, columnWidths, newWidth, columnId));
|
|
87
69
|
}
|
|
70
|
+
const totalWidth = visibleColumns.reduce((total, column) => total + (columnWidths[column.id] || DEFAULT_COLUMN_WIDTH), 0);
|
|
88
71
|
return React.createElement(WidthsContext.Provider, { value: { columnWidths, totalWidth, updateColumn } }, children);
|
|
89
72
|
}
|
|
90
73
|
export function useColumnWidths() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"use-column-widths.js","sourceRoot":"lib/default/","sources":["table/use-column-widths.tsx"],"names":[],"mappings":"AAAA,qEAAqE;AACrE,sCAAsC;AACtC,OAAO,KAAK,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"use-column-widths.js","sourceRoot":"lib/default/","sources":["table/use-column-widths.tsx"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport React, { useEffect, useRef, useState, createContext, useContext } from 'react';\nimport headerCellStyles from './header-cell/styles.css.js';\n\nexport const DEFAULT_COLUMN_WIDTH = 120;\n\nfunction readWidths(headerEl: HTMLElement, visibleColumns: readonly Column[]) {\n const result: Record<PropertyKey, number> = {};\n for (let index = 0; index < visibleColumns.length; index++) {\n const column = visibleColumns[index];\n let width = (column.width as number) || 0;\n const minWidth = (column.minWidth as number) || width || DEFAULT_COLUMN_WIDTH;\n if (\n !width && // read width from the DOM if it is missing in the config\n index !== visibleColumns.length - 1 // skip reading for the last column, because it expands to fully fit the container\n ) {\n const colIndex = index + 1;\n const colEl = headerEl.querySelector<HTMLElement>(`.${headerCellStyles['header-cell']}:nth-child(${colIndex})`)!;\n width = colEl.getBoundingClientRect().width;\n }\n result[column.id] = Math.max(width, minWidth);\n }\n return result;\n}\n\nfunction updateWidths(\n visibleColumns: readonly Column[],\n oldWidths: Record<PropertyKey, number>,\n newWidth: number,\n columnId: PropertyKey\n) {\n const column = visibleColumns.find(column => column.id === columnId);\n const minWidth = typeof column?.minWidth === 'number' ? column.minWidth : DEFAULT_COLUMN_WIDTH;\n newWidth = Math.max(newWidth, minWidth);\n if (oldWidths[columnId] === newWidth) {\n return oldWidths;\n }\n return { ...oldWidths, [columnId]: newWidth };\n}\n\ninterface WidthsContext {\n totalWidth: number;\n columnWidths: Record<PropertyKey, number>;\n updateColumn: (columnId: PropertyKey, newWidth: number) => void;\n}\n\nconst WidthsContext = createContext<WidthsContext>({\n totalWidth: 0,\n columnWidths: {},\n updateColumn: () => {},\n});\n\ninterface WidthProviderProps {\n tableRef: React.MutableRefObject<HTMLElement | null>;\n visibleColumns: readonly Column[];\n resizableColumns: boolean | undefined;\n children: React.ReactNode;\n}\n\ninterface Column {\n id: PropertyKey;\n minWidth?: string | number;\n width?: string | number;\n}\n\nexport function ColumnWidthsProvider({ tableRef, visibleColumns, resizableColumns, children }: WidthProviderProps) {\n const visibleColumnsRef = useRef<(PropertyKey | undefined)[] | null>(null);\n const [columnWidths, setColumnWidths] = useState<Record<PropertyKey, number>>({});\n\n // The widths of the dynamically added columns (after the first render) if not set explicitly\n // will default to the DEFAULT_COLUMN_WIDTH.\n useEffect(() => {\n if (!resizableColumns) {\n return;\n }\n const lastVisible = visibleColumnsRef.current;\n if (lastVisible) {\n for (let index = 0; index < visibleColumns.length; index++) {\n const column = visibleColumns[index];\n if (!columnWidths[column.id] && lastVisible.indexOf(column.id) === -1) {\n setColumnWidths(columnWidths => ({\n ...columnWidths,\n [column.id]: (column.width as number) || DEFAULT_COLUMN_WIDTH,\n }));\n }\n }\n }\n visibleColumnsRef.current = visibleColumns.map(column => column.id);\n }, [columnWidths, resizableColumns, visibleColumns]);\n\n // Read the actual column widths after the first render to employ the browser defaults for\n // those columns without explicit width.\n useEffect(() => {\n if (!resizableColumns) {\n return;\n }\n setColumnWidths(() => readWidths(tableRef.current!, visibleColumns));\n // This code is intended to run only at the first render and should not re-run when table props change\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n function updateColumn(columnId: PropertyKey, newWidth: number) {\n setColumnWidths(columnWidths => updateWidths(visibleColumns, columnWidths, newWidth, columnId));\n }\n\n const totalWidth = visibleColumns.reduce(\n (total, column) => total + (columnWidths[column.id] || DEFAULT_COLUMN_WIDTH),\n 0\n );\n\n return <WidthsContext.Provider value={{ columnWidths, totalWidth, updateColumn }}>{children}</WidthsContext.Provider>;\n}\n\nexport function useColumnWidths() {\n return useContext(WidthsContext);\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { InternalContainerProps } from '../container/internal';
|
|
2
|
+
import { StickyColumnsCellState } from './sticky-columns';
|
|
2
3
|
import { TableProps } from './interfaces';
|
|
3
|
-
import { StickyColumnsCellState } from './use-sticky-columns';
|
|
4
4
|
export declare const applyTrackBy: <T>(trackBy: TableProps.TrackBy<T>, item: T) => any;
|
|
5
5
|
export declare const getItemKey: <T>(trackBy: TableProps.TrackBy<T> | undefined, item: T, index: number) => any;
|
|
6
6
|
export declare const getTrackableValue: <T>(trackBy: TableProps.TrackBy<T> | undefined, item: T) => any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"lib/default/","sources":["table/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"lib/default/","sources":["table/utils.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,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;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAAE,EAC7C,aAAa,EACb,cAAc,EACd,iBAAiB,GAClB,EAAE;IACD,aAAa,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,uBAAuB,CAAC,CAAC;IAClE,cAAc,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IACvC,iBAAiB,EAAE,aAAa,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC;CAClE,6CASA;AA8BD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,sBAAsB,GAAG,IAAI;;EAOvG"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"lib/default/","sources":["table/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"lib/default/","sources":["table/utils.ts"],"names":[],"mappings":"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","sourcesContent":["// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\nimport { InternalContainerProps } from '../container/internal';\nimport { StickyColumnsCellState } from './sticky-columns';\nimport { TableProps } from './interfaces';\nimport { warnOnce } from '@cloudscape-design/component-toolkit/internal';\n\nexport const applyTrackBy = <T>(trackBy: TableProps.TrackBy<T>, item: T) => {\n if (typeof trackBy === 'function') {\n return trackBy(item);\n }\n return (item as any)[trackBy];\n};\n\nexport const getItemKey = <T>(trackBy: TableProps.TrackBy<T> | undefined, item: T, index: number) => {\n if (!trackBy) {\n return index;\n }\n return applyTrackBy(trackBy, item);\n};\n\nexport const getTrackableValue = <T>(trackBy: TableProps.TrackBy<T> | undefined, item: T) => {\n if (!trackBy) {\n return item;\n }\n return applyTrackBy(trackBy, item);\n};\n\nexport const getColumnKey = <T>(column: TableProps.ColumnDefinition<T>, index: number) => {\n return column.id || index;\n};\n\nexport const toContainerVariant = (variant: TableProps.Variant | undefined): InternalContainerProps['variant'] => {\n const isDefaultVariant = !variant || variant === 'container';\n return isDefaultVariant ? 'default' : variant === 'borderless' ? 'embedded' : variant;\n};\n\nexport function checkSortingState<T>(\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<T>>,\n sortingComparator: TableProps.SortingColumn<T>['sortingComparator']\n) {\n const matchedColumn = columnDefinitions.filter(column => column.sortingComparator === sortingComparator)[0];\n if (!matchedColumn) {\n warnOnce(\n 'Table',\n 'Currently active sorting comparator was not found in any columns. Make sure to provide the same comparator function instance on each render.'\n );\n }\n}\n\nexport function getVisibleColumnDefinitions<T>({\n columnDisplay,\n visibleColumns,\n columnDefinitions,\n}: {\n columnDisplay?: ReadonlyArray<TableProps.ColumnDisplayProperties>;\n visibleColumns?: ReadonlyArray<string>;\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<T>>;\n}) {\n // columnsDisplay has a precedence over visibleColumns.\n if (columnDisplay) {\n return getVisibleColumnDefinitionsFromColumnDisplay({ columnDisplay, columnDefinitions });\n } else if (visibleColumns) {\n return getVisibleColumnDefinitionsFromVisibleColumns({ visibleColumns, columnDefinitions });\n } else {\n return columnDefinitions;\n }\n}\n\nfunction getVisibleColumnDefinitionsFromColumnDisplay<T>({\n columnDisplay,\n columnDefinitions,\n}: {\n columnDisplay: ReadonlyArray<TableProps.ColumnDisplayProperties>;\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<T>>;\n}) {\n const columnDefinitionsById: Record<string, TableProps.ColumnDefinition<T>> = columnDefinitions.reduce(\n (accumulator, item) => (item.id === undefined ? accumulator : { ...accumulator, [item.id]: item }),\n {}\n );\n return columnDisplay\n .filter(item => item.visible)\n .map(item => columnDefinitionsById[item.id])\n .filter(Boolean);\n}\n\nfunction getVisibleColumnDefinitionsFromVisibleColumns<T>({\n visibleColumns,\n columnDefinitions,\n}: {\n visibleColumns: ReadonlyArray<string>;\n columnDefinitions: ReadonlyArray<TableProps.ColumnDefinition<T>>;\n}) {\n const ids = new Set(visibleColumns);\n return columnDefinitions.filter(({ id }) => id !== undefined && ids.has(id));\n}\n\nexport function getStickyClassNames(styles: Record<string, string>, props: StickyColumnsCellState | null) {\n return {\n [styles['sticky-cell']]: !!props,\n [styles['sticky-cell-pad-left']]: !!props?.padLeft,\n [styles['sticky-cell-last-left']]: !!props?.lastLeft,\n [styles['sticky-cell-last-right']]: !!props?.lastRight,\n };\n}\n"]}
|
|
@@ -16,6 +16,6 @@ export default class AppLayoutWrapper extends ComponentWrapper {
|
|
|
16
16
|
findActiveDrawerCloseButton(): ElementWrapper<HTMLButtonElement> | null;
|
|
17
17
|
findDrawersDesktopTriggersContainer(): ElementWrapper | null;
|
|
18
18
|
findDrawersMobileTriggersContainer(): ElementWrapper | null;
|
|
19
|
-
findDrawersTriggers(): ElementWrapper<HTMLButtonElement>[]
|
|
19
|
+
findDrawersTriggers(): ElementWrapper<HTMLButtonElement>[];
|
|
20
20
|
findDrawersSlider(): ElementWrapper | null;
|
|
21
21
|
}
|