@navikt/ds-react 8.10.2 → 8.10.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (200) 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 +4 -2
  8. package/cjs/data/table/column-header/DataTableColumnHeader.js.map +1 -1
  9. package/cjs/data/table/column-header/useTableColumnResize.d.ts +39 -14
  10. package/cjs/data/table/column-header/useTableColumnResize.js +37 -39
  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 +13 -5
  16. package/cjs/data/table/helpers/collectTableRowEntries.js +26 -19
  17. package/cjs/data/table/helpers/collectTableRowEntries.js.map +1 -1
  18. package/cjs/data/table/helpers/selection/SelectionSubtreeHelper.d.ts +46 -0
  19. package/cjs/data/table/helpers/selection/SelectionSubtreeHelper.js +112 -0
  20. package/cjs/data/table/helpers/selection/SelectionSubtreeHelper.js.map +1 -0
  21. package/cjs/data/table/helpers/selection/getMultipleSelectProps.d.ts +3 -2
  22. package/cjs/data/table/helpers/selection/getMultipleSelectProps.js +43 -19
  23. package/cjs/data/table/helpers/selection/getMultipleSelectProps.js.map +1 -1
  24. package/cjs/data/table/helpers/selection/selection.types.d.ts +1 -0
  25. package/cjs/data/table/helpers/table-keyboard.d.ts +1 -2
  26. package/cjs/data/table/helpers/table-keyboard.js +1 -2
  27. package/cjs/data/table/helpers/table-keyboard.js.map +1 -1
  28. package/cjs/data/table/hooks/useColumnOptions.js +18 -5
  29. package/cjs/data/table/hooks/useColumnOptions.js.map +1 -1
  30. package/cjs/data/table/hooks/useTableDetailsPanel.d.ts +62 -0
  31. package/cjs/data/table/hooks/{useTableExpansion.js → useTableDetailsPanel.js} +26 -19
  32. package/cjs/data/table/hooks/useTableDetailsPanel.js.map +1 -0
  33. package/cjs/data/table/hooks/useTableItems.d.ts +18 -17
  34. package/cjs/data/table/hooks/useTableItems.js +27 -15
  35. package/cjs/data/table/hooks/useTableItems.js.map +1 -1
  36. package/cjs/data/table/hooks/useTableSelection.d.ts +6 -3
  37. package/cjs/data/table/hooks/useTableSelection.js +10 -4
  38. package/cjs/data/table/hooks/useTableSelection.js.map +1 -1
  39. package/cjs/data/table/index.d.ts +1 -2
  40. package/cjs/data/table/index.js +22 -12
  41. package/cjs/data/table/index.js.map +1 -1
  42. package/cjs/data/table/root/DataTable.types.d.ts +12 -10
  43. package/cjs/data/table/root/DataTableRoot.context.d.ts +5 -1
  44. package/cjs/data/table/root/DataTableRoot.context.js.map +1 -1
  45. package/cjs/data/table/root/DataTableRoot.d.ts +79 -115
  46. package/cjs/data/table/root/DataTableRoot.js +167 -39
  47. package/cjs/data/table/root/DataTableRoot.js.map +1 -1
  48. package/cjs/data/table/root/DataTableRoot.legacy.d.ts +177 -0
  49. package/cjs/data/table/root/DataTableRoot.legacy.js +104 -0
  50. package/cjs/data/table/root/DataTableRoot.legacy.js.map +1 -0
  51. package/cjs/data/table/sub-row-toggle/DataTableSubRowToggle.d.ts +6 -0
  52. package/cjs/data/table/sub-row-toggle/DataTableSubRowToggle.js +21 -0
  53. package/cjs/data/table/sub-row-toggle/DataTableSubRowToggle.js.map +1 -0
  54. package/cjs/data/table/tr/DataTableTr.js +11 -11
  55. package/cjs/data/table/tr/DataTableTr.js.map +1 -1
  56. package/cjs/form/checkbox/Checkbox.js +1 -0
  57. package/cjs/form/checkbox/Checkbox.js.map +1 -1
  58. package/cjs/form/radio/Radio.js +7 -1
  59. package/cjs/form/radio/Radio.js.map +1 -1
  60. package/cjs/modal/types.d.ts +8 -4
  61. package/cjs/utils/components/dismissablelayer/DismissableLayer.js +1 -1
  62. package/cjs/utils/components/dismissablelayer/DismissableLayer.js.map +1 -1
  63. package/cjs/utils/components/floating/Floating.d.ts +16 -1
  64. package/cjs/utils/components/floating/Floating.js +50 -13
  65. package/cjs/utils/components/floating/Floating.js.map +1 -1
  66. package/cjs/utils/components/floating-menu/Menu.js +1 -1
  67. package/cjs/utils/components/floating-menu/Menu.js.map +1 -1
  68. package/cjs/utils/helpers/create-strict-context.js +1 -1
  69. package/cjs/utils/helpers/create-strict-context.js.map +1 -1
  70. package/cjs/utils/hooks/useControllableState.d.ts +5 -5
  71. package/cjs/utils/hooks/useControllableState.js.map +1 -1
  72. package/cjs/utils/hooks/useValueAsRef.js +1 -1
  73. package/cjs/utils/hooks/useValueAsRef.js.map +1 -1
  74. package/cjs/utils-external/hooks/useId.js +1 -1
  75. package/cjs/utils-external/hooks/useId.js.map +1 -1
  76. package/esm/action-menu/ActionMenu.js +1 -1
  77. package/esm/action-menu/ActionMenu.js.map +1 -1
  78. package/esm/data/stories/Data.test-data.d.ts +24 -0
  79. package/esm/data/stories/Data.test-data.js +1607 -0
  80. package/esm/data/stories/Data.test-data.js.map +1 -0
  81. package/esm/data/table/column-header/DataTableColumnHeader.d.ts +4 -1
  82. package/esm/data/table/column-header/DataTableColumnHeader.js +4 -2
  83. package/esm/data/table/column-header/DataTableColumnHeader.js.map +1 -1
  84. package/esm/data/table/column-header/useTableColumnResize.d.ts +39 -14
  85. package/esm/data/table/column-header/useTableColumnResize.js +38 -40
  86. package/esm/data/table/column-header/useTableColumnResize.js.map +1 -1
  87. package/esm/data/table/details-panel-row/DataTableDetailsPanelRow.d.ts +6 -0
  88. package/esm/data/table/details-panel-row/DataTableDetailsPanelRow.js +27 -0
  89. package/esm/data/table/details-panel-row/DataTableDetailsPanelRow.js.map +1 -0
  90. package/esm/data/table/helpers/collectTableRowEntries.d.ts +13 -5
  91. package/esm/data/table/helpers/collectTableRowEntries.js +26 -19
  92. package/esm/data/table/helpers/collectTableRowEntries.js.map +1 -1
  93. package/esm/data/table/helpers/selection/SelectionSubtreeHelper.d.ts +46 -0
  94. package/esm/data/table/helpers/selection/SelectionSubtreeHelper.js +109 -0
  95. package/esm/data/table/helpers/selection/SelectionSubtreeHelper.js.map +1 -0
  96. package/esm/data/table/helpers/selection/getMultipleSelectProps.d.ts +3 -2
  97. package/esm/data/table/helpers/selection/getMultipleSelectProps.js +43 -19
  98. package/esm/data/table/helpers/selection/getMultipleSelectProps.js.map +1 -1
  99. package/esm/data/table/helpers/selection/selection.types.d.ts +1 -0
  100. package/esm/data/table/helpers/table-keyboard.d.ts +1 -2
  101. package/esm/data/table/helpers/table-keyboard.js +1 -2
  102. package/esm/data/table/helpers/table-keyboard.js.map +1 -1
  103. package/esm/data/table/hooks/useColumnOptions.js +18 -5
  104. package/esm/data/table/hooks/useColumnOptions.js.map +1 -1
  105. package/esm/data/table/hooks/useTableDetailsPanel.d.ts +62 -0
  106. package/esm/data/table/hooks/useTableDetailsPanel.js +58 -0
  107. package/esm/data/table/hooks/useTableDetailsPanel.js.map +1 -0
  108. package/esm/data/table/hooks/useTableItems.d.ts +18 -17
  109. package/esm/data/table/hooks/useTableItems.js +27 -15
  110. package/esm/data/table/hooks/useTableItems.js.map +1 -1
  111. package/esm/data/table/hooks/useTableSelection.d.ts +6 -3
  112. package/esm/data/table/hooks/useTableSelection.js +10 -4
  113. package/esm/data/table/hooks/useTableSelection.js.map +1 -1
  114. package/esm/data/table/index.d.ts +1 -2
  115. package/esm/data/table/index.js +21 -1
  116. package/esm/data/table/index.js.map +1 -1
  117. package/esm/data/table/root/DataTable.types.d.ts +12 -10
  118. package/esm/data/table/root/DataTableRoot.context.d.ts +5 -1
  119. package/esm/data/table/root/DataTableRoot.context.js.map +1 -1
  120. package/esm/data/table/root/DataTableRoot.d.ts +79 -115
  121. package/esm/data/table/root/DataTableRoot.js +174 -37
  122. package/esm/data/table/root/DataTableRoot.js.map +1 -1
  123. package/esm/data/table/root/DataTableRoot.legacy.d.ts +177 -0
  124. package/esm/data/table/root/DataTableRoot.legacy.js +59 -0
  125. package/esm/data/table/root/DataTableRoot.legacy.js.map +1 -0
  126. package/esm/data/table/sub-row-toggle/DataTableSubRowToggle.d.ts +6 -0
  127. package/esm/data/table/sub-row-toggle/DataTableSubRowToggle.js +16 -0
  128. package/esm/data/table/sub-row-toggle/DataTableSubRowToggle.js.map +1 -0
  129. package/esm/data/table/tr/DataTableTr.js +11 -11
  130. package/esm/data/table/tr/DataTableTr.js.map +1 -1
  131. package/esm/form/checkbox/Checkbox.js +1 -0
  132. package/esm/form/checkbox/Checkbox.js.map +1 -1
  133. package/esm/form/radio/Radio.js +7 -1
  134. package/esm/form/radio/Radio.js.map +1 -1
  135. package/esm/modal/types.d.ts +8 -4
  136. package/esm/utils/components/dismissablelayer/DismissableLayer.js +1 -1
  137. package/esm/utils/components/dismissablelayer/DismissableLayer.js.map +1 -1
  138. package/esm/utils/components/floating/Floating.d.ts +16 -1
  139. package/esm/utils/components/floating/Floating.js +48 -13
  140. package/esm/utils/components/floating/Floating.js.map +1 -1
  141. package/esm/utils/components/floating-menu/Menu.js +2 -2
  142. package/esm/utils/components/floating-menu/Menu.js.map +1 -1
  143. package/esm/utils/helpers/create-strict-context.js +1 -1
  144. package/esm/utils/helpers/create-strict-context.js.map +1 -1
  145. package/esm/utils/hooks/useControllableState.d.ts +5 -5
  146. package/esm/utils/hooks/useControllableState.js.map +1 -1
  147. package/esm/utils/hooks/useValueAsRef.js +1 -1
  148. package/esm/utils/hooks/useValueAsRef.js.map +1 -1
  149. package/esm/utils-external/hooks/useId.js +1 -1
  150. package/esm/utils-external/hooks/useId.js.map +1 -1
  151. package/package.json +3 -3
  152. package/src/action-menu/ActionMenu.tsx +1 -1
  153. package/src/data/stories/Data.test-data.tsx +1703 -0
  154. package/src/data/table/column-header/DataTableColumnHeader.tsx +11 -7
  155. package/src/data/table/column-header/useTableColumnResize.ts +95 -54
  156. package/src/data/table/details-panel-row/DataTableDetailsPanelRow.tsx +53 -0
  157. package/src/data/table/helpers/collectTableRowEntries.ts +55 -31
  158. package/src/data/table/helpers/selection/SelectionSubtreeHelper.test.ts +66 -0
  159. package/src/data/table/helpers/selection/SelectionSubtreeHelper.ts +162 -0
  160. package/src/data/table/helpers/selection/getMultipleSelectProps.ts +57 -20
  161. package/src/data/table/helpers/selection/selection.types.ts +1 -0
  162. package/src/data/table/helpers/table-keyboard.ts +1 -2
  163. package/src/data/table/hooks/__tests__/useTableItems.test.ts +27 -6
  164. package/src/data/table/hooks/__tests__/useTableSelection.test.ts +182 -58
  165. package/src/data/table/hooks/useColumnOptions.ts +19 -5
  166. package/src/data/table/hooks/useTableDetailsPanel.tsx +182 -0
  167. package/src/data/table/hooks/useTableItems.ts +74 -60
  168. package/src/data/table/hooks/useTableSelection.ts +27 -12
  169. package/src/data/table/index.tsx +5 -3
  170. package/src/data/table/root/DataTable.types.ts +25 -10
  171. package/src/data/table/root/DataTableRoot.context.ts +5 -1
  172. package/src/data/table/root/DataTableRoot.legacy.tsx +297 -0
  173. package/src/data/table/root/DataTableRoot.tsx +483 -219
  174. package/src/data/table/sub-row-toggle/DataTableSubRowToggle.tsx +39 -0
  175. package/src/data/table/tr/DataTableTr.tsx +14 -13
  176. package/src/form/checkbox/Checkbox.tsx +1 -0
  177. package/src/form/radio/Radio.tsx +7 -1
  178. package/src/modal/types.ts +8 -4
  179. package/src/utils/components/dismissablelayer/DismissableLayer.tsx +1 -1
  180. package/src/utils/components/floating/Floating.tsx +56 -13
  181. package/src/utils/components/floating-menu/Menu.tsx +4 -1
  182. package/src/utils/helpers/create-strict-context.tsx +1 -1
  183. package/src/utils/hooks/useControllableState.ts +11 -8
  184. package/src/utils/hooks/useValueAsRef.ts +1 -1
  185. package/src/utils-external/hooks/useId.ts +1 -1
  186. package/cjs/data/table/hooks/useTableExpansion.d.ts +0 -29
  187. package/cjs/data/table/hooks/useTableExpansion.js.map +0 -1
  188. package/cjs/data/table/root/DataTableAuto.d.ts +0 -174
  189. package/cjs/data/table/root/DataTableAuto.js +0 -206
  190. package/cjs/data/table/root/DataTableAuto.js.map +0 -1
  191. package/esm/data/table/hooks/useTableExpansion.d.ts +0 -29
  192. package/esm/data/table/hooks/useTableExpansion.js +0 -51
  193. package/esm/data/table/hooks/useTableExpansion.js.map +0 -1
  194. package/esm/data/table/root/DataTableAuto.d.ts +0 -174
  195. package/esm/data/table/root/DataTableAuto.js +0 -170
  196. package/esm/data/table/root/DataTableAuto.js.map +0 -1
  197. package/src/data/table/hooks/__tests__/useTableExpansion.test.tsx +0 -115
  198. package/src/data/table/hooks/useTableExpansion.tsx +0 -141
  199. package/src/data/table/root/DataTableAuto.test.tsx +0 -118
  200. package/src/data/table/root/DataTableAuto.tsx +0 -603
