@navikt/ds-react 8.10.3 → 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.
Files changed (159) hide show
  1. package/cjs/action-menu/ActionMenu.js +1 -1
  2. package/cjs/action-menu/ActionMenu.js.map +1 -1
  3. package/cjs/data/stories/Data.test-data.d.ts +24 -0
  4. package/cjs/data/stories/Data.test-data.js +1616 -0
  5. package/cjs/data/stories/Data.test-data.js.map +1 -0
  6. package/cjs/data/table/column-header/DataTableColumnHeader.d.ts +4 -1
  7. package/cjs/data/table/column-header/DataTableColumnHeader.js +2 -2
  8. package/cjs/data/table/column-header/DataTableColumnHeader.js.map +1 -1
  9. package/cjs/data/table/column-header/useTableColumnResize.d.ts +21 -18
  10. package/cjs/data/table/column-header/useTableColumnResize.js +7 -25
  11. package/cjs/data/table/column-header/useTableColumnResize.js.map +1 -1
  12. package/cjs/data/table/details-panel-row/DataTableDetailsPanelRow.d.ts +6 -0
  13. package/cjs/data/table/details-panel-row/DataTableDetailsPanelRow.js +32 -0
  14. package/cjs/data/table/details-panel-row/DataTableDetailsPanelRow.js.map +1 -0
  15. package/cjs/data/table/helpers/collectTableRowEntries.d.ts +4 -4
  16. package/cjs/data/table/helpers/collectTableRowEntries.js +6 -7
  17. package/cjs/data/table/helpers/collectTableRowEntries.js.map +1 -1
  18. package/cjs/data/table/hooks/useColumnOptions.js +18 -5
  19. package/cjs/data/table/hooks/useColumnOptions.js.map +1 -1
  20. package/cjs/data/table/hooks/useTableDetailsPanel.d.ts +62 -0
  21. package/cjs/data/table/hooks/{useTableExpansion.js → useTableDetailsPanel.js} +20 -19
  22. package/cjs/data/table/hooks/useTableDetailsPanel.js.map +1 -0
  23. package/cjs/data/table/hooks/useTableItems.d.ts +13 -16
  24. package/cjs/data/table/hooks/useTableItems.js +9 -8
  25. package/cjs/data/table/hooks/useTableItems.js.map +1 -1
  26. package/cjs/data/table/hooks/useTableSelection.d.ts +4 -2
  27. package/cjs/data/table/hooks/useTableSelection.js +6 -1
  28. package/cjs/data/table/hooks/useTableSelection.js.map +1 -1
  29. package/cjs/data/table/index.d.ts +1 -2
  30. package/cjs/data/table/index.js +22 -12
  31. package/cjs/data/table/index.js.map +1 -1
  32. package/cjs/data/table/root/DataTable.types.d.ts +7 -6
  33. package/cjs/data/table/root/DataTableRoot.context.d.ts +5 -1
  34. package/cjs/data/table/root/DataTableRoot.context.js.map +1 -1
  35. package/cjs/data/table/root/DataTableRoot.d.ts +79 -115
  36. package/cjs/data/table/root/DataTableRoot.js +167 -38
  37. package/cjs/data/table/root/DataTableRoot.js.map +1 -1
  38. package/cjs/data/table/root/DataTableRoot.legacy.d.ts +177 -0
  39. package/cjs/data/table/root/DataTableRoot.legacy.js +104 -0
  40. package/cjs/data/table/root/DataTableRoot.legacy.js.map +1 -0
  41. package/cjs/data/table/sub-row-toggle/DataTableSubRowToggle.d.ts +6 -0
  42. package/cjs/data/table/sub-row-toggle/DataTableSubRowToggle.js +21 -0
  43. package/cjs/data/table/sub-row-toggle/DataTableSubRowToggle.js.map +1 -0
  44. package/cjs/data/table/tr/DataTableTr.js +11 -11
  45. package/cjs/data/table/tr/DataTableTr.js.map +1 -1
  46. package/cjs/utils/components/dismissablelayer/DismissableLayer.js +1 -1
  47. package/cjs/utils/components/dismissablelayer/DismissableLayer.js.map +1 -1
  48. package/cjs/utils/components/floating/Floating.d.ts +16 -1
  49. package/cjs/utils/components/floating/Floating.js +50 -13
  50. package/cjs/utils/components/floating/Floating.js.map +1 -1
  51. package/cjs/utils/components/floating-menu/Menu.js +1 -1
  52. package/cjs/utils/components/floating-menu/Menu.js.map +1 -1
  53. package/cjs/utils/helpers/create-strict-context.js +1 -1
  54. package/cjs/utils/helpers/create-strict-context.js.map +1 -1
  55. package/cjs/utils/hooks/useControllableState.d.ts +5 -5
  56. package/cjs/utils/hooks/useControllableState.js.map +1 -1
  57. package/cjs/utils/hooks/useValueAsRef.js +1 -1
  58. package/cjs/utils/hooks/useValueAsRef.js.map +1 -1
  59. package/cjs/utils-external/hooks/useId.js +1 -1
  60. package/cjs/utils-external/hooks/useId.js.map +1 -1
  61. package/esm/action-menu/ActionMenu.js +1 -1
  62. package/esm/action-menu/ActionMenu.js.map +1 -1
  63. package/esm/data/stories/Data.test-data.d.ts +24 -0
  64. package/esm/data/stories/Data.test-data.js +1607 -0
  65. package/esm/data/stories/Data.test-data.js.map +1 -0
  66. package/esm/data/table/column-header/DataTableColumnHeader.d.ts +4 -1
  67. package/esm/data/table/column-header/DataTableColumnHeader.js +2 -2
  68. package/esm/data/table/column-header/DataTableColumnHeader.js.map +1 -1
  69. package/esm/data/table/column-header/useTableColumnResize.d.ts +21 -18
  70. package/esm/data/table/column-header/useTableColumnResize.js +7 -25
  71. package/esm/data/table/column-header/useTableColumnResize.js.map +1 -1
  72. package/esm/data/table/details-panel-row/DataTableDetailsPanelRow.d.ts +6 -0
  73. package/esm/data/table/details-panel-row/DataTableDetailsPanelRow.js +27 -0
  74. package/esm/data/table/details-panel-row/DataTableDetailsPanelRow.js.map +1 -0
  75. package/esm/data/table/helpers/collectTableRowEntries.d.ts +4 -4
  76. package/esm/data/table/helpers/collectTableRowEntries.js +6 -7
  77. package/esm/data/table/helpers/collectTableRowEntries.js.map +1 -1
  78. package/esm/data/table/hooks/useColumnOptions.js +18 -5
  79. package/esm/data/table/hooks/useColumnOptions.js.map +1 -1
  80. package/esm/data/table/hooks/useTableDetailsPanel.d.ts +62 -0
  81. package/esm/data/table/hooks/{useTableExpansion.js → useTableDetailsPanel.js} +17 -16
  82. package/esm/data/table/hooks/useTableDetailsPanel.js.map +1 -0
  83. package/esm/data/table/hooks/useTableItems.d.ts +13 -16
  84. package/esm/data/table/hooks/useTableItems.js +9 -8
  85. package/esm/data/table/hooks/useTableItems.js.map +1 -1
  86. package/esm/data/table/hooks/useTableSelection.d.ts +4 -2
  87. package/esm/data/table/hooks/useTableSelection.js +6 -1
  88. package/esm/data/table/hooks/useTableSelection.js.map +1 -1
  89. package/esm/data/table/index.d.ts +1 -2
  90. package/esm/data/table/index.js +21 -1
  91. package/esm/data/table/index.js.map +1 -1
  92. package/esm/data/table/root/DataTable.types.d.ts +7 -6
  93. package/esm/data/table/root/DataTableRoot.context.d.ts +5 -1
  94. package/esm/data/table/root/DataTableRoot.context.js.map +1 -1
  95. package/esm/data/table/root/DataTableRoot.d.ts +79 -115
  96. package/esm/data/table/root/DataTableRoot.js +174 -36
  97. package/esm/data/table/root/DataTableRoot.js.map +1 -1
  98. package/esm/data/table/root/DataTableRoot.legacy.d.ts +177 -0
  99. package/esm/data/table/root/DataTableRoot.legacy.js +59 -0
  100. package/esm/data/table/root/DataTableRoot.legacy.js.map +1 -0
  101. package/esm/data/table/sub-row-toggle/DataTableSubRowToggle.d.ts +6 -0
  102. package/esm/data/table/sub-row-toggle/DataTableSubRowToggle.js +16 -0
  103. package/esm/data/table/sub-row-toggle/DataTableSubRowToggle.js.map +1 -0
  104. package/esm/data/table/tr/DataTableTr.js +11 -11
  105. package/esm/data/table/tr/DataTableTr.js.map +1 -1
  106. package/esm/utils/components/dismissablelayer/DismissableLayer.js +1 -1
  107. package/esm/utils/components/dismissablelayer/DismissableLayer.js.map +1 -1
  108. package/esm/utils/components/floating/Floating.d.ts +16 -1
  109. package/esm/utils/components/floating/Floating.js +48 -13
  110. package/esm/utils/components/floating/Floating.js.map +1 -1
  111. package/esm/utils/components/floating-menu/Menu.js +2 -2
  112. package/esm/utils/components/floating-menu/Menu.js.map +1 -1
  113. package/esm/utils/helpers/create-strict-context.js +1 -1
  114. package/esm/utils/helpers/create-strict-context.js.map +1 -1
  115. package/esm/utils/hooks/useControllableState.d.ts +5 -5
  116. package/esm/utils/hooks/useControllableState.js.map +1 -1
  117. package/esm/utils/hooks/useValueAsRef.js +1 -1
  118. package/esm/utils/hooks/useValueAsRef.js.map +1 -1
  119. package/esm/utils-external/hooks/useId.js +1 -1
  120. package/esm/utils-external/hooks/useId.js.map +1 -1
  121. package/package.json +3 -3
  122. package/src/action-menu/ActionMenu.tsx +1 -1
  123. package/src/data/stories/Data.test-data.tsx +1703 -0
  124. package/src/data/table/column-header/DataTableColumnHeader.tsx +6 -6
  125. package/src/data/table/column-header/useTableColumnResize.ts +29 -44
  126. package/src/data/table/details-panel-row/DataTableDetailsPanelRow.tsx +53 -0
  127. package/src/data/table/helpers/collectTableRowEntries.ts +10 -18
  128. package/src/data/table/hooks/__tests__/useTableItems.test.ts +14 -7
  129. package/src/data/table/hooks/__tests__/useTableSelection.test.ts +57 -44
  130. package/src/data/table/hooks/useColumnOptions.ts +19 -5
  131. package/src/data/table/hooks/{useTableExpansion.tsx → useTableDetailsPanel.tsx} +81 -45
  132. package/src/data/table/hooks/useTableItems.ts +27 -36
  133. package/src/data/table/hooks/useTableSelection.ts +17 -6
  134. package/src/data/table/index.tsx +5 -3
  135. package/src/data/table/root/DataTable.types.ts +20 -6
  136. package/src/data/table/root/DataTableRoot.context.ts +5 -1
  137. package/src/data/table/root/DataTableRoot.legacy.tsx +297 -0
  138. package/src/data/table/root/DataTableRoot.tsx +482 -217
  139. package/src/data/table/sub-row-toggle/DataTableSubRowToggle.tsx +39 -0
  140. package/src/data/table/tr/DataTableTr.tsx +14 -13
  141. package/src/utils/components/dismissablelayer/DismissableLayer.tsx +1 -1
  142. package/src/utils/components/floating/Floating.tsx +56 -13
  143. package/src/utils/components/floating-menu/Menu.tsx +4 -1
  144. package/src/utils/helpers/create-strict-context.tsx +1 -1
  145. package/src/utils/hooks/useControllableState.ts +11 -8
  146. package/src/utils/hooks/useValueAsRef.ts +1 -1
  147. package/src/utils-external/hooks/useId.ts +1 -1
  148. package/cjs/data/table/hooks/useTableExpansion.d.ts +0 -27
  149. package/cjs/data/table/hooks/useTableExpansion.js.map +0 -1
  150. package/cjs/data/table/root/DataTableAuto.d.ts +0 -182
  151. package/cjs/data/table/root/DataTableAuto.js +0 -206
  152. package/cjs/data/table/root/DataTableAuto.js.map +0 -1
  153. package/esm/data/table/hooks/useTableExpansion.d.ts +0 -27
  154. package/esm/data/table/hooks/useTableExpansion.js.map +0 -1
  155. package/esm/data/table/root/DataTableAuto.d.ts +0 -182
  156. package/esm/data/table/root/DataTableAuto.js +0 -170
  157. package/esm/data/table/root/DataTableAuto.js.map +0 -1
  158. package/src/data/table/root/DataTableAuto.test.tsx +0 -244
  159. package/src/data/table/root/DataTableAuto.tsx +0 -612
