@salt-ds/data-grid 1.0.6 → 1.0.7

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 (217) hide show
  1. package/CHANGELOG.md +216 -0
  2. package/dist-cjs/BaseCell.js +47 -45
  3. package/dist-cjs/BaseCell.js.map +1 -1
  4. package/dist-cjs/CellEditor.js +0 -2
  5. package/dist-cjs/CellEditor.js.map +1 -1
  6. package/dist-cjs/CellFrame.js +23 -31
  7. package/dist-cjs/CellFrame.js.map +1 -1
  8. package/dist-cjs/ColumnDataContext.js +0 -2
  9. package/dist-cjs/ColumnDataContext.js.map +1 -1
  10. package/dist-cjs/ColumnDragContext.js +0 -2
  11. package/dist-cjs/ColumnDragContext.js.map +1 -1
  12. package/dist-cjs/ColumnGroup.js +1 -5
  13. package/dist-cjs/ColumnGroup.js.map +1 -1
  14. package/dist-cjs/ColumnSortContext.js +0 -2
  15. package/dist-cjs/ColumnSortContext.js.map +1 -1
  16. package/dist-cjs/CornerTag.js +6 -5
  17. package/dist-cjs/CornerTag.js.map +1 -1
  18. package/dist-cjs/CursorContext.js +0 -2
  19. package/dist-cjs/CursorContext.js.map +1 -1
  20. package/dist-cjs/DropdownCellEditor.js +25 -28
  21. package/dist-cjs/DropdownCellEditor.js.map +1 -1
  22. package/dist-cjs/EditorContext.js +0 -2
  23. package/dist-cjs/EditorContext.js.map +1 -1
  24. package/dist-cjs/Grid.css.js +1 -1
  25. package/dist-cjs/Grid.js +139 -142
  26. package/dist-cjs/Grid.js.map +1 -1
  27. package/dist-cjs/GridColumn.js +4 -8
  28. package/dist-cjs/GridColumn.js.map +1 -1
  29. package/dist-cjs/GridContext.js +0 -2
  30. package/dist-cjs/GridContext.js.map +1 -1
  31. package/dist-cjs/GroupHeaderCell.js +27 -28
  32. package/dist-cjs/GroupHeaderCell.js.map +1 -1
  33. package/dist-cjs/GroupHeaderCellValue.js +1 -5
  34. package/dist-cjs/GroupHeaderCellValue.js.map +1 -1
  35. package/dist-cjs/HeaderCell.js +85 -81
  36. package/dist-cjs/HeaderCell.js.map +1 -1
  37. package/dist-cjs/HeaderCellValue.js +1 -6
  38. package/dist-cjs/HeaderCellValue.js.map +1 -1
  39. package/dist-cjs/LayoutContext.js +0 -2
  40. package/dist-cjs/LayoutContext.js.map +1 -1
  41. package/dist-cjs/NumberRange.js +2 -4
  42. package/dist-cjs/NumberRange.js.map +1 -1
  43. package/dist-cjs/NumericColumn.css.js +1 -1
  44. package/dist-cjs/NumericColumn.js +31 -30
  45. package/dist-cjs/NumericColumn.js.map +1 -1
  46. package/dist-cjs/RowSelectionCheckboxCellValue.js +5 -8
  47. package/dist-cjs/RowSelectionCheckboxCellValue.js.map +1 -1
  48. package/dist-cjs/RowSelectionCheckboxColumn.js +11 -10
  49. package/dist-cjs/RowSelectionCheckboxColumn.js.map +1 -1
  50. package/dist-cjs/RowSelectionCheckboxHeaderCellValue.js +20 -16
  51. package/dist-cjs/RowSelectionCheckboxHeaderCellValue.js.map +1 -1
  52. package/dist-cjs/RowSelectionRadioCellValue.js +5 -7
  53. package/dist-cjs/RowSelectionRadioCellValue.js.map +1 -1
  54. package/dist-cjs/RowSelectionRadioColumn.js +10 -9
  55. package/dist-cjs/RowSelectionRadioColumn.js.map +1 -1
  56. package/dist-cjs/RowSelectionRadioHeaderCell.js +1 -9
  57. package/dist-cjs/RowSelectionRadioHeaderCell.js.map +1 -1
  58. package/dist-cjs/RowValidationStatus.js +0 -2
  59. package/dist-cjs/RowValidationStatus.js.map +1 -1
  60. package/dist-cjs/SelectionContext.js +0 -2
  61. package/dist-cjs/SelectionContext.js.map +1 -1
  62. package/dist-cjs/SizingContext.js +0 -2
  63. package/dist-cjs/SizingContext.js.map +1 -1
  64. package/dist-cjs/TextCellEditor.css.js +1 -1
  65. package/dist-cjs/TextCellEditor.js +14 -20
  66. package/dist-cjs/TextCellEditor.js.map +1 -1
  67. package/dist-cjs/index.js +0 -2
  68. package/dist-cjs/index.js.map +1 -1
  69. package/dist-cjs/internal/CellMeasure.css.js +1 -1
  70. package/dist-cjs/internal/CellMeasure.js +1 -16
  71. package/dist-cjs/internal/CellMeasure.js.map +1 -1
  72. package/dist-cjs/internal/CellStatusIcons.js +41 -37
  73. package/dist-cjs/internal/CellStatusIcons.js.map +1 -1
  74. package/dist-cjs/internal/ColumnDropTarget.js +1 -6
  75. package/dist-cjs/internal/ColumnDropTarget.js.map +1 -1
  76. package/dist-cjs/internal/ColumnGhost.js +14 -26
  77. package/dist-cjs/internal/ColumnGhost.js.map +1 -1
  78. package/dist-cjs/internal/Cursor.js +1 -5
  79. package/dist-cjs/internal/Cursor.js.map +1 -1
  80. package/dist-cjs/internal/DefaultCellValue.js +9 -8
  81. package/dist-cjs/internal/DefaultCellValue.js.map +1 -1
  82. package/dist-cjs/internal/FakeCell.js +8 -16
  83. package/dist-cjs/internal/FakeCell.js.map +1 -1
  84. package/dist-cjs/internal/FakeGroupCell.js +0 -2
  85. package/dist-cjs/internal/FakeGroupCell.js.map +1 -1
  86. package/dist-cjs/internal/FakeHeaderCell.js +1 -5
  87. package/dist-cjs/internal/FakeHeaderCell.js.map +1 -1
  88. package/dist-cjs/internal/GroupHeaderRow.js +8 -19
  89. package/dist-cjs/internal/GroupHeaderRow.js.map +1 -1
  90. package/dist-cjs/internal/HeaderRow.js +15 -21
  91. package/dist-cjs/internal/HeaderRow.js.map +1 -1
  92. package/dist-cjs/internal/LeftPart.js +17 -23
  93. package/dist-cjs/internal/LeftPart.js.map +1 -1
  94. package/dist-cjs/internal/MiddlePart.js +16 -22
  95. package/dist-cjs/internal/MiddlePart.js.map +1 -1
  96. package/dist-cjs/internal/RightPart.js +18 -23
  97. package/dist-cjs/internal/RightPart.js.map +1 -1
  98. package/dist-cjs/internal/Scrollable.js +10 -11
  99. package/dist-cjs/internal/Scrollable.js.map +1 -1
  100. package/dist-cjs/internal/TableBody.js +11 -13
  101. package/dist-cjs/internal/TableBody.js.map +1 -1
  102. package/dist-cjs/internal/TableColGroup.js +7 -17
  103. package/dist-cjs/internal/TableColGroup.js.map +1 -1
  104. package/dist-cjs/internal/TableRow.js +81 -73
  105. package/dist-cjs/internal/TableRow.js.map +1 -1
  106. package/dist-cjs/internal/TopLeftPart.js +17 -28
  107. package/dist-cjs/internal/TopLeftPart.js.map +1 -1
  108. package/dist-cjs/internal/TopPart.js +17 -34
  109. package/dist-cjs/internal/TopPart.js.map +1 -1
  110. package/dist-cjs/internal/TopRightPart.js +23 -27
  111. package/dist-cjs/internal/TopRightPart.js.map +1 -1
  112. package/dist-cjs/internal/gridHooks.js +0 -2
  113. package/dist-cjs/internal/gridHooks.js.map +1 -1
  114. package/dist-cjs/internal/utils.js +0 -2
  115. package/dist-cjs/internal/utils.js.map +1 -1
  116. package/dist-es/BaseCell.js +47 -43
  117. package/dist-es/BaseCell.js.map +1 -1
  118. package/dist-es/CellEditor.js.map +1 -1
  119. package/dist-es/CellFrame.js +23 -29
  120. package/dist-es/CellFrame.js.map +1 -1
  121. package/dist-es/ColumnDataContext.js.map +1 -1
  122. package/dist-es/ColumnDragContext.js.map +1 -1
  123. package/dist-es/ColumnGroup.js +1 -3
  124. package/dist-es/ColumnGroup.js.map +1 -1
  125. package/dist-es/ColumnSortContext.js.map +1 -1
  126. package/dist-es/CornerTag.js +6 -3
  127. package/dist-es/CornerTag.js.map +1 -1
  128. package/dist-es/CursorContext.js.map +1 -1
  129. package/dist-es/DropdownCellEditor.js +25 -26
  130. package/dist-es/DropdownCellEditor.js.map +1 -1
  131. package/dist-es/EditorContext.js.map +1 -1
  132. package/dist-es/Grid.css.js +1 -1
  133. package/dist-es/Grid.js +139 -140
  134. package/dist-es/Grid.js.map +1 -1
  135. package/dist-es/GridColumn.js +4 -6
  136. package/dist-es/GridColumn.js.map +1 -1
  137. package/dist-es/GridContext.js.map +1 -1
  138. package/dist-es/GroupHeaderCell.js +27 -26
  139. package/dist-es/GroupHeaderCell.js.map +1 -1
  140. package/dist-es/GroupHeaderCellValue.js +1 -3
  141. package/dist-es/GroupHeaderCellValue.js.map +1 -1
  142. package/dist-es/HeaderCell.js +85 -79
  143. package/dist-es/HeaderCell.js.map +1 -1
  144. package/dist-es/HeaderCellValue.js +1 -4
  145. package/dist-es/HeaderCellValue.js.map +1 -1
  146. package/dist-es/LayoutContext.js.map +1 -1
  147. package/dist-es/NumberRange.js +2 -2
  148. package/dist-es/NumberRange.js.map +1 -1
  149. package/dist-es/NumericColumn.css.js +1 -1
  150. package/dist-es/NumericColumn.js +31 -28
  151. package/dist-es/NumericColumn.js.map +1 -1
  152. package/dist-es/RowSelectionCheckboxCellValue.js +5 -6
  153. package/dist-es/RowSelectionCheckboxCellValue.js.map +1 -1
  154. package/dist-es/RowSelectionCheckboxColumn.js +11 -8
  155. package/dist-es/RowSelectionCheckboxColumn.js.map +1 -1
  156. package/dist-es/RowSelectionCheckboxHeaderCellValue.js +20 -14
  157. package/dist-es/RowSelectionCheckboxHeaderCellValue.js.map +1 -1
  158. package/dist-es/RowSelectionRadioCellValue.js +5 -5
  159. package/dist-es/RowSelectionRadioCellValue.js.map +1 -1
  160. package/dist-es/RowSelectionRadioColumn.js +10 -7
  161. package/dist-es/RowSelectionRadioColumn.js.map +1 -1
  162. package/dist-es/RowSelectionRadioHeaderCell.js +1 -7
  163. package/dist-es/RowSelectionRadioHeaderCell.js.map +1 -1
  164. package/dist-es/SelectionContext.js.map +1 -1
  165. package/dist-es/SizingContext.js.map +1 -1
  166. package/dist-es/TextCellEditor.css.js +1 -1
  167. package/dist-es/TextCellEditor.js +14 -18
  168. package/dist-es/TextCellEditor.js.map +1 -1
  169. package/dist-es/internal/CellMeasure.css.js +1 -1
  170. package/dist-es/internal/CellMeasure.js +1 -14
  171. package/dist-es/internal/CellMeasure.js.map +1 -1
  172. package/dist-es/internal/CellStatusIcons.js +41 -35
  173. package/dist-es/internal/CellStatusIcons.js.map +1 -1
  174. package/dist-es/internal/ColumnDropTarget.js +1 -4
  175. package/dist-es/internal/ColumnDropTarget.js.map +1 -1
  176. package/dist-es/internal/ColumnGhost.js +14 -24
  177. package/dist-es/internal/ColumnGhost.js.map +1 -1
  178. package/dist-es/internal/Cursor.js +1 -3
  179. package/dist-es/internal/Cursor.js.map +1 -1
  180. package/dist-es/internal/DefaultCellValue.js +9 -6
  181. package/dist-es/internal/DefaultCellValue.js.map +1 -1
  182. package/dist-es/internal/FakeCell.js +8 -14
  183. package/dist-es/internal/FakeCell.js.map +1 -1
  184. package/dist-es/internal/FakeGroupCell.js.map +1 -1
  185. package/dist-es/internal/FakeHeaderCell.js +1 -3
  186. package/dist-es/internal/FakeHeaderCell.js.map +1 -1
  187. package/dist-es/internal/GroupHeaderRow.js +8 -17
  188. package/dist-es/internal/GroupHeaderRow.js.map +1 -1
  189. package/dist-es/internal/HeaderRow.js +15 -19
  190. package/dist-es/internal/HeaderRow.js.map +1 -1
  191. package/dist-es/internal/LeftPart.js +17 -21
  192. package/dist-es/internal/LeftPart.js.map +1 -1
  193. package/dist-es/internal/MiddlePart.js +16 -20
  194. package/dist-es/internal/MiddlePart.js.map +1 -1
  195. package/dist-es/internal/RightPart.js +18 -21
  196. package/dist-es/internal/RightPart.js.map +1 -1
  197. package/dist-es/internal/Scrollable.js +10 -9
  198. package/dist-es/internal/Scrollable.js.map +1 -1
  199. package/dist-es/internal/TableBody.js +11 -11
  200. package/dist-es/internal/TableBody.js.map +1 -1
  201. package/dist-es/internal/TableColGroup.js +7 -15
  202. package/dist-es/internal/TableColGroup.js.map +1 -1
  203. package/dist-es/internal/TableRow.js +81 -71
  204. package/dist-es/internal/TableRow.js.map +1 -1
  205. package/dist-es/internal/TopLeftPart.js +17 -26
  206. package/dist-es/internal/TopLeftPart.js.map +1 -1
  207. package/dist-es/internal/TopPart.js +17 -32
  208. package/dist-es/internal/TopPart.js.map +1 -1
  209. package/dist-es/internal/TopRightPart.js +23 -25
  210. package/dist-es/internal/TopRightPart.js.map +1 -1
  211. package/dist-es/internal/gridHooks.js.map +1 -1
  212. package/dist-es/internal/utils.js.map +1 -1
  213. package/package.json +11 -8
  214. package/dist-cjs/internal/FakeCell.css.js +0 -6
  215. package/dist-cjs/internal/FakeCell.css.js.map +0 -1
  216. package/dist-es/internal/FakeCell.css.js +0 -4
  217. package/dist-es/internal/FakeCell.css.js.map +0 -1
