@vuu-ui/vuu-table-extras 0.13.6 → 0.13.8

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/cjs/index.js +4254 -65
  2. package/cjs/index.js.map +1 -1
  3. package/esm/index.js +4221 -28
  4. package/esm/index.js.map +1 -1
  5. package/package.json +12 -13
  6. package/cjs/cell-edit-validators/CaseValidator.js +0 -25
  7. package/cjs/cell-edit-validators/CaseValidator.js.map +0 -1
  8. package/cjs/cell-edit-validators/PatternValidator.js +0 -31
  9. package/cjs/cell-edit-validators/PatternValidator.js.map +0 -1
  10. package/cjs/cell-renderers/background-cell/BackgroundCell.css.js +0 -6
  11. package/cjs/cell-renderers/background-cell/BackgroundCell.css.js.map +0 -1
  12. package/cjs/cell-renderers/background-cell/BackgroundCell.js +0 -76
  13. package/cjs/cell-renderers/background-cell/BackgroundCell.js.map +0 -1
  14. package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js +0 -6
  15. package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js.map +0 -1
  16. package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js +0 -67
  17. package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +0 -1
  18. package/cjs/cell-renderers/background-cell/BackgroundKeyframes.css.js +0 -6
  19. package/cjs/cell-renderers/background-cell/BackgroundKeyframes.css.js.map +0 -1
  20. package/cjs/cell-renderers/background-cell/useDirection.js +0 -20
  21. package/cjs/cell-renderers/background-cell/useDirection.js.map +0 -1
  22. package/cjs/cell-renderers/dropdown-cell/DropdownCell.css.js +0 -6
  23. package/cjs/cell-renderers/dropdown-cell/DropdownCell.css.js.map +0 -1
  24. package/cjs/cell-renderers/dropdown-cell/DropdownCell.js +0 -94
  25. package/cjs/cell-renderers/dropdown-cell/DropdownCell.js.map +0 -1
  26. package/cjs/cell-renderers/lookup-cell/LookupCell.js +0 -23
  27. package/cjs/cell-renderers/lookup-cell/LookupCell.js.map +0 -1
  28. package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.css.js +0 -6
  29. package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.css.js.map +0 -1
  30. package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.js +0 -62
  31. package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.js.map +0 -1
  32. package/cjs/cell-renderers/progress-cell/ProgressCell.css.js +0 -6
  33. package/cjs/cell-renderers/progress-cell/ProgressCell.css.js.map +0 -1
  34. package/cjs/cell-renderers/progress-cell/ProgressCell.js +0 -69
  35. package/cjs/cell-renderers/progress-cell/ProgressCell.js.map +0 -1
  36. package/cjs/column-expression-input/ColumnExpressionInput.css.js +0 -6
  37. package/cjs/column-expression-input/ColumnExpressionInput.css.js.map +0 -1
  38. package/cjs/column-expression-input/ColumnExpressionInput.js +0 -39
  39. package/cjs/column-expression-input/ColumnExpressionInput.js.map +0 -1
  40. package/cjs/column-expression-input/column-function-descriptors.js +0 -307
  41. package/cjs/column-expression-input/column-function-descriptors.js.map +0 -1
  42. package/cjs/column-expression-input/column-language-parser/ColumnExpressionLanguage.js +0 -28
  43. package/cjs/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +0 -1
  44. package/cjs/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js +0 -465
  45. package/cjs/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +0 -1
  46. package/cjs/column-expression-input/column-language-parser/column-expression-parse-utils.js +0 -61
  47. package/cjs/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +0 -1
  48. package/cjs/column-expression-input/column-language-parser/generated/column-parser.js +0 -21
  49. package/cjs/column-expression-input/column-language-parser/generated/column-parser.js.map +0 -1
  50. package/cjs/column-expression-input/functionDocInfo.js +0 -39
  51. package/cjs/column-expression-input/functionDocInfo.js.map +0 -1
  52. package/cjs/column-expression-input/highlighting.js +0 -16
  53. package/cjs/column-expression-input/highlighting.js.map +0 -1
  54. package/cjs/column-expression-input/theme.js +0 -63
  55. package/cjs/column-expression-input/theme.js.map +0 -1
  56. package/cjs/column-expression-input/useColumnAutoComplete.js +0 -358
  57. package/cjs/column-expression-input/useColumnAutoComplete.js.map +0 -1
  58. package/cjs/column-expression-input/useColumnExpressionEditor.js +0 -131
  59. package/cjs/column-expression-input/useColumnExpressionEditor.js.map +0 -1
  60. package/cjs/column-expression-input/useColumnExpressionSuggestionProvider.js +0 -213
  61. package/cjs/column-expression-input/useColumnExpressionSuggestionProvider.js.map +0 -1
  62. package/cjs/column-expression-panel/ColumnExpressionPanel.js +0 -85
  63. package/cjs/column-expression-panel/ColumnExpressionPanel.js.map +0 -1
  64. package/cjs/column-expression-panel/useColumnExpression.js +0 -69
  65. package/cjs/column-expression-panel/useColumnExpression.js.map +0 -1
  66. package/cjs/column-formatting-settings/BaseNumericFormattingSettings.js +0 -97
  67. package/cjs/column-formatting-settings/BaseNumericFormattingSettings.js.map +0 -1
  68. package/cjs/column-formatting-settings/ColumnFormattingPanel.js +0 -104
  69. package/cjs/column-formatting-settings/ColumnFormattingPanel.js.map +0 -1
  70. package/cjs/column-formatting-settings/DateTimeFormattingSettings.js +0 -99
  71. package/cjs/column-formatting-settings/DateTimeFormattingSettings.js.map +0 -1
  72. package/cjs/column-formatting-settings/LongTypeFormattingSettings.css.js +0 -6
  73. package/cjs/column-formatting-settings/LongTypeFormattingSettings.css.js.map +0 -1
  74. package/cjs/column-formatting-settings/LongTypeFormattingSettings.js +0 -49
  75. package/cjs/column-formatting-settings/LongTypeFormattingSettings.js.map +0 -1
  76. package/cjs/column-list/ColumnList.css.js +0 -6
  77. package/cjs/column-list/ColumnList.css.js.map +0 -1
  78. package/cjs/column-list/ColumnList.js +0 -174
  79. package/cjs/column-list/ColumnList.js.map +0 -1
  80. package/cjs/column-menu/ColumnMenu.css.js +0 -6
  81. package/cjs/column-menu/ColumnMenu.css.js.map +0 -1
  82. package/cjs/column-menu/ColumnMenu.js +0 -116
  83. package/cjs/column-menu/ColumnMenu.js.map +0 -1
  84. package/cjs/column-menu/column-menu-utils.js +0 -489
  85. package/cjs/column-menu/column-menu-utils.js.map +0 -1
  86. package/cjs/column-menu/useColumnActions.js +0 -75
  87. package/cjs/column-menu/useColumnActions.js.map +0 -1
  88. package/cjs/datasource-stats/DatasourceStats.css.js +0 -6
  89. package/cjs/datasource-stats/DatasourceStats.css.js.map +0 -1
  90. package/cjs/datasource-stats/DatasourceStats.js +0 -52
  91. package/cjs/datasource-stats/DatasourceStats.js.map +0 -1
  92. package/cjs/table-column-settings/ColumnNameLabel.css.js +0 -6
  93. package/cjs/table-column-settings/ColumnNameLabel.css.js.map +0 -1
  94. package/cjs/table-column-settings/ColumnNameLabel.js +0 -45
  95. package/cjs/table-column-settings/ColumnNameLabel.js.map +0 -1
  96. package/cjs/table-column-settings/ColumnSettingsPanel.css.js +0 -6
  97. package/cjs/table-column-settings/ColumnSettingsPanel.css.js.map +0 -1
  98. package/cjs/table-column-settings/ColumnSettingsPanel.js +0 -202
  99. package/cjs/table-column-settings/ColumnSettingsPanel.js.map +0 -1
  100. package/cjs/table-column-settings/TableSettingsPanel.css.js +0 -6
  101. package/cjs/table-column-settings/TableSettingsPanel.css.js.map +0 -1
  102. package/cjs/table-column-settings/TableSettingsPanel.js +0 -139
  103. package/cjs/table-column-settings/TableSettingsPanel.js.map +0 -1
  104. package/cjs/table-column-settings/useColumnSettings.js +0 -224
  105. package/cjs/table-column-settings/useColumnSettings.js.map +0 -1
  106. package/cjs/table-column-settings/useTableAndColumnSettings.js +0 -126
  107. package/cjs/table-column-settings/useTableAndColumnSettings.js.map +0 -1
  108. package/cjs/table-column-settings/useTableSettings.js +0 -172
  109. package/cjs/table-column-settings/useTableSettings.js.map +0 -1
  110. package/cjs/table-provider/TableProvider.js +0 -48
  111. package/cjs/table-provider/TableProvider.js.map +0 -1
  112. package/esm/cell-edit-validators/CaseValidator.js +0 -23
  113. package/esm/cell-edit-validators/CaseValidator.js.map +0 -1
  114. package/esm/cell-edit-validators/PatternValidator.js +0 -29
  115. package/esm/cell-edit-validators/PatternValidator.js.map +0 -1
  116. package/esm/cell-renderers/background-cell/BackgroundCell.css.js +0 -4
  117. package/esm/cell-renderers/background-cell/BackgroundCell.css.js.map +0 -1
  118. package/esm/cell-renderers/background-cell/BackgroundCell.js +0 -74
  119. package/esm/cell-renderers/background-cell/BackgroundCell.js.map +0 -1
  120. package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js +0 -4
  121. package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js.map +0 -1
  122. package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js +0 -65
  123. package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +0 -1
  124. package/esm/cell-renderers/background-cell/BackgroundKeyframes.css.js +0 -4
  125. package/esm/cell-renderers/background-cell/BackgroundKeyframes.css.js.map +0 -1
  126. package/esm/cell-renderers/background-cell/useDirection.js +0 -18
  127. package/esm/cell-renderers/background-cell/useDirection.js.map +0 -1
  128. package/esm/cell-renderers/dropdown-cell/DropdownCell.css.js +0 -4
  129. package/esm/cell-renderers/dropdown-cell/DropdownCell.css.js.map +0 -1
  130. package/esm/cell-renderers/dropdown-cell/DropdownCell.js +0 -92
  131. package/esm/cell-renderers/dropdown-cell/DropdownCell.js.map +0 -1
  132. package/esm/cell-renderers/lookup-cell/LookupCell.js +0 -21
  133. package/esm/cell-renderers/lookup-cell/LookupCell.js.map +0 -1
  134. package/esm/cell-renderers/pct-progress-cell/PctProgressCell.css.js +0 -4
  135. package/esm/cell-renderers/pct-progress-cell/PctProgressCell.css.js.map +0 -1
  136. package/esm/cell-renderers/pct-progress-cell/PctProgressCell.js +0 -60
  137. package/esm/cell-renderers/pct-progress-cell/PctProgressCell.js.map +0 -1
  138. package/esm/cell-renderers/progress-cell/ProgressCell.css.js +0 -4
  139. package/esm/cell-renderers/progress-cell/ProgressCell.css.js.map +0 -1
  140. package/esm/cell-renderers/progress-cell/ProgressCell.js +0 -67
  141. package/esm/cell-renderers/progress-cell/ProgressCell.js.map +0 -1
  142. package/esm/column-expression-input/ColumnExpressionInput.css.js +0 -4
  143. package/esm/column-expression-input/ColumnExpressionInput.css.js.map +0 -1
  144. package/esm/column-expression-input/ColumnExpressionInput.js +0 -37
  145. package/esm/column-expression-input/ColumnExpressionInput.js.map +0 -1
  146. package/esm/column-expression-input/column-function-descriptors.js +0 -305
  147. package/esm/column-expression-input/column-function-descriptors.js.map +0 -1
  148. package/esm/column-expression-input/column-language-parser/ColumnExpressionLanguage.js +0 -26
  149. package/esm/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +0 -1
  150. package/esm/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js +0 -463
  151. package/esm/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +0 -1
  152. package/esm/column-expression-input/column-language-parser/column-expression-parse-utils.js +0 -56
  153. package/esm/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +0 -1
  154. package/esm/column-expression-input/column-language-parser/generated/column-parser.js +0 -19
  155. package/esm/column-expression-input/column-language-parser/generated/column-parser.js.map +0 -1
  156. package/esm/column-expression-input/functionDocInfo.js +0 -37
  157. package/esm/column-expression-input/functionDocInfo.js.map +0 -1
  158. package/esm/column-expression-input/highlighting.js +0 -14
  159. package/esm/column-expression-input/highlighting.js.map +0 -1
  160. package/esm/column-expression-input/theme.js +0 -61
  161. package/esm/column-expression-input/theme.js.map +0 -1
  162. package/esm/column-expression-input/useColumnAutoComplete.js +0 -356
  163. package/esm/column-expression-input/useColumnAutoComplete.js.map +0 -1
  164. package/esm/column-expression-input/useColumnExpressionEditor.js +0 -129
  165. package/esm/column-expression-input/useColumnExpressionEditor.js.map +0 -1
  166. package/esm/column-expression-input/useColumnExpressionSuggestionProvider.js +0 -211
  167. package/esm/column-expression-input/useColumnExpressionSuggestionProvider.js.map +0 -1
  168. package/esm/column-expression-panel/ColumnExpressionPanel.js +0 -83
  169. package/esm/column-expression-panel/ColumnExpressionPanel.js.map +0 -1
  170. package/esm/column-expression-panel/useColumnExpression.js +0 -67
  171. package/esm/column-expression-panel/useColumnExpression.js.map +0 -1
  172. package/esm/column-formatting-settings/BaseNumericFormattingSettings.js +0 -95
  173. package/esm/column-formatting-settings/BaseNumericFormattingSettings.js.map +0 -1
  174. package/esm/column-formatting-settings/ColumnFormattingPanel.js +0 -102
  175. package/esm/column-formatting-settings/ColumnFormattingPanel.js.map +0 -1
  176. package/esm/column-formatting-settings/DateTimeFormattingSettings.js +0 -97
  177. package/esm/column-formatting-settings/DateTimeFormattingSettings.js.map +0 -1
  178. package/esm/column-formatting-settings/LongTypeFormattingSettings.css.js +0 -4
  179. package/esm/column-formatting-settings/LongTypeFormattingSettings.css.js.map +0 -1
  180. package/esm/column-formatting-settings/LongTypeFormattingSettings.js +0 -47
  181. package/esm/column-formatting-settings/LongTypeFormattingSettings.js.map +0 -1
  182. package/esm/column-list/ColumnList.css.js +0 -4
  183. package/esm/column-list/ColumnList.css.js.map +0 -1
  184. package/esm/column-list/ColumnList.js +0 -172
  185. package/esm/column-list/ColumnList.js.map +0 -1
  186. package/esm/column-menu/ColumnMenu.css.js +0 -4
  187. package/esm/column-menu/ColumnMenu.css.js.map +0 -1
  188. package/esm/column-menu/ColumnMenu.js +0 -114
  189. package/esm/column-menu/ColumnMenu.js.map +0 -1
  190. package/esm/column-menu/column-menu-utils.js +0 -480
  191. package/esm/column-menu/column-menu-utils.js.map +0 -1
  192. package/esm/column-menu/useColumnActions.js +0 -73
  193. package/esm/column-menu/useColumnActions.js.map +0 -1
  194. package/esm/datasource-stats/DatasourceStats.css.js +0 -4
  195. package/esm/datasource-stats/DatasourceStats.css.js.map +0 -1
  196. package/esm/datasource-stats/DatasourceStats.js +0 -50
  197. package/esm/datasource-stats/DatasourceStats.js.map +0 -1
  198. package/esm/table-column-settings/ColumnNameLabel.css.js +0 -4
  199. package/esm/table-column-settings/ColumnNameLabel.css.js.map +0 -1
  200. package/esm/table-column-settings/ColumnNameLabel.js +0 -43
  201. package/esm/table-column-settings/ColumnNameLabel.js.map +0 -1
  202. package/esm/table-column-settings/ColumnSettingsPanel.css.js +0 -4
  203. package/esm/table-column-settings/ColumnSettingsPanel.css.js.map +0 -1
  204. package/esm/table-column-settings/ColumnSettingsPanel.js +0 -200
  205. package/esm/table-column-settings/ColumnSettingsPanel.js.map +0 -1
  206. package/esm/table-column-settings/TableSettingsPanel.css.js +0 -4
  207. package/esm/table-column-settings/TableSettingsPanel.css.js.map +0 -1
  208. package/esm/table-column-settings/TableSettingsPanel.js +0 -136
  209. package/esm/table-column-settings/TableSettingsPanel.js.map +0 -1
  210. package/esm/table-column-settings/useColumnSettings.js +0 -222
  211. package/esm/table-column-settings/useColumnSettings.js.map +0 -1
  212. package/esm/table-column-settings/useTableAndColumnSettings.js +0 -122
  213. package/esm/table-column-settings/useTableAndColumnSettings.js.map +0 -1
  214. package/esm/table-column-settings/useTableSettings.js +0 -170
  215. package/esm/table-column-settings/useTableSettings.js.map +0 -1
  216. package/esm/table-provider/TableProvider.js +0 -44
  217. package/esm/table-provider/TableProvider.js.map +0 -1
