@vuu-ui/vuu-table 2.1.18 → 2.1.19-beta.1

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 (288) hide show
  1. package/package.json +12 -14
  2. package/types/VirtualColSpan.d.ts +2 -2
  3. package/types/cell-renderers/toggle-cell/ToggleCell.d.ts +1 -1
  4. package/types/useTable.d.ts +3 -3
  5. package/cjs/CellFocusState.js +0 -45
  6. package/cjs/CellFocusState.js.map +0 -1
  7. package/cjs/Row.js +0 -116
  8. package/cjs/Row.js.map +0 -1
  9. package/cjs/Table.css.js +0 -6
  10. package/cjs/Table.css.js.map +0 -1
  11. package/cjs/Table.js +0 -455
  12. package/cjs/Table.js.map +0 -1
  13. package/cjs/VirtualColSpan.js +0 -19
  14. package/cjs/VirtualColSpan.js.map +0 -1
  15. package/cjs/applyHighlighting.js +0 -33
  16. package/cjs/applyHighlighting.js.map +0 -1
  17. package/cjs/bulk-edit/BulkEditPanel.css.js +0 -6
  18. package/cjs/bulk-edit/BulkEditPanel.css.js.map +0 -1
  19. package/cjs/bulk-edit/BulkEditPanel.js +0 -107
  20. package/cjs/bulk-edit/BulkEditPanel.js.map +0 -1
  21. package/cjs/bulk-edit/ColumnCascadingUpdateEditor.css.js +0 -6
  22. package/cjs/bulk-edit/ColumnCascadingUpdateEditor.css.js.map +0 -1
  23. package/cjs/bulk-edit/ColumnCascadingUpdateEditor.js +0 -80
  24. package/cjs/bulk-edit/ColumnCascadingUpdateEditor.js.map +0 -1
  25. package/cjs/bulk-edit/InsertNewRowEditor.css.js +0 -6
  26. package/cjs/bulk-edit/InsertNewRowEditor.css.js.map +0 -1
  27. package/cjs/bulk-edit/InsertNewRowEditor.js +0 -80
  28. package/cjs/bulk-edit/InsertNewRowEditor.js.map +0 -1
  29. package/cjs/bulk-edit/useBulkEditPanel.js +0 -70
  30. package/cjs/bulk-edit/useBulkEditPanel.js.map +0 -1
  31. package/cjs/bulk-edit/useColumnCascadingEditor.js +0 -143
  32. package/cjs/bulk-edit/useColumnCascadingEditor.js.map +0 -1
  33. package/cjs/cell-block/CellBlock.css.js +0 -6
  34. package/cjs/cell-block/CellBlock.css.js.map +0 -1
  35. package/cjs/cell-block/CellBlock.js +0 -45
  36. package/cjs/cell-block/CellBlock.js.map +0 -1
  37. package/cjs/cell-block/cellblock-utils.js +0 -125
  38. package/cjs/cell-block/cellblock-utils.js.map +0 -1
  39. package/cjs/cell-block/useCellBlockSelection.js +0 -257
  40. package/cjs/cell-block/useCellBlockSelection.js.map +0 -1
  41. package/cjs/cell-renderers/checkbox-cell/CheckboxCell.css.js +0 -6
  42. package/cjs/cell-renderers/checkbox-cell/CheckboxCell.css.js.map +0 -1
  43. package/cjs/cell-renderers/checkbox-cell/CheckboxCell.js +0 -67
  44. package/cjs/cell-renderers/checkbox-cell/CheckboxCell.js.map +0 -1
  45. package/cjs/cell-renderers/checkbox-row-selector/CheckboxRowSelectorCell.css.js +0 -6
  46. package/cjs/cell-renderers/checkbox-row-selector/CheckboxRowSelectorCell.css.js.map +0 -1
  47. package/cjs/cell-renderers/checkbox-row-selector/CheckboxRowSelectorCell.js +0 -51
  48. package/cjs/cell-renderers/checkbox-row-selector/CheckboxRowSelectorCell.js.map +0 -1
  49. package/cjs/cell-renderers/input-cell/InputCell.css.js +0 -6
  50. package/cjs/cell-renderers/input-cell/InputCell.css.js.map +0 -1
  51. package/cjs/cell-renderers/input-cell/InputCell.js +0 -63
  52. package/cjs/cell-renderers/input-cell/InputCell.js.map +0 -1
  53. package/cjs/cell-renderers/input-cell/useInputCell.js +0 -211
  54. package/cjs/cell-renderers/input-cell/useInputCell.js.map +0 -1
  55. package/cjs/cell-renderers/toggle-cell/ToggleCell.css.js +0 -6
  56. package/cjs/cell-renderers/toggle-cell/ToggleCell.css.js.map +0 -1
  57. package/cjs/cell-renderers/toggle-cell/ToggleCell.js +0 -66
  58. package/cjs/cell-renderers/toggle-cell/ToggleCell.js.map +0 -1
  59. package/cjs/column-header-pill/ColumnHeaderPill.css.js +0 -6
  60. package/cjs/column-header-pill/ColumnHeaderPill.css.js.map +0 -1
  61. package/cjs/column-header-pill/ColumnHeaderPill.js +0 -53
  62. package/cjs/column-header-pill/ColumnHeaderPill.js.map +0 -1
  63. package/cjs/column-header-pill/GroupColumnPill.css.js +0 -6
  64. package/cjs/column-header-pill/GroupColumnPill.css.js.map +0 -1
  65. package/cjs/column-header-pill/GroupColumnPill.js +0 -29
  66. package/cjs/column-header-pill/GroupColumnPill.js.map +0 -1
  67. package/cjs/column-header-pill/SortIndicator.css.js +0 -6
  68. package/cjs/column-header-pill/SortIndicator.css.js.map +0 -1
  69. package/cjs/column-header-pill/SortIndicator.js +0 -27
  70. package/cjs/column-header-pill/SortIndicator.js.map +0 -1
  71. package/cjs/column-resizing/ColumnResizer.css.js +0 -6
  72. package/cjs/column-resizing/ColumnResizer.css.js.map +0 -1
  73. package/cjs/column-resizing/ColumnResizer.js +0 -82
  74. package/cjs/column-resizing/ColumnResizer.js.map +0 -1
  75. package/cjs/column-resizing/useTableColumnResize.js +0 -55
  76. package/cjs/column-resizing/useTableColumnResize.js.map +0 -1
  77. package/cjs/data-row/DataRow.js +0 -262
  78. package/cjs/data-row/DataRow.js.map +0 -1
  79. package/cjs/header-cell/GroupHeaderCell.css.js +0 -6
  80. package/cjs/header-cell/GroupHeaderCell.css.js.map +0 -1
  81. package/cjs/header-cell/GroupHeaderCell.js +0 -127
  82. package/cjs/header-cell/GroupHeaderCell.js.map +0 -1
  83. package/cjs/header-cell/HeaderCell.css.js +0 -6
  84. package/cjs/header-cell/HeaderCell.css.js.map +0 -1
  85. package/cjs/header-cell/HeaderCell.js +0 -139
  86. package/cjs/header-cell/HeaderCell.js.map +0 -1
  87. package/cjs/index.js +0 -64
  88. package/cjs/index.js.map +0 -1
  89. package/cjs/pagination/PaginationControl.css.js +0 -6
  90. package/cjs/pagination/PaginationControl.css.js.map +0 -1
  91. package/cjs/pagination/PaginationControl.js +0 -38
  92. package/cjs/pagination/PaginationControl.js.map +0 -1
  93. package/cjs/pagination/usePagination.js +0 -36
  94. package/cjs/pagination/usePagination.js.map +0 -1
  95. package/cjs/table-cell/TableCell.css.js +0 -6
  96. package/cjs/table-cell/TableCell.css.js.map +0 -1
  97. package/cjs/table-cell/TableCell.js +0 -75
  98. package/cjs/table-cell/TableCell.js.map +0 -1
  99. package/cjs/table-cell/TableGroupCell.css.js +0 -6
  100. package/cjs/table-cell/TableGroupCell.css.js.map +0 -1
  101. package/cjs/table-cell/TableGroupCell.js +0 -65
  102. package/cjs/table-cell/TableGroupCell.js.map +0 -1
  103. package/cjs/table-config/useTableConfig.js +0 -67
  104. package/cjs/table-config/useTableConfig.js.map +0 -1
  105. package/cjs/table-config.js +0 -35
  106. package/cjs/table-config.js.map +0 -1
  107. package/cjs/table-data-source/DataRowMovingWindow.js +0 -99
  108. package/cjs/table-data-source/DataRowMovingWindow.js.map +0 -1
  109. package/cjs/table-data-source/useDataSource.js +0 -236
  110. package/cjs/table-data-source/useDataSource.js.map +0 -1
  111. package/cjs/table-dom-utils.js +0 -206
  112. package/cjs/table-dom-utils.js.map +0 -1
  113. package/cjs/table-header/HeaderProvider.js +0 -18
  114. package/cjs/table-header/HeaderProvider.js.map +0 -1
  115. package/cjs/table-header/TableHeader.js +0 -180
  116. package/cjs/table-header/TableHeader.js.map +0 -1
  117. package/cjs/table-header/useTableHeader.js +0 -87
  118. package/cjs/table-header/useTableHeader.js.map +0 -1
  119. package/cjs/useCell.js +0 -26
  120. package/cjs/useCell.js.map +0 -1
  121. package/cjs/useCellEditing.js +0 -77
  122. package/cjs/useCellEditing.js.map +0 -1
  123. package/cjs/useCellFocus.js +0 -119
  124. package/cjs/useCellFocus.js.map +0 -1
  125. package/cjs/useControlledTableNavigation.js +0 -46
  126. package/cjs/useControlledTableNavigation.js.map +0 -1
  127. package/cjs/useEditableCell.js +0 -27
  128. package/cjs/useEditableCell.js.map +0 -1
  129. package/cjs/useKeyboardNavigation.js +0 -323
  130. package/cjs/useKeyboardNavigation.js.map +0 -1
  131. package/cjs/useMeasuredHeight.js +0 -51
  132. package/cjs/useMeasuredHeight.js.map +0 -1
  133. package/cjs/useRowClassNameGenerators.js +0 -34
  134. package/cjs/useRowClassNameGenerators.js.map +0 -1
  135. package/cjs/useSelection.js +0 -130
  136. package/cjs/useSelection.js.map +0 -1
  137. package/cjs/useTable.js +0 -742
  138. package/cjs/useTable.js.map +0 -1
  139. package/cjs/useTableContextMenu.js +0 -76
  140. package/cjs/useTableContextMenu.js.map +0 -1
  141. package/cjs/useTableModel.js +0 -421
  142. package/cjs/useTableModel.js.map +0 -1
  143. package/cjs/useTableScroll.js +0 -464
  144. package/cjs/useTableScroll.js.map +0 -1
  145. package/cjs/useTableViewport.js +0 -137
  146. package/cjs/useTableViewport.js.map +0 -1
  147. package/esm/CellFocusState.js +0 -43
  148. package/esm/CellFocusState.js.map +0 -1
  149. package/esm/Row.js +0 -114
  150. package/esm/Row.js.map +0 -1
  151. package/esm/Table.css.js +0 -4
  152. package/esm/Table.css.js.map +0 -1
  153. package/esm/Table.js +0 -453
  154. package/esm/Table.js.map +0 -1
  155. package/esm/VirtualColSpan.js +0 -17
  156. package/esm/VirtualColSpan.js.map +0 -1
  157. package/esm/applyHighlighting.js +0 -31
  158. package/esm/applyHighlighting.js.map +0 -1
  159. package/esm/bulk-edit/BulkEditPanel.css.js +0 -4
  160. package/esm/bulk-edit/BulkEditPanel.css.js.map +0 -1
  161. package/esm/bulk-edit/BulkEditPanel.js +0 -105
  162. package/esm/bulk-edit/BulkEditPanel.js.map +0 -1
  163. package/esm/bulk-edit/ColumnCascadingUpdateEditor.css.js +0 -4
  164. package/esm/bulk-edit/ColumnCascadingUpdateEditor.css.js.map +0 -1
  165. package/esm/bulk-edit/ColumnCascadingUpdateEditor.js +0 -78
  166. package/esm/bulk-edit/ColumnCascadingUpdateEditor.js.map +0 -1
  167. package/esm/bulk-edit/InsertNewRowEditor.css.js +0 -4
  168. package/esm/bulk-edit/InsertNewRowEditor.css.js.map +0 -1
  169. package/esm/bulk-edit/InsertNewRowEditor.js +0 -78
  170. package/esm/bulk-edit/InsertNewRowEditor.js.map +0 -1
  171. package/esm/bulk-edit/useBulkEditPanel.js +0 -68
  172. package/esm/bulk-edit/useBulkEditPanel.js.map +0 -1
  173. package/esm/bulk-edit/useColumnCascadingEditor.js +0 -141
  174. package/esm/bulk-edit/useColumnCascadingEditor.js.map +0 -1
  175. package/esm/cell-block/CellBlock.css.js +0 -4
  176. package/esm/cell-block/CellBlock.css.js.map +0 -1
  177. package/esm/cell-block/CellBlock.js +0 -43
  178. package/esm/cell-block/CellBlock.js.map +0 -1
  179. package/esm/cell-block/cellblock-utils.js +0 -116
  180. package/esm/cell-block/cellblock-utils.js.map +0 -1
  181. package/esm/cell-block/useCellBlockSelection.js +0 -255
  182. package/esm/cell-block/useCellBlockSelection.js.map +0 -1
  183. package/esm/cell-renderers/checkbox-cell/CheckboxCell.css.js +0 -4
  184. package/esm/cell-renderers/checkbox-cell/CheckboxCell.css.js.map +0 -1
  185. package/esm/cell-renderers/checkbox-cell/CheckboxCell.js +0 -65
  186. package/esm/cell-renderers/checkbox-cell/CheckboxCell.js.map +0 -1
  187. package/esm/cell-renderers/checkbox-row-selector/CheckboxRowSelectorCell.css.js +0 -4
  188. package/esm/cell-renderers/checkbox-row-selector/CheckboxRowSelectorCell.css.js.map +0 -1
  189. package/esm/cell-renderers/checkbox-row-selector/CheckboxRowSelectorCell.js +0 -49
  190. package/esm/cell-renderers/checkbox-row-selector/CheckboxRowSelectorCell.js.map +0 -1
  191. package/esm/cell-renderers/input-cell/InputCell.css.js +0 -4
  192. package/esm/cell-renderers/input-cell/InputCell.css.js.map +0 -1
  193. package/esm/cell-renderers/input-cell/InputCell.js +0 -61
  194. package/esm/cell-renderers/input-cell/InputCell.js.map +0 -1
  195. package/esm/cell-renderers/input-cell/useInputCell.js +0 -209
  196. package/esm/cell-renderers/input-cell/useInputCell.js.map +0 -1
  197. package/esm/cell-renderers/toggle-cell/ToggleCell.css.js +0 -4
  198. package/esm/cell-renderers/toggle-cell/ToggleCell.css.js.map +0 -1
  199. package/esm/cell-renderers/toggle-cell/ToggleCell.js +0 -64
  200. package/esm/cell-renderers/toggle-cell/ToggleCell.js.map +0 -1
  201. package/esm/column-header-pill/ColumnHeaderPill.css.js +0 -4
  202. package/esm/column-header-pill/ColumnHeaderPill.css.js.map +0 -1
  203. package/esm/column-header-pill/ColumnHeaderPill.js +0 -51
  204. package/esm/column-header-pill/ColumnHeaderPill.js.map +0 -1
  205. package/esm/column-header-pill/GroupColumnPill.css.js +0 -4
  206. package/esm/column-header-pill/GroupColumnPill.css.js.map +0 -1
  207. package/esm/column-header-pill/GroupColumnPill.js +0 -27
  208. package/esm/column-header-pill/GroupColumnPill.js.map +0 -1
  209. package/esm/column-header-pill/SortIndicator.css.js +0 -4
  210. package/esm/column-header-pill/SortIndicator.css.js.map +0 -1
  211. package/esm/column-header-pill/SortIndicator.js +0 -25
  212. package/esm/column-header-pill/SortIndicator.js.map +0 -1
  213. package/esm/column-resizing/ColumnResizer.css.js +0 -4
  214. package/esm/column-resizing/ColumnResizer.css.js.map +0 -1
  215. package/esm/column-resizing/ColumnResizer.js +0 -80
  216. package/esm/column-resizing/ColumnResizer.js.map +0 -1
  217. package/esm/column-resizing/useTableColumnResize.js +0 -53
  218. package/esm/column-resizing/useTableColumnResize.js.map +0 -1
  219. package/esm/data-row/DataRow.js +0 -260
  220. package/esm/data-row/DataRow.js.map +0 -1
  221. package/esm/header-cell/GroupHeaderCell.css.js +0 -4
  222. package/esm/header-cell/GroupHeaderCell.css.js.map +0 -1
  223. package/esm/header-cell/GroupHeaderCell.js +0 -125
  224. package/esm/header-cell/GroupHeaderCell.js.map +0 -1
  225. package/esm/header-cell/HeaderCell.css.js +0 -4
  226. package/esm/header-cell/HeaderCell.css.js.map +0 -1
  227. package/esm/header-cell/HeaderCell.js +0 -137
  228. package/esm/header-cell/HeaderCell.js.map +0 -1
  229. package/esm/index.js +0 -27
  230. package/esm/index.js.map +0 -1
  231. package/esm/pagination/PaginationControl.css.js +0 -4
  232. package/esm/pagination/PaginationControl.css.js.map +0 -1
  233. package/esm/pagination/PaginationControl.js +0 -36
  234. package/esm/pagination/PaginationControl.js.map +0 -1
  235. package/esm/pagination/usePagination.js +0 -34
  236. package/esm/pagination/usePagination.js.map +0 -1
  237. package/esm/table-cell/TableCell.css.js +0 -4
  238. package/esm/table-cell/TableCell.css.js.map +0 -1
  239. package/esm/table-cell/TableCell.js +0 -73
  240. package/esm/table-cell/TableCell.js.map +0 -1
  241. package/esm/table-cell/TableGroupCell.css.js +0 -4
  242. package/esm/table-cell/TableGroupCell.css.js.map +0 -1
  243. package/esm/table-cell/TableGroupCell.js +0 -63
  244. package/esm/table-cell/TableGroupCell.js.map +0 -1
  245. package/esm/table-config/useTableConfig.js +0 -65
  246. package/esm/table-config/useTableConfig.js.map +0 -1
  247. package/esm/table-config.js +0 -33
  248. package/esm/table-config.js.map +0 -1
  249. package/esm/table-data-source/DataRowMovingWindow.js +0 -97
  250. package/esm/table-data-source/DataRowMovingWindow.js.map +0 -1
  251. package/esm/table-data-source/useDataSource.js +0 -234
  252. package/esm/table-data-source/useDataSource.js.map +0 -1
  253. package/esm/table-dom-utils.js +0 -188
  254. package/esm/table-dom-utils.js.map +0 -1
  255. package/esm/table-header/HeaderProvider.js +0 -15
  256. package/esm/table-header/HeaderProvider.js.map +0 -1
  257. package/esm/table-header/TableHeader.js +0 -178
  258. package/esm/table-header/TableHeader.js.map +0 -1
  259. package/esm/table-header/useTableHeader.js +0 -85
  260. package/esm/table-header/useTableHeader.js.map +0 -1
  261. package/esm/useCell.js +0 -24
  262. package/esm/useCell.js.map +0 -1
  263. package/esm/useCellEditing.js +0 -75
  264. package/esm/useCellEditing.js.map +0 -1
  265. package/esm/useCellFocus.js +0 -117
  266. package/esm/useCellFocus.js.map +0 -1
  267. package/esm/useControlledTableNavigation.js +0 -43
  268. package/esm/useControlledTableNavigation.js.map +0 -1
  269. package/esm/useEditableCell.js +0 -25
  270. package/esm/useEditableCell.js.map +0 -1
  271. package/esm/useKeyboardNavigation.js +0 -319
  272. package/esm/useKeyboardNavigation.js.map +0 -1
  273. package/esm/useMeasuredHeight.js +0 -49
  274. package/esm/useMeasuredHeight.js.map +0 -1
  275. package/esm/useRowClassNameGenerators.js +0 -32
  276. package/esm/useRowClassNameGenerators.js.map +0 -1
  277. package/esm/useSelection.js +0 -128
  278. package/esm/useSelection.js.map +0 -1
  279. package/esm/useTable.js +0 -740
  280. package/esm/useTable.js.map +0 -1
  281. package/esm/useTableContextMenu.js +0 -73
  282. package/esm/useTableContextMenu.js.map +0 -1
  283. package/esm/useTableModel.js +0 -419
  284. package/esm/useTableModel.js.map +0 -1
  285. package/esm/useTableScroll.js +0 -461
  286. package/esm/useTableScroll.js.map +0 -1
  287. package/esm/useTableViewport.js +0 -135
  288. package/esm/useTableViewport.js.map +0 -1
