@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,19 +1,18 @@
1
1
  import React from "react";
2
- interface DataTableBaseCellProps extends React.HTMLAttributes<HTMLTableCellElement> {
2
+ interface DataTableBaseCellProps extends Omit<React.TdHTMLAttributes<HTMLTableCellElement>, "width"> {
3
3
  /**
4
- * Content alignment inside cell
4
+ * Content alignment inside cell.
5
+ *
6
+ * Quantitative figures like amounts and percentages should be right‑aligned (but not phone numbers, postal codes etc.)
5
7
  * @default "left"
6
8
  */
7
9
  textAlign?: "left" | "center" | "right";
8
10
  /**
9
- * TODO: Shouldnt be needed to declare these here... But getting type-errors if not
11
+ * Internal cell type that controls padding, alignment, row-click prevention, and resize behavior.
12
+ * - `"action"`: Centers content, removes cell padding, prevents row click, and disables column resize.
13
+ * Used for selection (checkbox/radio) and expansion (expand/collapse) cells.
10
14
  */
11
- colSpan?: number;
12
- rowSpan?: number;
13
- /**
14
- * Temp hack to solve overflow and alignment
15
- */
16
- UNSAFE_isSelection?: boolean;
15
+ cellType?: "action";
17
16
  /**
18
17
  * When true, clicking this cell will not trigger `onRowClick` on the row.
19
18
  * Useful for cells that contain their own interactive content or actions
@@ -25,22 +24,23 @@ interface DataTableBaseCellProps extends React.HTMLAttributes<HTMLTableCellEleme
25
24
  * This is only needed when using `layout="auto"` together with
26
25
  * `truncateContent` on `<DataTable>` and you want the cell to be truncated.
27
26
  */
28
- contentMaxWidth?: number | `${number}${string}`;
27
+ contentMaxWidth?: number | string;
29
28
  /**
30
29
  * Makes the cell sticky.
31
30
  */
32
31
  isSticky?: "start" | "end" | false;
33
32
  }
34
- /**
35
- * TODO:
36
- * - Need a "type" or something that centers content instead of relying on isSelection prop.
37
- * - Need a separate prop do disabled resizing instead of relying on isSelection prop.
38
- */
39
33
  declare const DataTableBaseCell: React.ForwardRefExoticComponent<DataTableBaseCellProps & {
40
34
  /**
41
35
  * Cell type
42
36
  */
43
37
  as: "th" | "td";
38
+ /**
39
+ * Content to render before the main cell content.
40
+ *
41
+ * **WARNING: Adding content here that takes up space will probably break auto-resizing!**
42
+ */
43
+ beforeContent?: React.ReactNode;
44
44
  } & React.RefAttributes<HTMLTableCellElement>>;
45
45
  export { DataTableBaseCell };
46
46
  export type { DataTableBaseCellProps };
@@ -12,16 +12,12 @@ var __rest = (this && this.__rest) || function (s, e) {
12
12
  import React, { forwardRef } from "react";
13
13
  import { cl } from "../../../utils/helpers/index.js";
14
14
  import { useDataTableContext } from "../root/DataTableRoot.context.js";
15
- /**
16
- * TODO:
17
- * - Need a "type" or something that centers content instead of relying on isSelection prop.
18
- * - Need a separate prop do disabled resizing instead of relying on isSelection prop.
19
- */
20
15
  const DataTableBaseCell = forwardRef((_a, forwardedRef) => {
21
- var { className, children, as: Component, textAlign = "left", colSpan, UNSAFE_isSelection, preventRowClick, contentMaxWidth, rowSpan, isSticky } = _a, rest = __rest(_a, ["className", "children", "as", "textAlign", "colSpan", "UNSAFE_isSelection", "preventRowClick", "contentMaxWidth", "rowSpan", "isSticky"]);
16
+ var { className, children, as: Component, beforeContent, textAlign = "left", cellType, preventRowClick, contentMaxWidth, isSticky, colSpan, rowSpan } = _a, rest = __rest(_a, ["className", "children", "as", "beforeContent", "textAlign", "cellType", "preventRowClick", "contentMaxWidth", "isSticky", "colSpan", "rowSpan"]);
22
17
  const { withKeyboardNav } = useDataTableContext();
23
- return (React.createElement(Component, Object.assign({}, rest, { ref: forwardedRef, className: cl("aksel-data-table__cell", className), tabIndex: withKeyboardNav ? -1 : undefined, "data-align": textAlign, "data-selectable": UNSAFE_isSelection, "data-prevent-row-click": preventRowClick || UNSAFE_isSelection || undefined, "data-sticky": isSticky || undefined, colSpan: colSpan, rowSpan: rowSpan }),
24
- React.createElement("div", { style: { maxWidth: contentMaxWidth } }, children)));
18
+ return (React.createElement(Component, Object.assign({}, rest, { ref: forwardedRef, className: cl("aksel-data-table__cell", className), tabIndex: withKeyboardNav ? -1 : undefined, "data-align": textAlign, "data-cell-type": cellType || undefined, "data-prevent-row-click": preventRowClick || cellType === "action" || undefined, "data-sticky": isSticky || undefined, colSpan: colSpan, rowSpan: rowSpan }),
19
+ beforeContent,
20
+ React.createElement("div", { className: "aksel-data-table__cell-content", style: { maxWidth: contentMaxWidth } }, children)));
25
21
  });
26
22
  export { DataTableBaseCell };
27
23
  //# sourceMappingURL=DataTableBaseCell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableBaseCell.js","sourceRoot":"","sources":["../../../../src/data/table/base-cell/DataTableBaseCell.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAmCpE;;;;GAIG;AACH,MAAM,iBAAiB,GAAG,UAAU,CASlC,CACE,EAYC,EACD,YAAY,EACZ,EAAE;QAdF,EACE,SAAS,EACT,QAAQ,EACR,EAAE,EAAE,SAAS,EACb,SAAS,GAAG,MAAM,EAClB,OAAO,EACP,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,OAAO,EACP,QAAQ,OAET,EADI,IAAI,cAXT,0IAYC,CADQ;IAIT,MAAM,EAAE,eAAe,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAElD,OAAO,CACL,oBAAC,SAAS,oBACJ,IAAI,IACR,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,EAClD,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,gBAC9B,SAAS,qBACJ,kBAAkB,4BAEjC,eAAe,IAAI,kBAAkB,IAAI,SAAS,iBAEvC,QAAQ,IAAI,SAAS,EAClC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO;QAEhB,6BAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,IAAG,QAAQ,CAAO,CACjD,CACb,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"DataTableBaseCell.js","sourceRoot":"","sources":["../../../../src/data/table/base-cell/DataTableBaseCell.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,wBAAwB,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAqCpE,MAAM,iBAAiB,GAAG,UAAU,CAelC,CACE,EAaC,EACD,YAAY,EACZ,EAAE;QAfF,EACE,SAAS,EACT,QAAQ,EACR,EAAE,EAAE,SAAS,EACb,aAAa,EACb,SAAS,GAAG,MAAM,EAClB,QAAQ,EACR,eAAe,EACf,eAAe,EACf,QAAQ,EACR,OAAO,EACP,OAAO,OAER,EADI,IAAI,cAZT,iJAaC,CADQ;IAIT,MAAM,EAAE,eAAe,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAElD,OAAO,CACL,oBAAC,SAAS,oBACJ,IAAI,IACR,GAAG,EAAE,YAAY,EACjB,SAAS,EAAE,EAAE,CAAC,wBAAwB,EAAE,SAAS,CAAC,EAClD,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,gBAC9B,SAAS,oBACL,QAAQ,IAAI,SAAS,4BAEnC,eAAe,IAAI,QAAQ,KAAK,QAAQ,IAAI,SAAS,iBAE1C,QAAQ,IAAI,SAAS,EAClC,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,OAAO;QAEf,aAAa;QACd,6BACE,SAAS,EAAC,gCAAgC,EAC1C,KAAK,EAAE,EAAE,QAAQ,EAAE,eAAe,EAAE,IAEnC,QAAQ,CACL,CACI,CACb,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,OAAO,EAAE,iBAAiB,EAAE,CAAC"}
@@ -2,27 +2,45 @@ import React from "react";
2
2
  import { type DataTableBaseCellProps } from "../base-cell/DataTableBaseCell.js";
3
3
  import type { SortDirection } from "../root/DataTable.types.js";
4
4
  import { type ResizeProps } from "./useTableColumnResize.js";
5
- interface DataTableColumnHeaderProps extends ResizeProps, DataTableBaseCellProps {
5
+ interface DataTableColumnHeaderProps extends DataTableBaseCellProps {
6
+ /**
7
+ * Unique identifier for the column. Required for sortable columns to identify which column is being sorted.
8
+ */
9
+ id?: string;
6
10
  /**
7
11
  * Accessible name of the column.
8
12
  */
9
13
  label: string;
10
14
  /**
11
- * Makes the column header sortable. The entire header cell content becomes
12
- * a clickable button when true.
15
+ * Makes the column sortable by clicking on the header.
16
+ * The entire header cell content becomes a clickable button when true.
13
17
  */
14
18
  sortable?: boolean;
15
19
  /**
16
20
  * Current sort direction. Only relevant when `sortable` is true.
17
- * Uses values matching the `aria-sort` attribute directly.
21
+ * Uses values matching the `aria-sort` attribute directly. // TODO: What does this mean? (Can we just remove it?)
18
22
  * @default "none"
19
23
  */
20
24
  sortDirection?: SortDirection;
21
25
  /**
22
- * Called when the user clicks the sortable header.
23
- * The consumer is responsible for determining and setting the next sort state.
26
+ * Called when the user clicks the header. Only relevant when `sortable` is true.
27
+ * The consumer is responsible for determining and setting the next sort state. // TODO: We don't use the term "consumer" in JSDoc anywhere else
24
28
  */
25
29
  onSortClick?: (event: React.MouseEvent<HTMLElement>) => void;
30
+ /**
31
+ * Object with props related to column width and resizing. Summary:
32
+ *
33
+ * - `resizable?: boolean` - Whether the column should be resizable by the user.
34
+ * - `autoResizeOnce?: boolean` - Whether the column should automatically resize to fit its content.
35
+ * - `resizeMin?: number` - Minimum width of the column when resizing.
36
+ * - `resizeMax?: number` - Maximum width of the column when resizing.
37
+ * - `value?: number | string` - Controlled width of the column.
38
+ * - `default?: number | string` - Initial width of the column.
39
+ * - `onChange?: (width: number) => void` - Called when the column width changes.
40
+ *
41
+ * See individual props for details and defaults.
42
+ */
43
+ width?: ResizeProps;
26
44
  }
27
45
  /**
28
46
  * TODO:
@@ -9,11 +9,12 @@ var __rest = (this && this.__rest) || function (s, e) {
9
9
  }
10
10
  return t;
11
11
  };
12
- import React, { forwardRef, useRef } from "react";
12
+ import React, { forwardRef, useMemo, useRef } from "react";
13
13
  import { ArrowsUpDownIcon, CaretLeftCircleFillIcon, CaretRightCircleFillIcon, SortDownIcon, SortUpIcon, } from "@navikt/aksel-icons";
14
14
  import { cl } from "../../../utils/helpers/index.js";
15
15
  import { useMergeRefs } from "../../../utils/hooks/index.js";
16
16
  import { DataTableBaseCell, } from "../base-cell/DataTableBaseCell.js";
17
+ import { useDataTableContext } from "../root/DataTableRoot.context.js";
17
18
  import { useTableColumnResize } from "./useTableColumnResize.js";
18
19
  const SORT_ICON = {
19
20
  asc: SortUpIcon,
@@ -26,41 +27,35 @@ const SORT_ICON = {
26
27
  * Toggling `data-block-keyboard-nav` does not work since the created "grid" does not update when toggling this attribute.
27
28
  */
28
29
  const DataTableColumnHeader = forwardRef((_a, forwardedRef) => {
29
- var { className, children, label, sortable = false, sortDirection = "none", onSortClick, resizable = true, style, width, defaultWidth, autoWidth, minWidth, maxWidth, onWidthChange, colSpan, rowSpan, UNSAFE_isSelection } = _a, rest = __rest(_a, ["className", "children", "label", "sortable", "sortDirection", "onSortClick", "resizable", "style", "width", "defaultWidth", "autoWidth", "minWidth", "maxWidth", "onWidthChange", "colSpan", "rowSpan", "UNSAFE_isSelection"]);
30
- const contentRef = React.useRef(null);
30
+ var { id, label, sortable = false, width, cellType, className, children, style } = _a, rest = __rest(_a, ["id", "label", "sortable", "width", "cellType", "className", "children", "style"]);
31
31
  const thRef = useRef(null);
32
32
  const mergedRef = useMergeRefs(forwardedRef, thRef);
33
- const resizeResult = useTableColumnResize({
34
- resizable,
35
- thRef,
36
- width,
37
- defaultWidth,
38
- autoWidth,
39
- minWidth,
40
- maxWidth,
41
- onWidthChange,
42
- style,
43
- colSpan,
44
- });
45
- const SortIcon = sortable ? SORT_ICON[sortDirection] : null;
46
- return (React.createElement(DataTableBaseCell, Object.assign({ as: "th" }, rest, { ref: mergedRef, className: cl("aksel-data-table__column-header", className), "data-sortable": sortable, style: resizeResult.style, "aria-sort": sortable ? getAriaSort(sortDirection) : undefined, UNSAFE_isSelection: UNSAFE_isSelection, colSpan: colSpan, rowSpan: rowSpan }),
47
- sortable ? (React.createElement("button", { type: "button", className: "aksel-data-table__th-sort-button", onClick: onSortClick },
48
- React.createElement("div", { ref: contentRef, className: "aksel-data-table__th-content" }, children),
49
- SortIcon && (React.createElement(SortIcon, { "aria-hidden": true, "data-sort-direction": sortDirection, className: "aksel-data-table__th-sort-icon", fontSize: "1.25rem" })))) : (React.createElement("div", { ref: contentRef, className: cl({
50
- "aksel-data-table__th-content": !UNSAFE_isSelection,
33
+ const { sortingState } = useDataTableContext();
34
+ const { onSortClick, sortState } = sortingState;
35
+ const resizeResult = useTableColumnResize(Object.assign(Object.assign({}, width), { thRef, colSpan: rest.colSpan }));
36
+ const sortDirection = useMemo(() => {
37
+ var _a;
38
+ const sortEntry = sortState.find((s) => s.columnId === id);
39
+ return (_a = sortEntry === null || sortEntry === void 0 ? void 0 : sortEntry.direction) !== null && _a !== void 0 ? _a : "none";
40
+ }, [id, sortState]);
41
+ const canSort = sortable && id !== undefined;
42
+ const SortIcon = canSort ? SORT_ICON[sortDirection] : null;
43
+ return (React.createElement(DataTableBaseCell, Object.assign({ as: "th" }, rest, { ref: mergedRef, className: cl("aksel-data-table__column-header", className), "data-sortable": canSort, style: Object.assign(Object.assign({}, style), { width: resizeResult.width }), "aria-sort": canSort ? getAriaSort(sortDirection) : undefined, cellType: cellType }),
44
+ canSort ? (React.createElement("button", { type: "button", className: "aksel-data-table__th-sort-button", onClick: (event) => onSortClick(id, event) },
45
+ React.createElement("div", { className: "aksel-data-table__th-content" }, children),
46
+ SortIcon && (React.createElement(SortIcon, { "aria-hidden": true, "data-sort-direction": sortDirection, className: "aksel-data-table__th-sort-icon", fontSize: "1.25rem" })))) : (React.createElement("div", { className: cl({
47
+ "aksel-data-table__th-content": cellType !== "action",
51
48
  }) }, children)),
52
- resizeResult.enabled && !UNSAFE_isSelection && (React.createElement("button", Object.assign({}, resizeResult.resizeHandlerProps, { type: "button", className: "aksel-data-table__th-resize-handle", "aria-label": resizeResult.isResizingWithKeyboard
49
+ resizeResult.enabled && cellType !== "action" && (React.createElement("button", Object.assign({}, resizeResult.resizeHandlerProps, { type: "button", className: "aksel-data-table__th-resize-handle", "aria-label": resizeResult.isResizingWithKeyboard
53
50
  ? "Bruk pil venstre/høyre"
54
- : `Endre bredde ${label}`, "data-active": resizeResult.isResizingWithKeyboard, "data-disable-keyboard-nav": resizeResult.isResizingWithKeyboard, "data-block-keyboard-nav": true, role: "slider", "aria-valuenow": typeof resizeResult.style.width === "number"
55
- ? resizeResult.style.width
56
- : 0, "aria-valuetext": typeof resizeResult.style.width === "number" &&
51
+ : `Endre bredde ${label}`, "data-active": resizeResult.isResizingWithKeyboard, "data-disable-keyboard-nav": resizeResult.isResizingWithKeyboard, "data-block-keyboard-nav": true, role: "slider", "aria-valuenow": typeof resizeResult.width === "number" ? resizeResult.width : 0, "aria-valuetext": typeof resizeResult.width === "number" &&
57
52
  resizeResult.isResizingWithKeyboard
58
- ? resizeResult.style.width.toString()
53
+ ? resizeResult.width.toString()
59
54
  : "" // Needs to be blank when not in keyboard resizing mode to avoid NVDA announcing the value as part of the column heading
60
55
  }), resizeResult.isResizingWithKeyboard && (React.createElement(React.Fragment, null,
61
- React.createElement("span", { className: "aksel-data-table__th-resize-handle-indicator aksel-data-table__th-resize-handle-indicator--start" },
56
+ React.createElement("span", { className: "aksel-data-table__th-resize-handle-indicator" },
62
57
  React.createElement(CaretLeftCircleFillIcon, { "aria-hidden": true, fontSize: "1.5rem" })),
63
- React.createElement("span", { className: "aksel-data-table__th-resize-handle-indicator aksel-data-table__th-resize-handle-indicator--end" },
58
+ React.createElement("span", { className: "aksel-data-table__th-resize-handle-indicator" },
64
59
  React.createElement(CaretRightCircleFillIcon, { "aria-hidden": true, fontSize: "1.5rem" }))))))));
65
60
  });
66
61
  function getAriaSort(sortDirection) {
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableColumnHeader.js","sourceRoot":"","sources":["../../../../src/data/table/column-header/DataTableColumnHeader.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DataTableColumnHeader.js","sourceRoot":"","sources":["../../../../src/data/table/column-header/DataTableColumnHeader.tsx"],"names":[],"mappings":"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"}
@@ -16,56 +16,47 @@ type ResizeProps = {
16
16
  * consider using `layout="auto"` on the root instead for better performance.
17
17
  *
18
18
  * **NB:** This can cause a layout shift. Set a good initial width with `width` or `defaultWidth` to mitigate this.
19
+ *
20
+ * **NB:** Does not work with block content.
19
21
  */
20
- autoWidth?: boolean;
22
+ autoResizeOnce?: boolean;
21
23
  /**
22
- * Minimum width of the column when resizing. Only used when `resizable` or `autoWidth` is enabled.
24
+ * Minimum width of the column when resizing. Only used when `resizable` or `autoResizeOnce` is enabled.
23
25
  * @default 40
24
26
  */
25
- minWidth?: number;
27
+ resizeMin?: number;
26
28
  /**
27
- * Maximum width of the column when resizing. Only used when `resizable` or `autoWidth` is enabled.
29
+ * Maximum width of the column when resizing. Only used when `resizable` or `autoResizeOnce` is enabled.
28
30
  */
29
- maxWidth?: number;
31
+ resizeMax?: number;
30
32
  /**
31
- * Controlled width of the column. Does not respect `minWidth` and `maxWidth`.
33
+ * Controlled width of the column. (Does not respect `resizeMin` and `resizeMax`.)
32
34
  *
33
- * Should only be used to fully control column width state. Otherwise, use `defaultWidth` and let the component handle resizing.
35
+ * Should only be used to fully control column width state. Otherwise, use `default` and let the component handle resizing.
34
36
  *
35
37
  * **NB:** Percentage as initial width does not work well with resizing.
36
38
  */
37
- width?: number | string;
39
+ value?: number | string;
38
40
  /**
39
- * Initial width of the column. Only used when `width` is not set and `resizable` is true.
40
- * Does not respect `minWidth` and `maxWidth`.
41
+ * Initial width of the column. Only used when `value` is not set.
42
+ * (Does not respect `resizeMin` and `resizeMax`.)
41
43
  *
42
44
  * **NB:** Percentage as initial width does not work well with resizing.
43
45
  * @default 140px
44
46
  */
45
- defaultWidth?: number | string;
47
+ default?: number | string;
46
48
  /**
47
49
  * Called when the column width changes.
48
50
  * @param width New width in pixels.
49
51
  */
50
- onWidthChange?: (width: number) => void;
51
- /**
52
- * Forwarded styles
53
- */
54
- style?: React.CSSProperties;
55
- /**
56
- * Forwarded colSpan
57
- */
58
- colSpan?: number;
52
+ onChange?: (width: number) => void;
59
53
  };
60
- type WithUndefined<T> = {
61
- [K in keyof T]: T[K] | undefined;
62
- };
63
- type Unomittable<T> = WithUndefined<Required<T>>;
64
- type TableColumnResizeArgs = Unomittable<ResizeProps> & {
54
+ type TableColumnResizeArgs = ResizeProps & {
65
55
  thRef: React.RefObject<HTMLTableCellElement | null>;
56
+ colSpan: number | undefined;
66
57
  };
67
58
  type TableColumnResizeResult = {
68
- style: React.CSSProperties;
59
+ width: number | string;
69
60
  resizeHandlerProps: {
70
61
  onMouseDown: DOMAttributes<HTMLButtonElement>["onMouseDown"];
71
62
  onTouchStart: DOMAttributes<HTMLButtonElement>["onTouchStart"];
@@ -77,15 +68,14 @@ type TableColumnResizeResult = {
77
68
  isResizingWithKeyboard: boolean;
78
69
  enabled: true;
79
70
  } | {
80
- style?: React.CSSProperties;
71
+ width?: number | string;
81
72
  enabled: false;
82
73
  };
83
74
  /**
84
75
  * TODO:
85
- * - Do we allow % widths?
86
76
  * - Auto-width mode is hard now since that might cause layout-shifts on mount. But would be preferable to
87
77
  * be able to set "1fr" or similar and have it fill remaining space.
88
78
  */
89
- declare function useTableColumnResize(args: TableColumnResizeArgs): TableColumnResizeResult;
79
+ declare function useTableColumnResize({ resizable, autoResizeOnce, resizeMin, resizeMax, value, default: defaultProp, onChange, thRef, colSpan, }: TableColumnResizeArgs): TableColumnResizeResult;
90
80
  export { useTableColumnResize };
91
81
  export type { ResizeProps };
@@ -3,41 +3,39 @@ import { useControllableState } from "../../../utils/hooks/index.js";
3
3
  import { useDataTableContext } from "../root/DataTableRoot.context.js";
4
4
  /**
5
5
  * TODO:
6
- * - Do we allow % widths?
7
6
  * - Auto-width mode is hard now since that might cause layout-shifts on mount. But would be preferable to
8
7
  * be able to set "1fr" or similar and have it fill remaining space.
9
8
  */
10
- function useTableColumnResize(args) {
11
- const { resizable, thRef, width: userWidth, defaultWidth, autoWidth, onWidthChange, maxWidth = Infinity, minWidth = 40, style, colSpan, } = args;
9
+ function useTableColumnResize({ resizable = true, autoResizeOnce, resizeMin = 40, resizeMax = Infinity, value, default: defaultProp, onChange, thRef, colSpan, }) {
12
10
  const tableContext = useDataTableContext();
13
11
  const [isResizingWithKeyboard, setIsResizingWithKeyboard] = useState(false);
14
12
  const ignoreNextOnClick = useRef(false);
15
13
  const [width, setWidth] = useControllableState({
16
- value: userWidth,
17
- defaultValue: defaultWidth !== null && defaultWidth !== void 0 ? defaultWidth : (colSpan !== null && colSpan !== void 0 ? colSpan : 1) * 140,
14
+ value,
15
+ defaultValue: defaultProp !== null && defaultProp !== void 0 ? defaultProp : (colSpan !== null && colSpan !== void 0 ? colSpan : 1) * 140,
18
16
  /**
19
17
  * TODO:
20
18
  * - Potential optimization: Only call when width as "stopped" changing, e.g. on mouse up or after a debounce when resizing with keyboard.
21
19
  * Otherwise, this could cause excessive calls when resizing quickly.
22
20
  */
23
- onChange: onWidthChange,
21
+ onChange,
24
22
  });
25
23
  const setClampedWidth = useCallback((newWidth) => {
26
- setWidth(Math.min(Math.max(newWidth, minWidth), maxWidth));
27
- }, [minWidth, maxWidth, setWidth]);
28
- // biome-ignore lint/correctness/useExhaustiveDependencies: We only want to run this on mount and when autoWidth changes
24
+ setWidth(Math.min(Math.max(newWidth, resizeMin), resizeMax));
25
+ }, [resizeMin, resizeMax, setWidth]);
26
+ // biome-ignore lint/correctness/useExhaustiveDependencies: We only want to run this on mount and when autoResizeOnce changes
29
27
  useEffect(function autoResizeColumn() {
30
- if (!autoWidth) {
28
+ if (!autoResizeOnce) {
31
29
  return;
32
30
  }
33
31
  const newColumnWidth = getAutoColumnWidth(thRef);
34
32
  if (newColumnWidth) {
35
33
  setClampedWidth(newColumnWidth);
36
34
  }
37
- }, [autoWidth]);
35
+ }, [autoResizeOnce]);
38
36
  const handleOnClick = useCallback(() => {
39
37
  // We need to use the onClick event in order to support screen readers properly,
40
- // since some of them only send a mouse click when pressing enter/space.
38
+ // since some of them only send a mouse click (no kbd events) when pressing enter/space.
41
39
  // We detect a "screen reader click" by checking if we had a mouseUp event right before.
42
40
  if (ignoreNextOnClick.current) {
43
41
  ignoreNextOnClick.current = false;
@@ -81,11 +79,11 @@ function useTableColumnResize(args) {
81
79
  var _a, _b;
82
80
  const currentWidth = (_b = (_a = thRef.current) === null || _a === void 0 ? void 0 : _a.offsetWidth) !== null && _b !== void 0 ? _b : 0;
83
81
  const newWidth = startWidth + (clientX - startX);
84
- if (newWidth > maxWidth) {
82
+ if (newWidth > resizeMax) {
85
83
  setWidth(newWidth < currentWidth ? newWidth : currentWidth);
86
84
  return;
87
85
  }
88
- if (newWidth < minWidth) {
86
+ if (newWidth < resizeMin) {
89
87
  setWidth(newWidth > currentWidth ? newWidth : currentWidth);
90
88
  return;
91
89
  }
@@ -111,14 +109,14 @@ function useTableColumnResize(args) {
111
109
  document.addEventListener("mouseup", cleanup, { once: true });
112
110
  document.addEventListener("touchend", cleanup, { once: true });
113
111
  document.addEventListener("touchcancel", cleanup, { once: true });
114
- }, [maxWidth, minWidth, setWidth, setClampedWidth, thRef]);
112
+ }, [resizeMax, resizeMin, setWidth, setClampedWidth, thRef]);
115
113
  const handleMouseDown = useCallback((event) => {
116
114
  startResize(event.clientX);
117
115
  }, [startResize]);
118
116
  const handleTouchStart = useCallback((event) => {
119
117
  startResize(event.touches[0].clientX);
120
118
  }, [startResize]);
121
- // Auto-size column to fit content on double click. NB: Doesn't work with block content!
119
+ // Auto-size column to fit content on double click
122
120
  const handleDoubleClick = useCallback(() => {
123
121
  const newColumnWidth = getAutoColumnWidth(thRef);
124
122
  if (newColumnWidth) {
@@ -127,18 +125,17 @@ function useTableColumnResize(args) {
127
125
  }, [setClampedWidth, thRef]);
128
126
  if (tableContext.layout !== "fixed") {
129
127
  return {
130
- style,
131
128
  enabled: false,
132
129
  };
133
130
  }
134
131
  if (!resizable) {
135
132
  return {
136
- style: Object.assign(Object.assign({}, style), { width }),
133
+ width,
137
134
  enabled: false,
138
135
  };
139
136
  }
140
137
  return {
141
- style: Object.assign(Object.assign({}, style), { width }),
138
+ width,
142
139
  resizeHandlerProps: {
143
140
  onMouseDown: handleMouseDown,
144
141
  onTouchStart: handleTouchStart,
@@ -151,11 +148,15 @@ function useTableColumnResize(args) {
151
148
  enabled: true,
152
149
  };
153
150
  }
151
+ /**
152
+ * Figures out how wide the column needs to be to fit all the content without truncation.
153
+ * NB: Does not work with block content!
154
+ */
154
155
  function getAutoColumnWidth(thRef) {
155
156
  var _a;
156
157
  const th = thRef.current;
157
158
  const thContent = th.querySelector(".aksel-data-table__th-content");
158
- const thPaddingEl = th.querySelector("div");
159
+ const thPaddingEl = th.querySelector(".aksel-data-table__cell-content");
159
160
  const rows = (_a = th.closest("table")) === null || _a === void 0 ? void 0 : _a.querySelectorAll("tbody tr, tfoot tr");
160
161
  if (!thContent || !thPaddingEl || !rows) {
161
162
  return;
@@ -192,13 +193,14 @@ function getAutoColumnWidth(thRef) {
192
193
  }
193
194
  skipRows = cell.rowSpan - 1;
194
195
  // Find needed width
195
- const cellContent = cell.firstChild;
196
+ const cellContent = cell.querySelector(".aksel-data-table__cell-content");
196
197
  range.selectNodeContents(cellContent);
197
198
  const cellContentWidth = range.getBoundingClientRect().width;
198
199
  const contentElStyle = window.getComputedStyle(cellContent);
199
200
  const inlinePadding = parseInt(contentElStyle.paddingLeft, 10) +
200
201
  parseInt(contentElStyle.paddingRight, 10);
201
- const widthNeededForThisCell = (cellContentWidth + inlinePadding) / cell.colSpan;
202
+ const marginLeft = parseInt(contentElStyle.marginLeft, 10); // We don't have right margin for now
203
+ const widthNeededForThisCell = (cellContentWidth + inlinePadding + marginLeft) / cell.colSpan;
202
204
  if (widthNeededForThisCell > newColumnWidth) {
203
205
  newColumnWidth = widthNeededForThisCell;
204
206
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useTableColumnResize.js","sourceRoot":"","sources":["../../../../src/data/table/column-header/useTableColumnResize.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useTableColumnResize.js","sourceRoot":"","sources":["../../../../src/data/table/column-header/useTableColumnResize.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  declare function DataTableDetailsPanelRow<T>({ rowId, rowData, }: {
3
- rowId: string | number;
3
+ rowId: string;
4
4
  rowData: T;
5
5
  }): React.JSX.Element | null;
6
6
  export { DataTableDetailsPanelRow };
@@ -2,7 +2,7 @@ import React from "react";
2
2
  import { getDataTableDetailsPanelId, useDataTableDetailsPanel, } from "../hooks/useTableDetailsPanel.js";
3
3
  import { useDataTableContext } from "../root/DataTableRoot.context.js";
4
4
  function DataTableDetailsPanelRow({ rowId, rowData, }) {
5
- const { tableId, fullWidthColSpan } = useDataTableContext();
5
+ const { tableId, totalColSpan } = useDataTableContext();
6
6
  const { enableDetailsPanel, isExpanded, getDetailsPanelContent, getDetailsPanelHeight, } = useDataTableDetailsPanel();
7
7
  if (!enableDetailsPanel) {
8
8
  return null;
@@ -20,7 +20,7 @@ function DataTableDetailsPanelRow({ rowId, rowData, }) {
20
20
  ? { height: panelHeight, overflow: "auto" }
21
21
  : { height: "auto" };
22
22
  return (React.createElement("tr", { className: "aksel-data-table__details-panel-row" },
23
- React.createElement("td", { id: expansionId, colSpan: fullWidthColSpan, className: "aksel-data-table__details-panel-row-cell" },
23
+ React.createElement("td", { id: expansionId, colSpan: totalColSpan, className: "aksel-data-table__details-panel-row-cell" },
24
24
  React.createElement("div", { style: style }, content))));
25
25
  }
26
26
  export { DataTableDetailsPanelRow };
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableDetailsPanelRow.js","sourceRoot":"","sources":["../../../../src/data/table/details-panel-row/DataTableDetailsPanelRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,SAAS,wBAAwB,CAAI,EACnC,KAAK,EACL,OAAO,GAIR;IACC,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,mBAAmB,EAAE,CAAC;IAC5D,MAAM,EACJ,kBAAkB,EAClB,UAAU,EACV,sBAAsB,EACtB,qBAAqB,GACtB,GAAG,wBAAwB,EAAE,CAAC;IAE/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAG,OAAO,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,0BAA0B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAE/D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAG,OAAO,CAAC,CAAC;IAErD,MAAM,KAAK,GAAwB,WAAW;QAC5C,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE;QAC3C,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAEvB,OAAO,CACL,4BAAI,SAAS,EAAC,qCAAqC;QACjD,4BACE,EAAE,EAAE,WAAW,EACf,OAAO,EAAE,gBAAgB,EACzB,SAAS,EAAC,0CAA0C;YAEpD,6BAAK,KAAK,EAAE,KAAK,IAAG,OAAO,CAAO,CAC/B,CACF,CACN,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
1
+ {"version":3,"file":"DataTableDetailsPanelRow.js","sourceRoot":"","sources":["../../../../src/data/table/details-panel-row/DataTableDetailsPanelRow.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EACL,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAEpE,SAAS,wBAAwB,CAAI,EACnC,KAAK,EACL,OAAO,GAIR;IACC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,GAAG,mBAAmB,EAAE,CAAC;IACxD,MAAM,EACJ,kBAAkB,EAClB,UAAU,EACV,sBAAsB,EACtB,qBAAqB,GACtB,GAAG,wBAAwB,EAAE,CAAC;IAE/B,IAAI,CAAC,kBAAkB,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,OAAO,GAAG,sBAAsB,aAAtB,sBAAsB,uBAAtB,sBAAsB,CAAG,OAAO,CAAC,CAAC;IAClD,MAAM,WAAW,GAAG,0BAA0B,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAE/D,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,WAAW,GAAG,qBAAqB,aAArB,qBAAqB,uBAArB,qBAAqB,CAAG,OAAO,CAAC,CAAC;IAErD,MAAM,KAAK,GAAwB,WAAW;QAC5C,CAAC,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,MAAM,EAAE;QAC3C,CAAC,CAAC,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAEvB,OAAO,CACL,4BAAI,SAAS,EAAC,qCAAqC;QACjD,4BACE,EAAE,EAAE,WAAW,EACf,OAAO,EAAE,YAAY,EACrB,SAAS,EAAC,0CAA0C;YAEpD,6BAAK,KAAK,EAAE,KAAK,IAAG,OAAO,CAAO,CAC/B,CACF,CACN,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,wBAAwB,EAAE,CAAC"}
@@ -1,4 +1,4 @@
1
- type TableRowEntryId = string | number;
1
+ import type { TableRowEntryId } from "../root/DataTable.types.js";
2
2
  type CollectTableRowEntriesArgs<T> = {
3
3
  items: T[];
4
4
  getRowId?: (rowData: T, index: number) => TableRowEntryId;
@@ -23,4 +23,4 @@ type CollectTableRowEntriesReturn<T> = {
23
23
  };
24
24
  declare function collectTableRowEntries<T>({ items, getRowId, getRows, isRowExpandable, }: CollectTableRowEntriesArgs<T>): CollectTableRowEntriesReturn<T>;
25
25
  export { collectTableRowEntries };
26
- export type { CollectTableRowEntriesArgs, CollectTableRowEntriesReturn, TableRowEntryId, ItemDetail, };
26
+ export type { CollectTableRowEntriesArgs, CollectTableRowEntriesReturn, ItemDetail, };
@@ -1,15 +1,17 @@
1
+ import type { SetStateAction } from "react";
1
2
  import type { CheckboxInputProps } from "../../../../form/checkbox/checkbox-input/CheckboxInput.js";
2
- type GetMultipleSelectPropsArgs = {
3
- selectedKeysSet: Set<string | number>;
4
- selectedKeys: (string | number)[];
5
- setSelectedKeys: (keys: (string | number)[]) => void;
6
- disabledKeysSet: Set<string | number>;
7
- visibleRowIds: (string | number)[];
8
- childRowIdsById?: Map<string | number, (string | number)[]>;
9
- };
10
- declare function getMultipleSelectProps({ selectedKeysSet, selectedKeys, setSelectedKeys, disabledKeysSet, visibleRowIds, childRowIdsById, }: GetMultipleSelectPropsArgs): {
3
+ import type { UseTableItemsReturn } from "../../hooks/useTableItems.js";
4
+ import type { TableRowEntryId } from "../../root/DataTable.types.js";
5
+ import type { SelectedKeysT, SelectionProps } from "./selection.types.js";
6
+ type GetMultipleSelectPropsArgs<T> = {
7
+ selectedKeysSet: Set<TableRowEntryId>;
8
+ selectedKeys: SelectedKeysT;
9
+ setSelectedKeys: (next: SetStateAction<SelectedKeysT>) => void;
10
+ tableItems: UseTableItemsReturn<T>;
11
+ } & Pick<SelectionProps<T>, "enableRowSelection">;
12
+ declare function getMultipleSelectProps<T>({ selectedKeysSet, selectedKeys, setSelectedKeys, enableRowSelection, tableItems, }: GetMultipleSelectPropsArgs<T>): {
11
13
  getTheadCheckboxProps: () => CheckboxInputProps;
12
- getRowCheckboxProps: (key: string | number) => CheckboxInputProps;
13
- toggleSelection: (key: string | number) => void;
14
+ getRowCheckboxProps: (key: TableRowEntryId, row: T) => CheckboxInputProps;
15
+ toggleSelection: (key: TableRowEntryId, row: T) => void;
14
16
  };
15
17
  export { getMultipleSelectProps };