@@ -39,82 +39,92 @@ function TableRow(props) {
39
39
  throw new Error("Invalid row");
40
40
  }
41
41
  const ariaRowIndex = headerIsFocusable ? row.index + 2 : row.index + 1;
42
- return /* @__PURE__ */ jsxs("tr", {
43
- "aria-rowindex": ariaRowIndex,
44
- "aria-selected": isSelected ? true : void 0,
45
- className: clsx(withBaseName(), {
46
- [withBaseName("zebra")]: zebra,
47
- [withBaseName("hover")]: isHoverOver,
48
- [withBaseName("selected")]: isSelected,
49
- [withBaseName("first")]: row.index === 0,
50
- [withBaseName(`validationStatus-${rowValidationStatus}`)]: rowValidationStatus
51
- }),
52
- onMouseEnter,
53
- onMouseLeave,
54
- "data-row-index": row.index,
55
- "data-row-key": row.key,
56
- role: "row",
57
- children: [
58
- columns.map((column, i) => {
59
- var _a, _b, _c, _d;
60
- const colKey = column.info.props.id;
61
- const editorInfo = grid.getEditor(column.info.props.id);
62
- const isEditable = !!editorInfo;
63
- if (editorColIdx === column.index) {
64
- if (isEditable) {
65
- if (isValidElement(editorInfo.children)) {
66
- const editorElement = Children.only(editorInfo.children);
67
- return cloneElement(editorElement, {
68
- key: colKey,
69
- row,
70
- column
71
- });
42
+ return /* @__PURE__ */ jsxs(
43
+ "tr",
44
+ {
45
+ "aria-rowindex": ariaRowIndex,
46
+ "aria-selected": isSelected ? true : void 0,
47
+ className: clsx(withBaseName(), {
48
+ [withBaseName("zebra")]: zebra,
49
+ [withBaseName("hover")]: isHoverOver,
50
+ [withBaseName("selected")]: isSelected,
51
+ [withBaseName("first")]: row.index === 0,
52
+ [withBaseName(`validationStatus-${rowValidationStatus}`)]: rowValidationStatus
53
+ }),
54
+ onMouseEnter,
55
+ onMouseLeave,
56
+ "data-row-index": row.index,
57
+ "data-row-key": row.key,
58
+ children: [
59
+ columns.map((column, i) => {
60
+ var _a, _b, _c, _d;
61
+ const colKey = column.info.props.id;
62
+ const editorInfo = grid.getEditor(column.info.props.id);
63
+ const isEditable = !!editorInfo;
64
+ if (editorColIdx === column.index) {
65
+ if (isEditable) {
66
+ if (isValidElement(editorInfo.children)) {
67
+ const editorElement = Children.only(editorInfo.children);
68
+ return cloneElement(editorElement, {
69
+ key: colKey,
70
+ row,
71
+ column
72
+ });
73
+ }
72
74
  }
73
75
  }
74
- }
75
- const Cell = column.info.props.cellComponent || BaseCell;
76
- const CellValue = column.info.props.cellValueComponent || DefaultCellValue;
77
- const value = column.info.props.getValue && row.data ? column.info.props.getValue(row.data) : null;
78
- const isFocused = cursorColIdx === column.index;
79
- const isSelected2 = isCellSelected == null ? void 0 : isCellSelected(row.index, column.index);
80
- const validationFnArg = {
81
- row,
82
- column,
83
- isFocused,
84
- value
85
- };
86
- const validationStatus = (_b = (_a = column.info.props).getValidationStatus) == null ? void 0 : _b.call(_a, validationFnArg);
87
- const validationMessage = validationStatus && ((_d = (_c = column.info.props).getValidationMessage) == null ? void 0 : _d.call(_c, validationFnArg));
88
- return /* @__PURE__ */ jsx(RowValidationStatusContext.Provider, {
89
- value: { status: rowValidationStatus },
90
- children: /* @__PURE__ */ jsx(Cell, {
76
+ const Cell = column.info.props.cellComponent || BaseCell;
77
+ const CellValue = column.info.props.cellValueComponent || DefaultCellValue;
78
+ const value = column.info.props.getValue && row.data ? column.info.props.getValue(row.data) : null;
79
+ const isFocused = cursorColIdx === column.index;
80
+ const isSelected2 = isCellSelected == null ? void 0 : isCellSelected(row.index, column.index);
81
+ const validationFnArg = {
91
82
  row,
92
83
  column,
93
84
  isFocused,
94
- isSelected: isSelected2,
95
- isEditable,
96
- validationStatus,
97
- validationMessage,
98
- validationType: column.info.props.validationType,
99
- value,
100
- align: column.info.props.align,
101
- children: /* @__PURE__ */ jsx(CellValue, {
102
- column,
103
- row,
104
- value,
105
- isFocused,
106
- validationStatus,
107
- validationMessage,
108
- validationType: column.info.props.validationType
109
- })
110
- })
111
- }, colKey);
112
- }),
113
- gap !== void 0 && gap > 0 ? /* @__PURE__ */ jsx(FakeCell, {
114
- row
115
- }) : null
116
- ]
117
- });
85
+ value
86
+ };
87
+ const validationStatus = (_b = (_a = column.info.props).getValidationStatus) == null ? void 0 : _b.call(_a, validationFnArg);
88
+ const validationMessage = validationStatus && ((_d = (_c = column.info.props).getValidationMessage) == null ? void 0 : _d.call(_c, validationFnArg));
89
+ return /* @__PURE__ */ jsx(
90
+ RowValidationStatusContext.Provider,
91
+ {
92
+ value: { status: rowValidationStatus },
93
+ children: /* @__PURE__ */ jsx(
94
+ Cell,
95
+ {
96
+ row,
97
+ column,
98
+ isFocused,
99
+ isSelected: isSelected2,
100
+ isEditable,
101
+ validationStatus,
102
+ validationMessage,
103
+ validationType: column.info.props.validationType,
104
+ value,
105
+ align: column.info.props.align,
106
+ children: /* @__PURE__ */ jsx(
107
+ CellValue,
108
+ {
109
+ column,
110
+ row,
111
+ value,
112
+ isFocused,
113
+ validationStatus,
114
+ validationMessage,
115
+ validationType: column.info.props.validationType
116
+ }
117
+ )
118
+ }
119
+ )
120
+ },
121
+ colKey
122
+ );
123
+ }),
124
+ gap !== void 0 && gap > 0 ? /* @__PURE__ */ jsx(FakeCell, { row }) : null
125
+ ]
126
+ }
127
+ );
118
128
  }
119
129
 
120
130
  export { TableRow };
@@ -1 +1 @@
1
- {"version":3,"file":"TableRow.js","sources":["../src/internal/TableRow.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n Children,\n type MouseEventHandler,\n cloneElement,\n isValidElement,\n} from \"react\";\n\nimport { BaseCell } from \"../BaseCell\";\nimport type { GridColumnModel, GridRowModel } from \"../Grid\";\nimport type { CellValidationState } from \"../GridColumn\";\nimport { useGridContext } from \"../GridContext\";\nimport { RowValidationStatusContext } from \"../RowValidationStatus\";\n\nimport { DefaultCellValue } from \"./DefaultCellValue\";\nimport { FakeCell } from \"./FakeCell\";\n\nimport tableRowCss from \"./TableRow.css\";\n\nconst withBaseName = makePrefixer(\"saltGridTableRow\");\n\nexport interface TableRowProps<T> {\n row: GridRowModel<T>;\n isSelected?: boolean;\n isHoverOver?: boolean;\n zebra?: boolean;\n columns: GridColumnModel<T>[];\n cursorColIdx?: number;\n onMouseEnter?: MouseEventHandler<HTMLTableRowElement>;\n onMouseLeave?: MouseEventHandler<HTMLTableRowElement>;\n gap?: number;\n editorColIdx?: number;\n isCellSelected?: (rowIdx: number, colIdx: number) => boolean;\n headerIsFocusable?: boolean;\n validationStatus?: CellValidationState;\n}\n\nexport function TableRow<T>(props: TableRowProps<T>) {\n const {\n row,\n isSelected,\n zebra,\n isHoverOver,\n columns,\n onMouseEnter,\n onMouseLeave,\n cursorColIdx,\n gap,\n editorColIdx,\n isCellSelected,\n headerIsFocusable,\n validationStatus: rowValidationStatus,\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-table-row\",\n css: tableRowCss,\n window: targetWindow,\n });\n\n const grid = useGridContext();\n\n if (!row.key) {\n throw new Error(\"Invalid row\");\n }\n\n const ariaRowIndex = headerIsFocusable ? row.index + 2 : row.index + 1;\n\n return (\n <tr\n aria-rowindex={ariaRowIndex}\n aria-selected={isSelected ? true : undefined}\n className={clsx(withBaseName(), {\n [withBaseName(\"zebra\")]: zebra,\n [withBaseName(\"hover\")]: isHoverOver,\n [withBaseName(\"selected\")]: isSelected,\n [withBaseName(\"first\")]: row.index === 0,\n [withBaseName(`validationStatus-${rowValidationStatus}`)]:\n rowValidationStatus,\n })}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n data-row-index={row.index}\n data-row-key={row.key}\n role=\"row\"\n >\n {columns.map((column, i) => {\n const colKey = column.info.props.id;\n const editorInfo = grid.getEditor(column.info.props.id);\n const isEditable = !!editorInfo;\n\n if (editorColIdx === column.index) {\n if (isEditable) {\n if (isValidElement(editorInfo.children)) {\n const editorElement = Children.only(editorInfo.children);\n return cloneElement(editorElement, {\n key: colKey,\n row,\n column,\n } as any);\n }\n }\n }\n\n const Cell = column.info.props.cellComponent || BaseCell;\n const CellValue =\n column.info.props.cellValueComponent || DefaultCellValue;\n const value =\n column.info.props.getValue && row.data\n ? column.info.props.getValue(row.data)\n : null;\n const isFocused = cursorColIdx === column.index;\n const isSelected = isCellSelected?.(row.index, column.index);\n const validationFnArg = {\n row,\n column,\n isFocused,\n value,\n };\n const validationStatus =\n column.info.props.getValidationStatus?.(validationFnArg);\n const validationMessage =\n validationStatus &&\n column.info.props.getValidationMessage?.(validationFnArg);\n\n return (\n <RowValidationStatusContext.Provider\n key={colKey}\n value={{ status: rowValidationStatus }}\n >\n <Cell\n row={row}\n column={column}\n isFocused={isFocused}\n isSelected={isSelected}\n isEditable={isEditable}\n validationStatus={validationStatus}\n validationMessage={validationMessage}\n validationType={column.info.props.validationType}\n value={value}\n align={column.info.props.align}\n >\n <CellValue\n column={column}\n row={row}\n value={value}\n isFocused={isFocused}\n validationStatus={validationStatus}\n validationMessage={validationMessage}\n validationType={column.info.props.validationType}\n />\n </Cell>\n </RowValidationStatusContext.Provider>\n );\n })}\n {gap !== undefined && gap > 0 ? <FakeCell row={row} /> : null}\n </tr>\n );\n}\n"],"names":["tableRowCss","isSelected"],"mappings":"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"}
1
+ {"version":3,"file":"TableRow.js","sources":["../src/internal/TableRow.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport {\n Children,\n type MouseEventHandler,\n cloneElement,\n isValidElement,\n} from \"react\";\n\nimport { BaseCell } from \"../BaseCell\";\nimport type { GridColumnModel, GridRowModel } from \"../Grid\";\nimport type { CellValidationState } from \"../GridColumn\";\nimport { useGridContext } from \"../GridContext\";\nimport { RowValidationStatusContext } from \"../RowValidationStatus\";\n\nimport { DefaultCellValue } from \"./DefaultCellValue\";\nimport { FakeCell } from \"./FakeCell\";\n\nimport tableRowCss from \"./TableRow.css\";\n\nconst withBaseName = makePrefixer(\"saltGridTableRow\");\n\nexport interface TableRowProps<T> {\n row: GridRowModel<T>;\n isSelected?: boolean;\n isHoverOver?: boolean;\n zebra?: boolean;\n columns: GridColumnModel<T>[];\n cursorColIdx?: number;\n onMouseEnter?: MouseEventHandler<HTMLTableRowElement>;\n onMouseLeave?: MouseEventHandler<HTMLTableRowElement>;\n gap?: number;\n editorColIdx?: number;\n isCellSelected?: (rowIdx: number, colIdx: number) => boolean;\n headerIsFocusable?: boolean;\n validationStatus?: CellValidationState;\n}\n\nexport function TableRow<T>(props: TableRowProps<T>) {\n const {\n row,\n isSelected,\n zebra,\n isHoverOver,\n columns,\n onMouseEnter,\n onMouseLeave,\n cursorColIdx,\n gap,\n editorColIdx,\n isCellSelected,\n headerIsFocusable,\n validationStatus: rowValidationStatus,\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-table-row\",\n css: tableRowCss,\n window: targetWindow,\n });\n\n const grid = useGridContext();\n\n if (!row.key) {\n throw new Error(\"Invalid row\");\n }\n\n const ariaRowIndex = headerIsFocusable ? row.index + 2 : row.index + 1;\n\n return (\n <tr\n aria-rowindex={ariaRowIndex}\n aria-selected={isSelected ? true : undefined}\n className={clsx(withBaseName(), {\n [withBaseName(\"zebra\")]: zebra,\n [withBaseName(\"hover\")]: isHoverOver,\n [withBaseName(\"selected\")]: isSelected,\n [withBaseName(\"first\")]: row.index === 0,\n [withBaseName(`validationStatus-${rowValidationStatus}`)]:\n rowValidationStatus,\n })}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n data-row-index={row.index}\n data-row-key={row.key}\n >\n {columns.map((column, i) => {\n const colKey = column.info.props.id;\n const editorInfo = grid.getEditor(column.info.props.id);\n const isEditable = !!editorInfo;\n\n if (editorColIdx === column.index) {\n if (isEditable) {\n if (isValidElement(editorInfo.children)) {\n const editorElement = Children.only(editorInfo.children);\n return cloneElement(editorElement, {\n key: colKey,\n row,\n column,\n } as any);\n }\n }\n }\n\n const Cell = column.info.props.cellComponent || BaseCell;\n const CellValue =\n column.info.props.cellValueComponent || DefaultCellValue;\n const value =\n column.info.props.getValue && row.data\n ? column.info.props.getValue(row.data)\n : null;\n const isFocused = cursorColIdx === column.index;\n const isSelected = isCellSelected?.(row.index, column.index);\n const validationFnArg = {\n row,\n column,\n isFocused,\n value,\n };\n const validationStatus =\n column.info.props.getValidationStatus?.(validationFnArg);\n const validationMessage =\n validationStatus &&\n column.info.props.getValidationMessage?.(validationFnArg);\n\n return (\n <RowValidationStatusContext.Provider\n key={colKey}\n value={{ status: rowValidationStatus }}\n >\n <Cell\n row={row}\n column={column}\n isFocused={isFocused}\n isSelected={isSelected}\n isEditable={isEditable}\n validationStatus={validationStatus}\n validationMessage={validationMessage}\n validationType={column.info.props.validationType}\n value={value}\n align={column.info.props.align}\n >\n <CellValue\n column={column}\n row={row}\n value={value}\n isFocused={isFocused}\n validationStatus={validationStatus}\n validationMessage={validationMessage}\n validationType={column.info.props.validationType}\n />\n </Cell>\n </RowValidationStatusContext.Provider>\n );\n })}\n {gap !== undefined && gap > 0 ? <FakeCell row={row} /> : null}\n </tr>\n );\n}\n"],"names":["tableRowCss","isSelected"],"mappings":";;;;;;;;;;;;;AAsBA,MAAM,YAAA,GAAe,aAAa,kBAAkB,CAAA;AAkB7C,SAAS,SAAY,KAAyB,EAAA;AACnD,EAAM,MAAA;AAAA,IACJ,GAAA;AAAA,IACA,UAAA;AAAA,IACA,KAAA;AAAA,IACA,WAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA;AAAA,IACA,YAAA;AAAA,IACA,GAAA;AAAA,IACA,YAAA;AAAA,IACA,cAAA;AAAA,IACA,iBAAA;AAAA,IACA,gBAAkB,EAAA;AAAA,GAChB,GAAA,KAAA;AAEJ,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,gBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,MAAM,OAAO,cAAe,EAAA;AAE5B,EAAI,IAAA,CAAC,IAAI,GAAK,EAAA;AACZ,IAAM,MAAA,IAAI,MAAM,aAAa,CAAA;AAAA;AAG/B,EAAA,MAAM,eAAe,iBAAoB,GAAA,GAAA,CAAI,KAAQ,GAAA,CAAA,GAAI,IAAI,KAAQ,GAAA,CAAA;AAErE,EACE,uBAAA,IAAA;AAAA,IAAC,IAAA;AAAA,IAAA;AAAA,MACC,eAAe,EAAA,YAAA;AAAA,MACf,eAAA,EAAe,aAAa,IAAO,GAAA,KAAA,CAAA;AAAA,MACnC,SAAA,EAAW,IAAK,CAAA,YAAA,EAAgB,EAAA;AAAA,QAC9B,CAAC,YAAA,CAAa,OAAO,CAAC,GAAG,KAAA;AAAA,QACzB,CAAC,YAAA,CAAa,OAAO,CAAC,GAAG,WAAA;AAAA,QACzB,CAAC,YAAA,CAAa,UAAU,CAAC,GAAG,UAAA;AAAA,QAC5B,CAAC,YAAa,CAAA,OAAO,CAAC,GAAG,IAAI,KAAU,KAAA,CAAA;AAAA,QACvC,CAAC,YAAa,CAAA,CAAA,iBAAA,EAAoB,mBAAmB,CAAA,CAAE,CAAC,GACtD;AAAA,OACH,CAAA;AAAA,MACD,YAAA;AAAA,MACA,YAAA;AAAA,MACA,kBAAgB,GAAI,CAAA,KAAA;AAAA,MACpB,gBAAc,GAAI,CAAA,GAAA;AAAA,MAEjB,QAAA,EAAA;AAAA,QAAQ,OAAA,CAAA,GAAA,CAAI,CAAC,MAAA,EAAQ,CAAM,KAAA;AAzFlC,UAAA,IAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA,EAAA;AA0FQ,UAAM,MAAA,MAAA,GAAS,MAAO,CAAA,IAAA,CAAK,KAAM,CAAA,EAAA;AACjC,UAAA,MAAM,aAAa,IAAK,CAAA,SAAA,CAAU,MAAO,CAAA,IAAA,CAAK,MAAM,EAAE,CAAA;AACtD,UAAM,MAAA,UAAA,GAAa,CAAC,CAAC,UAAA;AAErB,UAAI,IAAA,YAAA,KAAiB,OAAO,KAAO,EAAA;AACjC,YAAA,IAAI,UAAY,EAAA;AACd,cAAI,IAAA,cAAA,CAAe,UAAW,CAAA,QAAQ,CAAG,EAAA;AACvC,gBAAA,MAAM,aAAgB,GAAA,QAAA,CAAS,IAAK,CAAA,UAAA,CAAW,QAAQ,CAAA;AACvD,gBAAA,OAAO,aAAa,aAAe,EAAA;AAAA,kBACjC,GAAK,EAAA,MAAA;AAAA,kBACL,GAAA;AAAA,kBACA;AAAA,iBACM,CAAA;AAAA;AACV;AACF;AAGF,UAAA,MAAM,IAAO,GAAA,MAAA,CAAO,IAAK,CAAA,KAAA,CAAM,aAAiB,IAAA,QAAA;AAChD,UAAA,MAAM,SACJ,GAAA,MAAA,CAAO,IAAK,CAAA,KAAA,CAAM,kBAAsB,IAAA,gBAAA;AAC1C,UAAA,MAAM,KACJ,GAAA,MAAA,CAAO,IAAK,CAAA,KAAA,CAAM,QAAY,IAAA,GAAA,CAAI,IAC9B,GAAA,MAAA,CAAO,IAAK,CAAA,KAAA,CAAM,QAAS,CAAA,GAAA,CAAI,IAAI,CACnC,GAAA,IAAA;AACN,UAAM,MAAA,SAAA,GAAY,iBAAiB,MAAO,CAAA,KAAA;AAC1C,UAAA,MAAMC,WAAa,GAAA,cAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,cAAA,CAAiB,GAAI,CAAA,KAAA,EAAO,MAAO,CAAA,KAAA,CAAA;AACtD,UAAA,MAAM,eAAkB,GAAA;AAAA,YACtB,GAAA;AAAA,YACA,MAAA;AAAA,YACA,SAAA;AAAA,YACA;AAAA,WACF;AACA,UAAA,MAAM,gBACJ,GAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,CAAO,IAAK,CAAA,KAAA,EAAM,wBAAlB,IAAwC,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,eAAA,CAAA;AAC1C,UAAA,MAAM,oBACJ,gBACA,KAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,MAAA,CAAO,IAAK,CAAA,KAAA,EAAM,yBAAlB,IAAyC,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,IAAA,CAAA,EAAA,EAAA,eAAA,CAAA,CAAA;AAE3C,UACE,uBAAA,GAAA;AAAA,YAAC,0BAA2B,CAAA,QAAA;AAAA,YAA3B;AAAA,cAEC,KAAA,EAAO,EAAE,MAAA,EAAQ,mBAAoB,EAAA;AAAA,cAErC,QAAA,kBAAA,GAAA;AAAA,gBAAC,IAAA;AAAA,gBAAA;AAAA,kBACC,GAAA;AAAA,kBACA,MAAA;AAAA,kBACA,SAAA;AAAA,kBACA,UAAYA,EAAAA,WAAAA;AAAA,kBACZ,UAAA;AAAA,kBACA,gBAAA;AAAA,kBACA,iBAAA;AAAA,kBACA,cAAA,EAAgB,MAAO,CAAA,IAAA,CAAK,KAAM,CAAA,cAAA;AAAA,kBAClC,KAAA;AAAA,kBACA,KAAA,EAAO,MAAO,CAAA,IAAA,CAAK,KAAM,CAAA,KAAA;AAAA,kBAEzB,QAAA,kBAAA,GAAA;AAAA,oBAAC,SAAA;AAAA,oBAAA;AAAA,sBACC,MAAA;AAAA,sBACA,GAAA;AAAA,sBACA,KAAA;AAAA,sBACA,SAAA;AAAA,sBACA,gBAAA;AAAA,sBACA,iBAAA;AAAA,sBACA,cAAA,EAAgB,MAAO,CAAA,IAAA,CAAK,KAAM,CAAA;AAAA;AAAA;AACpC;AAAA;AACF,aAAA;AAAA,YAxBK;AAAA,WAyBP;AAAA,SAEH,CAAA;AAAA,QACA,QAAQ,KAAa,CAAA,IAAA,GAAA,GAAM,oBAAK,GAAA,CAAA,QAAA,EAAA,EAAS,KAAU,CAAK,GAAA;AAAA;AAAA;AAAA,GAC3D;AAEJ;;;;"}
@@ -22,32 +22,23 @@ function TopLeftPart(props) {
22
22
  if (columns.length === 0) {
23
23
  return null;
24
24
  }
25
- return /* @__PURE__ */ jsx("div", {
26
- className: clsx(withBaseName(), {
27
- [withBaseName("rightShadow")]: rightShadow,
28
- [withBaseName("bottomShadow")]: bottomShadow
29
- }),
30
- "data-testid": "grid-top-left-part",
31
- children: /* @__PURE__ */ jsxs("table", {
32
- ref: tableRef,
33
- role: "presentation",
34
- children: [
35
- /* @__PURE__ */ jsx(TableColGroup, {
36
- columns
37
- }),
38
- /* @__PURE__ */ jsxs("thead", {
39
- children: [
40
- /* @__PURE__ */ jsx(GroupHeaderRow, {
41
- groups: columnGroups
42
- }),
43
- /* @__PURE__ */ jsx(HeaderRow, {
44
- columns
45
- })
46
- ]
47
- })
48
- ]
49
- })
50
- });
25
+ return /* @__PURE__ */ jsx(
26
+ "div",
27
+ {
28
+ className: clsx(withBaseName(), {
29
+ [withBaseName("rightShadow")]: rightShadow,
30
+ [withBaseName("bottomShadow")]: bottomShadow
31
+ }),
32
+ "data-testid": "grid-top-left-part",
33
+ children: /* @__PURE__ */ jsxs("table", { ref: tableRef, role: "presentation", children: [
34
+ /* @__PURE__ */ jsx(TableColGroup, { columns }),
35
+ /* @__PURE__ */ jsxs("thead", { children: [
36
+ /* @__PURE__ */ jsx(GroupHeaderRow, { groups: columnGroups }),
37
+ /* @__PURE__ */ jsx(HeaderRow, { columns })
38
+ ] })
39
+ ] })
40
+ }
41
+ );
51
42
  }
52
43
 
53
44
  export { TopLeftPart };
@@ -1 +1 @@
1
- {"version":3,"file":"TopLeftPart.js","sources":["../src/internal/TopLeftPart.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\n\nimport type { GridColumnGroupModel, GridColumnModel } from \"../Grid\";\n\nimport { GroupHeaderRow } from \"./GroupHeaderRow\";\nimport { HeaderRow } from \"./HeaderRow\";\nimport { TableColGroup } from \"./TableColGroup\";\nimport { useActiveOnWheel } from \"./gridHooks\";\n\nimport topLeftPartCss from \"./TopLeftPart.css\";\n\nconst withBaseName = makePrefixer(\"saltGridTopLeftPart\");\n\nexport interface TopLeftPartProps<T> {\n onWheel: EventListener;\n columns: GridColumnModel<T>[];\n columnGroups: GridColumnGroupModel[];\n rightShadow?: boolean;\n bottomShadow?: boolean;\n}\n\nexport function TopLeftPart<T>(props: TopLeftPartProps<T>) {\n const { onWheel, columns, columnGroups, rightShadow, bottomShadow } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-top-left-part\",\n css: topLeftPartCss,\n window: targetWindow,\n });\n\n const tableRef = useActiveOnWheel(onWheel);\n\n if (columns.length === 0) {\n return null;\n }\n\n return (\n <div\n className={clsx(withBaseName(), {\n [withBaseName(\"rightShadow\")]: rightShadow,\n [withBaseName(\"bottomShadow\")]: bottomShadow,\n })}\n data-testid=\"grid-top-left-part\"\n >\n <table ref={tableRef} role=\"presentation\">\n <TableColGroup columns={columns} />\n <thead>\n <GroupHeaderRow groups={columnGroups} />\n <HeaderRow columns={columns} />\n </thead>\n </table>\n </div>\n );\n}\n"],"names":["topLeftPartCss"],"mappings":";;;;;;;;;;;AAcA,MAAM,YAAA,GAAe,aAAa,qBAAqB,CAAA,CAAA;AAUhD,SAAS,YAAe,KAA4B,EAAA;AACzD,EAAA,MAAM,EAAE,OAAS,EAAA,OAAA,EAAS,YAAc,EAAA,WAAA,EAAa,cAAiB,GAAA,KAAA,CAAA;AAEtE,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,oBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,QAAA,GAAW,iBAAiB,OAAO,CAAA,CAAA;AAEzC,EAAI,IAAA,OAAA,CAAQ,WAAW,CAAG,EAAA;AACxB,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAEA,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IACC,SAAA,EAAW,IAAK,CAAA,YAAA,EAAgB,EAAA;AAAA,MAC9B,CAAC,YAAa,CAAA,aAAa,CAAI,GAAA,WAAA;AAAA,MAC/B,CAAC,YAAa,CAAA,cAAc,CAAI,GAAA,YAAA;AAAA,KACjC,CAAA;AAAA,IACD,aAAY,EAAA,oBAAA;AAAA,IAEZ,QAAC,kBAAA,IAAA,CAAA,OAAA,EAAA;AAAA,MAAM,GAAK,EAAA,QAAA;AAAA,MAAU,IAAK,EAAA,cAAA;AAAA,MACzB,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,aAAA,EAAA;AAAA,UAAc,OAAA;AAAA,SAAkB,CAAA;AAAA,wBAChC,IAAA,CAAA,OAAA,EAAA;AAAA,UACC,QAAA,EAAA;AAAA,4BAAC,GAAA,CAAA,cAAA,EAAA;AAAA,cAAe,MAAQ,EAAA,YAAA;AAAA,aAAc,CAAA;AAAA,4BACrC,GAAA,CAAA,SAAA,EAAA;AAAA,cAAU,OAAA;AAAA,aAAkB,CAAA;AAAA,WAAA;AAAA,SAC/B,CAAA;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"TopLeftPart.js","sources":["../src/internal/TopLeftPart.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\n\nimport type { GridColumnGroupModel, GridColumnModel } from \"../Grid\";\n\nimport { GroupHeaderRow } from \"./GroupHeaderRow\";\nimport { HeaderRow } from \"./HeaderRow\";\nimport { TableColGroup } from \"./TableColGroup\";\nimport { useActiveOnWheel } from \"./gridHooks\";\n\nimport topLeftPartCss from \"./TopLeftPart.css\";\n\nconst withBaseName = makePrefixer(\"saltGridTopLeftPart\");\n\nexport interface TopLeftPartProps<T> {\n onWheel: EventListener;\n columns: GridColumnModel<T>[];\n columnGroups: GridColumnGroupModel[];\n rightShadow?: boolean;\n bottomShadow?: boolean;\n}\n\nexport function TopLeftPart<T>(props: TopLeftPartProps<T>) {\n const { onWheel, columns, columnGroups, rightShadow, bottomShadow } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-top-left-part\",\n css: topLeftPartCss,\n window: targetWindow,\n });\n\n const tableRef = useActiveOnWheel(onWheel);\n\n if (columns.length === 0) {\n return null;\n }\n\n return (\n <div\n className={clsx(withBaseName(), {\n [withBaseName(\"rightShadow\")]: rightShadow,\n [withBaseName(\"bottomShadow\")]: bottomShadow,\n })}\n data-testid=\"grid-top-left-part\"\n >\n <table ref={tableRef} role=\"presentation\">\n <TableColGroup columns={columns} />\n <thead>\n <GroupHeaderRow groups={columnGroups} />\n <HeaderRow columns={columns} />\n </thead>\n </table>\n </div>\n );\n}\n"],"names":["topLeftPartCss"],"mappings":";;;;;;;;;;;AAcA,MAAM,YAAA,GAAe,aAAa,qBAAqB,CAAA;AAUhD,SAAS,YAAe,KAA4B,EAAA;AACzD,EAAA,MAAM,EAAE,OAAS,EAAA,OAAA,EAAS,YAAc,EAAA,WAAA,EAAa,cAAiB,GAAA,KAAA;AAEtE,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,oBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA,QAAA,GAAW,iBAAiB,OAAO,CAAA;AAEzC,EAAI,IAAA,OAAA,CAAQ,WAAW,CAAG,EAAA;AACxB,IAAO,OAAA,IAAA;AAAA;AAGT,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,IAAK,CAAA,YAAA,EAAgB,EAAA;AAAA,QAC9B,CAAC,YAAA,CAAa,aAAa,CAAC,GAAG,WAAA;AAAA,QAC/B,CAAC,YAAA,CAAa,cAAc,CAAC,GAAG;AAAA,OACjC,CAAA;AAAA,MACD,aAAY,EAAA,oBAAA;AAAA,MAEZ,QAAC,kBAAA,IAAA,CAAA,OAAA,EAAA,EAAM,GAAK,EAAA,QAAA,EAAU,MAAK,cACzB,EAAA,QAAA,EAAA;AAAA,wBAAA,GAAA,CAAC,iBAAc,OAAkB,EAAA,CAAA;AAAA,6BAChC,OACC,EAAA,EAAA,QAAA,EAAA;AAAA,0BAAC,GAAA,CAAA,cAAA,EAAA,EAAe,QAAQ,YAAc,EAAA,CAAA;AAAA,0BACtC,GAAA,CAAC,aAAU,OAAkB,EAAA;AAAA,SAC/B,EAAA;AAAA,OACF,EAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
@@ -19,38 +19,23 @@ function TopPart(props) {
19
19
  window: targetWindow
20
20
  });