@@ -44,61 +44,190 @@ var __rest = (this && this.__rest) || function (s, e) {
44
44
  return t;
45
45
  };
46
46
  Object.defineProperty(exports, "__esModule", { value: true });
47
- exports.DataTableTr = exports.DataTableThead = exports.DataTableTh = exports.DataTableTfoot = exports.DataTableTd = exports.DataTableTbody = exports.DataTableLoadingState = exports.DataTableEmptyState = exports.DataTableCaption = exports.DataTable = void 0;
47
+ exports.DataTable = void 0;
48
+ /** biome-ignore-all lint/correctness/useHookAtTopLevel: False positive because of the way forwardRef() is added */
48
49
  const react_1 = __importStar(require("react"));
50
+ const skeleton_1 = require("../../../skeleton");
49
51
  const utils_external_1 = require("../../../utils-external");
52
+ const Slot_1 = require("../../../utils/components/slot/Slot");
50
53
  const helpers_1 = require("../../../utils/helpers");
51
54
  const hooks_1 = require("../../../utils/hooks");
52
- const DataTableCaption_1 = require("../caption/DataTableCaption");
53
- Object.defineProperty(exports, "DataTableCaption", { enumerable: true, get: function () { return DataTableCaption_1.DataTableCaption; } });
55
+ const DataTableBaseCell_1 = require("../base-cell/DataTableBaseCell");
56
+ const DataTableColumnHeader_1 = require("../column-header/DataTableColumnHeader");
57
+ const DataTableDetailsPanelRow_1 = require("../details-panel-row/DataTableDetailsPanelRow");
54
58
  const DataTableEmptyState_1 = require("../empty-state/DataTableEmptyState");
