@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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableDetailsPanel.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableDetailsPanel.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"useTableDetailsPanel.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableDetailsPanel.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { type ItemDetail } from "../helpers/collectTableRowEntries";
|
|
2
|
-
import type { TableRowEntryId } from "../root/DataTable.types";
|
|
3
2
|
type SubRowsProps<T> = {
|
|
4
3
|
/**
|
|
5
4
|
* Function to get sub-rows for a given row.
|
|
@@ -8,36 +7,36 @@ type SubRowsProps<T> = {
|
|
|
8
7
|
/**
|
|
9
8
|
* Controlled list of IDs of rows that should be expanded.
|
|
10
9
|
*/
|
|
11
|
-
expandedRowIds?:
|
|
10
|
+
expandedRowIds?: string[];
|
|
12
11
|
/**
|
|
13
12
|
* IDs of rows that should be initially expanded.
|
|
14
13
|
* Only used when `expandedRowIds` is not provided, i.e. when the expanded state is uncontrolled.
|
|
15
14
|
*/
|
|
16
|
-
defaultExpandedRowIds?:
|
|
15
|
+
defaultExpandedRowIds?: string[];
|
|
17
16
|
/**
|
|
18
17
|
* Called when the list of expanded row IDs changes.
|
|
19
18
|
*/
|
|
20
|
-
onExpandedRowIdsChange?: (ids:
|
|
19
|
+
onExpandedRowIdsChange?: (ids: string[]) => void;
|
|
21
20
|
/**
|
|
22
|
-
*
|
|
21
|
+
* Determines whether a row should be expandable.
|
|
23
22
|
* By default, all rows are expandable when `getRows` is provided.
|
|
24
23
|
*/
|
|
25
24
|
isRowExpandable?: (rowData: T) => boolean;
|
|
26
25
|
};
|
|
27
26
|
type UseTableItemsArgs<T> = {
|
|
28
27
|
items: T[];
|
|
29
|
-
getRowId?: (rowData: T) =>
|
|
28
|
+
getRowId?: (rowData: T) => string;
|
|
30
29
|
subRows?: SubRowsProps<T>;
|
|
31
30
|
};
|
|
32
31
|
type UseTableItemsReturn<T> = {
|
|
33
32
|
items: T[];
|
|
34
|
-
itemDetails: Map<
|
|
33
|
+
itemDetails: Map<string, ItemDetail<T>>;
|
|
35
34
|
/** Row ids for the rows currently rendered in the table body. */
|
|
36
|
-
visibleRowIds:
|
|
35
|
+
visibleRowIds: string[];
|
|
37
36
|
/** Direct child ids for each row, used to traverse selection groups lazily. */
|
|
38
|
-
childRowIdsById: Map<
|
|
39
|
-
onExpandedRowIdsChange: (id:
|
|
40
|
-
isSubRowExpanded: (id:
|
|
37
|
+
childRowIdsById: Map<string, string[]>;
|
|
38
|
+
onExpandedRowIdsChange: (id: string) => void;
|
|
39
|
+
isSubRowExpanded: (id: string) => boolean;
|
|
41
40
|
};
|
|
42
41
|
declare function useTableItems<T>(args: UseTableItemsArgs<T>): UseTableItemsReturn<T>;
|
|
43
42
|
export { useTableItems };
|
|
@@ -53,13 +53,21 @@ function useTableItems(args) {
|
|
|
53
53
|
? prev.filter((expandedId) => expandedId !== id)
|
|
54
54
|
: [...prev, id]);
|
|
55
55
|
}, [setNestedSubRowsExpandedIds]);
|
|
56
|
-
|
|
56
|
+
const isSubRowExpanded = (0, react_1.useCallback)((id) => expandedIdsSet.has(id), [expandedIdsSet]);
|
|
57
|
+
return (0, react_1.useMemo)(() => ({
|
|
57
58
|
items: visibleItems,
|
|
58
59
|
itemDetails,
|
|
59
60
|
visibleRowIds,
|
|
60
61
|
childRowIdsById,
|
|
61
62
|
onExpandedRowIdsChange: handleExpandedSubRowIdChange,
|
|
62
|
-
isSubRowExpanded
|
|
63
|
-
}
|
|
63
|
+
isSubRowExpanded,
|
|
64
|
+
}), [
|
|
65
|
+
visibleItems,
|
|
66
|
+
itemDetails,
|
|
67
|
+
visibleRowIds,
|
|
68
|
+
childRowIdsById,
|
|
69
|
+
handleExpandedSubRowIdChange,
|
|
70
|
+
isSubRowExpanded,
|
|
71
|
+
]);
|
|
64
72
|
}
|
|
65
73
|
//# sourceMappingURL=useTableItems.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableItems.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableItems.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"useTableItems.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableItems.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import type { SelectionProps, TableSelection } from "../helpers/selection/select
|
|
|
2
2
|
import type { UseTableItemsReturn } from "./useTableItems";
|
|
3
3
|
type UseTableSelectionArgs<T> = {
|
|
4
4
|
selection?: SelectionProps<T>;
|
|
5
|
+
selectionTrigger: "row" | "control";
|
|
5
6
|
tableItems: UseTableItemsReturn<T>;
|
|
6
7
|
};
|
|
7
8
|
type UseTableSelectionReturn = {
|
|
@@ -9,7 +10,7 @@ type UseTableSelectionReturn = {
|
|
|
9
10
|
renderSelection: boolean;
|
|
10
11
|
selectionTrigger: "row" | "control";
|
|
11
12
|
};
|
|
12
|
-
declare function useTableSelection<T>({ selection, tableItems, }: UseTableSelectionArgs<T>): UseTableSelectionReturn;
|
|
13
|
+
declare function useTableSelection<T>({ selection, selectionTrigger, tableItems, }: UseTableSelectionArgs<T>): UseTableSelectionReturn;
|
|
13
14
|
/**
|
|
14
15
|
* TODO: Only temp needed to keep Root happy
|
|
15
16
|
*/
|
|
@@ -3,61 +3,78 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.noSelectionState = void 0;
|
|
4
4
|
exports.useTableSelection = useTableSelection;
|
|
5
5
|
const react_1 = require("react");
|
|
6
|
+
const DataGridRoot_context_1 = require("../../../data-grid/root/DataGridRoot.context");
|
|
6
7
|
const utils_external_1 = require("../../../utils-external");
|
|
7
8
|
const hooks_1 = require("../../../utils/hooks");
|
|
8
9
|
const getMultipleSelectProps_1 = require("../helpers/selection/getMultipleSelectProps");
|
|
9
10
|
const getSingleSelectProps_1 = require("../helpers/selection/getSingleSelectProps");
|
|
10
11
|
function useTableSelection({ selection = {
|
|
11
|
-
|
|
12
|
-
}, tableItems, }) {
|
|
13
|
-
const {
|
|
12
|
+
mode: "none",
|
|
13
|
+
}, selectionTrigger = "row", tableItems, }) {
|
|
14
|
+
const { isLoading } = (0, DataGridRoot_context_1.useDataGridContext)();
|
|
15
|
+
const { mode, defaultSelectedRowIds, selectedRowIds: selectedRowIdsProp, onSelectedRowIdsChange, enableRowSelection, } = selection;
|
|
14
16
|
const { visibleRowIds = [] } = tableItems;
|
|
15
17
|
const radioGroupName = (0, utils_external_1.useId)();
|
|
16
18
|
const [selectedKeys, setSelectedKeys] = (0, hooks_1.useControllableState)({
|
|
17
|
-
value:
|
|
18
|
-
defaultValue:
|
|
19
|
-
onChange:
|
|
19
|
+
value: mode !== "none" ? selectedRowIdsProp : undefined,
|
|
20
|
+
defaultValue: defaultSelectedRowIds !== null && defaultSelectedRowIds !== void 0 ? defaultSelectedRowIds : [],
|
|
21
|
+
onChange: onSelectedRowIdsChange,
|
|
20
22
|
});
|
|
21
23
|
const selectedKeysSet = (0, react_1.useMemo)(() => new Set(selectedKeys), [selectedKeys]);
|
|
22
24
|
const isRowSelected = (0, react_1.useCallback)((rowId) => selectedKeysSet.has(rowId), [selectedKeysSet]);
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
return (0, react_1.useMemo)(() => {
|
|
26
|
+
const baseSelection = { selectedKeys, isRowSelected };
|
|
27
|
+
if (mode === "none") {
|
|
28
|
+
return {
|
|
29
|
+
selection: Object.assign(Object.assign({ mode }, baseSelection), { selectedKeys: [] }),
|
|
30
|
+
selectionTrigger,
|
|
31
|
+
renderSelection: false,
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
if (mode === "single") {
|
|
35
|
+
return {
|
|
36
|
+
selection: Object.assign(Object.assign({ mode }, baseSelection), (0, getSingleSelectProps_1.getSingleSelectProps)({
|
|
37
|
+
selectedKeysSet,
|
|
38
|
+
setSelectedKeys,
|
|
39
|
+
name: radioGroupName,
|
|
40
|
+
enableRowSelection,
|
|
41
|
+
})),
|
|
42
|
+
selectionTrigger,
|
|
43
|
+
renderSelection: visibleRowIds.length !== 0,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
25
46
|
return {
|
|
26
|
-
selection: Object.assign(Object.assign({
|
|
27
|
-
selectionTrigger,
|
|
28
|
-
renderSelection: false,
|
|
29
|
-
};
|
|
30
|
-
}
|
|
31
|
-
if (selectionMode === "single") {
|
|
32
|
-
return {
|
|
33
|
-
selection: Object.assign(Object.assign({ selectionMode }, baseSelection), (0, getSingleSelectProps_1.getSingleSelectProps)({
|
|
47
|
+
selection: Object.assign(Object.assign({ mode }, baseSelection), (0, getMultipleSelectProps_1.getMultipleSelectProps)({
|
|
34
48
|
selectedKeysSet,
|
|
49
|
+
selectedKeys,
|
|
35
50
|
setSelectedKeys,
|
|
36
|
-
name: radioGroupName,
|
|
37
51
|
enableRowSelection,
|
|
52
|
+
tableItems,
|
|
53
|
+
isLoading,
|
|
38
54
|
})),
|
|
39
55
|
selectionTrigger,
|
|
40
56
|
renderSelection: visibleRowIds.length !== 0,
|
|
41
57
|
};
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
setSelectedKeys,
|
|
48
|
-
enableRowSelection,
|
|
49
|
-
tableItems,
|
|
50
|
-
})),
|
|
58
|
+
}, [
|
|
59
|
+
mode,
|
|
60
|
+
selectedKeys,
|
|
61
|
+
selectedKeysSet,
|
|
62
|
+
isRowSelected,
|
|
51
63
|
selectionTrigger,
|
|
52
|
-
|
|
53
|
-
|
|
64
|
+
visibleRowIds,
|
|
65
|
+
setSelectedKeys,
|
|
66
|
+
radioGroupName,
|
|
67
|
+
enableRowSelection,
|
|
68
|
+
tableItems,
|
|
69
|
+
isLoading,
|
|
70
|
+
]);
|
|
54
71
|
}
|
|
55
72
|
/**
|
|
56
73
|
* TODO: Only temp needed to keep Root happy
|
|
57
74
|
*/
|
|
58
75
|
const noSelectionState = {
|
|
59
76
|
selection: {
|
|
60
|
-
|
|
77
|
+
mode: "none",
|
|
61
78
|
selectedKeys: [],
|
|
62
79
|
isRowSelected: () => false,
|
|
63
80
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableSelection.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableSelection.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"useTableSelection.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableSelection.ts"],"names":[],"mappings":";;;AAsIS,8CAAiB;AAtI1B,iCAA6C;AAC7C,uFAAkF;AAClF,4DAAgD;AAChD,gDAA4D;AAC5D,wFAAqF;AACrF,oFAAiF;AAoBjF,SAAS,iBAAiB,CAAI,EAC5B,SAAS,GAAG;IACV,IAAI,EAAE,MAAM;CACb,EACD,gBAAgB,GAAG,KAAK,EACxB,UAAU,GACe;IACzB,MAAM,EAAE,SAAS,EAAE,GAAG,IAAA,yCAAkB,GAAE,CAAC;IAC3C,MAAM,EACJ,IAAI,EACJ,qBAAqB,EACrB,cAAc,EAAE,kBAAkB,EAClC,sBAAsB,EACtB,kBAAkB,GACnB,GAAG,SAAS,CAAC;IAEd,MAAM,EAAE,aAAa,GAAG,EAAE,EAAE,GAAG,UAAU,CAAC;IAE1C,MAAM,cAAc,GAAG,IAAA,sBAAK,GAAE,CAAC;IAE/B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,IAAA,4BAAoB,EAAW;QACrE,KAAK,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,SAAS;QACvD,YAAY,EAAE,qBAAqB,aAArB,qBAAqB,cAArB,qBAAqB,GAAI,EAAE;QACzC,QAAQ,EAAE,sBAAsB;KACjC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAE7E,MAAM,aAAa,GAAG,IAAA,mBAAW,EAC/B,CAAC,KAAsB,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EACtD,CAAC,eAAe,CAAC,CAClB,CAAC;IAEF,OAAO,IAAA,eAAO,EAAC,GAAG,EAAE;QAClB,MAAM,aAAa,GAAG,EAAE,YAAY,EAAE,aAAa,EAAE,CAAC;QAEtD,IAAI,IAAI,KAAK,MAAM,EAAE,CAAC;YACpB,OAAO;gBACL,SAAS,gCACP,IAAI,IACD,aAAa,KAChB,YAAY,EAAE,EAAE,GACjB;gBACD,gBAAgB;gBAChB,eAAe,EAAE,KAAK;aACvB,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,KAAK,QAAQ,EAAE,CAAC;YACtB,OAAO;gBACL,SAAS,gCACP,IAAI,IACD,aAAa,GACb,IAAA,2CAAoB,EAAC;oBACtB,eAAe;oBACf,eAAe;oBACf,IAAI,EAAE,cAAc;oBACpB,kBAAkB;iBACnB,CAAC,CACH;gBACD,gBAAgB;gBAChB,eAAe,EAAE,aAAa,CAAC,MAAM,KAAK,CAAC;aAC5C,CAAC;QACJ,CAAC;QAED,OAAO;YACL,SAAS,gCACP,IAAI,IACD,aAAa,GACb,IAAA,+CAAsB,EAAC;gBACxB,eAAe;gBACf,YAAY;gBACZ,eAAe;gBACf,kBAAkB;gBAClB,UAAU;gBACV,SAAS;aACV,CAAC,CACH;YACD,gBAAgB;YAChB,eAAe,EAAE,aAAa,CAAC,MAAM,KAAK,CAAC;SAC5C,CAAC;IACJ,CAAC,EAAE;QACD,IAAI;QACJ,YAAY;QACZ,eAAe;QACf,aAAa;QACb,gBAAgB;QAChB,aAAa;QACb,eAAe;QACf,cAAc;QACd,kBAAkB;QAClB,UAAU;QACV,SAAS;KACV,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,gBAAgB,GAA4B;IAChD,SAAS,EAAE;QACT,IAAI,EAAE,MAAM;QACZ,YAAY,EAAE,EAAE;QAChB,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK;KAC3B;IACD,gBAAgB,EAAE,KAAK;IACvB,eAAe,EAAE,KAAK;CACvB,CAAC;AAE0B,4CAAgB"}
|
|
@@ -1,26 +1,32 @@
|
|
|
1
|
-
import type { SortChangeDetail, SortEntry } from "../root/
|
|
1
|
+
import type { SortChangeDetail, SortEntry } from "../root/DataGridTable.types";
|
|
2
2
|
type TableSortOptions = {
|
|
3
3
|
/**
|
|
4
4
|
* Current sort state. Each entry represents a sorted column.
|
|
5
5
|
* Columns not present in the array are unsorted.
|
|
6
6
|
* Supports multi-column sorting when multiple entries are provided.
|
|
7
7
|
*
|
|
8
|
-
* When provided, the component is controlled
|
|
9
|
-
* For uncontrolled usage, use `
|
|
8
|
+
* When provided, the component is controlled - you must also handle `onSortOrderChange`.
|
|
9
|
+
* For uncontrolled usage, use `defaultSortOrder` instead.
|
|
10
10
|
*/
|
|
11
|
-
|
|
11
|
+
sortOrder?: SortEntry[];
|
|
12
12
|
/**
|
|
13
13
|
* Initial sort state for uncontrolled usage.
|
|
14
|
-
* Use `
|
|
14
|
+
* Use `sortOrder` + `onSortOrderChange` for controlled usage.
|
|
15
15
|
* @default []
|
|
16
16
|
*/
|
|
17
|
-
|
|
17
|
+
defaultSortOrder?: SortEntry[];
|
|
18
18
|
/**
|
|
19
19
|
* Called when the user clicks a sortable column header.
|
|
20
20
|
* - `sort` — the full updated sort array after cycling: unsorted → asc → desc → unsorted.
|
|
21
21
|
* - `detail` — the specific column that changed, including its new direction (`"none"` means removed).
|
|
22
22
|
*/
|
|
23
|
-
|
|
23
|
+
onSortOrderChange?: (sortOrder: SortEntry[], detail: SortChangeDetail) => void;
|
|
24
|
+
/**
|
|
25
|
+
* When true, allows multiple columns to be sorted by holding Shift while clicking headers.
|
|
26
|
+
*
|
|
27
|
+
* @default true
|
|
28
|
+
*/
|
|
29
|
+
allowMultiSort?: boolean;
|
|
24
30
|
};
|
|
25
31
|
type UseTableSortResults = {
|
|
26
32
|
/**
|
|
@@ -1,26 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.useTableSort = useTableSort;
|
|
4
|
-
const react_1 = require("react");
|
|
5
4
|
const consoleWarning_1 = require("../../../utils/helpers/consoleWarning");
|
|
6
5
|
const hooks_1 = require("../../../utils/hooks");
|
|
7
6
|
function useTableSort(options) {
|
|
8
|
-
const {
|
|
7
|
+
const { defaultSortOrder, onSortOrderChange, sortOrder, allowMultiSort = true, } = options || {};
|
|
9
8
|
const [sort, setSort] = (0, hooks_1.useControllableState)({
|
|
10
|
-
value:
|
|
11
|
-
defaultValue:
|
|
9
|
+
value: sortOrder,
|
|
10
|
+
defaultValue: defaultSortOrder || [],
|
|
12
11
|
});
|
|
13
|
-
const handleSortClick = (0,
|
|
12
|
+
const handleSortClick = (0, hooks_1.useEventCallback)((id, event) => {
|
|
14
13
|
if (id === undefined) {
|
|
15
|
-
(0, consoleWarning_1.consoleWarning)("
|
|
14
|
+
(0, consoleWarning_1.consoleWarning)("DataGrid.Table: Column id is undefined for sort event on target", event.target, "Make sure your column definitions include an 'id' property.");
|
|
16
15
|
return;
|
|
17
16
|
}
|
|
18
|
-
const cumulative = event.shiftKey;
|
|
17
|
+
const cumulative = allowMultiSort && event.shiftKey;
|
|
19
18
|
const base = cumulative ? sort : sort.filter((s) => s.columnId === id);
|
|
20
19
|
const { next, detail } = nextSortEntries(base, id);
|
|
21
20
|
setSort(next);
|
|
22
|
-
|
|
23
|
-
}
|
|
21
|
+
onSortOrderChange === null || onSortOrderChange === void 0 ? void 0 : onSortOrderChange(next, detail);
|
|
22
|
+
});
|
|
24
23
|
return {
|
|
25
24
|
onSortClick: handleSortClick,
|
|
26
25
|
sortState: sort,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableSort.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableSort.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"useTableSort.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableSort.ts"],"names":[],"mappings":";;AAkHS,oCAAY;AAlHrB,0EAAuE;AACvE,gDAA8E;AAkD9E,SAAS,YAAY,CAAC,OAA0B;IAC9C,MAAM,EACJ,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,cAAc,GAAG,IAAI,GACtB,GAAG,OAAO,IAAI,EAAE,CAAC;IAElB,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,IAAA,4BAAoB,EAAC;QAC3C,KAAK,EAAE,SAAS;QAChB,YAAY,EAAE,gBAAgB,IAAI,EAAE;KACrC,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,IAAA,wBAAgB,EACtC,CAAC,EAAU,EAAE,KAAgD,EAAE,EAAE;QAC/D,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,IAAA,+BAAc,EACZ,iEAAiE,EACjE,KAAK,CAAC,MAAM,EACZ,6DAA6D,CAC9D,CAAC;YACF,OAAO;QACT,CAAC;QAED,MAAM,UAAU,GAAG,cAAc,IAAI,KAAK,CAAC,QAAQ,CAAC;QACpD,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,EAAE,CAAC,CAAC;QACvE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACnD,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAG,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC,CACF,CAAC;IAEF,OAAO;QACL,WAAW,EAAE,eAAe;QAC5B,SAAS,EAAE,IAAI;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CACtB,OAAoB,EACpB,QAAgB;IAEhB,MAAM,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;IAC9D,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO;YACL,IAAI,EAAE,CAAC,GAAG,OAAO,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;YAClD,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE;SACvC,CAAC;IACJ,CAAC;IACD,IAAI,QAAQ,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;QACjC,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CACtB,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC,iCAAM,CAAC,KAAE,SAAS,EAAE,MAAM,IAAG,CAAC,CAAC,CAAC,CAC1D;YACD,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE;SACxC,CAAC;IACJ,CAAC;IACD,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC;QACpD,MAAM,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE;KACxC,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { DataGridTable, type DataGridTableProps, } from "./root/DataGridTableRoot";
|
package/cjs/data/table/index.js
CHANGED
|
@@ -1,27 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
"use client";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
exports.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
DataTableCaption,
|
|
8
|
-
DataTableThead,
|
|
9
|
-
DataTableTbody,
|
|
10
|
-
DataTableTr,
|
|
11
|
-
DataTableTh,
|
|
12
|
-
DataTableTd,
|
|
13
|
-
DataTableTfoot,
|
|
14
|
-
} from "./root/DataTableRoot.legacy";
|
|
15
|
-
export type {
|
|
16
|
-
DataTableProps,
|
|
17
|
-
DataTableCaptionProps,
|
|
18
|
-
DataTableTheadProps,
|
|
19
|
-
DataTableTbodyProps,
|
|
20
|
-
DataTableTrProps,
|
|
21
|
-
DataTableThProps,
|
|
22
|
-
DataTableTdProps,
|
|
23
|
-
DataTableTfootProps,
|
|
24
|
-
} from "./root/DataTableRoot.legacy"; */
|
|
25
|
-
var DataTableRoot_1 = require("./root/DataTableRoot");
|
|
26
|
-
Object.defineProperty(exports, "DataTable", { enumerable: true, get: function () { return DataTableRoot_1.DataTable; } });
|
|
4
|
+
exports.DataGridTable = void 0;
|
|
5
|
+
var DataGridTableRoot_1 = require("./root/DataGridTableRoot");
|
|
6
|
+
Object.defineProperty(exports, "DataGridTable", { enumerable: true, get: function () { return DataGridTableRoot_1.DataGridTable; } });
|
|
27
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/table/index.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/table/index.tsx"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;AAEb,8DAGkC;AAFhC,kHAAA,aAAa,OAAA"}
|
|
@@ -1,45 +1,37 @@
|
|
|
1
1
|
import type { DataTableColumnHeaderProps } from "../column-header/DataTableColumnHeader";
|
|
2
|
-
type SortDirection = "asc" | "desc" | "none";
|
|
3
2
|
/**
|
|
4
3
|
* TODO:
|
|
5
4
|
* - Consider "accessorKey" or similar to allow simple column definitions without a cell function.
|
|
6
|
-
* - Add "align" property for better control over text alignment in cells.
|
|
7
5
|
*/
|
|
8
6
|
type ColumnDefinition<T> = {
|
|
9
7
|
id: string;
|
|
10
8
|
/**
|
|
11
|
-
*
|
|
9
|
+
* Uses `<th>` instead of `<td>` for the cell if true.
|
|
12
10
|
*
|
|
13
|
-
*
|
|
14
|
-
|
|
15
|
-
align?: "left" | "right" | "center";
|
|
16
|
-
/**
|
|
17
|
-
* Assigned to the cell's `th` element instead of `td` if true.
|
|
18
|
-
*
|
|
19
|
-
* Should be used for cells that act as row headers. Each row should have one rowheader, and only have one cell with `isRowHeader: true`,
|
|
20
|
-
* TODO: Better documentation, consider warning if not one column has this set to true.
|
|
11
|
+
* Should be used on the column that acts as row header.
|
|
12
|
+
* There should be exactly one column with this set to true.
|
|
21
13
|
*/
|
|
22
14
|
isRowHeader?: boolean;
|
|
23
15
|
/**
|
|
24
|
-
*
|
|
25
|
-
*
|
|
16
|
+
* Name of the column.
|
|
17
|
+
* Used in the header cell unless `headerCell` is provided.
|
|
18
|
+
* Also used in the settings dialog.
|
|
26
19
|
*/
|
|
27
|
-
header
|
|
20
|
+
header: string;
|
|
28
21
|
/**
|
|
29
|
-
*
|
|
22
|
+
* Overrides header cell content. Should not differ too much from `header`.
|
|
30
23
|
*/
|
|
31
|
-
|
|
24
|
+
headerCell?: React.ReactNode;
|
|
32
25
|
/**
|
|
33
|
-
*
|
|
34
|
-
* TODO: Pri zero consider renaming to header
|
|
26
|
+
* Renders table body cell content.
|
|
35
27
|
*/
|
|
36
|
-
|
|
28
|
+
bodyCell: (item: T) => React.ReactNode;
|
|
37
29
|
/**
|
|
38
30
|
* Makes the column sortable. Renders the header as a sort button.
|
|
39
|
-
* Use `
|
|
31
|
+
* Use `sorting` prop on `DataGrid.Table` to configure sorting behavior and state management.
|
|
40
32
|
*/
|
|
41
|
-
|
|
42
|
-
} & Pick<DataTableColumnHeaderProps, "width">;
|
|
33
|
+
isSortable?: boolean;
|
|
34
|
+
} & Pick<DataTableColumnHeaderProps, "width" | "align">;
|
|
43
35
|
type ColumnDefinitions<T> = ColumnDefinition<T>[];
|
|
44
36
|
/**
|
|
45
37
|
* A single sort entry representing a column's current sort state.
|
|
@@ -59,8 +51,6 @@ type SortChangeDetail = {
|
|
|
59
51
|
direction: "asc" | "desc" | "none";
|
|
60
52
|
};
|
|
61
53
|
type DataTableLoadingConfig = {
|
|
62
|
-
isLoading?: boolean;
|
|
63
|
-
} & ({
|
|
64
54
|
variant: "content";
|
|
65
55
|
content: React.ReactNode;
|
|
66
56
|
} | {
|
|
@@ -70,6 +60,6 @@ type DataTableLoadingConfig = {
|
|
|
70
60
|
} | {
|
|
71
61
|
variant: "overlay";
|
|
72
62
|
label?: string;
|
|
73
|
-
}
|
|
63
|
+
};
|
|
74
64
|
type TableRowEntryId = string;
|
|
75
|
-
export type { ColumnDefinition, ColumnDefinitions, DataTableLoadingConfig,
|
|
65
|
+
export type { ColumnDefinition, ColumnDefinitions, DataTableLoadingConfig, SortEntry, SortChangeDetail, TableRowEntryId, };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DataGridTable.types.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataGridTable.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { type DetailsPanelProps } from "../hooks/useTableDetailsPanel";
|
|
3
|
+
import { type SubRowsProps } from "../hooks/useTableItems";
|
|
4
|
+
import { type TableSortOptions } from "../hooks/useTableSort";
|
|
5
|
+
import type { DataTableLoadingConfig } from "./DataGridTable.types";
|
|
6
|
+
interface DataGridTableProps<T> extends React.HTMLAttributes<HTMLTableElement> {
|
|
7
|
+
children?: never;
|
|
8
|
+
/**
|
|
9
|
+
* Controls table layout.
|
|
10
|
+
*
|
|
11
|
+
* ### fixed
|
|
12
|
+
* Gives you full control of column widths. This is required for resizable columns.
|
|
13
|
+
*
|
|
14
|
+
* ### auto
|
|
15
|
+
* Makes the columns resize automatically based on the content.
|
|
16
|
+
* The table will take up at least 100% of available width.
|
|
17
|
+
*
|
|
18
|
+
* **NB:** When using this with `truncateContent`, you have to manually
|
|
19
|
+
* set a `contentMaxWidth` on cells that should be truncated.
|
|
20
|
+
* @default "fixed"
|
|
21
|
+
*/
|
|
22
|
+
layout?: "fixed" | "auto";
|
|
23
|
+
/**
|
|
24
|
+
* Whether the header should be sticky.
|
|
25
|
+
* For this to work, you have to put the component in a flex container with a height restriction.
|
|
26
|
+
*
|
|
27
|
+
* @example
|
|
28
|
+
* <VStack height="100vh">
|
|
29
|
+
* <div>Content before DataGrid</div>
|
|
30
|
+
* <DataGrid>
|
|
31
|
+
* <DataGrid.Table />
|
|
32
|
+
* </DataGrid>
|
|
33
|
+
* <div>Content after DataGrid</div>
|
|
34
|
+
* </VStack>
|
|
35
|
+
*
|
|
36
|
+
* @example
|
|
37
|
+
* <div style={{ display: "flex", maxHeight: "500px" }}>
|
|
38
|
+
* <DataGrid>
|
|
39
|
+
* <DataGrid.Table />
|
|
40
|
+
* </DataGrid>
|
|
41
|
+
* </div>
|
|
42
|
+
*
|
|
43
|
+
* @default true
|
|
44
|
+
*/
|
|
45
|
+
stickyHeader?: boolean;
|
|
46
|
+
/**
|
|
47
|
+
* Callback invoked when a row in the table body is clicked.
|
|
48
|
+
*
|
|
49
|
+
* Call `event.preventDefault()` inside the callback to prevent the default row click behavior, such as selection.
|
|
50
|
+
*/
|
|
51
|
+
onRowAction?: ({ row, id, event, }: {
|
|
52
|
+
row: T;
|
|
53
|
+
id: string;
|
|
54
|
+
event: React.MouseEvent<HTMLTableRowElement>;
|
|
55
|
+
}) => void;
|
|
56
|
+
/**
|
|
57
|
+
* Content to render when `data` is empty.
|
|
58
|
+
* Rendered inside a row spanning all columns.
|
|
59
|
+
*/
|
|
60
|
+
emptyContent?: React.ReactNode;
|
|
61
|
+
/**
|
|
62
|
+
* Configures how the table behaves during loading.
|
|
63
|
+
*
|
|
64
|
+
* Use `variant` to select the loading strategy:
|
|
65
|
+
* - `"content"` — renders custom content inside a full-width row.
|
|
66
|
+
* - `"skeleton"` — renders skeleton placeholder rows.
|
|
67
|
+
* - `"overlay"` — keeps existing data visible with a loading overlay.
|
|
68
|
+
*
|
|
69
|
+
* @default { variant: "skeleton", rows: 5 }
|
|
70
|
+
*/
|
|
71
|
+
loadingContent?: DataTableLoadingConfig;
|
|
72
|
+
/**
|
|
73
|
+
* Object with props related to nested rows (sub-rows).
|
|
74
|
+
*/
|
|
75
|
+
subRows?: SubRowsProps<T>;
|
|
76
|
+
/**
|
|
77
|
+
* Object with props related to details panel.
|
|
78
|
+
* This is a panel that can be expanded below each row to show arbitrary content.
|
|
79
|
+
*/
|
|
80
|
+
detailsPanel?: DetailsPanelProps<T>;
|
|
81
|
+
/**
|
|
82
|
+
* Object with props related to sorting.
|
|
83
|
+
*/
|
|
84
|
+
sorting?: TableSortOptions;
|
|
85
|
+
/**
|
|
86
|
+
* Determines if selection is triggered by clicking the row or the selection control (checkbox/radio).
|
|
87
|
+
* @default "row"
|
|
88
|
+
*/
|
|
89
|
+
selectionTrigger?: "row" | "control";
|
|
90
|
+
}
|
|
91
|
+
declare const DataGridTableInternal: React.ForwardRefExoticComponent<DataGridTableProps<any> & React.RefAttributes<HTMLTableElement>>;
|
|
92
|
+
declare const DataGridTable: <RowT>(props: DataGridTableProps<RowT> & React.RefAttributes<HTMLTableElement>) => React.ReactElement | null;
|
|
93
|
+
export declare namespace DataGridTable {
|
|
94
|
+
type Props<T = unknown> = DataGridTableProps<T>;
|
|
95
|
+
type Sorting = TableSortOptions;
|
|
96
|
+
type SortEntry = import("./DataGridTable.types").SortEntry;
|
|
97
|
+
type SortChangeDetail = import("./DataGridTable.types").SortChangeDetail;
|
|
98
|
+
type LoadingContent = DataTableLoadingConfig;
|
|
99
|
+
type SubRows<T = unknown> = SubRowsProps<T>;
|
|
100
|
+
type DetailsPanel<T = unknown> = DetailsPanelProps<T>;
|
|
101
|
+
}
|
|
102
|
+
export { DataGridTable, DataGridTableInternal };
|
|
103
|
+
export type { DataGridTableProps };
|
|
104
|
+
export default DataGridTable;
|