21
21
  const tableRef = useActiveOnWheel(onWheel);
22
- return /* @__PURE__ */ jsx("div", {
23
- className: clsx(withBaseName(), {
24
- [withBaseName("bottomShadow")]: bottomShadow
25
- }),
26
- ref: topRef,
27
- "data-testid": "grid-top-part",
28
- children: /* @__PURE__ */ jsx("div", {
29
- className: withBaseName("space"),
30
- children: /* @__PURE__ */ jsxs("table", {
31
- ref: tableRef,
32
- role: "presentation",
33
- children: [
34
- /* @__PURE__ */ jsx(TableColGroup, {
35
- columns,
36
- gap: midGap
37
- }),
38
- /* @__PURE__ */ jsxs("thead", {
39
- children: [
40
- /* @__PURE__ */ jsx(GroupHeaderRow, {
41
- groups: columnGroups,
42
- gap: midGap
43
- }),
44
- /* @__PURE__ */ jsx(HeaderRow, {
45
- columns,
46
- gap: midGap
47
- })
48
- ]
49
- })
50
- ]
51
- })
52
- })
53
- });
22
+ return /* @__PURE__ */ jsx(
23
+ "div",
24
+ {
25
+ className: clsx(withBaseName(), {
26
+ [withBaseName("bottomShadow")]: bottomShadow
27
+ }),
28
+ ref: topRef,
29
+ "data-testid": "grid-top-part",
30
+ children: /* @__PURE__ */ jsx("div", { className: withBaseName("space"), children: /* @__PURE__ */ jsxs("table", { ref: tableRef, role: "presentation", children: [
31
+ /* @__PURE__ */ jsx(TableColGroup, { columns, gap: midGap }),
32
+ /* @__PURE__ */ jsxs("thead", { children: [
33
+ /* @__PURE__ */ jsx(GroupHeaderRow, { groups: columnGroups, gap: midGap }),
34
+ /* @__PURE__ */ jsx(HeaderRow, { columns, gap: midGap })
35
+ ] })
36
+ ] }) })
37
+ }
38
+ );
54
39
  }