55
- Object.defineProperty(exports, "DataTableEmptyState", { enumerable: true, get: function () { return DataTableEmptyState_1.DataTableEmptyState; } });
56
- const useTableExpansion_1 = require("../hooks/useTableExpansion");
59
+ const useColumnOptions_1 = require("../hooks/useColumnOptions");
60
+ const useTableDetailsPanel_1 = require("../hooks/useTableDetailsPanel");
61
+ const useTableItems_1 = require("../hooks/useTableItems");
57
62
  const useTableKeyboardNav_1 = require("../hooks/useTableKeyboardNav");
58
63
  const useTableSelection_1 = require("../hooks/useTableSelection");
64
+ const useTableSort_1 = require("../hooks/useTableSort");
59
65
  const DataTableLoadingState_1 = require("../loading-state/DataTableLoadingState");
60
- Object.defineProperty(exports, "DataTableLoadingState", { enumerable: true, get: function () { return DataTableLoadingState_1.DataTableLoadingState; } });
66
+ const DataTableSubRowToggle_1 = require("../sub-row-toggle/DataTableSubRowToggle");
61
67
  const DataTableTbody_1 = require("../tbody/DataTableTbody");
62
- Object.defineProperty(exports, "DataTableTbody", { enumerable: true, get: function () { return DataTableTbody_1.DataTableTbody; } });
63
- const DataTableTd_1 = require("../td/DataTableTd");
64
- Object.defineProperty(exports, "DataTableTd", { enumerable: true, get: function () { return DataTableTd_1.DataTableTd; } });
65
- const DataTableTfoot_1 = require("../tfoot/DataTableTfoot");
66
- Object.defineProperty(exports, "DataTableTfoot", { enumerable: true, get: function () { return DataTableTfoot_1.DataTableTfoot; } });
67
- const DataTableTh_1 = require("../th/DataTableTh");
68
- Object.defineProperty(exports, "DataTableTh", { enumerable: true, get: function () { return DataTableTh_1.DataTableTh; } });
69
68
  const DataTableThead_1 = require("../thead/DataTableThead");
70
- Object.defineProperty(exports, "DataTableThead", { enumerable: true, get: function () { return DataTableThead_1.DataTableThead; } });
71
69
  const DataTableTr_1 = require("../tr/DataTableTr");
72
- Object.defineProperty(exports, "DataTableTr", { enumerable: true, get: function () { return DataTableTr_1.DataTableTr; } });
73
70
  const DataTableRoot_context_1 = require("./DataTableRoot.context");
