@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,6 +0,0 @@
1
- 'use strict';
2
-
3
- var columnMenuCss = ".vuuMenuItem {\n --vuu-svg-cog: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><path d=\"M12.9533 8.65331C12.98 8.43998 13 8.22665 13 7.99998C13 7.77331 12.98 7.55998 12.9533 7.34665L14.36 6.24665C14.4867 6.14665 14.52 5.96665 14.44 5.81998L13.1067 3.51331C13.0267 3.36665 12.8467 3.31331 12.7 3.36665L11.04 4.03331C10.6933 3.76665 10.32 3.54665 9.91333 3.37998L9.66 1.61331C9.64 1.45331 9.5 1.33331 9.33333 1.33331H6.66667C6.5 1.33331 6.36 1.45331 6.34 1.61331L6.08667 3.37998C5.68 3.54665 5.30667 3.77331 4.96 4.03331L3.3 3.36665C3.14667 3.30665 2.97333 3.36665 2.89333 3.51331L1.56 5.81998C1.47333 5.96665 1.51333 6.14665 1.64 6.24665L3.04667 7.34665C3.02 7.55998 3 7.77998 3 7.99998C3 8.21998 3.02 8.43998 3.04667 8.65331L1.64 9.75331C1.51333 9.85331 1.48 10.0333 1.56 10.18L2.89333 12.4866C2.97333 12.6333 3.15333 12.6866 3.3 12.6333L4.96 11.9666C5.30667 12.2333 5.68 12.4533 6.08667 12.62L6.34 14.3866C6.36 14.5466 6.5 14.6666 6.66667 14.6666H9.33333C9.5 14.6666 9.64 14.5466 9.66 14.3866L9.91333 12.62C10.32 12.4533 10.6933 12.2266 11.04 11.9666L12.7 12.6333C12.8533 12.6933 13.0267 12.6333 13.1067 12.4866L14.44 10.18C14.52 10.0333 14.4867 9.85331 14.36 9.75331L12.9533 8.65331V8.65331ZM8 10.3333C6.71333 10.3333 5.66667 9.28665 5.66667 7.99998C5.66667 6.71331 6.71333 5.66665 8 5.66665C9.28667 5.66665 10.3333 6.71331 10.3333 7.99998C10.3333 9.28665 9.28667 10.3333 8 10.3333Z\"/></svg>');\n}\n.vuuColumnMenu {\n --menu-button-size: calc(var(--salt-size-base) - var(--salt-spacing-100));\n --saltButton-padding: var(--salt-spacing-50);\n --saltButton-minWidth: var(--menu-button-size);\n --saltButton-height: var(--menu-button-size);\n --saltButton-width: var(--menu-button-size);\n\n --vuu-icon-height: var(--menu-button-size);\n --vuu-icon-left: 0px;\n --vuu-icon-top: 0px;\n --vuu-icon-width: var(--menu-button-size);\n\n border: none;\n border-radius: 4px;\n flex: 0 0 var(--menu-button-size);\n margin: var(--vuuTable-columnMenu-margin, 0);\n padding: 0;\n}\n";
4
-
5
- module.exports = columnMenuCss;
6
- //# sourceMappingURL=ColumnMenu.css.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColumnMenu.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,116 +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 TableProvider = require('../table-provider/TableProvider.js');
9
- var cx = require('clsx');
10
- var react = require('react');
11
- var ColumnMenu$1 = require('./ColumnMenu.css.js');
12
- var columnMenuUtils = require('./column-menu-utils.js');
13
- var TableSettingsPanel = require('../table-column-settings/TableSettingsPanel.js');
14
-
15
- const classBase = "vuuColumnMenu";
16
- const defaultColumnMenuPermissions = {
17
- allowSort: true,
18
- allowGroup: true,
19
- allowAggregation: true,
20
- allowHide: true,
21
- allowPin: true,
22
- allowColumnSettings: true,
23
- allowTableSettings: TableSettingsPanel.defaultTableSettingsPermissions
24
- };
25
- const ColumnMenu = ({
26
- className,
27
- column,
28
- menuActionHandler: menuActionHandlerProp,
29
- menuPermissions: {
30
- allowSort,
31
- allowGroup,
32
- allowAggregation,
33
- allowHide,
34
- allowPin,
35
- allowColumnSettings,
36
- allowTableSettings
37
- } = defaultColumnMenuPermissions
38
- }) => {
39
- const targetWindow = window.useWindow();
40
- styles.useComponentCssInjection({
41
- testId: "vuu-column-menu",
42
- css: ColumnMenu$1,
43
- window: targetWindow
44
- });
45
- const { dataSource, menuActionHandler } = TableProvider.useTableContext(true);
46
- const menuActionClickHandler = react.useCallback(
47
- (evt) => {
48
- const columnMenuActionType = columnMenuUtils.getColumnMenuActionType(evt.target);
49
- if (menuActionHandlerProp?.(columnMenuActionType, column) !== true) {
50
- return menuActionHandler(columnMenuActionType, column);
51
- }
52
- },
53
- [column, menuActionHandler, menuActionHandlerProp]
54
- );
55
- const sortMenu = columnMenuUtils.buildSortMenu(
56
- column,
57
- dataSource,
58
- menuActionClickHandler,
59
- allowSort
60
- );
61
- const groupMenu = columnMenuUtils.buildGroupMenu(
62
- column,
63
- dataSource,
64
- menuActionClickHandler,
65
- allowGroup
66
- );
67
- const aggregationMenu = columnMenuUtils.buildAggregationMenuItems(
68
- column,
69
- dataSource,
70
- menuActionClickHandler,
71
- allowAggregation
72
- );
73
- const visibilityMenuItems = columnMenuUtils.buildVisibilityMenuItems(
74
- column,
75
- menuActionClickHandler,
76
- allowHide
77
- );
78
- const pinMenu = columnMenuUtils.buildPinMenuItems(column, menuActionClickHandler, allowPin);
79
- const settingsMenuItems = columnMenuUtils.buildSettingsMenuItems(
80
- column,
81
- menuActionClickHandler,
82
- allowColumnSettings,
83
- allowTableSettings
84
- );
85
- const handleClick = react.useCallback(
86
- (evt) => {
87
- evt.stopPropagation();
88
- },
89
- []
90
- );
91
- return /* @__PURE__ */ jsxRuntime.jsxs(core.Menu, { children: [
92
- /* @__PURE__ */ jsxRuntime.jsx(core.MenuTrigger, { children: /* @__PURE__ */ jsxRuntime.jsx(
93
- vuuUiControls.IconButton,
94
- {
95
- appearance: "transparent",
96
- className: cx(classBase, className),
97
- "data-embedded": true,
98
- icon: "more-vert",
99
- sentiment: "neutral",
100
- "aria-label": "Open Column Menu",
101
- onClick: handleClick
102
- }
103
- ) }),
104
- /* @__PURE__ */ jsxRuntime.jsxs(core.MenuPanel, { children: [
105
- sortMenu,
106
- groupMenu,
107
- aggregationMenu,
108
- visibilityMenuItems,
109
- pinMenu,
110
- settingsMenuItems
111
- ] })
112
- ] });
113
- };
114
-
115
- exports.ColumnMenu = ColumnMenu;
116
- //# sourceMappingURL=ColumnMenu.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColumnMenu.js","sources":["../../src/column-menu/ColumnMenu.tsx"],"sourcesContent":["import { Menu, MenuPanel, MenuTrigger } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n ColumnDescriptor,\n ColumnMenuPermissions,\n} from \"@vuu-ui/vuu-table-types\";\nimport { IconButton } from \"@vuu-ui/vuu-ui-controls\";\nimport { useTableContext } from \"../table-provider/TableProvider\";\nimport cx from \"clsx\";\nimport { HTMLAttributes, MouseEventHandler, useCallback } from \"react\";\n\nimport columnMenuCss from \"./ColumnMenu.css\";\nimport {\n buildAggregationMenuItems,\n buildPinMenuItems,\n buildGroupMenu,\n buildSortMenu,\n buildVisibilityMenuItems,\n ColumnMenuActionType,\n getColumnMenuActionType,\n type MenuItemClickHandler,\n buildSettingsMenuItems,\n} from \"./column-menu-utils\";\nimport { MenuActionHandler } from \"@vuu-ui/vuu-context-menu\";\nimport { defaultTableSettingsPermissions } from \"../table-column-settings/TableSettingsPanel\";\n\nconst classBase = \"vuuColumnMenu\";\n\nconst defaultColumnMenuPermissions: Readonly<ColumnMenuPermissions> = {\n allowSort: true,\n allowGroup: true,\n allowAggregation: true,\n allowHide: true,\n allowPin: true,\n allowColumnSettings: true,\n allowTableSettings: defaultTableSettingsPermissions,\n};\n\nexport interface ColumnMenuProps extends HTMLAttributes<HTMLSpanElement> {\n column: ColumnDescriptor;\n menuActionHandler?: MenuActionHandler<ColumnMenuActionType, ColumnDescriptor>;\n menuPermissions?: ColumnMenuPermissions;\n}\n\nexport const ColumnMenu = ({\n className,\n column,\n menuActionHandler: menuActionHandlerProp,\n menuPermissions: {\n allowSort,\n allowGroup,\n allowAggregation,\n allowHide,\n allowPin,\n allowColumnSettings,\n allowTableSettings,\n } = defaultColumnMenuPermissions,\n}: ColumnMenuProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-column-menu\",\n css: columnMenuCss,\n window: targetWindow,\n });\n\n const { dataSource, menuActionHandler } = useTableContext(true);\n\n const menuActionClickHandler = useCallback<MenuItemClickHandler>(\n (evt) => {\n const columnMenuActionType = getColumnMenuActionType(evt.target);\n if (menuActionHandlerProp?.(columnMenuActionType, column) !== true) {\n return menuActionHandler(columnMenuActionType, column);\n }\n },\n [column, menuActionHandler, menuActionHandlerProp],\n );\n\n const sortMenu = buildSortMenu(\n column,\n dataSource,\n menuActionClickHandler,\n allowSort,\n );\n const groupMenu = buildGroupMenu(\n column,\n dataSource,\n menuActionClickHandler,\n allowGroup,\n );\n const aggregationMenu = buildAggregationMenuItems(\n column,\n dataSource,\n menuActionClickHandler,\n allowAggregation,\n );\n const visibilityMenuItems = buildVisibilityMenuItems(\n column,\n menuActionClickHandler,\n allowHide,\n );\n const pinMenu = buildPinMenuItems(column, menuActionClickHandler, allowPin);\n const settingsMenuItems = buildSettingsMenuItems(\n column,\n menuActionClickHandler,\n allowColumnSettings,\n allowTableSettings,\n );\n\n const handleClick = useCallback<MouseEventHandler<HTMLButtonElement>>(\n (evt) => {\n // Prevent sort from triggering if the click were to bubble.\n evt.stopPropagation();\n },\n [],\n );\n\n return (\n <Menu>\n <MenuTrigger>\n <IconButton\n appearance=\"transparent\"\n className={cx(classBase, className)}\n data-embedded\n icon=\"more-vert\"\n sentiment=\"neutral\"\n aria-label=\"Open Column Menu\"\n onClick={handleClick}\n />\n </MenuTrigger>\n <MenuPanel>\n {sortMenu}\n {groupMenu}\n {aggregationMenu}\n {visibilityMenuItems}\n {pinMenu}\n {settingsMenuItems}\n </MenuPanel>\n </Menu>\n );\n};\n"],"names":["defaultTableSettingsPermissions","useWindow","useComponentCssInjection","columnMenuCss","useTableContext","useCallback","getColumnMenuActionType","buildSortMenu","buildGroupMenu","buildAggregationMenuItems","buildVisibilityMenuItems","buildPinMenuItems","buildSettingsMenuItems","Menu","jsx","MenuTrigger","IconButton","MenuPanel"],"mappings":"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"}
@@ -1,489 +0,0 @@
1
- 'use strict';
2
-
3
- var jsxRuntime = require('react/jsx-runtime');
4
- var core = require('@salt-ds/core');
5
- var vuuUtils = require('@vuu-ui/vuu-utils');
6
-
7
- const isColumnMenuActionType = (value) => value !== void 0 && [
8
- "agg-count",
9
- "agg-distinct",
10
- "agg-sum",
11
- "agg-avg",
12
- "agg-high",
13
- "agg-low",
14
- "sort-asc",
15
- "sort-dsc",
16
- "sort-add-asc",
17
- "sort-add-dsc",
18
- "remove-sort",
19
- "group-column",
20
- "remove-group",
21
- "add-to-group",
22
- "remove-from-group",
23
- "pin-column-left",
24
- "pin-column-right",
25
- "pin-column-floating",
26
- "unpin-column",
27
- "hide-column",
28
- "remove-column",
29
- "column-settings",
30
- "table-settings"
31
- ].includes(value);
32
- const getColumnMenuActionType = (target) => {
33
- const { menuActionId } = target.dataset;
34
- if (isColumnMenuActionType(menuActionId)) {
35
- return menuActionId;
36
- } else {
37
- throw Error(
38
- "[vuu-table-extras] column-menu-utils target element is not a valid Column MenuItem"
39
- );
40
- }
41
- };
42
- function buildSortMenu(column, dataSource, menuActionClickHandler, isAllowed = true) {
43
- if (!isAllowed || column.sortable === false) {
44
- return null;
45
- } else {
46
- const { name, label = name } = column;
47
- const menuItems = [];
48
- const columnSortStatus = vuuUtils.getSortStatus(column.name, dataSource.sort);
49
- switch (columnSortStatus) {
50
- case "no-sort":
51
- menuItems.push(
52
- /* @__PURE__ */ jsxRuntime.jsx(
53
- core.MenuItem,
54
- {
55
- "data-menu-action-id": "sort-asc",
56
- onClick: menuActionClickHandler,
57
- children: "Sort ascending"
58
- },
59
- "sort-asc"
60
- )
61
- );
62
- menuItems.push(
63
- /* @__PURE__ */ jsxRuntime.jsx(
64
- core.MenuItem,
65
- {
66
- "data-menu-action-id": "sort-dsc",
67
- onClick: menuActionClickHandler,
68
- children: "Sort descending"
69
- },
70
- "sort-dsc"
71
- )
72
- );
73
- break;
74
- case "single-sort-asc":
75
- menuItems.push(
76
- /* @__PURE__ */ jsxRuntime.jsx(
77
- core.MenuItem,
78
- {
79
- "data-menu-action-id": "sort-dsc",
80
- onClick: menuActionClickHandler,
81
- children: "Reverse Sort (DSC)"
82
- },
83
- "sort-dsc"
84
- ),
85
- /* @__PURE__ */ jsxRuntime.jsx(
86
- core.MenuItem,
87
- {
88
- "data-menu-action-id": "remove-sort",
89
- onClick: menuActionClickHandler,
90
- children: "Remove Sort"
91
- },
92
- "remove-sort"
93
- )
94
- );
95
- break;
96
- case "single-sort-desc":
97
- menuItems.push(
98
- /* @__PURE__ */ jsxRuntime.jsx(
99
- core.MenuItem,
100
- {
101
- "data-menu-action-id": "sort-asc",
102
- onClick: menuActionClickHandler,
103
- children: "Reverse Sort (ASC)"
104
- },
105
- "sort-asc"
106
- ),
107
- /* @__PURE__ */ jsxRuntime.jsx(
108
- core.MenuItem,
109
- {
110
- "data-menu-action-id": "remove-sort",
111
- onClick: menuActionClickHandler,
112
- children: "Remove Sort"
113
- },
114
- "remove-sort"
115
- )
116
- );
117
- break;
118
- case "sort-other-column":
119
- menuItems.push(
120
- /* @__PURE__ */ jsxRuntime.jsx(
121
- core.MenuItem,
122
- {
123
- "data-menu-action-id": "sort-add-asc",
124
- onClick: menuActionClickHandler,
125
- children: "Add to sort ASC"
126
- },
127
- "sort-add-asc"
128
- )
129
- );
130
- menuItems.push(
131
- /* @__PURE__ */ jsxRuntime.jsx(
132
- core.MenuItem,
133
- {
134
- "data-menu-action-id": "sort-add-dsc",
135
- onClick: menuActionClickHandler,
136
- children: "Add to sort DSC"
137
- },
138
- "sort-add-dsc"
139
- )
140
- );
141
- menuItems.push(
142
- /* @__PURE__ */ jsxRuntime.jsx(
143
- core.MenuItem,
144
- {
145
- "data-menu-action-id": "sort-asc",
146
- onClick: menuActionClickHandler,
147
- children: "Ascending"
148
- },
149
- "sort-asc"
150
- )
151
- );
152
- menuItems.push(
153
- /* @__PURE__ */ jsxRuntime.jsx(
154
- core.MenuItem,
155
- {
156
- "data-menu-action-id": "sort-dsc",
157
- onClick: menuActionClickHandler,
158
- children: "Descending"
159
- },
160
- "sort-dsc"
161
- )
162
- );
163
- break;
164
- case "multi-sort-includes-column-asc":
165
- case "multi-sort-includes-column-desc":
166
- break;
167
- default:
168
- vuuUtils.logUnhandledMessage(
169
- columnSortStatus,
170
- "[vuu-table-extras] column-menu-utils buildSortMenu"
171
- );
172
- }
173
- return /* @__PURE__ */ jsxRuntime.jsxs(core.Menu, { children: [
174
- /* @__PURE__ */ jsxRuntime.jsx(core.MenuTrigger, { children: /* @__PURE__ */ jsxRuntime.jsx(core.MenuItem, { children: `Sort by ${label}` }) }),
175
- /* @__PURE__ */ jsxRuntime.jsx(core.MenuPanel, { children: menuItems })
176
- ] }, "sort-menu");
177
- }
178
- }
179
- function buildGroupMenu(column, dataSource, menuActionClickHandler, isAllowed = true) {
180
- if (!isAllowed || column.groupable === false) {
181
- return null;
182
- } else {
183
- const menuItems = [];
184
- const columnGroupStatus = vuuUtils.getGroupStatus(column.name, dataSource.groupBy);
185
- const { name, label = name } = column;
186
- switch (columnGroupStatus) {
187
- case "no-groupby":
188
- case "single-groupby-other-column":
189
- return /* @__PURE__ */ jsxRuntime.jsx(
190
- core.MenuItem,
191
- {
192
- "data-menu-action-id": "group-column",
193
- onClick: menuActionClickHandler,
194
- children: `Group by ${label}`
195
- },
196
- "group-column"
197
- );
198
- case "single-groupby":
199
- menuItems.push(
200
- /* @__PURE__ */ jsxRuntime.jsx(
201
- core.MenuItem,
202
- {
203
- "data-menu-action-id": "remove-group",
204
- onClick: menuActionClickHandler,
205
- children: "Remove Grouping"
206
- },
207
- "remove-group"
208
- )
209
- );
210
- break;
211
- case "multi-groupby-other-columns":
212
- menuItems.push(
213
- /* @__PURE__ */ jsxRuntime.jsx(
214
- core.MenuItem,
215
- {
216
- "data-menu-action-id": "add-to-group",
217
- onClick: menuActionClickHandler,
218
- children: "Add to grouping"
219
- },
220
- "add-to-group"
221
- )
222
- );
223
- break;
224
- case "multi-groupby-includes-column":
225
- menuItems.push(
226
- /* @__PURE__ */ jsxRuntime.jsx(
227
- core.MenuItem,
228
- {
229
- "data-menu-action-id": "remove-from-group",
230
- onClick: menuActionClickHandler,
231
- children: "Remove from grouping"
232
- },
233
- "remove-from-group"
234
- )
235
- );
236
- break;
237
- default:
238
- vuuUtils.logUnhandledMessage(
239
- columnGroupStatus,
240
- "[vuu-table-extras] column-menu-utils buildGroupMenu"
241
- );
242
- }
243
- return /* @__PURE__ */ jsxRuntime.jsxs(core.Menu, { children: [
244
- /* @__PURE__ */ jsxRuntime.jsx(core.MenuTrigger, { children: /* @__PURE__ */ jsxRuntime.jsx(core.MenuItem, { children: "Group data" }) }),
245
- /* @__PURE__ */ jsxRuntime.jsx(core.MenuPanel, { children: menuItems })
246
- ] }, "group-menu");
247
- }
248
- }
249
- const buildVisibilityMenuItems = (column, menuActionClickHandler, isAllowed = true) => {
250
- if (!isAllowed) {
251
- return null;
252
- }
253
- const menuItems = [];
254
- const { name, label = name } = column;
255
- menuItems.push(
256
- /* @__PURE__ */ jsxRuntime.jsx(
257
- core.MenuItem,
258
- {
259
- "data-menu-action-id": "hide-column",
260
- onClick: menuActionClickHandler,
261
- children: `Hide ${label} column`
262
- },
263
- "hide-column"
264
- )
265
- );
266
- menuItems.push(
267
- /* @__PURE__ */ jsxRuntime.jsx(
268
- core.MenuItem,
269
- {
270
- "data-menu-action-id": "remove-column",
271
- onClick: menuActionClickHandler,
272
- children: `Remove ${label} column`
273
- },
274
- "remove-column"
275
- )
276
- );
277
- return menuItems;
278
- };
279
- const buildPinMenuItems = (column, menuActionClickHandler, isAllowed = true) => {
280
- if (!isAllowed || column === void 0) {
281
- return [];
282
- }
283
- const { pin } = column;
284
- const menuItems = [];
285
- const pinLeft = /* @__PURE__ */ jsxRuntime.jsx(
286
- core.MenuItem,
287
- {
288
- "data-menu-action-id": "pin-column-left",
289
- onClick: menuActionClickHandler,
290
- children: "Pin left"
291
- },
292
- "pin-column-left"
293
- );
294
- const pinFloating = /* @__PURE__ */ jsxRuntime.jsx(
295
- core.MenuItem,
296
- {
297
- "data-menu-action-id": "pin-column-floating",
298
- onClick: menuActionClickHandler,
299
- children: "Pin floating"
300
- },
301
- "pin-column-floating"
302
- );
303
- const pinRight = /* @__PURE__ */ jsxRuntime.jsx(
304
- core.MenuItem,
305
- {
306
- "data-menu-action-id": "pin-column-right",
307
- onClick: menuActionClickHandler,
308
- children: "Pin right"
309
- },
310
- "pin-column-right"
311
- );
312
- if (pin === void 0) {
313
- menuItems.push(
314
- /* @__PURE__ */ jsxRuntime.jsxs(core.Menu, { children: [
315
- /* @__PURE__ */ jsxRuntime.jsx(core.MenuTrigger, { children: /* @__PURE__ */ jsxRuntime.jsx(core.MenuItem, { children: "Pin Column" }) }),
316
- /* @__PURE__ */ jsxRuntime.jsxs(core.MenuPanel, { children: [
317
- pinLeft,
318
- pinFloating,
319
- pinRight
320
- ] })
321
- ] }, "pin-menu")
322
- );
323
- } else {
324
- menuItems.push(
325
- /* @__PURE__ */ jsxRuntime.jsx(
326
- core.MenuItem,
327
- {
328
- "data-menu-action-id": "unpin-column",
329
- onClick: menuActionClickHandler,
330
- children: "Unpin"
331
- },
332
- "unpin-column"
333
- )
334
- );
335
- if (pin === "left") {
336
- menuItems.push(
337
- /* @__PURE__ */ jsxRuntime.jsxs(core.Menu, { children: [
338
- /* @__PURE__ */ jsxRuntime.jsx(core.MenuTrigger, { children: /* @__PURE__ */ jsxRuntime.jsx(core.MenuItem, { children: "Pin Column" }) }),
339
- /* @__PURE__ */ jsxRuntime.jsxs(core.MenuPanel, { children: [
340
- pinFloating,
341
- pinRight
342
- ] })
343
- ] }, "pin-menu")
344
- );
345
- } else if (pin === "floating") {
346
- menuItems.push(
347
- /* @__PURE__ */ jsxRuntime.jsxs(core.Menu, { children: [
348
- /* @__PURE__ */ jsxRuntime.jsx(core.MenuTrigger, { children: /* @__PURE__ */ jsxRuntime.jsx(core.MenuItem, { children: "Pin Column" }) }),
349
- /* @__PURE__ */ jsxRuntime.jsxs(core.MenuPanel, { children: [
350
- pinLeft,
351
- pinRight
352
- ] })
353
- ] }, "pin-menu")
354
- );
355
- } else {
356
- menuItems.push(
357
- /* @__PURE__ */ jsxRuntime.jsxs(core.Menu, { children: [
358
- /* @__PURE__ */ jsxRuntime.jsx(core.MenuTrigger, { children: /* @__PURE__ */ jsxRuntime.jsx(core.MenuItem, { children: "Pin Column" }) }),
359
- /* @__PURE__ */ jsxRuntime.jsxs(core.MenuPanel, { children: [
360
- pinFloating,
361
- pinRight
362
- ] })
363
- ] }, "pin-menu")
364
- );
365
- }
366
- }
367
- return menuItems;
368
- };
369
- const buildSettingsMenuItems = (_, menuActionClickHandler, allowColumnSettings = true, allowTableSettings = true) => {
370
- if (!allowColumnSettings && !allowTableSettings) {
371
- return null;
372
- }
373
- const menuItems = [];
374
- if (allowColumnSettings) {
375
- menuItems.push(
376
- /* @__PURE__ */ jsxRuntime.jsx(
377
- core.MenuItem,
378
- {
379
- "data-icon": "settings",
380
- "data-menu-action-id": "column-settings",
381
- onClick: menuActionClickHandler,
382
- children: "Column settings ..."
383
- },
384
- "column-settings"
385
- )
386
- );
387
- }
388
- if (allowTableSettings) {
389
- menuItems.push(
390
- /* @__PURE__ */ jsxRuntime.jsx(
391
- core.MenuItem,
392
- {
393
- "data-icon": "settings",
394
- "data-menu-action-id": "table-settings",
395
- onClick: menuActionClickHandler,
396
- children: "Table settings ..."
397
- },
398
- "table-settings"
399
- )
400
- );
401
- }
402
- return menuItems;
403
- };
404
- function buildAggregationMenuItems(column, dataSource, menuActionClickHandler, isAllowed = true) {
405
- if (!isAllowed) {
406
- return null;
407
- }
408
- const { name, label = name } = column;
409
- if (dataSource.groupBy?.length === 0) {
410
- return [];
411
- } else {
412
- const menuItems = [
413
- /* @__PURE__ */ jsxRuntime.jsx(
414
- core.MenuItem,
415
- {
416
- "data-menu-action-id": "agg-count",
417
- onClick: menuActionClickHandler,
418
- children: "Count"
419
- },
420
- "agg-count"
421
- ),
422
- /* @__PURE__ */ jsxRuntime.jsx(
423
- core.MenuItem,
424
- {
425
- "data-menu-action-id": "agg-distinct",
426
- onClick: menuActionClickHandler,
427
- children: "Distinct"
428
- },
429
- "agg-distinct"
430
- )
431
- ];
432
- if (vuuUtils.isNumericColumn(column)) {
433
- menuItems.push(
434
- /* @__PURE__ */ jsxRuntime.jsx(
435
- core.MenuItem,
436
- {
437
- "data-menu-action-id": "agg-sum",
438
- onClick: menuActionClickHandler,
439
- children: "Sum"
440
- },
441
- "agg-sum"
442
- ),
443
- /* @__PURE__ */ jsxRuntime.jsx(
444
- core.MenuItem,
445
- {
446
- "data-menu-action-id": "agg-avg",
447
- onClick: menuActionClickHandler,
448
- children: "Average"
449
- },
450
- "agg-avg"
451
- ),
452
- /* @__PURE__ */ jsxRuntime.jsx(
453
- core.MenuItem,
454
- {
455
- "data-menu-action-id": "agg-high",
456
- onClick: menuActionClickHandler,
457
- children: "High"
458
- },
459
- "agg-high"
460
- ),
461
- /* @__PURE__ */ jsxRuntime.jsx(
462
- core.MenuItem,
463
- {
464
- "data-menu-action-id": "agg-low",
465
- onClick: menuActionClickHandler,
466
- children: "Low"
467
- },
468
- "agg-low"
469
- )
470
- );
471
- }
472
- return [
473
- /* @__PURE__ */ jsxRuntime.jsxs(core.Menu, { children: [
474
- /* @__PURE__ */ jsxRuntime.jsx(core.MenuTrigger, { children: /* @__PURE__ */ jsxRuntime.jsx(core.MenuItem, { children: `Aggregate ${label}` }) }),
475
- /* @__PURE__ */ jsxRuntime.jsx(core.MenuPanel, { children: menuItems })
476
- ] }, "aggregate-menu")
477
- ];
478
- }
479
- }
480
-
481
- exports.buildAggregationMenuItems = buildAggregationMenuItems;
482
- exports.buildGroupMenu = buildGroupMenu;
483
- exports.buildPinMenuItems = buildPinMenuItems;
484
- exports.buildSettingsMenuItems = buildSettingsMenuItems;
485
- exports.buildSortMenu = buildSortMenu;
486
- exports.buildVisibilityMenuItems = buildVisibilityMenuItems;
487
- exports.getColumnMenuActionType = getColumnMenuActionType;
488
- exports.isColumnMenuActionType = isColumnMenuActionType;
489
- //# sourceMappingURL=column-menu-utils.js.map