55
40
 
56
41
  export { TopPart };
@@ -1 +1 @@
1
- {"version":3,"file":"TopPart.js","sources":["../src/internal/TopPart.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport type { RefObject } from \"react\";\n\nimport type { GridColumnGroupModel, GridColumnModel } from \"../Grid\";\n\nimport { GroupHeaderRow } from \"./GroupHeaderRow\";\nimport { HeaderRow } from \"./HeaderRow\";\nimport { TableColGroup } from \"./TableColGroup\";\nimport { useActiveOnWheel } from \"./gridHooks\";\n\nimport topPartCss from \"./TopPart.css\";\n\nconst withBaseName = makePrefixer(\"saltGridTopPart\");\n\nexport interface TopPartProps<T> {\n topRef: RefObject<HTMLDivElement>;\n onWheel: EventListener;\n columns: GridColumnModel<T>[];\n columnGroups: GridColumnGroupModel[];\n midGap: number;\n bottomShadow?: boolean;\n}\n\nexport function TopPart<T>(props: TopPartProps<T>) {\n const { topRef, onWheel, columns, columnGroups, midGap, bottomShadow } =\n props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-top-part\",\n css: topPartCss,\n window: targetWindow,\n });\n\n const tableRef = useActiveOnWheel(onWheel);\n\n return (\n <div\n className={clsx(withBaseName(), {\n [withBaseName(\"bottomShadow\")]: bottomShadow,\n })}\n ref={topRef}\n data-testid=\"grid-top-part\"\n >\n <div className={withBaseName(\"space\")}>\n <table ref={tableRef} role=\"presentation\">\n <TableColGroup columns={columns} gap={midGap} />\n <thead>\n <GroupHeaderRow groups={columnGroups} gap={midGap} />\n <HeaderRow columns={columns} gap={midGap} />\n </thead>\n </table>\n </div>\n </div>\n );\n}\n"],"names":["topPartCss"],"mappings":";;;;;;;;;;;AAeA,MAAM,YAAA,GAAe,aAAa,iBAAiB,CAAA,CAAA;AAW5C,SAAS,QAAW,KAAwB,EAAA;AACjD,EAAA,MAAM,EAAE,MAAQ,EAAA,OAAA,EAAS,SAAS,YAAc,EAAA,MAAA,EAAQ,cACtD,GAAA,KAAA,CAAA;AAEF,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,eAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,QAAA,GAAW,iBAAiB,OAAO,CAAA,CAAA;AAEzC,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IACC,SAAA,EAAW,IAAK,CAAA,YAAA,EAAgB,EAAA;AAAA,MAC9B,CAAC,YAAa,CAAA,cAAc,CAAI,GAAA,YAAA;AAAA,KACjC,CAAA;AAAA,IACD,GAAK,EAAA,MAAA;AAAA,IACL,aAAY,EAAA,eAAA;AAAA,IAEZ,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA;AAAA,MAAI,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,MAClC,QAAC,kBAAA,IAAA,CAAA,OAAA,EAAA;AAAA,QAAM,GAAK,EAAA,QAAA;AAAA,QAAU,IAAK,EAAA,cAAA;AAAA,QACzB,QAAA,EAAA;AAAA,0BAAC,GAAA,CAAA,aAAA,EAAA;AAAA,YAAc,OAAA;AAAA,YAAkB,GAAK,EAAA,MAAA;AAAA,WAAQ,CAAA;AAAA,0BAC7C,IAAA,CAAA,OAAA,EAAA;AAAA,YACC,QAAA,EAAA;AAAA,8BAAC,GAAA,CAAA,cAAA,EAAA;AAAA,gBAAe,MAAQ,EAAA,YAAA;AAAA,gBAAc,GAAK,EAAA,MAAA;AAAA,eAAQ,CAAA;AAAA,8BAClD,GAAA,CAAA,SAAA,EAAA;AAAA,gBAAU,OAAA;AAAA,gBAAkB,GAAK,EAAA,MAAA;AAAA,eAAQ,CAAA;AAAA,aAAA;AAAA,WAC5C,CAAA;AAAA,SAAA;AAAA,OACF,CAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"TopPart.js","sources":["../src/internal/TopPart.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport type { RefObject } from \"react\";\n\nimport type { GridColumnGroupModel, GridColumnModel } from \"../Grid\";\n\nimport { GroupHeaderRow } from \"./GroupHeaderRow\";\nimport { HeaderRow } from \"./HeaderRow\";\nimport { TableColGroup } from \"./TableColGroup\";\nimport { useActiveOnWheel } from \"./gridHooks\";\n\nimport topPartCss from \"./TopPart.css\";\n\nconst withBaseName = makePrefixer(\"saltGridTopPart\");\n\nexport interface TopPartProps<T> {\n topRef: RefObject<HTMLDivElement>;\n onWheel: EventListener;\n columns: GridColumnModel<T>[];\n columnGroups: GridColumnGroupModel[];\n midGap: number;\n bottomShadow?: boolean;\n}\n\nexport function TopPart<T>(props: TopPartProps<T>) {\n const { topRef, onWheel, columns, columnGroups, midGap, bottomShadow } =\n props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-top-part\",\n css: topPartCss,\n window: targetWindow,\n });\n\n const tableRef = useActiveOnWheel(onWheel);\n\n return (\n <div\n className={clsx(withBaseName(), {\n [withBaseName(\"bottomShadow\")]: bottomShadow,\n })}\n ref={topRef}\n data-testid=\"grid-top-part\"\n >\n <div className={withBaseName(\"space\")}>\n <table ref={tableRef} role=\"presentation\">\n <TableColGroup columns={columns} gap={midGap} />\n <thead>\n <GroupHeaderRow groups={columnGroups} gap={midGap} />\n <HeaderRow columns={columns} gap={midGap} />\n </thead>\n </table>\n </div>\n </div>\n );\n}\n"],"names":["topPartCss"],"mappings":";;;;;;;;;;;AAeA,MAAM,YAAA,GAAe,aAAa,iBAAiB,CAAA;AAW5C,SAAS,QAAW,KAAwB,EAAA;AACjD,EAAA,MAAM,EAAE,MAAQ,EAAA,OAAA,EAAS,SAAS,YAAc,EAAA,MAAA,EAAQ,cACtD,GAAA,KAAA;AAEF,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,eAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA,QAAA,GAAW,iBAAiB,OAAO,CAAA;AAEzC,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,IAAK,CAAA,YAAA,EAAgB,EAAA;AAAA,QAC9B,CAAC,YAAA,CAAa,cAAc,CAAC,GAAG;AAAA,OACjC,CAAA;AAAA,MACD,GAAK,EAAA,MAAA;AAAA,MACL,aAAY,EAAA,eAAA;AAAA,MAEZ,QAAA,kBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,YAAa,CAAA,OAAO,CAClC,EAAA,QAAA,kBAAA,IAAA,CAAC,OAAM,EAAA,EAAA,GAAA,EAAK,QAAU,EAAA,IAAA,EAAK,cACzB,EAAA,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,aAAA,EAAA,EAAc,OAAkB,EAAA,GAAA,EAAK,MAAQ,EAAA,CAAA;AAAA,6BAC7C,OACC,EAAA,EAAA,QAAA,EAAA;AAAA,0BAAA,GAAA,CAAC,cAAe,EAAA,EAAA,MAAA,EAAQ,YAAc,EAAA,GAAA,EAAK,MAAQ,EAAA,CAAA;AAAA,0BAClD,GAAA,CAAA,SAAA,EAAA,EAAU,OAAkB,EAAA,GAAA,EAAK,MAAQ,EAAA;AAAA,SAC5C,EAAA;AAAA,OAAA,EACF,CACF,EAAA;AAAA;AAAA,GACF;AAEJ;;;;"}
@@ -22,33 +22,31 @@ function TopRightPart(props) {
22
22
  if (columns.length === 0) {
23
23
  return null;
24
24
  }
25
- return /* @__PURE__ */ jsx("div", {
26
- className: clsx(withBaseName(), {
27
- [withBaseName("leftShadow")]: leftShadow,
28
- [withBaseName("bottomShadow")]: bottomShadow
29
- }),
30
- "data-testid": "grid-top-right-part",
31
- children: /* @__PURE__ */ jsxs("table", {
32
- className: withBaseName("table"),
33
- ref: tableRef,
34
- role: "presentation",
35
- children: [
36
- /* @__PURE__ */ jsx(TableColGroup, {
37
- columns
38
- }),
39
- /* @__PURE__ */ jsxs("thead", {
25
+ return /* @__PURE__ */ jsx(
26
+ "div",
27
+ {
28
+ className: clsx(withBaseName(), {
29
+ [withBaseName("leftShadow")]: leftShadow,
30
+ [withBaseName("bottomShadow")]: bottomShadow
31
+ }),
32
+ "data-testid": "grid-top-right-part",
33
+ children: /* @__PURE__ */ jsxs(
34
+ "table",
35
+ {
36
+ className: withBaseName("table"),
37
+ ref: tableRef,
38
+ role: "presentation",
40
39
  children: [
41
- /* @__PURE__ */ jsx(GroupHeaderRow, {
42
- groups: columnGroups
43
- }),
44
- /* @__PURE__ */ jsx(HeaderRow, {
45
- columns
46
- })
40
+ /* @__PURE__ */ jsx(TableColGroup, { columns }),
41
+ /* @__PURE__ */ jsxs("thead", { children: [
42
+ /* @__PURE__ */ jsx(GroupHeaderRow, { groups: columnGroups }),
43
+ /* @__PURE__ */ jsx(HeaderRow, { columns })
44
+ ] })
47
45
  ]
48
- })
49
- ]
50
- })
51
- });
46
+ }
47
+ )
48
+ }
49
+ );
52
50
  }
