@veeqo/ui 9.8.0 → 9.9.0

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 (195) hide show
  1. package/dist/components/ActionMenu/ActionMenu.cjs +1 -0
  2. package/dist/components/ActionMenu/ActionMenu.cjs.map +1 -1
  3. package/dist/components/ActionMenu/ActionMenu.js +1 -0
  4. package/dist/components/ActionMenu/ActionMenu.js.map +1 -1
  5. package/dist/components/DataGrid/DataGrid.cjs +104 -0
  6. package/dist/components/DataGrid/DataGrid.cjs.map +1 -0
  7. package/dist/components/DataGrid/DataGrid.d.ts +21 -0
  8. package/dist/components/DataGrid/DataGrid.js +98 -0
  9. package/dist/components/DataGrid/DataGrid.js.map +1 -0
  10. package/dist/components/DataGrid/components/Body/Body.cjs +21 -0
  11. package/dist/components/DataGrid/components/Body/Body.cjs.map +1 -0
  12. package/dist/components/DataGrid/components/Body/Body.d.ts +23 -0
  13. package/dist/components/DataGrid/components/Body/Body.js +14 -0
  14. package/dist/components/DataGrid/components/Body/Body.js.map +1 -0
  15. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.cjs +29 -0
  16. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.cjs.map +1 -0
  17. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.d.ts +18 -0
  18. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.js +23 -0
  19. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.js.map +1 -0
  20. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.module.css.cjs +11 -0
  21. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.module.css.cjs.map +1 -0
  22. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.module.css.js +9 -0
  23. package/dist/components/DataGrid/components/Body/BodyCell/BodyCell.module.css.js.map +1 -0
  24. package/dist/components/DataGrid/components/Body/BodyCell/index.d.ts +1 -0
  25. package/dist/components/DataGrid/components/Body/Row/Row.cjs +14 -0
  26. package/dist/components/DataGrid/components/Body/Row/Row.cjs.map +1 -0
  27. package/dist/components/DataGrid/components/Body/Row/Row.d.ts +18 -0
  28. package/dist/components/DataGrid/components/Body/Row/Row.js +8 -0
  29. package/dist/components/DataGrid/components/Body/Row/Row.js.map +1 -0
  30. package/dist/components/DataGrid/components/Body/Row/index.d.ts +1 -0
  31. package/dist/components/DataGrid/components/Body/index.d.ts +1 -0
  32. package/dist/components/DataGrid/components/CellContent/CellContent.cjs +21 -0
  33. package/dist/components/DataGrid/components/CellContent/CellContent.cjs.map +1 -0
  34. package/dist/components/DataGrid/components/CellContent/CellContent.d.ts +15 -0
  35. package/dist/components/DataGrid/components/CellContent/CellContent.js +15 -0
  36. package/dist/components/DataGrid/components/CellContent/CellContent.js.map +1 -0
  37. package/dist/components/DataGrid/components/CellContent/CellContent.module.css.cjs +11 -0
  38. package/dist/components/DataGrid/components/CellContent/CellContent.module.css.cjs.map +1 -0
  39. package/dist/components/DataGrid/components/CellContent/CellContent.module.css.js +9 -0
  40. package/dist/components/DataGrid/components/CellContent/CellContent.module.css.js.map +1 -0
  41. package/dist/components/DataGrid/components/CellContent/index.d.ts +1 -0
  42. package/dist/components/DataGrid/components/Columns/Columns.cjs +56 -0
  43. package/dist/components/DataGrid/components/Columns/Columns.cjs.map +1 -0
  44. package/dist/components/DataGrid/components/Columns/Columns.d.ts +17 -0
  45. package/dist/components/DataGrid/components/Columns/Columns.js +50 -0
  46. package/dist/components/DataGrid/components/Columns/Columns.js.map +1 -0
  47. package/dist/components/DataGrid/components/Columns/index.d.ts +1 -0
  48. package/dist/components/DataGrid/components/Footer/Footer.cjs +18 -0
  49. package/dist/components/DataGrid/components/Footer/Footer.cjs.map +1 -0
  50. package/dist/components/DataGrid/components/Footer/Footer.d.ts +15 -0
  51. package/dist/components/DataGrid/components/Footer/Footer.js +12 -0
  52. package/dist/components/DataGrid/components/Footer/Footer.js.map +1 -0
  53. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.cjs +25 -0
  54. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.cjs.map +1 -0
  55. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.d.ts +18 -0
  56. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.js +19 -0
  57. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.js.map +1 -0
  58. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.module.css.cjs +11 -0
  59. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.module.css.cjs.map +1 -0
  60. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.module.css.js +9 -0
  61. package/dist/components/DataGrid/components/Footer/FooterCell/FooterCell.module.css.js.map +1 -0
  62. package/dist/components/DataGrid/components/Footer/FooterCell/index.d.ts +1 -0
  63. package/dist/components/DataGrid/components/Footer/index.d.ts +1 -0
  64. package/dist/components/DataGrid/components/GridContainer/Container/Container.cjs +23 -0
  65. package/dist/components/DataGrid/components/GridContainer/Container/Container.cjs.map +1 -0
  66. package/dist/components/DataGrid/components/GridContainer/Container/Container.d.ts +21 -0
  67. package/dist/components/DataGrid/components/GridContainer/Container/Container.js +17 -0
  68. package/dist/components/DataGrid/components/GridContainer/Container/Container.js.map +1 -0
  69. package/dist/components/DataGrid/components/GridContainer/Container/Container.module.css.cjs +17 -0
  70. package/dist/components/DataGrid/components/GridContainer/Container/Container.module.css.cjs.map +1 -0
  71. package/dist/components/DataGrid/components/GridContainer/Container/Container.module.css.js +12 -0
  72. package/dist/components/DataGrid/components/GridContainer/Container/Container.module.css.js.map +1 -0
  73. package/dist/components/DataGrid/components/GridContainer/Container/index.d.ts +1 -0
  74. package/dist/components/DataGrid/components/GridContainer/GridContainer.cjs +25 -0
  75. package/dist/components/DataGrid/components/GridContainer/GridContainer.cjs.map +1 -0
  76. package/dist/components/DataGrid/components/GridContainer/GridContainer.d.ts +49 -0
  77. package/dist/components/DataGrid/components/GridContainer/GridContainer.js +19 -0
  78. package/dist/components/DataGrid/components/GridContainer/GridContainer.js.map +1 -0
  79. package/dist/components/DataGrid/components/GridContainer/GridContainer.module.css.cjs +11 -0
  80. package/dist/components/DataGrid/components/GridContainer/GridContainer.module.css.cjs.map +1 -0
  81. package/dist/components/DataGrid/components/GridContainer/GridContainer.module.css.js +9 -0
  82. package/dist/components/DataGrid/components/GridContainer/GridContainer.module.css.js.map +1 -0
  83. package/dist/components/DataGrid/components/GridContainer/index.d.ts +1 -0
  84. package/dist/components/DataGrid/components/Header/Header.cjs +20 -0
  85. package/dist/components/DataGrid/components/Header/Header.cjs.map +1 -0
  86. package/dist/components/DataGrid/components/Header/Header.d.ts +13 -0
  87. package/dist/components/DataGrid/components/Header/Header.js +14 -0
  88. package/dist/components/DataGrid/components/Header/Header.js.map +1 -0
  89. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.cjs +40 -0
  90. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.cjs.map +1 -0
  91. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.d.ts +22 -0
  92. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.js +34 -0
  93. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.js.map +1 -0
  94. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.module.css.cjs +15 -0
  95. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.module.css.cjs.map +1 -0
  96. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.module.css.js +11 -0
  97. package/dist/components/DataGrid/components/Header/HeaderCell/HeaderCell.module.css.js.map +1 -0
  98. package/dist/components/DataGrid/components/Header/HeaderCell/index.d.ts +1 -0
  99. package/dist/components/DataGrid/components/Header/Resizer/Resizer.cjs +25 -0
  100. package/dist/components/DataGrid/components/Header/Resizer/Resizer.cjs.map +1 -0
  101. package/dist/components/DataGrid/components/Header/Resizer/Resizer.d.ts +21 -0
  102. package/dist/components/DataGrid/components/Header/Resizer/Resizer.js +19 -0
  103. package/dist/components/DataGrid/components/Header/Resizer/Resizer.js.map +1 -0
  104. package/dist/components/DataGrid/components/Header/Resizer/Resizer.module.css.cjs +11 -0
  105. package/dist/components/DataGrid/components/Header/Resizer/Resizer.module.css.cjs.map +1 -0
  106. package/dist/components/DataGrid/components/Header/Resizer/Resizer.module.css.js +9 -0
  107. package/dist/components/DataGrid/components/Header/Resizer/Resizer.module.css.js.map +1 -0
  108. package/dist/components/DataGrid/components/Header/Resizer/index.d.ts +1 -0
  109. package/dist/components/DataGrid/components/Header/index.d.ts +1 -0
  110. package/dist/components/DataGrid/components/index.d.ts +5 -0
  111. package/dist/components/DataGrid/constants.cjs +12 -0
  112. package/dist/components/DataGrid/constants.cjs.map +1 -0
  113. package/dist/components/DataGrid/constants.d.ts +4 -0
  114. package/dist/components/DataGrid/constants.js +7 -0
  115. package/dist/components/DataGrid/constants.js.map +1 -0
  116. package/dist/components/DataGrid/index.d.ts +1 -0
  117. package/dist/components/DataGrid/types/AriaRoles.d.ts +4 -0
  118. package/dist/components/DataGrid/types/ColumnDefinition.d.ts +75 -0
  119. package/dist/components/DataGrid/types/DataGridProps.d.ts +70 -0
  120. package/dist/components/DataGrid/types/declarations.d.ts +9 -0
  121. package/dist/components/DataGrid/types/enums.d.ts +2 -0
  122. package/dist/components/DataGrid/types/index.d.ts +4 -0
  123. package/dist/components/DataGrid/utils/ColumnMapper.cjs +95 -0
  124. package/dist/components/DataGrid/utils/ColumnMapper.cjs.map +1 -0
  125. package/dist/components/DataGrid/utils/ColumnMapper.d.ts +10 -0
  126. package/dist/components/DataGrid/utils/ColumnMapper.js +93 -0
  127. package/dist/components/DataGrid/utils/ColumnMapper.js.map +1 -0
  128. package/dist/components/DataGrid/utils/getAriaRoles.cjs +11 -0
  129. package/dist/components/DataGrid/utils/getAriaRoles.cjs.map +1 -0
  130. package/dist/components/DataGrid/utils/getAriaRoles.d.ts +2 -0
  131. package/dist/components/DataGrid/utils/getAriaRoles.js +9 -0
  132. package/dist/components/DataGrid/utils/getAriaRoles.js.map +1 -0
  133. package/dist/components/DataGrid/utils/index.d.ts +3 -0
  134. package/dist/components/DataGrid/utils/isLastColumn.cjs +11 -0
  135. package/dist/components/DataGrid/utils/isLastColumn.cjs.map +1 -0
  136. package/dist/components/DataGrid/utils/isLastColumn.d.ts +2 -0
  137. package/dist/components/DataGrid/utils/isLastColumn.js +9 -0
  138. package/dist/components/DataGrid/utils/isLastColumn.js.map +1 -0
  139. package/dist/components/DataTable/DataTable.cjs +5 -2
  140. package/dist/components/DataTable/DataTable.cjs.map +1 -1
  141. package/dist/components/DataTable/DataTable.js +5 -2
  142. package/dist/components/DataTable/DataTable.js.map +1 -1
  143. package/dist/components/DataTable/hooks/index.d.ts +0 -1
  144. package/dist/components/DataTable/index.d.ts +1 -1
  145. package/dist/components/FilterTag/FilterTag.cjs +1 -0
  146. package/dist/components/FilterTag/FilterTag.cjs.map +1 -1
  147. package/dist/components/FilterTag/FilterTag.js +1 -0
  148. package/dist/components/FilterTag/FilterTag.js.map +1 -1
  149. package/dist/components/SelectDropdown/ListItem/ListItem.cjs +1 -0
  150. package/dist/components/SelectDropdown/ListItem/ListItem.cjs.map +1 -1
  151. package/dist/components/SelectDropdown/ListItem/ListItem.js +1 -0
  152. package/dist/components/SelectDropdown/ListItem/ListItem.js.map +1 -1
  153. package/dist/components/VideoModal/VideoModal.cjs +1 -0
  154. package/dist/components/VideoModal/VideoModal.cjs.map +1 -1
  155. package/dist/components/VideoModal/VideoModal.js +1 -0
  156. package/dist/components/VideoModal/VideoModal.js.map +1 -1
  157. package/dist/components/View/View.cjs +1 -0
  158. package/dist/components/View/View.cjs.map +1 -1
  159. package/dist/components/View/View.js +1 -0
  160. package/dist/components/View/View.js.map +1 -1
  161. package/dist/components/ViewTab/ViewTab.cjs +1 -0
  162. package/dist/components/ViewTab/ViewTab.cjs.map +1 -1
  163. package/dist/components/ViewTab/ViewTab.js +1 -0
  164. package/dist/components/ViewTab/ViewTab.js.map +1 -1
  165. package/dist/components/index.d.ts +2 -1
  166. package/dist/hooks/index.d.ts +3 -0
  167. package/dist/{components/DataTable/hooks → hooks}/useDragToScroll.cjs +10 -2
  168. package/dist/hooks/useDragToScroll.cjs.map +1 -0
  169. package/dist/hooks/useDragToScroll.d.ts +12 -0
  170. package/dist/{components/DataTable/hooks → hooks}/useDragToScroll.js +10 -2
  171. package/dist/hooks/useDragToScroll.js.map +1 -0
  172. package/dist/hooks/useIntersectionObserver.cjs +57 -0
  173. package/dist/hooks/useIntersectionObserver.cjs.map +1 -0
  174. package/dist/hooks/useIntersectionObserver.d.ts +15 -0
  175. package/dist/hooks/useIntersectionObserver.js +51 -0
  176. package/dist/hooks/useIntersectionObserver.js.map +1 -0
  177. package/dist/hooks/useResizeObserver.cjs +67 -0
  178. package/dist/hooks/useResizeObserver.cjs.map +1 -0
  179. package/dist/hooks/useResizeObserver.d.ts +18 -0
  180. package/dist/hooks/useResizeObserver.js +61 -0
  181. package/dist/hooks/useResizeObserver.js.map +1 -0
  182. package/dist/index.cjs +8 -2
  183. package/dist/index.cjs.map +1 -1
  184. package/dist/index.js +4 -1
  185. package/dist/index.js.map +1 -1
  186. package/dist/theme/index.d.ts +1 -0
  187. package/dist/theme/modules/layers.cjs +1 -0
  188. package/dist/theme/modules/layers.cjs.map +1 -1
  189. package/dist/theme/modules/layers.d.ts +1 -0
  190. package/dist/theme/modules/layers.js +1 -0
  191. package/dist/theme/modules/layers.js.map +1 -1
  192. package/package.json +2 -1
  193. package/dist/components/DataTable/hooks/useDragToScroll.cjs.map +0 -1
  194. package/dist/components/DataTable/hooks/useDragToScroll.d.ts +0 -2
  195. package/dist/components/DataTable/hooks/useDragToScroll.js.map +0 -1
