@navikt/ds-react 8.10.2 → 8.10.4
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/stories/Data.test-data.d.ts +24 -0
- package/cjs/data/stories/Data.test-data.js +1616 -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 -2
- package/cjs/data/table/column-header/DataTableColumnHeader.js.map +1 -1
- package/cjs/data/table/column-header/useTableColumnResize.d.ts +39 -14
- package/cjs/data/table/column-header/useTableColumnResize.js +37 -39
- 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 +13 -5
- package/cjs/data/table/helpers/collectTableRowEntries.js +26 -19
- package/cjs/data/table/helpers/collectTableRowEntries.js.map +1 -1
- package/cjs/data/table/helpers/selection/SelectionSubtreeHelper.d.ts +46 -0
- package/cjs/data/table/helpers/selection/SelectionSubtreeHelper.js +112 -0
- package/cjs/data/table/helpers/selection/SelectionSubtreeHelper.js.map +1 -0
- package/cjs/data/table/helpers/selection/getMultipleSelectProps.d.ts +3 -2
- package/cjs/data/table/helpers/selection/getMultipleSelectProps.js +43 -19
- package/cjs/data/table/helpers/selection/getMultipleSelectProps.js.map +1 -1
- package/cjs/data/table/helpers/selection/selection.types.d.ts +1 -0
- package/cjs/data/table/helpers/table-keyboard.d.ts +1 -2
- package/cjs/data/table/helpers/table-keyboard.js +1 -2
- package/cjs/data/table/helpers/table-keyboard.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/useTableDetailsPanel.d.ts +62 -0
- package/cjs/data/table/hooks/{useTableExpansion.js → useTableDetailsPanel.js} +26 -19
- package/cjs/data/table/hooks/useTableDetailsPanel.js.map +1 -0
- package/cjs/data/table/hooks/useTableItems.d.ts +18 -17
- package/cjs/data/table/hooks/useTableItems.js +27 -15
- package/cjs/data/table/hooks/useTableItems.js.map +1 -1
- package/cjs/data/table/hooks/useTableSelection.d.ts +6 -3
- package/cjs/data/table/hooks/useTableSelection.js +10 -4
- 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 +12 -10
- 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 +167 -39
- 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/form/checkbox/Checkbox.js +1 -0
- package/cjs/form/checkbox/Checkbox.js.map +1 -1
- package/cjs/form/radio/Radio.js +7 -1
- package/cjs/form/radio/Radio.js.map +1 -1
- package/cjs/modal/types.d.ts +8 -4
- 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/stories/Data.test-data.d.ts +24 -0
- package/esm/data/stories/Data.test-data.js +1607 -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 -2
- package/esm/data/table/column-header/DataTableColumnHeader.js.map +1 -1
- package/esm/data/table/column-header/useTableColumnResize.d.ts +39 -14
- package/esm/data/table/column-header/useTableColumnResize.js +38 -40
- 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 +13 -5
- package/esm/data/table/helpers/collectTableRowEntries.js +26 -19
- package/esm/data/table/helpers/collectTableRowEntries.js.map +1 -1
- package/esm/data/table/helpers/selection/SelectionSubtreeHelper.d.ts +46 -0
- package/esm/data/table/helpers/selection/SelectionSubtreeHelper.js +109 -0
- package/esm/data/table/helpers/selection/SelectionSubtreeHelper.js.map +1 -0
- package/esm/data/table/helpers/selection/getMultipleSelectProps.d.ts +3 -2
- package/esm/data/table/helpers/selection/getMultipleSelectProps.js +43 -19
- package/esm/data/table/helpers/selection/getMultipleSelectProps.js.map +1 -1
- package/esm/data/table/helpers/selection/selection.types.d.ts +1 -0
- package/esm/data/table/helpers/table-keyboard.d.ts +1 -2
- package/esm/data/table/helpers/table-keyboard.js +1 -2
- package/esm/data/table/helpers/table-keyboard.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/useTableDetailsPanel.d.ts +62 -0
- package/esm/data/table/hooks/useTableDetailsPanel.js +58 -0
- package/esm/data/table/hooks/useTableDetailsPanel.js.map +1 -0
- package/esm/data/table/hooks/useTableItems.d.ts +18 -17
- package/esm/data/table/hooks/useTableItems.js +27 -15
- package/esm/data/table/hooks/useTableItems.js.map +1 -1
- package/esm/data/table/hooks/useTableSelection.d.ts +6 -3
- package/esm/data/table/hooks/useTableSelection.js +10 -4
- 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 +12 -10
- 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 +174 -37
- 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/form/checkbox/Checkbox.js +1 -0
- package/esm/form/checkbox/Checkbox.js.map +1 -1
- package/esm/form/radio/Radio.js +7 -1
- package/esm/form/radio/Radio.js.map +1 -1
- package/esm/modal/types.d.ts +8 -4
- 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 +3 -3
- package/src/action-menu/ActionMenu.tsx +1 -1
- package/src/data/stories/Data.test-data.tsx +1703 -0
- package/src/data/table/column-header/DataTableColumnHeader.tsx +11 -7
- package/src/data/table/column-header/useTableColumnResize.ts +95 -54
- package/src/data/table/details-panel-row/DataTableDetailsPanelRow.tsx +53 -0
- package/src/data/table/helpers/collectTableRowEntries.ts +55 -31
- package/src/data/table/helpers/selection/SelectionSubtreeHelper.test.ts +66 -0
- package/src/data/table/helpers/selection/SelectionSubtreeHelper.ts +162 -0
- package/src/data/table/helpers/selection/getMultipleSelectProps.ts +57 -20
- package/src/data/table/helpers/selection/selection.types.ts +1 -0
- package/src/data/table/helpers/table-keyboard.ts +1 -2
- package/src/data/table/hooks/__tests__/useTableItems.test.ts +27 -6
- package/src/data/table/hooks/__tests__/useTableSelection.test.ts +182 -58
- package/src/data/table/hooks/useColumnOptions.ts +19 -5
- package/src/data/table/hooks/useTableDetailsPanel.tsx +182 -0
- package/src/data/table/hooks/useTableItems.ts +74 -60
- package/src/data/table/hooks/useTableSelection.ts +27 -12
- package/src/data/table/index.tsx +5 -3
- package/src/data/table/root/DataTable.types.ts +25 -10
- 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 +483 -219
- package/src/data/table/sub-row-toggle/DataTableSubRowToggle.tsx +39 -0
- package/src/data/table/tr/DataTableTr.tsx +14 -13
- package/src/form/checkbox/Checkbox.tsx +1 -0
- package/src/form/radio/Radio.tsx +7 -1
- package/src/modal/types.ts +8 -4
- 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/table/hooks/useTableExpansion.d.ts +0 -29
- package/cjs/data/table/hooks/useTableExpansion.js.map +0 -1
- package/cjs/data/table/root/DataTableAuto.d.ts +0 -174
- package/cjs/data/table/root/DataTableAuto.js +0 -206
- package/cjs/data/table/root/DataTableAuto.js.map +0 -1
- package/esm/data/table/hooks/useTableExpansion.d.ts +0 -29
- package/esm/data/table/hooks/useTableExpansion.js +0 -51
- package/esm/data/table/hooks/useTableExpansion.js.map +0 -1
- package/esm/data/table/root/DataTableAuto.d.ts +0 -174
- package/esm/data/table/root/DataTableAuto.js +0 -170
- package/esm/data/table/root/DataTableAuto.js.map +0 -1
- package/src/data/table/hooks/__tests__/useTableExpansion.test.tsx +0 -115
- package/src/data/table/hooks/useTableExpansion.tsx +0 -141
- package/src/data/table/root/DataTableAuto.test.tsx +0 -118
- package/src/data/table/root/DataTableAuto.tsx +0 -603
|
@@ -1,206 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
36
|
-
var t = {};
|
|
37
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
38
|
-
t[p] = s[p];
|
|
39
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
40
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
41
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
42
|
-
t[p[i]] = s[p[i]];
|
|
43
|
-
}
|
|
44
|
-
return t;
|
|
45
|
-
};
|
|
46
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
|
-
exports.DataTableAuto = void 0;
|
|
48
|
-
/** biome-ignore-all lint/correctness/useHookAtTopLevel: False positive because of the way forwardRef() is added */
|
|
49
|
-
const react_1 = __importStar(require("react"));
|
|
50
|
-
const aksel_icons_1 = require("@navikt/aksel-icons");
|
|
51
|
-
const button_1 = require("../../../button");
|
|
52
|
-
const skeleton_1 = require("../../../skeleton");
|
|
53
|
-
const utils_external_1 = require("../../../utils-external");
|
|
54
|
-
const helpers_1 = require("../../../utils/helpers");
|
|
55
|
-
const hooks_1 = require("../../../utils/hooks");
|
|
56
|
-
const DataTableBaseCell_1 = require("../base-cell/DataTableBaseCell");
|
|
57
|
-
const DataTableColumnHeader_1 = require("../column-header/DataTableColumnHeader");
|
|
58
|
-
const DataTableEmptyState_1 = require("../empty-state/DataTableEmptyState");
|
|
59
|
-
const useColumnOptions_1 = require("../hooks/useColumnOptions");
|
|
60
|
-
const useTableExpansion_1 = require("../hooks/useTableExpansion");
|
|
61
|
-
const useTableItems_1 = require("../hooks/useTableItems");
|
|
62
|
-
const useTableKeyboardNav_1 = require("../hooks/useTableKeyboardNav");
|
|
63
|
-
const useTableSelection_1 = require("../hooks/useTableSelection");
|
|
64
|
-
const useTableSort_1 = require("../hooks/useTableSort");
|
|
65
|
-
const DataTableLoadingState_1 = require("../loading-state/DataTableLoadingState");
|
|
66
|
-
const DataTableTbody_1 = require("../tbody/DataTableTbody");
|
|
67
|
-
const DataTableThead_1 = require("../thead/DataTableThead");
|
|
68
|
-
const DataTableTr_1 = require("../tr/DataTableTr");
|
|
69
|
-
const DataTableRoot_context_1 = require("./DataTableRoot.context");
|
|
70
|
-
function DataTableAutoInner(_a, forwardedRef) {
|
|
71
|
-
var { className, id, rowDensity = "normal", withKeyboardNav = false, zebraStripes = false, truncateContent = true, shouldBlockNavigation, layout = "fixed", selectionMode: selectionModeProp = "none", selectedKeys, defaultSelectedKeys, onSelectionChange, disabledSelectionKeys = [], data, columnDefinitions, getRowId, stickyColumns, stickyHeader = false, sort: sortProp, defaultSort = [], onSortChange, onRowClick, emptyState, isLoading = false, loadingState, loadingRows, loadingLabel = "Laster innhold", disableRowSelectionOnClick = false, getDetailsPanelContent, isDetailsPanelExpandable, getDetailsPanelHeight, showExpandAll = false, detailsPanelRowIds, defaultDetailsPanelRowIds, onDetailsPanelChange, getSubRows, expandedSubRowIds, defaultExpandedSubRowIds, isSubRowExpandable, onExpandedSubRowIdsChange } = _a, rest = __rest(_a, ["className", "id", "rowDensity", "withKeyboardNav", "zebraStripes", "truncateContent", "shouldBlockNavigation", "layout", "selectionMode", "selectedKeys", "defaultSelectedKeys", "onSelectionChange", "disabledSelectionKeys", "data", "columnDefinitions", "getRowId", "stickyColumns", "stickyHeader", "sort", "defaultSort", "onSortChange", "onRowClick", "emptyState", "isLoading", "loadingState", "loadingRows", "loadingLabel", "disableRowSelectionOnClick", "getDetailsPanelContent", "isDetailsPanelExpandable", "getDetailsPanelHeight", "showExpandAll", "detailsPanelRowIds", "defaultDetailsPanelRowIds", "onDetailsPanelChange", "getSubRows", "expandedSubRowIds", "defaultExpandedSubRowIds", "isSubRowExpandable", "onExpandedSubRowIdsChange"]);
|
|
72
|
-
const { tabIndex, setTableRef } = (0, useTableKeyboardNav_1.useTableKeyboardNav)({
|
|
73
|
-
enabled: withKeyboardNav,
|
|
74
|
-
shouldBlockNavigation,
|
|
75
|
-
});
|
|
76
|
-
const { sortState, onSortClick } = (0, useTableSort_1.useTableSort)({
|
|
77
|
-
defaultSort,
|
|
78
|
-
onSortChange,
|
|
79
|
-
sort: sortProp,
|
|
80
|
-
});
|
|
81
|
-
const mergedRef = (0, hooks_1.useMergeRefs)(forwardedRef, setTableRef);
|
|
82
|
-
const tableItems = (0, useTableItems_1.useTableItems)({
|
|
83
|
-
items: data,
|
|
84
|
-
getRowId,
|
|
85
|
-
getSubRows,
|
|
86
|
-
expandedSubRowIds,
|
|
87
|
-
defaultExpandedSubRowIds,
|
|
88
|
-
isSubRowExpandable,
|
|
89
|
-
onExpandedSubRowIdsChange,
|
|
90
|
-
});
|
|
91
|
-
const allRowKeys = (0, react_1.useMemo)(() => {
|
|
92
|
-
const rowKeys = [];
|
|
93
|
-
for (const details of tableItems.itemDetails.values()) {
|
|
94
|
-
rowKeys.push(details.id);
|
|
95
|
-
}
|
|
96
|
-
return rowKeys;
|
|
97
|
-
}, [tableItems.itemDetails]);
|
|
98
|
-
const tableSelectionState = (0, useTableSelection_1.useTableSelection)({
|
|
99
|
-
selectionMode: selectionModeProp,
|
|
100
|
-
selectedKeys,
|
|
101
|
-
defaultSelectedKeys,
|
|
102
|
-
onSelectionChange,
|
|
103
|
-
disabledSelectionKeys,
|
|
104
|
-
allRowKeys,
|
|
105
|
-
});
|
|
106
|
-
const { columns, stickySelection } = (0, useColumnOptions_1.useColumnOptions)(columnDefinitions, {
|
|
107
|
-
stickyColumns,
|
|
108
|
-
selectionMode: tableSelectionState.selection.selectionMode,
|
|
109
|
-
});
|
|
110
|
-
const fullWidthColSpan = columns.length +
|
|
111
|
-
(layout === "fixed" ? 1 : 0) +
|
|
112
|
-
(tableSelectionState.selection.selectionMode !== "none" ? 1 : 0) +
|
|
113
|
-
(getDetailsPanelContent ? 1 : 0);
|
|
114
|
-
const tableId = (0, utils_external_1.useId)(id);
|
|
115
|
-
return (react_1.default.createElement(DataTableRoot_context_1.DataTableContextProvider, { layout: layout, withKeyboardNav: withKeyboardNav, selectionState: tableSelectionState, stickySelection: stickySelection, stickyHeader: stickyHeader, tableId: tableId, showLoadingSkeletons: isLoading && loadingState == null, onRowClick: onRowClick, disableRowSelectionOnClick: disableRowSelectionOnClick, isLoading: isLoading, showLoadingOverlay: isLoading && !loadingState && !loadingRows, columns: columns },
|
|
116
|
-
react_1.default.createElement(useTableExpansion_1.DataTableExpansionProvider, { detailsPanelRowIds: detailsPanelRowIds, defaultDetailsPanelRowIds: defaultDetailsPanelRowIds, onDetailsPanelChange: onDetailsPanelChange, itemDetails: tableItems.itemDetails, getDetailsPanelContent: getDetailsPanelContent, isDetailsPanelExpandable: isDetailsPanelExpandable, getDetailsPanelHeight: getDetailsPanelHeight, showExpandAll: showExpandAll },
|
|
117
|
-
react_1.default.createElement("div", { className: "aksel-data-table__border-wrapper" },
|
|
118
|
-
react_1.default.createElement("div", { className: "aksel-data-table__scroll-wrapper" },
|
|
119
|
-
react_1.default.createElement("table", Object.assign({}, rest, { ref: mergedRef, className: (0, helpers_1.cl)("aksel-data-table", className), "data-zebra-stripes": zebraStripes, "data-truncate-content": truncateContent, "data-density": rowDensity, "data-layout": layout, "data-loading": isLoading || undefined, tabIndex: tabIndex, "aria-busy": isLoading || undefined }),
|
|
120
|
-
react_1.default.createElement(DataTableThead_1.DataTableThead, null,
|
|
121
|
-
react_1.default.createElement(DataTableTr_1.DataTableTr, null, columns.map(({ isSticky, colDef }) => {
|
|
122
|
-
var _a, _b;
|
|
123
|
-
const sortEntry = sortState.find((s) => s.columnId === colDef.id);
|
|
124
|
-
const sortDirection = (_a = sortEntry === null || sortEntry === void 0 ? void 0 : sortEntry.direction) !== null && _a !== void 0 ? _a : "none";
|
|
125
|
-
return (react_1.default.createElement(DataTableColumnHeader_1.DataTableColumnHeader, { maxWidth: colDef.maxWidth, minWidth: colDef.minWidth, width: colDef.width, defaultWidth: (_b = colDef.defaultWidth) !== null && _b !== void 0 ? _b : "100%", textAlign: colDef.type === "number" ? "right" : "left", key: colDef.id, isSticky: isSticky, sortable: colDef.sortable, sortDirection: sortDirection, onSortClick: (event) => onSortClick(colDef.id, event) }, colDef.header));
|
|
126
|
-
}))),
|
|
127
|
-
react_1.default.createElement(useTableItems_1.TableItemsProvider, { itemDetails: tableItems.itemDetails, items: tableItems.items, onExpandedSubRowIdsChange: tableItems.onExpandedSubRowIdsChange, isSubRowExpanded: tableItems.isSubRowExpanded },
|
|
128
|
-
react_1.default.createElement(DataTableTbody_1.DataTableTbody, null,
|
|
129
|
-
react_1.default.createElement(DataTableAutoTBodyContent, { loadingState: loadingState, loadingRows: loadingRows, loadingLabel: loadingLabel, emptyState: emptyState, fullWidthColSpan: fullWidthColSpan })))))))));
|
|
130
|
-
}
|
|
131
|
-
function DataTableAutoTBodyContent({ loadingState, loadingRows, loadingLabel, emptyState, fullWidthColSpan, }) {
|
|
132
|
-
const { items, itemDetails } = (0, useTableItems_1.useTableItemsContext)();
|
|
133
|
-
const { columns, isLoading } = (0, DataTableRoot_context_1.useDataTableContext)();
|
|
134
|
-
if (isLoading && loadingState != null) {
|
|
135
|
-
return (react_1.default.createElement(DataTableLoadingState_1.DataTableLoadingState, { colSpan: fullWidthColSpan }, loadingState));
|
|
136
|
-
}
|
|
137
|
-
if (isLoading && loadingRows) {
|
|
138
|
-
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
139
|
-
react_1.default.createElement("tr", null,
|
|
140
|
-
react_1.default.createElement("td", { colSpan: fullWidthColSpan, className: "aksel-sr-only" }, loadingLabel)),
|
|
141
|
-
Array.from({ length: loadingRows }, (_, rowIndex) => (react_1.default.createElement(DataTableTr_1.DataTableTr, { key: `skeleton-row-${rowIndex}`, "aria-hidden": true }, columns.map(({ isSticky, colDef }, colDefIndex) => (react_1.default.createElement(DataTableBaseCell_1.DataTableBaseCell, { textAlign: colDef.type === "number" ? "right" : "left", key: colDef.id || colDefIndex, as: colDef.isRowHeader ? "th" : "td", isSticky: isSticky },
|
|
142
|
-
react_1.default.createElement(skeleton_1.Skeleton, { variant: "text" })))))))));
|
|
143
|
-
}
|
|
144
|
-
if (items.length === 0 && emptyState !== undefined) {
|
|
145
|
-
return (react_1.default.createElement(DataTableEmptyState_1.DataTableEmptyState, { colSpan: fullWidthColSpan }, emptyState));
|
|
146
|
-
}
|
|
147
|
-
const renderLoadingAnnouncement = isLoading && !loadingState && !loadingRows;
|
|
148
|
-
return items.map((rowData) => {
|
|
149
|
-
const details = itemDetails.get(rowData);
|
|
150
|
-
/* Should in theory be impossible. Look about typing this? */
|
|
151
|
-
if (!details) {
|
|
152
|
-
return null;
|
|
153
|
-
}
|
|
154
|
-
const hasSubRows = details.children.length > 0;
|
|
155
|
-
return (react_1.default.createElement(react_1.default.Fragment, { key: details.id },
|
|
156
|
-
renderLoadingAnnouncement && (react_1.default.createElement("tr", null,
|
|
157
|
-
react_1.default.createElement("td", { colSpan: fullWidthColSpan, className: "aksel-sr-only" }, loadingLabel))),
|
|
158
|
-
react_1.default.createElement(DataTableTr_1.DataTableTr, { rowId: details.id }, columns.map(({ isSticky, colDef }, colDefIndex) => {
|
|
159
|
-
const renderNestedToggle = colDefIndex === 0 && hasSubRows;
|
|
160
|
-
const renderNestedIndent = colDefIndex === 0 && (details.level > 0 || hasSubRows);
|
|
161
|
-
const style = {
|
|
162
|
-
"--__axc-data-table-nested-depth": details.level,
|
|
163
|
-
};
|
|
164
|
-
return (react_1.default.createElement(DataTableBaseCell_1.DataTableBaseCell
|
|
165
|
-
/* TODO: Make this configurable */
|
|
166
|
-
, {
|
|
167
|
-
/* TODO: Make this configurable */
|
|
168
|
-
textAlign: colDef.type === "number" ? "right" : "left", key: colDef.id || colDefIndex, as: colDef.isRowHeader ? "th" : "td", isSticky: isSticky, "data-nested": renderNestedIndent || undefined, style: style },
|
|
169
|
-
renderNestedToggle && react_1.default.createElement(NestedRowToggle, { details: details }),
|
|
170
|
-
colDef.cell(rowData)));
|
|
171
|
-
})),
|
|
172
|
-
react_1.default.createElement(DataTableExpandedRow, { rowId: details.id, rowData: rowData, fullWidthColSpan: fullWidthColSpan })));
|
|
173
|
-
});
|
|
174
|
-
}
|
|
175
|
-
function NestedRowToggle({ details }) {
|
|
176
|
-
const { isSubRowExpanded, onExpandedSubRowIdsChange } = (0, useTableItems_1.useTableItemsContext)();
|
|
177
|
-
const subRows = details.children;
|
|
178
|
-
const hasSubRows = subRows && subRows.length > 0;
|
|
179
|
-
const isRowExpanded = isSubRowExpanded(details.id);
|
|
180
|
-
return (react_1.default.createElement("div", { className: "aksel-data-table__nested-toggle" }, hasSubRows && (react_1.default.createElement(button_1.Button, { variant: "tertiary", "data-color": "neutral", size: "small", onClick: (e) => {
|
|
181
|
-
e.stopPropagation();
|
|
182
|
-
onExpandedSubRowIdsChange(details.id);
|
|
183
|
-
}, "aria-expanded": isRowExpanded, "aria-label": isRowExpanded ? "Skjul under-rader" : "Vis under-rader", icon: isRowExpanded ? (react_1.default.createElement(aksel_icons_1.ChevronDownIcon, { "aria-hidden": true })) : (react_1.default.createElement(aksel_icons_1.ChevronRightIcon, { "aria-hidden": true })) }))));
|
|
184
|
-
}
|
|
185
|
-
function DataTableExpandedRow({ rowId, rowData, fullWidthColSpan, }) {
|
|
186
|
-
const { tableId } = (0, DataTableRoot_context_1.useDataTableContext)();
|
|
187
|
-
const { enableDetailsPanel, isExpanded, getDetailsPanelContent, getDetailsPanelHeight, } = (0, useTableExpansion_1.useDataTableExpansion)();
|
|
188
|
-
if (!enableDetailsPanel) {
|
|
189
|
-
return null;
|
|
190
|
-
}
|
|
191
|
-
if (!isExpanded(rowId)) {
|
|
192
|
-
return null;
|
|
193
|
-
}
|
|
194
|
-
const content = getDetailsPanelContent === null || getDetailsPanelContent === void 0 ? void 0 : getDetailsPanelContent(rowData);
|
|
195
|
-
const expansionId = (0, useTableExpansion_1.getDataTableExpansionId)(tableId, rowId);
|
|
196
|
-
if (!content) {
|
|
197
|
-
return null;
|
|
198
|
-
}
|
|
199
|
-
return (react_1.default.createElement("tr", null,
|
|
200
|
-
react_1.default.createElement("td", { id: expansionId, colSpan: fullWidthColSpan },
|
|
201
|
-
react_1.default.createElement("div", { style: { height: getDetailsPanelHeight === null || getDetailsPanelHeight === void 0 ? void 0 : getDetailsPanelHeight(rowData) } }, content))));
|
|
202
|
-
}
|
|
203
|
-
const DataTableAuto = (0, react_1.forwardRef)(DataTableAutoInner);
|
|
204
|
-
exports.DataTableAuto = DataTableAuto;
|
|
205
|
-
exports.default = DataTableAuto;
|
|
206
|
-
//# sourceMappingURL=DataTableAuto.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableAuto.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataTableAuto.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import type { ItemDetail } from "./useTableItems.js";
|
|
3
|
-
type DataTableExpansionContextT = {
|
|
4
|
-
isExpanded: (id: string | number) => boolean;
|
|
5
|
-
isDetailsPanelExpandable: (id: string | number) => boolean;
|
|
6
|
-
toggleExpansion: (id: string | number) => void;
|
|
7
|
-
toggleAll: () => void;
|
|
8
|
-
isAllExpanded: boolean;
|
|
9
|
-
getDetailsPanelContent?: (row: unknown) => React.ReactNode;
|
|
10
|
-
getDetailsPanelHeight?: (row: unknown) => number | "auto";
|
|
11
|
-
showExpandAll: boolean;
|
|
12
|
-
enableDetailsPanel: boolean;
|
|
13
|
-
};
|
|
14
|
-
declare const useDataTableExpansion: <S extends boolean = true>(strict?: S | undefined) => S extends true ? DataTableExpansionContextT : DataTableExpansionContextT | undefined;
|
|
15
|
-
type TableExpansionOptions<T> = {
|
|
16
|
-
detailsPanelRowIds?: (string | number)[];
|
|
17
|
-
defaultDetailsPanelRowIds?: (string | number)[];
|
|
18
|
-
onDetailsPanelChange?: (ids: (string | number)[]) => void;
|
|
19
|
-
itemDetails: Map<T, ItemDetail<T>>;
|
|
20
|
-
getDetailsPanelContent?: (row: T) => React.ReactNode;
|
|
21
|
-
isDetailsPanelExpandable?: (rowData: T) => boolean;
|
|
22
|
-
getDetailsPanelHeight?: (row: T) => number | "auto";
|
|
23
|
-
showExpandAll?: boolean;
|
|
24
|
-
};
|
|
25
|
-
declare function getDataTableExpansionId(tableId: string, rowId: string | number): string;
|
|
26
|
-
declare function DataTableExpansionProvider<T>({ children, detailsPanelRowIds, defaultDetailsPanelRowIds, onDetailsPanelChange, itemDetails, getDetailsPanelContent, isDetailsPanelExpandable, getDetailsPanelHeight, showExpandAll, }: TableExpansionOptions<T> & {
|
|
27
|
-
children: React.ReactNode;
|
|
28
|
-
}): React.JSX.Element;
|
|
29
|
-
export { DataTableExpansionProvider, getDataTableExpansionId, useDataTableExpansion, };
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
import React, { useCallback } from "react";
|
|
2
|
-
import { createStrictContext } from "../../../utils/helpers/index.js";
|
|
3
|
-
import { useControllableState } from "../../../utils/hooks/index.js";
|
|
4
|
-
const { Provider: DataTableExpansionContextProvider, useContext: useDataTableExpansion, } = createStrictContext({
|
|
5
|
-
name: "DataTableExpansionContext",
|
|
6
|
-
errorMessage: "useDataTableExpansion must be used within a DataTableExpansionProvider.",
|
|
7
|
-
});
|
|
8
|
-
function getDataTableExpansionId(tableId, rowId) {
|
|
9
|
-
return `${tableId}-expansion-${rowId}`;
|
|
10
|
-
}
|
|
11
|
-
function DataTableExpansionProvider({ children, detailsPanelRowIds, defaultDetailsPanelRowIds = [], onDetailsPanelChange, itemDetails, getDetailsPanelContent, isDetailsPanelExpandable, getDetailsPanelHeight, showExpandAll = false, }) {
|
|
12
|
-
const [expandedIds, setExpandedIds] = useControllableState({
|
|
13
|
-
value: detailsPanelRowIds,
|
|
14
|
-
defaultValue: defaultDetailsPanelRowIds,
|
|
15
|
-
onChange: onDetailsPanelChange,
|
|
16
|
-
});
|
|
17
|
-
const expandableIds = React.useMemo(() => {
|
|
18
|
-
if (!getDetailsPanelContent) {
|
|
19
|
-
return new Set();
|
|
20
|
-
}
|
|
21
|
-
const ids = new Set();
|
|
22
|
-
for (const [rowData, { id, level }] of itemDetails.entries()) {
|
|
23
|
-
/* We only allow Master - Details pattern on top level rows */
|
|
24
|
-
if (level > 0) {
|
|
25
|
-
continue;
|
|
26
|
-
}
|
|
27
|
-
if (!isDetailsPanelExpandable || isDetailsPanelExpandable(rowData)) {
|
|
28
|
-
ids.add(id);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
return ids;
|
|
32
|
-
}, [getDetailsPanelContent, isDetailsPanelExpandable, itemDetails]);
|
|
33
|
-
const isDetailsPanelExpandableById = useCallback((id) => expandableIds.has(id), [expandableIds]);
|
|
34
|
-
const isExpanded = useCallback((id) => isDetailsPanelExpandableById(id) && expandedIds.includes(id), [expandedIds, isDetailsPanelExpandableById]);
|
|
35
|
-
const toggleExpansion = useCallback((id) => {
|
|
36
|
-
if (!isDetailsPanelExpandableById(id)) {
|
|
37
|
-
return;
|
|
38
|
-
}
|
|
39
|
-
setExpandedIds((currentExpandedIds) => currentExpandedIds.includes(id)
|
|
40
|
-
? currentExpandedIds.filter((expandedId) => expandedId !== id)
|
|
41
|
-
: [...currentExpandedIds, id]);
|
|
42
|
-
}, [isDetailsPanelExpandableById, setExpandedIds]);
|
|
43
|
-
const isAllExpanded = expandableIds.size > 0 &&
|
|
44
|
-
Array.from(expandableIds).every((key) => expandedIds.includes(key));
|
|
45
|
-
const toggleAll = useCallback(() => {
|
|
46
|
-
setExpandedIds(isAllExpanded ? [] : Array.from(expandableIds));
|
|
47
|
-
}, [expandableIds, isAllExpanded, setExpandedIds]);
|
|
48
|
-
return (React.createElement(DataTableExpansionContextProvider, { isExpanded: isExpanded, isDetailsPanelExpandable: isDetailsPanelExpandableById, toggleExpansion: toggleExpansion, toggleAll: toggleAll, isAllExpanded: isAllExpanded, getDetailsPanelContent: getDetailsPanelContent, getDetailsPanelHeight: getDetailsPanelHeight, showExpandAll: showExpandAll, enableDetailsPanel: !!getDetailsPanelContent }, children));
|
|
49
|
-
}
|
|
50
|
-
export { DataTableExpansionProvider, getDataTableExpansionId, useDataTableExpansion, };
|
|
51
|
-
//# sourceMappingURL=useTableExpansion.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"useTableExpansion.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableExpansion.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
/** biome-ignore-all lint/correctness/useHookAtTopLevel: False positive because of the way forwardRef() is added */
|
|
2
|
-
import React from "react";
|
|
3
|
-
import { type SelectionProps } from "../hooks/useTableSelection.js";
|
|
4
|
-
import { type TableSortOptions } from "../hooks/useTableSort.js";
|
|
5
|
-
import type { ColumnDefinitions } from "./DataTable.types.js";
|
|
6
|
-
interface DataTableProps<T> extends React.HTMLAttributes<HTMLTableElement>, SelectionProps, TableSortOptions {
|
|
7
|
-
children?: never;
|
|
8
|
-
/**
|
|
9
|
-
* Controls vertical cell padding.
|
|
10
|
-
* @default "normal"
|
|
11
|
-
*/
|
|
12
|
-
rowDensity?: "condensed" | "normal" | "spacious";
|
|
13
|
-
/**
|
|
14
|
-
* Zebra striped table
|
|
15
|
-
* @default false
|
|
16
|
-
*/
|
|
17
|
-
zebraStripes?: boolean;
|
|
18
|
-
/**
|
|
19
|
-
* Truncate content in cells and show ellipsis for overflowed text.
|
|
20
|
-
*
|
|
21
|
-
* **NB:** When using `layout="auto"`, you have to manually set a `maxWidth` on columns that should be truncated.
|
|
22
|
-
* @default true
|
|
23
|
-
*/
|
|
24
|
-
truncateContent?: boolean;
|
|
25
|
-
/**
|
|
26
|
-
* Enables keyboard navigation for table rows and cells.
|
|
27
|
-
* @default false
|
|
28
|
-
*/
|
|
29
|
-
withKeyboardNav?: boolean;
|
|
30
|
-
/**
|
|
31
|
-
* Custom callback to determine if navigation should be blocked.
|
|
32
|
-
* Called before default blocking logic.
|
|
33
|
-
* Requires `withKeyboardNav` to be `true`.
|
|
34
|
-
*/
|
|
35
|
-
shouldBlockNavigation?: (event: KeyboardEvent) => boolean;
|
|
36
|
-
/**
|
|
37
|
-
* Controls table layout.
|
|
38
|
-
*
|
|
39
|
-
* ### fixed
|
|
40
|
-
* Gives you full control of column widths. This is required for resizable columns.
|
|
41
|
-
*
|
|
42
|
-
* ### auto
|
|
43
|
-
* Makes the columns resize automatically based on the content.
|
|
44
|
-
* The table will take up at least 100% of available width.
|
|
45
|
-
*
|
|
46
|
-
* **NB:** When using this with `truncateContent`, you have to manually
|
|
47
|
-
* set a `contentMaxWidth` on cells that should be truncated.
|
|
48
|
-
* @default "fixed"
|
|
49
|
-
*/
|
|
50
|
-
layout?: "fixed" | "auto";
|
|
51
|
-
/**
|
|
52
|
-
* Defines the columns of the table and how to render them.
|
|
53
|
-
*
|
|
54
|
-
*
|
|
55
|
-
* Each column definition should have a unique `id` (or use the column index as fallback) and a `cell`-renderer function that takes the row data as argument and returns a React node.
|
|
56
|
-
*/
|
|
57
|
-
columnDefinitions: ColumnDefinitions<T>;
|
|
58
|
-
/**
|
|
59
|
-
* The data to display in the table.
|
|
60
|
-
*
|
|
61
|
-
*
|
|
62
|
-
* Each object in the array represents a row, and the properties of the object are used to render the cells based on the `columnDefinitions`.
|
|
63
|
-
*/
|
|
64
|
-
data: T[];
|
|
65
|
-
/**
|
|
66
|
-
* Function to get unique row id from row data.
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
* If not provided, the row index will be used as id. This can cause issues if your data changes dynamically, so it's recommended to provide a stable id if possible.
|
|
70
|
-
*/
|
|
71
|
-
getRowId?: (rowData: T, index: number) => string | number;
|
|
72
|
-
/**
|
|
73
|
-
* Sticky columns that remain visible when horizontally scrolling the table.
|
|
74
|
-
*
|
|
75
|
-
* You can specify 1 sticky column on the left and 1 on the right.
|
|
76
|
-
*/
|
|
77
|
-
stickyColumns?: {
|
|
78
|
-
first?: "1";
|
|
79
|
-
last?: "1";
|
|
80
|
-
};
|
|
81
|
-
/**
|
|
82
|
-
* @default false
|
|
83
|
-
*/
|
|
84
|
-
stickyHeader?: boolean;
|
|
85
|
-
/**
|
|
86
|
-
* Callback invoked when a data row is clicked.
|
|
87
|
-
* Not called when clicking header, loading, or empty-state rows.
|
|
88
|
-
*/
|
|
89
|
-
onRowClick?: (rowId: string | number, event: React.MouseEvent<HTMLTableRowElement>) => void;
|
|
90
|
-
/**
|
|
91
|
-
* Content to render when `data` is empty.
|
|
92
|
-
* Rendered inside a `DataTable.EmptyState` row spanning all columns.
|
|
93
|
-
*/
|
|
94
|
-
emptyState?: React.ReactNode;
|
|
95
|
-
/**
|
|
96
|
-
* Shows the table in a loading state.
|
|
97
|
-
*
|
|
98
|
-
* - When `loadingState` is provided, it is rendered inside a `DataTable.LoadingState` row.
|
|
99
|
-
* - When `loadingState` is **not** provided, skeleton placeholder rows are rendered instead.
|
|
100
|
-
* @default false
|
|
101
|
-
*/
|
|
102
|
-
isLoading?: boolean;
|
|
103
|
-
/**
|
|
104
|
-
* Custom content to render when `isLoading` is `true`.
|
|
105
|
-
* Rendered inside a `DataTable.LoadingState` row spanning all columns.
|
|
106
|
-
* When omitted, skeleton rows are rendered based on `loadingRows`.
|
|
107
|
-
*/
|
|
108
|
-
loadingState?: React.ReactNode;
|
|
109
|
-
/**
|
|
110
|
-
* Number of skeleton rows to render when `isLoading` is `true` and no `loadingState` is provided.
|
|
111
|
-
*
|
|
112
|
-
*
|
|
113
|
-
* If not provided, the rendered content will get a temporarily overlay while loading
|
|
114
|
-
*/
|
|
115
|
-
loadingRows?: number;
|
|
116
|
-
/**
|
|
117
|
-
* Visually hidden label announced to screen readers when skeleton rows are shown.
|
|
118
|
-
* Only used when `isLoading` is `true` and no `loadingState` is provided.
|
|
119
|
-
* @default "Laster innhold"
|
|
120
|
-
*/
|
|
121
|
-
loadingLabel?: string;
|
|
122
|
-
/**
|
|
123
|
-
* Renders a details panel below the row when expanded.
|
|
124
|
-
* When provided, an expand toggle column is added automatically.
|
|
125
|
-
*/
|
|
126
|
-
getDetailsPanelContent?: (rowData: T) => React.ReactNode;
|
|
127
|
-
/**
|
|
128
|
-
* Determines whether a row can be expanded to show details panel content.
|
|
129
|
-
* @default () => true
|
|
130
|
-
*/
|
|
131
|
-
isDetailsPanelExpandable?: (rowData: T) => boolean;
|
|
132
|
-
/**
|
|
133
|
-
* Controlled list of expanded row IDs.
|
|
134
|
-
* Use with `onDetailsPanelChange` for controlled usage, or `defaultDetailsPanelRowIds` for uncontrolled.
|
|
135
|
-
*/
|
|
136
|
-
detailsPanelRowIds?: (string | number)[];
|
|
137
|
-
/**
|
|
138
|
-
* Initial list of expanded row IDs for uncontrolled usage.
|
|
139
|
-
* @default []
|
|
140
|
-
*/
|
|
141
|
-
defaultDetailsPanelRowIds?: (string | number)[];
|
|
142
|
-
/**
|
|
143
|
-
* Called when the list of expanded row IDs changes.
|
|
144
|
-
*
|
|
145
|
-
*
|
|
146
|
-
* TODO:
|
|
147
|
-
* - Docs: This pattern is called "Master / Detail" in general terms
|
|
148
|
-
*/
|
|
149
|
-
onDetailsPanelChange?: (ids: (string | number)[]) => void;
|
|
150
|
-
/**
|
|
151
|
-
* Returns the height (in px) or `"auto"` for a row's details panel.
|
|
152
|
-
* When a number is returned, the panel scrolls within that fixed height.
|
|
153
|
-
* @default "auto"
|
|
154
|
-
*/
|
|
155
|
-
getDetailsPanelHeight?: (rowData: T) => number | "auto";
|
|
156
|
-
/**
|
|
157
|
-
* Shows an expand-all toggle button in the expand column header.
|
|
158
|
-
* @default false
|
|
159
|
-
*/
|
|
160
|
-
showExpandAll?: boolean;
|
|
161
|
-
/**
|
|
162
|
-
* Function to get sub-rows for a given row, used for nested rows.
|
|
163
|
-
* When provided, an expand toggle column is added automatically.
|
|
164
|
-
*/
|
|
165
|
-
getSubRows?: (rowData: T) => T[];
|
|
166
|
-
expandedSubRowIds?: (string | number)[];
|
|
167
|
-
defaultExpandedSubRowIds?: (string | number)[];
|
|
168
|
-
isSubRowExpandable?: (rowData: T) => boolean;
|
|
169
|
-
onExpandedSubRowIdsChange?: (ids: (string | number)[]) => void;
|
|
170
|
-
}
|
|
171
|
-
declare const DataTableAuto: <T>(props: DataTableProps<T> & React.RefAttributes<HTMLTableElement>) => React.ReactElement | null;
|
|
172
|
-
export { DataTableAuto };
|
|
173
|
-
export type { DataTableProps };
|
|
174
|
-
export default DataTableAuto;
|