@navikt/ds-react 8.10.5 → 8.10.6

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 (223) hide show
  1. package/cjs/data/data-grid/index.d.ts +2 -0
  2. package/cjs/data/data-grid/index.js +7 -0
  3. package/cjs/data/data-grid/index.js.map +1 -0
  4. package/cjs/data/data-grid/root/DataGridRoot.context.d.ts +11 -0
  5. package/cjs/data/data-grid/root/DataGridRoot.context.js +11 -0
  6. package/cjs/data/data-grid/root/DataGridRoot.context.js.map +1 -0
  7. package/cjs/data/data-grid/root/DataGridRoot.d.ts +38 -0
  8. package/cjs/data/data-grid/root/DataGridRoot.js +68 -0
  9. package/cjs/data/data-grid/root/DataGridRoot.js.map +1 -0
  10. package/cjs/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js +0 -1
  11. package/cjs/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js.map +1 -1
  12. package/cjs/data/drag-and-drop/root/DragAndDropRoot.d.ts +5 -5
  13. package/cjs/data/drag-and-drop/root/DragAndDropRoot.js +4 -27
  14. package/cjs/data/drag-and-drop/root/DragAndDropRoot.js.map +1 -1
  15. package/cjs/data/stories/Data.test-data.d.ts +2 -5
  16. package/cjs/data/stories/Data.test-data.js +30 -38
  17. package/cjs/data/stories/Data.test-data.js.map +1 -1
  18. package/cjs/data/table/base-cell/DataTableBaseCell.d.ts +15 -15
  19. package/cjs/data/table/base-cell/DataTableBaseCell.js +4 -8
  20. package/cjs/data/table/base-cell/DataTableBaseCell.js.map +1 -1
  21. package/cjs/data/table/column-header/DataTableColumnHeader.d.ts +24 -6
  22. package/cjs/data/table/column-header/DataTableColumnHeader.js +22 -27
  23. package/cjs/data/table/column-header/DataTableColumnHeader.js.map +1 -1
  24. package/cjs/data/table/column-header/useTableColumnResize.d.ts +19 -29
  25. package/cjs/data/table/column-header/useTableColumnResize.js +24 -22
  26. package/cjs/data/table/column-header/useTableColumnResize.js.map +1 -1
  27. package/cjs/data/table/details-panel-row/DataTableDetailsPanelRow.d.ts +1 -1
  28. package/cjs/data/table/details-panel-row/DataTableDetailsPanelRow.js +2 -2
  29. package/cjs/data/table/details-panel-row/DataTableDetailsPanelRow.js.map +1 -1
  30. package/cjs/data/table/helpers/collectTableRowEntries.d.ts +2 -2
  31. package/cjs/data/table/helpers/selection/getMultipleSelectProps.d.ts +13 -11
  32. package/cjs/data/table/helpers/selection/getMultipleSelectProps.js +43 -53
  33. package/cjs/data/table/helpers/selection/getMultipleSelectProps.js.map +1 -1
  34. package/cjs/data/table/helpers/selection/getSingleSelectProps.d.ts +9 -8
  35. package/cjs/data/table/helpers/selection/getSingleSelectProps.js +23 -10
  36. package/cjs/data/table/helpers/selection/getSingleSelectProps.js.map +1 -1
  37. package/cjs/data/table/helpers/selection/selection.types.d.ts +19 -19
  38. package/cjs/data/table/helpers/selection/selection.utils.d.ts +21 -0
  39. package/cjs/data/table/helpers/selection/selection.utils.js +46 -0
  40. package/cjs/data/table/helpers/selection/selection.utils.js.map +1 -0
  41. package/cjs/data/table/hooks/useColumnOptions.d.ts +16 -5
  42. package/cjs/data/table/hooks/useColumnOptions.js +26 -8
  43. package/cjs/data/table/hooks/useColumnOptions.js.map +1 -1
  44. package/cjs/data/table/hooks/useTableDetailsPanel.d.ts +10 -13
  45. package/cjs/data/table/hooks/useTableDetailsPanel.js +6 -5
  46. package/cjs/data/table/hooks/useTableDetailsPanel.js.map +1 -1
  47. package/cjs/data/table/hooks/useTableItems.d.ts +29 -15
  48. package/cjs/data/table/hooks/useTableItems.js +2 -12
  49. package/cjs/data/table/hooks/useTableItems.js.map +1 -1
  50. package/cjs/data/table/hooks/useTableKeyboardNav.d.ts +1 -6
  51. package/cjs/data/table/hooks/useTableKeyboardNav.js +1 -4
  52. package/cjs/data/table/hooks/useTableKeyboardNav.js.map +1 -1
  53. package/cjs/data/table/hooks/useTableSelection.d.ts +6 -6
  54. package/cjs/data/table/hooks/useTableSelection.js +13 -13
  55. package/cjs/data/table/hooks/useTableSelection.js.map +1 -1
  56. package/cjs/data/table/hooks/useTableSort.d.ts +2 -2
  57. package/cjs/data/table/hooks/useTableSort.js +4 -5
  58. package/cjs/data/table/hooks/useTableSort.js.map +1 -1
  59. package/cjs/data/table/root/DataTable.types.d.ts +22 -10
  60. package/cjs/data/table/root/DataTableRoot.context.d.ts +13 -7
  61. package/cjs/data/table/root/DataTableRoot.context.js.map +1 -1
  62. package/cjs/data/table/root/DataTableRoot.d.ts +49 -72
  63. package/cjs/data/table/root/DataTableRoot.js +54 -66
  64. package/cjs/data/table/root/DataTableRoot.js.map +1 -1
  65. package/cjs/data/table/root/DataTableRoot.legacy.d.ts +2 -7
  66. package/cjs/data/table/root/DataTableRoot.legacy.js +17 -3
  67. package/cjs/data/table/root/DataTableRoot.legacy.js.map +1 -1
  68. package/cjs/data/table/sub-row-toggle/DataTableSubRowToggle.js +4 -4
  69. package/cjs/data/table/sub-row-toggle/DataTableSubRowToggle.js.map +1 -1
  70. package/cjs/data/table/tbody/DataTableTbody.js +4 -2
  71. package/cjs/data/table/tbody/DataTableTbody.js.map +1 -1
  72. package/cjs/data/table/tr/DataTableTr.d.ts +5 -3
  73. package/cjs/data/table/tr/DataTableTr.js +36 -23
  74. package/cjs/data/table/tr/DataTableTr.js.map +1 -1
  75. package/cjs/table/ColumnHeader.js +2 -1
  76. package/cjs/table/ColumnHeader.js.map +1 -1
  77. package/esm/data/data-grid/index.d.ts +2 -0
  78. package/esm/data/data-grid/index.js +3 -0
  79. package/esm/data/data-grid/index.js.map +1 -0
  80. package/esm/data/data-grid/root/DataGridRoot.context.d.ts +11 -0
  81. package/esm/data/data-grid/root/DataGridRoot.context.js +7 -0
  82. package/esm/data/data-grid/root/DataGridRoot.context.js.map +1 -0
  83. package/esm/data/data-grid/root/DataGridRoot.d.ts +38 -0
  84. package/esm/data/data-grid/root/DataGridRoot.js +32 -0
  85. package/esm/data/data-grid/root/DataGridRoot.js.map +1 -0
  86. package/esm/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js +0 -1
  87. package/esm/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js.map +1 -1
  88. package/esm/data/drag-and-drop/root/DragAndDropRoot.d.ts +5 -5
  89. package/esm/data/drag-and-drop/root/DragAndDropRoot.js +4 -27
  90. package/esm/data/drag-and-drop/root/DragAndDropRoot.js.map +1 -1
  91. package/esm/data/stories/Data.test-data.d.ts +2 -5
  92. package/esm/data/stories/Data.test-data.js +30 -38
  93. package/esm/data/stories/Data.test-data.js.map +1 -1
  94. package/esm/data/table/base-cell/DataTableBaseCell.d.ts +15 -15
  95. package/esm/data/table/base-cell/DataTableBaseCell.js +4 -8
  96. package/esm/data/table/base-cell/DataTableBaseCell.js.map +1 -1
  97. package/esm/data/table/column-header/DataTableColumnHeader.d.ts +24 -6
  98. package/esm/data/table/column-header/DataTableColumnHeader.js +23 -28
  99. package/esm/data/table/column-header/DataTableColumnHeader.js.map +1 -1
  100. package/esm/data/table/column-header/useTableColumnResize.d.ts +19 -29
  101. package/esm/data/table/column-header/useTableColumnResize.js +24 -22
  102. package/esm/data/table/column-header/useTableColumnResize.js.map +1 -1
  103. package/esm/data/table/details-panel-row/DataTableDetailsPanelRow.d.ts +1 -1
  104. package/esm/data/table/details-panel-row/DataTableDetailsPanelRow.js +2 -2
  105. package/esm/data/table/details-panel-row/DataTableDetailsPanelRow.js.map +1 -1
  106. package/esm/data/table/helpers/collectTableRowEntries.d.ts +2 -2
  107. package/esm/data/table/helpers/selection/getMultipleSelectProps.d.ts +13 -11
  108. package/esm/data/table/helpers/selection/getMultipleSelectProps.js +43 -53
  109. package/esm/data/table/helpers/selection/getMultipleSelectProps.js.map +1 -1
  110. package/esm/data/table/helpers/selection/getSingleSelectProps.d.ts +9 -8
  111. package/esm/data/table/helpers/selection/getSingleSelectProps.js +23 -10
  112. package/esm/data/table/helpers/selection/getSingleSelectProps.js.map +1 -1
  113. package/esm/data/table/helpers/selection/selection.types.d.ts +19 -19
  114. package/esm/data/table/helpers/selection/selection.utils.d.ts +21 -0
  115. package/esm/data/table/helpers/selection/selection.utils.js +43 -0
  116. package/esm/data/table/helpers/selection/selection.utils.js.map +1 -0
  117. package/esm/data/table/hooks/useColumnOptions.d.ts +16 -5
  118. package/esm/data/table/hooks/useColumnOptions.js +26 -8
  119. package/esm/data/table/hooks/useColumnOptions.js.map +1 -1
  120. package/esm/data/table/hooks/useTableDetailsPanel.d.ts +10 -13
  121. package/esm/data/table/hooks/useTableDetailsPanel.js +6 -5
  122. package/esm/data/table/hooks/useTableDetailsPanel.js.map +1 -1
  123. package/esm/data/table/hooks/useTableItems.d.ts +29 -15
  124. package/esm/data/table/hooks/useTableItems.js +3 -10
  125. package/esm/data/table/hooks/useTableItems.js.map +1 -1
  126. package/esm/data/table/hooks/useTableKeyboardNav.d.ts +1 -6
  127. package/esm/data/table/hooks/useTableKeyboardNav.js +1 -4
  128. package/esm/data/table/hooks/useTableKeyboardNav.js.map +1 -1
  129. package/esm/data/table/hooks/useTableSelection.d.ts +6 -6
  130. package/esm/data/table/hooks/useTableSelection.js +13 -13
  131. package/esm/data/table/hooks/useTableSelection.js.map +1 -1
  132. package/esm/data/table/hooks/useTableSort.d.ts +2 -2
  133. package/esm/data/table/hooks/useTableSort.js +4 -5
  134. package/esm/data/table/hooks/useTableSort.js.map +1 -1
  135. package/esm/data/table/root/DataTable.types.d.ts +22 -10
  136. package/esm/data/table/root/DataTableRoot.context.d.ts +13 -7
  137. package/esm/data/table/root/DataTableRoot.context.js.map +1 -1
  138. package/esm/data/table/root/DataTableRoot.d.ts +49 -72
  139. package/esm/data/table/root/DataTableRoot.js +56 -68
  140. package/esm/data/table/root/DataTableRoot.js.map +1 -1
  141. package/esm/data/table/root/DataTableRoot.legacy.d.ts +2 -7
  142. package/esm/data/table/root/DataTableRoot.legacy.js +17 -3
  143. package/esm/data/table/root/DataTableRoot.legacy.js.map +1 -1
  144. package/esm/data/table/sub-row-toggle/DataTableSubRowToggle.js +4 -4
  145. package/esm/data/table/sub-row-toggle/DataTableSubRowToggle.js.map +1 -1
  146. package/esm/data/table/tbody/DataTableTbody.js +4 -2
  147. package/esm/data/table/tbody/DataTableTbody.js.map +1 -1
  148. package/esm/data/table/tr/DataTableTr.d.ts +5 -3
  149. package/esm/data/table/tr/DataTableTr.js +35 -23
  150. package/esm/data/table/tr/DataTableTr.js.map +1 -1
  151. package/esm/table/ColumnHeader.js +2 -1
  152. package/esm/table/ColumnHeader.js.map +1 -1
  153. package/package.json +3 -3
  154. package/src/data/data-grid/index.ts +3 -0
  155. package/src/data/data-grid/root/DataGridRoot.context.ts +16 -0
  156. package/src/data/data-grid/root/DataGridRoot.tsx +71 -0
  157. package/src/data/drag-and-drop/drag-handler/DragAndDropDragHandler.tsx +0 -1
  158. package/src/data/drag-and-drop/root/DragAndDropRoot.tsx +15 -49
  159. package/src/data/stories/Data.test-data.tsx +52 -43
  160. package/src/data/table/agent-component-review.md +175 -0
  161. package/src/data/table/base-cell/DataTableBaseCell.tsx +31 -21
  162. package/src/data/table/column-header/DataTableColumnHeader.tsx +61 -58
  163. package/src/data/table/column-header/useTableColumnResize.ts +55 -71
  164. package/src/data/table/details-panel-row/DataTableDetailsPanelRow.tsx +3 -3
  165. package/src/data/table/helpers/collectTableRowEntries.ts +1 -2
  166. package/src/data/table/helpers/selection/getMultipleSelectProps.ts +65 -85
  167. package/src/data/table/helpers/selection/getSingleSelectProps.ts +35 -17
  168. package/src/data/table/helpers/selection/selection.types.ts +19 -19
  169. package/src/data/table/helpers/selection/selection.utils.test.ts +161 -0
  170. package/src/data/table/helpers/selection/selection.utils.ts +73 -0
  171. package/src/data/table/hooks/__tests__/useTableItems.test.ts +2 -1
  172. package/src/data/table/hooks/useColumnOptions.ts +48 -14
  173. package/src/data/table/hooks/useTableDetailsPanel.tsx +22 -25
  174. package/src/data/table/hooks/useTableItems.ts +32 -24
  175. package/src/data/table/hooks/useTableKeyboardNav.ts +1 -13
  176. package/src/data/table/hooks/useTableSelection.ts +26 -31
  177. package/src/data/table/hooks/useTableSort.ts +10 -9
  178. package/src/data/table/root/DataTable.types.ts +30 -22
  179. package/src/data/table/root/DataTableRoot.context.ts +19 -7
  180. package/src/data/table/root/DataTableRoot.legacy.tsx +22 -14
  181. package/src/data/table/root/DataTableRoot.tsx +244 -293
  182. package/src/data/table/sub-row-toggle/DataTableSubRowToggle.tsx +5 -4
  183. package/src/data/table/tbody/DataTableTbody.tsx +6 -2
  184. package/src/data/table/tr/DataTableTr.tsx +98 -35
  185. package/src/table/ColumnHeader.tsx +2 -1
  186. package/cjs/data/drag-and-drop-legacy/drag-handler/DragAndDropDragHandlerLegacy.d.ts +0 -22
  187. package/cjs/data/drag-and-drop-legacy/drag-handler/DragAndDropDragHandlerLegacy.js +0 -35
  188. package/cjs/data/drag-and-drop-legacy/drag-handler/DragAndDropDragHandlerLegacy.js.map +0 -1
  189. package/cjs/data/drag-and-drop-legacy/item/DragAndDropItemLegacy.d.ts +0 -27
  190. package/cjs/data/drag-and-drop-legacy/item/DragAndDropItemLegacy.js +0 -86
  191. package/cjs/data/drag-and-drop-legacy/item/DragAndDropItemLegacy.js.map +0 -1
  192. package/cjs/data/drag-and-drop-legacy/root/DragAndDropLegacy.context.d.ts +0 -5
  193. package/cjs/data/drag-and-drop-legacy/root/DragAndDropLegacy.context.js +0 -6
  194. package/cjs/data/drag-and-drop-legacy/root/DragAndDropLegacy.context.js.map +0 -1
  195. package/cjs/data/drag-and-drop-legacy/root/DragAndDropLegacyRoot.d.ts +0 -24
  196. package/cjs/data/drag-and-drop-legacy/root/DragAndDropLegacyRoot.js +0 -108
  197. package/cjs/data/drag-and-drop-legacy/root/DragAndDropLegacyRoot.js.map +0 -1
  198. package/cjs/data/table/helpers/selection/SelectionSubtreeHelper.d.ts +0 -46
  199. package/cjs/data/table/helpers/selection/SelectionSubtreeHelper.js +0 -112
  200. package/cjs/data/table/helpers/selection/SelectionSubtreeHelper.js.map +0 -1
  201. package/esm/data/drag-and-drop-legacy/drag-handler/DragAndDropDragHandlerLegacy.d.ts +0 -22
  202. package/esm/data/drag-and-drop-legacy/drag-handler/DragAndDropDragHandlerLegacy.js +0 -29
  203. package/esm/data/drag-and-drop-legacy/drag-handler/DragAndDropDragHandlerLegacy.js.map +0 -1
  204. package/esm/data/drag-and-drop-legacy/item/DragAndDropItemLegacy.d.ts +0 -27
  205. package/esm/data/drag-and-drop-legacy/item/DragAndDropItemLegacy.js +0 -50
  206. package/esm/data/drag-and-drop-legacy/item/DragAndDropItemLegacy.js.map +0 -1
  207. package/esm/data/drag-and-drop-legacy/root/DragAndDropLegacy.context.d.ts +0 -5
  208. package/esm/data/drag-and-drop-legacy/root/DragAndDropLegacy.context.js +0 -3
  209. package/esm/data/drag-and-drop-legacy/root/DragAndDropLegacy.context.js.map +0 -1
  210. package/esm/data/drag-and-drop-legacy/root/DragAndDropLegacyRoot.d.ts +0 -24
  211. package/esm/data/drag-and-drop-legacy/root/DragAndDropLegacyRoot.js +0 -68
  212. package/esm/data/drag-and-drop-legacy/root/DragAndDropLegacyRoot.js.map +0 -1
  213. package/esm/data/table/helpers/selection/SelectionSubtreeHelper.d.ts +0 -46
  214. package/esm/data/table/helpers/selection/SelectionSubtreeHelper.js +0 -109
  215. package/esm/data/table/helpers/selection/SelectionSubtreeHelper.js.map +0 -1
  216. package/src/data/drag-and-drop-legacy/drag-handler/DragAndDropDragHandlerLegacy.tsx +0 -104
  217. package/src/data/drag-and-drop-legacy/item/DragAndDropItemLegacy.tsx +0 -74
  218. package/src/data/drag-and-drop-legacy/root/DragAndDropLegacy.context.tsx +0 -11
  219. package/src/data/drag-and-drop-legacy/root/DragAndDropLegacyRoot.tsx +0 -94
  220. package/src/data/table/helpers/selection/SelectionSubtreeHelper.test.ts +0 -66
  221. package/src/data/table/helpers/selection/SelectionSubtreeHelper.ts +0 -162
  222. package/src/data/table/hooks/__tests__/useTableSelection.test.ts +0 -488
  223. package/src/data/table/root/agent-feature-gap.md +0 -96