@@ -0,0 +1,75 @@
1
+ import { ReactElement } from 'react';
2
+ import { DeepKeys } from '@tanstack/react-table';
3
+ export type ColumnAlignment = 'left' | 'center' | 'right';
4
+ export type ColumnAccessor<T> = (row: T) => any;
5
+ /**
6
+ * Basic column definition.
7
+ */
8
+ export type BaseColumnDefinition = {
9
+ /**
10
+ * Column ID, this must be a string.
11
+ */
12
+ id: string;
13
+ /**
14
+ * Column title.
15
+ */
16
+ title: string;
17
+ /**
18
+ * Column alignment, used to control alignment of content within cells.
19
+ */
20
+ align?: ColumnAlignment;
21
+ /**
22
+ * Indicates that the cell in this column is the header for its row.
23
+ */
24
+ rowHeader?: boolean;
25
+ /**
26
+ * Indicates whether the column is resizeable or not. If a column is resizeable, sizing should be
27
+ * provided to ensure columns are given necessary default width's for your content.
28
+ */
29
+ resizeable?: boolean;
30
+ /**
31
+ * Column width, only used when resizeable columns are enabled, otherwise the default table
32
+ * layout algorithm will be used to determine the best fit.
33
+ * @default 150
34
+ */
35
+ width?: number;
36
+ /**
37
+ * Minimum column width, only used when resizeable columns are enabled.
38
+ * @default 120
39
+ */
40
+ minWidth?: number;
41
+ /**
42
+ * Maximum column width, only used when resizeable columns are enabled.
43
+ * @default Number.MAX_SAFE_INTEGER
44
+ */
45
+ maxWidth?: number;
46
+ /**
47
+ * Optional getter used to create an `aria-label` for the column header. If none is provided, the
48
+ * column's `title` will be used.
49
+ *
50
+ * TODO: Add sort direction and other information.
51
+ */
52
+ getAriaLabel?: () => string;
53
+ /**
54
+ * Optional render method used to render a column footer.
55
+ */
56
+ renderFooter?: () => ReactElement;
57
+ /**
58
+ * Optional render method used to render a custom column header in place of the column title.
59
+ */
60
+ renderHeader?: () => ReactElement;
61
+ };
62
+ /**
63
+ * Column which has an underlying value in the model, can be sorted.
64
+ */
65
+ export type DataColumnDefinition<T> = BaseColumnDefinition & {
66
+ field: DeepKeys<T> | ColumnAccessor<T>;
67
+ renderCell?: (fieldValue: any, row: T) => ReactElement | null | string;
68
+ };
69
+ /**
70
+ * Column which is purely for display, not part of the model, cannot be sorted.
71
+ */
72
+ export type DisplayColumnDefinition<T> = BaseColumnDefinition & {
73
+ renderCell: (row: T) => ReactElement | null | string;
74
+ };
75
+ export type ColumnDefinition<T> = DataColumnDefinition<T> | DisplayColumnDefinition<T>;
@@ -0,0 +1,70 @@
1
+ import React, { AriaAttributes, ReactElement } from 'react';
2
+ import { SizeScale } from 'Theme/modules/sizes';
3
+ import { BorderMode, ResizeMode } from './enums';
4
+ import { ColumnDefinition } from './ColumnDefinition';
5
+ export type CustomState = {
6
+ iconSlot: ReactElement;
7
+ heading: string;
8
+ subHeading?: string;
9
+ };
10
+ export type DataGridProps = Pick<AriaAttributes, 'aria-label'> & {
11
+ /** General config */
12
+ /**
13
+ * Density, controls the spacing between rows in the table.
14
+ *
15
+ * @default 'base'
16
+ */
17
+ density?: keyof SizeScale;
18
+ /**
19
+ * Enable/disable row striping.
20
+ *
21
+ * @default true
22
+ */
23
+ striped?: boolean;
24
+ /**
25
+ * Border mode, controls the border displayed in the container around the grid.
26
+ *
27
+ * @default 'full'
28
+ */
29
+ borderMode?: BorderMode;
30
+ /**
31
+ * Resize mode, used to control whether or not columns within the grid can be resized. Use `onChange` to have columns resize as the user drags, `onEnd` to have them resize after the user
32
+ * releases the resize bar, or `off` to disable column resizing.
33
+ *
34
+ * If column resizing is disabled, columns will be sized according to the best fit as decided by the browser's table rendering algorithm.
35
+ *
36
+ * If column resizing is enabled, columns will be rendered with fixed column widths.
37
+ *
38
+ * @default 'off'
39
+ */
40
+ resizeMode?: ResizeMode;
41
+ /**
42
+ * Additional styles to be applied to the grid container.
43
+ */
44
+ containerStyle?: React.CSSProperties;
45
+ /** Columns */
46
+ /**
47
+ * Column definitions. It is not recommended that you modify these once the table has been initialized, since internal state
48
+ * is built based around the initial set of column definitions passed to the component.
49
+ *
50
+ * If you need to control visibility, pinning, or ordering, you can do so through other props (`hiddenColumns`, `columnOrder`, and `pinnedColumns`).
51
+ */
52
+ columns: ColumnDefinition<any>[];
53
+ /**
54
+ * Hidden columns, an array of column ID's, can be used to hide columns in the table.
55
+ */
56
+ hiddenColumns?: string[];
57
+ /**
58
+ * Column ordering, an array of column ID's, can be used to reorder columns in the table.
59
+ */
60
+ columnOrdering?: string[];
61
+ /** Rows */
62
+ /**
63
+ * Data to render within the table.
64
+ */
65
+ data: any[];
66
+ /**
67
+ * Getter which returns the ID to use for a row (a string). If one isn't provided, the row index will be used instead.
68
+ */
69
+ getRowId?: (row: any, index: number, parent?: any) => string;
70
+ };
@@ -0,0 +1,9 @@
1
+ import { RowData } from '@tanstack/react-table';
2
+ declare module '@tanstack/react-table' {
3
+ interface ColumnMeta<TData extends RowData, TValue> {
4
+ rowHeader?: boolean;
5
+ textAlign: string;
6
+ justifyContent: string;
7
+ getAriaLabel?: () => string;
8
+ }
9
+ }
@@ -0,0 +1,2 @@
1
+ export type ResizeMode = 'onChange' | 'onEnd' | 'off';
2
+ export type BorderMode = 'full' | 'vertical' | 'none';
@@ -0,0 +1,4 @@
1
+ export { ResizeMode, BorderMode } from './enums';
2
+ export { DataGridProps } from './DataGridProps';
3
+ export { AriaRoles } from './AriaRoles';
4
+ export { ColumnDefinition } from './ColumnDefinition';
@@ -0,0 +1,95 @@
1
+ 'use strict';
2
+
3
+ var reactTable = require('@tanstack/react-table');
4
+ var constants = require('../constants.cjs');
5
+
6
+ /**
7
+ * Helper method which checks whether a given column definition is a `DataColumn`.
8
+ * @param column The column definition to check.
9
+ * @returns True if the column definition is a `DataColumn`, false otherwise.
10
+ */
11
+ const isDataColumn = (column) => {
12
+ return column.field !== undefined;
13
+ };
14
+ /**
15
+ * Maps a column alignment to the equivalent flexbox alignment.
16
+ * @param align The column alingment to map.
17
+ * @returns The flexbox alignment.
18
+ */
19
+ function alignmentToFlex(align) {
20
+ switch (align) {
21
+ case 'left':
22
+ return 'flex-start';
23
+ case 'center':
24
+ return 'center';
25
+ case 'right':
26
+ return 'flex-end';
27
+ default:
28
+ return 'flex-start';
29
+ }
30
+ }
31
+ /**
32
+ * Validates a column definition, ensuring required properties are defined and values make sense.
33
+ * @param definition The column definition to validate.
34
+ * @throws Error if the column definition is invalid.
35
+ */
36
+ const validateColumnDefinition = (definition) => {
37
+ if (!definition.id) {
38
+ throw new Error("[ColumnMapper] Column definition is missing an 'id' property.");
39
+ }
40
+ if (!isDataColumn(definition)) {
41
+ if (!definition.renderCell) {
42
+ throw new Error(`[ColumnMapper] Column '${definition.id}' is a display column but is missing a 'renderCell' property.`);
43
+ }
44
+ }
45
+ if (definition.width && definition.minWidth && definition.width < definition.minWidth) {
46
+ throw new Error(`[ColumnMapper] Column '${definition.id}' has a size of ${definition.width} which is smaller than its minimum size of ${definition.minWidth}.`);
47
+ }
48
+ if (definition.width && definition.maxWidth && definition.width > definition.maxWidth) {
49
+ throw new Error(`[ColumnMapper] Column '${definition.id}' has a size of ${definition.width} which is larger than its maximum size of ${definition.maxWidth}.`);
50
+ }
51
+ };
52
+ /**
53
+ * Mapper which validates and converts our ColumnDefinition's to a ColumnDef for use in TanStack Table.
54
+ */
55
+ class ColumnMapper {
56
+ constructor() {
57
+ this.columnHelper = reactTable.createColumnHelper();
58
+ }
59
+ mapColumnDefinition(definition) {
60
+ var _a, _b, _c, _d, _e, _f;
61
+ const sharedColumnProps = {
62
+ id: definition.id,
63
+ enableResizing: !!definition.resizeable,
64
+ header: (_a = definition.renderHeader) !== null && _a !== undefined ? _a : definition.title,
65
+ footer: definition.renderFooter,
66
+ size: (_b = definition.width) !== null && _b !== undefined ? _b : constants.DEFAULT_COLUMN_WIDTH,
67
+ maxSize: (_c = definition.maxWidth) !== null && _c !== undefined ? _c : constants.DEFAULT_COLUMN_MAXIMUM_WIDTH,
68
+ minSize: (_d = definition.minWidth) !== null && _d !== undefined ? _d : constants.DEFAULT_COLUMN_MINIMUM_WIDTH,
69
+ meta: {
70
+ rowHeader: !!definition.rowHeader,
71
+ // Generate flex and text alignment based off column.align
72
+ justifyContent: alignmentToFlex((_e = definition.align) !== null && _e !== undefined ? _e : constants.DEFAULT_CELL_ALIGN),
73
+ textAlign: (_f = definition.align) !== null && _f !== undefined ? _f : constants.DEFAULT_CELL_ALIGN,
74
+ getAriaLabel: definition.getAriaLabel,
75
+ },
76
+ };
77
+ validateColumnDefinition(definition);
78
+ if (isDataColumn(definition)) {
79
+ return this.columnHelper.accessor(definition.field, {
80
+ ...sharedColumnProps,
81
+ // enableSorting: definition.sortable ?? false,
82
+ cell: definition.renderCell
83
+ ? (context) => definition.renderCell(context.getValue(), context.row.original)
84
+ : (context) => context.getValue(),
85
+ });
86
+ }
87
+ return this.columnHelper.display({
88
+ ...sharedColumnProps,
89
+ cell: (context) => definition.renderCell(context.row.original),
90
+ });
91
+ }
92
+ }
93
+
94
+ exports.ColumnMapper = ColumnMapper;
95
+ //# sourceMappingURL=ColumnMapper.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnMapper.cjs","sources":["../../../../src/components/DataGrid/utils/ColumnMapper.ts"],"sourcesContent":["import { ColumnDef, ColumnHelper, createColumnHelper } from '@tanstack/react-table';\nimport { ColumnDefinition, DataColumnDefinition, ColumnAlignment } from '../types/ColumnDefinition';\nimport {\n DEFAULT_CELL_ALIGN,\n DEFAULT_COLUMN_MAXIMUM_WIDTH,\n DEFAULT_COLUMN_MINIMUM_WIDTH,\n DEFAULT_COLUMN_WIDTH,\n} from '../constants';\n\n/**\n * Helper method which checks whether a given column definition is a `DataColumn`.\n * @param column The column definition to check.\n * @returns True if the column definition is a `DataColumn`, false otherwise.\n */\nconst isDataColumn = <T>(column: ColumnDefinition<T>): column is DataColumnDefinition<T> => {\n return (column as DataColumnDefinition<T>).field !== undefined;\n};\n \n/**\n * Maps a column alignment to the equivalent flexbox alignment.\n * @param align The column alingment to map.\n * @returns The flexbox alignment.\n */\nfunction alignmentToFlex(align: ColumnAlignment) {\n switch (align) {\n case 'left':\n return 'flex-start';\n case 'center':\n return 'center';\n case 'right':\n return 'flex-end';\n default:\n return 'flex-start';\n }\n}\n\n/**\n * Validates a column definition, ensuring required properties are defined and values make sense.\n * @param definition The column definition to validate.\n * @throws Error if the column definition is invalid.\n */\nconst validateColumnDefinition = (definition: ColumnDefinition<any>) => {\n if (!definition.id) {\n throw new Error(\"[ColumnMapper] Column definition is missing an 'id' property.\");\n }\n\n if (!isDataColumn(definition)) {\n if (!definition.renderCell) {\n throw new Error(\n `[ColumnMapper] Column '${definition.id}' is a display column but is missing a 'renderCell' property.`,\n );\n }\n }\n\n if (definition.width && definition.minWidth && definition.width < definition.minWidth) {\n throw new Error(\n `[ColumnMapper] Column '${definition.id}' has a size of ${definition.width} which is smaller than its minimum size of ${definition.minWidth}.`,\n );\n }\n\n if (definition.width && definition.maxWidth && definition.width > definition.maxWidth) {\n throw new Error(\n `[ColumnMapper] Column '${definition.id}' has a size of ${definition.width} which is larger than its maximum size of ${definition.maxWidth}.`,\n );\n }\n};\n\n/**\n * Mapper which validates and converts our ColumnDefinition's to a ColumnDef for use in TanStack Table.\n */\nexport class ColumnMapper {\n private columnHelper: ColumnHelper<any>;\n\n constructor() {\n this.columnHelper = createColumnHelper<any>();\n }\n\n mapColumnDefinition(definition: ColumnDefinition<any>): ColumnDef<any, any> {\n const sharedColumnProps = {\n id: definition.id,\n enableResizing: !!definition.resizeable,\n\n header: definition.renderHeader ?? definition.title,\n footer: definition.renderFooter,\n\n size: definition.width ?? DEFAULT_COLUMN_WIDTH,\n maxSize: definition.maxWidth ?? DEFAULT_COLUMN_MAXIMUM_WIDTH,\n minSize: definition.minWidth ?? DEFAULT_COLUMN_MINIMUM_WIDTH,\n\n meta: {\n rowHeader: !!definition.rowHeader,\n // Generate flex and text alignment based off column.align\n justifyContent: alignmentToFlex(definition.align ?? DEFAULT_CELL_ALIGN),\n textAlign: definition.align ?? DEFAULT_CELL_ALIGN,\n getAriaLabel: definition.getAriaLabel,\n },\n };\n\n validateColumnDefinition(definition);\n\n if (isDataColumn(definition)) {\n return this.columnHelper.accessor(definition.field, {\n ...sharedColumnProps,\n // enableSorting: definition.sortable ?? false,\n cell: definition.renderCell\n ? (context) => definition.renderCell!(context.getValue(), context.row.original)\n : (context) => context.getValue(),\n });\n }\n\n return this.columnHelper.display({\n ...sharedColumnProps,\n cell: (context) => definition.renderCell(context.row.original),\n });\n }\n}\n"],"names":["createColumnHelper","DEFAULT_COLUMN_WIDTH","DEFAULT_COLUMN_MAXIMUM_WIDTH","DEFAULT_COLUMN_MINIMUM_WIDTH","DEFAULT_CELL_ALIGN"],"mappings":";;;;;AASA;;;;AAIG;AACH,MAAM,YAAY,GAAG,CAAI,MAA2B,KAAuC;AACzF,IAAA,OAAQ,MAAkC,CAAC,KAAK,KAAK,SAAS;AAChE,CAAC;AAED;;;;AAIG;AACH,SAAS,eAAe,CAAC,KAAsB,EAAA;AAC7C,IAAA,QAAQ,KAAK;AACX,QAAA,KAAK,MAAM;AACT,YAAA,OAAO,YAAY;AACrB,QAAA,KAAK,QAAQ;AACX,YAAA,OAAO,QAAQ;AACjB,QAAA,KAAK,OAAO;AACV,YAAA,OAAO,UAAU;AACnB,QAAA;AACE,YAAA,OAAO,YAAY;AACtB;AACH;AAEA;;;;AAIG;AACH,MAAM,wBAAwB,GAAG,CAAC,UAAiC,KAAI;AACrE,IAAA,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;AAClB,QAAA,MAAM,IAAI,KAAK,CAAC,+DAA+D,CAAC;AACjF;AAED,IAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,EAAE;AAC7B,QAAA,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;YAC1B,MAAM,IAAI,KAAK,CACb,CAAA,uBAAA,EAA0B,UAAU,CAAC,EAAE,CAA+D,6DAAA,CAAA,CACvG;AACF;AACF;AAED,IAAA,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE;AACrF,QAAA,MAAM,IAAI,KAAK,CACb,CAA0B,uBAAA,EAAA,UAAU,CAAC,EAAE,CAAA,gBAAA,EAAmB,UAAU,CAAC,KAAK,CAA8C,2CAAA,EAAA,UAAU,CAAC,QAAQ,CAAA,CAAA,CAAG,CAC/I;AACF;AAED,IAAA,IAAI,UAAU,CAAC,KAAK,IAAI,UAAU,CAAC,QAAQ,IAAI,UAAU,CAAC,KAAK,GAAG,UAAU,CAAC,QAAQ,EAAE;AACrF,QAAA,MAAM,IAAI,KAAK,CACb,CAA0B,uBAAA,EAAA,UAAU,CAAC,EAAE,CAAA,gBAAA,EAAmB,UAAU,CAAC,KAAK,CAA6C,0CAAA,EAAA,UAAU,CAAC,QAAQ,CAAA,CAAA,CAAG,CAC9I;AACF;AACH,CAAC;AAED;;AAEG;MACU,YAAY,CAAA;AAGvB,IAAA,WAAA,GAAA;AACE,QAAA,IAAI,CAAC,YAAY,GAAGA,6BAAkB,EAAO;;AAG/C,IAAA,mBAAmB,CAAC,UAAiC,EAAA;;AACnD,QAAA,MAAM,iBAAiB,GAAG;YACxB,EAAE,EAAE,UAAU,CAAC,EAAE;AACjB,YAAA,cAAc,EAAE,CAAC,CAAC,UAAU,CAAC,UAAU;YAEvC,MAAM,EAAE,MAAA,UAAU,CAAC,YAAY,MAAI,IAAA,IAAA,EAAA,KAAA,SAAA,GAAA,EAAA,GAAA,UAAU,CAAC,KAAK;YACnD,MAAM,EAAE,UAAU,CAAC,YAAY;AAE/B,YAAA,IAAI,EAAE,CAAA,EAAA,GAAA,UAAU,CAAC,KAAK,sCAAIC,8BAAoB;AAC9C,YAAA,OAAO,EAAE,CAAA,EAAA,GAAA,UAAU,CAAC,QAAQ,sCAAIC,sCAA4B;AAC5D,YAAA,OAAO,EAAE,CAAA,EAAA,GAAA,UAAU,CAAC,QAAQ,sCAAIC,sCAA4B;AAE5D,YAAA,IAAI,EAAE;AACJ,gBAAA,SAAS,EAAE,CAAC,CAAC,UAAU,CAAC,SAAS;;gBAEjC,cAAc,EAAE,eAAe,CAAC,CAAA,EAAA,GAAA,UAAU,CAAC,KAAK,MAAI,IAAA,IAAA,EAAA,KAAA,SAAA,GAAA,EAAA,GAAAC,4BAAkB,CAAC;AACvE,gBAAA,SAAS,EAAE,CAAA,EAAA,GAAA,UAAU,CAAC,KAAK,sCAAIA,4BAAkB;gBACjD,YAAY,EAAE,UAAU,CAAC,YAAY;AACtC,aAAA;SACF;QAED,wBAAwB,CAAC,UAAU,CAAC;AAEpC,QAAA,IAAI,YAAY,CAAC,UAAU,CAAC,EAAE;YAC5B,OAAO,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,EAAE;AAClD,gBAAA,GAAG,iBAAiB;;gBAEpB,IAAI,EAAE,UAAU,CAAC;sBACb,CAAC,OAAO,KAAK,UAAU,CAAC,UAAW,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,QAAQ;sBAC5E,CAAC,OAAO,KAAK,OAAO,CAAC,QAAQ,EAAE;AACpC,aAAA,CAAC;AACH;AAED,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC;AAC/B,YAAA,GAAG,iBAAiB;AACpB,YAAA,IAAI,EAAE,CAAC,OAAO,KAAK,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;AAC/D,SAAA,CAAC;;AAEL;;;;"}
@@ -0,0 +1,10 @@
1
+ import { ColumnDef } from '@tanstack/react-table';
2
+ import { ColumnDefinition } from '../types/ColumnDefinition';
3
+ /**
4
+ * Mapper which validates and converts our ColumnDefinition's to a ColumnDef for use in TanStack Table.
5
+ */
6
+ export declare class ColumnMapper {
7
+ private columnHelper;
8
+ constructor();
9
+ mapColumnDefinition(definition: ColumnDefinition<any>): ColumnDef<any, any>;
10
+ }
@@ -0,0 +1,93 @@
1
+ import { createColumnHelper } from '@tanstack/react-table';
2
+ import { DEFAULT_COLUMN_WIDTH, DEFAULT_COLUMN_MAXIMUM_WIDTH, DEFAULT_COLUMN_MINIMUM_WIDTH, DEFAULT_CELL_ALIGN } from '../constants.js';
3
+
4
+ /**
5
+ * Helper method which checks whether a given column definition is a `DataColumn`.
6
+ * @param column The column definition to check.
7
+ * @returns True if the column definition is a `DataColumn`, false otherwise.
8
+ */
9
+ const isDataColumn = (column) => {
10
+ return column.field !== undefined;
11
+ };
12
+ /**
13
+ * Maps a column alignment to the equivalent flexbox alignment.
14
+ * @param align The column alingment to map.
15
+ * @returns The flexbox alignment.
16
+ */
17
+ function alignmentToFlex(align) {
18
+ switch (align) {
19
+ case 'left':
20
+ return 'flex-start';
21
+ case 'center':
22
+ return 'center';
23
+ case 'right':
24
+ return 'flex-end';
25
+ default:
26
+ return 'flex-start';
27
+ }
28
+ }
29
+ /**
30
+ * Validates a column definition, ensuring required properties are defined and values make sense.
31
+ * @param definition The column definition to validate.
32
+ * @throws Error if the column definition is invalid.
33
+ */
34
+ const validateColumnDefinition = (definition) => {
35
+ if (!definition.id) {
36
+ throw new Error("[ColumnMapper] Column definition is missing an 'id' property.");
37
+ }
38
+ if (!isDataColumn(definition)) {
39
+ if (!definition.renderCell) {
40
+ throw new Error(`[ColumnMapper] Column '${definition.id}' is a display column but is missing a 'renderCell' property.`);
41
+ }
42
+ }
43
+ if (definition.width && definition.minWidth && definition.width < definition.minWidth) {
44
+ throw new Error(`[ColumnMapper] Column '${definition.id}' has a size of ${definition.width} which is smaller than its minimum size of ${definition.minWidth}.`);
45
+ }
46
+ if (definition.width && definition.maxWidth && definition.width > definition.maxWidth) {
47
+ throw new Error(`[ColumnMapper] Column '${definition.id}' has a size of ${definition.width} which is larger than its maximum size of ${definition.maxWidth}.`);
48
+ }
49
+ };
50
+ /**
51
+ * Mapper which validates and converts our ColumnDefinition's to a ColumnDef for use in TanStack Table.
52
+ */
53
+ class ColumnMapper {
54
+ constructor() {
55
+ this.columnHelper = createColumnHelper();
56
+ }
57
+ mapColumnDefinition(definition) {
58
+ var _a, _b, _c, _d, _e, _f;
59
+ const sharedColumnProps = {
60
+ id: definition.id,
61
+ enableResizing: !!definition.resizeable,
62
+ header: (_a = definition.renderHeader) !== null && _a !== undefined ? _a : definition.title,
63
+ footer: definition.renderFooter,
64
+ size: (_b = definition.width) !== null && _b !== undefined ? _b : DEFAULT_COLUMN_WIDTH,
65
+ maxSize: (_c = definition.maxWidth) !== null && _c !== undefined ? _c : DEFAULT_COLUMN_MAXIMUM_WIDTH,
66
+ minSize: (_d = definition.minWidth) !== null && _d !== undefined ? _d : DEFAULT_COLUMN_MINIMUM_WIDTH,
67
+ meta: {
68
+ rowHeader: !!definition.rowHeader,
69
+ // Generate flex and text alignment based off column.align
70
+ justifyContent: alignmentToFlex((_e = definition.align) !== null && _e !== undefined ? _e : DEFAULT_CELL_ALIGN),
71
+ textAlign: (_f = definition.align) !== null && _f !== undefined ? _f : DEFAULT_CELL_ALIGN,
72
+ getAriaLabel: definition.getAriaLabel,
73
+ },
74
+ };
75
+ validateColumnDefinition(definition);
76
+ if (isDataColumn(definition)) {
77
+ return this.columnHelper.accessor(definition.field, {
78
+ ...sharedColumnProps,
79
+ // enableSorting: definition.sortable ?? false,
80
+ cell: definition.renderCell
81
+ ? (context) => definition.renderCell(context.getValue(), context.row.original)
82
+ : (context) => context.getValue(),
83
+ });
84
+ }
85
+ return this.columnHelper.display({
86
+ ...sharedColumnProps,
87
+ cell: (context) => definition.renderCell(context.row.original),
88
+ });
89
+ }
90
+ }
91
+
92
+ export { ColumnMapper };
93
+ //# sourceMappingURL=ColumnMapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnMapper.js","sources":["../../../../src/components/DataGrid/utils/ColumnMapper.ts"],"sourcesContent":["import { ColumnDef, ColumnHelper, createColumnHelper } from '@tanstack/react-table';\nimport { ColumnDefinition, DataColumnDefinition, ColumnAlignment } from '../types/ColumnDefinition';\nimport {\n DEFAULT_CELL_ALIGN,\n DEFAULT_COLUMN_MAXIMUM_WIDTH,\n DEFAULT_COLUMN_MINIMUM_WIDTH,\n DEFAULT_COLUMN_WIDTH,\n} from '../constants';\n\n/**\n * Helper method which checks whether a given column definition is a `DataColumn`.\n * @param column The column definition to check.\n * @returns True if the column definition is a `DataColumn`, false otherwise.\n */\nconst isDataColumn = <T>(column: ColumnDefinition<T>): column is DataColumnDefinition<T> => {\n return (column as DataColumnDefinition<T>).field !== undefined;\n};\n \n/**\n * Maps a column alignment to the equivalent flexbox alignment.\n * @param align The column alingment to map.\n * @returns The flexbox alignment.\n */\nfunction alignmentToFlex(align: ColumnAlignment) {\n switch (align) {\n case 'left':\n return 'flex-start';\n case 'center':\n return 'center';\n case 'right':\n return 'flex-end';\n default:\n return 'flex-start';\n }\n}\n\n/**\n * Validates a column definition, ensuring required properties are defined and values make sense.\n * @param definition The column definition to validate.\n * @throws Error if the column definition is invalid.\n */\nconst validateColumnDefinition = (definition: ColumnDefinition<any>) => {\n if (!definition.id) {\n throw new Error(\"[ColumnMapper] Column definition is missing an 'id' property.\");\n }\n\n if (!isDataColumn(definition)) {\n if (!definition.renderCell) {\n throw new Error(\n `[ColumnMapper] Column '${definition.id}' is a display column but is missing a 'renderCell' property.`,\n );\n }\n }\n\n if (definition.width && definition.minWidth && definition.width < definition.minWidth) {\n throw new Error(\n `[ColumnMapper] Column '${definition.id}' has a size of ${definition.width} which is smaller than its minimum size of ${definition.minWidth}.`,\n );\n }\n\n if (definition.width && definition.maxWidth && definition.width > definition.maxWidth) {\n throw new Error(\n `[ColumnMapper] Column '${definition.id}' has a size of ${definition.width} which is larger than its maximum size of ${definition.maxWidth}.`,\n );\n }\n};\n\n/**\n * Mapper which validates and converts our ColumnDefinition's to a ColumnDef for use in TanStack Table.\n */\nexport class ColumnMapper {\n private columnHelper: ColumnHelper<any>;\n\n constructor() {\n this.columnHelper = createColumnHelper<any>();\n }\n\n mapColumnDefinition(definition: ColumnDefinition<any>): ColumnDef<any, any> {\n const sharedColumnProps = {\n id: definition.id,\n enableResizing: !!definition.resizeable,\n\n header: definition.renderHeader ?? definition.title,\n footer: definition.renderFooter,\n\n size: definition.width ?? DEFAULT_COLUMN_WIDTH,\n maxSize: definition.maxWidth ?? DEFAULT_COLUMN_MAXIMUM_WIDTH,\n minSize: definition.minWidth ?? DEFAULT_COLUMN_MINIMUM_WIDTH,\n\n meta: {\n rowHeader: !!definition.rowHeader,\n // Generate flex and text alignment based off column.align\n justifyContent: alignmentToFlex(definition.align ?? DEFAULT_CELL_ALIGN),\n textAlign: definition.align ?? DEFAULT_CELL_ALIGN,\n getAriaLabel: definition.getAriaLabel,\n },\n };\n\n validateColumnDefinition(definition);\n\n if (isDataColumn(definition)) {\n return this.columnHelper.accessor(definition.field, {\n ...sharedColumnProps,\n // enableSorting: definition.sortable ?? false,\n cell: definition.renderCell\n ? (context) => definition.renderCell!(context.getValue(), context.row.original)\n : (context) => context.getValue(),\n });\n }\n\n return this.columnHelper.display({\n ...sharedColumnProps,\n cell: (context) => definition.renderCell(context.row.original),\n });\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ const getAriaRoles = () => {
4
+ return {
5
+ table: 'table',
6
+ cell: 'cell',
7
+ };
8
+ };
9
+
10
+ exports.getAriaRoles = getAriaRoles;
11
+ //# sourceMappingURL=getAriaRoles.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAriaRoles.cjs","sources":["../../../../src/components/DataGrid/utils/getAriaRoles.ts"],"sourcesContent":["import { AriaRoles } from '../types/AriaRoles';\n\nexport const getAriaRoles = (): AriaRoles => {\n return {\n table: 'table',\n cell: 'cell',\n };\n};\n"],"names":[],"mappings":";;AAEO,MAAM,YAAY,GAAG,MAAgB;IAC1C,OAAO;AACL,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,MAAM;KACb;AACH;;;;"}
@@ -0,0 +1,2 @@
1
+ import { AriaRoles } from '../types/AriaRoles';
2
+ export declare const getAriaRoles: () => AriaRoles;
@@ -0,0 +1,9 @@
1
+ const getAriaRoles = () => {
2
+ return {
3
+ table: 'table',
4
+ cell: 'cell',
5
+ };
6
+ };
7
+
8
+ export { getAriaRoles };
9
+ //# sourceMappingURL=getAriaRoles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAriaRoles.js","sources":["../../../../src/components/DataGrid/utils/getAriaRoles.ts"],"sourcesContent":["import { AriaRoles } from '../types/AriaRoles';\n\nexport const getAriaRoles = (): AriaRoles => {\n return {\n table: 'table',\n cell: 'cell',\n };\n};\n"],"names":[],"mappings":"AAEO,MAAM,YAAY,GAAG,MAAgB;IAC1C,OAAO;AACL,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,IAAI,EAAE,MAAM;KACb;AACH;;;;"}
@@ -0,0 +1,3 @@
1
+ export { isLastColumn } from './isLastColumn';
2
+ export { ColumnMapper } from './ColumnMapper';
3
+ export { getAriaRoles } from './getAriaRoles';
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ const isLastColumn = (table, column) => {
4
+ if (table.getIsSomeColumnsPinned('right')) {
5
+ return column.getIsLastColumn('right');
6
+ }
7
+ return column.getIsLastColumn();
8
+ };
9
+
10
+ exports.isLastColumn = isLastColumn;
11
+ //# sourceMappingURL=isLastColumn.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isLastColumn.cjs","sources":["../../../../src/components/DataGrid/utils/isLastColumn.ts"],"sourcesContent":["import { Column, Table } from '@tanstack/react-table';\n\nexport const isLastColumn = (table: Table<any>, column: Column<any, any>) => {\n if (table.getIsSomeColumnsPinned('right')) {\n return column.getIsLastColumn('right');\n }\n\n return column.getIsLastColumn();\n};\n"],"names":[],"mappings":";;MAEa,YAAY,GAAG,CAAC,KAAiB,EAAE,MAAwB,KAAI;AAC1E,IAAA,IAAI,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE;AACzC,QAAA,OAAO,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC;AACvC;AAED,IAAA,OAAO,MAAM,CAAC,eAAe,EAAE;AACjC;;;;"}
@@ -0,0 +1,2 @@
1
+ import { Column, Table } from '@tanstack/react-table';
2
+ export declare const isLastColumn: (table: Table<any>, column: Column<any, any>) => boolean;
@@ -0,0 +1,9 @@
1
+ const isLastColumn = (table, column) => {
2
+ if (table.getIsSomeColumnsPinned('right')) {
3
+ return column.getIsLastColumn('right');
4
+ }
5
+ return column.getIsLastColumn();
6
+ };
7
+
8
+ export { isLastColumn };
9
+ //# sourceMappingURL=isLastColumn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"isLastColumn.js","sources":["../../../../src/components/DataGrid/utils/isLastColumn.ts"],"sourcesContent":["import { Column, Table } from '@tanstack/react-table';\n\nexport const isLastColumn = (table: Table<any>, column: Column<any, any>) => {\n if (table.getIsSomeColumnsPinned('right')) {\n return column.getIsLastColumn('right');\n }\n\n return column.getIsLastColumn();\n};\n"],"names":[],"mappings":"MAEa,YAAY,GAAG,CAAC,KAAiB,EAAE,MAAwB,KAAI;AAC1E,IAAA,IAAI,KAAK,CAAC,sBAAsB,CAAC,OAAO,CAAC,EAAE;AACzC,QAAA,OAAO,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC;AACvC;AAED,IAAA,OAAO,MAAM,CAAC,eAAe,EAAE;AACjC;;;;"}
@@ -3,6 +3,10 @@
3
3
  var React = require('react');
