@navikt/ds-react 8.10.3 → 8.10.5
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/action-menu/ActionMenu.js +1 -1
- package/cjs/action-menu/ActionMenu.js.map +1 -1
- package/cjs/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js +11 -12
- package/cjs/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js.map +1 -1
- package/cjs/data/drag-and-drop/root/DragAndDrop.context.d.ts +4 -2
- package/cjs/data/drag-and-drop/root/DragAndDrop.context.js.map +1 -1
- package/cjs/data/drag-and-drop/root/DragAndDropRoot.d.ts +5 -5
- package/cjs/data/drag-and-drop/root/DragAndDropRoot.js +49 -28
- package/cjs/data/drag-and-drop/root/DragAndDropRoot.js.map +1 -1
- package/cjs/data/drag-and-drop/types.d.ts +0 -4
- package/cjs/data/{drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.d.ts → drag-and-drop-legacy/drag-handler/DragAndDropDragHandlerLegacy.d.ts} +3 -3
- package/cjs/data/{drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.js → drag-and-drop-legacy/drag-handler/DragAndDropDragHandlerLegacy.js} +5 -5
- package/cjs/data/drag-and-drop-legacy/drag-handler/DragAndDropDragHandlerLegacy.js.map +1 -0
- package/cjs/data/drag-and-drop-legacy/item/DragAndDropItemLegacy.d.ts +27 -0
- package/cjs/data/{drag-and-drop-old/item/DataDragAndDropItem.js → drag-and-drop-legacy/item/DragAndDropItemLegacy.js} +12 -12
- package/cjs/data/drag-and-drop-legacy/item/DragAndDropItemLegacy.js.map +1 -0
- package/cjs/data/drag-and-drop-legacy/root/DragAndDropLegacy.context.d.ts +5 -0
- package/cjs/data/drag-and-drop-legacy/root/DragAndDropLegacy.context.js +6 -0
- package/cjs/data/drag-and-drop-legacy/root/DragAndDropLegacy.context.js.map +1 -0
- package/cjs/data/drag-and-drop-legacy/root/DragAndDropLegacyRoot.d.ts +24 -0
- package/cjs/data/{drag-and-drop-old/root/DataDragAndDropRoot.js → drag-and-drop-legacy/root/DragAndDropLegacyRoot.js} +10 -10
- package/cjs/data/drag-and-drop-legacy/root/DragAndDropLegacyRoot.js.map +1 -0
- package/cjs/data/stories/Data.test-data.d.ts +24 -0
- package/cjs/data/stories/Data.test-data.js +1615 -0
- package/cjs/data/stories/Data.test-data.js.map +1 -0
- package/cjs/data/table/column-header/DataTableColumnHeader.d.ts +4 -1
- package/cjs/data/table/column-header/DataTableColumnHeader.js +4 -4
- package/cjs/data/table/column-header/DataTableColumnHeader.js.map +1 -1
- package/cjs/data/table/column-header/useTableColumnResize.d.ts +21 -18
- package/cjs/data/table/column-header/useTableColumnResize.js +7 -25
- package/cjs/data/table/column-header/useTableColumnResize.js.map +1 -1
- package/cjs/data/table/details-panel-row/DataTableDetailsPanelRow.d.ts +6 -0
- package/cjs/data/table/details-panel-row/DataTableDetailsPanelRow.js +32 -0
- package/cjs/data/table/details-panel-row/DataTableDetailsPanelRow.js.map +1 -0
- package/cjs/data/table/helpers/collectTableRowEntries.d.ts +9 -7
- package/cjs/data/table/helpers/collectTableRowEntries.js +21 -14
- package/cjs/data/table/helpers/collectTableRowEntries.js.map +1 -1
- package/cjs/data/table/helpers/table-focus.d.ts +0 -3
- package/cjs/data/table/helpers/table-focus.js +38 -8
- package/cjs/data/table/helpers/table-focus.js.map +1 -1
- package/cjs/data/table/hooks/useColumnOptions.js +18 -5
- package/cjs/data/table/hooks/useColumnOptions.js.map +1 -1
- package/cjs/data/table/hooks/useGridCache.js +2 -2
- package/cjs/data/table/hooks/useGridCache.js.map +1 -1
- package/cjs/data/table/hooks/useTableDetailsPanel.d.ts +62 -0
- package/cjs/data/table/hooks/{useTableExpansion.js → useTableDetailsPanel.js} +21 -20
- package/cjs/data/table/hooks/useTableDetailsPanel.js.map +1 -0
- package/cjs/data/table/hooks/useTableItems.d.ts +14 -17
- package/cjs/data/table/hooks/useTableItems.js +17 -16
- package/cjs/data/table/hooks/useTableItems.js.map +1 -1
- package/cjs/data/table/hooks/useTableKeyboardNav.js +5 -1
- package/cjs/data/table/hooks/useTableKeyboardNav.js.map +1 -1
- package/cjs/data/table/hooks/useTableSelection.d.ts +4 -2
- package/cjs/data/table/hooks/useTableSelection.js +6 -1
- package/cjs/data/table/hooks/useTableSelection.js.map +1 -1
- package/cjs/data/table/index.d.ts +1 -2
- package/cjs/data/table/index.js +22 -12
- package/cjs/data/table/index.js.map +1 -1
- package/cjs/data/table/root/DataTable.types.d.ts +7 -9
- package/cjs/data/table/root/DataTableRoot.context.d.ts +5 -1
- package/cjs/data/table/root/DataTableRoot.context.js.map +1 -1
- package/cjs/data/table/root/DataTableRoot.d.ts +79 -115
- package/cjs/data/table/root/DataTableRoot.js +163 -38
- package/cjs/data/table/root/DataTableRoot.js.map +1 -1
- package/cjs/data/table/root/DataTableRoot.legacy.d.ts +177 -0
- package/cjs/data/table/root/DataTableRoot.legacy.js +104 -0
- package/cjs/data/table/root/DataTableRoot.legacy.js.map +1 -0
- package/cjs/data/table/sub-row-toggle/DataTableSubRowToggle.d.ts +6 -0
- package/cjs/data/table/sub-row-toggle/DataTableSubRowToggle.js +21 -0
- package/cjs/data/table/sub-row-toggle/DataTableSubRowToggle.js.map +1 -0
- package/cjs/data/table/tr/DataTableTr.js +11 -11
- package/cjs/data/table/tr/DataTableTr.js.map +1 -1
- package/cjs/utils/components/dismissablelayer/DismissableLayer.js +1 -1
- package/cjs/utils/components/dismissablelayer/DismissableLayer.js.map +1 -1
- package/cjs/utils/components/floating/Floating.d.ts +16 -1
- package/cjs/utils/components/floating/Floating.js +50 -13
- package/cjs/utils/components/floating/Floating.js.map +1 -1
- package/cjs/utils/components/floating-menu/Menu.js +1 -1
- package/cjs/utils/components/floating-menu/Menu.js.map +1 -1
- package/cjs/utils/helpers/create-strict-context.js +1 -1
- package/cjs/utils/helpers/create-strict-context.js.map +1 -1
- package/cjs/utils/hooks/useControllableState.d.ts +5 -5
- package/cjs/utils/hooks/useControllableState.js.map +1 -1
- package/cjs/utils/hooks/useValueAsRef.js +1 -1
- package/cjs/utils/hooks/useValueAsRef.js.map +1 -1
- package/cjs/utils-external/hooks/useId.js +1 -1
- package/cjs/utils-external/hooks/useId.js.map +1 -1
- package/esm/action-menu/ActionMenu.js +1 -1
- package/esm/action-menu/ActionMenu.js.map +1 -1
- package/esm/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js +11 -12
- package/esm/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js.map +1 -1
- package/esm/data/drag-and-drop/root/DragAndDrop.context.d.ts +4 -2
- package/esm/data/drag-and-drop/root/DragAndDrop.context.js.map +1 -1
- package/esm/data/drag-and-drop/root/DragAndDropRoot.d.ts +5 -5
- package/esm/data/drag-and-drop/root/DragAndDropRoot.js +49 -28
- package/esm/data/drag-and-drop/root/DragAndDropRoot.js.map +1 -1
- package/esm/data/drag-and-drop/types.d.ts +0 -4
- package/esm/data/{drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.d.ts → drag-and-drop-legacy/drag-handler/DragAndDropDragHandlerLegacy.d.ts} +3 -3
- package/esm/data/{drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.js → drag-and-drop-legacy/drag-handler/DragAndDropDragHandlerLegacy.js} +4 -4
- package/esm/data/drag-and-drop-legacy/drag-handler/DragAndDropDragHandlerLegacy.js.map +1 -0
- package/esm/data/drag-and-drop-legacy/item/DragAndDropItemLegacy.d.ts +27 -0
- package/esm/data/{drag-and-drop-old/item/DataDragAndDropItem.js → drag-and-drop-legacy/item/DragAndDropItemLegacy.js} +11 -11
- package/esm/data/drag-and-drop-legacy/item/DragAndDropItemLegacy.js.map +1 -0
- package/esm/data/drag-and-drop-legacy/root/DragAndDropLegacy.context.d.ts +5 -0
- package/esm/data/drag-and-drop-legacy/root/DragAndDropLegacy.context.js +3 -0
- package/esm/data/drag-and-drop-legacy/root/DragAndDropLegacy.context.js.map +1 -0
- package/esm/data/drag-and-drop-legacy/root/DragAndDropLegacyRoot.d.ts +24 -0
- package/esm/data/{drag-and-drop-old/root/DataDragAndDropRoot.js → drag-and-drop-legacy/root/DragAndDropLegacyRoot.js} +8 -8
- package/esm/data/drag-and-drop-legacy/root/DragAndDropLegacyRoot.js.map +1 -0
- package/esm/data/stories/Data.test-data.d.ts +24 -0
- package/esm/data/stories/Data.test-data.js +1606 -0
- package/esm/data/stories/Data.test-data.js.map +1 -0
- package/esm/data/table/column-header/DataTableColumnHeader.d.ts +4 -1
- package/esm/data/table/column-header/DataTableColumnHeader.js +4 -4
- package/esm/data/table/column-header/DataTableColumnHeader.js.map +1 -1
- package/esm/data/table/column-header/useTableColumnResize.d.ts +21 -18
- package/esm/data/table/column-header/useTableColumnResize.js +7 -25
- package/esm/data/table/column-header/useTableColumnResize.js.map +1 -1
- package/esm/data/table/details-panel-row/DataTableDetailsPanelRow.d.ts +6 -0
- package/esm/data/table/details-panel-row/DataTableDetailsPanelRow.js +27 -0
- package/esm/data/table/details-panel-row/DataTableDetailsPanelRow.js.map +1 -0
- package/esm/data/table/helpers/collectTableRowEntries.d.ts +9 -7
- package/esm/data/table/helpers/collectTableRowEntries.js +21 -14
- package/esm/data/table/helpers/collectTableRowEntries.js.map +1 -1
- package/esm/data/table/helpers/table-focus.d.ts +0 -3
- package/esm/data/table/helpers/table-focus.js +38 -8
- package/esm/data/table/helpers/table-focus.js.map +1 -1
- package/esm/data/table/hooks/useColumnOptions.js +18 -5
- package/esm/data/table/hooks/useColumnOptions.js.map +1 -1
- package/esm/data/table/hooks/useGridCache.js +2 -2
- package/esm/data/table/hooks/useGridCache.js.map +1 -1
- package/esm/data/table/hooks/useTableDetailsPanel.d.ts +62 -0
- package/esm/data/table/hooks/{useTableExpansion.js → useTableDetailsPanel.js} +18 -17
- package/esm/data/table/hooks/useTableDetailsPanel.js.map +1 -0
- package/esm/data/table/hooks/useTableItems.d.ts +14 -17
- package/esm/data/table/hooks/useTableItems.js +17 -16
- package/esm/data/table/hooks/useTableItems.js.map +1 -1
- package/esm/data/table/hooks/useTableKeyboardNav.js +6 -2
- package/esm/data/table/hooks/useTableKeyboardNav.js.map +1 -1
- package/esm/data/table/hooks/useTableSelection.d.ts +4 -2
- package/esm/data/table/hooks/useTableSelection.js +6 -1
- package/esm/data/table/hooks/useTableSelection.js.map +1 -1
- package/esm/data/table/index.d.ts +1 -2
- package/esm/data/table/index.js +21 -1
- package/esm/data/table/index.js.map +1 -1
- package/esm/data/table/root/DataTable.types.d.ts +7 -9
- package/esm/data/table/root/DataTableRoot.context.d.ts +5 -1
- package/esm/data/table/root/DataTableRoot.context.js.map +1 -1
- package/esm/data/table/root/DataTableRoot.d.ts +79 -115
- package/esm/data/table/root/DataTableRoot.js +170 -36
- package/esm/data/table/root/DataTableRoot.js.map +1 -1
- package/esm/data/table/root/DataTableRoot.legacy.d.ts +177 -0
- package/esm/data/table/root/DataTableRoot.legacy.js +59 -0
- package/esm/data/table/root/DataTableRoot.legacy.js.map +1 -0
- package/esm/data/table/sub-row-toggle/DataTableSubRowToggle.d.ts +6 -0
- package/esm/data/table/sub-row-toggle/DataTableSubRowToggle.js +16 -0
- package/esm/data/table/sub-row-toggle/DataTableSubRowToggle.js.map +1 -0
- package/esm/data/table/tr/DataTableTr.js +11 -11
- package/esm/data/table/tr/DataTableTr.js.map +1 -1
- package/esm/utils/components/dismissablelayer/DismissableLayer.js +1 -1
- package/esm/utils/components/dismissablelayer/DismissableLayer.js.map +1 -1
- package/esm/utils/components/floating/Floating.d.ts +16 -1
- package/esm/utils/components/floating/Floating.js +48 -13
- package/esm/utils/components/floating/Floating.js.map +1 -1
- package/esm/utils/components/floating-menu/Menu.js +2 -2
- package/esm/utils/components/floating-menu/Menu.js.map +1 -1
- package/esm/utils/helpers/create-strict-context.js +1 -1
- package/esm/utils/helpers/create-strict-context.js.map +1 -1
- package/esm/utils/hooks/useControllableState.d.ts +5 -5
- package/esm/utils/hooks/useControllableState.js.map +1 -1
- package/esm/utils/hooks/useValueAsRef.js +1 -1
- package/esm/utils/hooks/useValueAsRef.js.map +1 -1
- package/esm/utils-external/hooks/useId.js +1 -1
- package/esm/utils-external/hooks/useId.js.map +1 -1
- package/package.json +8 -7
- package/src/action-menu/ActionMenu.tsx +1 -1
- package/src/data/drag-and-drop/drag-handler/DragAndDropDragHandler.tsx +11 -16
- package/src/data/drag-and-drop/root/DragAndDrop.context.tsx +4 -2
- package/src/data/drag-and-drop/root/DragAndDropRoot.tsx +85 -40
- package/src/data/drag-and-drop/types.ts +0 -5
- package/src/data/{drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.tsx → drag-and-drop-legacy/drag-handler/DragAndDropDragHandlerLegacy.tsx} +5 -5
- package/src/data/{drag-and-drop-old/item/DataDragAndDropItem.tsx → drag-and-drop-legacy/item/DragAndDropItemLegacy.tsx} +13 -13
- package/src/data/{drag-and-drop-old/root/DataDragAndDrop.context.tsx → drag-and-drop-legacy/root/DragAndDropLegacy.context.tsx} +3 -3
- package/src/data/{drag-and-drop-old/root/DataDragAndDropRoot.tsx → drag-and-drop-legacy/root/DragAndDropLegacyRoot.tsx} +19 -21
- package/src/data/stories/Data.test-data.tsx +1702 -0
- package/src/data/table/column-header/DataTableColumnHeader.tsx +8 -6
- package/src/data/table/column-header/useTableColumnResize.ts +29 -44
- package/src/data/table/details-panel-row/DataTableDetailsPanelRow.tsx +57 -0
- package/src/data/table/helpers/collectTableRowEntries.ts +36 -30
- package/src/data/table/helpers/table-focus.ts +63 -9
- package/src/data/table/hooks/__tests__/useTableItems.test.ts +58 -12
- package/src/data/table/hooks/__tests__/useTableSelection.test.ts +57 -44
- package/src/data/table/hooks/useColumnOptions.ts +19 -5
- package/src/data/table/hooks/useGridCache.ts +3 -2
- package/src/data/table/hooks/useTableDetailsPanel.tsx +185 -0
- package/src/data/table/hooks/useTableItems.ts +44 -52
- package/src/data/table/hooks/useTableKeyboardNav.ts +6 -2
- package/src/data/table/hooks/useTableSelection.ts +17 -6
- package/src/data/table/index.tsx +5 -3
- package/src/data/table/root/DataTable.types.ts +20 -9
- package/src/data/table/root/DataTableRoot.context.ts +5 -1
- package/src/data/table/root/DataTableRoot.legacy.tsx +297 -0
- package/src/data/table/root/DataTableRoot.tsx +484 -219
- package/src/data/table/root/agent-feature-gap.md +96 -0
- package/src/data/table/sub-row-toggle/DataTableSubRowToggle.tsx +39 -0
- package/src/data/table/tr/DataTableTr.tsx +14 -13
- package/src/utils/components/dismissablelayer/DismissableLayer.tsx +1 -1
- package/src/utils/components/floating/Floating.tsx +56 -13
- package/src/utils/components/floating-menu/Menu.tsx +4 -1
- package/src/utils/helpers/create-strict-context.tsx +1 -1
- package/src/utils/hooks/useControllableState.ts +11 -8
- package/src/utils/hooks/useValueAsRef.ts +1 -1
- package/src/utils-external/hooks/useId.ts +1 -1
- package/cjs/data/drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.js.map +0 -1
- package/cjs/data/drag-and-drop-old/item/DataDragAndDropItem.d.ts +0 -27
- package/cjs/data/drag-and-drop-old/item/DataDragAndDropItem.js.map +0 -1
- package/cjs/data/drag-and-drop-old/root/DataDragAndDrop.context.d.ts +0 -5
- package/cjs/data/drag-and-drop-old/root/DataDragAndDrop.context.js +0 -6
- package/cjs/data/drag-and-drop-old/root/DataDragAndDrop.context.js.map +0 -1
- package/cjs/data/drag-and-drop-old/root/DataDragAndDropRoot.d.ts +0 -24
- package/cjs/data/drag-and-drop-old/root/DataDragAndDropRoot.js.map +0 -1
- package/cjs/data/table/hooks/useTableExpansion.d.ts +0 -27
- package/cjs/data/table/hooks/useTableExpansion.js.map +0 -1
- package/cjs/data/table/root/DataTableAuto.d.ts +0 -182
- package/cjs/data/table/root/DataTableAuto.js +0 -206
- package/cjs/data/table/root/DataTableAuto.js.map +0 -1
- package/esm/data/drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.js.map +0 -1
- package/esm/data/drag-and-drop-old/item/DataDragAndDropItem.d.ts +0 -27
- package/esm/data/drag-and-drop-old/item/DataDragAndDropItem.js.map +0 -1
- package/esm/data/drag-and-drop-old/root/DataDragAndDrop.context.d.ts +0 -5
- package/esm/data/drag-and-drop-old/root/DataDragAndDrop.context.js +0 -3
- package/esm/data/drag-and-drop-old/root/DataDragAndDrop.context.js.map +0 -1
- package/esm/data/drag-and-drop-old/root/DataDragAndDropRoot.d.ts +0 -24
- package/esm/data/drag-and-drop-old/root/DataDragAndDropRoot.js.map +0 -1
- package/esm/data/table/hooks/useTableExpansion.d.ts +0 -27
- package/esm/data/table/hooks/useTableExpansion.js.map +0 -1
- package/esm/data/table/root/DataTableAuto.d.ts +0 -182
- package/esm/data/table/root/DataTableAuto.js +0 -170
- package/esm/data/table/root/DataTableAuto.js.map +0 -1
- package/src/data/table/hooks/useTableExpansion.tsx +0 -146
- package/src/data/table/root/DataTableAuto.test.tsx +0 -244
- package/src/data/table/root/DataTableAuto.tsx +0 -612
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
type DetailsPanelProps<T> = {
|
|
3
|
+
/**
|
|
4
|
+
* Renders a details panel below the row when expanded.
|
|
5
|
+
* When provided, an expand toggle column is added automatically.
|
|
6
|
+
*/
|
|
7
|
+
getContent?: (rowData: T) => React.ReactNode;
|
|
8
|
+
/**
|
|
9
|
+
* Determines whether a row can be expanded to show details panel content.
|
|
10
|
+
* @default () => true
|
|
11
|
+
*/
|
|
12
|
+
isRowExpandable?: (rowData: T) => boolean;
|
|
13
|
+
/**
|
|
14
|
+
* Controlled list of expanded row IDs.
|
|
15
|
+
* Use with `onDetailsPanelChange` for controlled usage, or `defaultDetailsPanelRowIds` for uncontrolled.
|
|
16
|
+
*/
|
|
17
|
+
expandedRowIds?: (string | number)[];
|
|
18
|
+
/**
|
|
19
|
+
* Initial list of expanded row IDs for uncontrolled usage.
|
|
20
|
+
* @default []
|
|
21
|
+
*/
|
|
22
|
+
defaultExpandedRowIds?: (string | number)[];
|
|
23
|
+
/**
|
|
24
|
+
* Called when the list of expanded row IDs changes.
|
|
25
|
+
*
|
|
26
|
+
*
|
|
27
|
+
* TODO:
|
|
28
|
+
* - Docs: This pattern is called "Master / Detail" in general terms
|
|
29
|
+
*/
|
|
30
|
+
onExpandedRowIdsChange?: (ids: (string | number)[]) => void;
|
|
31
|
+
/**
|
|
32
|
+
* Returns the height (in px) or `"auto"` for a row's details panel.
|
|
33
|
+
* When a number is returned, the panel scrolls within that fixed height.
|
|
34
|
+
* @default "auto"
|
|
35
|
+
*/
|
|
36
|
+
getHeight?: (rowData: T) => number | "auto";
|
|
37
|
+
/**
|
|
38
|
+
* Shows an expand-all toggle button in the expand column header.
|
|
39
|
+
* @default false
|
|
40
|
+
*/
|
|
41
|
+
showExpandAll?: boolean;
|
|
42
|
+
};
|
|
43
|
+
type DataTableDetailsPanelContextT = {
|
|
44
|
+
isExpanded: (id: string | number) => boolean;
|
|
45
|
+
isDetailsPanelExpandable: (id: string | number) => boolean;
|
|
46
|
+
toggleExpansion: (id: string | number) => void;
|
|
47
|
+
toggleAll: () => void;
|
|
48
|
+
isAllExpanded: boolean;
|
|
49
|
+
getDetailsPanelContent?: (row: unknown) => React.ReactNode;
|
|
50
|
+
getDetailsPanelHeight?: (row: unknown) => number | "auto";
|
|
51
|
+
showExpandAll: boolean;
|
|
52
|
+
enableDetailsPanel: boolean;
|
|
53
|
+
};
|
|
54
|
+
declare const useDataTableDetailsPanel: <S extends boolean = true>(strict?: S | undefined) => S extends true ? DataTableDetailsPanelContextT : DataTableDetailsPanelContextT | undefined;
|
|
55
|
+
declare function DataTableDetailsPanelProvider<T>({ children, detailsPanel, }: {
|
|
56
|
+
detailsPanel?: DetailsPanelProps<T>;
|
|
57
|
+
} & {
|
|
58
|
+
children: React.ReactNode;
|
|
59
|
+
}): React.JSX.Element;
|
|
60
|
+
declare function getDataTableDetailsPanelId(tableId: string, rowId: string | number): string;
|
|
61
|
+
export { DataTableDetailsPanelProvider, getDataTableDetailsPanelId, useDataTableDetailsPanel, };
|
|
62
|
+
export type { DetailsPanelProps };
|
|
@@ -2,18 +2,16 @@ import React, { useCallback } from "react";
|
|
|
2
2
|
import { createStrictContext } from "../../../utils/helpers/index.js";
|
|
3
3
|
import { useControllableState } from "../../../utils/hooks/index.js";
|
|
4
4
|
import { useTableItemsContext } from "./useTableItems.js";
|
|
5
|
-
const { Provider:
|
|
6
|
-
name: "
|
|
7
|
-
errorMessage: "
|
|
5
|
+
const { Provider: DataTableDetailsPanelContextProvider, useContext: useDataTableDetailsPanel, } = createStrictContext({
|
|
6
|
+
name: "DataTableDetailsPanelContext",
|
|
7
|
+
errorMessage: "useDataTableDetailsPanel must be used within a DataTableDetailsPanelProvider.",
|
|
8
8
|
});
|
|
9
|
-
function
|
|
10
|
-
|
|
11
|
-
}
|
|
12
|
-
function DataTableExpansionProvider({ children, detailsPanelRowIds, defaultDetailsPanelRowIds = [], onDetailsPanelChange, getDetailsPanelContent, isDetailsPanelExpandable, getDetailsPanelHeight, showExpandAll = false, }) {
|
|
9
|
+
function DataTableDetailsPanelProvider({ children, detailsPanel = {}, }) {
|
|
10
|
+
const { expandedRowIds, defaultExpandedRowIds = [], onExpandedRowIdsChange, getContent, isRowExpandable, getHeight, showExpandAll = false, } = detailsPanel;
|
|
13
11
|
const [expandedIds, setExpandedIds] = useControllableState({
|
|
14
|
-
value:
|
|
15
|
-
defaultValue:
|
|
16
|
-
onChange:
|
|
12
|
+
value: expandedRowIds,
|
|
13
|
+
defaultValue: defaultExpandedRowIds,
|
|
14
|
+
onChange: onExpandedRowIdsChange,
|
|
17
15
|
});
|
|
18
16
|
/* TODO: False is just fallback until auto and root is merged */
|
|
19
17
|
const tableItemsContext = useTableItemsContext(false);
|
|
@@ -21,21 +19,21 @@ function DataTableExpansionProvider({ children, detailsPanelRowIds, defaultDetai
|
|
|
21
19
|
itemDetails: new Map(),
|
|
22
20
|
};
|
|
23
21
|
const expandableIds = React.useMemo(() => {
|
|
24
|
-
if (!
|
|
22
|
+
if (!getContent) {
|
|
25
23
|
return new Set();
|
|
26
24
|
}
|
|
27
25
|
const ids = new Set();
|
|
28
|
-
for (const
|
|
26
|
+
for (const { rowData, id, level } of itemDetails.values()) {
|
|
29
27
|
/* We only allow Master - Details pattern on top level rows */
|
|
30
28
|
if (level > 0) {
|
|
31
29
|
continue;
|
|
32
30
|
}
|
|
33
|
-
if (!
|
|
31
|
+
if (!isRowExpandable || isRowExpandable(rowData)) {
|
|
34
32
|
ids.add(id);
|
|
35
33
|
}
|
|
36
34
|
}
|
|
37
35
|
return ids;
|
|
38
|
-
}, [
|
|
36
|
+
}, [getContent, isRowExpandable, itemDetails]);
|
|
39
37
|
const isDetailsPanelExpandableById = useCallback((id) => expandableIds.has(id), [expandableIds]);
|
|
40
38
|
const isExpanded = useCallback((id) => isDetailsPanelExpandableById(id) && expandedIds.includes(id), [expandedIds, isDetailsPanelExpandableById]);
|
|
41
39
|
const toggleExpansion = useCallback((id) => {
|
|
@@ -51,7 +49,10 @@ function DataTableExpansionProvider({ children, detailsPanelRowIds, defaultDetai
|
|
|
51
49
|
const toggleAll = useCallback(() => {
|
|
52
50
|
setExpandedIds(isAllExpanded ? [] : Array.from(expandableIds));
|
|
53
51
|
}, [expandableIds, isAllExpanded, setExpandedIds]);
|
|
54
|
-
return (React.createElement(
|
|
52
|
+
return (React.createElement(DataTableDetailsPanelContextProvider, { isExpanded: isExpanded, isDetailsPanelExpandable: isDetailsPanelExpandableById, toggleExpansion: toggleExpansion, toggleAll: toggleAll, isAllExpanded: isAllExpanded, getDetailsPanelContent: getContent, getDetailsPanelHeight: getHeight, showExpandAll: showExpandAll, enableDetailsPanel: !!getContent }, children));
|
|
53
|
+
}
|
|
54
|
+
function getDataTableDetailsPanelId(tableId, rowId) {
|
|
55
|
+
return `${tableId}-expansion-${rowId}`;
|
|
55
56
|
}
|
|
56
|
-
export {
|
|
57
|
-
//# sourceMappingURL=
|
|
57
|
+
export { DataTableDetailsPanelProvider, getDataTableDetailsPanelId, useDataTableDetailsPanel, };
|
|
58
|
+
//# sourceMappingURL=useTableDetailsPanel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTableDetailsPanel.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableDetailsPanel.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAwDvD,MAAM,EACJ,QAAQ,EAAE,oCAAoC,EAC9C,UAAU,EAAE,wBAAwB,GACrC,GAAG,mBAAmB,CAAgC;IACrD,IAAI,EAAE,8BAA8B;IACpC,YAAY,EACV,+EAA+E;CAClF,CAAC,CAAC;AAEH,SAAS,6BAA6B,CAAI,EACxC,QAAQ,EACR,YAAY,GAAG,EAAE,GACuD;IACxE,MAAM,EACJ,cAAc,EACd,qBAAqB,GAAG,EAAE,EAC1B,sBAAsB,EACtB,UAAU,EACV,eAAe,EACf,SAAS,EACT,aAAa,GAAG,KAAK,GACtB,GAAG,YAAY,CAAC;IAEjB,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,oBAAoB,CAAC;QACzD,KAAK,EAAE,cAAc;QACrB,YAAY,EAAE,qBAAqB;QACnC,QAAQ,EAAE,sBAAsB;KACjC,CAAC,CAAC;IAEH,gEAAgE;IAChE,MAAM,iBAAiB,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;IAEtD,MAAM,EAAE,WAAW,EAAE,GAAG,iBAAiB,aAAjB,iBAAiB,cAAjB,iBAAiB,GAAI;QAC3C,WAAW,EAAE,IAAI,GAAG,EAGjB;KACJ,CAAC;IAEF,MAAM,aAAa,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE;QACvC,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,OAAO,IAAI,GAAG,EAAmB,CAAC;QACpC,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,GAAG,EAAmB,CAAC;QAEvC,KAAK,MAAM,EAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YAC1D,8DAA8D;YAC9D,IAAI,KAAK,GAAG,CAAC,EAAE,CAAC;gBACd,SAAS;YACX,CAAC;YAED,IAAI,CAAC,eAAe,IAAI,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC;gBACjD,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACd,CAAC;QACH,CAAC;QAED,OAAO,GAAG,CAAC;IACb,CAAC,EAAE,CAAC,UAAU,EAAE,eAAe,EAAE,WAAW,CAAC,CAAC,CAAC;IAE/C,MAAM,4BAA4B,GAAG,WAAW,CAC9C,CAAC,EAAmB,EAAE,EAAE,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,EAC9C,CAAC,aAAa,CAAC,CAChB,CAAC;IAEF,MAAM,UAAU,GAAG,WAAW,CAC5B,CAAC,EAAmB,EAAE,EAAE,CACtB,4BAA4B,CAAC,EAAE,CAAC,IAAI,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,EAC9D,CAAC,WAAW,EAAE,4BAA4B,CAAC,CAC5C,CAAC;IAEF,MAAM,eAAe,GAAG,WAAW,CACjC,CAAC,EAAmB,EAAE,EAAE;QACtB,IAAI,CAAC,4BAA4B,CAAC,EAAE,CAAC,EAAE,CAAC;YACtC,OAAO;QACT,CAAC;QAED,cAAc,CAAC,CAAC,kBAAkB,EAAE,EAAE,CACpC,kBAAkB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC7B,CAAC,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC;YAC9D,CAAC,CAAC,CAAC,GAAG,kBAAkB,EAAE,EAAE,CAAC,CAChC,CAAC;IACJ,CAAC,EACD,CAAC,4BAA4B,EAAE,cAAc,CAAC,CAC/C,CAAC;IAEF,MAAM,aAAa,GACjB,aAAa,CAAC,IAAI,GAAG,CAAC;QACtB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;IAEtE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE;QACjC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;IACjE,CAAC,EAAE,CAAC,aAAa,EAAE,aAAa,EAAE,cAAc,CAAC,CAAC,CAAC;IAEnD,OAAO,CACL,oBAAC,oCAAoC,IACnC,UAAU,EAAE,UAAU,EACtB,wBAAwB,EAAE,4BAA4B,EACtD,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,SAAS,EACpB,aAAa,EAAE,aAAa,EAC5B,sBAAsB,EACpB,UAA6D,EAE/D,qBAAqB,EACnB,SAA4D,EAE9D,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,CAAC,CAAC,UAAU,IAE/B,QAAQ,CAC4B,CACxC,CAAC;AACJ,CAAC;AAED,SAAS,0BAA0B,CAAC,OAAe,EAAE,KAAsB;IACzE,OAAO,GAAG,OAAO,cAAc,KAAK,EAAE,CAAC;AACzC,CAAC;AAED,OAAO,EACL,6BAA6B,EAC7B,0BAA0B,EAC1B,wBAAwB,GACzB,CAAC"}
|
|
@@ -1,33 +1,30 @@
|
|
|
1
1
|
import { type ItemDetail, type TableRowEntryId } from "../helpers/collectTableRowEntries.js";
|
|
2
|
+
type SubRowsProps<T> = {
|
|
3
|
+
getRows?: (rowData: T) => T[];
|
|
4
|
+
expandedRowIds?: (string | number)[];
|
|
5
|
+
defaultExpandedRowIds?: (string | number)[];
|
|
6
|
+
isRowExpandable?: (rowData: T) => boolean;
|
|
7
|
+
onExpandedRowIdsChange?: (ids: (string | number)[]) => void;
|
|
8
|
+
};
|
|
2
9
|
type UseTableItemsArgs<T> = {
|
|
3
10
|
items: T[];
|
|
4
|
-
getRowId?: (rowData: T
|
|
5
|
-
|
|
6
|
-
* Master - Detail pattern props
|
|
7
|
-
*/
|
|
8
|
-
/**
|
|
9
|
-
* Expanded/Nested rows pattern props
|
|
10
|
-
*/
|
|
11
|
-
getSubRows?: (rowData: T) => T[];
|
|
12
|
-
expandedSubRowIds?: (string | number)[];
|
|
13
|
-
defaultExpandedSubRowIds?: (string | number)[];
|
|
14
|
-
isSubRowExpandable?: (rowData: T) => boolean;
|
|
15
|
-
onExpandedSubRowIdsChange?: (ids: (string | number)[]) => void;
|
|
11
|
+
getRowId?: (rowData: T) => TableRowEntryId;
|
|
12
|
+
subRows?: SubRowsProps<T>;
|
|
16
13
|
};
|
|
17
14
|
type useTableItemsReturn<T> = {
|
|
18
15
|
items: T[];
|
|
19
|
-
itemDetails: Map<
|
|
16
|
+
itemDetails: Map<TableRowEntryId, ItemDetail<T>>;
|
|
20
17
|
/** Row ids for the rows currently rendered in the table body. */
|
|
21
18
|
visibleRowIds: TableRowEntryId[];
|
|
22
19
|
/** Direct child ids for each row, used to traverse selection groups lazily. */
|
|
23
20
|
childRowIdsById: Map<TableRowEntryId, TableRowEntryId[]>;
|
|
24
|
-
|
|
21
|
+
onExpandedRowIdsChange: (id: string | number) => void;
|
|
25
22
|
isSubRowExpanded: (id: string | number) => boolean;
|
|
26
23
|
};
|
|
27
24
|
declare function useTableItems<T>(args: UseTableItemsArgs<T>): useTableItemsReturn<T>;
|
|
28
|
-
declare const TableItemsProvider: import("react").FC<Omit<useTableItemsReturn<any>, "
|
|
25
|
+
declare const TableItemsProvider: import("react").FC<Omit<useTableItemsReturn<any>, "childRowIdsById"> & {
|
|
29
26
|
children: React.ReactNode;
|
|
30
27
|
ref?: never;
|
|
31
|
-
}>, useTableItemsContext: <S extends boolean = true>(strict?: S | undefined) => S extends true ? Omit<useTableItemsReturn<any>, "
|
|
28
|
+
}>, useTableItemsContext: <S extends boolean = true>(strict?: S | undefined) => S extends true ? Omit<useTableItemsReturn<any>, "childRowIdsById"> : Omit<useTableItemsReturn<any>, "childRowIdsById"> | undefined;
|
|
32
29
|
export { useTableItems, TableItemsProvider, useTableItemsContext };
|
|
33
|
-
export type { ItemDetail };
|
|
30
|
+
export type { ItemDetail, SubRowsProps };
|
|
@@ -3,40 +3,41 @@ import { createStrictContext } from "../../../utils/helpers/index.js";
|
|
|
3
3
|
import { useControllableState } from "../../../utils/hooks/index.js";
|
|
4
4
|
import { collectTableRowEntries, } from "../helpers/collectTableRowEntries.js";
|
|
5
5
|
function useTableItems(args) {
|
|
6
|
-
const { items,
|
|
6
|
+
const { items, subRows = {}, getRowId } = args;
|
|
7
|
+
const { expandedRowIds, defaultExpandedRowIds, getRows, onExpandedRowIdsChange, isRowExpandable, } = subRows;
|
|
7
8
|
const [nestedSubRowsExpandedIds, setNestedSubRowsExpandedIds] = useControllableState({
|
|
8
|
-
value:
|
|
9
|
-
defaultValue:
|
|
10
|
-
onChange:
|
|
9
|
+
value: expandedRowIds,
|
|
10
|
+
defaultValue: defaultExpandedRowIds !== null && defaultExpandedRowIds !== void 0 ? defaultExpandedRowIds : [],
|
|
11
|
+
onChange: onExpandedRowIdsChange,
|
|
11
12
|
});
|
|
12
13
|
const expandedIdsSet = useMemo(() => new Set(nestedSubRowsExpandedIds), [nestedSubRowsExpandedIds]);
|
|
13
14
|
const { itemDetails, visibleItems, visibleRowIds, childRowIdsById } = useMemo(() => {
|
|
14
|
-
const { itemDetails: rowEntriesMap, childRowIdsById: _childRowIdsById } = collectTableRowEntries({
|
|
15
|
+
const { itemDetails: rowEntriesMap, rootRowIds, childRowIdsById: _childRowIdsById, } = collectTableRowEntries({
|
|
15
16
|
items,
|
|
16
17
|
getRowId,
|
|
17
|
-
|
|
18
|
-
|
|
18
|
+
getRows,
|
|
19
|
+
isRowExpandable,
|
|
19
20
|
});
|
|
20
21
|
const localVisibleItems = [];
|
|
21
22
|
const localVisibleRowIds = [];
|
|
22
|
-
const addVisibleRows = (
|
|
23
|
-
const details = rowEntriesMap.get(
|
|
23
|
+
const addVisibleRows = (rowId) => {
|
|
24
|
+
const details = rowEntriesMap.get(rowId);
|
|
24
25
|
if (!details) {
|
|
25
26
|
return [];
|
|
26
27
|
}
|
|
27
|
-
localVisibleItems.push(rowData);
|
|
28
|
+
localVisibleItems.push(details.rowData);
|
|
28
29
|
localVisibleRowIds.push(details.id);
|
|
29
30
|
const visibleDescendantRowIds = [];
|
|
30
31
|
if (expandedIdsSet.has(details.id)) {
|
|
31
|
-
for (const
|
|
32
|
-
const childVisibleRowIds = addVisibleRows(
|
|
32
|
+
for (const childRowId of details.children) {
|
|
33
|
+
const childVisibleRowIds = addVisibleRows(childRowId);
|
|
33
34
|
visibleDescendantRowIds.push(...childVisibleRowIds);
|
|
34
35
|
}
|
|
35
36
|
}
|
|
36
37
|
return [details.id, ...visibleDescendantRowIds];
|
|
37
38
|
};
|
|
38
|
-
for (const
|
|
39
|
-
addVisibleRows(
|
|
39
|
+
for (const rowId of rootRowIds) {
|
|
40
|
+
addVisibleRows(rowId);
|
|
40
41
|
}
|
|
41
42
|
return {
|
|
42
43
|
visibleItems: localVisibleItems,
|
|
@@ -44,7 +45,7 @@ function useTableItems(args) {
|
|
|
44
45
|
childRowIdsById: _childRowIdsById,
|
|
45
46
|
itemDetails: rowEntriesMap,
|
|
46
47
|
};
|
|
47
|
-
}, [
|
|
48
|
+
}, [getRows, items, getRowId, isRowExpandable, expandedIdsSet]);
|
|
48
49
|
const handleExpandedSubRowIdChange = useCallback((id) => {
|
|
49
50
|
setNestedSubRowsExpandedIds((prev) => prev.includes(id)
|
|
50
51
|
? prev.filter((expandedId) => expandedId !== id)
|
|
@@ -55,7 +56,7 @@ function useTableItems(args) {
|
|
|
55
56
|
itemDetails,
|
|
56
57
|
visibleRowIds,
|
|
57
58
|
childRowIdsById,
|
|
58
|
-
|
|
59
|
+
onExpandedRowIdsChange: handleExpandedSubRowIdChange,
|
|
59
60
|
isSubRowExpanded: (id) => expandedIdsSet.has(id),
|
|
60
61
|
};
|
|
61
62
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableItems.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableItems.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAGL,sBAAsB,GACvB,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"useTableItems.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableItems.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAGL,sBAAsB,GACvB,MAAM,mCAAmC,CAAC;AA2B3C,SAAS,aAAa,CAAI,IAA0B;IAClD,MAAM,EAAE,KAAK,EAAE,OAAO,GAAG,EAAE,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC;IAE/C,MAAM,EACJ,cAAc,EACd,qBAAqB,EACrB,OAAO,EACP,sBAAsB,EACtB,eAAe,GAChB,GAAG,OAAO,CAAC;IAEZ,MAAM,CAAC,wBAAwB,EAAE,2BAA2B,CAAC,GAC3D,oBAAoB,CAAC;QACnB,KAAK,EAAE,cAAc;QACrB,YAAY,EAAE,qBAAqB,aAArB,qBAAqB,cAArB,qBAAqB,GAAI,EAAE;QACzC,QAAQ,EAAE,sBAAsB;KACjC,CAAC,CAAC;IAEL,MAAM,cAAc,GAAG,OAAO,CAC5B,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,wBAAwB,CAAC,EACvC,CAAC,wBAAwB,CAAC,CAC3B,CAAC;IAEF,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,eAAe,EAAE,GACjE,OAAO,CAAC,GAAG,EAAE;QACX,MAAM,EACJ,WAAW,EAAE,aAAa,EAC1B,UAAU,EACV,eAAe,EAAE,gBAAgB,GAClC,GAAG,sBAAsB,CAAC;YACzB,KAAK;YACL,QAAQ;YACR,OAAO;YACP,eAAe;SAChB,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAQ,EAAE,CAAC;QAClC,MAAM,kBAAkB,GAAsB,EAAE,CAAC;QAEjD,MAAM,cAAc,GAAG,CAAC,KAAsB,EAAqB,EAAE;YACnE,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAEzC,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,EAAE,CAAC;YACZ,CAAC;YAED,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YACxC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAEpC,MAAM,uBAAuB,GAAsB,EAAE,CAAC;YAEtD,IAAI,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBACnC,KAAK,MAAM,UAAU,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;oBAC1C,MAAM,kBAAkB,GAAG,cAAc,CAAC,UAAU,CAAC,CAAC;oBACtD,uBAAuB,CAAC,IAAI,CAAC,GAAG,kBAAkB,CAAC,CAAC;gBACtD,CAAC;YACH,CAAC;YAED,OAAO,CAAC,OAAO,CAAC,EAAE,EAAE,GAAG,uBAAuB,CAAC,CAAC;QAClD,CAAC,CAAC;QAEF,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;YAC/B,cAAc,CAAC,KAAK,CAAC,CAAC;QACxB,CAAC;QAED,OAAO;YACL,YAAY,EAAE,iBAAiB;YAC/B,aAAa,EAAE,kBAAkB;YACjC,eAAe,EAAE,gBAAgB;YACjC,WAAW,EAAE,aAAa;SAC3B,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,eAAe,EAAE,cAAc,CAAC,CAAC,CAAC;IAElE,MAAM,4BAA4B,GAAG,WAAW,CAC9C,CAAC,EAAmB,EAAE,EAAE;QACtB,2BAA2B,CAAC,CAAC,IAAI,EAAE,EAAE,CACnC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;YACf,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,UAAU,EAAE,EAAE,CAAC,UAAU,KAAK,EAAE,CAAC;YAChD,CAAC,CAAC,CAAC,GAAG,IAAI,EAAE,EAAE,CAAC,CAClB,CAAC;IACJ,CAAC,EACD,CAAC,2BAA2B,CAAC,CAC9B,CAAC;IAEF,OAAO;QACL,KAAK,EAAE,YAAY;QACnB,WAAW;QACX,aAAa;QACb,eAAe;QACf,sBAAsB,EAAE,4BAA4B;QACpD,gBAAgB,EAAE,CAAC,EAAmB,EAAE,EAAE,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;KAClE,CAAC;AACJ,CAAC;AAED,MAAM,EAAE,QAAQ,EAAE,kBAAkB,EAAE,UAAU,EAAE,oBAAoB,EAAE;AACtE,oCAAoC;AACpC,mBAAmB,CAAoD;IACrE,IAAI,EAAE,mBAAmB;IACzB,YAAY,EACV,+DAA+D;CAClE,CAAC,CAAC;AAEL,OAAO,EAAE,aAAa,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { useEffect, useState } from "react";
|
|
2
2
|
import { useEventCallback } from "../../../utils/hooks/index.js";
|
|
3
3
|
import { focusInitialTableTarget } from "../helpers/table-cell.js";
|
|
4
|
-
import { focusCellAndUpdateTabIndex } from "../helpers/table-focus.js";
|
|
4
|
+
import { focusCell, focusCellAndUpdateTabIndex } from "../helpers/table-focus.js";
|
|
5
5
|
import { findFirstCell, findFirstCellInRow, findLastCell, findLastCellInRow, findNextFocusableCell, } from "../helpers/table-grid-nav.js";
|
|
6
6
|
import { getNavigationAction, shouldBlockNavigation, } from "../helpers/table-keyboard.js";
|
|
7
7
|
import { useGridCache } from "./useGridCache.js";
|
|
@@ -87,6 +87,10 @@ function useTableKeyboardNav({ enabled, shouldBlockNavigation: customBlockFn, })
|
|
|
87
87
|
var _a;
|
|
88
88
|
const target = event.target;
|
|
89
89
|
if (tableRef && target === tableRef) {
|
|
90
|
+
if (activeCell) {
|
|
91
|
+
focusCell(activeCell);
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
90
94
|
focusInitialTableTarget(tableRef);
|
|
91
95
|
return;
|
|
92
96
|
}
|
|
@@ -117,7 +121,7 @@ function useTableKeyboardNav({ enabled, shouldBlockNavigation: customBlockFn, })
|
|
|
117
121
|
}, [tableRef, handleTableKeyDown, handleTableFocusIn, enabled]);
|
|
118
122
|
return {
|
|
119
123
|
/* Table should only have tabIndex until the focus is moved inside and is enabled */
|
|
120
|
-
tabIndex: enabled ?
|
|
124
|
+
tabIndex: enabled ? 0 : undefined,
|
|
121
125
|
setTableRef,
|
|
122
126
|
};
|
|
123
127
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableKeyboardNav.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableKeyboardNav.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,0BAA0B,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"useTableKeyboardNav.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableKeyboardNav.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import type { SelectionProps, TableSelection } from "../helpers/selection/selection.types.js";
|
|
2
|
-
type UseTableSelectionArgs =
|
|
2
|
+
type UseTableSelectionArgs = {
|
|
3
|
+
selection?: SelectionProps;
|
|
3
4
|
visibleRowIds: (string | number)[];
|
|
4
5
|
childRowIdsById?: Map<string | number, (string | number)[]>;
|
|
5
6
|
};
|
|
6
7
|
type UseTableSelectionReturn = {
|
|
7
8
|
selection: TableSelection;
|
|
8
9
|
renderSelection: boolean;
|
|
10
|
+
disableRowSelectionOnClick: boolean;
|
|
9
11
|
};
|
|
10
|
-
declare function useTableSelection({
|
|
12
|
+
declare function useTableSelection({ selection, visibleRowIds, childRowIdsById, }: UseTableSelectionArgs): UseTableSelectionReturn;
|
|
11
13
|
/**
|
|
12
14
|
* TODO: Only temp needed to keep Root happy
|
|
13
15
|
*/
|
|
@@ -3,7 +3,8 @@ import { useId } from "../../../utils-external/index.js";
|
|
|
3
3
|
import { useControllableState } from "../../../utils/hooks/index.js";
|
|
4
4
|
import { getMultipleSelectProps } from "../helpers/selection/getMultipleSelectProps.js";
|
|
5
5
|
import { getSingleSelectProps } from "../helpers/selection/getSingleSelectProps.js";
|
|
6
|
-
function useTableSelection({
|
|
6
|
+
function useTableSelection({ selection = {}, visibleRowIds = [], childRowIdsById, }) {
|
|
7
|
+
const { selectionMode = "none", defaultSelectedKeys, selectedKeys: selectedKeysProp, onSelectionChange, disabledSelectionKeys = [], disableRowSelectionOnClick = false, } = selection;
|
|
7
8
|
const radioGroupName = useId();
|
|
8
9
|
const [selectedKeys, setSelectedKeys] = useControllableState({
|
|
9
10
|
value: selectionMode !== "none" ? selectedKeysProp : undefined,
|
|
@@ -17,6 +18,7 @@ function useTableSelection({ selectionMode = "none", defaultSelectedKeys, select
|
|
|
17
18
|
if (selectionMode === "none") {
|
|
18
19
|
return {
|
|
19
20
|
selection: Object.assign(Object.assign({ selectionMode }, baseSelection), { selectedKeys: [] }),
|
|
21
|
+
disableRowSelectionOnClick,
|
|
20
22
|
renderSelection: false,
|
|
21
23
|
};
|
|
22
24
|
}
|
|
@@ -28,6 +30,7 @@ function useTableSelection({ selectionMode = "none", defaultSelectedKeys, select
|
|
|
28
30
|
disabledKeysSet,
|
|
29
31
|
name: radioGroupName,
|
|
30
32
|
})),
|
|
33
|
+
disableRowSelectionOnClick,
|
|
31
34
|
renderSelection: visibleRowIds.length !== 0,
|
|
32
35
|
};
|
|
33
36
|
}
|
|
@@ -40,6 +43,7 @@ function useTableSelection({ selectionMode = "none", defaultSelectedKeys, select
|
|
|
40
43
|
visibleRowIds,
|
|
41
44
|
childRowIdsById,
|
|
42
45
|
})),
|
|
46
|
+
disableRowSelectionOnClick,
|
|
43
47
|
renderSelection: visibleRowIds.length !== 0,
|
|
44
48
|
};
|
|
45
49
|
}
|
|
@@ -53,6 +57,7 @@ const noSelectionState = {
|
|
|
53
57
|
disabledSelectionKeys: [],
|
|
54
58
|
isRowSelected: () => false,
|
|
55
59
|
},
|
|
60
|
+
disableRowSelectionOnClick: false,
|
|
56
61
|
renderSelection: false,
|
|
57
62
|
};
|
|
58
63
|
export { useTableSelection, noSelectionState };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableSelection.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableSelection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"useTableSelection.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableSelection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAC7C,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC5D,OAAO,EAAE,sBAAsB,EAAE,MAAM,6CAA6C,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AAqBjF,SAAS,iBAAiB,CAAC,EACzB,SAAS,GAAG,EAAE,EACd,aAAa,GAAG,EAAE,EAClB,eAAe,GACO;IACtB,MAAM,EACJ,aAAa,GAAG,MAAM,EACtB,mBAAmB,EACnB,YAAY,EAAE,gBAAgB,EAC9B,iBAAiB,EACjB,qBAAqB,GAAG,EAAE,EAC1B,0BAA0B,GAAG,KAAK,GACnC,GAAG,SAAS,CAAC;IAEd,MAAM,cAAc,GAAG,KAAK,EAAE,CAAC;IAE/B,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,oBAAoB,CAAgB;QAC1E,KAAK,EAAE,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS;QAC9D,YAAY,EAAE,mBAAmB,aAAnB,mBAAmB,cAAnB,mBAAmB,GAAI,EAAE;QACvC,QAAQ,EAAE,iBAAiB;KAC5B,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC;IAE7E,MAAM,eAAe,GAAG,OAAO,CAC7B,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,qBAAqB,CAAC,EACpC,CAAC,qBAAqB,CAAC,CACxB,CAAC;IAEF,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,KAAsB,EAAE,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,EACtD,CAAC,eAAe,CAAC,CAClB,CAAC;IAEF,MAAM,aAAa,GAAG,EAAE,YAAY,EAAE,qBAAqB,EAAE,aAAa,EAAE,CAAC;IAE7E,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;QAC7B,OAAO;YACL,SAAS,gCACP,aAAa,IACV,aAAa,KAChB,YAAY,EAAE,EAAE,GACjB;YACD,0BAA0B;YAC1B,eAAe,EAAE,KAAK;SACvB,CAAC;IACJ,CAAC;IAED,IAAI,aAAa,KAAK,QAAQ,EAAE,CAAC;QAC/B,OAAO;YACL,SAAS,gCACP,aAAa,IACV,aAAa,GACb,oBAAoB,CAAC;gBACtB,eAAe;gBACf,eAAe;gBACf,eAAe;gBACf,IAAI,EAAE,cAAc;aACrB,CAAC,CACH;YACD,0BAA0B;YAC1B,eAAe,EAAE,aAAa,CAAC,MAAM,KAAK,CAAC;SAC5C,CAAC;IACJ,CAAC;IAED,OAAO;QACL,SAAS,gCACP,aAAa,IACV,aAAa,GACb,sBAAsB,CAAC;YACxB,eAAe;YACf,YAAY;YACZ,eAAe;YACf,eAAe;YACf,aAAa;YACb,eAAe;SAChB,CAAC,CACH;QACD,0BAA0B;QAC1B,eAAe,EAAE,aAAa,CAAC,MAAM,KAAK,CAAC;KAC5C,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,gBAAgB,GAA4B;IAChD,SAAS,EAAE;QACT,aAAa,EAAE,MAAM;QACrB,YAAY,EAAE,EAAE;QAChB,qBAAqB,EAAE,EAAE;QACzB,aAAa,EAAE,GAAG,EAAE,CAAC,KAAK;KAC3B;IACD,0BAA0B,EAAE,KAAK;IACjC,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,CAAC"}
|
|
@@ -1,2 +1 @@
|
|
|
1
|
-
export {
|
|
2
|
-
export type { DataTableProps, DataTableCaptionProps, DataTableTheadProps, DataTableTbodyProps, DataTableTrProps, DataTableThProps, DataTableTdProps, DataTableTfootProps, } from "./root/DataTableRoot.js";
|
|
1
|
+
export { DataTable, type DataTableProps } from "./root/DataTableRoot.js";
|
package/esm/data/table/index.js
CHANGED
|
@@ -1,3 +1,23 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export {
|
|
2
|
+
/* export {
|
|
3
|
+
default as DataTable,
|
|
4
|
+
DataTableCaption,
|
|
5
|
+
DataTableThead,
|
|
6
|
+
DataTableTbody,
|
|
7
|
+
DataTableTr,
|
|
8
|
+
DataTableTh,
|
|
9
|
+
DataTableTd,
|
|
10
|
+
DataTableTfoot,
|
|
11
|
+
} from "./root/DataTableRoot.legacy.js";
|
|
12
|
+
export type {
|
|
13
|
+
DataTableProps,
|
|
14
|
+
DataTableCaptionProps,
|
|
15
|
+
DataTableTheadProps,
|
|
16
|
+
DataTableTbodyProps,
|
|
17
|
+
DataTableTrProps,
|
|
18
|
+
DataTableThProps,
|
|
19
|
+
DataTableTdProps,
|
|
20
|
+
DataTableTfootProps,
|
|
21
|
+
} from "./root/DataTableRoot.legacy.js"; */
|
|
22
|
+
export { DataTable } from "./root/DataTableRoot.js";
|
|
3
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/table/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/data/table/index.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;AACb;;;;;;;;;;;;;;;;;;;wCAmBwC;AAExC,OAAO,EAAE,SAAS,EAAuB,MAAM,sBAAsB,CAAC"}
|
|
@@ -1,15 +1,12 @@
|
|
|
1
|
+
import type { ResizeProps } from "../column-header/useTableColumnResize.js";
|
|
1
2
|
type SortDirection = "asc" | "desc" | "none";
|
|
2
3
|
/**
|
|
3
4
|
* TODO:
|
|
4
5
|
* - Consider "accessorKey" or similar to allow simple column definitions without a cell function.
|
|
5
6
|
* - Add "align" property for better control over text alignment in cells.
|
|
6
7
|
*/
|
|
7
|
-
type ColumnDefinition<T
|
|
8
|
+
type ColumnDefinition<T, DetailsT = Record<string, any>> = Pick<ResizeProps, "resizable" | "width" | "defaultWidth" | "autoWidth" | "minWidth" | "maxWidth" | "onWidthChange"> & {
|
|
8
9
|
id: string;
|
|
9
|
-
width?: number | string;
|
|
10
|
-
defaultWidth?: number | string;
|
|
11
|
-
minWidth?: number | string;
|
|
12
|
-
maxWidth?: number | string;
|
|
13
10
|
/**
|
|
14
11
|
* Text alignment for cells in this column.
|
|
15
12
|
*
|
|
@@ -21,9 +18,6 @@ type ColumnDefinition<T> = {
|
|
|
21
18
|
* Assigned to the cell's `th` element instead of `td` if true.
|
|
22
19
|
*
|
|
23
20
|
* Should be used for cells that act as row headers. Each row should have one rowheader, and only have one cell with `isRowHeader: true`,
|
|
24
|
-
*
|
|
25
|
-
* TODO: Not implemented
|
|
26
|
-
* - Add a generic tablecell component that can render either a td or th based on context or this prop.
|
|
27
21
|
*/
|
|
28
22
|
isRowHeader?: boolean;
|
|
29
23
|
/**
|
|
@@ -43,8 +37,12 @@ type ColumnDefinition<T> = {
|
|
|
43
37
|
* Use `sort` and `onSortChange` on the root component to control sort state.
|
|
44
38
|
*/
|
|
45
39
|
sortable?: boolean;
|
|
40
|
+
/**
|
|
41
|
+
* Additional metadata that can be used for filtering or other purposes. Not used by the table itself.
|
|
42
|
+
*/
|
|
43
|
+
details?: DetailsT;
|
|
46
44
|
};
|
|
47
|
-
type ColumnDefinitions<T
|
|
45
|
+
type ColumnDefinitions<T, DetailsT = Record<string, any>> = ColumnDefinition<T, DetailsT>[];
|
|
48
46
|
/**
|
|
49
47
|
* A single sort entry representing a column's current sort state.
|
|
50
48
|
* Absent from the `sort` array means the column is unsorted.
|
|
@@ -9,10 +9,14 @@ type DataTableContextProps<T> = {
|
|
|
9
9
|
tableId: string;
|
|
10
10
|
showLoadingSkeletons: boolean;
|
|
11
11
|
onRowClick?: (rowId: string | number, event: React.MouseEvent<HTMLTableRowElement>) => void;
|
|
12
|
-
disableRowSelectionOnClick: boolean;
|
|
13
12
|
isLoading?: boolean;
|
|
14
13
|
showLoadingOverlay: boolean;
|
|
15
14
|
columns: UseColumnOptionsResult<T>["columns"];
|
|
15
|
+
/**
|
|
16
|
+
* Used to set exact colspan for detailsPanel, loadingState and emptyState.
|
|
17
|
+
* This is necessary to ensure that these components span the entire width of the table.
|
|
18
|
+
*/
|
|
19
|
+
fullWidthColSpan: number;
|
|
16
20
|
};
|
|
17
21
|
declare const DataTableContextProvider: import("react").FC<DataTableContextProps<any> & {
|
|
18
22
|
children: React.ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableRoot.context.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataTableRoot.context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"DataTableRoot.context.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataTableRoot.context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AA0B7D,MAAM,EAAE,QAAQ,EAAE,wBAAwB,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAC3E,mBAAmB,CAA6B;IAC9C,IAAI,EAAE,kBAAkB;IACxB,YAAY,EAAE,mDAAmD;CAClE,CAAC,CAAC;AAIL,MAAM,EACJ,QAAQ,EAAE,yBAAyB,EACnC,UAAU,EAAE,oBAAoB,GACjC,GAAG,mBAAmB,CAAkC;IACvD,IAAI,EAAE,mBAAmB;IACzB,YAAY,EACV,mIAAmI;CACtI,CAAC,CAAC;AAEH,OAAO,EACL,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,oBAAoB,GACrB,CAAC"}
|