@navikt/ds-react 8.10.0 → 8.10.2
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/table/column-header/DataTableColumnHeader.d.ts +1 -2
- package/cjs/data/table/column-header/DataTableColumnHeader.js +13 -11
- package/cjs/data/table/column-header/DataTableColumnHeader.js.map +1 -1
- package/cjs/data/table/column-header/useTableColumnResize.d.ts +5 -3
- package/cjs/data/table/column-header/useTableColumnResize.js +128 -53
- package/cjs/data/table/column-header/useTableColumnResize.js.map +1 -1
- package/cjs/data/table/helpers/collectTableRowEntries.d.ts +16 -0
- package/cjs/data/table/helpers/collectTableRowEntries.js +27 -0
- package/cjs/data/table/helpers/collectTableRowEntries.js.map +1 -0
- package/cjs/data/table/helpers/table-keyboard.js +3 -3
- package/cjs/data/table/helpers/table-keyboard.js.map +1 -1
- package/cjs/data/table/hooks/useTableExpansion.d.ts +9 -6
- package/cjs/data/table/hooks/useTableExpansion.js +36 -15
- package/cjs/data/table/hooks/useTableExpansion.js.map +1 -1
- package/cjs/data/table/hooks/useTableItems.d.ts +29 -0
- package/cjs/data/table/hooks/useTableItems.js +63 -0
- package/cjs/data/table/hooks/useTableItems.js.map +1 -0
- package/cjs/data/table/hooks/useTableKeyboardNav.js +3 -3
- package/cjs/data/table/hooks/useTableKeyboardNav.js.map +1 -1
- package/cjs/data/table/root/DataTableAuto.d.ts +18 -0
- package/cjs/data/table/root/DataTableAuto.js +71 -29
- package/cjs/data/table/root/DataTableAuto.js.map +1 -1
- package/cjs/data/table/root/DataTableRoot.context.d.ts +5 -3
- package/cjs/data/table/root/DataTableRoot.context.js.map +1 -1
- package/cjs/data/table/root/DataTableRoot.js +7 -4
- package/cjs/data/table/root/DataTableRoot.js.map +1 -1
- package/cjs/data/table/tr/DataTableTr.js +30 -32
- package/cjs/data/table/tr/DataTableTr.js.map +1 -1
- package/cjs/modal/Modal.js +3 -3
- package/cjs/modal/Modal.js.map +1 -1
- package/cjs/modal/types.d.ts +1 -0
- package/esm/data/table/column-header/DataTableColumnHeader.d.ts +1 -2
- package/esm/data/table/column-header/DataTableColumnHeader.js +14 -12
- package/esm/data/table/column-header/DataTableColumnHeader.js.map +1 -1
- package/esm/data/table/column-header/useTableColumnResize.d.ts +5 -3
- package/esm/data/table/column-header/useTableColumnResize.js +129 -54
- package/esm/data/table/column-header/useTableColumnResize.js.map +1 -1
- package/esm/data/table/helpers/collectTableRowEntries.d.ts +16 -0
- package/esm/data/table/helpers/collectTableRowEntries.js +25 -0
- package/esm/data/table/helpers/collectTableRowEntries.js.map +1 -0
- package/esm/data/table/helpers/table-keyboard.js +3 -3
- package/esm/data/table/helpers/table-keyboard.js.map +1 -1
- package/esm/data/table/hooks/useTableExpansion.d.ts +9 -6
- package/esm/data/table/hooks/useTableExpansion.js +36 -16
- package/esm/data/table/hooks/useTableExpansion.js.map +1 -1
- package/esm/data/table/hooks/useTableItems.d.ts +29 -0
- package/esm/data/table/hooks/useTableItems.js +58 -0
- package/esm/data/table/hooks/useTableItems.js.map +1 -0
- package/esm/data/table/hooks/useTableKeyboardNav.js +3 -3
- package/esm/data/table/hooks/useTableKeyboardNav.js.map +1 -1
- package/esm/data/table/root/DataTableAuto.d.ts +18 -0
- package/esm/data/table/root/DataTableAuto.js +72 -30
- package/esm/data/table/root/DataTableAuto.js.map +1 -1
- package/esm/data/table/root/DataTableRoot.context.d.ts +5 -3
- package/esm/data/table/root/DataTableRoot.context.js.map +1 -1
- package/esm/data/table/root/DataTableRoot.js +7 -4
- package/esm/data/table/root/DataTableRoot.js.map +1 -1
- package/esm/data/table/tr/DataTableTr.js +32 -34
- package/esm/data/table/tr/DataTableTr.js.map +1 -1
- package/esm/modal/Modal.js +3 -3
- package/esm/modal/Modal.js.map +1 -1
- package/esm/modal/types.d.ts +1 -0
- package/package.json +7 -7
- package/src/data/table/column-header/DataTableColumnHeader.tsx +22 -14
- package/src/data/table/column-header/useTableColumnResize.ts +152 -79
- package/src/data/table/helpers/collectTableRowEntries.ts +58 -0
- package/src/data/table/helpers/table-keyboard.ts +4 -4
- package/src/data/table/hooks/__tests__/useTableExpansion.test.tsx +115 -0
- package/src/data/table/hooks/__tests__/useTableItems.test.ts +131 -0
- package/src/data/table/hooks/useTableExpansion.tsx +63 -22
- package/src/data/table/hooks/useTableItems.ts +123 -0
- package/src/data/table/hooks/useTableKeyboardNav.ts +3 -3
- package/src/data/table/root/DataTableAuto.test.tsx +118 -0
- package/src/data/table/root/DataTableAuto.tsx +159 -49
- package/src/data/table/root/DataTableRoot.context.ts +4 -2
- package/src/data/table/root/DataTableRoot.tsx +20 -13
- package/src/data/table/tr/DataTableTr.tsx +48 -47
- package/src/modal/Modal.tsx +12 -6
- package/src/modal/types.ts +1 -0
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { type ItemDetail } from "../helpers/collectTableRowEntries";
|
|
2
|
+
type UseTableItemsArgs<T> = {
|
|
3
|
+
items: T[];
|
|
4
|
+
getRowId?: (rowData: T, index: number) => string | number;
|
|
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;
|
|
16
|
+
};
|
|
17
|
+
type useTableItemsReturn<T> = {
|
|
18
|
+
items: T[];
|
|
19
|
+
itemDetails: Map<T, ItemDetail<T>>;
|
|
20
|
+
onExpandedSubRowIdsChange: (id: string | number) => void;
|
|
21
|
+
isSubRowExpanded: (id: string | number) => boolean;
|
|
22
|
+
};
|
|
23
|
+
declare function useTableItems<T>(args: UseTableItemsArgs<T>): useTableItemsReturn<T>;
|
|
24
|
+
declare const TableItemsProvider: import("react").FC<useTableItemsReturn<any> & {
|
|
25
|
+
children: React.ReactNode;
|
|
26
|
+
ref?: never;
|
|
27
|
+
}>, useTableItemsContext: <S extends boolean = true>(strict?: S | undefined) => S extends true ? useTableItemsReturn<any> : useTableItemsReturn<any> | undefined;
|
|
28
|
+
export { useTableItems, TableItemsProvider, useTableItemsContext };
|
|
29
|
+
export type { ItemDetail };
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.useTableItemsContext = exports.TableItemsProvider = void 0;
|
|
4
|
+
exports.useTableItems = useTableItems;
|
|
5
|
+
const react_1 = require("react");
|
|
6
|
+
const helpers_1 = require("../../../utils/helpers");
|
|
7
|
+
const hooks_1 = require("../../../utils/hooks");
|
|
8
|
+
const collectTableRowEntries_1 = require("../helpers/collectTableRowEntries");
|
|
9
|
+
function useTableItems(args) {
|
|
10
|
+
const { items, expandedSubRowIds, defaultExpandedSubRowIds, getSubRows, getRowId, onExpandedSubRowIdsChange, isSubRowExpandable, } = args;
|
|
11
|
+
const [nestedSubRowsExpandedIds, setNestedSubRowsExpandedIds] = (0, hooks_1.useControllableState)({
|
|
12
|
+
value: expandedSubRowIds,
|
|
13
|
+
defaultValue: defaultExpandedSubRowIds !== null && defaultExpandedSubRowIds !== void 0 ? defaultExpandedSubRowIds : [],
|
|
14
|
+
onChange: onExpandedSubRowIdsChange,
|
|
15
|
+
});
|
|
16
|
+
const expandedIdsSet = (0, react_1.useMemo)(() => new Set(nestedSubRowsExpandedIds), [nestedSubRowsExpandedIds]);
|
|
17
|
+
const { itemDetails, visibleItems } = (0, react_1.useMemo)(() => {
|
|
18
|
+
const rowEntriesMap = (0, collectTableRowEntries_1.collectTableRowEntries)({
|
|
19
|
+
items,
|
|
20
|
+
getRowId,
|
|
21
|
+
getSubRows,
|
|
22
|
+
isSubRowExpandable,
|
|
23
|
+
});
|
|
24
|
+
const localVisibleItems = [];
|
|
25
|
+
const addVisibleRows = (rowData) => {
|
|
26
|
+
localVisibleItems.push(rowData);
|
|
27
|
+
const details = rowEntriesMap.get(rowData);
|
|
28
|
+
if (!details || !expandedIdsSet.has(details.id)) {
|
|
29
|
+
return;
|
|
30
|
+
}
|
|
31
|
+
for (const childRow of details.children) {
|
|
32
|
+
addVisibleRows(childRow);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
for (const rowData of items) {
|
|
36
|
+
addVisibleRows(rowData);
|
|
37
|
+
}
|
|
38
|
+
return {
|
|
39
|
+
visibleItems: localVisibleItems,
|
|
40
|
+
itemDetails: rowEntriesMap,
|
|
41
|
+
};
|
|
42
|
+
}, [getSubRows, items, getRowId, isSubRowExpandable, expandedIdsSet]);
|
|
43
|
+
const handleExpandedSubRowIdChange = (0, react_1.useCallback)((id) => {
|
|
44
|
+
setNestedSubRowsExpandedIds((prev) => prev.includes(id)
|
|
45
|
+
? prev.filter((expandedId) => expandedId !== id)
|
|
46
|
+
: [...prev, id]);
|
|
47
|
+
}, [setNestedSubRowsExpandedIds]);
|
|
48
|
+
return {
|
|
49
|
+
items: visibleItems,
|
|
50
|
+
itemDetails,
|
|
51
|
+
onExpandedSubRowIdsChange: handleExpandedSubRowIdChange,
|
|
52
|
+
isSubRowExpanded: (id) => expandedIdsSet.has(id),
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const { Provider: TableItemsProvider, useContext: useTableItemsContext } =
|
|
56
|
+
/* TODO: Can we type this better? */
|
|
57
|
+
(0, helpers_1.createStrictContext)({
|
|
58
|
+
name: "TableItemsContext",
|
|
59
|
+
errorMessage: "useTableItemsContext must be used within a TableItemsProvider",
|
|
60
|
+
});
|
|
61
|
+
exports.TableItemsProvider = TableItemsProvider;
|
|
62
|
+
exports.useTableItemsContext = useTableItemsContext;
|
|
63
|
+
//# sourceMappingURL=useTableItems.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTableItems.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableItems.ts"],"names":[],"mappings":";;;AAyHS,sCAAa;AAzHtB,iCAA6C;AAC7C,oDAA6D;AAC7D,gDAA4D;AAC5D,8EAG2C;AAgC3C,SAAS,aAAa,CAAI,IAA0B;IAClD,MAAM,EACJ,KAAK,EACL,iBAAiB,EACjB,wBAAwB,EACxB,UAAU,EACV,QAAQ,EACR,yBAAyB,EACzB,kBAAkB,GACnB,GAAG,IAAI,CAAC;IAET,MAAM,CAAC,wBAAwB,EAAE,2BAA2B,CAAC,GAC3D,IAAA,4BAAoB,EAAC;QACnB,KAAK,EAAE,iBAAiB;QACxB,YAAY,EAAE,wBAAwB,aAAxB,wBAAwB,cAAxB,wBAAwB,GAAI,EAAE;QAC5C,QAAQ,EAAE,yBAAyB;KACpC,CAAC,CAAC;IAEL,MAAM,cAAc,GAAG,IAAA,eAAO,EAC5B,GAAG,EAAE,CAAC,IAAI,GAAG,CAAC,wBAAwB,CAAC,EACvC,CAAC,wBAAwB,CAAC,CAC3B,CAAC;IAEF,MAAM,EAAE,WAAW,EAAE,YAAY,EAAE,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QACjD,MAAM,aAAa,GAAG,IAAA,+CAAsB,EAAC;YAC3C,KAAK;YACL,QAAQ;YACR,UAAU;YACV,kBAAkB;SACnB,CAAC,CAAC;QAEH,MAAM,iBAAiB,GAAQ,EAAE,CAAC;QAClC,MAAM,cAAc,GAAG,CAAC,OAAU,EAAE,EAAE;YACpC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAEhC,MAAM,OAAO,GAAG,aAAa,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAE3C,IAAI,CAAC,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,EAAE,CAAC,EAAE,CAAC;gBAChD,OAAO;YACT,CAAC;YAED,KAAK,MAAM,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACxC,cAAc,CAAC,QAAQ,CAAC,CAAC;YAC3B,CAAC;QACH,CAAC,CAAC;QAEF,KAAK,MAAM,OAAO,IAAI,KAAK,EAAE,CAAC;YAC5B,cAAc,CAAC,OAAO,CAAC,CAAC;QAC1B,CAAC;QAED,OAAO;YACL,YAAY,EAAE,iBAAiB;YAC/B,WAAW,EAAE,aAAa;SAC3B,CAAC;IACJ,CAAC,EAAE,CAAC,UAAU,EAAE,KAAK,EAAE,QAAQ,EAAE,kBAAkB,EAAE,cAAc,CAAC,CAAC,CAAC;IAEtE,MAAM,4BAA4B,GAAG,IAAA,mBAAW,EAC9C,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,yBAAyB,EAAE,4BAA4B;QACvD,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,IAAA,6BAAmB,EAA2B;IAC5C,IAAI,EAAE,mBAAmB;IACzB,YAAY,EACV,+DAA+D;CAClE,CAAC,CAAC;AAEmB,gDAAkB;AAAE,oDAAoB"}
|
|
@@ -70,13 +70,13 @@ function useTableKeyboardNav({ enabled, shouldBlockNavigation: customBlockFn, })
|
|
|
70
70
|
if (customBlockFn === null || customBlockFn === void 0 ? void 0 : customBlockFn(event)) {
|
|
71
71
|
return;
|
|
72
72
|
}
|
|
73
|
-
if ((0, table_keyboard_1.shouldBlockNavigation)(event)) {
|
|
74
|
-
return;
|
|
75
|
-
}
|
|
76
73
|
const action = (0, table_keyboard_1.getNavigationAction)(event);
|
|
77
74
|
if (!action) {
|
|
78
75
|
return;
|
|
79
76
|
}
|
|
77
|
+
if ((0, table_keyboard_1.shouldBlockNavigation)(event)) {
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
80
|
event.preventDefault();
|
|
81
81
|
const newCell = executeNavigationAction(action);
|
|
82
82
|
newCell && setActiveCell(newCell);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useTableKeyboardNav.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableKeyboardNav.ts"],"names":[],"mappings":";;AAoLS,kDAAmB;AApL5B,iCAA4C;AAC5C,gDAAwD;AACxD,sDAAgE;AAChE,wDAAoE;AACpE,8DAMmC;AACnC,8DAImC;AACnC,iDAA8C;AAW9C,SAAS,mBAAmB,CAAC,EAC3B,OAAO,EACP,qBAAqB,EAAE,aAAa,GACT;IAC3B,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,IAAA,gBAAQ,EAA0B,IAAI,CAAC,CAAC;IACxE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,IAAA,2BAAY,EAC9D,QAAQ,EACR,OAAO,CACR,CAAC;IAEF;;OAEG;IACH,MAAM,uBAAuB,GAAG,IAAA,wBAAgB,EAC9C,CAAC,MAAwB,EAAE,EAAE;QAC3B,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,IAAI,CAAC;QACd,CAAC;QAED,IAAI,WAAW,GAAG,UAAU,CAAC;QAC7B,WAAW,aAAX,WAAW,cAAX,WAAW,IAAX,WAAW,GAAK,IAAA,oCAAuB,EAAC,QAAQ,CAAC,EAAC;QAElD,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;QAE9C,IAAI,QAAQ,GAAmB,IAAI,CAAC;QAEpC,QAAQ,MAAM,CAAC,IAAI,EAAE,CAAC;YACpB,KAAK,OAAO,CAAC,CAAC,CAAC;gBACb,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,QAAQ,GAAG,IAAA,sCAAqB,EAC9B,IAAI,EACJ,UAAU,EACV,MAAM,CAAC,KAAK,EACZ,WAAW,CACZ,CAAC;gBACF,MAAM;YACR,CAAC;YAED,KAAK,MAAM,CAAC,CAAC,CAAC;gBACZ,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,QAAQ,GAAG,IAAA,mCAAkB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;gBAClD,MAAM;YACR,CAAC;YAED,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,IAAI,CAAC,UAAU,EAAE,CAAC;oBAChB,OAAO,IAAI,CAAC;gBACd,CAAC;gBACD,QAAQ,GAAG,IAAA,kCAAiB,EAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;gBACjD,MAAM;YACR,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,QAAQ,GAAG,IAAA,8BAAa,EAAC,IAAI,CAAC,CAAC;gBAC/B,MAAM;YACR,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,QAAQ,GAAG,IAAA,6BAAY,EAAC,IAAI,CAAC,CAAC;gBAC9B,MAAM;YACR,CAAC;QACH,CAAC;QAED,IAAI,CAAC,QAAQ,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;YAC1C,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAA,wCAA0B,EAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAC3D,CAAC,CACF,CAAC;IAEF;;;OAGG;IACH,MAAM,kBAAkB,GAAG,IAAA,wBAAgB,EAAC,CAAC,KAAoB,EAAQ,EAAE;QACzE,IAAI,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAG,KAAK,CAAC,EAAE,CAAC;YAC3B,OAAO;QACT,CAAC;QAED,
|
|
1
|
+
{"version":3,"file":"useTableKeyboardNav.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableKeyboardNav.ts"],"names":[],"mappings":"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"}
|
|
@@ -124,6 +124,11 @@ interface DataTableProps<T> extends React.HTMLAttributes<HTMLTableElement>, Sele
|
|
|
124
124
|
* When provided, an expand toggle column is added automatically.
|
|
125
125
|
*/
|
|
126
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;
|
|
127
132
|
/**
|
|
128
133
|
* Controlled list of expanded row IDs.
|
|
129
134
|
* Use with `onDetailsPanelChange` for controlled usage, or `defaultDetailsPanelRowIds` for uncontrolled.
|
|
@@ -136,6 +141,10 @@ interface DataTableProps<T> extends React.HTMLAttributes<HTMLTableElement>, Sele
|
|
|
136
141
|
defaultDetailsPanelRowIds?: (string | number)[];
|
|
137
142
|
/**
|
|
138
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
|
|
139
148
|
*/
|
|
140
149
|
onDetailsPanelChange?: (ids: (string | number)[]) => void;
|
|
141
150
|
/**
|
|
@@ -149,6 +158,15 @@ interface DataTableProps<T> extends React.HTMLAttributes<HTMLTableElement>, Sele
|
|
|
149
158
|
* @default false
|
|
150
159
|
*/
|
|
151
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;
|
|
152
170
|
}
|
|
153
171
|
declare const DataTableAuto: <T>(props: DataTableProps<T> & React.RefAttributes<HTMLTableElement>) => React.ReactElement | null;
|
|
154
172
|
export { DataTableAuto };
|
|
@@ -47,6 +47,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
47
47
|
exports.DataTableAuto = void 0;
|
|
48
48
|
/** biome-ignore-all lint/correctness/useHookAtTopLevel: False positive because of the way forwardRef() is added */
|
|
49
49
|
const react_1 = __importStar(require("react"));
|
|
50
|
+
const aksel_icons_1 = require("@navikt/aksel-icons");
|
|
51
|
+
const button_1 = require("../../../button");
|
|
50
52
|
const skeleton_1 = require("../../../skeleton");
|
|
51
53
|
const utils_external_1 = require("../../../utils-external");
|
|
52
54
|
const helpers_1 = require("../../../utils/helpers");
|
|
@@ -56,6 +58,7 @@ const DataTableColumnHeader_1 = require("../column-header/DataTableColumnHeader"
|
|
|
56
58
|
const DataTableEmptyState_1 = require("../empty-state/DataTableEmptyState");
|
|
57
59
|
const useColumnOptions_1 = require("../hooks/useColumnOptions");
|
|
58
60
|
const useTableExpansion_1 = require("../hooks/useTableExpansion");
|
|
61
|
+
const useTableItems_1 = require("../hooks/useTableItems");
|
|
59
62
|
const useTableKeyboardNav_1 = require("../hooks/useTableKeyboardNav");
|
|
60
63
|
const useTableSelection_1 = require("../hooks/useTableSelection");
|
|
61
64
|
const useTableSort_1 = require("../hooks/useTableSort");
|
|
@@ -65,7 +68,7 @@ const DataTableThead_1 = require("../thead/DataTableThead");
|
|
|
65
68
|
const DataTableTr_1 = require("../tr/DataTableTr");
|
|
66
69
|
const DataTableRoot_context_1 = require("./DataTableRoot.context");
|
|
67
70
|
function DataTableAutoInner(_a, forwardedRef) {
|
|
68
|
-
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, getDetailsPanelHeight, showExpandAll = false, detailsPanelRowIds, defaultDetailsPanelRowIds, onDetailsPanelChange } = _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", "getDetailsPanelHeight", "showExpandAll", "detailsPanelRowIds", "defaultDetailsPanelRowIds", "onDetailsPanelChange"]);
|
|
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"]);
|
|
69
72
|
const { tabIndex, setTableRef } = (0, useTableKeyboardNav_1.useTableKeyboardNav)({
|
|
70
73
|
enabled: withKeyboardNav,
|
|
71
74
|
shouldBlockNavigation,
|
|
@@ -76,10 +79,22 @@ function DataTableAutoInner(_a, forwardedRef) {
|
|
|
76
79
|
sort: sortProp,
|
|
77
80
|
});
|
|
78
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
|
+
});
|
|
79
91
|
const allRowKeys = (0, react_1.useMemo)(() => {
|
|
80
|
-
const
|
|
81
|
-
|
|
82
|
-
|
|
92
|
+
const rowKeys = [];
|
|
93
|
+
for (const details of tableItems.itemDetails.values()) {
|
|
94
|
+
rowKeys.push(details.id);
|
|
95
|
+
}
|
|
96
|
+
return rowKeys;
|
|
97
|
+
}, [tableItems.itemDetails]);
|
|
83
98
|
const tableSelectionState = (0, useTableSelection_1.useTableSelection)({
|
|
84
99
|
selectionMode: selectionModeProp,
|
|
85
100
|
selectedKeys,
|
|
@@ -92,9 +107,13 @@ function DataTableAutoInner(_a, forwardedRef) {
|
|
|
92
107
|
stickyColumns,
|
|
93
108
|
selectionMode: tableSelectionState.selection.selectionMode,
|
|
94
109
|
});
|
|
110
|
+
const fullWidthColSpan = columns.length +
|
|
111
|
+
(layout === "fixed" ? 1 : 0) +
|
|
112
|
+
(tableSelectionState.selection.selectionMode !== "none" ? 1 : 0) +
|
|
113
|
+
(getDetailsPanelContent ? 1 : 0);
|
|
95
114
|
const tableId = (0, utils_external_1.useId)(id);
|
|
96
|
-
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 },
|
|
97
|
-
react_1.default.createElement(useTableExpansion_1.DataTableExpansionProvider, { detailsPanelRowIds: detailsPanelRowIds, defaultDetailsPanelRowIds: defaultDetailsPanelRowIds, onDetailsPanelChange: onDetailsPanelChange,
|
|
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 },
|
|
98
117
|
react_1.default.createElement("div", { className: "aksel-data-table__border-wrapper" },
|
|
99
118
|
react_1.default.createElement("div", { className: "aksel-data-table__scroll-wrapper" },
|
|
100
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 }),
|
|
@@ -105,57 +124,80 @@ function DataTableAutoInner(_a, forwardedRef) {
|
|
|
105
124
|
const sortDirection = (_a = sortEntry === null || sortEntry === void 0 ? void 0 : sortEntry.direction) !== null && _a !== void 0 ? _a : "none";
|
|
106
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));
|
|
107
126
|
}))),
|
|
108
|
-
react_1.default.createElement(
|
|
109
|
-
react_1.default.createElement(
|
|
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 })))))))));
|
|
110
130
|
}
|
|
111
|
-
function DataTableAutoTBodyContent({
|
|
112
|
-
const {
|
|
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)();
|
|
113
134
|
if (isLoading && loadingState != null) {
|
|
114
|
-
return (react_1.default.createElement(DataTableLoadingState_1.DataTableLoadingState, { colSpan:
|
|
135
|
+
return (react_1.default.createElement(DataTableLoadingState_1.DataTableLoadingState, { colSpan: fullWidthColSpan }, loadingState));
|
|
115
136
|
}
|
|
116
137
|
if (isLoading && loadingRows) {
|
|
117
138
|
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
118
139
|
react_1.default.createElement("tr", null,
|
|
119
|
-
react_1.default.createElement("td", { colSpan:
|
|
140
|
+
react_1.default.createElement("td", { colSpan: fullWidthColSpan, className: "aksel-sr-only" }, loadingLabel)),
|
|
120
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 },
|
|
121
142
|
react_1.default.createElement(skeleton_1.Skeleton, { variant: "text" })))))))));
|
|
122
143
|
}
|
|
123
|
-
if (
|
|
124
|
-
return (react_1.default.createElement(DataTableEmptyState_1.DataTableEmptyState, { colSpan:
|
|
144
|
+
if (items.length === 0 && emptyState !== undefined) {
|
|
145
|
+
return (react_1.default.createElement(DataTableEmptyState_1.DataTableEmptyState, { colSpan: fullWidthColSpan }, emptyState));
|
|
125
146
|
}
|
|
126
|
-
const
|
|
127
|
-
return
|
|
128
|
-
const
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
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
|
+
};
|
|
133
164
|
return (react_1.default.createElement(DataTableBaseCell_1.DataTableBaseCell
|
|
134
165
|
/* TODO: Make this configurable */
|
|
135
166
|
, {
|
|
136
167
|
/* TODO: Make this configurable */
|
|
137
|
-
textAlign: colDef.type === "number" ? "right" : "left", key: colDef.id || colDefIndex, as: colDef.isRowHeader ? "th" : "td", isSticky: isSticky },
|
|
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)));
|
|
138
171
|
})),
|
|
139
|
-
react_1.default.createElement(DataTableExpandedRow, { rowId:
|
|
172
|
+
react_1.default.createElement(DataTableExpandedRow, { rowId: details.id, rowData: rowData, fullWidthColSpan: fullWidthColSpan })));
|
|
140
173
|
});
|
|
141
174
|
}
|
|
142
|
-
function
|
|
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, }) {
|
|
143
186
|
const { tableId } = (0, DataTableRoot_context_1.useDataTableContext)();
|
|
144
|
-
const
|
|
145
|
-
|
|
146
|
-
if (!expansionContext) {
|
|
187
|
+
const { enableDetailsPanel, isExpanded, getDetailsPanelContent, getDetailsPanelHeight, } = (0, useTableExpansion_1.useDataTableExpansion)();
|
|
188
|
+
if (!enableDetailsPanel) {
|
|
147
189
|
return null;
|
|
148
190
|
}
|
|
149
|
-
const { isExpanded, getDetailsPanelContent, getDetailsPanelHeight } = expansionContext;
|
|
150
191
|
if (!isExpanded(rowId)) {
|
|
151
192
|
return null;
|
|
152
193
|
}
|
|
153
194
|
const content = getDetailsPanelContent === null || getDetailsPanelContent === void 0 ? void 0 : getDetailsPanelContent(rowData);
|
|
195
|
+
const expansionId = (0, useTableExpansion_1.getDataTableExpansionId)(tableId, rowId);
|
|
154
196
|
if (!content) {
|
|
155
197
|
return null;
|
|
156
198
|
}
|
|
157
199
|
return (react_1.default.createElement("tr", null,
|
|
158
|
-
react_1.default.createElement("td", { id:
|
|
200
|
+
react_1.default.createElement("td", { id: expansionId, colSpan: fullWidthColSpan },
|
|
159
201
|
react_1.default.createElement("div", { style: { height: getDetailsPanelHeight === null || getDetailsPanelHeight === void 0 ? void 0 : getDetailsPanelHeight(rowData) } }, content))));
|
|
160
202
|
}
|
|
161
203
|
const DataTableAuto = (0, react_1.forwardRef)(DataTableAutoInner);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableAuto.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataTableAuto.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mHAAmH;AACnH,+CAAmD;AACnD,gDAA6C;AAC7C,4DAAgD;AAChD,oDAA4C;AAC5C,gDAAoD;AACpD,sEAAmE;AACnE,kFAA+E;AAC/E,4EAAyE;
|
|
1
|
+
{"version":3,"file":"DataTableAuto.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataTableAuto.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mHAAmH;AACnH,+CAAmD;AACnD,qDAAwE;AACxE,4CAAyC;AACzC,gDAA6C;AAC7C,4DAAgD;AAChD,oDAA4C;AAC5C,gDAAoD;AACpD,sEAAmE;AACnE,kFAA+E;AAC/E,4EAAyE;AACzE,gEAA6D;AAC7D,kEAIoC;AACpC,0DAKgC;AAChC,sEAAmE;AACnE,kEAGoC;AACpC,wDAA4E;AAC5E,kFAA+E;AAC/E,4DAAyD;AACzD,4DAAyD;AACzD,mDAAgD;AAEhD,mEAGiC;AA+KjC,SAAS,kBAAkB,CACzB,EA0CoB,EACpB,YAAkD;QA3ClD,EACE,SAAS,EACT,EAAE,EACF,UAAU,GAAG,QAAQ,EACrB,eAAe,GAAG,KAAK,EACvB,YAAY,GAAG,KAAK,EACpB,eAAe,GAAG,IAAI,EACtB,qBAAqB,EACrB,MAAM,GAAG,OAAO,EAChB,aAAa,EAAE,iBAAiB,GAAG,MAAM,EACzC,YAAY,EACZ,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,GAAG,EAAE,EAC1B,IAAI,EACJ,iBAAiB,EACjB,QAAQ,EACR,aAAa,EACb,YAAY,GAAG,KAAK,EACpB,IAAI,EAAE,QAAQ,EACd,WAAW,GAAG,EAAE,EAChB,YAAY,EACZ,UAAU,EACV,UAAU,EACV,SAAS,GAAG,KAAK,EACjB,YAAY,EACZ,WAAW,EACX,YAAY,GAAG,gBAAgB,EAC/B,0BAA0B,GAAG,KAAK,EAClC,sBAAsB,EACtB,wBAAwB,EACxB,qBAAqB,EACrB,aAAa,GAAG,KAAK,EACrB,kBAAkB,EAClB,yBAAyB,EACzB,oBAAoB,EACpB,UAAU,EACV,iBAAiB,EACjB,wBAAwB,EACxB,kBAAkB,EAClB,yBAAyB,OAEP,EADf,IAAI,cAzCT,ouBA0CC,CADQ;IAIT,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAA,yCAAmB,EAAC;QACpD,OAAO,EAAE,eAAe;QACxB,qBAAqB;KACtB,CAAC,CAAC;IAEH,MAAM,EAAE,SAAS,EAAE,WAAW,EAAE,GAAG,IAAA,2BAAY,EAAC;QAC9C,WAAW;QACX,YAAY;QACZ,IAAI,EAAE,QAAQ;KACf,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAA,oBAAY,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAE1D,MAAM,UAAU,GAAG,IAAA,6BAAa,EAAC;QAC/B,KAAK,EAAE,IAAI;QACX,QAAQ;QACR,UAAU;QACV,iBAAiB;QACjB,wBAAwB;QACxB,kBAAkB;QAClB,yBAAyB;KAC1B,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC9B,MAAM,OAAO,GAAwB,EAAE,CAAC;QAExC,KAAK,MAAM,OAAO,IAAI,UAAU,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAC3B,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC,CAAC;IAE7B,MAAM,mBAAmB,GAAG,IAAA,qCAAiB,EAAC;QAC5C,aAAa,EAAE,iBAAiB;QAChC,YAAY;QACZ,mBAAmB;QACnB,iBAAiB;QACjB,qBAAqB;QACrB,UAAU;KACX,CAAC,CAAC;IAEH,MAAM,EAAE,OAAO,EAAE,eAAe,EAAE,GAAG,IAAA,mCAAgB,EAAI,iBAAiB,EAAE;QAC1E,aAAa;QACb,aAAa,EAAE,mBAAmB,CAAC,SAAS,CAAC,aAAa;KAC3D,CAAC,CAAC;IAEH,MAAM,gBAAgB,GACpB,OAAO,CAAC,MAAM;QACd,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC,mBAAmB,CAAC,SAAS,CAAC,aAAa,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAChE,CAAC,sBAAsB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAEnC,MAAM,OAAO,GAAG,IAAA,sBAAK,EAAC,EAAE,CAAC,CAAC;IAE1B,OAAO,CACL,8BAAC,gDAAwB,IACvB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,mBAAmB,EACnC,eAAe,EAAE,eAAe,EAChC,YAAY,EAAE,YAAY,EAC1B,OAAO,EAAE,OAAO,EAChB,oBAAoB,EAAE,SAAS,IAAI,YAAY,IAAI,IAAI,EACvD,UAAU,EAAE,UAAU,EACtB,0BAA0B,EAAE,0BAA0B,EACtD,SAAS,EAAE,SAAS,EACpB,kBAAkB,EAAE,SAAS,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW,EAC9D,OAAO,EAAE,OAAO;QAEhB,8BAAC,8CAA0B,IACzB,kBAAkB,EAAE,kBAAkB,EACtC,yBAAyB,EAAE,yBAAyB,EACpD,oBAAoB,EAAE,oBAAoB,EAC1C,WAAW,EAAE,UAAU,CAAC,WAAW,EACnC,sBAAsB,EAAE,sBAAsB,EAC9C,wBAAwB,EAAE,wBAAwB,EAClD,qBAAqB,EAAE,qBAAqB,EAC5C,aAAa,EAAE,aAAa;YAE5B,uCAAK,SAAS,EAAC,kCAAkC;gBAC/C,uCAAK,SAAS,EAAC,kCAAkC;oBAC/C,yDACM,IAAI,IACR,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,IAAA,YAAE,EAAC,kBAAkB,EAAE,SAAS,CAAC,wBACxB,YAAY,2BACT,eAAe,kBACxB,UAAU,iBACX,MAAM,kBACL,SAAS,IAAI,SAAS,EACpC,QAAQ,EAAE,QAAQ,eACP,SAAS,IAAI,SAAS;wBAEjC,8BAAC,+BAAc;4BACb,8BAAC,yBAAW,QACT,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE;;gCACpC,MAAM,SAAS,GAAG,SAAS,CAAC,IAAI,CAC9B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,CAChC,CAAC;gCACF,MAAM,aAAa,GAAG,MAAA,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,SAAS,mCAAI,MAAM,CAAC;gCACrD,OAAO,CACL,8BAAC,6CAAqB,IACpB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,YAAY,EAAE,MAAA,MAAM,CAAC,YAAY,mCAAI,MAAM,EAC3C,SAAS,EAAE,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EACtD,GAAG,EAAE,MAAM,CAAC,EAAE,EACd,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,CAAC,QAAQ,EACzB,aAAa,EAAE,aAAa,EAC5B,WAAW,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,IAEpD,MAAM,CAAC,MAAM,CACQ,CACzB,CAAC;4BACJ,CAAC,CAAC,CACU,CACC;wBACjB,8BAAC,kCAAkB,IACjB,WAAW,EAAE,UAAU,CAAC,WAAW,EACnC,KAAK,EAAE,UAAU,CAAC,KAAK,EACvB,yBAAyB,EAAE,UAAU,CAAC,yBAAyB,EAC/D,gBAAgB,EAAE,UAAU,CAAC,gBAAgB;4BAE7C,8BAAC,+BAAc;gCACb,8BAAC,yBAAyB,IACxB,YAAY,EAAE,YAAY,EAC1B,WAAW,EAAE,WAAW,EACxB,YAAY,EAAE,YAAY,EAC1B,UAAU,EAAE,UAAU,EACtB,gBAAgB,EAAE,gBAAgB,GAClC,CACa,CACE,CACf,CACJ,CACF,CACqB,CACJ,CAC5B,CAAC;AACJ,CAAC;AAUD,SAAS,yBAAyB,CAAC,EACjC,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,UAAU,EACV,gBAAgB,GACe;IAC/B,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,IAAA,oCAAoB,GAAE,CAAC;IACtD,MAAM,EAAE,OAAO,EAAE,SAAS,EAAE,GAAG,IAAA,2CAAmB,GAAE,CAAC;IAErD,IAAI,SAAS,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;QACtC,OAAO,CACL,8BAAC,6CAAqB,IAAC,OAAO,EAAE,gBAAgB,IAC7C,YAAY,CACS,CACzB,CAAC;IACJ,CAAC;IAED,IAAI,SAAS,IAAI,WAAW,EAAE,CAAC;QAC7B,OAAO,CACL;YACE;gBACE,sCAAI,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAC,eAAe,IACrD,YAAY,CACV,CACF;YACJ,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,CACpD,8BAAC,yBAAW,IAAC,GAAG,EAAE,gBAAgB,QAAQ,EAAE,yBACzC,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE,CAAC,CAClD,8BAAC,qCAAiB,IAChB,SAAS,EAAE,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EACtD,GAAG,EAAE,MAAM,CAAC,EAAE,IAAI,WAAW,EAC7B,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACpC,QAAQ,EAAE,QAAQ;gBAElB,8BAAC,mBAAQ,IAAC,OAAO,EAAC,MAAM,GAAG,CACT,CACrB,CAAC,CACU,CACf,CAAC,CACD,CACJ,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QACnD,OAAO,CACL,8BAAC,yCAAmB,IAAC,OAAO,EAAE,gBAAgB,IAC3C,UAAU,CACS,CACvB,CAAC;IACJ,CAAC;IAED,MAAM,yBAAyB,GAAG,SAAS,IAAI,CAAC,YAAY,IAAI,CAAC,WAAW,CAAC;IAE7E,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC3B,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAEzC,6DAA6D;QAC7D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;QAE/C,OAAO,CACL,8BAAC,eAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,OAAO,CAAC,EAAE;YAC5B,yBAAyB,IAAI,CAC5B;gBACE,sCAAI,OAAO,EAAE,gBAAgB,EAAE,SAAS,EAAC,eAAe,IACrD,YAAY,CACV,CACF,CACN;YACD,8BAAC,yBAAW,IAAC,KAAK,EAAE,OAAO,CAAC,EAAE,IAC3B,OAAO,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,EAAE;gBACjD,MAAM,kBAAkB,GAAG,WAAW,KAAK,CAAC,IAAI,UAAU,CAAC;gBAC3D,MAAM,kBAAkB,GACtB,WAAW,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,IAAI,UAAU,CAAC,CAAC;gBAEzD,MAAM,KAAK,GAAwB;oBACjC,iCAAiC,EAAE,OAAO,CAAC,KAAK;iBACjD,CAAC;gBAEF,OAAO,CACL,8BAAC,qCAAiB;gBAChB,kCAAkC;;oBAAlC,kCAAkC;oBAClC,SAAS,EAAE,MAAM,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EACtD,GAAG,EAAE,MAAM,CAAC,EAAE,IAAI,WAAW,EAC7B,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EACpC,QAAQ,EAAE,QAAQ,iBACL,kBAAkB,IAAI,SAAS,EAC5C,KAAK,EAAE,KAAK;oBAEX,kBAAkB,IAAI,8BAAC,eAAe,IAAC,OAAO,EAAE,OAAO,GAAI;oBAC3D,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CACH,CACrB,CAAC;YACJ,CAAC,CAAC,CACU;YACd,8BAAC,oBAAoB,IACnB,KAAK,EAAE,OAAO,CAAC,EAAE,EACjB,OAAO,EAAE,OAAO,EAChB,gBAAgB,EAAE,gBAAgB,GAClC,CACa,CAClB,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,eAAe,CAAC,EAAE,OAAO,EAAgC;IAChE,MAAM,EAAE,gBAAgB,EAAE,yBAAyB,EAAE,GACnD,IAAA,oCAAoB,GAAE,CAAC;IAEzB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC;IACjC,MAAM,UAAU,GAAG,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IACjD,MAAM,aAAa,GAAG,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAEnD,OAAO,CACL,uCAAK,SAAS,EAAC,iCAAiC,IAC7C,UAAU,IAAI,CACb,8BAAC,eAAM,IACL,OAAO,EAAC,UAAU,gBACP,SAAS,EACpB,IAAI,EAAC,OAAO,EACZ,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,yBAAyB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACxC,CAAC,mBACc,aAAa,gBAChB,aAAa,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,iBAAiB,EACnE,IAAI,EACF,aAAa,CAAC,CAAC,CAAC,CACd,8BAAC,6BAAe,0BAAe,CAChC,CAAC,CAAC,CAAC,CACF,8BAAC,8BAAgB,0BAAe,CACjC,GAEH,CACH,CACG,CACP,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAI,EAC/B,KAAK,EACL,OAAO,EACP,gBAAgB,GAKjB;IACC,MAAM,EAAE,OAAO,EAAE,GAAG,IAAA,2CAAmB,GAAE,CAAC;IAC1C,MAAM,EACJ,kBAAkB,EAClB,UAAU,EACV,sBAAsB,EACtB,qBAAqB,GACtB,GAAG,IAAA,yCAAqB,GAAE,CAAC;IAE5B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAG,OAAO,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,IAAA,2CAAuB,EAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAE5D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CACL;QACE,sCAAI,EAAE,EAAE,WAAW,EAAE,OAAO,EAAE,gBAAgB;YAC5C,uCAAK,KAAK,EAAE,EAAE,MAAM,EAAE,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAG,OAAO,CAAC,EAAE,IACrD,OAAO,CACJ,CACH,CACF,CACN,CAAC;AACJ,CAAC;AAED,MAAM,aAAa,GAAG,IAAA,kBAAU,EAAC,kBAAkB,CAErB,CAAC;AAEtB,sCAAa;AAEtB,kBAAe,aAAa,CAAC"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
+
import type { UseColumnOptionsResult } from "../hooks/useColumnOptions";
|
|
1
2
|
import type { UseTableSelectionReturn } from "../hooks/useTableSelection";
|
|
2
|
-
type DataTableContextProps = {
|
|
3
|
+
type DataTableContextProps<T> = {
|
|
3
4
|
layout: "fixed" | "auto";
|
|
4
5
|
withKeyboardNav: boolean;
|
|
5
6
|
selectionState: UseTableSelectionReturn;
|
|
@@ -11,11 +12,12 @@ type DataTableContextProps = {
|
|
|
11
12
|
disableRowSelectionOnClick: boolean;
|
|
12
13
|
isLoading?: boolean;
|
|
13
14
|
showLoadingOverlay: boolean;
|
|
15
|
+
columns: UseColumnOptionsResult<T>["columns"];
|
|
14
16
|
};
|
|
15
|
-
declare const DataTableContextProvider: import("react").FC<DataTableContextProps & {
|
|
17
|
+
declare const DataTableContextProvider: import("react").FC<DataTableContextProps<any> & {
|
|
16
18
|
children: React.ReactNode;
|
|
17
19
|
ref?: never;
|
|
18
|
-
}>, useDataTableContext: <S extends boolean = true>(strict?: S | undefined) => S extends true ? DataTableContextProps : DataTableContextProps | undefined;
|
|
20
|
+
}>, useDataTableContext: <S extends boolean = true>(strict?: S | undefined) => S extends true ? DataTableContextProps<any> : DataTableContextProps<any> | undefined;
|
|
19
21
|
type DataTableLocation = "thead" | "tbody" | "tfoot";
|
|
20
22
|
declare const DataTableLocationProvider: import("react").FC<{
|
|
21
23
|
location: DataTableLocation;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableRoot.context.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataTableRoot.context.ts"],"names":[],"mappings":";;;AAAA,oDAA6D;
|
|
1
|
+
{"version":3,"file":"DataTableRoot.context.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataTableRoot.context.ts"],"names":[],"mappings":";;;AAAA,oDAA6D;AAsB7D,MAAM,EAAE,QAAQ,EAAE,wBAAwB,EAAE,UAAU,EAAE,mBAAmB,EAAE,GAC3E,IAAA,6BAAmB,EAA6B;IAC9C,IAAI,EAAE,kBAAkB;IACxB,YAAY,EAAE,mDAAmD;CAClE,CAAC,CAAC;AAcH,4DAAwB;AAExB,kDAAmB;AAZrB,MAAM,EACJ,QAAQ,EAAE,yBAAyB,EACnC,UAAU,EAAE,oBAAoB,GACjC,GAAG,IAAA,6BAAmB,EAAkC;IACvD,IAAI,EAAE,mBAAmB;IACzB,YAAY,EACV,mIAAmI;CACtI,CAAC,CAAC;AAID,8DAAyB;AAEzB,oDAAoB"}
|
|
@@ -53,6 +53,7 @@ const DataTableCaption_1 = require("../caption/DataTableCaption");
|
|
|
53
53
|
Object.defineProperty(exports, "DataTableCaption", { enumerable: true, get: function () { return DataTableCaption_1.DataTableCaption; } });
|
|
54
54
|
const DataTableEmptyState_1 = require("../empty-state/DataTableEmptyState");
|
|
55
55
|
Object.defineProperty(exports, "DataTableEmptyState", { enumerable: true, get: function () { return DataTableEmptyState_1.DataTableEmptyState; } });
|
|
56
|
+
const useTableExpansion_1 = require("../hooks/useTableExpansion");
|
|
56
57
|
const useTableKeyboardNav_1 = require("../hooks/useTableKeyboardNav");
|
|
57
58
|
const useTableSelection_1 = require("../hooks/useTableSelection");
|
|
58
59
|
const DataTableLoadingState_1 = require("../loading-state/DataTableLoadingState");
|
|
@@ -70,6 +71,7 @@ Object.defineProperty(exports, "DataTableThead", { enumerable: true, get: functi
|
|
|
70
71
|
const DataTableTr_1 = require("../tr/DataTableTr");
|
|
71
72
|
Object.defineProperty(exports, "DataTableTr", { enumerable: true, get: function () { return DataTableTr_1.DataTableTr; } });
|
|
72
73
|
const DataTableRoot_context_1 = require("./DataTableRoot.context");
|
|
74
|
+
const EMPTY_ITEM_DETAILS = new Map();
|
|
73
75
|
/**
|
|
74
76
|
* TODO Component description etc.
|
|
75
77
|
*
|
|
@@ -83,10 +85,11 @@ const DataTable = (0, react_1.forwardRef)((_a, forwardedRef) => {
|
|
|
83
85
|
shouldBlockNavigation,
|
|
84
86
|
});
|
|
85
87
|
const mergedRef = (0, hooks_1.useMergeRefs)(forwardedRef, setTableRef);
|
|
86
|
-
return (react_1.default.createElement(DataTableRoot_context_1.DataTableContextProvider, { layout: layout, withKeyboardNav: withKeyboardNav, selectionState: useTableSelection_1.noSelectionState, stickySelection: false, stickyHeader: false, tableId: (0, utils_external_1.useId)(), showLoadingSkeletons: false, onRowClick: undefined, disableRowSelectionOnClick: false, showLoadingOverlay: false },
|
|
87
|
-
react_1.default.createElement(
|
|
88
|
-
react_1.default.createElement("div", { className: "aksel-data-
|
|
89
|
-
react_1.default.createElement("
|
|
88
|
+
return (react_1.default.createElement(DataTableRoot_context_1.DataTableContextProvider, { layout: layout, withKeyboardNav: withKeyboardNav, selectionState: useTableSelection_1.noSelectionState, stickySelection: false, stickyHeader: false, tableId: (0, utils_external_1.useId)(), showLoadingSkeletons: false, onRowClick: undefined, disableRowSelectionOnClick: false, showLoadingOverlay: false, columns: [] },
|
|
89
|
+
react_1.default.createElement(useTableExpansion_1.DataTableExpansionProvider, { itemDetails: EMPTY_ITEM_DETAILS },
|
|
90
|
+
react_1.default.createElement("div", { className: "aksel-data-table__border-wrapper" },
|
|
91
|
+
react_1.default.createElement("div", { className: "aksel-data-table__scroll-wrapper" },
|
|
92
|
+
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, tabIndex: tabIndex })))))));
|
|
90
93
|
});
|
|
91
94
|
exports.DataTable = DataTable;
|
|
92
95
|
DataTable.Caption = DataTableCaption_1.DataTableCaption;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableRoot.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataTableRoot.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA0C;AAC1C,4DAAgD;AAChD,oDAA4C;AAC5C,gDAAoD;AACpD,kEAGqC;
|
|
1
|
+
{"version":3,"file":"DataTableRoot.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataTableRoot.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA0C;AAC1C,4DAAgD;AAChD,oDAA4C;AAC5C,gDAAoD;AACpD,kEAGqC;AA4QnC,iGA9QA,mCAAgB,OA8QA;AA3QlB,4EAG4C;AAyQ1C,oGA3QA,yCAAmB,OA2QA;AAxQrB,kEAAwE;AAExE,sEAAmE;AAEnE,kEAA8D;AAC9D,kFAGgD;AAiQ9C,sGAnQA,6CAAqB,OAmQA;AAhQvB,4DAGiC;AA8P/B,+FAhQA,+BAAc,OAgQA;AA7PhB,mDAAuE;AA8PrE,4FA9PO,yBAAW,OA8PP;AA7Pb,4DAGiC;AA2P/B,+FA7PA,+BAAc,OA6PA;AA1PhB,mDAAuE;AA2PrE,4FA3PO,yBAAW,OA2PP;AA1Pb,4DAGiC;AAwP/B,+FA1PA,+BAAc,OA0PA;AAvPhB,mDAAuE;AAwPrE,4FAxPO,yBAAW,OAwPP;AAvPb,mEAAmE;AAEnE,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAA4B,CAAC;AAmK/D;;;;;GAKG;AACH,MAAM,SAAS,GAAG,IAAA,kBAAU,EAC1B,CACE,EASC,EACD,YAAY,EACZ,EAAE;QAXF,EACE,SAAS,EACT,UAAU,GAAG,QAAQ,EACrB,eAAe,GAAG,KAAK,EACvB,YAAY,GAAG,KAAK,EACpB,eAAe,GAAG,IAAI,EACtB,qBAAqB,EACrB,MAAM,GAAG,OAAO,OAEjB,EADI,IAAI,cART,oHASC,CADQ;IAIT,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,GAAG,IAAA,yCAAmB,EAAC;QACpD,OAAO,EAAE,eAAe;QACxB,qBAAqB;KACtB,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,IAAA,oBAAY,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC;IAE1D,OAAO,CACL,8BAAC,gDAAwB,IACvB,MAAM,EAAE,MAAM,EACd,eAAe,EAAE,eAAe,EAChC,cAAc,EAAE,oCAAgB,EAChC,eAAe,EAAE,KAAK,EACtB,YAAY,EAAE,KAAK,EACnB,OAAO,EAAE,IAAA,sBAAK,GAAE,EAChB,oBAAoB,EAAE,KAAK,EAC3B,UAAU,EAAE,SAAS,EACrB,0BAA0B,EAAE,KAAK,EACjC,kBAAkB,EAAE,KAAK,EACzB,OAAO,EAAE,EAAE;QAEX,8BAAC,8CAA0B,IAAC,WAAW,EAAE,kBAAkB;YACzD,uCAAK,SAAS,EAAC,kCAAkC;gBAC/C,uCAAK,SAAS,EAAC,kCAAkC;oBAC/C,yDACM,IAAI,IACR,GAAG,EAAE,SAAS,EACd,SAAS,EAAE,IAAA,YAAE,EAAC,kBAAkB,EAAE,SAAS,CAAC,wBACxB,YAAY,2BACT,eAAe,kBACxB,UAAU,iBACX,MAAM,EACnB,QAAQ,EAAE,QAAQ,IAClB,CACE,CACF,CACqB,CACJ,CAC5B,CAAC;AACJ,CAAC,CACwB,CAAC;AAa1B,8BAAS;AAXX,SAAS,CAAC,OAAO,GAAG,mCAAgB,CAAC;AACrC,SAAS,CAAC,KAAK,GAAG,+BAAc,CAAC;AACjC,SAAS,CAAC,KAAK,GAAG,+BAAc,CAAC;AACjC,SAAS,CAAC,EAAE,GAAG,yBAAW,CAAC;AAC3B,SAAS,CAAC,EAAE,GAAG,yBAAW,CAAC;AAC3B,SAAS,CAAC,EAAE,GAAG,yBAAW,CAAC;AAC3B,SAAS,CAAC,KAAK,GAAG,+BAAc,CAAC;AACjC,SAAS,CAAC,UAAU,GAAG,yCAAmB,CAAC;AAC3C,SAAS,CAAC,YAAY,GAAG,6CAAqB,CAAC;AAc/C,kBAAe,SAAS,CAAC"}
|
|
@@ -68,31 +68,28 @@ const DataTableTr = (0, react_1.forwardRef)((_a, forwardedRef) => {
|
|
|
68
68
|
const renderFillerCell = layout === "fixed" && children;
|
|
69
69
|
const selected = (_b = selectionState.selection.isRowSelected(rowId !== null && rowId !== void 0 ? rowId : "")) !== null && _b !== void 0 ? _b : selectedProp;
|
|
70
70
|
const isSticky = location === "thead" && stickyHeader;
|
|
71
|
-
const handleClick =
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
rowId === undefined ||
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
71
|
+
const handleClick = location === "tbody" && rowId !== undefined
|
|
72
|
+
? (event) => {
|
|
73
|
+
var _a;
|
|
74
|
+
if (rowId === undefined ||
|
|
75
|
+
isInteractiveTarget(event.target) ||
|
|
76
|
+
((_a = event.target) === null || _a === void 0 ? void 0 : _a.closest("[data-prevent-row-click]"))) {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
const selection = window.getSelection();
|
|
80
|
+
if (selection && selection.toString().length > 0) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (!disableRowSelectionOnClick &&
|
|
84
|
+
selectionState.selection.selectionMode !== "none") {
|
|
85
|
+
selectionState.selection.toggleSelection(rowId);
|
|
86
|
+
}
|
|
87
|
+
onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(rowId, event);
|
|
78
88
|
}
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
if (!disableRowSelectionOnClick &&
|
|
84
|
-
selectionState.selection.selectionMode !== "none") {
|
|
85
|
-
selectionState.selection.toggleSelection(rowId);
|
|
86
|
-
}
|
|
87
|
-
onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(rowId, event);
|
|
88
|
-
}, [
|
|
89
|
-
disableRowSelectionOnClick,
|
|
90
|
-
location,
|
|
91
|
-
onRowClick,
|
|
92
|
-
rowId,
|
|
93
|
-
selectionState.selection,
|
|
94
|
-
]);
|
|
95
|
-
return (react_1.default.createElement("tr", Object.assign({}, rest, { onClick: (0, helpers_1.composeEventHandlers)(onClick, handleClick), ref: forwardedRef, className: (0, helpers_1.cl)("aksel-data-table__tr", className), "data-selected": selected, "data-sticky": isSticky || undefined }),
|
|
89
|
+
: undefined;
|
|
90
|
+
return (react_1.default.createElement("tr", Object.assign({}, rest, {
|
|
91
|
+
// Avoid setting onClick if not needed, since this causes NVDA to announce the row as clickable.
|
|
92
|
+
onClick: (onClick || handleClick) && (0, helpers_1.composeEventHandlers)(onClick, handleClick), ref: forwardedRef, className: (0, helpers_1.cl)("aksel-data-table__tr", className), "data-selected": selected, "data-sticky": isSticky || undefined }),
|
|
96
93
|
react_1.default.createElement(RowExpansionCell, { rowId: rowId }),
|
|
97
94
|
react_1.default.createElement(RowSelectionCell, { rowId: rowId }),
|
|
98
95
|
children,
|
|
@@ -102,12 +99,8 @@ exports.DataTableTr = DataTableTr;
|
|
|
102
99
|
function RowExpansionCell({ rowId }) {
|
|
103
100
|
const { tableId, showLoadingSkeletons } = (0, DataTableRoot_context_1.useDataTableContext)();
|
|
104
101
|
const { location } = (0, DataTableRoot_context_1.useDataTableLocation)();
|
|
105
|
-
const
|
|
106
|
-
if (!
|
|
107
|
-
return null;
|
|
108
|
-
}
|
|
109
|
-
const { isExpanded, toggleExpansion, enableExpansion, isAllExpanded, toggleAll, showExpandAll, } = expansionContext;
|
|
110
|
-
if (!enableExpansion) {
|
|
102
|
+
const { isExpanded, isDetailsPanelExpandable, toggleExpansion, enableDetailsPanel, isAllExpanded, toggleAll, showExpandAll, } = (0, useTableExpansion_1.useDataTableExpansion)();
|
|
103
|
+
if (!enableDetailsPanel) {
|
|
111
104
|
return null;
|
|
112
105
|
}
|
|
113
106
|
if (showLoadingSkeletons) {
|
|
@@ -128,14 +121,19 @@ function RowExpansionCell({ rowId }) {
|
|
|
128
121
|
return null;
|
|
129
122
|
}
|
|
130
123
|
const isRowExpanded = isExpanded(rowId);
|
|
124
|
+
const canExpandRow = isDetailsPanelExpandable(rowId);
|
|
125
|
+
const expansionId = (0, useTableExpansion_1.getDataTableExpansionId)(tableId, rowId);
|
|
126
|
+
if (!canExpandRow) {
|
|
127
|
+
return react_1.default.createElement(DataTableTd_1.DataTableTd, { UNSAFE_isSelection: true, preventRowClick: true });
|
|
128
|
+
}
|
|
131
129
|
return (react_1.default.createElement(DataTableTd_1.DataTableTd, { UNSAFE_isSelection: true, preventRowClick: true },
|
|
132
130
|
react_1.default.createElement(button_1.Button, { variant: "tertiary", "data-color": "neutral", size: "xsmall", onClick: (e) => {
|
|
133
131
|
e.stopPropagation();
|
|
134
132
|
toggleExpansion(rowId);
|
|
135
|
-
}, "aria-expanded": isRowExpanded, "aria-controls":
|
|
133
|
+
}, "aria-expanded": isRowExpanded, "aria-controls": expansionId, "aria-label": isRowExpanded ? "Skjul detaljer" : "Vis detaljer", icon: isRowExpanded ? react_1.default.createElement(aksel_icons_1.MinusIcon, { "aria-hidden": true }) : react_1.default.createElement(aksel_icons_1.PlusIcon, { "aria-hidden": true }) })));
|
|
136
134
|
}
|
|
137
135
|
/**
|
|
138
|
-
* TODO: How do these cells handle multiple thead rows, or col/
|
|
136
|
+
* TODO: How do these cells handle multiple thead rows, or col/row-spans?
|
|
139
137
|
* TODO: a11y for labels
|
|
140
138
|
*/
|
|
141
139
|
function RowSelectionCell({ rowId }) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTableTr.js","sourceRoot":"","sources":["../../../../src/data/table/tr/DataTableTr.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"DataTableTr.js","sourceRoot":"","sources":["../../../../src/data/table/tr/DataTableTr.tsx"],"names":[],"mappings":"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"}
|