4
4
  var Stack = require('../Stack/Stack.cjs');
5
5
  var Text = require('../Text/Text.cjs');
6
+ require('../../hooks/useFocusVisible.cjs');
7
+ require('uid/secure');
8
+ var useDragToScroll = require('../../hooks/useDragToScroll.cjs');
9
+ require('lodash.throttle');
6
10
  var generateTableCss = require('./utils/generateTableCss.cjs');
7
11
  require('./types.cjs');
8
12
  require('../../theme/modules/shadows.cjs');
@@ -11,7 +15,6 @@ require('../../theme/modules/text.cjs');
11
15
  require('styled-components');
12
16
  var useCellWidths = require('./hooks/useCellWidths.cjs');
13
17
  var useColumns = require('./hooks/useColumns.cjs');
14
- var useDragToScroll = require('./hooks/useDragToScroll.cjs');
15
18
  var useScrollPosition = require('./hooks/useScrollPosition.cjs');
16
19
  var useSelection = require('./hooks/useSelection.cjs');
17
20
  var renderCell = require('./renderers/renderCell.cjs');
@@ -51,7 +54,7 @@ const DataTable = ({ actionBarSlot, borderMode, columns: initialColumns, emptySt
51
54
  const scrollContainerRef = React.useRef(null);
52
55
  const tableRef = React.useRef(null);
53
56
  const intersectionTargetRef = React.useRef(null);
54
- useDragToScroll.useDragToScroll(scrollContainerRef);
57
+ useDragToScroll.useDragToScroll({ targetRef: scrollContainerRef, ignoreClassName: 'th-divider' });
55
58
  // Configure row selection
56
59
  const enabledRowIds = rows.map((row) => row.id).filter((id) => !(disabledRowIds === null || disabledRowIds === undefined ? undefined : disabledRowIds.includes(id)));
57
60
  const { selectionEnabled, selectedRowIds, selectionColumn, setSelected } = useSelection.useSelection({
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.cjs","sources":["../../../src/components/DataTable/DataTable.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-redundant-roles */\n\nimport React, { useRef } from 'react';\nimport { Stack } from '../Stack';\nimport { Text } from '../Text';\n\nimport { generateTableCss } from './utils';\nimport { DataTableProps, CustomState, TableRow } from './types';\n\nimport {\n useCellWidths,\n useColumns,\n useDragToScroll,\n useScrollPosition,\n useSelection,\n} from './hooks';\n\nimport {\n renderCell,\n renderFooter,\n renderHeader,\n renderLoadingCell,\n renderNestedCell,\n} from './renderers';\n\nimport { ActionBar } from './components/ActionBar';\nimport { Cell } from './components/Cell';\nimport { ColumnMenu } from './components/ColumnMenu';\nimport { EmptyBodyContent, EmptyBodyGlyphWrapper } from './components/EmptyBodyContent';\nimport { Header } from './components/Header';\nimport { NoWrap } from './components/NoWrap';\nimport { Row } from './components/Row';\nimport { ScrollContainer } from './components/ScrollContainer';\nimport { TableGrid } from './components/TableGrid';\nimport { Truncate } from './components/Truncate';\nimport { Wrapper } from './components/Wrapper';\nimport { SelectionCell } from './components/SelectionCell';\nimport { SelectionHeader } from './components/SelectionHeader';\nimport { StickyHead } from './components/StickyHead';\n\nimport { getRowState } from './utils/getRowState';\nimport { InfoIcon } from '../../tempIcons/InfoIcon';\n\nconst defaultEmptyState: CustomState = {\n iconSlot: <InfoIcon width={48} height={48} />,\n heading: 'No results',\n};\n\nconst emptyAction = () => {};\n\nexport const DataTable = ({\n actionBarSlot,\n borderMode,\n columns: initialColumns,\n emptyState = defaultEmptyState,\n expandedRowIds,\n loading,\n loadingRowCount,\n onChangeSort,\n rows,\n disabledRowIds,\n selectionMode,\n selectionState,\n setExpanded,\n sortState,\n stripingMode,\n enableStickyHeader,\n resizeableColumns,\n onResizeColumns,\n columnWidths,\n stickyHeaderTop,\n}: DataTableProps) => {\n // Refs\n\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const tableRef = useRef<HTMLTableElement>(null);\n const intersectionTargetRef = useRef<HTMLDivElement>(null);\n\n useDragToScroll(scrollContainerRef);\n\n // Configure row selection\n\n const enabledRowIds = rows.map((row) => row.id).filter((id) => !disabledRowIds?.includes(id));\n\n const { selectionEnabled, selectedRowIds, selectionColumn, setSelected } = useSelection({\n selectionMode,\n selectionState,\n enabledRowIds,\n });\n\n // Assign actions\n\n const actions = {\n setSelected: setSelected || emptyAction,\n setExpanded: setExpanded || emptyAction,\n };\n\n // Process columns\n\n const columnsWithSelection = [selectionColumn, ...initialColumns];\n const allColumns = selectionEnabled ? columnsWithSelection : initialColumns;\n\n const cellWidths = useCellWidths(tableRef, scrollContainerRef);\n const {\n visible,\n pinnedLeft,\n pinnedRight,\n setColumnWidth,\n columnWidths: calcColumnWidths,\n } = useColumns(allColumns, tableRef, onResizeColumns, columnWidths);\n const adjustedCellWidths =\n cellWidths.length === visible.length\n ? (visible.map((col, i) =>\n Number.isNaN(calcColumnWidths[col.id] || '') ? cellWidths[i] : calcColumnWidths[col.id],\n ) as number[])\n : cellWidths;\n\n // Generate styles\n const { scrollPosition } = useScrollPosition(scrollContainerRef);\n const tableCss = generateTableCss({\n pinnedLeft,\n pinnedRight,\n cellWidths: adjustedCellWidths,\n scrollPosition,\n columnWidths: calcColumnWidths,\n columns: visible,\n stripingMode,\n });\n\n // Render states\n\n if (loading) {\n const loadingRows: Array<TableRow> = new Array(loadingRowCount).fill(true).map(() => ({\n // generate random ID forcing all rows to re-render avoid animation de-sync\n id: Math.random() * 1000,\n data: null,\n }));\n\n return (\n <Wrapper borderMode={borderMode}>\n <ScrollContainer ref={scrollContainerRef}>\n <TableGrid css={tableCss} ref={tableRef} role=\"table\">\n <thead role=\"rowgroup\">\n <Row role=\"row\">\n {visible.map((column, i) =>\n renderHeader({\n column,\n sortState,\n onChangeSort,\n resizeableColumns,\n setColumnWidth,\n columnCount: visible.length,\n columnI: i,\n }),\n )}\n </Row>\n </thead>\n <tbody role=\"rowgroup\">\n {loadingRows.map((row) => (\n <Row key={row.id}>{visible.map((col) => renderLoadingCell(row, col))}</Row>\n ))}\n </tbody>\n </TableGrid>\n </ScrollContainer>\n </Wrapper>\n );\n }\n\n if (rows.length === 0) {\n return (\n <Wrapper borderMode={borderMode}>\n <ScrollContainer ref={scrollContainerRef}>\n <TableGrid css={tableCss} ref={tableRef} role=\"table\">\n <thead role=\"rowgroup\">\n <Row role=\"row\">\n {visible.map((column, i) =>\n renderHeader({\n column,\n sortState,\n onChangeSort,\n resizeableColumns,\n setColumnWidth,\n columnCount: visible.length,\n columnI: i,\n }),\n )}\n </Row>\n </thead>\n <tbody role=\"rowgroup\">\n <EmptyBodyContent columnCount={visible.length}>\n <EmptyBodyGlyphWrapper>\n {/* Should be 48x48px */}\n {emptyState.iconSlot}\n </EmptyBodyGlyphWrapper>\n <Stack spacing=\"sm\" alignX=\"center\">\n <Text variant=\"headingMedium\">{emptyState.heading}</Text>\n {emptyState.subheading && (\n <Text variant=\"subheadingMedium\">{emptyState.subheading}</Text>\n )}\n </Stack>\n </EmptyBodyContent>\n </tbody>\n </TableGrid>\n </ScrollContainer>\n </Wrapper>\n );\n }\n\n const renderRow = (row: TableRow) => {\n const { e2eClassName = '', accentColor } = row;\n const rowState = getRowState(row.id, { selectedRowIds, expandedRowIds, disabledRowIds });\n\n return (\n <Row role=\"row\" key={row.id} accentColor={accentColor} className={e2eClassName} {...rowState}>\n {visible.map((col) => renderCell(row, col, actions, rowState))}\n </Row>\n );\n };\n\n const renderNestedRow = (nestedRow: TableRow, rowId: TableRow['id']) => {\n const nestedRowE2eClassName = nestedRow?.data?.e2eClassNames?.row;\n const rowState = getRowState(rowId, { selectedRowIds, expandedRowIds, disabledRowIds });\n return (\n <Row role=\"row\" key={nestedRow.id} className={nestedRowE2eClassName}>\n {visible.map((col) => renderNestedCell(nestedRow, col, rowState))}\n </Row>\n );\n };\n\n const renderSection = (row: TableRow) => {\n const isExpanded = expandedRowIds?.includes(row.id);\n return (\n <tbody role=\"rowgroup\" key={row.id}>\n {renderRow(row)}\n {isExpanded && row.nestedRows?.map((nestedRow) => renderNestedRow(nestedRow, row.id))}\n </tbody>\n );\n };\n\n const renderBody = () => {\n const hasNestedRows = !!expandedRowIds;\n const hasMultipleSections = hasNestedRows && stripingMode === 'nested';\n\n if (hasMultipleSections) {\n return rows.map(renderSection);\n }\n\n if (hasNestedRows) {\n return (\n <tbody role=\"rowgroup\">\n {rows.map((row) => {\n const rowElement = renderRow(row);\n const isExpanded = expandedRowIds?.includes(row.id);\n const nestedRowElements =\n (isExpanded &&\n row.nestedRows?.map((nestedRow) => renderNestedRow(nestedRow, row.id))) ||\n [];\n return [rowElement, ...nestedRowElements];\n })}\n </tbody>\n );\n }\n\n return <tbody role=\"rowgroup\">{rows.map(renderRow)}</tbody>;\n };\n\n const headersMarkup = (\n <Row role=\"row\">\n {visible.map((column, i) =>\n renderHeader({\n column,\n sortState,\n onChangeSort,\n resizeableColumns,\n setColumnWidth,\n columnCount: visible.length,\n columnI: i,\n }),\n )}\n </Row>\n );\n\n const shouldRenderFooter = initialColumns.some((column) => !!column.renderFooter);\n const shouldRenderActionBar = selectedRowIds.length > 0 && !!actionBarSlot;\n\n return (\n <Wrapper borderMode={borderMode}>\n {shouldRenderActionBar && (\n <ActionBar\n selectionColumn={selectionColumn}\n intersectionTargetRef={intersectionTargetRef}\n containerRef={scrollContainerRef}\n >\n {actionBarSlot}\n </ActionBar>\n )}\n <ScrollContainer ref={scrollContainerRef}>\n {enableStickyHeader && (\n <StickyHead\n tableCss={tableCss}\n intersectionTargetRef={intersectionTargetRef}\n containerRef={scrollContainerRef}\n cellWidths={adjustedCellWidths}\n stickyHeaderTop={stickyHeaderTop}\n >\n {headersMarkup}\n </StickyHead>\n )}\n <div ref={intersectionTargetRef} style={{ height: 0 }} />\n <TableGrid css={tableCss} ref={tableRef} role=\"table\">\n <thead role=\"rowgroup\">{headersMarkup}</thead>\n {renderBody()}\n {shouldRenderFooter && (\n <tfoot role=\"rowgroup\">\n <Row role=\"row\">{visible.map((column) => renderFooter({ column }))}</Row>\n </tfoot>\n )}\n </TableGrid>\n </ScrollContainer>\n </Wrapper>\n );\n};\n\nDataTable.defaultProps = {\n loading: false,\n loadingRowCount: 5,\n selectionMode: 'multiple',\n stripingMode: 'row',\n enableStickyHeader: true,\n};\n\nDataTable.Cell = Cell;\nDataTable.ColumnMenu = ColumnMenu;\nDataTable.SelectionCell = SelectionCell;\nDataTable.SelectionHeader = SelectionHeader;\nDataTable.Header = Header;\nDataTable.Truncate = Truncate;\nDataTable.NoWrap = NoWrap;\n"],"names":["React","InfoIcon","useRef","useDragToScroll","useSelection","useCellWidths","useColumns","useScrollPosition","generateTableCss","Wrapper","ScrollContainer","TableGrid","Row","renderHeader","renderLoadingCell","EmptyBodyContent","EmptyBodyGlyphWrapper","Stack","Text","getRowState","renderCell","renderNestedCell","ActionBar","StickyHead","renderFooter","Cell","ColumnMenu","SelectionCell","SelectionHeader","Header","Truncate","NoWrap"],"mappings":"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"}
1
+ {"version":3,"file":"DataTable.cjs","sources":["../../../src/components/DataTable/DataTable.tsx"],"sourcesContent":["/* eslint-disable jsx-a11y/no-redundant-roles */\n\nimport React, { useRef } from 'react';\nimport { Stack } from '../Stack';\nimport { Text } from '../Text';\n\nimport { useDragToScroll } from '../../hooks';\n\nimport { generateTableCss } from './utils';\nimport { DataTableProps, CustomState, TableRow } from './types';\n\nimport { useCellWidths, useColumns, useScrollPosition, useSelection } from './hooks';\n\nimport {\n renderCell,\n renderFooter,\n renderHeader,\n renderLoadingCell,\n renderNestedCell,\n} from './renderers';\n\nimport { ActionBar } from './components/ActionBar';\nimport { Cell } from './components/Cell';\nimport { ColumnMenu } from './components/ColumnMenu';\nimport { EmptyBodyContent, EmptyBodyGlyphWrapper } from './components/EmptyBodyContent';\nimport { Header } from './components/Header';\nimport { NoWrap } from './components/NoWrap';\nimport { Row } from './components/Row';\nimport { ScrollContainer } from './components/ScrollContainer';\nimport { TableGrid } from './components/TableGrid';\nimport { Truncate } from './components/Truncate';\nimport { Wrapper } from './components/Wrapper';\nimport { SelectionCell } from './components/SelectionCell';\nimport { SelectionHeader } from './components/SelectionHeader';\nimport { StickyHead } from './components/StickyHead';\n\nimport { getRowState } from './utils/getRowState';\nimport { InfoIcon } from '../../tempIcons/InfoIcon';\n\nconst defaultEmptyState: CustomState = {\n iconSlot: <InfoIcon width={48} height={48} />,\n heading: 'No results',\n};\n\nconst emptyAction = () => {};\n\nexport const DataTable = ({\n actionBarSlot,\n borderMode,\n columns: initialColumns,\n emptyState = defaultEmptyState,\n expandedRowIds,\n loading,\n loadingRowCount,\n onChangeSort,\n rows,\n disabledRowIds,\n selectionMode,\n selectionState,\n setExpanded,\n sortState,\n stripingMode,\n enableStickyHeader,\n resizeableColumns,\n onResizeColumns,\n columnWidths,\n stickyHeaderTop,\n}: DataTableProps) => {\n // Refs\n\n const scrollContainerRef = useRef<HTMLDivElement>(null);\n const tableRef = useRef<HTMLTableElement>(null);\n const intersectionTargetRef = useRef<HTMLDivElement>(null);\n\n useDragToScroll({ targetRef: scrollContainerRef, ignoreClassName: 'th-divider' });\n\n // Configure row selection\n\n const enabledRowIds = rows.map((row) => row.id).filter((id) => !disabledRowIds?.includes(id));\n\n const { selectionEnabled, selectedRowIds, selectionColumn, setSelected } = useSelection({\n selectionMode,\n selectionState,\n enabledRowIds,\n });\n\n // Assign actions\n\n const actions = {\n setSelected: setSelected || emptyAction,\n setExpanded: setExpanded || emptyAction,\n };\n\n // Process columns\n\n const columnsWithSelection = [selectionColumn, ...initialColumns];\n const allColumns = selectionEnabled ? columnsWithSelection : initialColumns;\n\n const cellWidths = useCellWidths(tableRef, scrollContainerRef);\n const {\n visible,\n pinnedLeft,\n pinnedRight,\n setColumnWidth,\n columnWidths: calcColumnWidths,\n } = useColumns(allColumns, tableRef, onResizeColumns, columnWidths);\n const adjustedCellWidths =\n cellWidths.length === visible.length\n ? (visible.map((col, i) =>\n Number.isNaN(calcColumnWidths[col.id] || '') ? cellWidths[i] : calcColumnWidths[col.id],\n ) as number[])\n : cellWidths;\n\n // Generate styles\n const { scrollPosition } = useScrollPosition(scrollContainerRef);\n const tableCss = generateTableCss({\n pinnedLeft,\n pinnedRight,\n cellWidths: adjustedCellWidths,\n scrollPosition,\n columnWidths: calcColumnWidths,\n columns: visible,\n stripingMode,\n });\n\n // Render states\n\n if (loading) {\n const loadingRows: Array<TableRow> = new Array(loadingRowCount).fill(true).map(() => ({\n // generate random ID forcing all rows to re-render avoid animation de-sync\n id: Math.random() * 1000,\n data: null,\n }));\n\n return (\n <Wrapper borderMode={borderMode}>\n <ScrollContainer ref={scrollContainerRef}>\n <TableGrid css={tableCss} ref={tableRef} role=\"table\">\n <thead role=\"rowgroup\">\n <Row role=\"row\">\n {visible.map((column, i) =>\n renderHeader({\n column,\n sortState,\n onChangeSort,\n resizeableColumns,\n setColumnWidth,\n columnCount: visible.length,\n columnI: i,\n }),\n )}\n </Row>\n </thead>\n <tbody role=\"rowgroup\">\n {loadingRows.map((row) => (\n <Row key={row.id}>{visible.map((col) => renderLoadingCell(row, col))}</Row>\n ))}\n </tbody>\n </TableGrid>\n </ScrollContainer>\n </Wrapper>\n );\n }\n\n if (rows.length === 0) {\n return (\n <Wrapper borderMode={borderMode}>\n <ScrollContainer ref={scrollContainerRef}>\n <TableGrid css={tableCss} ref={tableRef} role=\"table\">\n <thead role=\"rowgroup\">\n <Row role=\"row\">\n {visible.map((column, i) =>\n renderHeader({\n column,\n sortState,\n onChangeSort,\n resizeableColumns,\n setColumnWidth,\n columnCount: visible.length,\n columnI: i,\n }),\n )}\n </Row>\n </thead>\n <tbody role=\"rowgroup\">\n <EmptyBodyContent columnCount={visible.length}>\n <EmptyBodyGlyphWrapper>\n {/* Should be 48x48px */}\n {emptyState.iconSlot}\n </EmptyBodyGlyphWrapper>\n <Stack spacing=\"sm\" alignX=\"center\">\n <Text variant=\"headingMedium\">{emptyState.heading}</Text>\n {emptyState.subheading && (\n <Text variant=\"subheadingMedium\">{emptyState.subheading}</Text>\n )}\n </Stack>\n </EmptyBodyContent>\n </tbody>\n </TableGrid>\n </ScrollContainer>\n </Wrapper>\n );\n }\n\n const renderRow = (row: TableRow) => {\n const { e2eClassName = '', accentColor } = row;\n const rowState = getRowState(row.id, { selectedRowIds, expandedRowIds, disabledRowIds });\n\n return (\n <Row role=\"row\" key={row.id} accentColor={accentColor} className={e2eClassName} {...rowState}>\n {visible.map((col) => renderCell(row, col, actions, rowState))}\n </Row>\n );\n };\n\n const renderNestedRow = (nestedRow: TableRow, rowId: TableRow['id']) => {\n const nestedRowE2eClassName = nestedRow?.data?.e2eClassNames?.row;\n const rowState = getRowState(rowId, { selectedRowIds, expandedRowIds, disabledRowIds });\n return (\n <Row role=\"row\" key={nestedRow.id} className={nestedRowE2eClassName}>\n {visible.map((col) => renderNestedCell(nestedRow, col, rowState))}\n </Row>\n );\n };\n\n const renderSection = (row: TableRow) => {\n const isExpanded = expandedRowIds?.includes(row.id);\n return (\n <tbody role=\"rowgroup\" key={row.id}>\n {renderRow(row)}\n {isExpanded && row.nestedRows?.map((nestedRow) => renderNestedRow(nestedRow, row.id))}\n </tbody>\n );\n };\n\n const renderBody = () => {\n const hasNestedRows = !!expandedRowIds;\n const hasMultipleSections = hasNestedRows && stripingMode === 'nested';\n\n if (hasMultipleSections) {\n return rows.map(renderSection);\n }\n\n if (hasNestedRows) {\n return (\n <tbody role=\"rowgroup\">\n {rows.map((row) => {\n const rowElement = renderRow(row);\n const isExpanded = expandedRowIds?.includes(row.id);\n const nestedRowElements =\n (isExpanded &&\n row.nestedRows?.map((nestedRow) => renderNestedRow(nestedRow, row.id))) ||\n [];\n return [rowElement, ...nestedRowElements];\n })}\n </tbody>\n );\n }\n\n return <tbody role=\"rowgroup\">{rows.map(renderRow)}</tbody>;\n };\n\n const headersMarkup = (\n <Row role=\"row\">\n {visible.map((column, i) =>\n renderHeader({\n column,\n sortState,\n onChangeSort,\n resizeableColumns,\n setColumnWidth,\n columnCount: visible.length,\n columnI: i,\n }),\n )}\n </Row>\n );\n\n const shouldRenderFooter = initialColumns.some((column) => !!column.renderFooter);\n const shouldRenderActionBar = selectedRowIds.length > 0 && !!actionBarSlot;\n\n return (\n <Wrapper borderMode={borderMode}>\n {shouldRenderActionBar && (\n <ActionBar\n selectionColumn={selectionColumn}\n intersectionTargetRef={intersectionTargetRef}\n containerRef={scrollContainerRef}\n >\n {actionBarSlot}\n </ActionBar>\n )}\n <ScrollContainer ref={scrollContainerRef}>\n {enableStickyHeader && (\n <StickyHead\n tableCss={tableCss}\n intersectionTargetRef={intersectionTargetRef}\n containerRef={scrollContainerRef}\n cellWidths={adjustedCellWidths}\n stickyHeaderTop={stickyHeaderTop}\n >\n {headersMarkup}\n </StickyHead>\n )}\n <div ref={intersectionTargetRef} style={{ height: 0 }} />\n <TableGrid css={tableCss} ref={tableRef} role=\"table\">\n <thead role=\"rowgroup\">{headersMarkup}</thead>\n {renderBody()}\n {shouldRenderFooter && (\n <tfoot role=\"rowgroup\">\n <Row role=\"row\">{visible.map((column) => renderFooter({ column }))}</Row>\n </tfoot>\n )}\n </TableGrid>\n </ScrollContainer>\n </Wrapper>\n );\n};\n\nDataTable.defaultProps = {\n loading: false,\n loadingRowCount: 5,\n selectionMode: 'multiple',\n stripingMode: 'row',\n enableStickyHeader: true,\n};\n\nDataTable.Cell = Cell;\nDataTable.ColumnMenu = ColumnMenu;\nDataTable.SelectionCell = SelectionCell;\nDataTable.SelectionHeader = SelectionHeader;\nDataTable.Header = Header;\nDataTable.Truncate = Truncate;\nDataTable.NoWrap = NoWrap;\n"],"names":["React","InfoIcon","useRef","useDragToScroll","useSelection","useCellWidths","useColumns","useScrollPosition","generateTableCss","Wrapper","ScrollContainer","TableGrid","Row","renderHeader","renderLoadingCell","EmptyBodyContent","EmptyBodyGlyphWrapper","Stack","Text","getRowState","renderCell","renderNestedCell","ActionBar","StickyHead","renderFooter","Cell","ColumnMenu","SelectionCell","SelectionHeader","Header","Truncate","NoWrap"],"mappings":"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"}
@@ -1,6 +1,10 @@
1
1
  import React__default, { useRef } from 'react';
2
2
  import { Stack } from '../Stack/Stack.js';
3
3
  import { Text } from '../Text/Text.js';
4
+ import '../../hooks/useFocusVisible.js';
5
+ import 'uid/secure';
6
+ import { useDragToScroll } from '../../hooks/useDragToScroll.js';
7
+ import 'lodash.throttle';
4
8
  import { generateTableCss } from './utils/generateTableCss.js';
5
9
  import './types.js';
6
10
  import '../../theme/modules/shadows.js';
@@ -9,7 +13,6 @@ import '../../theme/modules/text.js';
9
13
  import 'styled-components';
10
14
  import { useCellWidths } from './hooks/useCellWidths.js';
11
15
  import { useColumns } from './hooks/useColumns.js';
12
- import { useDragToScroll } from './hooks/useDragToScroll.js';
13
16
  import { useScrollPosition } from './hooks/useScrollPosition.js';
14
17
  import { useSelection } from './hooks/useSelection.js';
15
18
  import { renderCell } from './renderers/renderCell.js';
@@ -45,7 +48,7 @@ const DataTable = ({ actionBarSlot, borderMode, columns: initialColumns, emptySt
45
48
  const scrollContainerRef = useRef(null);
46
49
  const tableRef = useRef(null);
47
50
  const intersectionTargetRef = useRef(null);
48
- useDragToScroll(scrollContainerRef);
51
+ useDragToScroll({ targetRef: scrollContainerRef, ignoreClassName: 'th-divider' });
49
52
  // Configure row selection
50
53
  const enabledRowIds = rows.map((row) => row.id).filter((id) => !(disabledRowIds === null || disabledRowIds === undefined ? undefined : disabledRowIds.includes(id)));
51
54
  const { selectionEnabled, selectedRowIds, selectionColumn, setSelected } = useSelection({