@@ -1,92 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { useLookupValues } from '@vuu-ui/vuu-data-react';
3
- import { getSelectedOption, dispatchCustomEvent, dataColumnAndKeyUnchanged, registerComponent } from '@vuu-ui/vuu-utils';
4
- import { Dropdown, Option } from '@salt-ds/core';
5
- import { useComponentCssInjection } from '@salt-ds/styles';
6
- import { useWindow } from '@salt-ds/window';
7
- import { memo, useState, useRef, useMemo, useCallback } from 'react';
8
- import dropdownCellCss from './DropdownCell.css.js';
9
-
10
- const classBase = "vuuTableDropdownCell";
11
- const DropdownCell = memo(function DropdownCell2({
12
- column,
13
- columnMap,
14
- onEdit,
15
- row
16
- }) {
17
- const targetWindow = useWindow();
18
- useComponentCssInjection({
19
- testId: "vuu-dropdown-cell",
20
- css: dropdownCellCss,
21
- window: targetWindow
22
- });
23
- const [open, setOpen] = useState(false);
24
- const dataIdx = columnMap[column.name];
25
- const dataValue = row[dataIdx];
26
- const { values } = useLookupValues(column, dataValue);
27
- const valueRef = useRef(void 0);
28
- useMemo(() => {
29
- valueRef.current = getSelectedOption(values, dataValue);
30
- }, [dataValue, values]);
31
- const handleOpenChange = useCallback((isOpen) => {
32
- console.log(`handleOpenChange ${isOpen}`);
33
- if (isOpen === false) {
34
- setOpen(false);
35
- }
36
- }, []);
37
- const handleSelectionChange = useCallback(
38
- async (evt, [selectedOption2]) => {
39
- if (selectedOption2) {
40
- const response = await onEdit?.(
41
- {
42
- editType: "commit",
43
- previousValue: valueRef.current?.value,
44
- value: selectedOption2.value
45
- },
46
- "commit"
47
- );
48
- if (response === true) {
49
- dispatchCustomEvent(evt.target, "vuu-commit");
50
- }
51
- }
52
- },
53
- [onEdit]
54
- );
55
- const handleClick = useCallback(() => {
56
- if (!open) {
57
- setOpen(true);
58
- }
59
- }, [open]);
60
- const handleKeyDown = useCallback(
61
- (e) => {
62
- if (e.key === "Enter" && !open) {
63
- e.preventDefault();
64
- e.stopPropagation();
65
- setOpen(true);
66
- }
67
- },
68
- [open]
69
- );
70
- const { current: selectedOption } = valueRef;
71
- return /* @__PURE__ */ jsx(
72
- Dropdown,
73
- {
74
- className: classBase,
75
- "data-icon": "triangle-down",
76
- onClick: handleClick,
77
- onKeyDownCapture: handleKeyDown,
78
- onOpenChange: handleOpenChange,
79
- onSelectionChange: handleSelectionChange,
80
- open,
81
- selected: selectedOption ? [selectedOption] : [],
82
- value: selectedOption?.label,
83
- children: values.map((listOption, i) => /* @__PURE__ */ jsx(Option, { value: listOption, children: listOption.label }, i))
84
- }
85
- );
86
- }, dataColumnAndKeyUnchanged);
87
- registerComponent("dropdown-cell", DropdownCell, "cell-renderer", {
88
- userCanAssign: false
89
- });
90
-
91
- export { DropdownCell };
92
- //# sourceMappingURL=DropdownCell.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DropdownCell.js","sources":["../../../src/cell-renderers/dropdown-cell/DropdownCell.tsx"],"sourcesContent":["import { useLookupValues } from \"@vuu-ui/vuu-data-react\";\nimport type { VuuColumnDataType } from \"@vuu-ui/vuu-protocol-types\";\nimport { ListOption, TableCellRendererProps } from \"@vuu-ui/vuu-table-types\";\nimport {\n dataColumnAndKeyUnchanged,\n dispatchCustomEvent,\n getSelectedOption,\n registerComponent,\n} from \"@vuu-ui/vuu-utils\";\nimport { Dropdown, Option } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n KeyboardEventHandler,\n MouseEventHandler,\n SyntheticEvent,\n memo,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from \"react\";\n\nimport dropdownCellCss from \"./DropdownCell.css\";\n\nconst classBase = \"vuuTableDropdownCell\";\n\nexport const DropdownCell = memo(function DropdownCell({\n column,\n columnMap,\n onEdit,\n row,\n}: TableCellRendererProps) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-dropdown-cell\",\n css: dropdownCellCss,\n window: targetWindow,\n });\n\n const [open, setOpen] = useState(false);\n const dataIdx = columnMap[column.name];\n const dataValue = row[dataIdx] as string | number;\n const { values } = useLookupValues(column, dataValue);\n const valueRef = useRef<ListOption>(undefined);\n\n useMemo(() => {\n valueRef.current = getSelectedOption(values, dataValue);\n }, [dataValue, values]);\n\n const handleOpenChange = useCallback((isOpen: boolean) => {\n console.log(`handleOpenChange ${isOpen}`);\n if (isOpen === false) {\n setOpen(false);\n }\n }, []);\n\n const handleSelectionChange = useCallback(\n async (evt: SyntheticEvent, [selectedOption]: ListOption[]) => {\n if (selectedOption) {\n // Note, we do not setState locally when a selection is made, we just send the update\n // to the server. We rely on the update coming back in from a server response which\n // we handle in the useMemo above. If we worry that server repsonses might be too slow\n // we can extend this logic with some kind of pending update state.\n const response = await onEdit?.(\n {\n editType: \"commit\",\n previousValue: valueRef.current?.value,\n value: selectedOption.value as VuuColumnDataType,\n },\n \"commit\",\n );\n if (response === true) {\n dispatchCustomEvent(evt.target as HTMLElement, \"vuu-commit\");\n }\n }\n },\n [onEdit],\n );\n\n const handleClick = useCallback<MouseEventHandler<HTMLButtonElement>>(() => {\n if (!open) {\n setOpen(true);\n }\n }, [open]);\n\n const handleKeyDown = useCallback<KeyboardEventHandler>(\n (e) => {\n if (e.key === \"Enter\" && !open) {\n e.preventDefault();\n e.stopPropagation();\n setOpen(true);\n }\n },\n [open],\n );\n\n const { current: selectedOption } = valueRef;\n return (\n <Dropdown<ListOption>\n className={classBase}\n data-icon=\"triangle-down\"\n onClick={handleClick}\n onKeyDownCapture={handleKeyDown}\n onOpenChange={handleOpenChange}\n onSelectionChange={handleSelectionChange}\n open={open}\n selected={selectedOption ? [selectedOption] : []}\n value={selectedOption?.label}\n >\n {values.map((listOption, i) => (\n <Option key={i} value={listOption}>\n {listOption.label}\n </Option>\n ))}\n </Dropdown>\n );\n}, dataColumnAndKeyUnchanged);\n\nregisterComponent(\"dropdown-cell\", DropdownCell, \"cell-renderer\", {\n userCanAssign: false,\n});\n"],"names":["DropdownCell","selectedOption"],"mappings":"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"}
@@ -1,21 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { useLookupValues } from '@vuu-ui/vuu-data-react';
3
- import { dataAndColumnUnchanged, registerComponent } from '@vuu-ui/vuu-utils';
4
- import { memo } from 'react';
5
-
6
- const LookupCell = memo(function LookupCell2({
7
- column,
8
- columnMap,
9
- row
10
- }) {
11
- const dataIdx = columnMap[column.name];
12
- const dataValue = row[dataIdx];
13
- const { initialValue: value } = useLookupValues(column, dataValue);
14
- return /* @__PURE__ */ jsx("span", { children: value?.label });
15
- }, dataAndColumnUnchanged);
16
- registerComponent("lookup-cell", LookupCell, "cell-renderer", {
17
- userCanAssign: false
18
- });
19
-
20
- export { LookupCell };
21
- //# sourceMappingURL=LookupCell.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"LookupCell.js","sources":["../../../src/cell-renderers/lookup-cell/LookupCell.tsx"],"sourcesContent":["import { useLookupValues } from \"@vuu-ui/vuu-data-react\";\nimport { TableCellRendererProps } from \"@vuu-ui/vuu-table-types\";\nimport { dataAndColumnUnchanged, registerComponent } from \"@vuu-ui/vuu-utils\";\nimport { memo } from \"react\";\n\nexport const LookupCell = memo(function LookupCell({\n column,\n columnMap,\n row,\n}: TableCellRendererProps) {\n const dataIdx = columnMap[column.name];\n const dataValue = row[dataIdx] as string | number;\n const { initialValue: value } = useLookupValues(column, dataValue);\n return <span>{value?.label}</span>;\n}, dataAndColumnUnchanged);\n\nregisterComponent(\"lookup-cell\", LookupCell, \"cell-renderer\", {\n userCanAssign: false,\n});\n"],"names":["LookupCell"],"mappings":";;;;;AAKa,MAAA,UAAA,GAAa,IAAK,CAAA,SAASA,WAAW,CAAA;AAAA,EACjD,MAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAA2B,EAAA;AACzB,EAAM,MAAA,OAAA,GAAU,SAAU,CAAA,MAAA,CAAO,IAAI,CAAA;AACrC,EAAM,MAAA,SAAA,GAAY,IAAI,OAAO,CAAA;AAC7B,EAAA,MAAM,EAAE,YAAc,EAAA,KAAA,EAAU,GAAA,eAAA,CAAgB,QAAQ,SAAS,CAAA;AACjE,EAAO,uBAAA,GAAA,CAAC,MAAM,EAAA,EAAA,QAAA,EAAA,KAAA,EAAO,KAAM,EAAA,CAAA;AAC7B,CAAA,EAAG,sBAAsB;AAEzB,iBAAkB,CAAA,aAAA,EAAe,YAAY,eAAiB,EAAA;AAAA,EAC5D,aAAe,EAAA;AACjB,CAAC,CAAA;;;;"}
@@ -1,4 +0,0 @@
1
- var pctProgressCellCss = ".vuuPctProgressCell {\n --progress-bar-width: 2px;\n position: relative;\n}\n\n.vuuPctProgressCell-zero {\n --progress-bar-width: 0px;\n}\n.vuuPctProgressCell-complete {\n --progress-bar-width: 0px;\n}\n\n.vuuPctProgressCell-progressBar {\n background-color: var(--vuu-color-green-60-fade-30);\n border-right: solid var(--progress-bar-width) var(--vuu-color-green-60);\n display: inline-block;\n height: 20px;\n left: 0;\n overflow: hidden;\n position: absolute;\n width: var(--progress-bar-pct, 0);\n}\n\n\n.vuuPctProgressCell-text {\n display: inline-block;\n text-align: left;\n width: 80%;\n z-index: 1;\n}";
2
-
3
- export { pctProgressCellCss as default };
4
- //# sourceMappingURL=PctProgressCell.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PctProgressCell.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,60 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { registerComponent } from '@vuu-ui/vuu-utils';
3
- import cx from 'clsx';
4
- import { useComponentCssInjection } from '@salt-ds/styles';
5
- import { useWindow } from '@salt-ds/window';
6
- import pctProgressCellCss from './PctProgressCell.css.js';
7
-
8
- const classBase = "vuuPctProgressCell";
9
- const getPercentageValue = (value) => {
10
- if (value >= 0 && value <= 1) {
11
- return value * 100;
12
- } else if (value > 2) {
13
- return 0;
14
- } else if (value > 1) {
15
- return 100;
16
- } else {
17
- return 0;
18
- }
19
- };
20
- const PctProgressCell = ({ column, columnMap, row }) => {
21
- const targetWindow = useWindow();
22
- useComponentCssInjection({
23
- testId: "vuu-pct-progress-cell",
24
- css: pctProgressCellCss,
25
- window: targetWindow
26
- });
27
- const value = row[columnMap[column.name]];
28
- const percentageValue = getPercentageValue(value);
29
- const className = cx(classBase, {});
30
- return /* @__PURE__ */ jsxs(
31
- "div",
32
- {
33
- className: cx(className, {
34
- [`${classBase}-zero`]: percentageValue === 0,
35
- [`${classBase}-complete`]: percentageValue >= 100
36
- }),
37
- tabIndex: -1,
38
- children: [
39
- /* @__PURE__ */ jsx(
40
- "span",
41
- {
42
- className: `${classBase}-progressBar`,
43
- style: { "--progress-bar-pct": `${percentageValue}%` }
44
- }
45
- ),
46
- /* @__PURE__ */ jsx("span", { className: `${classBase}-text`, children: `${percentageValue.toFixed(
47
- 2
48
- )} %` })
49
- ]
50
- }
51
- );
52
- };
53
- registerComponent("vuu.pct-progress", PctProgressCell, "cell-renderer", {
54
- description: "Percentage formatter",
55
- label: "Percentage formatter",
56
- serverDataType: "double"
57
- });
58
-
59
- export { PctProgressCell };
60
- //# sourceMappingURL=PctProgressCell.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"PctProgressCell.js","sources":["../../../src/cell-renderers/pct-progress-cell/PctProgressCell.tsx"],"sourcesContent":["import { TableCellProps } from \"@vuu-ui/vuu-table-types\";\nimport { registerComponent } from \"@vuu-ui/vuu-utils\";\nimport cx from \"clsx\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { CSSProperties } from \"react\";\n\nimport pctProgressCellCss from \"./PctProgressCell.css\";\n\nconst classBase = \"vuuPctProgressCell\";\n\nconst getPercentageValue = (value: number) => {\n if (value >= 0 && value <= 1) {\n return value * 100;\n } else if (value > 2) {\n return 0;\n } else if (value > 1) {\n return 100;\n } else {\n return 0;\n }\n};\n\nexport const PctProgressCell = ({ column, columnMap, row }: TableCellProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-pct-progress-cell\",\n css: pctProgressCellCss,\n window: targetWindow,\n });\n\n const value = row[columnMap[column.name]] as number;\n const percentageValue = getPercentageValue(value);\n const className = cx(classBase, {});\n\n return (\n <div\n className={cx(className, {\n [`${classBase}-zero`]: percentageValue === 0,\n [`${classBase}-complete`]: percentageValue >= 100,\n })}\n tabIndex={-1}\n >\n <span\n className={`${classBase}-progressBar`}\n style={{ \"--progress-bar-pct\": `${percentageValue}%` } as CSSProperties}\n />\n <span className={`${classBase}-text`}>{`${percentageValue.toFixed(\n 2,\n )} %`}</span>\n </div>\n );\n};\n\nregisterComponent(\"vuu.pct-progress\", PctProgressCell, \"cell-renderer\", {\n description: \"Percentage formatter\",\n label: \"Percentage formatter\",\n serverDataType: \"double\",\n});\n"],"names":[],"mappings":";;;;;;;AASA,MAAM,SAAY,GAAA,oBAAA;AAElB,MAAM,kBAAA,GAAqB,CAAC,KAAkB,KAAA;AAC5C,EAAI,IAAA,KAAA,IAAS,CAAK,IAAA,KAAA,IAAS,CAAG,EAAA;AAC5B,IAAA,OAAO,KAAQ,GAAA,GAAA;AAAA,GACjB,MAAA,IAAW,QAAQ,CAAG,EAAA;AACpB,IAAO,OAAA,CAAA;AAAA,GACT,MAAA,IAAW,QAAQ,CAAG,EAAA;AACpB,IAAO,OAAA,GAAA;AAAA,GACF,MAAA;AACL,IAAO,OAAA,CAAA;AAAA;AAEX,CAAA;AAEO,MAAM,kBAAkB,CAAC,EAAE,MAAQ,EAAA,SAAA,EAAW,KAA0B,KAAA;AAC7E,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,uBAAA;AAAA,IACR,GAAK,EAAA,kBAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,MAAM,KAAQ,GAAA,GAAA,CAAI,SAAU,CAAA,MAAA,CAAO,IAAI,CAAC,CAAA;AACxC,EAAM,MAAA,eAAA,GAAkB,mBAAmB,KAAK,CAAA;AAChD,EAAA,MAAM,SAAY,GAAA,EAAA,CAAG,SAAW,EAAA,EAAE,CAAA;AAElC,EACE,uBAAA,IAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,SAAA,EAAW,GAAG,SAAW,EAAA;AAAA,QACvB,CAAC,CAAA,EAAG,SAAS,CAAA,KAAA,CAAO,GAAG,eAAoB,KAAA,CAAA;AAAA,QAC3C,CAAC,CAAA,EAAG,SAAS,CAAA,SAAA,CAAW,GAAG,eAAmB,IAAA;AAAA,OAC/C,CAAA;AAAA,MACD,QAAU,EAAA,CAAA,CAAA;AAAA,MAEV,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,MAAA;AAAA,UAAA;AAAA,YACC,SAAA,EAAW,GAAG,SAAS,CAAA,YAAA,CAAA;AAAA,YACvB,KAAO,EAAA,EAAE,oBAAsB,EAAA,CAAA,EAAG,eAAe,CAAI,CAAA,CAAA;AAAA;AAAA,SACvD;AAAA,4BACC,MAAK,EAAA,EAAA,SAAA,EAAW,GAAG,SAAS,CAAA,KAAA,CAAA,EAAU,aAAG,eAAgB,CAAA,OAAA;AAAA,UACxD;AAAA,SACD,CAAK,EAAA,CAAA,EAAA;AAAA;AAAA;AAAA,GACR;AAEJ;AAEA,iBAAkB,CAAA,kBAAA,EAAoB,iBAAiB,eAAiB,EAAA;AAAA,EACtE,WAAa,EAAA,sBAAA;AAAA,EACb,KAAO,EAAA,sBAAA;AAAA,EACP,cAAgB,EAAA;AAClB,CAAC,CAAA;;;;"}
@@ -1,4 +0,0 @@
1
- var progressCellCss = ".vuuProgressCell {\n align-items: center;\n display: flex;\n}\n\n.vuuProgressCell-track {\n display: inline-block;\n flex: auto 1 1;\n height: 4px;\n overflow: hidden;\n position: relative;\n}\n\n.vuuProgressCell-bg {\n background-color: var(--salt-measured-background);\n display: inline-block;\n height: 2px;\n left: 0;\n position: absolute;\n top: 1px;\n width: 100%;\n}\n\n\n.vuuProgressCell-bar {\n background-color: var(--salt-measured-fill);\n display: inline-block;\n height: 100%;\n left: 0;\n position: absolute;\n top:0;\n transform: translateX(var(--progress-bar-pct, -100%));\n width: 100%;\n}\n\n.vuuProgressCell-text {\n flex: 35px 0 0;\n text-align: right;\n}";
2
-
3
- export { progressCellCss as default };
4
- //# sourceMappingURL=ProgressCell.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProgressCell.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,67 +0,0 @@
1
- import { jsxs, jsx } from 'react/jsx-runtime';
2
- import { registerComponent, isTypeDescriptor, isColumnTypeRenderer, isValidNumber } from '@vuu-ui/vuu-utils';
3
- import cx from 'clsx';
4
- import { useComponentCssInjection } from '@salt-ds/styles';
5
- import { useWindow } from '@salt-ds/window';
6
- import progressCellCss from './ProgressCell.css.js';
7
-
8
- const classBase = "vuuProgressCell";
9
- const ProgressCell = ({ column, columnMap, row }) => {
10
- const targetWindow = useWindow();
11
- useComponentCssInjection({
12
- testId: "vuu-progress-cell",
13
- css: progressCellCss,
14
- window: targetWindow
15
- });
16
- const { name, type } = column;
17
- const value = row[columnMap[name]];
18
- let showProgress = false;
19
- let percentage = 0;
20
- if (isTypeDescriptor(type) && isColumnTypeRenderer(type.renderer)) {
21
- const { associatedField } = type.renderer;
22
- if (associatedField) {
23
- const associatedValue = row[columnMap[associatedField]];
24
- if (isValidNumber(value) && isValidNumber(associatedValue)) {
25
- percentage = Math.min(Math.round(value / associatedValue * 100), 100);
26
- percentage = Math.min(Math.round(value / associatedValue * 100), 100);
27
- showProgress = isFinite(percentage);
28
- } else {
29
- const floatValue = parseFloat(value);
30
- if (Number.isFinite(floatValue)) {
31
- const floatOtherValue = parseFloat(associatedValue);
32
- if (Number.isFinite(floatOtherValue)) {
33
- percentage = Math.min(
34
- Math.round(floatValue / floatOtherValue * 100),
35
- 100
36
- );
37
- showProgress = isFinite(percentage);
38
- }
39
- }
40
- }
41
- } else {
42
- throw Error("ProgressCell associatedField is required to render");
43
- }
44
- }
45
- const className = cx(classBase, {});
46
- return /* @__PURE__ */ jsxs("div", { className, tabIndex: -1, children: [
47
- showProgress ? /* @__PURE__ */ jsxs("span", { className: `${classBase}-track`, children: [
48
- /* @__PURE__ */ jsx("span", { className: `${classBase}-bg` }),
49
- /* @__PURE__ */ jsx(
50
- "span",
51
- {
52
- className: `${classBase}-bar`,
53
- style: { "--progress-bar-pct": `-${100 - percentage}%` }
54
- }
55
- )
56
- ] }) : null,
57
- /* @__PURE__ */ jsx("span", { className: `${classBase}-text`, children: `${percentage} %` })
58
- ] });
59
- };
60
- registerComponent("vuu.progress", ProgressCell, "cell-renderer", {
61
- description: "Progress formatter",
62
- label: "Progress formatter",
63
- serverDataType: ["long", "int", "double"],
64
- // Not until we provide settings for associaetd field
65
- userCanAssign: false
66
- });
67
- //# sourceMappingURL=ProgressCell.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ProgressCell.js","sources":["../../../src/cell-renderers/progress-cell/ProgressCell.tsx"],"sourcesContent":["import { TableCellProps } from \"@vuu-ui/vuu-table-types\";\nimport {\n isColumnTypeRenderer,\n isTypeDescriptor,\n isValidNumber,\n registerComponent,\n} from \"@vuu-ui/vuu-utils\";\nimport cx from \"clsx\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { CSSProperties } from \"react\";\n\nimport progressCellCss from \"./ProgressCell.css\";\n\nconst classBase = \"vuuProgressCell\";\n\nconst ProgressCell = ({ column, columnMap, row }: TableCellProps) => {\n //TODO what about click handling\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-progress-cell\",\n css: progressCellCss,\n window: targetWindow,\n });\n\n const { name, type } = column;\n const value = row[columnMap[name]];\n let showProgress = false;\n let percentage = 0;\n\n if (isTypeDescriptor(type) && isColumnTypeRenderer(type.renderer)) {\n const { associatedField } = type.renderer;\n if (associatedField) {\n const associatedValue = row[columnMap[associatedField]];\n if (isValidNumber(value) && isValidNumber(associatedValue)) {\n percentage = Math.min(Math.round((value / associatedValue) * 100), 100);\n percentage = Math.min(Math.round((value / associatedValue) * 100), 100);\n showProgress = isFinite(percentage);\n } else {\n // Temp workaround for bug on server that sends aggregated values as strings\n const floatValue = parseFloat(value as string);\n if (Number.isFinite(floatValue)) {\n const floatOtherValue = parseFloat(associatedValue as string);\n if (Number.isFinite(floatOtherValue)) {\n percentage = Math.min(\n Math.round((floatValue / floatOtherValue) * 100),\n 100,\n );\n showProgress = isFinite(percentage);\n }\n }\n }\n } else {\n throw Error(\"ProgressCell associatedField is required to render\");\n }\n }\n\n const className = cx(classBase, {});\n\n return (\n <div className={className} tabIndex={-1}>\n {showProgress ? (\n <span className={`${classBase}-track`}>\n <span className={`${classBase}-bg`} />\n <span\n className={`${classBase}-bar`}\n style={\n { \"--progress-bar-pct\": `-${100 - percentage}%` } as CSSProperties\n }\n />\n </span>\n ) : null}\n <span className={`${classBase}-text`}>{`${percentage} %`}</span>\n </div>\n );\n};\n\nregisterComponent(\"vuu.progress\", ProgressCell, \"cell-renderer\", {\n description: \"Progress formatter\",\n label: \"Progress formatter\",\n serverDataType: [\"long\", \"int\", \"double\"],\n // Not until we provide settings for associaetd field\n userCanAssign: false,\n});\n"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- var colummExpressionInputCss = "\n.vuuColumnExpressionInput {\n --vuuFilterEditor-background: var(--salt-container-primary-background);\n --vuuFilterEditor-color: var(--salt-content-primary-foreground);\n --vuuFilterEditor-fontFamily: var(--salt-typography-fontFamily);\n --vuuFilterEditor-fontSize: var(--salt-text-fontSize);\n --vuuFilterEditor-cursorColor: var(--salt-content-secondary-foreground);\n --vuuFilterEditor-selectionBackground: var(--salt-text-background-selected);\n --vuuFilterEditor-tooltipBackground: var(--salt-container-primary-background);\n --vuuFilterEditor-tooltipBorder: solid 1px var(--vuu-color-purple-10); \n --vuuFilterEditor-tooltipElevation: var(--salt-overlayable-shadow-popout);\n --vuuFilterEditor-suggestion-selectedBackground: var(--vuu-color-gray-10);\n --vuuFilterEditor-suggestion-selectedColor: var(--salt-content-primary-foreground);\n --vuuFilterEditor-suggestion-detailColor: var(--salt-content-secondary-foreground-disabled);\n --vuuFilterEditor-suggestion-height: 24px;\n --vuuFilterEditor-variableColor: var(--vuu-color-purple-10);\n\n align-items: center;\n box-sizing: border-box;\n height: 30px;\n}\n\n.vuuColumnExpressionInput-FilterButton,\n.vuuColumnExpressionInput-ClearButton {\n --vuu-icon-size: 12px;\n --saltButton-width: 28px;\n}\n\n.expression-type-container {\n margin: 0 3px 0 auto;\n color: var(--salt-content-secondary-foreground)\n}\n\n.expression-kind {\n display: inline-block;\n width: 50px;\n}\n\n.expression-type {\n display: inline-block;\n text-align: right;\n width: 50px;\n}\n\n.vuuSuggestion {\n display: flex;\n align-items: center;\n}\n\n.vuuFunctionDoc {\n padding: 13px 7px;\n}\n\n.vuuFunctionDoc .function-heading {\n display: flex;\n gap: 3px;\n}\n\n.vuuFunctionDoc .function-name {\n font-weight: 700;\n text-transform: capitalize;\n}\n\n.vuuFunctionDoc .param-list {\n color: var(--vuu-color-gray-50);\n white-space: pre;\n}\n\n.vuuFunctionDoc .function-type {\n color: var(--vuu-color-gray-50);\n font-weight: 700;\n margin-left: auto;\n text-transform: capitalize;\n}\n\n.vuuFunctionDoc .example-container {\n background-color: var(--vuu-color-gray-03);\n margin: 6px 0;\n padding: 3px;\n}\n\n.vuuFunctionDoc .example-expression {\n color: var(--vuu-color-gray-80);\n font-family: var(--salt-typography-fontFamily-code);\n font-weight: 500;\n padding: 8px;\n}\n\n.vuuFunctionDoc .example-result {\n margin-left: 8px;\n margin-top: 6px;\n}";
2
-
3
- export { colummExpressionInputCss as default };
4
- //# sourceMappingURL=ColumnExpressionInput.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColumnExpressionInput.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,37 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { memo } from 'react';
3
- import { useComponentCssInjection } from '@salt-ds/styles';
4
- import { useWindow } from '@salt-ds/window';
5
- import { useColumnExpressionEditor } from './useColumnExpressionEditor.js';
6
- import colummExpressionInputCss from './ColumnExpressionInput.css.js';
7
-
8
- const classBase = "vuuColumnExpressionInput";
9
- const ColumnExpressionInput = memo(
10
- ({
11
- onChange,
12
- onSubmitExpression,
13
- source = "",
14
- suggestionProvider
15
- }) => {
16
- const targetWindow = useWindow();
17
- useComponentCssInjection({
18
- testId: "vuu-column-expression-input",
19
- css: colummExpressionInputCss,
20
- window: targetWindow
21
- });
22
- const { editorRef, onBlur } = useColumnExpressionEditor({
23
- onChange,
24
- onSubmitExpression,
25
- source,
26
- suggestionProvider
27
- });
28
- return /* @__PURE__ */ jsx("div", { className: `${classBase}`, onBlur, ref: editorRef });
29
- },
30
- (prevProps, newProps) => {
31
- return prevProps.source === newProps.source;
32
- }
33
- );
34
- ColumnExpressionInput.displayName = "ColumnExpressionInput";
35
-
36
- export { ColumnExpressionInput };
37
- //# sourceMappingURL=ColumnExpressionInput.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColumnExpressionInput.js","sources":["../../src/column-expression-input/ColumnExpressionInput.tsx"],"sourcesContent":["import { HTMLAttributes, memo } from \"react\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { ColumnDefinitionExpression } from \"./column-language-parser\";\nimport {\n ExpressionSuggestionConsumer,\n useColumnExpressionEditor,\n} from \"./useColumnExpressionEditor\";\n\nimport colummExpressionInputCss from \"./ColumnExpressionInput.css\";\n\nconst classBase = \"vuuColumnExpressionInput\";\n\nexport type ColumnExpressionSubmitHandler = (\n source: string,\n expression: ColumnDefinitionExpression | undefined\n) => void;\n\nexport interface ColumnExpressionInputProps\n extends ExpressionSuggestionConsumer,\n Omit<HTMLAttributes<HTMLDivElement>, \"onChange\"> {\n onChange?: (source: string) => void;\n onSubmitExpression?: ColumnExpressionSubmitHandler;\n source?: string;\n}\n\nexport const ColumnExpressionInput = memo(\n ({\n onChange,\n onSubmitExpression,\n source = \"\",\n suggestionProvider,\n }: ColumnExpressionInputProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-expression-input\",\n css: colummExpressionInputCss,\n window: targetWindow,\n });\n\n const { editorRef, onBlur } = useColumnExpressionEditor({\n onChange,\n onSubmitExpression,\n source,\n suggestionProvider,\n });\n\n return <div className={`${classBase}`} onBlur={onBlur} ref={editorRef} />;\n },\n (prevProps, newProps) => {\n return prevProps.source === newProps.source;\n }\n);\nColumnExpressionInput.displayName = \"ColumnExpressionInput\";\n"],"names":[],"mappings":";;;;;;;AAWA,MAAM,SAAY,GAAA,0BAAA;AAeX,MAAM,qBAAwB,GAAA,IAAA;AAAA,EACnC,CAAC;AAAA,IACC,QAAA;AAAA,IACA,kBAAA;AAAA,IACA,MAAS,GAAA,EAAA;AAAA,IACT;AAAA,GACgC,KAAA;AAChC,IAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,6BAAA;AAAA,MACR,GAAK,EAAA,wBAAA;AAAA,MACL,MAAQ,EAAA;AAAA,KACT,CAAA;AAED,IAAA,MAAM,EAAE,SAAA,EAAW,MAAO,EAAA,GAAI,yBAA0B,CAAA;AAAA,MACtD,QAAA;AAAA,MACA,kBAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KACD,CAAA;AAED,IAAO,uBAAA,GAAA,CAAC,SAAI,SAAW,EAAA,CAAA,EAAG,SAAS,CAAI,CAAA,EAAA,MAAA,EAAgB,KAAK,SAAW,EAAA,CAAA;AAAA,GACzE;AAAA,EACA,CAAC,WAAW,QAAa,KAAA;AACvB,IAAO,OAAA,SAAA,CAAU,WAAW,QAAS,CAAA,MAAA;AAAA;AAEzC;AACA,qBAAA,CAAsB,WAAc,GAAA,uBAAA;;;;"}
@@ -1,305 +0,0 @@
1
- const columnFunctionDescriptors = [
2
- /**
3
- * and
4
- */
5
- {
6
- accepts: ["boolean"],
7
- description: "Applies boolean and operator across supplied parameters to returns a single boolean result",
8
- example: {
9
- expression: 'and(ccy="EUR",quantity=0)',
10
- result: "true | false"
11
- },
12
- name: "and",
13
- params: {
14
- description: "( boolean, [ boolean* ] )"
15
- },
16
- type: "boolean"
17
- },
18
- /**
19
- * concatenate()
20
- */
21
- {
22
- accepts: "string",
23
- description: "Returns multiple string values as a single joined string. Arguments may be string literal values, string columns or other string expressions. Non string arguments may also be included, these will be converted to strings.",
24
- example: {
25
- expression: 'concatenate("example", "-test")',
26
- result: '"example-test"'
27
- },
28
- name: "concatenate",
29
- params: {
30
- description: "( string, string, [ string* ] )"
31
- },
32
- type: "string"
33
- },
34
- /**
35
- * contains()
36
- */
37
- {
38
- accepts: ["string", "string"],
39
- description: "Tests a string value to determine whether it contains a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> contains one or more occurrences of <target subscring>",
40
- example: {
41
- expression: 'contains("Royal Bank of Scotland", "bank")',
42
- result: "true"
43
- },
44
- name: "contains",
45
- params: {
46
- description: "( string )"
47
- },
48
- type: "boolean"
49
- },
50
- /**
51
- * left()
52
- */
53
- {
54
- accepts: ["string", "number"],
55
- description: "Returns the leftmost <number> characters from <string>. First argument may be a string literal, string column or other string expression.",
56
- example: {
57
- expression: 'left("USD Benchmark Report", 3)',
58
- result: '"USD"'
59
- },
60
- name: "left",
61
- params: {
62
- count: 2,
63
- description: "( string, number )"
64
- },
65
- type: "string"
66
- },
67
- /**
68
- * len()
69
- */
70
- {
71
- accepts: "string",
72
- description: "Returns the number of characters in <string>. Argument may be a string literal, string column or other string expression.",
73
- example: {
74
- expression: 'len("example")',
75
- result: "7"
76
- },
77
- name: "len",
78
- params: {
79
- description: "(string)"
80
- },
81
- type: "number"
82
- },
83
- /**
84
- * lower()
85
- */
86
- {
87
- accepts: "string",
88
- description: "Convert a string value to lowercase. Argument may be a string column or other string expression.",
89
- example: {
90
- expression: 'lower("examPLE")',
91
- result: '"example"'
92
- },
93
- name: "lower",
94
- params: {
95
- description: "( string )"
96
- },
97
- type: "string"
98
- },
99
- /**
100
- * or
101
- */
102
- {
103
- accepts: ["boolean"],
104
- description: "Applies boolean or operator across supplied parameters to returns a single boolean result",
105
- example: {
106
- expression: 'or(status="cancelled",quantity=0)',
107
- result: "true | false"
108
- },
109
- name: "or",
110
- params: {
111
- description: "( boolean, [ boolean* ] )"
112
- },
113
- type: "boolean"
114
- },
115
- /**
116
- * upper()
117
- */
118
- {
119
- accepts: "string",
120
- description: "Convert a string value to uppercase. Argument may be a string column or other string expression.",
121
- example: {
122
- expression: 'upper("example")',
123
- result: '"EXAMPLE"'
124
- },
125
- name: "upper",
126
- params: {
127
- description: "( string )"
128
- },
129
- type: "string"
130
- },
131
- /**
132
- * right()
133
- */
134
- {
135
- accepts: ["string", "number"],
136
- description: "Returns the rightmost <number> characters from <string>. First argument may be a string literal, string column or other string expression.",
137
- example: {
138
- expression: "blah",
139
- result: "blah"
140
- },
141
- name: "right",
142
- params: {
143
- description: "( string )"
144
- },
145
- type: "string"
146
- },
147
- /**
148
- * replace()
149
- */
150
- {
151
- accepts: ["string", "string", "string"],
152
- description: "Replace characters within a string. Accepts three arguments: source text, text to replace and replacement text. Returns a copy of <source text> with any occurrences of <text to replace> replaced by <replacement text>",
153
- example: {
154
- expression: "blah",
155
- result: "blah"
156
- },
157
- name: "replace",
158
- params: {
159
- description: "( string )"
160
- },
161
- type: "string"
162
- },
163
- /**
164
- * text()
165
- */
166
- {
167
- accepts: "number",
168
- description: "Converts a number to a string.",
169
- example: {
170
- expression: "blah",
171
- result: "blah"
172
- },
173
- name: "text",
174
- params: {
175
- description: "( string )"
176
- },
177
- type: "string"
178
- },
179
- /**
180
- * starts()
181
- */
182
- {
183
- accepts: "string",
184
- description: "Tests a string value to determine whether it starts with a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> starts with <target subscring>.",
185
- example: {
186
- expression: "blah",
187
- result: "blah"
188
- },
189
- name: "starts",
190
- params: {
191
- description: "( string )"
192
- },
193
- type: "boolean"
194
- },
195
- /**
196
- * starts()
197
- */
198
- {
199
- accepts: "string",
200
- description: "Tests a string value to determine whether it ends with a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> ends with <target subscring>.",
201
- example: {
202
- expression: "blah",
203
- result: "blah"
204
- },
205
- name: "ends",
206
- params: {
207
- description: "( string )"
208
- },
209
- type: "boolean"
210
- },
211
- {
212
- accepts: "number",
213
- description: "blah",
214
- example: {
215
- expression: "blah",
216
- result: "blah"
217
- },
218
- name: "min",
219
- params: {
220
- description: "( string )"
221
- },
222
- type: "number"
223
- },
224
- {
225
- accepts: "number",
226
- description: "blah",
227
- example: {
228
- expression: "blah",
229
- result: "blah"
230
- },
231
- name: "max",
232
- params: {
233
- description: "( string )"
234
- },
235
- type: "number"
236
- },
237
- {
238
- accepts: "number",
239
- description: "blah",
240
- example: {
241
- expression: "blah",
242
- result: "blah"
243
- },
244
- name: "sum",
245
- params: {
246
- description: "( string )"
247
- },
248
- type: "number"
249
- },
250
- {
251
- accepts: "number",
252
- description: "blah",
253
- example: {
254
- expression: "blah",
255
- result: "blah"
256
- },
257
- name: "round",
258
- params: {
259
- description: "( string )"
260
- },
261
- type: "number"
262
- },
263
- {
264
- accepts: "any",
265
- description: "blah",
266
- example: {
267
- expression: "blah",
268
- result: "blah"
269
- },
270
- name: "or",
271
- params: {
272
- description: "( string )"
273
- },
274
- type: "boolean"
275
- },
276
- {
277
- accepts: "any",
278
- description: "blah",
279
- example: {
280
- expression: "blah",
281
- result: "blah"
282
- },
283
- name: "and",
284
- params: {
285
- description: "( string )"
286
- },
287
- type: "boolean"
288
- },
289
- {
290
- accepts: "any",
291
- description: "Return one of two possible result values, depending on the evaluation of a filter expression. If <filterExpression> resolves to true, result is <expression1>, otherwise <expression2>. ",
292
- example: {
293
- expression: "blah",
294
- result: "blah"
295
- },
296
- name: "if",
297
- params: {
298
- description: "( filterExpression, expression1, expression 2)"
299
- },
300
- type: "variable"
301
- }
302
- ];
303
-
304
- export { columnFunctionDescriptors };
305
- //# sourceMappingURL=column-function-descriptors.js.map