@navikt/ds-react 8.10.6 → 8.11.1
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/cjs/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js +5 -1
- package/cjs/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js.map +1 -1
- package/cjs/data/drag-and-drop/root/DragAndDropRoot.d.ts +1 -1
- package/cjs/data/drag-and-drop/root/DragAndDropRoot.js +50 -20
- package/cjs/data/drag-and-drop/root/DragAndDropRoot.js.map +1 -1
- package/cjs/data/stories/Data.test-data.d.ts +2 -2
- package/cjs/data/stories/Data.test-data.js +37 -42
- package/cjs/data/stories/Data.test-data.js.map +1 -1
- package/cjs/data/table/base-cell/DataTableBaseCell.d.ts +4 -4
- package/cjs/data/table/base-cell/DataTableBaseCell.js +2 -2
- package/cjs/data/table/base-cell/DataTableBaseCell.js.map +1 -1
- package/cjs/data/table/column-header/DataTableColumnHeader.d.ts +3 -15
- package/cjs/data/table/column-header/DataTableColumnHeader.js +8 -5
- package/cjs/data/table/column-header/DataTableColumnHeader.js.map +1 -1
- package/cjs/data/table/column-header/useTableColumnResize.d.ts +2 -4
- package/cjs/data/table/column-header/useTableColumnResize.js +15 -11
- package/cjs/data/table/column-header/useTableColumnResize.js.map +1 -1
- package/cjs/data/table/helpers/collectTableRowEntries.d.ts +1 -1
- package/cjs/data/table/helpers/selection/getMultipleSelectProps.d.ts +6 -5
- package/cjs/data/table/helpers/selection/getMultipleSelectProps.js +6 -2
- package/cjs/data/table/helpers/selection/getMultipleSelectProps.js.map +1 -1
- package/cjs/data/table/helpers/selection/getSingleSelectProps.d.ts +3 -3
- package/cjs/data/table/helpers/selection/getSingleSelectProps.js +1 -1
- package/cjs/data/table/helpers/selection/getSingleSelectProps.js.map +1 -1
- package/cjs/data/table/helpers/selection/selection.types.d.ts +19 -27
- package/cjs/data/table/helpers/selection/selection.utils.d.ts +1 -1
- package/cjs/data/table/helpers/table-focus.js +1 -1
- package/cjs/data/table/helpers/table-focus.js.map +1 -1
- package/cjs/data/table/hooks/useColumnOptions.d.ts +8 -5
- package/cjs/data/table/hooks/useColumnOptions.js +25 -10
- package/cjs/data/table/hooks/useColumnOptions.js.map +1 -1
- package/cjs/data/table/hooks/useTableDetailsPanel.d.ts +8 -9
- package/cjs/data/table/hooks/useTableDetailsPanel.js.map +1 -1
- package/cjs/data/table/hooks/useTableItems.d.ts +10 -11
- package/cjs/data/table/hooks/useTableItems.js +11 -3
- package/cjs/data/table/hooks/useTableItems.js.map +1 -1
- package/cjs/data/table/hooks/useTableSelection.d.ts +2 -1
- package/cjs/data/table/hooks/useTableSelection.js +46 -29
- package/cjs/data/table/hooks/useTableSelection.js.map +1 -1
- package/cjs/data/table/hooks/useTableSort.d.ts +13 -7
- package/cjs/data/table/hooks/useTableSort.js +8 -9
- package/cjs/data/table/hooks/useTableSort.js.map +1 -1
- package/cjs/data/table/index.d.ts +1 -1
- package/cjs/data/table/index.js +3 -23
- package/cjs/data/table/index.js.map +1 -1
- package/cjs/data/table/root/{DataTable.types.d.ts → DataGridTable.types.d.ts} +16 -26
- package/cjs/data/table/root/DataGridTable.types.js +3 -0
- package/cjs/data/table/root/DataGridTable.types.js.map +1 -0
- package/cjs/data/table/root/DataGridTableRoot.d.ts +104 -0
- package/cjs/data/table/root/{DataTableRoot.js → DataGridTableRoot.js} +59 -38
- package/cjs/data/table/root/DataGridTableRoot.js.map +1 -0
- package/cjs/data/table/root/DataTableRoot.context.d.ts +6 -2
- package/cjs/data/table/root/DataTableRoot.context.js.map +1 -1
- package/cjs/data/table/tbody/DataTableTbody.js +3 -3
- package/cjs/data/table/tbody/DataTableTbody.js.map +1 -1
- package/cjs/data/table/tr/DataTableTr.d.ts +3 -3
- package/cjs/data/table/tr/DataTableTr.js +45 -23
- package/cjs/data/table/tr/DataTableTr.js.map +1 -1
- package/cjs/data/token-filter/TokenFilter.d.ts +0 -6
- package/cjs/data/token-filter/TokenFilter.js +1 -1
- package/cjs/data-grid/index.d.ts +2 -0
- package/cjs/data-grid/index.js +9 -0
- package/cjs/data-grid/index.js.map +1 -0
- package/cjs/data-grid/root/DataGrid.types.d.ts +48 -0
- package/cjs/{data/table/root/DataTable.types.js → data-grid/root/DataGrid.types.js} +1 -1
- package/cjs/data-grid/root/DataGrid.types.js.map +1 -0
- package/cjs/data-grid/root/DataGridRoot.context.d.ts +16 -0
- package/cjs/{data/data-grid → data-grid}/root/DataGridRoot.context.js +1 -1
- package/cjs/data-grid/root/DataGridRoot.context.js.map +1 -0
- package/cjs/data-grid/root/DataGridRoot.d.ts +89 -0
- package/cjs/{data/data-grid → data-grid}/root/DataGridRoot.js +35 -8
- package/cjs/data-grid/root/DataGridRoot.js.map +1 -0
- package/cjs/preview.d.ts +1 -0
- package/cjs/{data/data-grid/index.js → preview.js} +3 -3
- package/cjs/preview.js.map +1 -0
- package/cjs/primitives/bleed/Bleed.d.ts +0 -2
- package/cjs/primitives/bleed/Bleed.js.map +1 -1
- package/cjs/table/ColumnHeader.js.map +1 -1
- package/cjs/tabs/Tabs.context.d.ts +1 -1
- package/cjs/tabs/useTabs.d.ts +1 -1
- package/cjs/toggle-group/ToggleGroup.context.d.ts +1 -1
- package/cjs/toggle-group/useToggleGroup.d.ts +1 -1
- package/cjs/utils/components/dismissablelayer/DismissableLayer.js +1 -0
- package/cjs/utils/components/dismissablelayer/DismissableLayer.js.map +1 -1
- package/cjs/utils/components/dismissablelayer/util/useFocusOutside.d.ts +1 -0
- package/cjs/utils/components/dismissablelayer/util/useFocusOutside.js +11 -1
- package/cjs/utils/components/dismissablelayer/util/useFocusOutside.js.map +1 -1
- package/cjs/utils/hooks/useControllableState.d.ts +1 -1
- package/cjs/utils/hooks/useControllableState.js.map +1 -1
- package/esm/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js +5 -1
- package/esm/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js.map +1 -1
- package/esm/data/drag-and-drop/root/DragAndDropRoot.d.ts +1 -1
- package/esm/data/drag-and-drop/root/DragAndDropRoot.js +51 -21
- package/esm/data/drag-and-drop/root/DragAndDropRoot.js.map +1 -1
- package/esm/data/stories/Data.test-data.d.ts +2 -2
- package/esm/data/stories/Data.test-data.js +37 -42
- package/esm/data/stories/Data.test-data.js.map +1 -1
- package/esm/data/table/base-cell/DataTableBaseCell.d.ts +4 -4
- package/esm/data/table/base-cell/DataTableBaseCell.js +2 -2
- package/esm/data/table/base-cell/DataTableBaseCell.js.map +1 -1
- package/esm/data/table/column-header/DataTableColumnHeader.d.ts +3 -15
- package/esm/data/table/column-header/DataTableColumnHeader.js +8 -5
- package/esm/data/table/column-header/DataTableColumnHeader.js.map +1 -1
- package/esm/data/table/column-header/useTableColumnResize.d.ts +2 -4
- package/esm/data/table/column-header/useTableColumnResize.js +15 -11
- package/esm/data/table/column-header/useTableColumnResize.js.map +1 -1
- package/esm/data/table/helpers/collectTableRowEntries.d.ts +1 -1
- package/esm/data/table/helpers/selection/getMultipleSelectProps.d.ts +6 -5
- package/esm/data/table/helpers/selection/getMultipleSelectProps.js +6 -2
- package/esm/data/table/helpers/selection/getMultipleSelectProps.js.map +1 -1
- package/esm/data/table/helpers/selection/getSingleSelectProps.d.ts +3 -3
- package/esm/data/table/helpers/selection/getSingleSelectProps.js +1 -1
- package/esm/data/table/helpers/selection/getSingleSelectProps.js.map +1 -1
- package/esm/data/table/helpers/selection/selection.types.d.ts +19 -27
- package/esm/data/table/helpers/selection/selection.utils.d.ts +1 -1
- package/esm/data/table/helpers/table-focus.js +1 -1
- package/esm/data/table/helpers/table-focus.js.map +1 -1
- package/esm/data/table/hooks/useColumnOptions.d.ts +8 -5
- package/esm/data/table/hooks/useColumnOptions.js +25 -10
- package/esm/data/table/hooks/useColumnOptions.js.map +1 -1
- package/esm/data/table/hooks/useTableDetailsPanel.d.ts +8 -9
- package/esm/data/table/hooks/useTableDetailsPanel.js.map +1 -1
- package/esm/data/table/hooks/useTableItems.d.ts +10 -11
- package/esm/data/table/hooks/useTableItems.js +11 -3
- package/esm/data/table/hooks/useTableItems.js.map +1 -1
- package/esm/data/table/hooks/useTableSelection.d.ts +2 -1
- package/esm/data/table/hooks/useTableSelection.js +46 -29
- package/esm/data/table/hooks/useTableSelection.js.map +1 -1
- package/esm/data/table/hooks/useTableSort.d.ts +13 -7
- package/esm/data/table/hooks/useTableSort.js +9 -10
- package/esm/data/table/hooks/useTableSort.js.map +1 -1
- package/esm/data/table/index.d.ts +1 -1
- package/esm/data/table/index.js +1 -21
- package/esm/data/table/index.js.map +1 -1
- package/esm/data/table/root/{DataTable.types.d.ts → DataGridTable.types.d.ts} +16 -26
- package/esm/data/table/root/DataGridTable.types.js +2 -0
- package/esm/data/table/root/DataGridTable.types.js.map +1 -0
- package/esm/data/table/root/DataGridTableRoot.d.ts +104 -0
- package/esm/data/table/root/{DataTableRoot.js → DataGridTableRoot.js} +61 -39
- package/esm/data/table/root/DataGridTableRoot.js.map +1 -0
- package/esm/data/table/root/DataTableRoot.context.d.ts +6 -2
- package/esm/data/table/root/DataTableRoot.context.js.map +1 -1
- package/esm/data/table/tbody/DataTableTbody.js +3 -3
- package/esm/data/table/tbody/DataTableTbody.js.map +1 -1
- package/esm/data/table/tr/DataTableTr.d.ts +3 -3
- package/esm/data/table/tr/DataTableTr.js +45 -23
- package/esm/data/table/tr/DataTableTr.js.map +1 -1
- package/esm/data/token-filter/TokenFilter.d.ts +0 -6
- package/esm/data/token-filter/TokenFilter.js +1 -1
- package/esm/data-grid/index.d.ts +2 -0
- package/esm/data-grid/index.js +4 -0
- package/esm/data-grid/index.js.map +1 -0
- package/esm/data-grid/root/DataGrid.types.d.ts +48 -0
- package/esm/data-grid/root/DataGrid.types.js +2 -0
- package/esm/data-grid/root/DataGrid.types.js.map +1 -0
- package/esm/data-grid/root/DataGridRoot.context.d.ts +16 -0
- package/esm/{data/data-grid → data-grid}/root/DataGridRoot.context.js +1 -1
- package/esm/data-grid/root/DataGridRoot.context.js.map +1 -0
- package/esm/data-grid/root/DataGridRoot.d.ts +89 -0
- package/esm/data-grid/root/DataGridRoot.js +59 -0
- package/esm/data-grid/root/DataGridRoot.js.map +1 -0
- package/esm/preview.d.ts +1 -0
- package/esm/preview.js +3 -0
- package/esm/preview.js.map +1 -0
- package/esm/primitives/bleed/Bleed.d.ts +0 -2
- package/esm/primitives/bleed/Bleed.js.map +1 -1
- package/esm/table/ColumnHeader.js.map +1 -1
- package/esm/tabs/Tabs.context.d.ts +1 -1
- package/esm/tabs/useTabs.d.ts +1 -1
- package/esm/toggle-group/ToggleGroup.context.d.ts +1 -1
- package/esm/toggle-group/useToggleGroup.d.ts +1 -1
- package/esm/utils/components/dismissablelayer/DismissableLayer.js +1 -0
- package/esm/utils/components/dismissablelayer/DismissableLayer.js.map +1 -1
- package/esm/utils/components/dismissablelayer/util/useFocusOutside.d.ts +1 -0
- package/esm/utils/components/dismissablelayer/util/useFocusOutside.js +12 -2
- package/esm/utils/components/dismissablelayer/util/useFocusOutside.js.map +1 -1
- package/esm/utils/hooks/useControllableState.d.ts +1 -1
- package/esm/utils/hooks/useControllableState.js.map +1 -1
- package/package.json +25 -5
- package/src/data/drag-and-drop/drag-handler/DragAndDropDragHandler.tsx +5 -1
- package/src/data/drag-and-drop/root/DragAndDropRoot.tsx +55 -25
- package/src/data/stories/Data.test-data.tsx +53 -51
- package/src/data/table/base-cell/DataTableBaseCell.tsx +6 -6
- package/src/data/table/column-header/DataTableColumnHeader.tsx +17 -20
- package/src/data/table/column-header/useTableColumnResize.ts +19 -16
- package/src/data/table/helpers/collectTableRowEntries.ts +1 -1
- package/src/data/table/helpers/selection/getMultipleSelectProps.ts +11 -5
- package/src/data/table/helpers/selection/getSingleSelectProps.ts +4 -4
- package/src/data/table/helpers/selection/selection.types.ts +18 -29
- package/src/data/table/helpers/selection/selection.utils.test.ts +1 -1
- package/src/data/table/helpers/selection/selection.utils.ts +1 -1
- package/src/data/table/helpers/table-focus.ts +1 -1
- package/src/data/table/hooks/__tests__/useTableItems.test.ts +1 -1
- package/src/data/table/hooks/useColumnOptions.ts +50 -15
- package/src/data/table/hooks/useTableDetailsPanel.tsx +14 -18
- package/src/data/table/hooks/useTableItems.ts +37 -23
- package/src/data/table/hooks/useTableSelection.ts +62 -45
- package/src/data/table/hooks/useTableSort.ts +29 -17
- package/src/data/table/index.tsx +4 -21
- package/src/data/table/root/{DataTable.types.ts → DataGridTable.types.ts} +17 -30
- package/src/data/table/root/{DataTableRoot.tsx → DataGridTableRoot.tsx} +198 -144
- package/src/data/table/root/DataTableRoot.context.ts +10 -8
- package/src/data/table/sub-row-toggle/DataTableSubRowToggle.tsx +1 -1
- package/src/data/table/tbody/DataTableTbody.tsx +3 -3
- package/src/data/table/tr/DataTableTr.tsx +51 -20
- package/src/data/token-filter/TokenFilter.tsx +1 -1
- package/src/data-grid/index.ts +3 -0
- package/src/data-grid/root/DataGrid.types.ts +46 -0
- package/src/data-grid/root/DataGridRoot.context.ts +21 -0
- package/src/data-grid/root/DataGridRoot.tsx +154 -0
- package/src/preview.ts +2 -0
- package/src/primitives/bleed/Bleed.tsx +0 -2
- package/src/table/ColumnHeader.tsx +1 -0
- package/src/utils/components/dismissablelayer/DismissableLayer.tsx +1 -0
- package/src/utils/components/dismissablelayer/util/useFocusOutside.ts +14 -2
- package/src/utils/hooks/useControllableState.ts +10 -8
- package/cjs/data/data-grid/index.d.ts +0 -2
- package/cjs/data/data-grid/index.js.map +0 -1
- package/cjs/data/data-grid/root/DataGridRoot.context.d.ts +0 -11
- package/cjs/data/data-grid/root/DataGridRoot.context.js.map +0 -1
- package/cjs/data/data-grid/root/DataGridRoot.d.ts +0 -38
- package/cjs/data/data-grid/root/DataGridRoot.js.map +0 -1
- package/cjs/data/table/root/DataTable.types.js.map +0 -1
- package/cjs/data/table/root/DataTableRoot.d.ts +0 -118
- package/cjs/data/table/root/DataTableRoot.js.map +0 -1
- package/cjs/data/table/root/DataTableRoot.legacy.d.ts +0 -172
- package/cjs/data/table/root/DataTableRoot.legacy.js +0 -118
- package/cjs/data/table/root/DataTableRoot.legacy.js.map +0 -1
- package/esm/data/data-grid/index.d.ts +0 -2
- package/esm/data/data-grid/index.js +0 -3
- package/esm/data/data-grid/index.js.map +0 -1
- package/esm/data/data-grid/root/DataGridRoot.context.d.ts +0 -11
- package/esm/data/data-grid/root/DataGridRoot.context.js.map +0 -1
- package/esm/data/data-grid/root/DataGridRoot.d.ts +0 -38
- package/esm/data/data-grid/root/DataGridRoot.js +0 -32
- package/esm/data/data-grid/root/DataGridRoot.js.map +0 -1
- package/esm/data/table/root/DataTable.types.js +0 -2
- package/esm/data/table/root/DataTable.types.js.map +0 -1
- package/esm/data/table/root/DataTableRoot.d.ts +0 -118
- package/esm/data/table/root/DataTableRoot.js.map +0 -1
- package/esm/data/table/root/DataTableRoot.legacy.d.ts +0 -172
- package/esm/data/table/root/DataTableRoot.legacy.js +0 -73
- package/esm/data/table/root/DataTableRoot.legacy.js.map +0 -1
- package/src/data/data-grid/index.ts +0 -3
- package/src/data/data-grid/root/DataGridRoot.context.ts +0 -16
- package/src/data/data-grid/root/DataGridRoot.tsx +0 -71
- package/src/data/table/Readme.md +0 -11
- package/src/data/table/agent-component-review.md +0 -175
- package/src/data/table/root/DataTableRoot.legacy.tsx +0 -305
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { type DataTableBaseCellProps } from "../base-cell/DataTableBaseCell";
|
|
3
|
-
import type { SortDirection } from "../root/DataTable.types";
|
|
4
3
|
import { type ResizeProps } from "./useTableColumnResize";
|
|
5
4
|
interface DataTableColumnHeaderProps extends DataTableBaseCellProps {
|
|
6
5
|
/**
|
|
7
|
-
* Unique identifier for the column.
|
|
6
|
+
* Unique identifier for the column. Used when sorting to identify which column is being sorted.
|
|
8
7
|
*/
|
|
9
|
-
id
|
|
8
|
+
id: string;
|
|
10
9
|
/**
|
|
11
10
|
* Accessible name of the column.
|
|
12
11
|
*/
|
|
@@ -16,17 +15,6 @@ interface DataTableColumnHeaderProps extends DataTableBaseCellProps {
|
|
|
16
15
|
* The entire header cell content becomes a clickable button when true.
|
|
17
16
|
*/
|
|
18
17
|
sortable?: boolean;
|
|
19
|
-
/**
|
|
20
|
-
* Current sort direction. Only relevant when `sortable` is true.
|
|
21
|
-
* Uses values matching the `aria-sort` attribute directly. // TODO: What does this mean? (Can we just remove it?)
|
|
22
|
-
* @default "none"
|
|
23
|
-
*/
|
|
24
|
-
sortDirection?: SortDirection;
|
|
25
|
-
/**
|
|
26
|
-
* Called when the user clicks the header. Only relevant when `sortable` is true.
|
|
27
|
-
* The consumer is responsible for determining and setting the next sort state. // TODO: We don't use the term "consumer" in JSDoc anywhere else
|
|
28
|
-
*/
|
|
29
|
-
onSortClick?: (event: React.MouseEvent<HTMLElement>) => void;
|
|
30
18
|
/**
|
|
31
19
|
* Object with props related to column width and resizing. Summary:
|
|
32
20
|
*
|
|
@@ -35,7 +23,7 @@ interface DataTableColumnHeaderProps extends DataTableBaseCellProps {
|
|
|
35
23
|
* - `resizeMin?: number` - Minimum width of the column when resizing.
|
|
36
24
|
* - `resizeMax?: number` - Maximum width of the column when resizing.
|
|
37
25
|
* - `value?: number | string` - Controlled width of the column.
|
|
38
|
-
* - `
|
|
26
|
+
* - `defaultValue?: number | string` - Initial width of the column.
|
|
39
27
|
* - `onChange?: (width: number) => void` - Called when the column width changes.
|
|
40
28
|
*
|
|
41
29
|
* See individual props for details and defaults.
|
|
@@ -47,6 +47,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
47
47
|
exports.DataTableColumnHeader = void 0;
|
|
48
48
|
const react_1 = __importStar(require("react"));
|
|
49
49
|
const aksel_icons_1 = require("@navikt/aksel-icons");
|
|
50
|
+
const DataGridRoot_context_1 = require("../../../data-grid/root/DataGridRoot.context");
|
|
50
51
|
const helpers_1 = require("../../../utils/helpers");
|
|
51
52
|
const hooks_1 = require("../../../utils/hooks");
|
|
52
53
|
const DataTableBaseCell_1 = require("../base-cell/DataTableBaseCell");
|
|
@@ -64,6 +65,7 @@ const SORT_ICON = {
|
|
|
64
65
|
*/
|
|
65
66
|
const DataTableColumnHeader = (0, react_1.forwardRef)((_a, forwardedRef) => {
|
|
66
67
|
var { id, label, sortable = false, width, cellType, className, children, style } = _a, rest = __rest(_a, ["id", "label", "sortable", "width", "cellType", "className", "children", "style"]);
|
|
68
|
+
const { isLoading } = (0, DataGridRoot_context_1.useDataGridContext)();
|
|
67
69
|
const thRef = (0, react_1.useRef)(null);
|
|
68
70
|
const mergedRef = (0, hooks_1.useMergeRefs)(forwardedRef, thRef);
|
|
69
71
|
const { sortingState } = (0, DataTableRoot_context_1.useDataTableContext)();
|
|
@@ -76,10 +78,11 @@ const DataTableColumnHeader = (0, react_1.forwardRef)((_a, forwardedRef) => {
|
|
|
76
78
|
}, [id, sortState]);
|
|
77
79
|
const canSort = sortable && id !== undefined;
|
|
78
80
|
const SortIcon = canSort ? SORT_ICON[sortDirection] : null;
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
81
|
+
const contentId = `th-content-${id.replace(/\s/g, "-")}`;
|
|
82
|
+
return (react_1.default.createElement(DataTableBaseCell_1.DataTableBaseCell, Object.assign({ as: "th" }, rest, { ref: mergedRef, className: (0, helpers_1.cl)("aksel-data-table__column-header", className), "data-sortable": canSort, style: Object.assign(Object.assign({}, style), { width: resizeResult.width }), "aria-sort": canSort ? getAriaSort(sortDirection) : undefined, cellType: cellType, "aria-labelledby": contentId }),
|
|
83
|
+
canSort ? (react_1.default.createElement("button", { type: "button", className: "aksel-data-table__th-sort-button", onClick: (event) => onSortClick(id, event), disabled: isLoading },
|
|
84
|
+
react_1.default.createElement("div", { id: contentId, className: "aksel-data-table__th-content" }, children),
|
|
85
|
+
SortIcon && (react_1.default.createElement(SortIcon, { "aria-hidden": true, "data-sort-direction": sortDirection, className: "aksel-data-table__th-sort-icon", fontSize: "1.25rem" })))) : (react_1.default.createElement("div", { id: contentId, className: (0, helpers_1.cl)({
|
|
83
86
|
"aksel-data-table__th-content": cellType !== "action",
|
|
84
87
|
}) }, children)),
|
|
85
88
|
resizeResult.enabled && cellType !== "action" && (react_1.default.createElement("button", Object.assign({}, resizeResult.resizeHandlerProps, { type: "button", className: "aksel-data-table__th-resize-handle", "aria-label": resizeResult.isResizingWithKeyboard
|
|
@@ -87,7 +90,7 @@ const DataTableColumnHeader = (0, react_1.forwardRef)((_a, forwardedRef) => {
|
|
|
87
90
|
: `Endre bredde ${label}`, "data-active": resizeResult.isResizingWithKeyboard, "data-disable-keyboard-nav": resizeResult.isResizingWithKeyboard, "data-block-keyboard-nav": true, role: "slider", "aria-valuenow": typeof resizeResult.width === "number" ? resizeResult.width : 0, "aria-valuetext": typeof resizeResult.width === "number" &&
|
|
88
91
|
resizeResult.isResizingWithKeyboard
|
|
89
92
|
? resizeResult.width.toString()
|
|
90
|
-
: "" // Needs to be blank when not in keyboard resizing mode to avoid NVDA announcing the value as part of the column heading
|
|
93
|
+
: " " // Needs to be blank when not in keyboard resizing mode to avoid NVDA announcing the value as part of the column heading
|
|
91
94
|
}), resizeResult.isResizingWithKeyboard && (react_1.default.createElement(react_1.default.Fragment, null,
|
|
92
95
|
react_1.default.createElement("span", { className: "aksel-data-table__th-resize-handle-indicator" },
|
|
93
96
|
react_1.default.createElement(aksel_icons_1.CaretLeftCircleFillIcon, { "aria-hidden": true, fontSize: "1.5rem" })),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableColumnHeader.js","sourceRoot":"","sources":["../../../../src/data/table/column-header/DataTableColumnHeader.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA2D;AAC3D,qDAM6B;AAC7B,oDAA4C;AAC5C,gDAAoD;AACpD,sEAGwC;
|
|
1
|
+
{"version":3,"file":"DataTableColumnHeader.js","sourceRoot":"","sources":["../../../../src/data/table/column-header/DataTableColumnHeader.tsx"],"names":[],"mappings":"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"}
|
|
@@ -16,8 +16,6 @@ type ResizeProps = {
|
|
|
16
16
|
* consider using `layout="auto"` on the root instead for better performance.
|
|
17
17
|
*
|
|
18
18
|
* **NB:** This can cause a layout shift. Set a good initial width with `width` or `defaultWidth` to mitigate this.
|
|
19
|
-
*
|
|
20
|
-
* **NB:** Does not work with block content.
|
|
21
19
|
*/
|
|
22
20
|
autoResizeOnce?: boolean;
|
|
23
21
|
/**
|
|
@@ -44,7 +42,7 @@ type ResizeProps = {
|
|
|
44
42
|
* **NB:** Percentage as initial width does not work well with resizing.
|
|
45
43
|
* @default 140px
|
|
46
44
|
*/
|
|
47
|
-
|
|
45
|
+
defaultValue?: number | string;
|
|
48
46
|
/**
|
|
49
47
|
* Called when the column width changes.
|
|
50
48
|
* @param width New width in pixels.
|
|
@@ -76,6 +74,6 @@ type TableColumnResizeResult = {
|
|
|
76
74
|
* - Auto-width mode is hard now since that might cause layout-shifts on mount. But would be preferable to
|
|
77
75
|
* be able to set "1fr" or similar and have it fill remaining space.
|
|
78
76
|
*/
|
|
79
|
-
declare function useTableColumnResize({ resizable, autoResizeOnce, resizeMin, resizeMax, value,
|
|
77
|
+
declare function useTableColumnResize({ resizable, autoResizeOnce, resizeMin, resizeMax, value, defaultValue, onChange, thRef, colSpan, }: TableColumnResizeArgs): TableColumnResizeResult;
|
|
80
78
|
export { useTableColumnResize };
|
|
81
79
|
export type { ResizeProps };
|
|
@@ -9,13 +9,13 @@ const DataTableRoot_context_1 = require("../root/DataTableRoot.context");
|
|
|
9
9
|
* - Auto-width mode is hard now since that might cause layout-shifts on mount. But would be preferable to
|
|
10
10
|
* be able to set "1fr" or similar and have it fill remaining space.
|
|
11
11
|
*/
|
|
12
|
-
function useTableColumnResize({ resizable = true, autoResizeOnce, resizeMin = 40, resizeMax = Infinity, value,
|
|
12
|
+
function useTableColumnResize({ resizable = true, autoResizeOnce, resizeMin = 40, resizeMax = Infinity, value, defaultValue, onChange, thRef, colSpan, }) {
|
|
13
13
|
const tableContext = (0, DataTableRoot_context_1.useDataTableContext)();
|
|
14
14
|
const [isResizingWithKeyboard, setIsResizingWithKeyboard] = (0, react_1.useState)(false);
|
|
15
15
|
const ignoreNextOnClick = (0, react_1.useRef)(false);
|
|
16
16
|
const [width, setWidth] = (0, hooks_1.useControllableState)({
|
|
17
17
|
value,
|
|
18
|
-
defaultValue:
|
|
18
|
+
defaultValue: defaultValue !== null && defaultValue !== void 0 ? defaultValue : (colSpan !== null && colSpan !== void 0 ? colSpan : 1) * 140,
|
|
19
19
|
/**
|
|
20
20
|
* TODO:
|
|
21
21
|
* - Potential optimization: Only call when width as "stopped" changing, e.g. on mouse up or after a debounce when resizing with keyboard.
|
|
@@ -153,7 +153,6 @@ function useTableColumnResize({ resizable = true, autoResizeOnce, resizeMin = 40
|
|
|
153
153
|
}
|
|
154
154
|
/**
|
|
155
155
|
* Figures out how wide the column needs to be to fit all the content without truncation.
|
|
156
|
-
* NB: Does not work with block content!
|
|
157
156
|
*/
|
|
158
157
|
function getAutoColumnWidth(thRef) {
|
|
159
158
|
var _a;
|
|
@@ -197,15 +196,20 @@ function getAutoColumnWidth(thRef) {
|
|
|
197
196
|
skipRows = cell.rowSpan - 1;
|
|
198
197
|
// Find needed width
|
|
199
198
|
const cellContent = cell.querySelector(".aksel-data-table__cell-content");
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
199
|
+
if (!cellContent) {
|
|
200
|
+
continue;
|
|
201
|
+
}
|
|
202
|
+
cellContent.style.width = "fit-content";
|
|
203
|
+
const cellContentWidth = cellContent.scrollWidth;
|
|
204
|
+
cellContent.style.removeProperty("width");
|
|
205
|
+
let marginLeft = 0;
|
|
206
|
+
if (cell.dataset.nested === "true") {
|
|
207
|
+
const contentElStyle = window.getComputedStyle(cellContent);
|
|
208
|
+
marginLeft = parseInt(contentElStyle.marginLeft, 10);
|
|
209
|
+
}
|
|
210
|
+
const widthNeededForThisCell = (cellContentWidth + marginLeft + 1) / cell.colSpan;
|
|
207
211
|
if (widthNeededForThisCell > newColumnWidth) {
|
|
208
|
-
newColumnWidth = widthNeededForThisCell;
|
|
212
|
+
newColumnWidth = Math.ceil(widthNeededForThisCell);
|
|
209
213
|
}
|
|
210
214
|
}
|
|
211
215
|
// Make sure new width is not wider than the table container since that would be impractical
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableColumnResize.js","sourceRoot":"","sources":["../../../../src/data/table/column-header/useTableColumnResize.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"useTableColumnResize.js","sourceRoot":"","sources":["../../../../src/data/table/column-header/useTableColumnResize.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
import type { SetStateAction } from "react";
|
|
2
2
|
import type { CheckboxInputProps } from "../../../../form/checkbox/checkbox-input/CheckboxInput";
|
|
3
3
|
import type { UseTableItemsReturn } from "../../hooks/useTableItems";
|
|
4
|
-
import type { TableRowEntryId } from "../../root/
|
|
5
|
-
import type {
|
|
4
|
+
import type { TableRowEntryId } from "../../root/DataGridTable.types";
|
|
5
|
+
import type { SelectionProps } from "./selection.types";
|
|
6
6
|
type GetMultipleSelectPropsArgs<T> = {
|
|
7
7
|
selectedKeysSet: Set<TableRowEntryId>;
|
|
8
|
-
selectedKeys:
|
|
9
|
-
setSelectedKeys: (next: SetStateAction<
|
|
8
|
+
selectedKeys: string[];
|
|
9
|
+
setSelectedKeys: (next: SetStateAction<string[]>) => void;
|
|
10
10
|
tableItems: UseTableItemsReturn<T>;
|
|
11
|
+
isLoading?: boolean;
|
|
11
12
|
} & Pick<SelectionProps<T>, "enableRowSelection">;
|
|
12
|
-
declare function getMultipleSelectProps<T>({ selectedKeysSet, selectedKeys, setSelectedKeys, enableRowSelection, tableItems, }: GetMultipleSelectPropsArgs<T>): {
|
|
13
|
+
declare function getMultipleSelectProps<T>({ selectedKeysSet, selectedKeys, setSelectedKeys, enableRowSelection, tableItems, isLoading, }: GetMultipleSelectPropsArgs<T>): {
|
|
13
14
|
getTheadCheckboxProps: () => CheckboxInputProps;
|
|
14
15
|
getRowCheckboxProps: (key: TableRowEntryId, row: T) => CheckboxInputProps;
|
|
15
16
|
toggleSelection: (key: TableRowEntryId, row: T) => void;
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getMultipleSelectProps = getMultipleSelectProps;
|
|
4
4
|
const consoleWarning_1 = require("../../../../utils/helpers/consoleWarning");
|
|
5
5
|
const selection_utils_1 = require("./selection.utils");
|
|
6
|
-
function getMultipleSelectProps({ selectedKeysSet, selectedKeys, setSelectedKeys, enableRowSelection, tableItems, }) {
|
|
6
|
+
function getMultipleSelectProps({ selectedKeysSet, selectedKeys, setSelectedKeys, enableRowSelection, tableItems, isLoading, }) {
|
|
7
7
|
const selectableIdsSet = new Set();
|
|
8
8
|
for (const [id, { rowData }] of tableItems.itemDetails) {
|
|
9
9
|
if ((0, selection_utils_1.canSelectTableRow)(enableRowSelection, { row: rowData, id })) {
|
|
@@ -18,7 +18,7 @@ function getMultipleSelectProps({ selectedKeysSet, selectedKeys, setSelectedKeys
|
|
|
18
18
|
const someSelected = selectedOnPageCount > 0;
|
|
19
19
|
const handleToggleRow = (key, row) => {
|
|
20
20
|
if (!row) {
|
|
21
|
-
(0, consoleWarning_1.consoleWarning)(`Row data is undefined for key ${key}. This may cause issues with selection if enableRowSelection is used.`);
|
|
21
|
+
(0, consoleWarning_1.consoleWarning)(`DataGrid.Table: Row data is undefined for key ${key}. This may cause issues with selection if enableRowSelection is used.`);
|
|
22
22
|
}
|
|
23
23
|
const checked = !selectedKeysSet.has(key);
|
|
24
24
|
const nextSet = new Set(selectedKeysSet);
|
|
@@ -35,6 +35,9 @@ function getMultipleSelectProps({ selectedKeysSet, selectedKeys, setSelectedKeys
|
|
|
35
35
|
}
|
|
36
36
|
};
|
|
37
37
|
const toggleAllRowSelected = (event) => {
|
|
38
|
+
if (isLoading) {
|
|
39
|
+
return;
|
|
40
|
+
}
|
|
38
41
|
if (event.target.checked) {
|
|
39
42
|
const preserved = selectedKeys.filter((k) => !selectableIdsSet.has(k));
|
|
40
43
|
setSelectedKeys([...preserved, ...selectableIdsSet]);
|
|
@@ -48,6 +51,7 @@ function getMultipleSelectProps({ selectedKeysSet, selectedKeys, setSelectedKeys
|
|
|
48
51
|
checked: isAllSelected,
|
|
49
52
|
indeterminate: !isAllSelected && someSelected,
|
|
50
53
|
onChange: toggleAllRowSelected,
|
|
54
|
+
disabled: selectableIdsSet.size === 0 || isLoading,
|
|
51
55
|
}),
|
|
52
56
|
getRowCheckboxProps: (key, row) => {
|
|
53
57
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getMultipleSelectProps.js","sourceRoot":"","sources":["../../../../../src/data/table/helpers/selection/getMultipleSelectProps.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"getMultipleSelectProps.js","sourceRoot":"","sources":["../../../../../src/data/table/helpers/selection/getMultipleSelectProps.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import type { RadioInputProps } from "../../../../form/radio/radio-input/RadioInput";
|
|
2
|
-
import type { TableRowEntryId } from "../../root/
|
|
3
|
-
import type {
|
|
2
|
+
import type { TableRowEntryId } from "../../root/DataGridTable.types";
|
|
3
|
+
import type { SelectionProps } from "./selection.types";
|
|
4
4
|
type GetSingleSelectPropsArgs<T> = {
|
|
5
5
|
selectedKeysSet: Set<TableRowEntryId>;
|
|
6
|
-
setSelectedKeys: (keys:
|
|
6
|
+
setSelectedKeys: (keys: string[]) => void;
|
|
7
7
|
name: string;
|
|
8
8
|
} & Pick<SelectionProps<T>, "enableRowSelection">;
|
|
9
9
|
declare function getSingleSelectProps<T>({ selectedKeysSet, setSelectedKeys, name, enableRowSelection, }: GetSingleSelectPropsArgs<T>): {
|
|
@@ -6,7 +6,7 @@ const selection_utils_1 = require("./selection.utils");
|
|
|
6
6
|
function getSingleSelectProps({ selectedKeysSet, setSelectedKeys, name, enableRowSelection, }) {
|
|
7
7
|
const handleSelectionChange = (key, row) => {
|
|
8
8
|
if (!row) {
|
|
9
|
-
(0, consoleWarning_1.consoleWarning)(`Row data is undefined for key ${key}. This may cause issues with selection if enableRowSelection is used.`);
|
|
9
|
+
(0, consoleWarning_1.consoleWarning)(`DataGrid.Table: Row data is undefined for key ${key}. This may cause issues with selection if enableRowSelection is used.`);
|
|
10
10
|
}
|
|
11
11
|
if (!(0, selection_utils_1.canSelectTableRow)(enableRowSelection, { row, id: key })) {
|
|
12
12
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSingleSelectProps.js","sourceRoot":"","sources":["../../../../../src/data/table/helpers/selection/getSingleSelectProps.ts"],"names":[],"mappings":";;AAoDS,oDAAoB;AAnD7B,6EAA0E;AAG1E,uDAAsD;AAQtD,SAAS,oBAAoB,CAAI,EAC/B,eAAe,EACf,eAAe,EACf,IAAI,EACJ,kBAAkB,GACU;IAC5B,MAAM,qBAAqB,GAAG,CAAC,GAAoB,EAAE,GAAM,EAAE,EAAE;QAC7D,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAA,+BAAc,EACZ,
|
|
1
|
+
{"version":3,"file":"getSingleSelectProps.js","sourceRoot":"","sources":["../../../../../src/data/table/helpers/selection/getSingleSelectProps.ts"],"names":[],"mappings":";;AAoDS,oDAAoB;AAnD7B,6EAA0E;AAG1E,uDAAsD;AAQtD,SAAS,oBAAoB,CAAI,EAC/B,eAAe,EACf,eAAe,EACf,IAAI,EACJ,kBAAkB,GACU;IAC5B,MAAM,qBAAqB,GAAG,CAAC,GAAoB,EAAE,GAAM,EAAE,EAAE;QAC7D,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAA,+BAAc,EACZ,iDAAiD,GAAG,uEAAuE,CAC5H,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAA,mCAAiB,EAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO;QACL,gBAAgB,EAAE,CAAC,GAAoB,EAAE,GAAM,EAAmB,EAAE;YAClE,MAAM,mBAAmB,GAAG,CAAC,IAAA,mCAAiB,EAAC,kBAAkB,EAAE;gBACjE,GAAG;gBACH,EAAE,EAAE,GAAG;aACR,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;gBACjC,QAAQ,EAAE,mBAAmB;oBAC3B,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI;oBACZ,CAAC,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC;gBACzC,QAAQ,EAAE,mBAAmB;gBAC7B,KAAK,EAAE,GAAG;gBACV,IAAI;aACL,CAAC;QACJ,CAAC;QACD,eAAe,EAAE,qBAAqB;KACvC,CAAC;AACJ,CAAC"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
import type { CheckboxInputProps } from "../../../../form/checkbox/checkbox-input/CheckboxInput";
|
|
2
2
|
import type { RadioInputProps } from "../../../../form/radio/radio-input/RadioInput";
|
|
3
|
-
|
|
4
|
-
type SelectedKeysT = TableRowEntryId[];
|
|
5
|
-
type SelectionProps<T = any> = {
|
|
3
|
+
type SelectionProps<T = unknown> = {
|
|
6
4
|
/**
|
|
7
5
|
* Enables selection of rows.
|
|
8
6
|
*
|
|
@@ -13,54 +11,48 @@ type SelectionProps<T = any> = {
|
|
|
13
11
|
*
|
|
14
12
|
* @default "none"
|
|
15
13
|
*/
|
|
16
|
-
|
|
14
|
+
mode: "none" | "single" | "multiple";
|
|
17
15
|
/**
|
|
18
|
-
* Controlled selected keys. Should be used in conjunction with `
|
|
16
|
+
* Controlled selected keys. Should be used in conjunction with `onSelectedRowIdsChange`.
|
|
19
17
|
*/
|
|
20
|
-
|
|
18
|
+
selectedRowIds?: string[];
|
|
21
19
|
/**
|
|
22
20
|
* Default selected keys when using uncontrolled selection. Should not be used together with `selectedKeys`.
|
|
23
21
|
*/
|
|
24
|
-
|
|
22
|
+
defaultSelectedRowIds?: string[];
|
|
25
23
|
/**
|
|
26
24
|
* Callback with array of selected keys.
|
|
27
25
|
*/
|
|
28
|
-
|
|
26
|
+
onSelectedRowIdsChange?: (ids: string[]) => void;
|
|
29
27
|
/**
|
|
30
28
|
* Callback to determine if a row should be enabled for selection.
|
|
31
29
|
*
|
|
32
|
-
*
|
|
33
30
|
* If set to a boolean, it will enable selection for all rows when true, and disable selection for all rows when false.
|
|
34
31
|
*/
|
|
35
32
|
enableRowSelection?: (({ row, id }: {
|
|
36
33
|
row: T;
|
|
37
|
-
id:
|
|
34
|
+
id: string;
|
|
38
35
|
}) => boolean) | boolean;
|
|
39
|
-
/**
|
|
40
|
-
* Determines if selection is triggered by clicking the row or the selection control (checkbox/radio).
|
|
41
|
-
* @default "row"
|
|
42
|
-
*/
|
|
43
|
-
selectionTrigger?: "row" | "control";
|
|
44
36
|
};
|
|
45
37
|
type NoneSelection = {
|
|
46
|
-
|
|
47
|
-
selectedKeys:
|
|
38
|
+
mode: "none";
|
|
39
|
+
selectedKeys: string[];
|
|
48
40
|
};
|
|
49
41
|
type SingleSelection = {
|
|
50
|
-
|
|
51
|
-
selectedKeys:
|
|
52
|
-
getRowRadioProps: (key:
|
|
53
|
-
toggleSelection: (key:
|
|
42
|
+
mode: "single";
|
|
43
|
+
selectedKeys: string[];
|
|
44
|
+
getRowRadioProps: (key: string, row: any) => RadioInputProps;
|
|
45
|
+
toggleSelection: (key: string, row: any) => void;
|
|
54
46
|
};
|
|
55
47
|
type MultipleSelection = {
|
|
56
|
-
|
|
57
|
-
selectedKeys:
|
|
48
|
+
mode: "multiple";
|
|
49
|
+
selectedKeys: string[];
|
|
58
50
|
getTheadCheckboxProps: () => CheckboxInputProps;
|
|
59
|
-
getRowCheckboxProps: (key:
|
|
60
|
-
toggleSelection: (key:
|
|
51
|
+
getRowCheckboxProps: (key: string, row: any) => CheckboxInputProps;
|
|
52
|
+
toggleSelection: (key: string, row: any) => void;
|
|
61
53
|
};
|
|
62
54
|
type TableSelectionBase = {
|
|
63
|
-
isRowSelected: (rowId:
|
|
55
|
+
isRowSelected: (rowId: string) => boolean;
|
|
64
56
|
};
|
|
65
57
|
type TableSelection = TableSelectionBase & (NoneSelection | SingleSelection | MultipleSelection);
|
|
66
|
-
export type { MultipleSelection, NoneSelection,
|
|
58
|
+
export type { MultipleSelection, NoneSelection, SelectionProps, SingleSelection, TableSelection, };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { TableRowEntryId } from "../../root/
|
|
1
|
+
import type { TableRowEntryId } from "../../root/DataGridTable.types";
|
|
2
2
|
import type { ItemDetail } from "../collectTableRowEntries";
|
|
3
3
|
import type { SelectionProps } from "./selection.types";
|
|
4
4
|
declare function canSelectTableRow<T>(enableRowSelection: SelectionProps<T>["enableRowSelection"], args: {
|
|
@@ -117,7 +117,7 @@ function getStickyOffsets(element) {
|
|
|
117
117
|
stickyHeaderHeight: 0,
|
|
118
118
|
};
|
|
119
119
|
}
|
|
120
|
-
const stickyHeader = table.querySelector(`.aksel-data-
|
|
120
|
+
const stickyHeader = table.querySelector(`.aksel-data-table__thead[data-sticky="true"]`);
|
|
121
121
|
const stickyNodesStart = table.querySelectorAll(`.aksel-data-table__column-header[data-sticky="start"]`);
|
|
122
122
|
const stickyNodesEnd = table.querySelectorAll(`.aksel-data-table__column-header[data-sticky="end"]`);
|
|
123
123
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table-focus.js","sourceRoot":"","sources":["../../../../src/data/table/helpers/table-focus.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"table-focus.js","sourceRoot":"","sources":["../../../../src/data/table/helpers/table-focus.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,16 @@
|
|
|
1
|
-
import type { ColumnDefinition, ColumnDefinitions } from "../root/
|
|
1
|
+
import type { ColumnDefinition, ColumnDefinitions } from "../root/DataGridTable.types";
|
|
2
2
|
type UseColumnOptions = {
|
|
3
3
|
stickyColumns?: {
|
|
4
|
-
start?:
|
|
5
|
-
end?:
|
|
4
|
+
start?: 1;
|
|
5
|
+
end?: 1;
|
|
6
6
|
};
|
|
7
7
|
hasSelection: boolean;
|
|
8
8
|
hasDetailsPanel: boolean;
|
|
9
9
|
layout: "fixed" | "auto";
|
|
10
|
+
columnDisplay?: {
|
|
11
|
+
id: string;
|
|
12
|
+
visible: boolean;
|
|
13
|
+
}[];
|
|
10
14
|
};
|
|
11
15
|
type StickyStartState = {
|
|
12
16
|
selection: boolean;
|
|
@@ -26,5 +30,4 @@ type UseColumnOptionsResult<T> = {
|
|
|
26
30
|
};
|
|
27
31
|
declare function useColumnOptions<T>(columnDefinitions: ColumnDefinitions<T>, options: UseColumnOptions): UseColumnOptionsResult<T>;
|
|
28
32
|
export { useColumnOptions };
|
|
29
|
-
export type { StickyStartState };
|
|
30
|
-
export type { UseColumnOptionsResult };
|
|
33
|
+
export type { StickyStartState, UseColumnOptionsResult };
|
|
@@ -2,19 +2,23 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useColumnOptions = useColumnOptions;
|
|
4
4
|
const react_1 = require("react");
|
|
5
|
+
const consoleWarning_1 = require("../../../utils/helpers/consoleWarning");
|
|
5
6
|
const DataTableTr_1 = require("../tr/DataTableTr");
|
|
6
7
|
function useColumnOptions(columnDefinitions, options) {
|
|
7
|
-
const { stickyColumns, hasSelection, hasDetailsPanel, layout } = options;
|
|
8
|
-
const hasStickyStart = (stickyColumns === null || stickyColumns === void 0 ? void 0 : stickyColumns.start) ===
|
|
8
|
+
const { stickyColumns, hasSelection, hasDetailsPanel, layout, columnDisplay, } = options;
|
|
9
|
+
const hasStickyStart = (stickyColumns === null || stickyColumns === void 0 ? void 0 : stickyColumns.start) === 1;
|
|
9
10
|
const stickyExpansion = hasStickyStart && hasDetailsPanel;
|
|
10
11
|
const stickySelection = hasStickyStart && hasSelection;
|
|
11
12
|
const stickySelectionOffset = stickyExpansion ? DataTableTr_1.ACTION_CELL_WIDTH : 0;
|
|
12
13
|
const stickyFirstColumnOffset = (stickyExpansion ? DataTableTr_1.ACTION_CELL_WIDTH : 0) +
|
|
13
14
|
(stickySelection ? DataTableTr_1.ACTION_CELL_WIDTH : 0);
|
|
15
|
+
const visibleColumns = (0, react_1.useMemo)(() => {
|
|
16
|
+
return orderColumnsAndFilterByVisibility(columnDefinitions, columnDisplay);
|
|
17
|
+
}, [columnDefinitions, columnDisplay]);
|
|
14
18
|
const columns = (0, react_1.useMemo)(() => {
|
|
15
|
-
return
|
|
19
|
+
return visibleColumns.map((colDef, index) => {
|
|
16
20
|
const isFirstSticky = hasStickyStart && index === 0;
|
|
17
|
-
const isLastSticky = (stickyColumns === null || stickyColumns === void 0 ? void 0 : stickyColumns.end) ===
|
|
21
|
+
const isLastSticky = (stickyColumns === null || stickyColumns === void 0 ? void 0 : stickyColumns.end) === 1 && index === visibleColumns.length - 1;
|
|
18
22
|
return {
|
|
19
23
|
isSticky: isFirstSticky
|
|
20
24
|
? "start"
|
|
@@ -26,12 +30,7 @@ function useColumnOptions(columnDefinitions, options) {
|
|
|
26
30
|
colDef,
|
|
27
31
|
};
|
|
28
32
|
});
|
|
29
|
-
}, [
|
|
30
|
-
columnDefinitions,
|
|
31
|
-
hasStickyStart,
|
|
32
|
-
stickyColumns,
|
|
33
|
-
stickyFirstColumnOffset,
|
|
34
|
-
]);
|
|
33
|
+
}, [visibleColumns, hasStickyStart, stickyColumns, stickyFirstColumnOffset]);
|
|
35
34
|
const totalColSpan = columns.length +
|
|
36
35
|
(layout === "fixed" ? 1 : 0) +
|
|
37
36
|
(hasSelection ? 1 : 0) +
|
|
@@ -47,4 +46,20 @@ function useColumnOptions(columnDefinitions, options) {
|
|
|
47
46
|
totalColSpan,
|
|
48
47
|
};
|
|
49
48
|
}
|
|
49
|
+
function orderColumnsAndFilterByVisibility(columns, columnDisplay) {
|
|
50
|
+
if (!columnDisplay) {
|
|
51
|
+
return columns;
|
|
52
|
+
}
|
|
53
|
+
const columnMap = new Map(columns.map((col) => [col.id, col]));
|
|
54
|
+
return columnDisplay.reduce((acc, { id, visible }) => {
|
|
55
|
+
const col = columnMap.get(id);
|
|
56
|
+
if (!col) {
|
|
57
|
+
(0, consoleWarning_1.consoleWarning)(`DataGrid: Column with id "${id}" not found in column definitions. Please check your columnDisplay configuration.`);
|
|
58
|
+
}
|
|
59
|
+
if (col && visible) {
|
|
60
|
+
acc.push(col);
|
|
61
|
+
}
|
|
62
|
+
return acc;
|
|
63
|
+
}, []);
|
|
64
|
+
}
|
|
50
65
|
//# sourceMappingURL=useColumnOptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useColumnOptions.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useColumnOptions.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"useColumnOptions.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useColumnOptions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import type { TableRowEntryId } from "../root/DataTable.types";
|
|
3
2
|
type DetailsPanelProps<T> = {
|
|
4
3
|
/**
|
|
5
4
|
* Function to get the content to show in the details panel for a given row.
|
|
@@ -13,18 +12,18 @@ type DetailsPanelProps<T> = {
|
|
|
13
12
|
isRowExpandable?: (rowData: T) => boolean;
|
|
14
13
|
/**
|
|
15
14
|
* Controlled list of expanded row IDs.
|
|
16
|
-
* Use with `
|
|
15
|
+
* Use with `onExpandedRowIdsChange` for controlled usage, or `defaultExpandedRowIds` for uncontrolled.
|
|
17
16
|
*/
|
|
18
|
-
expandedRowIds?:
|
|
17
|
+
expandedRowIds?: string[];
|
|
19
18
|
/**
|
|
20
19
|
* Initial list of expanded row IDs for uncontrolled usage.
|
|
21
20
|
* @default []
|
|
22
21
|
*/
|
|
23
|
-
defaultExpandedRowIds?:
|
|
22
|
+
defaultExpandedRowIds?: string[];
|
|
24
23
|
/**
|
|
25
24
|
* Called when the list of expanded row IDs changes.
|
|
26
25
|
*/
|
|
27
|
-
onExpandedRowIdsChange?: (ids:
|
|
26
|
+
onExpandedRowIdsChange?: (ids: string[]) => void;
|
|
28
27
|
/**
|
|
29
28
|
* Returns the height (in px) or `"auto"` for a row's details panel.
|
|
30
29
|
* When a number is returned, the panel scrolls within that fixed height.
|
|
@@ -38,9 +37,9 @@ type DetailsPanelProps<T> = {
|
|
|
38
37
|
showExpandAll?: boolean;
|
|
39
38
|
};
|
|
40
39
|
type DataTableDetailsPanelContextT = {
|
|
41
|
-
isExpanded: (id:
|
|
42
|
-
isDetailsPanelExpandable: (id:
|
|
43
|
-
toggleExpansion: (id:
|
|
40
|
+
isExpanded: (id: string) => boolean;
|
|
41
|
+
isDetailsPanelExpandable: (id: string) => boolean;
|
|
42
|
+
toggleExpansion: (id: string) => void;
|
|
44
43
|
toggleAll: () => void;
|
|
45
44
|
isAllExpanded: boolean;
|
|
46
45
|
getDetailsPanelContent?: (row: unknown) => React.ReactNode;
|
|
@@ -54,6 +53,6 @@ declare function DataTableDetailsPanelProvider<T>({ children, detailsPanel, }: {
|
|
|
54
53
|
} & {
|
|
55
54
|
children: React.ReactNode;
|
|
56
55
|
}): React.JSX.Element;
|
|
57
|
-
declare function getDataTableDetailsPanelId(tableId: string, rowId:
|
|
56
|
+
declare function getDataTableDetailsPanelId(tableId: string, rowId: string): string;
|
|
58
57
|
export { DataTableDetailsPanelProvider, getDataTableDetailsPanelId, useDataTableDetailsPanel, };
|
|
59
58
|
export type { DetailsPanelProps };
|