71
+ function DataTableInner(_a, forwardedRef) {
72
+ var { className, id, rowDensity = "normal", withKeyboardNav = true, zebraStripes = false, truncateContent = true, shouldBlockNavigation, layout = "fixed", selection, data, columnDefinitions, getRowId, stickyColumns, stickyHeader = true, sort: sortProp, defaultSort = [], onSortChange, onRowClick, emptyState, loading, detailsPanel, subRows } = _a, rest = __rest(_a, ["className", "id", "rowDensity", "withKeyboardNav", "zebraStripes", "truncateContent", "shouldBlockNavigation", "layout", "selection", "data", "columnDefinitions", "getRowId", "stickyColumns", "stickyHeader", "sort", "defaultSort", "onSortChange", "onRowClick", "emptyState", "loading", "detailsPanel", "subRows"]);
73
+ const { sortState, onSortClick } = (0, useTableSort_1.useTableSort)({
74
+ defaultSort,
75
+ onSortChange,
76
+ sort: sortProp,
77
+ });
78
+ /**
79
+ * TODO:
80
+ * - If user currently does not give a getRowsId function, and data is nested (getSubRows)
81
+ * we end up in an infinite loop since the index based ids repeat for children and causes chaos.
82
+ */
83
+ const tableItems = (0, useTableItems_1.useTableItems)({
84
+ items: data,
85
+ getRowId: getRowId !== null && getRowId !== void 0 ? getRowId : ((_, index) => index),
86
+ subRows,
87
+ });
88
+ const tableSelectionState = (0, useTableSelection_1.useTableSelection)({
89
+ selection,
90
+ visibleRowIds: tableItems.visibleRowIds,
91
+ childRowIdsById: tableItems.childRowIdsById,
92
+ });
93
+ const { columns, stickySelection } = (0, useColumnOptions_1.useColumnOptions)(columnDefinitions, {
94
+ stickyColumns,
95
+ selectionMode: tableSelectionState.selection.selectionMode,
96
+ });
97
+ const { isLoading = false, loadingState, loadingRows, loadingLabel = "Laster innhold", } = loading || {};
98
+ const fullWidthColSpan = (0, react_1.useMemo)(() => {
99
+ return (columns.length +
100
+ (layout === "fixed" ? 1 : 0) +
101
+ (tableSelectionState.selection.selectionMode !== "none" ? 1 : 0) +
102
+ ((detailsPanel === null || detailsPanel === void 0 ? void 0 : detailsPanel.getContent) ? 1 : 0));
103
+ }, [
104
+ columns,
105
+ layout,
106
+ tableSelectionState.selection.selectionMode,
107
+ detailsPanel,
108
+ ]);
109
+ const tableId = (0, utils_external_1.useId)(id);
110
+ 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, isLoading: isLoading, showLoadingOverlay: isLoading && !loadingState && !loadingRows, columns: columns, fullWidthColSpan: fullWidthColSpan },
111
+ react_1.default.createElement(useTableItems_1.TableItemsProvider, { itemDetails: tableItems.itemDetails, items: tableItems.items, onExpandedRowIdsChange: tableItems.onExpandedRowIdsChange, isSubRowExpanded: tableItems.isSubRowExpanded },
112
+ react_1.default.createElement(useTableDetailsPanel_1.DataTableDetailsPanelProvider, { detailsPanel: detailsPanel },
113
+ react_1.default.createElement(TableElementWrapper, { shouldBlockNavigation: shouldBlockNavigation, enabled: withKeyboardNav },
114
+ react_1.default.createElement("table", Object.assign({}, rest, { ref: forwardedRef, 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, "aria-busy": isLoading || undefined }),
115
+ react_1.default.createElement(DataTableThead_1.DataTableThead, null,
116
+ react_1.default.createElement(DataTableTr_1.DataTableTr, null, columns.map(({ isSticky, colDef }) => {
117
+ var _a, _b, _c;
118
+ const sortEntry = sortState.find((s) => s.columnId === colDef.id);
119
+ const sortDirection = (_a = sortEntry === null || sortEntry === void 0 ? void 0 : sortEntry.direction) !== null && _a !== void 0 ? _a : "none";
120
+ return (react_1.default.createElement(DataTableColumnHeader_1.DataTableColumnHeader, { resizable: colDef.resizable, width: colDef.width, defaultWidth: colDef.defaultWidth, autoWidth: colDef.autoWidth, minWidth: colDef.minWidth, maxWidth: colDef.maxWidth, onWidthChange: colDef.onWidthChange, textAlign: (_b = colDef.align) !== null && _b !== void 0 ? _b : "left", key: colDef.id, isSticky: isSticky, sortable: colDef.sortable, sortDirection: sortDirection, onSortClick: (event) => onSortClick(colDef.id, event), label: colDef.label }, (_c = colDef.header) !== null && _c !== void 0 ? _c : colDef.label));
121
+ }))),
122
+ react_1.default.createElement(DataTableTbody_1.DataTableTbody, null,
123
+ react_1.default.createElement(DataTableTBodyContent, { loadingState: loadingState, loadingRows: loadingRows, loadingLabel: loadingLabel, emptyState: emptyState }))))))));
124
+ }
74
125
  /**
75
- * TODO Component description etc.
76
- *
77
- * **NB:** To get sticky headers, you have to set a height restriction on the table container. You can use VStack for this:
78
- * TODO example
126
+ * Temp optimization to avoid re-renders on every keyboard-move, selection change etc
79
127
  */