@@ -44,62 +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");
74
- const EMPTY_ITEM_DETAILS = new Map();
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
+ }
75
125
  /**
76
- * TODO Component description etc.
77
- *
78
- * **NB:** To get sticky headers, you have to set a height restriction on the table container. You can use VStack for this:
79
- * TODO example
126
+ * Temp optimization to avoid re-renders on every keyboard-move, selection change etc
80
127
  */
81
- const DataTable = (0, react_1.forwardRef)((_a, forwardedRef) => {
82
- 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);
83
133
  const { tabIndex, setTableRef } = (0, useTableKeyboardNav_1.useTableKeyboardNav)({
84
- enabled: withKeyboardNav,
134
+ enabled,
85
135
  shouldBlockNavigation,
86
136
  });
87
- const mergedRef = (0, hooks_1.useMergeRefs)(forwardedRef, setTableRef);
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 })))))));
93
- });
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);
94
231
  exports.DataTable = DataTable;
95
- DataTable.Caption = DataTableCaption_1.DataTableCaption;
96
- DataTable.Thead = DataTableThead_1.DataTableThead;
97
- DataTable.Tbody = DataTableTbody_1.DataTableTbody;
98
- DataTable.Th = DataTableTh_1.DataTableTh;
99
- DataTable.Tr = DataTableTr_1.DataTableTr;
100
- DataTable.Td = DataTableTd_1.DataTableTd;
101
- DataTable.Tfoot = DataTableTfoot_1.DataTableTfoot;
102
- DataTable.EmptyState = DataTableEmptyState_1.DataTableEmptyState;
103
- DataTable.LoadingState = DataTableLoadingState_1.DataTableLoadingState;
104
232
  exports.default = DataTable;
105
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;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"}
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"}