@@ -1,70 +1,60 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getMultipleSelectProps = getMultipleSelectProps;
4
- const SelectionSubtreeHelper_1 = require("./SelectionSubtreeHelper");
5
- function getMultipleSelectProps({ selectedKeysSet, selectedKeys, setSelectedKeys, disabledKeysSet, visibleRowIds, childRowIdsById, }) {
6
- const subtreeHelper = new SelectionSubtreeHelper_1.SelectionSubtreeHelper({
7
- childRowIdsById,
8
- disabledKeysSet,
9
- selectedKeysSet,
10
- });
11
- // Header selection traverses the visible roots and skips already visited
12
- // descendants, so expanded trees stay linear in the number of rows.
13
- const headerSelectableKeys = subtreeHelper.getSelectableKeys(visibleRowIds);
14
- const headerSelectableKeysSet = new Set(headerSelectableKeys);
15
- const selectedSelectableCount = headerSelectableKeys.filter((k) => selectedKeysSet.has(k)).length;
16
- const allSelectableSelected = headerSelectableKeys.length > 0 &&
17
- selectedSelectableCount === headerSelectableKeys.length;
18
- const indeterminate = selectedSelectableCount > 0 &&
19
- selectedSelectableCount < headerSelectableKeys.length;
20
- const selectedKeysNotInView = selectedKeys.filter((k) => !headerSelectableKeysSet.has(k));
21
- const disabledSelected = selectedKeys.filter((k) => disabledKeysSet.has(k));
22
- const preservedKeys = [
23
- ...new Set([...selectedKeysNotInView, ...disabledSelected]),
24
- ];
25
- const isGroupFullySelected = (key) => {
26
- const groupStats = subtreeHelper.getSelectionStats(key);
27
- return (groupStats.selectableCount > 0 &&
28
- groupStats.selectedCount === groupStats.selectableCount);
29
- };
30
- const handleToggleAll = () => {
31
- if (allSelectableSelected) {
32
- setSelectedKeys(preservedKeys);
4
+ const consoleWarning_1 = require("../../../../utils/helpers/consoleWarning");
5
+ const selection_utils_1 = require("./selection.utils");
6
+ function getMultipleSelectProps({ selectedKeysSet, selectedKeys, setSelectedKeys, enableRowSelection, tableItems, }) {
7
+ const selectableIdsSet = new Set();
8
+ for (const [id, { rowData }] of tableItems.itemDetails) {
9
+ if ((0, selection_utils_1.canSelectTableRow)(enableRowSelection, { row: rowData, id })) {
10
+ selectableIdsSet.add(id);
33
11
  }
34
- else {
35
- setSelectedKeys([
36
- ...new Set([...preservedKeys, ...headerSelectableKeys]),
37
- ]);
12
+ }
13
+ let selectedOnPageCount = 0;
14
+ for (const id of selectableIdsSet) {
15
+ selectedKeysSet.has(id) && selectedOnPageCount++;
16
+ }
17
+ const isAllSelected = selectableIdsSet.size > 0 && selectedOnPageCount === selectableIdsSet.size;
18
+ const someSelected = selectedOnPageCount > 0;
19
+ const handleToggleRow = (key, row) => {
20
+ if (!row) {
21
+ (0, consoleWarning_1.consoleWarning)(`Row data is undefined for key ${key}. This may cause issues with selection if enableRowSelection is used.`);
38
22
  }
39
- };
40
- const handleToggleRow = (key) => {
41
- if (disabledKeysSet.has(key)) {
42
- return;
23
+ const checked = !selectedKeysSet.has(key);
24
+ const nextSet = new Set(selectedKeysSet);
25
+ const changed = (0, selection_utils_1.mutateRowSelection)({
26
+ selectedRowIds: nextSet,
27
+ rowId: key,
28
+ checked,
29
+ childRowIdsById: tableItems.childRowIdsById,
30
+ itemDetails: tableItems.itemDetails,
31
+ enableRowSelection,
32
+ });
33
+ if (changed) {
34
+ setSelectedKeys([...nextSet]);
43
35
  }
44
- const groupKeys = subtreeHelper.getSelectableKeys([key]);
45
- if (isGroupFullySelected(key)) {
46
- const groupKeysSet = new Set(groupKeys);
47
- setSelectedKeys(selectedKeys.filter((selectedKey) => !groupKeysSet.has(selectedKey)));
36
+ };
37
+ const toggleAllRowSelected = (event) => {
38
+ if (event.target.checked) {
39
+ const preserved = selectedKeys.filter((k) => !selectableIdsSet.has(k));
40
+ setSelectedKeys([...preserved, ...selectableIdsSet]);
48
41
  }
49
42
  else {
50
- setSelectedKeys([...new Set([...selectedKeys, ...groupKeys])]);
43
+ setSelectedKeys(selectedKeys.filter((k) => !selectableIdsSet.has(k)));
51
44
  }
52
45
  };
53
46
  return {
54
47
  getTheadCheckboxProps: () => ({
55
- onChange: handleToggleAll,
56
- checked: allSelectableSelected,
57
- indeterminate,
58
- disabled: headerSelectableKeys.length === 0,
48
+ checked: isAllSelected,
49
+ indeterminate: !isAllSelected && someSelected,
50
+ onChange: toggleAllRowSelected,
59
51
  }),
60
- getRowCheckboxProps: (key) => {
61
- const groupStats = subtreeHelper.getSelectionStats(key);
52
+ getRowCheckboxProps: (key, row) => {
62
53
  return {
63
- onChange: () => handleToggleRow(key),
64
- checked: isGroupFullySelected(key),
65
- indeterminate: groupStats.selectedCount > 0 &&
66
- groupStats.selectedCount < groupStats.selectableCount,
67
- disabled: disabledKeysSet.has(key),
54
+ onChange: () => handleToggleRow(key, row),
55
+ checked: selectedKeysSet.has(key),
56
+ indeterminate: false,
57
+ disabled: !(0, selection_utils_1.canSelectTableRow)(enableRowSelection, { row, id: key }),
68
58
  };
69
59
  },
70
60
  toggleSelection: handleToggleRow,
@@ -1 +1 @@
1
- {"version":3,"file":"getMultipleSelectProps.js","sourceRoot":"","sources":["../../../../../src/data/table/helpers/selection/getMultipleSelectProps.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"getMultipleSelectProps.js","sourceRoot":"","sources":["../../../../../src/data/table/helpers/selection/getMultipleSelectProps.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  import type { RadioInputProps } from "../../../../form/radio/radio-input/RadioInput";
2
- type GetSingleSelectPropsArgs = {
3
- selectedKeysSet: Set<string | number>;
4
- setSelectedKeys: (keys: (string | number)[]) => void;
5
- disabledKeysSet: Set<string | number>;
2
+ import type { TableRowEntryId } from "../../root/DataTable.types";
3
+ import type { SelectedKeysT, SelectionProps } from "./selection.types";
4
+ type GetSingleSelectPropsArgs<T> = {
5
+ selectedKeysSet: Set<TableRowEntryId>;
6
+ setSelectedKeys: (keys: SelectedKeysT) => void;
6
7
  name: string;
7
- };
8
- declare function getSingleSelectProps({ selectedKeysSet, setSelectedKeys, disabledKeysSet, name, }: GetSingleSelectPropsArgs): {
9
- getRowRadioProps: (key: string | number) => RadioInputProps;
10
- toggleSelection: (key: string | number) => void;
8
+ } & Pick<SelectionProps<T>, "enableRowSelection">;
9
+ declare function getSingleSelectProps<T>({ selectedKeysSet, setSelectedKeys, name, enableRowSelection, }: GetSingleSelectPropsArgs<T>): {
10
+ getRowRadioProps: (key: TableRowEntryId, row: T) => RadioInputProps;
11
+ toggleSelection: (key: TableRowEntryId, row: T) => void;
11
12
  };
12
13
  export { getSingleSelectProps };
@@ -1,21 +1,34 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getSingleSelectProps = getSingleSelectProps;
4
- function getSingleSelectProps({ selectedKeysSet, setSelectedKeys, disabledKeysSet, name, }) {
5
- const handleSelectionChange = (key) => {
6
- if (disabledKeysSet.has(key)) {
4
+ const consoleWarning_1 = require("../../../../utils/helpers/consoleWarning");
5
+ const selection_utils_1 = require("./selection.utils");
6
+ function getSingleSelectProps({ selectedKeysSet, setSelectedKeys, name, enableRowSelection, }) {
7
+ const handleSelectionChange = (key, row) => {
8
+ if (!row) {
9
+ (0, consoleWarning_1.consoleWarning)(`Row data is undefined for key ${key}. This may cause issues with selection if enableRowSelection is used.`);
10
+ }
11
+ if (!(0, selection_utils_1.canSelectTableRow)(enableRowSelection, { row, id: key })) {
7
12
  return;
8
13
  }
9
14
  setSelectedKeys([key]);
10
15
  };
11
16
  return {
12
- getRowRadioProps: (key) => ({
13
- checked: selectedKeysSet.has(key),
14
- onChange: () => handleSelectionChange(key),
15
- disabled: disabledKeysSet.has(key),
16
- value: key,
17
- name,
18
- }),
17
+ getRowRadioProps: (key, row) => {
18
+ const isSelectionDisabled = !(0, selection_utils_1.canSelectTableRow)(enableRowSelection, {
19
+ row,
20
+ id: key,
21
+ });
22
+ return {
23
+ checked: selectedKeysSet.has(key),
24
+ onChange: isSelectionDisabled
25
+ ? () => null
26
+ : () => handleSelectionChange(key, row),
27
+ disabled: isSelectionDisabled,
28
+ value: key,
29
+ name,
30
+ };
31
+ },
19
32
  toggleSelection: handleSelectionChange,
20
33
  };
21
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getSingleSelectProps.js","sourceRoot":"","sources":["../../../../../src/data/table/helpers/selection/getSingleSelectProps.ts"],"names":[],"mappings":";;AAkCS,oDAAoB;AAzB7B,SAAS,oBAAoB,CAAC,EAC5B,eAAe,EACf,eAAe,EACf,eAAe,EACf,IAAI,GACqB;IACzB,MAAM,qBAAqB,GAAG,CAAC,GAAoB,EAAE,EAAE;QACrD,IAAI,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,OAAO;QACT,CAAC;QACD,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO;QACL,gBAAgB,EAAE,CAAC,GAAoB,EAAmB,EAAE,CAAC,CAAC;YAC5D,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;YACjC,QAAQ,EAAE,GAAG,EAAE,CAAC,qBAAqB,CAAC,GAAG,CAAC;YAC1C,QAAQ,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;YAClC,KAAK,EAAE,GAAG;YACV,IAAI;SACL,CAAC;QACF,eAAe,EAAE,qBAAqB;KACvC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"getSingleSelectProps.js","sourceRoot":"","sources":["../../../../../src/data/table/helpers/selection/getSingleSelectProps.ts"],"names":[],"mappings":";;AAoDS,oDAAoB;AAnD7B,6EAA0E;AAG1E,uDAAsD;AAQtD,SAAS,oBAAoB,CAAI,EAC/B,eAAe,EACf,eAAe,EACf,IAAI,EACJ,kBAAkB,GACU;IAC5B,MAAM,qBAAqB,GAAG,CAAC,GAAoB,EAAE,GAAM,EAAE,EAAE;QAC7D,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,IAAA,+BAAc,EACZ,iCAAiC,GAAG,uEAAuE,CAC5G,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,IAAA,mCAAiB,EAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;YAC7D,OAAO;QACT,CAAC;QAED,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IACzB,CAAC,CAAC;IAEF,OAAO;QACL,gBAAgB,EAAE,CAAC,GAAoB,EAAE,GAAM,EAAmB,EAAE;YAClE,MAAM,mBAAmB,GAAG,CAAC,IAAA,mCAAiB,EAAC,kBAAkB,EAAE;gBACjE,GAAG;gBACH,EAAE,EAAE,GAAG;aACR,CAAC,CAAC;YAEH,OAAO;gBACL,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,GAAG,CAAC;gBACjC,QAAQ,EAAE,mBAAmB;oBAC3B,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI;oBACZ,CAAC,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,GAAG,EAAE,GAAG,CAAC;gBACzC,QAAQ,EAAE,mBAAmB;gBAC7B,KAAK,EAAE,GAAG;gBACV,IAAI;aACL,CAAC;QACJ,CAAC;QACD,eAAe,EAAE,qBAAqB;KACvC,CAAC;AACJ,CAAC"}
@@ -1,7 +1,8 @@
1
1
  import type { CheckboxInputProps } from "../../../../form/checkbox/checkbox-input/CheckboxInput";
2
2
  import type { RadioInputProps } from "../../../../form/radio/radio-input/RadioInput";
3
- type SelectedKeysT = (string | number)[];
4
- type SelectionProps = {
3
+ import type { TableRowEntryId } from "../../root/DataTable.types";
4
+ type SelectedKeysT = TableRowEntryId[];
5
+ type SelectionProps<T = any> = {
5
6
  /**
6
7
  * Enables selection of rows.
7
8
  *
@@ -12,7 +13,7 @@ type SelectionProps = {
12
13
  *
13
14
  * @default "none"
14
15
  */
15
- selectionMode?: "none" | "single" | "multiple";
16
+ selectionMode: "none" | "single" | "multiple";
16
17
  /**
17
18
  * Controlled selected keys. Should be used in conjunction with `onSelectionChange`.
18
19
  */
@@ -26,41 +27,40 @@ type SelectionProps = {
26
27
  */
27
28
  onSelectionChange?: (keys: SelectedKeysT) => void;
28
29
  /**
29
- * Keys that should be disabled for selection. These keys will not be selectable and will be styled as disabled.
30
+ * Callback to determine if a row should be enabled for selection.
30
31
  *
31
32
  *
32
- * TODO: Consider making this optionally a callback with (rowData:T) => boolean, to allow for more dynamic disabling of selection based on row data.
33
+ * If set to a boolean, it will enable selection for all rows when true, and disable selection for all rows when false.
33
34
  */
34
- disabledSelectionKeys?: SelectedKeysT;
35
+ enableRowSelection?: (({ row, id }: {
36
+ row: T;
37
+ id: TableRowEntryId;
38
+ }) => boolean) | boolean;
35
39
  /**
36
- * If true, stops clicking a row from toggling its selection state. This can be used if you want to only allow selection through the checkboxes/radios, and not have the entire row be clickable for selection.
37
- *
38
- * @default false
40
+ * Determines if selection is triggered by clicking the row or the selection control (checkbox/radio).
41
+ * @default "row"
39
42
  */
40
- disableRowSelectionOnClick?: boolean;
43
+ selectionTrigger?: "row" | "control";
41
44
  };
42
45
  type NoneSelection = {
43
46
  selectionMode: "none";
44
47
  selectedKeys: SelectedKeysT;
45
- disabledSelectionKeys: SelectedKeysT;
46
48
  };
47
49
  type SingleSelection = {
48
50
  selectionMode: "single";
49
51
  selectedKeys: SelectedKeysT;
50
- disabledSelectionKeys: SelectedKeysT;
51
- getRowRadioProps: (key: string | number) => RadioInputProps;
52
- toggleSelection: (key: string | number) => void;
52
+ getRowRadioProps: (key: TableRowEntryId, row: any) => RadioInputProps;
53
+ toggleSelection: (key: TableRowEntryId, row: any) => void;
53
54
  };
54
55
  type MultipleSelection = {
55
56
  selectionMode: "multiple";
56
57
  selectedKeys: SelectedKeysT;
57
- disabledSelectionKeys: SelectedKeysT;
58
58
  getTheadCheckboxProps: () => CheckboxInputProps;
59
- getRowCheckboxProps: (key: string | number) => CheckboxInputProps;
60
- toggleSelection: (key: string | number) => void;
59
+ getRowCheckboxProps: (key: TableRowEntryId, row: any) => CheckboxInputProps;
60
+ toggleSelection: (key: TableRowEntryId, row: any) => void;
61
61
  };
62
62
  type TableSelectionBase = {
63
- isRowSelected: (rowId: string | number) => boolean;
63
+ isRowSelected: (rowId: TableRowEntryId) => boolean;
64
64
  };
65
65
  type TableSelection = TableSelectionBase & (NoneSelection | SingleSelection | MultipleSelection);
66
- export type { MultipleSelection, NoneSelection, SelectionProps, SingleSelection, TableSelection, SelectedKeysT, };
66
+ export type { MultipleSelection, NoneSelection, SelectedKeysT, SelectionProps, SingleSelection, TableSelection, };
@@ -0,0 +1,21 @@
1
+ import type { TableRowEntryId } from "../../root/DataTable.types";
2
+ import type { ItemDetail } from "../collectTableRowEntries";
3
+ import type { SelectionProps } from "./selection.types";
4
+ declare function canSelectTableRow<T>(enableRowSelection: SelectionProps<T>["enableRowSelection"], args: {
5
+ row: T;
6
+ id: TableRowEntryId;
7
+ }): boolean;
8
+ type MutateRowSelectionArgs<T> = {
9
+ selectedRowIds: Set<TableRowEntryId>;
10
+ rowId: TableRowEntryId;
11
+ checked: boolean;
12
+ childRowIdsById: Map<TableRowEntryId, TableRowEntryId[]>;
13
+ itemDetails: Map<TableRowEntryId, ItemDetail<T>>;
14
+ enableRowSelection?: SelectionProps<T>["enableRowSelection"];
15
+ };
16
+ /**
17
+ * Traverses the row and its children and updates selected-state directly on given selectedRowIds set.
18
+ * Returns true if any changes were made to the set, false otherwise.
19
+ */
20
+ declare function mutateRowSelection<T>({ selectedRowIds, rowId, checked, childRowIdsById, itemDetails, enableRowSelection, }: MutateRowSelectionArgs<T>): boolean;
21
+ export { canSelectTableRow, mutateRowSelection };
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.canSelectTableRow = canSelectTableRow;
4
+ exports.mutateRowSelection = mutateRowSelection;
5
+ function canSelectTableRow(enableRowSelection, args) {
6
+ if (typeof enableRowSelection === "function") {
7
+ return enableRowSelection(args);
8
+ }
9
+ return enableRowSelection !== null && enableRowSelection !== void 0 ? enableRowSelection : true;
10
+ }
11
+ /**
12
+ * Traverses the row and its children and updates selected-state directly on given selectedRowIds set.
13
+ * Returns true if any changes were made to the set, false otherwise.
14
+ */
15
+ function mutateRowSelection({ selectedRowIds, rowId, checked, childRowIdsById, itemDetails, enableRowSelection, }) {
16
+ let changed = false;
17
+ const item = itemDetails.get(rowId);
18
+ if (item &&
19
+ canSelectTableRow(enableRowSelection, { row: item.rowData, id: rowId })) {
20
+ if (checked && !selectedRowIds.has(rowId)) {
21
+ selectedRowIds.add(rowId);
22
+ changed = true;
23
+ }
24
+ else if (!checked && selectedRowIds.has(rowId)) {
25
+ selectedRowIds.delete(rowId);
26
+ changed = true;
27
+ }
28
+ }
29
+ const children = childRowIdsById.get(rowId);
30
+ if (children) {
31
+ for (const childId of children) {
32
+ if (mutateRowSelection({
33
+ selectedRowIds,
34
+ rowId: childId,
35
+ checked,
36
+ childRowIdsById,
37
+ itemDetails,
38
+ enableRowSelection,
39
+ })) {
40
+ changed = true;
41
+ }
42
+ }
43
+ }
44
+ return changed;
45
+ }
46
+ //# sourceMappingURL=selection.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selection.utils.js","sourceRoot":"","sources":["../../../../../src/data/table/helpers/selection/selection.utils.ts"],"names":[],"mappings":";;AAwES,8CAAiB;AAAE,gDAAkB;AApE9C,SAAS,iBAAiB,CACxB,kBAA2D,EAC3D,IAAqC;IAErC,IAAI,OAAO,kBAAkB,KAAK,UAAU,EAAE,CAAC;QAC7C,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,OAAO,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,IAAI,CAAC;AACpC,CAAC;AAWD;;;GAGG;AACH,SAAS,kBAAkB,CAAI,EAC7B,cAAc,EACd,KAAK,EACL,OAAO,EACP,eAAe,EACf,WAAW,EACX,kBAAkB,GACQ;IAC1B,IAAI,OAAO,GAAG,KAAK,CAAC;IACpB,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAEpC,IACE,IAAI;QACJ,iBAAiB,CAAC,kBAAkB,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,CAAC,EACvE,CAAC;QACD,IAAI,OAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC1C,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC1B,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;aAAM,IAAI,CAAC,OAAO,IAAI,cAAc,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YACjD,cAAc,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YAC7B,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5C,IAAI,QAAQ,EAAE,CAAC;QACb,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC/B,IACE,kBAAkB,CAAC;gBACjB,cAAc;gBACd,KAAK,EAAE,OAAO;gBACd,OAAO;gBACP,eAAe;gBACf,WAAW;gBACX,kBAAkB;aACnB,CAAC,EACF,CAAC;gBACD,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -1,19 +1,30 @@
1
1
  import type { ColumnDefinition, ColumnDefinitions } from "../root/DataTable.types";
2
- import type { SelectionProps } from "./useTableSelection";
3
2
  type UseColumnOptions = {
4
3
  stickyColumns?: {
5
- first?: "1";
6
- last?: "1";
4
+ start?: "1";
5
+ end?: "1";
7
6
  };
8
- selectionMode: SelectionProps["selectionMode"];
7
+ hasSelection: boolean;
8
+ hasDetailsPanel: boolean;
9
+ layout: "fixed" | "auto";
10
+ };
11
+ type StickyStartState = {
12
+ selection: boolean;
13
+ expansion: boolean;
14
+ selectionOffset: number;
15
+ firstColumnOffset: number;
9
16
  };
10
17
  type UseColumnOptionsResult<T> = {
11
18
  columns: {
12
19
  isSticky: "start" | "end" | false;
20
+ isStickyLast?: boolean;
21
+ stickyLeftOffset?: number;
13
22
  colDef: ColumnDefinition<T>;
14
23
  }[];
15
- stickySelection: boolean;
24
+ stickyStart: StickyStartState;
25
+ totalColSpan: number;
16
26
  };
17
27
  declare function useColumnOptions<T>(columnDefinitions: ColumnDefinitions<T>, options: UseColumnOptions): UseColumnOptionsResult<T>;
18
28
  export { useColumnOptions };
29
+ export type { StickyStartState };
19
30
  export type { UseColumnOptionsResult };
@@ -2,31 +2,49 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.useColumnOptions = useColumnOptions;
4
4
  const react_1 = require("react");
5
+ const DataTableTr_1 = require("../tr/DataTableTr");
5
6
  function useColumnOptions(columnDefinitions, options) {
6
- const { stickyColumns, selectionMode } = options;
7
- const hasSelection = selectionMode !== "none";
7
+ const { stickyColumns, hasSelection, hasDetailsPanel, layout } = options;
8
+ const hasStickyStart = (stickyColumns === null || stickyColumns === void 0 ? void 0 : stickyColumns.start) === "1";
9
+ const stickyExpansion = hasStickyStart && hasDetailsPanel;
10
+ const stickySelection = hasStickyStart && hasSelection;
11
+ const stickySelectionOffset = stickyExpansion ? DataTableTr_1.ACTION_CELL_WIDTH : 0;
12
+ const stickyFirstColumnOffset = (stickyExpansion ? DataTableTr_1.ACTION_CELL_WIDTH : 0) +
13
+ (stickySelection ? DataTableTr_1.ACTION_CELL_WIDTH : 0);
8
14
  const columns = (0, react_1.useMemo)(() => {
9
15
  return columnDefinitions.map((colDef, index) => {
10
- const isFirstSticky = (stickyColumns === null || stickyColumns === void 0 ? void 0 : stickyColumns.first) === "1" && index === 0 && !hasSelection;
11
- const isLastSticky = (stickyColumns === null || stickyColumns === void 0 ? void 0 : stickyColumns.last) === "1" && index === columnDefinitions.length - 1;
16
+ const isFirstSticky = hasStickyStart && index === 0;
17
+ const isLastSticky = (stickyColumns === null || stickyColumns === void 0 ? void 0 : stickyColumns.end) === "1" && index === columnDefinitions.length - 1;
12
18
  return {
13
19
  isSticky: isFirstSticky
14
20
  ? "start"
15
21
  : isLastSticky
16
22
  ? "end"
17
23
  : false,
24
+ isStickyLast: isFirstSticky && !isLastSticky,
25
+ stickyLeftOffset: isFirstSticky ? stickyFirstColumnOffset : undefined,
18
26
  colDef,
19
27
  };
20
28
  });
21
29
  }, [
22
30
  columnDefinitions,
23
- hasSelection,
24
- stickyColumns === null || stickyColumns === void 0 ? void 0 : stickyColumns.first,
25
- stickyColumns === null || stickyColumns === void 0 ? void 0 : stickyColumns.last,
31
+ hasStickyStart,
32
+ stickyColumns,
33
+ stickyFirstColumnOffset,
26
34
  ]);
35
+ const totalColSpan = columns.length +
36
+ (layout === "fixed" ? 1 : 0) +
37
+ (hasSelection ? 1 : 0) +
38
+ (hasDetailsPanel ? 1 : 0);
27
39
  return {
28
- stickySelection: selectionMode !== "none" && (stickyColumns === null || stickyColumns === void 0 ? void 0 : stickyColumns.first) === "1",
40
+ stickyStart: {
41
+ selection: stickySelection,
42
+ expansion: stickyExpansion,
43
+ selectionOffset: stickySelectionOffset,
44
+ firstColumnOffset: stickyFirstColumnOffset,
45
+ },
29
46
  columns,
47
+ totalColSpan,
30
48
  };
31
49
  }
32
50
  //# sourceMappingURL=useColumnOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"useColumnOptions.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useColumnOptions.ts"],"names":[],"mappings":";;AA4DS,4CAAgB;AA5DzB,iCAAgC;AAuBhC,SAAS,gBAAgB,CACvB,iBAAuC,EACvC,OAAyB;IAEzB,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC;IAEjD,MAAM,YAAY,GAAG,aAAa,KAAK,MAAM,CAAC;IAE9C,MAAM,OAAO,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC3B,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC7C,MAAM,aAAa,GACjB,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,MAAK,GAAG,IAAI,KAAK,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC;YAC/D,MAAM,YAAY,GAChB,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI,MAAK,GAAG,IAAI,KAAK,KAAK,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;YAExE,OAAO;gBACL,QAAQ,EAAE,aAAa;oBACrB,CAAC,CAAE,OAAiB;oBACpB,CAAC,CAAC,YAAY;wBACZ,CAAC,CAAE,KAAe;wBAClB,CAAC,CAAE,KAAe;gBACtB,MAAM;aACP,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,EAAE;QACD,iBAAiB;QACjB,YAAY;QACZ,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK;QACpB,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,IAAI;KACpB,CAAC,CAAC;IAEH,OAAO;QACL,eAAe,EAAE,aAAa,KAAK,MAAM,IAAI,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,MAAK,GAAG;QACzE,OAAO;KACR,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"useColumnOptions.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useColumnOptions.ts"],"names":[],"mappings":";;AA6FS,4CAAgB;AA7FzB,iCAAgC;AAKhC,mDAAsD;AA8BtD,SAAS,gBAAgB,CACvB,iBAAuC,EACvC,OAAyB;IAEzB,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;IAEzE,MAAM,cAAc,GAAG,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,KAAK,MAAK,GAAG,CAAC;IAEpD,MAAM,eAAe,GAAG,cAAc,IAAI,eAAe,CAAC;IAC1D,MAAM,eAAe,GAAG,cAAc,IAAI,YAAY,CAAC;IAEvD,MAAM,qBAAqB,GAAG,eAAe,CAAC,CAAC,CAAC,+BAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;IACtE,MAAM,uBAAuB,GAC3B,CAAC,eAAe,CAAC,CAAC,CAAC,+BAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;QACzC,CAAC,eAAe,CAAC,CAAC,CAAC,+BAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5C,MAAM,OAAO,GAAG,IAAA,eAAO,EAAC,GAAG,EAAE;QAC3B,OAAO,iBAAiB,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YAC7C,MAAM,aAAa,GAAG,cAAc,IAAI,KAAK,KAAK,CAAC,CAAC;YACpD,MAAM,YAAY,GAChB,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,GAAG,MAAK,GAAG,IAAI,KAAK,KAAK,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;YAEvE,OAAO;gBACL,QAAQ,EAAE,aAAa;oBACrB,CAAC,CAAE,OAAiB;oBACpB,CAAC,CAAC,YAAY;wBACZ,CAAC,CAAE,KAAe;wBAClB,CAAC,CAAE,KAAe;gBACtB,YAAY,EAAE,aAAa,IAAI,CAAC,YAAY;gBAC5C,gBAAgB,EAAE,aAAa,CAAC,CAAC,CAAC,uBAAuB,CAAC,CAAC,CAAC,SAAS;gBACrE,MAAM;aACP,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC,EAAE;QACD,iBAAiB;QACjB,cAAc;QACd,aAAa;QACb,uBAAuB;KACxB,CAAC,CAAC;IAEH,MAAM,YAAY,GAChB,OAAO,CAAC,MAAM;QACd,CAAC,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC5B,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACtB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IAE5B,OAAO;QACL,WAAW,EAAE;YACX,SAAS,EAAE,eAAe;YAC1B,SAAS,EAAE,eAAe;YAC1B,eAAe,EAAE,qBAAqB;YACtC,iBAAiB,EAAE,uBAAuB;SAC3C;QACD,OAAO;QACP,YAAY;KACb,CAAC;AACJ,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import React from "react";
2
+ import type { TableRowEntryId } from "../root/DataTable.types";
2
3
  type DetailsPanelProps<T> = {
3
4
  /**
4
- * Renders a details panel below the row when expanded.
5
+ * Function to get the content to show in the details panel for a given row.
5
6
  * When provided, an expand toggle column is added automatically.
6
7
  */
7
- getContent?: (rowData: T) => React.ReactNode;
8
+ getContent: (rowData: T) => React.ReactNode;
8
9
  /**
9
10
  * Determines whether a row can be expanded to show details panel content.
10
11
  * @default () => true
@@ -14,20 +15,16 @@ type DetailsPanelProps<T> = {
14
15
  * Controlled list of expanded row IDs.
15
16
  * Use with `onDetailsPanelChange` for controlled usage, or `defaultDetailsPanelRowIds` for uncontrolled.
16
17
  */
17
- expandedRowIds?: (string | number)[];
18
+ expandedRowIds?: TableRowEntryId[];
18
19
  /**
19
20
  * Initial list of expanded row IDs for uncontrolled usage.
20
21
  * @default []
21
22
  */
22
- defaultExpandedRowIds?: (string | number)[];
23
+ defaultExpandedRowIds?: TableRowEntryId[];
23
24
  /**
24
25
  * Called when the list of expanded row IDs changes.
25
- *
26
- *
27
- * TODO:
28
- * - Docs: This pattern is called "Master / Detail" in general terms
29
26
  */
30
- onExpandedRowIdsChange?: (ids: (string | number)[]) => void;
27
+ onExpandedRowIdsChange?: (ids: TableRowEntryId[]) => void;
31
28
  /**
32
29
  * Returns the height (in px) or `"auto"` for a row's details panel.
33
30
  * When a number is returned, the panel scrolls within that fixed height.
@@ -41,9 +38,9 @@ type DetailsPanelProps<T> = {
41
38
  showExpandAll?: boolean;
42
39
  };
43
40
  type DataTableDetailsPanelContextT = {
44
- isExpanded: (id: string | number) => boolean;
45
- isDetailsPanelExpandable: (id: string | number) => boolean;
46
- toggleExpansion: (id: string | number) => void;
41
+ isExpanded: (id: TableRowEntryId) => boolean;
42
+ isDetailsPanelExpandable: (id: TableRowEntryId) => boolean;
43
+ toggleExpansion: (id: TableRowEntryId) => void;
47
44
  toggleAll: () => void;
48
45
  isAllExpanded: boolean;
49
46
  getDetailsPanelContent?: (row: unknown) => React.ReactNode;
@@ -57,6 +54,6 @@ declare function DataTableDetailsPanelProvider<T>({ children, detailsPanel, }: {
57
54
  } & {
58
55
  children: React.ReactNode;
59
56
  }): React.JSX.Element;
60
- declare function getDataTableDetailsPanelId(tableId: string, rowId: string | number): string;
57
+ declare function getDataTableDetailsPanelId(tableId: string, rowId: TableRowEntryId): string;
61
58
  export { DataTableDetailsPanelProvider, getDataTableDetailsPanelId, useDataTableDetailsPanel, };
62
59
  export type { DetailsPanelProps };
@@ -39,22 +39,23 @@ exports.getDataTableDetailsPanelId = getDataTableDetailsPanelId;
39
39
  const react_1 = __importStar(require("react"));
40
40
  const helpers_1 = require("../../../utils/helpers");
41
41
  const hooks_1 = require("../../../utils/hooks");
42
- const useTableItems_1 = require("./useTableItems");
42
+ const DataTableRoot_context_1 = require("../root/DataTableRoot.context");
43
43
  const { Provider: DataTableDetailsPanelContextProvider, useContext: useDataTableDetailsPanel, } = (0, helpers_1.createStrictContext)({
44
44
  name: "DataTableDetailsPanelContext",
45
45
  errorMessage: "useDataTableDetailsPanel must be used within a DataTableDetailsPanelProvider.",
46
46
  });
47
47
  exports.useDataTableDetailsPanel = useDataTableDetailsPanel;
48
- function DataTableDetailsPanelProvider({ children, detailsPanel = {}, }) {
49
- const { expandedRowIds, defaultExpandedRowIds = [], onExpandedRowIdsChange, getContent, isRowExpandable, getHeight, showExpandAll = false, } = detailsPanel;
48
+ function DataTableDetailsPanelProvider({ children, detailsPanel, }) {
49
+ var _a;
50
+ const { expandedRowIds, defaultExpandedRowIds = [], onExpandedRowIdsChange, getContent, isRowExpandable, getHeight, showExpandAll = false, } = detailsPanel || {};
50
51
  const [expandedIds, setExpandedIds] = (0, hooks_1.useControllableState)({
51
52
  value: expandedRowIds,
52
53
  defaultValue: defaultExpandedRowIds,
53
54
  onChange: onExpandedRowIdsChange,
54
55
  });
55
56
  /* TODO: False is just fallback until auto and root is merged */
56
- const tableItemsContext = (0, useTableItems_1.useTableItemsContext)(false);
57
- const { itemDetails } = tableItemsContext !== null && tableItemsContext !== void 0 ? tableItemsContext : {
57
+ const tableContext = (0, DataTableRoot_context_1.useDataTableContext)(false);
58
+ const { itemDetails } = (_a = tableContext === null || tableContext === void 0 ? void 0 : tableContext.tableItems) !== null && _a !== void 0 ? _a : {
58
59
  itemDetails: new Map(),
59
60
  };
60
61
  const expandableIds = react_1.default.useMemo(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"useTableDetailsPanel.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableDetailsPanel.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useTableDetailsPanel.js","sourceRoot":"","sources":["../../../../src/data/table/hooks/useTableDetailsPanel.tsx"],"names":[],"mappings":"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"}