80
- const DataTable = (0, react_1.forwardRef)((_a, forwardedRef) => {
81
- var { className, rowDensity = "normal", withKeyboardNav = false, zebraStripes = false, truncateContent = true, shouldBlockNavigation, layout = "fixed" } = _a, rest = __rest(_a, ["className", "rowDensity", "withKeyboardNav", "zebraStripes", "truncateContent", "shouldBlockNavigation", "layout"]);
128
+ function TableElementWrapper({ children, enabled, shouldBlockNavigation, }) {
129
+ const [applyStickyStyles, setApplyStickyStyles] = (0, react_1.useState)(false);
130
+ const tableWrapperRef = (0, react_1.useRef)(null);
131
+ const tableRef = (0, react_1.useRef)(null);
132
+ const rafRef = (0, react_1.useRef)(null);
82
133
  const { tabIndex, setTableRef } = (0, useTableKeyboardNav_1.useTableKeyboardNav)({
83
- enabled: withKeyboardNav,
134
+ enabled,
84
135
  shouldBlockNavigation,
85
136
  });
86
- const mergedRef = (0, hooks_1.useMergeRefs)(forwardedRef, setTableRef);
87
- return (react_1.default.createElement(DataTableRoot_context_1.DataTableContextProvider, { layout: layout, withKeyboardNav: withKeyboardNav, selectionState: useTableSelection_1.noSelectionState, stickySelection: false, stickyHeader: true, tableId: (0, utils_external_1.useId)(), showLoadingSkeletons: false, onRowClick: undefined, disableRowSelectionOnClick: false, showLoadingOverlay: false, columns: [] },
88
- react_1.default.createElement(useTableExpansion_1.DataTableExpansionProvider, null,
89
- react_1.default.createElement("div", { className: "aksel-data-table__border-wrapper" },
90
- react_1.default.createElement("div", { className: "aksel-data-table__scroll-wrapper" },
91
- 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 })))))));
92
- });
137
+ const mergedTableRefs = (0, hooks_1.useMergeRefs)(tableRef, setTableRef);
138
+ const updateStickyStyles = (0, react_1.useCallback)(() => {
139
+ if (!tableWrapperRef.current) {
140
+ return;
141
+ }
142
+ const doesWrapperHasScroll = tableWrapperRef.current.scrollWidth > tableWrapperRef.current.clientWidth;
143
+ setApplyStickyStyles(doesWrapperHasScroll);
144
+ }, []);
145
+ const scheduleStickyStylesUpdate = (0, react_1.useCallback)(() => {
146
+ if (rafRef.current !== null) {
147
+ return;
148
+ }
149
+ rafRef.current = requestAnimationFrame(() => {
150
+ rafRef.current = null;
151
+ updateStickyStyles();
152
+ });
153
+ }, [updateStickyStyles]);
154
+ (0, react_1.useEffect)(() => {
155
+ const tableWrapperElement = tableWrapperRef.current;
156
+ if (!tableWrapperElement) {
157
+ return;
158
+ }
159
+ const handleResize = () => scheduleStickyStylesUpdate();
160
+ window.addEventListener("resize", handleResize);
161
+ let resizeObserver;
162
+ if (typeof ResizeObserver !== "undefined") {
163
+ resizeObserver = new ResizeObserver(handleResize);
164
+ resizeObserver.observe(tableWrapperElement);
165
+ if (tableRef.current) {
166
+ resizeObserver.observe(tableRef.current);
167
+ }
168
+ }
169
+ scheduleStickyStylesUpdate();
170
+ return () => {
171
+ window.removeEventListener("resize", handleResize);
172
+ resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
173
+ if (rafRef.current !== null) {
174
+ cancelAnimationFrame(rafRef.current);
175
+ rafRef.current = null;
176
+ }
177
+ };
178
+ }, [scheduleStickyStylesUpdate]);
179
+ return (react_1.default.createElement("div", { className: "aksel-data-table__border-wrapper" },
180
+ react_1.default.createElement("div", { ref: tableWrapperRef, className: "aksel-data-table__scroll-wrapper" },
181
+ react_1.default.createElement(Slot_1.Slot, { tabIndex: tabIndex,
182
+ /* @ts-expect-error Ref is not typed correctly to handle this case */
183
+ ref: mergedTableRefs, "data-scroll": applyStickyStyles ? "true" : undefined }, children))));
184
+ }
185
+ function DataTableTBodyContent({ loadingState, loadingRows, loadingLabel, emptyState, }) {
186
+ const { items, itemDetails } = (0, useTableItems_1.useTableItemsContext)();
187
+ const { columns, isLoading, fullWidthColSpan } = (0, DataTableRoot_context_1.useDataTableContext)();
188
+ if (isLoading && loadingState != null) {
189
+ return (react_1.default.createElement(DataTableLoadingState_1.DataTableLoadingState, { colSpan: fullWidthColSpan }, loadingState));
190
+ }
191
+ if (isLoading && loadingRows) {
192
+ return (react_1.default.createElement(react_1.default.Fragment, null,
193
+ react_1.default.createElement("tr", null,
194
+ react_1.default.createElement("td", { colSpan: fullWidthColSpan, className: "aksel-sr-only" }, loadingLabel)),
195
+ Array.from({ length: loadingRows }, (_, rowIndex) => (react_1.default.createElement(DataTableTr_1.DataTableTr, { key: `skeleton-row-${rowIndex}`, "aria-hidden": true }, columns.map(({ isSticky, colDef }, colDefIndex) => {
196
+ var _a;
197
+ return (react_1.default.createElement(DataTableBaseCell_1.DataTableBaseCell, { textAlign: (_a = colDef.align) !== null && _a !== void 0 ? _a : "left", key: colDef.id || colDefIndex, as: colDef.isRowHeader ? "th" : "td", isSticky: isSticky },
198
+ react_1.default.createElement(skeleton_1.Skeleton, { variant: "text" })));
199
+ }))))));
200
+ }
201
+ if (items.length === 0 && emptyState !== undefined) {
202
+ return (react_1.default.createElement(DataTableEmptyState_1.DataTableEmptyState, { colSpan: fullWidthColSpan }, emptyState));
203
+ }
204
+ const renderLoadingAnnouncement = isLoading && !loadingState && !loadingRows;
205
+ return (react_1.default.createElement(react_1.default.Fragment, null,
206
+ renderLoadingAnnouncement && (react_1.default.createElement("tr", null,
207
+ react_1.default.createElement("td", { colSpan: fullWidthColSpan, className: "aksel-sr-only" }, loadingLabel))),
208
+ items.map((rowData) => {
209
+ const details = itemDetails.get(rowData);
210
+ /* Should in theory be impossible. Look about typing this? */
211
+ if (!details) {
212
+ return null;
213
+ }
214
+ const hasSubRows = details.children.length > 0;
215
+ return (react_1.default.createElement(react_1.default.Fragment, { key: details.id },
216
+ react_1.default.createElement(DataTableTr_1.DataTableTr, { rowId: details.id }, columns.map(({ isSticky, colDef }, colDefIndex) => {
217
+ var _a;
218
+ const renderNestedToggle = colDefIndex === 0 && hasSubRows;
219
+ const renderNestedIndent = colDefIndex === 0 && (details.level > 0 || hasSubRows);
220
+ const style = {
221
+ "--__axc-data-table-nested-depth": details.level,
222
+ };
223
+ return (react_1.default.createElement(DataTableBaseCell_1.DataTableBaseCell, { textAlign: (_a = colDef.align) !== null && _a !== void 0 ? _a : "left", key: colDef.id || colDefIndex, as: colDef.isRowHeader ? "th" : "td", isSticky: isSticky, "data-nested": renderNestedIndent || undefined, style: style },
224
+ renderNestedToggle && (react_1.default.createElement(DataTableSubRowToggle_1.DataTableSubRowToggle, { details: details })),
225
+ colDef.cell(rowData)));
226
+ })),
227
+ react_1.default.createElement(DataTableDetailsPanelRow_1.DataTableDetailsPanelRow, { rowId: details.id, rowData: rowData })));
228
+ })));
229
+ }
230
+ const DataTable = (0, react_1.forwardRef)(DataTableInner);
93
231
  exports.DataTable = DataTable;