53
51
 
54
52
  export { TopRightPart };
@@ -1 +1 @@
1
- {"version":3,"file":"TopRightPart.js","sources":["../src/internal/TopRightPart.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { HeaderRow } from \"./HeaderRow\";\nimport { TableColGroup } from \"./TableColGroup\";\n\nimport type { GridColumnGroupModel, GridColumnModel } from \"../Grid\";\n\nimport { GroupHeaderRow } from \"./GroupHeaderRow\";\nimport { useActiveOnWheel } from \"./gridHooks\";\n\nimport topRightPartCss from \"./TopRightPart.css\";\n\nconst withBaseName = makePrefixer(\"saltGridTopRightPart\");\n\nexport interface TopRightPartProps<T> {\n onWheel: EventListener;\n columns: GridColumnModel<T>[];\n columnGroups: GridColumnGroupModel[];\n leftShadow?: boolean;\n bottomShadow?: boolean;\n}\n\nexport function TopRightPart<T>(props: TopRightPartProps<T>) {\n const { onWheel, columns, columnGroups, leftShadow, bottomShadow } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-top-right-part\",\n css: topRightPartCss,\n window: targetWindow,\n });\n\n const tableRef = useActiveOnWheel(onWheel);\n\n if (columns.length === 0) {\n return null;\n }\n\n return (\n <div\n className={clsx(withBaseName(), {\n [withBaseName(\"leftShadow\")]: leftShadow,\n [withBaseName(\"bottomShadow\")]: bottomShadow,\n })}\n data-testid=\"grid-top-right-part\"\n >\n <table\n className={withBaseName(\"table\")}\n ref={tableRef}\n role=\"presentation\"\n >\n <TableColGroup columns={columns} />\n <thead>\n <GroupHeaderRow groups={columnGroups} />\n <HeaderRow columns={columns} />\n {/*TODO Do we need a toolbar?*/}\n {/*{showToolbar ? <HeaderToolbarRow columns={rightColumns} /> : null}*/}\n </thead>\n </table>\n </div>\n );\n}\n"],"names":["topRightPartCss"],"mappings":";;;;;;;;;;;AAcA,MAAM,YAAA,GAAe,aAAa,sBAAsB,CAAA,CAAA;AAUjD,SAAS,aAAgB,KAA6B,EAAA;AAC3D,EAAA,MAAM,EAAE,OAAS,EAAA,OAAA,EAAS,YAAc,EAAA,UAAA,EAAY,cAAiB,GAAA,KAAA,CAAA;AAErE,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,qBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,QAAA,GAAW,iBAAiB,OAAO,CAAA,CAAA;AAEzC,EAAI,IAAA,OAAA,CAAQ,WAAW,CAAG,EAAA;AACxB,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAEA,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IACC,SAAA,EAAW,IAAK,CAAA,YAAA,EAAgB,EAAA;AAAA,MAC9B,CAAC,YAAa,CAAA,YAAY,CAAI,GAAA,UAAA;AAAA,MAC9B,CAAC,YAAa,CAAA,cAAc,CAAI,GAAA,YAAA;AAAA,KACjC,CAAA;AAAA,IACD,aAAY,EAAA,qBAAA;AAAA,IAEZ,QAAC,kBAAA,IAAA,CAAA,OAAA,EAAA;AAAA,MACC,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,MAC/B,GAAK,EAAA,QAAA;AAAA,MACL,IAAK,EAAA,cAAA;AAAA,MAEL,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,aAAA,EAAA;AAAA,UAAc,OAAA;AAAA,SAAkB,CAAA;AAAA,wBAChC,IAAA,CAAA,OAAA,EAAA;AAAA,UACC,QAAA,EAAA;AAAA,4BAAC,GAAA,CAAA,cAAA,EAAA;AAAA,cAAe,MAAQ,EAAA,YAAA;AAAA,aAAc,CAAA;AAAA,4BACrC,GAAA,CAAA,SAAA,EAAA;AAAA,cAAU,OAAA;AAAA,aAAkB,CAAA;AAAA,WAAA;AAAA,SAG/B,CAAA;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"TopRightPart.js","sources":["../src/internal/TopRightPart.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { HeaderRow } from \"./HeaderRow\";\nimport { TableColGroup } from \"./TableColGroup\";\n\nimport type { GridColumnGroupModel, GridColumnModel } from \"../Grid\";\n\nimport { GroupHeaderRow } from \"./GroupHeaderRow\";\nimport { useActiveOnWheel } from \"./gridHooks\";\n\nimport topRightPartCss from \"./TopRightPart.css\";\n\nconst withBaseName = makePrefixer(\"saltGridTopRightPart\");\n\nexport interface TopRightPartProps<T> {\n onWheel: EventListener;\n columns: GridColumnModel<T>[];\n columnGroups: GridColumnGroupModel[];\n leftShadow?: boolean;\n bottomShadow?: boolean;\n}\n\nexport function TopRightPart<T>(props: TopRightPartProps<T>) {\n const { onWheel, columns, columnGroups, leftShadow, bottomShadow } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-top-right-part\",\n css: topRightPartCss,\n window: targetWindow,\n });\n\n const tableRef = useActiveOnWheel(onWheel);\n\n if (columns.length === 0) {\n return null;\n }\n\n return (\n <div\n className={clsx(withBaseName(), {\n [withBaseName(\"leftShadow\")]: leftShadow,\n [withBaseName(\"bottomShadow\")]: bottomShadow,\n })}\n data-testid=\"grid-top-right-part\"\n >\n <table\n className={withBaseName(\"table\")}\n ref={tableRef}\n role=\"presentation\"\n >\n <TableColGroup columns={columns} />\n <thead>\n <GroupHeaderRow groups={columnGroups} />\n <HeaderRow columns={columns} />\n {/*TODO Do we need a toolbar?*/}\n {/*{showToolbar ? <HeaderToolbarRow columns={rightColumns} /> : null}*/}\n </thead>\n </table>\n </div>\n );\n}\n"],"names":["topRightPartCss"],"mappings":";;;;;;;;;;;AAcA,MAAM,YAAA,GAAe,aAAa,sBAAsB,CAAA;AAUjD,SAAS,aAAgB,KAA6B,EAAA;AAC3D,EAAA,MAAM,EAAE,OAAS,EAAA,OAAA,EAAS,YAAc,EAAA,UAAA,EAAY,cAAiB,GAAA,KAAA;AAErE,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,qBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA,QAAA,GAAW,iBAAiB,OAAO,CAAA;AAEzC,EAAI,IAAA,OAAA,CAAQ,WAAW,CAAG,EAAA;AACxB,IAAO,OAAA,IAAA;AAAA;AAGT,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,IAAK,CAAA,YAAA,EAAgB,EAAA;AAAA,QAC9B,CAAC,YAAA,CAAa,YAAY,CAAC,GAAG,UAAA;AAAA,QAC9B,CAAC,YAAA,CAAa,cAAc,CAAC,GAAG;AAAA,OACjC,CAAA;AAAA,MACD,aAAY,EAAA,qBAAA;AAAA,MAEZ,QAAA,kBAAA,IAAA;AAAA,QAAC,OAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAW,aAAa,OAAO,CAAA;AAAA,UAC/B,GAAK,EAAA,QAAA;AAAA,UACL,IAAK,EAAA,cAAA;AAAA,UAEL,QAAA,EAAA;AAAA,4BAAA,GAAA,CAAC,iBAAc,OAAkB,EAAA,CAAA;AAAA,iCAChC,OACC,EAAA,EAAA,QAAA,EAAA;AAAA,8BAAC,GAAA,CAAA,cAAA,EAAA,EAAe,QAAQ,YAAc,EAAA,CAAA;AAAA,8BACtC,GAAA,CAAC,aAAU,OAAkB,EAAA;AAAA,aAG/B,EAAA;AAAA;AAAA;AAAA;AACF;AAAA,GACF;AAEJ;;;;"}