@@ -1,63 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var core = require('@salt-ds/core');
5
- var styles = require('@salt-ds/styles');
6
- var window = require('@salt-ds/window');
7
- var vuuUiControls = require('@vuu-ui/vuu-ui-controls');
8
- var vuuUtils = require('@vuu-ui/vuu-utils');
9
- var cx = require('clsx');
10
- var InputCell$1 = require('./InputCell.css.js');
11
- var useInputCell = require('./useInputCell.js');
12
-
13
- const classBase = "vuuTableInputCell";
14
- const InputCell = ({
15
- column,
16
- dataRow,
17
- editedDuringCurrentSession,
18
- onEdit
19
- }) => {
20
- const targetWindow = window.useWindow();
21
- styles.useComponentCssInjection({
22
- testId: "vuu-input-cell",
23
- css: InputCell$1,
24
- window: targetWindow
25
- });
26
- const dataValue = dataRow[column.name];
27
- const { align = "left" } = column;
28
- const {
29
- editing,
30
- warningMessage,
31
- previousValue = "",
32
- ...editProps
33
- } = useInputCell.useInputCell({
34
- column,
35
- onEdit,
36
- type: vuuUtils.dataDescriptorTypeToVuuRowDataItemType(column),
37
- value: dataValue
38
- });
39
- const editRejected = vuuUtils.getVuuEditMessage(dataRow, column, previousValue);
40
- const endAdornment = editRejected && align === "left" ? /* @__PURE__ */ jsxRuntime.jsx(core.Tooltip, { content: editRejected, placement: "right", children: /* @__PURE__ */ jsxRuntime.jsx(vuuUiControls.Icon, { className: `${classBase}-icon`, name: "error" }) }) : warningMessage && align === "left" ? /* @__PURE__ */ jsxRuntime.jsx(core.Tooltip, { content: warningMessage, placement: "right", children: /* @__PURE__ */ jsxRuntime.jsx(vuuUiControls.Icon, { className: `${classBase}-icon`, name: "error" }) }) : void 0;
41
- const startAdornment = editRejected && align === "right" ? /* @__PURE__ */ jsxRuntime.jsx(core.Tooltip, { content: editRejected, placement: "right", children: /* @__PURE__ */ jsxRuntime.jsx(vuuUiControls.Icon, { className: `${classBase}-icon`, name: "error" }) }) : warningMessage && align === "right" ? /* @__PURE__ */ jsxRuntime.jsx(core.Tooltip, { content: warningMessage, placement: "left", children: /* @__PURE__ */ jsxRuntime.jsx(vuuUiControls.Icon, { className: `${classBase}-icon`, name: "error" }) }) : void 0;
42
- return /* @__PURE__ */ jsxRuntime.jsx(
43
- core.Input,
44
- {
45
- ...editProps,
46
- bordered: true,
47
- className: cx(classBase, {
48
- [`${classBase}-edited`]: editedDuringCurrentSession === true,
49
- [`${classBase}-error`]: warningMessage !== void 0,
50
- [`${classBase}-warning`]: editRejected !== void 0,
51
- vuuEditing: editing
52
- }),
53
- endAdornment,
54
- startAdornment
55
- }
56
- );
57
- };
58
- vuuUtils.registerComponent("input-cell", InputCell, "cell-renderer", {
59
- userCanAssign: false
60
- });
61
-
62
- exports.InputCell = InputCell;
63
- //# sourceMappingURL=InputCell.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InputCell.js","sources":["../../../../../packages/vuu-table/src/cell-renderers/input-cell/InputCell.tsx"],"sourcesContent":["import { Input, Tooltip } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { TableCellRendererProps } from \"@vuu-ui/vuu-table-types\";\nimport { Icon } from \"@vuu-ui/vuu-ui-controls\";\nimport {\n dataDescriptorTypeToVuuRowDataItemType,\n getVuuEditMessage,\n registerComponent,\n} from \"@vuu-ui/vuu-utils\";\nimport cx from \"clsx\";\n\nimport inputCellCss from \"./InputCell.css\";\nimport { useInputCell } from \"./useInputCell\";\n\nconst classBase = \"vuuTableInputCell\";\n\nexport const InputCell = ({\n column,\n dataRow,\n editedDuringCurrentSession,\n onEdit,\n}: TableCellRendererProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-input-cell\",\n css: inputCellCss,\n window: targetWindow,\n });\n\n const dataValue = dataRow[column.name] as number | string;\n\n const { align = \"left\" } = column;\n\n const {\n editing,\n warningMessage,\n previousValue = \"\",\n ...editProps\n } = useInputCell({\n column,\n onEdit,\n type: dataDescriptorTypeToVuuRowDataItemType(column),\n value: dataValue,\n });\n\n // TODO can this move into useEdtableText ?\n const editRejected = getVuuEditMessage(dataRow, column, previousValue);\n\n const endAdornment =\n editRejected && align === \"left\" ? (\n <Tooltip content={editRejected} placement=\"right\">\n <Icon className={`${classBase}-icon`} name=\"error\" />\n </Tooltip>\n ) : warningMessage && align === \"left\" ? (\n <Tooltip content={warningMessage} placement=\"right\">\n <Icon className={`${classBase}-icon`} name=\"error\" />\n </Tooltip>\n ) : undefined;\n\n const startAdornment =\n editRejected && align === \"right\" ? (\n <Tooltip content={editRejected} placement=\"right\">\n <Icon className={`${classBase}-icon`} name=\"error\" />\n </Tooltip>\n ) : warningMessage && align === \"right\" ? (\n <Tooltip content={warningMessage} placement=\"left\">\n <Icon className={`${classBase}-icon`} name=\"error\" />\n </Tooltip>\n ) : undefined;\n\n return (\n <Input\n {...editProps}\n bordered\n className={cx(classBase, {\n [`${classBase}-edited`]: editedDuringCurrentSession === true,\n [`${classBase}-error`]: warningMessage !== undefined,\n [`${classBase}-warning`]: editRejected !== undefined,\n vuuEditing: editing,\n })}\n endAdornment={endAdornment}\n startAdornment={startAdornment}\n />\n );\n};\n\nregisterComponent(\"input-cell\", InputCell, \"cell-renderer\", {\n userCanAssign: false,\n});\n"],"names":["useWindow","useComponentCssInjection","inputCellCss","useInputCell","dataDescriptorTypeToVuuRowDataItemType","getVuuEditMessage","jsx","Tooltip","Icon","Input","registerComponent"],"mappings":";;;;;;;;;;;;AAeA,MAAM,SAAY,GAAA,mBAAA;AAEX,MAAM,YAAY,CAAC;AAAA,EACxB,MAAA;AAAA,EACA,OAAA;AAAA,EACA,0BAAA;AAAA,EACA;AACF,CAA8B,KAAA;AAC5B,EAAA,MAAM,eAAeA,gBAAU,EAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,gBAAA;AAAA,IACR,GAAK,EAAAC,WAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA,SAAA,GAAY,OAAQ,CAAA,MAAA,CAAO,IAAI,CAAA;AAErC,EAAM,MAAA,EAAE,KAAQ,GAAA,MAAA,EAAW,GAAA,MAAA;AAE3B,EAAM,MAAA;AAAA,IACJ,OAAA;AAAA,IACA,cAAA;AAAA,IACA,aAAgB,GAAA,EAAA;AAAA,IAChB,GAAG;AAAA,MACDC,yBAAa,CAAA;AAAA,IACf,MAAA;AAAA,IACA,MAAA;AAAA,IACA,IAAA,EAAMC,gDAAuC,MAAM,CAAA;AAAA,IACnD,KAAO,EAAA;AAAA,GACR,CAAA;AAGD,EAAA,MAAM,YAAe,GAAAC,0BAAA,CAAkB,OAAS,EAAA,MAAA,EAAQ,aAAa,CAAA;AAErE,EAAA,MAAM,eACJ,YAAgB,IAAA,KAAA,KAAU,MACxB,mBAAAC,cAAA,CAACC,gBAAQ,OAAS,EAAA,YAAA,EAAc,SAAU,EAAA,OAAA,EACxC,yCAACC,kBAAK,EAAA,EAAA,SAAA,EAAW,GAAG,SAAS,CAAA,KAAA,CAAA,EAAS,MAAK,OAAQ,EAAA,CAAA,EACrD,CACE,GAAA,cAAA,IAAkB,UAAU,MAC9B,mBAAAF,cAAA,CAACC,YAAQ,EAAA,EAAA,OAAA,EAAS,gBAAgB,SAAU,EAAA,OAAA,EAC1C,QAAC,kBAAAD,cAAA,CAAAE,kBAAA,EAAA,EAAK,WAAW,CAAG,EAAA,SAAS,SAAS,IAAK,EAAA,OAAA,EAAQ,GACrD,CACE,GAAA,KAAA,CAAA;AAEN,EAAA,MAAM,iBACJ,YAAgB,IAAA,KAAA,KAAU,OACxB,mBAAAF,cAAA,CAACC,gBAAQ,OAAS,EAAA,YAAA,EAAc,SAAU,EAAA,OAAA,EACxC,yCAACC,kBAAK,EAAA,EAAA,SAAA,EAAW,GAAG,SAAS,CAAA,KAAA,CAAA,EAAS,MAAK,OAAQ,EAAA,CAAA,EACrD,CACE,GAAA,cAAA,IAAkB,UAAU,OAC9B,mBAAAF,cAAA,CAACC,YAAQ,EAAA,EAAA,OAAA,EAAS,gBAAgB,SAAU,EAAA,MAAA,EAC1C,QAAC,kBAAAD,cAAA,CAAAE,kBAAA,EAAA,EAAK,WAAW,CAAG,EAAA,SAAS,SAAS,IAAK,EAAA,OAAA,EAAQ,GACrD,CACE,GAAA,KAAA,CAAA;AAEN,EACE,uBAAAF,cAAA;AAAA,IAACG,UAAA;AAAA,IAAA;AAAA,MACE,GAAG,SAAA;AAAA,MACJ,QAAQ,EAAA,IAAA;AAAA,MACR,SAAA,EAAW,GAAG,SAAW,EAAA;AAAA,QACvB,CAAC,CAAA,EAAG,SAAS,CAAA,OAAA,CAAS,GAAG,0BAA+B,KAAA,IAAA;AAAA,QACxD,CAAC,CAAA,EAAG,SAAS,CAAA,MAAA,CAAQ,GAAG,cAAmB,KAAA,KAAA,CAAA;AAAA,QAC3C,CAAC,CAAA,EAAG,SAAS,CAAA,QAAA,CAAU,GAAG,YAAiB,KAAA,KAAA,CAAA;AAAA,QAC3C,UAAY,EAAA;AAAA,OACb,CAAA;AAAA,MACD,YAAA;AAAA,MACA;AAAA;AAAA,GACF;AAEJ;AAEAC,0BAAkB,CAAA,YAAA,EAAc,WAAW,eAAiB,EAAA;AAAA,EAC1D,aAAe,EAAA;AACjB,CAAC,CAAA;;;;"}
@@ -1,211 +0,0 @@
1
- 'use strict';
2
-
3
- var vuuUtils = require('@vuu-ui/vuu-utils');
4
- var react = require('react');
5
-
6
- const stringValueOf = (value) => value?.toString() ?? "";
7
- const useInputCell = ({
8
- column,
9
- value,
10
- onEdit,
11
- type = "string"
12
- }) => {
13
- const [editState, setEditState] = react.useState({
14
- editing: false,
15
- value: stringValueOf(value)
16
- });
17
- const initialValueRef = react.useRef(value?.toString() ?? "");
18
- const isDirtyRef = react.useRef(false);
19
- react.useMemo(() => {
20
- if (initialValueRef.current !== value?.toString()) {
21
- initialValueRef.current = stringValueOf(value);
22
- setEditState((editState2) => ({
23
- ...editState2,
24
- message: void 0,
25
- value: stringValueOf(value)
26
- }));
27
- }
28
- }, [value]);
29
- const commit = react.useCallback(async () => {
30
- const { value: value2 } = editState;
31
- const result = column.clientSideEditValidationCheck?.(value2, "*");
32
- if (result?.ok === false) {
33
- setEditState((state) => ({
34
- ...state,
35
- message: result?.messages?.join(",")
36
- }));
37
- return false;
38
- } else {
39
- const { current: initialValue } = initialValueRef;
40
- const previousValue = vuuUtils.getTypedValue(initialValue, type);
41
- try {
42
- const typedValue = vuuUtils.getTypedValue(value2, type, true);
43
- const response = await onEdit?.(
44
- {
45
- editType: "commit",
46
- isValid: true,
47
- previousValue,
48
- value: typedValue
49
- },
50
- "commit"
51
- );
52
- if (vuuUtils.isRpcSuccess(response)) {
53
- isDirtyRef.current = false;
54
- setEditState(({ previousValue: previousValue2, value: value3 }) => ({
55
- editing: false,
56
- previousValue: previousValue2 === value3 ? void 0 : previousValue2 === void 0 ? initialValue : previousValue2,
57
- value: value3
58
- }));
59
- } else if (vuuUtils.isRpcError(response)) {
60
- setEditState((state) => ({
61
- ...state,
62
- message: response.errorMessage
63
- }));
64
- return false;
65
- }
66
- initialValueRef.current = value2;
67
- return true;
68
- } catch (e) {
69
- if (e instanceof vuuUtils.DataValidationError) {
70
- const { actualType, expectedType, message } = e;
71
- if (column) {
72
- const { name, label = name } = column;
73
- const message2 = `${label} is a ${expectedType} value, data entered is ${actualType} `;
74
- setEditState((state) => ({
75
- ...state,
76
- message: message2
77
- }));
78
- onEdit?.(
79
- {
80
- editType: "commit",
81
- isValid: false,
82
- previousValue,
83
- value: value2
84
- },
85
- "commit"
86
- );
87
- } else {
88
- setEditState((state) => ({
89
- ...state,
90
- message
91
- }));
92
- }
93
- }
94
- }
95
- }
96
- return false;
97
- }, [column, editState, onEdit, type]);
98
- const toggleActivation = react.useCallback(
99
- async (input, cancel = false) => {
100
- if (editState.editing) {
101
- if (isDirtyRef.current) {
102
- if (cancel) {
103
- const { value: previousValue } = editState;
104
- isDirtyRef.current = false;
105
- setEditState({
106
- editing: false,
107
- value: initialValueRef.current,
108
- message: void 0
109
- });
110
- onEdit?.(
111
- {
112
- editType: "cancel",
113
- isValid: true,
114
- previousValue,
115
- value: vuuUtils.getTypedValue(initialValueRef.current, type, true)
116
- },
117
- "commit"
118
- );
119
- } else {
120
- const commitSuccessful = await commit();
121
- if (commitSuccessful) {
122
- setEditState((editState2) => ({ ...editState2, editing: false }));
123
- vuuUtils.dispatchCustomEvent(input, "vuu-commit");
124
- }
125
- }
126
- } else {
127
- setEditState((editState2) => ({ ...editState2, editing: false }));
128
- }
129
- } else if (!cancel) {
130
- setEditState((editState2) => ({ ...editState2, editing: true }));
131
- input.select();
132
- }
133
- },
134
- [commit, editState, onEdit]
135
- );
136
- const handleKeyDown = react.useCallback(
137
- async (evt) => {
138
- const { key, target } = evt;
139
- const input = target;
140
- if (key === "Enter") {
141
- toggleActivation(input);
142
- } else if (key === "ArrowRight" || key === "ArrowLeft" || key === "ArrowUp" || key === "ArrowDown") {
143
- if (editState.editing) {
144
- evt.stopPropagation();
145
- }
146
- } else if (evt.key === "Escape") {
147
- toggleActivation(input, true);
148
- }
149
- },
150
- [editState, toggleActivation]
151
- );
152
- const handleFocus = react.useCallback(
153
- (e) => {
154
- const input = e.target;
155
- const source = e.relatedTarget;
156
- if (source?.classList.contains("vuuTableCell") && source.contains(input)) {
157
- toggleActivation(input);
158
- }
159
- },
160
- [toggleActivation]
161
- );
162
- const handleBlur = react.useCallback(async () => {
163
- if (editState.editing) {
164
- if (isDirtyRef.current) {
165
- const commitSuccessful = await commit();
166
- console.log({ commitSuccessful });
167
- }
168
- setEditState((editState2) => ({ ...editState2, editing: false }));
169
- }
170
- }, [commit, editState]);
171
- const handleChange = react.useCallback(
172
- (evt) => {
173
- const { value: value2 } = evt.target;
174
- isDirtyRef.current = value2 !== initialValueRef.current;
175
- const result = column.clientSideEditValidationCheck?.(value2, "change");
176
- setEditState({ editing: true, value: value2 });
177
- onEdit?.(
178
- {
179
- editType: "change",
180
- isValid: result?.ok !== false,
181
- previousValue: initialValueRef.current,
182
- value: value2
183
- },
184
- "change"
185
- );
186
- if (result?.ok === false) {
187
- setEditState({
188
- editing: true,
189
- value: value2,
190
- message: result.messages?.join(",")
191
- });
192
- }
193
- },
194
- [column, onEdit]
195
- );
196
- return {
197
- editing: editState.editing,
198
- inputProps: {
199
- onBlur: handleBlur,
200
- onFocus: handleFocus,
201
- onKeyDown: handleKeyDown
202
- },
203
- onChange: handleChange,
204
- previousValue: editState.previousValue,
205
- value: editState.value,
206
- warningMessage: editState.message
207
- };
208
- };
209
-
210
- exports.useInputCell = useInputCell;
211
- //# sourceMappingURL=useInputCell.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useInputCell.js","sources":["../../../../../packages/vuu-table/src/cell-renderers/input-cell/useInputCell.ts"],"sourcesContent":["import { VuuRowDataItemType } from \"@vuu-ui/vuu-protocol-types\";\nimport type {\n RuntimeColumnDescriptor,\n TableCellEditHandler,\n} from \"@vuu-ui/vuu-table-types\";\nimport {\n DataValidationError,\n dispatchCustomEvent,\n getTypedValue,\n isRpcError,\n isRpcSuccess,\n} from \"@vuu-ui/vuu-utils\";\nimport {\n FocusEventHandler,\n FormEventHandler,\n KeyboardEvent,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nexport interface InputCellHookProps<\n T extends VuuRowDataItemType = VuuRowDataItemType,\n> {\n column: Pick<\n RuntimeColumnDescriptor,\n \"clientSideEditValidationCheck\" | \"label\" | \"name\"\n >;\n value?: T;\n onEdit?: TableCellEditHandler;\n type?: \"string\" | \"number\" | \"boolean\";\n}\n\ntype EditState = {\n editing: boolean;\n message?: string;\n // Set once we commit an edit, cleared when edit session is ended.\n previousValue?: string;\n value: string;\n};\n\nconst stringValueOf = (value?: VuuRowDataItemType) => value?.toString() ?? \"\";\n\nexport const useInputCell = <T extends string | number | boolean = string>({\n column,\n value,\n onEdit,\n type = \"string\",\n}: InputCellHookProps<T>) => {\n const [editState, setEditState] = useState<EditState>({\n editing: false,\n value: stringValueOf(value),\n });\n const initialValueRef = useRef<string>(value?.toString() ?? \"\");\n const isDirtyRef = useRef(false);\n\n useMemo(() => {\n if (initialValueRef.current !== value?.toString()) {\n initialValueRef.current = stringValueOf(value);\n setEditState((editState) => ({\n ...editState,\n message: undefined,\n value: stringValueOf(value),\n }));\n }\n }, [value]);\n\n const commit = useCallback(async () => {\n const { value } = editState;\n const result = column.clientSideEditValidationCheck?.(value, \"*\");\n if (result?.ok === false) {\n setEditState((state) => ({\n ...state,\n message: result?.messages?.join(\",\"),\n }));\n return false;\n } else {\n //save initial value,it could be reset by time async operation completes\n const { current: initialValue } = initialValueRef;\n const previousValue = getTypedValue(initialValue, type);\n try {\n const typedValue = getTypedValue(value, type, true);\n const response = await onEdit?.(\n {\n editType: \"commit\",\n isValid: true,\n previousValue,\n value: typedValue,\n },\n \"commit\",\n );\n if (isRpcSuccess(response)) {\n isDirtyRef.current = false;\n setEditState(({ previousValue, value }) => ({\n editing: false,\n previousValue:\n previousValue === value\n ? undefined\n : previousValue === undefined\n ? initialValue\n : previousValue,\n value,\n }));\n } else if (isRpcError(response)) {\n setEditState((state) => ({\n ...state,\n message: response.errorMessage,\n }));\n return false;\n }\n initialValueRef.current = value;\n return true;\n } catch (e) {\n if (e instanceof DataValidationError) {\n const { actualType, expectedType, message } = e;\n if (column) {\n const { name, label = name } = column;\n const message = `${label} is a ${expectedType} value, data entered is ${actualType} `;\n setEditState((state) => ({\n ...state,\n message,\n }));\n onEdit?.(\n {\n editType: \"commit\",\n isValid: false,\n previousValue,\n value,\n },\n \"commit\",\n );\n } else {\n setEditState((state) => ({\n ...state,\n message,\n }));\n }\n }\n }\n }\n return false;\n }, [column, editState, onEdit, type]);\n\n /**\n * Depending on the current state (editing or not, dirty or not) activation will either be\n * entering into edit state, leaving edit state or commiting edited value.\n */\n const toggleActivation = useCallback(\n async (input: HTMLInputElement, cancel = false) => {\n if (editState.editing) {\n if (isDirtyRef.current) {\n if (cancel) {\n const { value: previousValue } = editState;\n isDirtyRef.current = false;\n setEditState({\n editing: false,\n value: initialValueRef.current,\n message: undefined,\n });\n // this assumes the original value was valid, is that safe ?\n onEdit?.(\n {\n editType: \"cancel\",\n isValid: true,\n previousValue,\n value: getTypedValue(initialValueRef.current, type, true),\n },\n \"commit\",\n );\n } else {\n const commitSuccessful = await commit();\n if (commitSuccessful) {\n setEditState((editState) => ({ ...editState, editing: false }));\n dispatchCustomEvent(input, \"vuu-commit\");\n }\n }\n } else {\n setEditState((editState) => ({ ...editState, editing: false }));\n }\n } else if (!cancel) {\n setEditState((editState) => ({ ...editState, editing: true }));\n input.select();\n }\n },\n [commit, editState, onEdit],\n );\n\n const handleKeyDown = useCallback(\n async (evt: KeyboardEvent<HTMLElement>) => {\n const { key, target } = evt;\n const input = target as HTMLInputElement;\n if (key === \"Enter\") {\n toggleActivation(input);\n } else if (\n key === \"ArrowRight\" ||\n key === \"ArrowLeft\" ||\n key === \"ArrowUp\" ||\n key === \"ArrowDown\"\n ) {\n if (editState.editing) {\n evt.stopPropagation();\n } else {\n // console.log(\n // `[useEditableText] handleKeydown, arrowkey, not editing so let it bubble`,\n // );\n // evt.preventDefault();\n }\n } else if (evt.key === \"Escape\") {\n toggleActivation(input, true);\n }\n },\n [editState, toggleActivation],\n );\n\n const handleFocus = useCallback<FocusEventHandler<HTMLElement>>(\n (e) => {\n // If focus is transferred from enclosing cell element, we are explicitl entering edit mode\n const input = e.target as HTMLInputElement;\n const source = e.relatedTarget as HTMLElement;\n if (\n source?.classList.contains(\"vuuTableCell\") &&\n source.contains(input)\n ) {\n toggleActivation(input);\n }\n },\n [toggleActivation],\n );\n\n const handleBlur = useCallback<FocusEventHandler<HTMLElement>>(async () => {\n if (editState.editing) {\n if (isDirtyRef.current) {\n const commitSuccessful = await commit();\n console.log({ commitSuccessful });\n }\n setEditState((editState) => ({ ...editState, editing: false }));\n }\n }, [commit, editState]);\n\n const handleChange = useCallback<FormEventHandler>(\n (evt) => {\n const { value } = evt.target as HTMLInputElement;\n isDirtyRef.current = value !== initialValueRef.current;\n const result = column.clientSideEditValidationCheck?.(value, \"change\");\n setEditState({ editing: true, value });\n\n onEdit?.(\n {\n editType: \"change\",\n isValid: result?.ok !== false,\n previousValue: initialValueRef.current,\n value,\n },\n \"change\",\n );\n if (result?.ok === false) {\n setEditState({\n editing: true,\n value,\n message: result.messages?.join(\",\"),\n });\n }\n },\n [column, onEdit],\n );\n\n // console.log(\n // `[useEditableText] edited = ${\n // editState.previousValue !== undefined &&\n // editState.previousValue !== editState.value\n // }\n // editState.previousValue ${editState.previousValue}\n // editState.value ${editState.value}\n // `,\n // );\n\n return {\n editing: editState.editing,\n inputProps: {\n onBlur: handleBlur,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n },\n onChange: handleChange,\n previousValue: editState.previousValue,\n value: editState.value,\n warningMessage: editState.message,\n };\n};\n"],"names":["useState","useRef","useMemo","editState","useCallback","value","getTypedValue","isRpcSuccess","previousValue","isRpcError","DataValidationError","message","dispatchCustomEvent"],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var toggleCellCss = "\n.vuuTableToggleCell {\n --saltButton-borderRadius: 4px;\n --saltButton-height: 16px;\n font-weight: 500;\n position: relative;\n top: 1px;;\n}\n.vuuTableToggleCell-side {\n --saltButton-minWidth: 40px;\n}\n.vuuTableToggleCell.vuuCycleStateButton-buy {\n background-color: var(--vuu-color-green-50);\n}\n\n.vuuTableToggleCell.vuuCycleStateButton-sell {\n background-color: var(--vuu-color-red-50);\n\n}\n\n.vuuTableCell .vuuTableToggleCell:focus {\n /* TODO fix use of important */\n border: solid 2px var(--vuu-color-purple-10) !important;\n color: white !important;\n height: 18px !important;\n top: 0px !important;\n}\n\n\n\n\n\n";
4
-
5
- module.exports = toggleCellCss;
6
- //# sourceMappingURL=ToggleCell.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToggleCell.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,66 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var vuuUtils = require('@vuu-ui/vuu-utils');
5
- var styles = require('@salt-ds/styles');
6
- var window = require('@salt-ds/window');
7
- var cx = require('clsx');
8
- var react = require('react');
9
- var vuuUiControls = require('@vuu-ui/vuu-ui-controls');
10
- var ToggleCell$1 = require('./ToggleCell.css.js');
11
-
12
- const classBase = "vuuTableToggleCell";
13
- const getValueList = ({ name, type }) => {
14
- if (vuuUtils.isTypeDescriptor(type) && vuuUtils.isValueListRenderer(type.renderer)) {
15
- return type.renderer.values;
16
- } else {
17
- throw Error(
18
- `useLookupValues column ${name} has not been configured with a values list`
19
- );
20
- }
21
- };
22
- const ToggleCell = react.memo(function ToggleCell2({
23
- column,
24
- dataRow,
25
- onEdit
26
- }) {
27
- const targetWindow = window.useWindow();
28
- styles.useComponentCssInjection({
29
- testId: "vuu-toggle-cell",
30
- css: ToggleCell$1,
31
- window: targetWindow
32
- });
33
- const values = getValueList(column);
34
- const value = dataRow[column.name];
35
- const handleCommit = react.useCallback(
36
- async (evt, newValue) => {
37
- const res = await onEdit?.(
38
- { previousValue: value, value: newValue },
39
- "commit"
40
- );
41
- if (vuuUtils.isRpcSuccess(res)) {
42
- vuuUtils.dispatchCustomEvent(evt.target, "vuu-commit");
43
- }
44
- return res;
45
- },
46
- [onEdit, value]
47
- );
48
- return /* @__PURE__ */ jsxRuntime.jsx(
49
- vuuUiControls.CycleStateButton,
50
- {
51
- appearance: "solid",
52
- className: cx(classBase, `${classBase}-${column.name}`),
53
- onCommit: handleCommit,
54
- sentiment: "accented",
55
- value,
56
- values,
57
- children: value
58
- }
59
- );
60
- }, vuuUtils.dataColumnAndKeyUnchanged);
61
- vuuUtils.registerComponent("toggle-cell", ToggleCell, "cell-renderer", {
62
- userCanAssign: false
63
- });
64
-
65
- exports.ToggleCell = ToggleCell;
66
- //# sourceMappingURL=ToggleCell.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ToggleCell.js","sources":["../../../../../packages/vuu-table/src/cell-renderers/toggle-cell/ToggleCell.tsx"],"sourcesContent":["import {\n ColumnDescriptor,\n TableCellRendererProps,\n} from \"@vuu-ui/vuu-table-types\";\nimport {\n CommitHandler,\n dataColumnAndKeyUnchanged,\n dispatchCustomEvent,\n isRpcSuccess,\n isTypeDescriptor,\n isValueListRenderer,\n registerComponent,\n} from \"@vuu-ui/vuu-utils\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport cx from \"clsx\";\n\nimport { memo, useCallback } from \"react\";\nimport { CycleStateButton } from \"@vuu-ui/vuu-ui-controls\";\n\nimport toggleCellCss from \"./ToggleCell.css\";\n\nconst classBase = \"vuuTableToggleCell\";\n\nconst getValueList = ({ name, type }: ColumnDescriptor) => {\n if (isTypeDescriptor(type) && isValueListRenderer(type.renderer)) {\n return type.renderer.values;\n } else {\n throw Error(\n `useLookupValues column ${name} has not been configured with a values list`,\n );\n }\n};\n\nexport const ToggleCell = memo(function ToggleCell({\n column,\n dataRow,\n onEdit,\n}: TableCellRendererProps) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-toggle-cell\",\n css: toggleCellCss,\n window: targetWindow,\n });\n\n const values = getValueList(column);\n const value = dataRow[column.name] as string;\n\n const handleCommit = useCallback<CommitHandler<HTMLButtonElement>>(\n async (evt, newValue) => {\n const res = await onEdit?.(\n { previousValue: value, value: newValue },\n \"commit\",\n );\n if (isRpcSuccess(res)) {\n dispatchCustomEvent(evt.target as HTMLElement, \"vuu-commit\");\n }\n return res;\n },\n [onEdit, value],\n );\n\n return (\n <CycleStateButton\n appearance=\"solid\"\n className={cx(classBase, `${classBase}-${column.name}`)}\n onCommit={handleCommit}\n sentiment=\"accented\"\n value={value}\n values={values}\n >\n {value}\n </CycleStateButton>\n );\n}, dataColumnAndKeyUnchanged);\n\nregisterComponent(\"toggle-cell\", ToggleCell, \"cell-renderer\", {\n userCanAssign: false,\n});\n"],"names":["isTypeDescriptor","isValueListRenderer","memo","ToggleCell","useWindow","useComponentCssInjection","toggleCellCss","useCallback","isRpcSuccess","dispatchCustomEvent","jsx","CycleStateButton","dataColumnAndKeyUnchanged","registerComponent"],"mappings":";;;;;;;;;;;AAsBA,MAAM,SAAY,GAAA,oBAAA;AAElB,MAAM,YAAe,GAAA,CAAC,EAAE,IAAA,EAAM,MAA6B,KAAA;AACzD,EAAA,IAAIA,0BAAiB,IAAI,CAAA,IAAKC,4BAAoB,CAAA,IAAA,CAAK,QAAQ,CAAG,EAAA;AAChE,IAAA,OAAO,KAAK,QAAS,CAAA,MAAA;AAAA,GAChB,MAAA;AACL,IAAM,MAAA,KAAA;AAAA,MACJ,0BAA0B,IAAI,CAAA,2CAAA;AAAA,KAChC;AAAA;AAEJ,CAAA;AAEa,MAAA,UAAA,GAAaC,UAAK,CAAA,SAASC,WAAW,CAAA;AAAA,EACjD,MAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAA2B,EAAA;AACzB,EAAA,MAAM,eAAeC,gBAAU,EAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,iBAAA;AAAA,IACR,GAAK,EAAAC,YAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA,MAAA,GAAS,aAAa,MAAM,CAAA;AAClC,EAAM,MAAA,KAAA,GAAQ,OAAQ,CAAA,MAAA,CAAO,IAAI,CAAA;AAEjC,EAAA,MAAM,YAAe,GAAAC,iBAAA;AAAA,IACnB,OAAO,KAAK,QAAa,KAAA;AACvB,MAAA,MAAM,MAAM,MAAM,MAAA;AAAA,QAChB,EAAE,aAAA,EAAe,KAAO,EAAA,KAAA,EAAO,QAAS,EAAA;AAAA,QACxC;AAAA,OACF;AACA,MAAI,IAAAC,qBAAA,CAAa,GAAG,CAAG,EAAA;AACrB,QAAoBC,4BAAA,CAAA,GAAA,CAAI,QAAuB,YAAY,CAAA;AAAA;AAE7D,MAAO,OAAA,GAAA;AAAA,KACT;AAAA,IACA,CAAC,QAAQ,KAAK;AAAA,GAChB;AAEA,EACE,uBAAAC,cAAA;AAAA,IAACC,8BAAA;AAAA,IAAA;AAAA,MACC,UAAW,EAAA,OAAA;AAAA,MACX,SAAA,EAAW,GAAG,SAAW,EAAA,CAAA,EAAG,SAAS,CAAI,CAAA,EAAA,MAAA,CAAO,IAAI,CAAE,CAAA,CAAA;AAAA,MACtD,QAAU,EAAA,YAAA;AAAA,MACV,SAAU,EAAA,UAAA;AAAA,MACV,KAAA;AAAA,MACA,MAAA;AAAA,MAEC,QAAA,EAAA;AAAA;AAAA,GACH;AAEJ,CAAA,EAAGC,kCAAyB;AAE5BC,0BAAkB,CAAA,aAAA,EAAe,YAAY,eAAiB,EAAA;AAAA,EAC5D,aAAe,EAAA;AACjB,CAAC,CAAA;;;;"}
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var columnHeaderPillCss = ".vuuColumnHeaderPill {\n --vuu-icon-size: 14px;\n --menu-item-icon-color: black;\n --vuu-icon-color: var(--salt-actionable-bold-foreground);\n --vuu-icon-height: 12px;\n --vuu-icon-width: 12px;\n align-items: center;\n background: var(--salt-actionable-bold-background);\n color: var(--salt-actionable-bold-foreground);\n border-radius: 3px;\n flex: var(--vuuColumnHeaderPill-flex, none);\n font-size: 11px;\n gap: 2px;\n height: 16px;\n display: flex;\n margin: var(--vuuColumnHeaderPill-margin, 0);\n padding: 0 6px;\n position: relative;\n}\n\n.vuuColumnHeaderPill:hover {\n --vuu-icon-color: var(--salt-actionable-bold-foreground-hover);\n background-color: var(--salt-actionable-bold-background-hover);\n color: var(--salt-actionable-bold-foreground-hover);\n}\n\n.vuuColumnHeaderPill-removeButton {\n cursor: pointer;\n}\n";
4
-
5
- module.exports = columnHeaderPillCss;
6
- //# sourceMappingURL=ColumnHeaderPill.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColumnHeaderPill.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,53 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var cx = require('clsx');
5
- var styles = require('@salt-ds/styles');
6
- var window = require('@salt-ds/window');
7
- var react = require('react');
8
- var ColumnHeaderPill$1 = require('./ColumnHeaderPill.css.js');
9
-
10
- const classBase = "vuuColumnHeaderPill";
11
- const ColumnHeaderPill = ({
12
- children,
13
- className,
14
- column,
15
- onRemove,
16
- removable,
17
- ...htmlAttributes
18
- }) => {
19
- const targetWindow = window.useWindow();
20
- styles.useComponentCssInjection({
21
- testId: "vuu-column-header-pill",
22
- css: ColumnHeaderPill$1,
23
- window: targetWindow
24
- });
25
- if (removable && typeof onRemove !== "function") {
26
- throw Error(
27
- "ColumnHeaderPill onRemove prop must be provided if Pill is removable"
28
- );
29
- }
30
- const handleClickRemove = react.useCallback(
31
- (evt) => {
32
- evt.preventDefault();
33
- evt.stopPropagation();
34
- onRemove?.(column);
35
- },
36
- [column, onRemove]
37
- );
38
- return /* @__PURE__ */ jsxRuntime.jsxs("div", { ...htmlAttributes, className: cx(classBase, className), tabIndex: -1, children: [
39
- children,
40
- removable ? /* @__PURE__ */ jsxRuntime.jsx(
41
- "span",
42
- {
43
- className: `${classBase}-removeButton`,
44
- role: "button",
45
- "data-icon": "cross",
46
- onClick: handleClickRemove
47
- }
48
- ) : null
49
- ] });
50
- };
51
-
52
- exports.ColumnHeaderPill = ColumnHeaderPill;
53
- //# sourceMappingURL=ColumnHeaderPill.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColumnHeaderPill.js","sources":["../../../../packages/vuu-table/src/column-header-pill/ColumnHeaderPill.tsx"],"sourcesContent":["import cx from \"clsx\";\nimport { RuntimeColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { HTMLAttributes, MouseEvent, useCallback } from \"react\";\n\nimport columnHeaderPillCss from \"./ColumnHeaderPill.css\";\n\nexport interface ColumnHeaderPillProps extends HTMLAttributes<HTMLDivElement> {\n column: RuntimeColumnDescriptor;\n removable?: boolean;\n onRemove?: (column: RuntimeColumnDescriptor) => void;\n}\n\nconst classBase = \"vuuColumnHeaderPill\";\n\nexport const ColumnHeaderPill = ({\n children,\n className,\n column,\n onRemove,\n removable,\n ...htmlAttributes\n}: ColumnHeaderPillProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-header-pill\",\n css: columnHeaderPillCss,\n window: targetWindow,\n });\n\n if (removable && typeof onRemove !== \"function\") {\n throw Error(\n \"ColumnHeaderPill onRemove prop must be provided if Pill is removable\",\n );\n }\n\n const handleClickRemove = useCallback(\n (evt: MouseEvent<HTMLSpanElement>) => {\n evt.preventDefault();\n evt.stopPropagation();\n onRemove?.(column);\n },\n [column, onRemove],\n );\n\n return (\n <div {...htmlAttributes} className={cx(classBase, className)} tabIndex={-1}>\n {children}\n {removable ? (\n <span\n className={`${classBase}-removeButton`}\n role=\"button\"\n data-icon=\"cross\"\n onClick={handleClickRemove}\n />\n ) : null}\n </div>\n );\n};\n"],"names":["useWindow","useComponentCssInjection","columnHeaderPillCss","useCallback","jsxs","jsx"],"mappings":";;;;;;;;;AAcA,MAAM,SAAY,GAAA,qBAAA;AAEX,MAAM,mBAAmB,CAAC;AAAA,EAC/B,QAAA;AAAA,EACA,SAAA;AAAA,EACA,MAAA;AAAA,EACA,QAAA;AAAA,EACA,SAAA;AAAA,EACA,GAAG;AACL,CAA6B,KAAA;AAC3B,EAAA,MAAM,eAAeA,gBAAU,EAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,wBAAA;AAAA,IACR,GAAK,EAAAC,kBAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAI,IAAA,SAAA,IAAa,OAAO,QAAA,KAAa,UAAY,EAAA;AAC/C,IAAM,MAAA,KAAA;AAAA,MACJ;AAAA,KACF;AAAA;AAGF,EAAA,MAAM,iBAAoB,GAAAC,iBAAA;AAAA,IACxB,CAAC,GAAqC,KAAA;AACpC,MAAA,GAAA,CAAI,cAAe,EAAA;AACnB,MAAA,GAAA,CAAI,eAAgB,EAAA;AACpB,MAAA,QAAA,GAAW,MAAM,CAAA;AAAA,KACnB;AAAA,IACA,CAAC,QAAQ,QAAQ;AAAA,GACnB;AAEA,EACE,uBAAAC,eAAA,CAAC,KAAK,EAAA,EAAA,GAAG,cAAgB,EAAA,SAAA,EAAW,GAAG,SAAW,EAAA,SAAS,CAAG,EAAA,QAAA,EAAU,CACrE,CAAA,EAAA,QAAA,EAAA;AAAA,IAAA,QAAA;AAAA,IACA,SACC,mBAAAC,cAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,GAAG,SAAS,CAAA,aAAA,CAAA;AAAA,QACvB,IAAK,EAAA,QAAA;AAAA,QACL,WAAU,EAAA,OAAA;AAAA,QACV,OAAS,EAAA;AAAA;AAAA,KAET,GAAA;AAAA,GACN,EAAA,CAAA;AAEJ;;;;"}
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var groupColumnPillCss = "\n.vuuSortPosition {\n font-size: 11px;\n font-weight: 700;\n padding-top: 1px;\n}\n\n";
4
-
5
- module.exports = groupColumnPillCss;
6
- //# sourceMappingURL=GroupColumnPill.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GroupColumnPill.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,29 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var styles = require('@salt-ds/styles');
5
- var window = require('@salt-ds/window');
6
- var ColumnHeaderPill = require('./ColumnHeaderPill.js');
7
- var GroupColumnPill$1 = require('./GroupColumnPill.css.js');
8
-
9
- const GroupColumnPill = ({
10
- column,
11
- ...columnHeaderProps
12
- }) => {
13
- const targetWindow = window.useWindow();
14
- styles.useComponentCssInjection({
15
- testId: "vuu-group-column-pill",
16
- css: GroupColumnPill$1,
17
- window: targetWindow
18
- });
19
- const { name, sorted } = column;
20
- const icon = typeof sorted === "number" ? sorted < 0 ? "arrow-down" : "arrow-up" : sorted === "A" ? "arrow-up" : sorted === "D" ? "arrow-down" : void 0;
21
- return /* @__PURE__ */ jsxRuntime.jsxs(ColumnHeaderPill.ColumnHeaderPill, { ...columnHeaderProps, column, children: [
22
- /* @__PURE__ */ jsxRuntime.jsx("span", { className: "vuuGroupColumnPill-label", children: name }),
23
- icon !== void 0 ? /* @__PURE__ */ jsxRuntime.jsx("span", { "data-icon": icon }) : null,
24
- typeof sorted === "number" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "vuuSortPosition", children: Math.abs(sorted) }) : null
25
- ] });
26
- };
27
-
28
- exports.GroupColumnPill = GroupColumnPill;
29
- //# sourceMappingURL=GroupColumnPill.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GroupColumnPill.js","sources":["../../../../packages/vuu-table/src/column-header-pill/GroupColumnPill.tsx"],"sourcesContent":["import { RuntimeColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport { ColumnHeaderPill, ColumnHeaderPillProps } from \"./ColumnHeaderPill\";\n\nimport groupColumnPillCss from \"./GroupColumnPill.css\";\n\nexport interface GroupColumnPillProps extends ColumnHeaderPillProps {\n column: RuntimeColumnDescriptor;\n}\n\nexport const GroupColumnPill = ({\n column,\n ...columnHeaderProps\n}: GroupColumnPillProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-group-column-pill\",\n css: groupColumnPillCss,\n window: targetWindow,\n });\n\n const { name, sorted } = column;\n const icon =\n typeof sorted === \"number\"\n ? sorted < 0\n ? \"arrow-down\"\n : \"arrow-up\"\n : sorted === \"A\"\n ? \"arrow-up\"\n : sorted === \"D\"\n ? \"arrow-down\"\n : undefined;\n\n return (\n <ColumnHeaderPill {...columnHeaderProps} column={column}>\n <span className=\"vuuGroupColumnPill-label\">{name}</span>\n {icon !== undefined ? <span data-icon={icon} /> : null}\n {typeof sorted === \"number\" ? (\n <span className={\"vuuSortPosition\"}>{Math.abs(sorted)}</span>\n ) : null}\n </ColumnHeaderPill>\n );\n};\n"],"names":["useWindow","useComponentCssInjection","groupColumnPillCss","jsxs","ColumnHeaderPill","jsx"],"mappings":";;;;;;;;AAYO,MAAM,kBAAkB,CAAC;AAAA,EAC9B,MAAA;AAAA,EACA,GAAG;AACL,CAA4B,KAAA;AAC1B,EAAA,MAAM,eAAeA,gBAAU,EAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,uBAAA;AAAA,IACR,GAAK,EAAAC,iBAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA,EAAE,IAAM,EAAA,MAAA,EAAW,GAAA,MAAA;AACzB,EAAA,MAAM,IACJ,GAAA,OAAO,MAAW,KAAA,QAAA,GACd,MAAS,GAAA,CAAA,GACP,YACA,GAAA,UAAA,GACF,MAAW,KAAA,GAAA,GACT,UACA,GAAA,MAAA,KAAW,MACT,YACA,GAAA,KAAA,CAAA;AAEV,EAAA,uBACGC,eAAA,CAAAC,iCAAA,EAAA,EAAkB,GAAG,iBAAA,EAAmB,MACvC,EAAA,QAAA,EAAA;AAAA,oBAACC,cAAA,CAAA,MAAA,EAAA,EAAK,SAAU,EAAA,0BAAA,EAA4B,QAAK,EAAA,IAAA,EAAA,CAAA;AAAA,IAChD,SAAS,KAAY,CAAA,mBAAAA,cAAA,CAAC,MAAK,EAAA,EAAA,WAAA,EAAW,MAAM,CAAK,GAAA,IAAA;AAAA,IACjD,OAAO,MAAW,KAAA,QAAA,mBAChBA,cAAA,CAAA,MAAA,EAAA,EAAK,SAAW,EAAA,iBAAA,EAAoB,QAAK,EAAA,IAAA,CAAA,GAAA,CAAI,MAAM,CAAA,EAAE,CACpD,GAAA;AAAA,GACN,EAAA,CAAA;AAEJ;;;;"}
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var sortIndicatorCss = ".vuuSortIndicator {\n\n flex: 0 1 16px;\n padding: 0 2px;\n\n .vuuSortPosition {\n font-size: 11px;\n font-weight: 700;\n padding-top: 1px;\n }\n\n}\n\n";
4
-
5
- module.exports = sortIndicatorCss;
6
- //# sourceMappingURL=SortIndicator.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SortIndicator.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,27 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var styles = require('@salt-ds/styles');
5
- var window = require('@salt-ds/window');
6
- var ColumnHeaderPill = require('./ColumnHeaderPill.js');
7
- var SortIndicator$1 = require('./SortIndicator.css.js');
8
-
9
- const SortIndicator = ({ column }) => {
10
- const targetWindow = window.useWindow();
11
- styles.useComponentCssInjection({
12
- testId: "vuu-table-sort-indicator",
13
- css: SortIndicator$1,
14
- window: targetWindow
15
- });
16
- if (!column.sorted) {
17
- return null;
18
- }
19
- const icon = typeof column.sorted === "number" ? column.sorted < 0 ? "arrow-down" : "arrow-up" : column.sorted === "A" ? "arrow-up" : "arrow-down";
20
- return /* @__PURE__ */ jsxRuntime.jsxs(ColumnHeaderPill.ColumnHeaderPill, { className: "vuuSortIndicator", column, children: [
21
- /* @__PURE__ */ jsxRuntime.jsx("span", { "data-icon": icon }),
22
- typeof column.sorted === "number" ? /* @__PURE__ */ jsxRuntime.jsx("span", { className: "vuuSortPosition", children: Math.abs(column.sorted) }) : null
23
- ] });
24
- };
25
-
26
- exports.SortIndicator = SortIndicator;
27
- //# sourceMappingURL=SortIndicator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SortIndicator.js","sources":["../../../../packages/vuu-table/src/column-header-pill/SortIndicator.tsx"],"sourcesContent":["import { RuntimeColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { ColumnHeaderPill } from \"./ColumnHeaderPill\";\n\nimport sortIndicatorCss from \"./SortIndicator.css\";\n\nexport interface SortIndicatorProps {\n column: RuntimeColumnDescriptor;\n}\n\nexport const SortIndicator = ({ column }: SortIndicatorProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-table-sort-indicator\",\n css: sortIndicatorCss,\n window: targetWindow,\n });\n\n if (!column.sorted) {\n return null;\n }\n\n const icon =\n typeof column.sorted === \"number\"\n ? column.sorted < 0\n ? \"arrow-down\"\n : \"arrow-up\"\n : column.sorted === \"A\"\n ? \"arrow-up\"\n : \"arrow-down\";\n\n return (\n <ColumnHeaderPill className=\"vuuSortIndicator\" column={column}>\n <span data-icon={icon} />\n {typeof column.sorted === \"number\" ? (\n <span className={\"vuuSortPosition\"}>{Math.abs(column.sorted)}</span>\n ) : null}\n </ColumnHeaderPill>\n );\n};\n"],"names":["useWindow","useComponentCssInjection","sortIndicatorCss","jsxs","ColumnHeaderPill","jsx"],"mappings":";;;;;;;;AAWO,MAAM,aAAgB,GAAA,CAAC,EAAE,MAAA,EAAiC,KAAA;AAC/D,EAAA,MAAM,eAAeA,gBAAU,EAAA;AAC/B,EAAyBC,+BAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,0BAAA;AAAA,IACR,GAAK,EAAAC,eAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAI,IAAA,CAAC,OAAO,MAAQ,EAAA;AAClB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,MAAM,IACJ,GAAA,OAAO,MAAO,CAAA,MAAA,KAAW,QACrB,GAAA,MAAA,CAAO,MAAS,GAAA,CAAA,GACd,YACA,GAAA,UAAA,GACF,MAAO,CAAA,MAAA,KAAW,MAChB,UACA,GAAA,YAAA;AAER,EAAA,uBACGC,eAAA,CAAAC,iCAAA,EAAA,EAAiB,SAAU,EAAA,kBAAA,EAAmB,MAC7C,EAAA,QAAA,EAAA;AAAA,oBAACC,cAAA,CAAA,MAAA,EAAA,EAAK,aAAW,IAAM,EAAA,CAAA;AAAA,IACtB,OAAO,MAAA,CAAO,MAAW,KAAA,QAAA,mBACvBA,cAAA,CAAA,MAAA,EAAA,EAAK,SAAW,EAAA,iBAAA,EAAoB,QAAK,EAAA,IAAA,CAAA,GAAA,CAAI,MAAO,CAAA,MAAM,GAAE,CAC3D,GAAA;AAAA,GACN,EAAA,CAAA;AAEJ;;;;"}
@@ -1,6 +0,0 @@
1
- 'use strict';
2
-
3
- var columnResizerCss = ".vuuColumnResizer {\n cursor: col-resize;\n height: var(--vuu-table-col-header-row-height);\n margin-left: var(--columnResizer-left, auto);\n position: absolute;\n right: -5px;\n width: 8px;\n z-index: 1;\n}\n\n.vuuTableHeaderCell:not(.vuuTableHeaderCell-resizing) {\n .vuuColumnResizer:hover {\n --columnResizer-color: var(--salt-selectable-background-selected);\n }\n}\n\n.vuuColumnResizer:after {\n background-color: var(\n --columnResizer-color,\n var(--salt-separable-tertiary-borderColor)\n );\n bottom: 0;\n content: \"\";\n position: absolute;\n top: 0;\n right: 3px;\n height: var(--columnResizer-height, 0);\n width: 2px;\n z-index: 1;\n}\n";
4
-
5
- module.exports = columnResizerCss;
6
- //# sourceMappingURL=ColumnResizer.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColumnResizer.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}