94
- DataTable.Caption = DataTableCaption_1.DataTableCaption;
95
- DataTable.Thead = DataTableThead_1.DataTableThead;
96
- DataTable.Tbody = DataTableTbody_1.DataTableTbody;
97
- DataTable.Th = DataTableTh_1.DataTableTh;
98
- DataTable.Tr = DataTableTr_1.DataTableTr;
99
- DataTable.Td = DataTableTd_1.DataTableTd;
100
- DataTable.Tfoot = DataTableTfoot_1.DataTableTfoot;
101
- DataTable.EmptyState = DataTableEmptyState_1.DataTableEmptyState;
102
- DataTable.LoadingState = DataTableLoadingState_1.DataTableLoadingState;
103
232
  exports.default = DataTable;
104
233
  //# sourceMappingURL=DataTableRoot.js.map
@@ -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;AA2QnC,iGA7QA,mCAAgB,OA6QA;AA1QlB,4EAG4C;AAwQ1C,oGA1QA,yCAAmB,OA0QA;AAvQrB,kEAAwE;AACxE,sEAAmE;AACnE,kEAGoC;AACpC,kFAGgD;AA+P9C,sGAjQA,6CAAqB,OAiQA;AA9PvB,4DAGiC;AA4P/B,+FA9PA,+BAAc,OA8PA;AA3PhB,mDAAuE;AA4PrE,4FA5PO,yBAAW,OA4PP;AA3Pb,4DAGiC;AAyP/B,+FA3PA,+BAAc,OA2PA;AAxPhB,mDAAuE;AAyPrE,4FAzPO,yBAAW,OAyPP;AAxPb,4DAGiC;AAsP/B,+FAxPA,+BAAc,OAwPA;AArPhB,mDAAuE;AAsPrE,4FAtPO,yBAAW,OAsPP;AArPb,mEAAmE;AAmKnE;;;;;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,IAAI,EAClB,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;YACzB,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"}
1
+ {"version":3,"file":"DataTableRoot.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataTableRoot.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,177 @@
1
+ import React from "react";
2
+ import { DataTableCaption, type DataTableCaptionProps } from "../caption/DataTableCaption";
3
+ import { DataTableEmptyState, type DataTableEmptyStateProps } from "../empty-state/DataTableEmptyState";
4
+ import { type SelectionProps } from "../hooks/useTableSelection";
5
+ import { DataTableLoadingState, type DataTableLoadingStateProps } from "../loading-state/DataTableLoadingState";
6
+ import { DataTableTbody, type DataTableTbodyProps } from "../tbody/DataTableTbody";
7
+ import { DataTableTd, type DataTableTdProps } from "../td/DataTableTd";
8
+ import { DataTableTfoot, type DataTableTfootProps } from "../tfoot/DataTableTfoot";
9
+ import { DataTableTh, type DataTableThProps } from "../th/DataTableTh";
10
+ import { DataTableThead, type DataTableTheadProps } from "../thead/DataTableThead";
11
+ import { DataTableTr, type DataTableTrProps } from "../tr/DataTableTr";
12
+ interface DataTableProps extends React.HTMLAttributes<HTMLTableElement>, SelectionProps {
13
+ children: React.ReactNode;
14
+ /**
15
+ * Controls vertical cell padding.
16
+ * @default "normal"
17
+ */
18
+ rowDensity?: "condensed" | "normal" | "spacious";
19
+ /**
20
+ * Zebra striped table
21
+ * @default false
22
+ */
23
+ zebraStripes?: boolean;
24
+ /**
25
+ * Truncate content in cells and show ellipsis for overflowed text.
26
+ *
27
+ * **NB:** When using `layout="auto"`, you have to manually set a `maxWidth` on columns that should be truncated.
28
+ * @default true
29
+ */
30
+ truncateContent?: boolean;
31
+ /**
32
+ * Enables keyboard navigation for table rows and cells.
33
+ * @default false
34
+ */
35
+ withKeyboardNav?: boolean;
36
+ /**
37
+ * Custom callback to determine if navigation should be blocked.
38
+ * Called before default blocking logic.
39
+ * Requires `withKeyboardNav` to be `true`.
40
+ */
41
+ shouldBlockNavigation?: (event: KeyboardEvent) => boolean;
42
+ /**
43
+ * Controls table layout.
44
+ *
45
+ * ### fixed
46
+ * Gives you full control of column widths. This is required for resizable columns.
47
+ *
48
+ * ### auto
49
+ * Makes the columns resize automatically based on the content.
50
+ * The table will take up at least 100% of available width.
51
+ *
52
+ * **NB:** When using this with `truncateContent`, you have to manually
53
+ * set a `contentMaxWidth` on cells that should be truncated.
54
+ * @default "fixed"
55
+ */
56
+ layout?: "fixed" | "auto";
57
+ }
58
+ interface DataTableRootComponent extends React.ForwardRefExoticComponent<DataTableProps & React.RefAttributes<HTMLTableElement>> {
59
+ /**
60
+ * @see 🏷️ {@link DataTableCaptionProps}
61
+ * @example
62
+ * ```jsx
63
+ * <DataTable>
64
+ * <DataTable.Caption>
65
+ * Lorem ipsum
66
+ * </DataTable.Caption
67
+ * </DataTable>
68
+ * ```
69
+ */
70
+ Caption: typeof DataTableCaption;
71
+ /**
72
+ * @see 🏷️ {@link DataTableTheadProps}
73
+ * @example
74
+ * ```jsx
75
+ * <DataTable>
76
+ * <DataTable.Thead>
77
+ * ... TODO
78
+ * </DataTable.Thead>
79
+ * </DataTable>
80
+ * ```
81
+ */
82
+ Thead: typeof DataTableThead;
83
+ /**
84
+ * @see 🏷️ {@link DataTableTbodyProps}
85
+ * @example
86
+ * ```jsx
87
+ * <DataTable>
88
+ * <DataTable.Tbody>
89
+ * ... TODO
90
+ * </DataTable.Tbody>
91
+ * </DataTable>
92
+ * ```
93
+ */
94
+ Tbody: typeof DataTableTbody;
95
+ /**
96
+ * @see 🏷️ {@link DataTableTrProps}
97
+ * @example
98
+ * ```jsx
99
+ * <DataTable>
100
+ * <DataTable.Tr>
101
+ * ... TODO
102
+ * </DataTable.Tr
103
+ * </DataTable>
104
+ * ```
105
+ */
106
+ Tr: typeof DataTableTr;
107
+ /**
108
+ * @see 🏷️ {@link DataTableThProps}
109
+ * @example
110
+ * ```jsx
111
+ * ```
112
+ */
113
+ Th: typeof DataTableTh;
114
+ /**
115
+ * @see 🏷️ {@link DataTableTdProps}
116
+ * @example
117
+ * ```jsx
118
+ * <DataTable>
119
+ * <DataTable.Tbody>
120
+ * <DataTable.Td>
121
+ * Lorem ipsum
122
+ * </DataTable.Td>
123
+ * <DataTable.Td>
124
+ * Dolor sit amet
125
+ * </DataTable.Td>
126
+ * </DataTable.Tbody>
127
+ * </DataTable>
128
+ * ```
129
+ */
130
+ Td: typeof DataTableTd;
131
+ /**
132
+ * @see 🏷️ {@link DataTableTfootProps}
133
+ * @example
134
+ * ```jsx
135
+ * <DataTable>
136
+ * <DataTable.Tfoot>
137
+ * ...
138
+ * </DataTable.Tfoot>
139
+ * </DataTable>
140
+ * ```
141
+ */
142
+ Tfoot: typeof DataTableTfoot;
143
+ /**
144
+ * @see 🏷️ {@link DataTableEmptyStateProps}
145
+ * @example
146
+ * ```jsx
147
+ * <DataTable>
148
+ * <DataTable.TBody>
149
+ * <DataTable.EmptyState />
150
+ * </DataTable.TBody>
151
+ * </DataTable>
152
+ * ```
153
+ */
154
+ EmptyState: typeof DataTableEmptyState;
155
+ /**
156
+ * @see 🏷️ {@link DataTableEmptyStateProps}
157
+ * @example
158
+ * ```jsx
159
+ * <DataTable>
160
+ * <DataTable.TBody>
161
+ * <DataTable.LoadingState />
162
+ * </DataTable.TBody>
163
+ * </DataTable>
164
+ * ```
165
+ */
166
+ LoadingState: typeof DataTableLoadingState;
167
+ }
168
+ /**
169
+ * TODO Component description etc.
170
+ *
171
+ * **NB:** To get sticky headers, you have to set a height restriction on the table container. You can use VStack for this:
172
+ * TODO example
173
+ */
174
+ declare const DataTable: DataTableRootComponent;
175
+ export { DataTable, DataTableCaption, DataTableEmptyState, DataTableLoadingState, DataTableTbody, DataTableTd, DataTableTfoot, DataTableTh, DataTableThead, DataTableTr, };
176
+ export default DataTable;
177
+ export type { DataTableCaptionProps, DataTableEmptyStateProps, DataTableLoadingStateProps, DataTableProps, DataTableTbodyProps, DataTableTdProps, DataTableTfootProps, DataTableTheadProps, DataTableThProps, DataTableTrProps, };
@@ -0,0 +1,104 @@
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.DataTableTr = exports.DataTableThead = exports.DataTableTh = exports.DataTableTfoot = exports.DataTableTd = exports.DataTableTbody = exports.DataTableLoadingState = exports.DataTableEmptyState = exports.DataTableCaption = exports.DataTable = void 0;
48
+ const react_1 = __importStar(require("react"));
49
+ const utils_external_1 = require("../../../utils-external");
50
+ const helpers_1 = require("../../../utils/helpers");
51
+ const hooks_1 = require("../../../utils/hooks");
52
+ const DataTableCaption_1 = require("../caption/DataTableCaption");
53
+ Object.defineProperty(exports, "DataTableCaption", { enumerable: true, get: function () { return DataTableCaption_1.DataTableCaption; } });
54
+ const DataTableEmptyState_1 = require("../empty-state/DataTableEmptyState");
55
+ Object.defineProperty(exports, "DataTableEmptyState", { enumerable: true, get: function () { return DataTableEmptyState_1.DataTableEmptyState; } });
56
+ const useTableDetailsPanel_1 = require("../hooks/useTableDetailsPanel");
57
+ const useTableKeyboardNav_1 = require("../hooks/useTableKeyboardNav");
58
+ const useTableSelection_1 = require("../hooks/useTableSelection");
59
+ const DataTableLoadingState_1 = require("../loading-state/DataTableLoadingState");
60
+ Object.defineProperty(exports, "DataTableLoadingState", { enumerable: true, get: function () { return DataTableLoadingState_1.DataTableLoadingState; } });
61
+ const DataTableTbody_1 = require("../tbody/DataTableTbody");
62
+ Object.defineProperty(exports, "DataTableTbody", { enumerable: true, get: function () { return DataTableTbody_1.DataTableTbody; } });
63
+ const DataTableTd_1 = require("../td/DataTableTd");
64
+ Object.defineProperty(exports, "DataTableTd", { enumerable: true, get: function () { return DataTableTd_1.DataTableTd; } });
65
+ const DataTableTfoot_1 = require("../tfoot/DataTableTfoot");
66
+ Object.defineProperty(exports, "DataTableTfoot", { enumerable: true, get: function () { return DataTableTfoot_1.DataTableTfoot; } });
67
+ const DataTableTh_1 = require("../th/DataTableTh");
68
+ Object.defineProperty(exports, "DataTableTh", { enumerable: true, get: function () { return DataTableTh_1.DataTableTh; } });
69
+ const DataTableThead_1 = require("../thead/DataTableThead");
70
+ Object.defineProperty(exports, "DataTableThead", { enumerable: true, get: function () { return DataTableThead_1.DataTableThead; } });
71
+ const DataTableTr_1 = require("../tr/DataTableTr");
72
+ Object.defineProperty(exports, "DataTableTr", { enumerable: true, get: function () { return DataTableTr_1.DataTableTr; } });
73
+ const DataTableRoot_context_1 = require("./DataTableRoot.context");
74
+ /**
75
+ * TODO Component description etc.
76
+ *
77
+ * **NB:** To get sticky headers, you have to set a height restriction on the table container. You can use VStack for this:
78
+ * TODO example
79
+ */
80
+ const DataTable = (0, react_1.forwardRef)((_a, forwardedRef) => {
81
+ var { className, rowDensity = "normal", withKeyboardNav = false, zebraStripes = false, truncateContent = true, shouldBlockNavigation, layout = "fixed" } = _a, rest = __rest(_a, ["className", "rowDensity", "withKeyboardNav", "zebraStripes", "truncateContent", "shouldBlockNavigation", "layout"]);
82
+ const { tabIndex, setTableRef } = (0, useTableKeyboardNav_1.useTableKeyboardNav)({
83
+ enabled: withKeyboardNav,
84
+ shouldBlockNavigation,
85
+ });
86
+ const mergedRef = (0, hooks_1.useMergeRefs)(forwardedRef, setTableRef);
87
+ return (react_1.default.createElement(DataTableRoot_context_1.DataTableContextProvider, { layout: layout, withKeyboardNav: withKeyboardNav, selectionState: useTableSelection_1.noSelectionState, stickySelection: false, stickyHeader: true, tableId: (0, utils_external_1.useId)(), showLoadingSkeletons: false, onRowClick: undefined, showLoadingOverlay: false, columns: [], fullWidthColSpan: 9999 },
88
+ react_1.default.createElement(useTableDetailsPanel_1.DataTableDetailsPanelProvider, null,
89
+ react_1.default.createElement("div", { className: "aksel-data-table__border-wrapper" },
90
+ react_1.default.createElement("div", { className: "aksel-data-table__scroll-wrapper" },
91
+ 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 })))))));
92
+ });
93
+ exports.DataTable = DataTable;
94
+ DataTable.Caption = DataTableCaption_1.DataTableCaption;
95
+ DataTable.Thead = DataTableThead_1.DataTableThead;
96
+ DataTable.Tbody = DataTableTbody_1.DataTableTbody;
97
+ DataTable.Th = DataTableTh_1.DataTableTh;
98
+ DataTable.Tr = DataTableTr_1.DataTableTr;
99
+ DataTable.Td = DataTableTd_1.DataTableTd;
100
+ DataTable.Tfoot = DataTableTfoot_1.DataTableTfoot;
101
+ DataTable.EmptyState = DataTableEmptyState_1.DataTableEmptyState;
102
+ DataTable.LoadingState = DataTableLoadingState_1.DataTableLoadingState;
103
+ exports.default = DataTable;
104
+ //# sourceMappingURL=DataTableRoot.legacy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTableRoot.legacy.js","sourceRoot":"","sources":["../../../../src/data/table/root/DataTableRoot.legacy.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA0C;AAC1C,4DAAgD;AAChD,oDAA4C;AAC5C,gDAAoD;AACpD,kEAGqC;AA2QnC,iGA7QA,mCAAgB,OA6QA;AA1QlB,4EAG4C;AAwQ1C,oGA1QA,yCAAmB,OA0QA;AAvQrB,wEAA8E;AAC9E,sEAAmE;AACnE,kEAGoC;AACpC,kFAGgD;AA+P9C,sGAjQA,6CAAqB,OAiQA;AA9PvB,4DAGiC;AA4P/B,+FA9PA,+BAAc,OA8PA;AA3PhB,mDAAuE;AA4PrE,4FA5PO,yBAAW,OA4PP;AA3Pb,4DAGiC;AAyP/B,+FA3PA,+BAAc,OA2PA;AAxPhB,mDAAuE;AAyPrE,4FAzPO,yBAAW,OAyPP;AAxPb,4DAGiC;AAsP/B,+FAxPA,+BAAc,OAwPA;AArPhB,mDAAuE;AAsPrE,4FAtPO,yBAAW,OAsPP;AArPb,mEAAmE;AAmKnE;;;;;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,IAAI,EAClB,OAAO,EAAE,IAAA,sBAAK,GAAE,EAChB,oBAAoB,EAAE,KAAK,EAC3B,UAAU,EAAE,SAAS,EACrB,kBAAkB,EAAE,KAAK,EACzB,OAAO,EAAE,EAAE,EACX,gBAAgB,EAAE,IAAI;QAEtB,8BAAC,oDAA6B;YAC5B,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,CACwB,CACP,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"}
@@ -0,0 +1,6 @@
1
+ import React from "react";
2
+ import { type ItemDetail } from "../hooks/useTableItems";
3
+ declare function DataTableSubRowToggle({ details }: {
4
+ details: ItemDetail<any>;
5
+ }): React.JSX.Element;
6
+ export { DataTableSubRowToggle };
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DataTableSubRowToggle = DataTableSubRowToggle;
7
+ const react_1 = __importDefault(require("react"));
8
+ const aksel_icons_1 = require("@navikt/aksel-icons");
9
+ const button_1 = require("../../../button");
10
+ const useTableItems_1 = require("../hooks/useTableItems");
11
+ function DataTableSubRowToggle({ details }) {
12
+ const { isSubRowExpanded, onExpandedRowIdsChange } = (0, useTableItems_1.useTableItemsContext)();
13
+ const subRows = details.children;
14
+ const hasSubRows = subRows && subRows.length > 0;
15
+ const isRowExpanded = isSubRowExpanded(details.id);
16
+ 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) => {
17
+ e.stopPropagation();
18
+ onExpandedRowIdsChange(details.id);
19
+ }, "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 })) }))));
20
+ }
21
+ //# sourceMappingURL=DataTableSubRowToggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DataTableSubRowToggle.js","sourceRoot":"","sources":["../../../../src/data/table/sub-row-toggle/DataTableSubRowToggle.tsx"],"names":[],"mappings":";;;;;AAsCS,sDAAqB;AAtC9B,kDAA0B;AAC1B,qDAAwE;AACxE,4CAAyC;AACzC,0DAA+E;AAE/E,SAAS,qBAAqB,CAAC,EAAE,OAAO,EAAgC;IACtE,MAAM,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,GAAG,IAAA,oCAAoB,GAAE,CAAC;IAE5E,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,sBAAsB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QACrC,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"}