@vuu-ui/vuu-table-extras 0.13.7 → 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 +11 -11
  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 -172
  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 -170
  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 +0,0 @@
1
- {"version":3,"file":"TableSettingsPanel.js","sources":["../../src/table-column-settings/TableSettingsPanel.tsx"],"sourcesContent":["import {\n Button,\n FormField,\n FormFieldLabel,\n ToggleButton,\n ToggleButtonGroup,\n} from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n TableSettingsPermissions,\n TableSettingsProps,\n} from \"@vuu-ui/vuu-table-types\";\nimport { ColumnList } from \"../column-list\";\nimport { useTableSettings } from \"./useTableSettings\";\nimport { Icon } from \"@vuu-ui/vuu-ui-controls\";\nimport { VuuInput } from \"@vuu-ui/vuu-ui-controls\";\n\nimport tableSettingsPanelCss from \"./TableSettingsPanel.css\";\n\nconst classBase = \"vuuTableSettingsPanel\";\n\nexport const defaultTableSettingsPermissions: Readonly<TableSettingsPermissions> =\n {\n allowColumnLabelCase: true,\n allowColumnDefaultWidth: true,\n allowGridSeparators: true,\n allowReorderColumns: true,\n allowRemoveColumns: true,\n allowHideColumns: true,\n allowCalculatedColumns: true,\n };\n\n/**\n The TableSettingsPanel assumes 'ownership' of the tableSettings.\n It updates the settings in state locally and notifies caller of\n every change via onChange callback\n */\nexport const TableSettingsPanel = ({\n availableColumns,\n onAddCalculatedColumn,\n onConfigChange,\n onDataSourceConfigChange,\n onNavigateToColumn,\n tableConfig: tableConfigProp,\n permissions = defaultTableSettingsPermissions,\n}: TableSettingsProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-table-settings-panel\",\n css: tableSettingsPanelCss,\n window: targetWindow,\n });\n\n const {\n columnItems,\n columnLabelsValue,\n onChangeColumnLabels,\n onChangeTableAttribute,\n onReorderColumnItems,\n onColumnChange,\n onCommitColumnWidth,\n tableConfig,\n } = useTableSettings({\n availableColumns,\n onConfigChange,\n onDataSourceConfigChange,\n tableConfig: tableConfigProp,\n });\n\n const {\n allowColumnLabelCase = true,\n allowColumnDefaultWidth = true,\n allowGridSeparators = true,\n allowCalculatedColumns,\n ...columnListPermissions\n } = permissions;\n\n return (\n <div className={classBase}>\n {allowColumnLabelCase ||\n allowColumnDefaultWidth ||\n allowGridSeparators ? (\n <div className={`${classBase}-header`}>\n <span>Column Settings</span>\n </div>\n ) : null}\n\n {allowColumnDefaultWidth ? (\n <FormField>\n <FormFieldLabel>Column Width</FormFieldLabel>\n <VuuInput\n className=\"vuuInput\"\n data-embedded\n onCommit={onCommitColumnWidth}\n />\n </FormField>\n ) : null}\n\n {allowColumnLabelCase ? (\n <FormField>\n <FormFieldLabel>Column Labels</FormFieldLabel>\n <ToggleButtonGroup\n className=\"vuuToggleButtonGroup\"\n onChange={onChangeColumnLabels}\n value={columnLabelsValue}\n >\n <ToggleButton className=\"vuuIconToggleButton\" value={0}>\n <Icon name=\"text-strikethrough\" size={48} />\n </ToggleButton>\n <ToggleButton className=\"vuuIconToggleButton\" value={1}>\n <Icon name=\"text-Tt\" size={48} />\n </ToggleButton>\n <ToggleButton className=\"vuuIconToggleButton\" value={2}>\n <Icon name=\"text-T\" size={48} />\n </ToggleButton>\n </ToggleButtonGroup>\n </FormField>\n ) : null}\n\n {allowGridSeparators ? (\n <FormField>\n <FormFieldLabel>Grid separators</FormFieldLabel>\n <div className=\"saltToggleButtonGroup vuuStateButtonGroup saltToggleButtonGroup-horizontal\">\n <ToggleButton\n selected={tableConfig.zebraStripes ?? false}\n onChange={onChangeTableAttribute}\n value=\"zebraStripes\"\n >\n <Icon name=\"row-striping\" size={16} />\n </ToggleButton>\n <ToggleButton\n selected={tableConfig.rowSeparators ?? false}\n onChange={onChangeTableAttribute}\n value=\"rowSeparators\"\n >\n <Icon name=\"row-lines\" size={16} />\n </ToggleButton>\n <ToggleButton\n selected={tableConfig.columnSeparators ?? false}\n onChange={onChangeTableAttribute}\n value=\"columnSeparators\"\n >\n <Icon name=\"col-lines\" size={16} />\n </ToggleButton>\n </div>\n </FormField>\n ) : null}\n\n <ColumnList\n columnItems={columnItems}\n permissions={columnListPermissions}\n onChange={onColumnChange}\n onNavigateToColumn={onNavigateToColumn}\n onReorderColumnItems={onReorderColumnItems}\n />\n\n {allowCalculatedColumns ? (\n <div className={`${classBase}-calculatedButtonbar`}>\n <Button data-icon=\"plus\" onClick={onAddCalculatedColumn} />\n <span className={`${classBase}-calculatedLabel`}>\n Add calculated column\n </span>\n </div>\n ) : null}\n </div>\n );\n};\n"],"names":[],"mappings":"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"}
@@ -1,222 +0,0 @@
1
- import { queryClosest, getFieldName, isValidPinLocation, isValidColumnAlignment, setCalculatedColumnName, updateColumnFormatting, updateColumnType, updateColumnRenderProps, getRegisteredCellRenderers } from '@vuu-ui/vuu-utils';
2
- import { useState, useRef, useCallback, useEffect, useMemo } from 'react';
3
-
4
- const integerCellRenderers = [
5
- {
6
- description: "Default formatter for columns with data type integer",
7
- label: "Default Renderer (int, long)",
8
- name: "default-int"
9
- }
10
- ];
11
- const doubleCellRenderers = [
12
- {
13
- description: "Default formatter for columns with data type double",
14
- label: "Default Renderer (double)",
15
- name: "default-double"
16
- }
17
- ];
18
- const stringCellRenderers = [
19
- {
20
- description: "Default formatter for columns with data type string",
21
- label: "Default Renderer (string)",
22
- name: "default-string"
23
- }
24
- ];
25
- const booleanCellRenderers = [];
26
- const getAvailableCellRenderers = (column) => {
27
- switch (column.serverDataType) {
28
- case "char":
29
- case "string":
30
- return stringCellRenderers.concat(getRegisteredCellRenderers("string"));
31
- case "int":
32
- case "long":
33
- return integerCellRenderers.concat(getRegisteredCellRenderers("int"));
34
- case "double":
35
- return doubleCellRenderers.concat(getRegisteredCellRenderers("double"));
36
- case "boolean":
37
- return booleanCellRenderers.concat(getRegisteredCellRenderers("boolean"));
38
- default:
39
- return stringCellRenderers;
40
- }
41
- };
42
- const getColumn = (columns, column) => {
43
- if (column.name === "::") {
44
- return column;
45
- } else {
46
- const col = columns.find((col2) => col2.name === column.name);
47
- if (col) {
48
- return col;
49
- }
50
- throw Error(`columns does not contain column ${name}`);
51
- }
52
- };
53
- const replaceColumn = (tableConfig, column) => ({
54
- ...tableConfig,
55
- columns: tableConfig.columns.map(
56
- (col) => col.name === column.name ? column : col
57
- )
58
- });
59
- const useColumnSettings = ({
60
- column: columnProp,
61
- onCancelCreateColumn,
62
- onConfigChange,
63
- onCreateCalculatedColumn,
64
- tableConfig
65
- }) => {
66
- const [column, setColumn] = useState(
67
- getColumn(tableConfig.columns, columnProp)
68
- );
69
- const columnRef = useRef(column);
70
- const [inEditMode, setEditMode] = useState(column.name === "::");
71
- const handleEditCalculatedcolumn = useCallback(() => {
72
- columnRef.current = column;
73
- setEditMode(true);
74
- }, [column]);
75
- useEffect(() => {
76
- setColumn(columnProp);
77
- setEditMode(columnProp.name === "::");
78
- }, [columnProp]);
79
- const availableRenderers = useMemo(() => {
80
- return getAvailableCellRenderers(column);
81
- }, [column]);
82
- const handleInputCommit = useCallback(() => {
83
- onConfigChange(replaceColumn(tableConfig, column));
84
- }, [column, onConfigChange, tableConfig]);
85
- const handleChangeToggleButton = useCallback(
86
- (evt) => {
87
- const button = queryClosest(evt.target, "button");
88
- if (button) {
89
- const fieldName = getFieldName(button);
90
- const { value } = button;
91
- switch (fieldName) {
92
- case "column-alignment":
93
- if (isValidColumnAlignment(value)) {
94
- const newColumn = {
95
- ...column,
96
- align: value || void 0
97
- };
98
- setColumn(newColumn);
99
- onConfigChange(replaceColumn(tableConfig, newColumn));
100
- }
101
- break;
102
- case "column-pin":
103
- if (isValidPinLocation(value)) {
104
- const newColumn = {
105
- ...column,
106
- pin: value || void 0
107
- };
108
- setColumn(newColumn);
109
- onConfigChange(replaceColumn(tableConfig, newColumn));
110
- break;
111
- }
112
- }
113
- }
114
- },
115
- [column, onConfigChange, tableConfig]
116
- );
117
- const handleChange = useCallback((evt) => {
118
- const input = evt.target;
119
- const fieldName = getFieldName(input);
120
- const { value } = input;
121
- switch (fieldName) {
122
- case "column-label":
123
- setColumn((state) => ({ ...state, label: value }));
124
- break;
125
- case "column-name":
126
- setColumn((state) => setCalculatedColumnName(state, value));
127
- break;
128
- case "column-width":
129
- setColumn((state) => ({ ...state, width: parseInt(value) }));
130
- break;
131
- }
132
- }, []);
133
- const handleChangeCalculatedColumnName = useCallback((name2) => {
134
- setColumn((state) => ({ ...state, name: name2 }));
135
- }, []);
136
- const handleChangeFormatting = useCallback(
137
- (formatting) => {
138
- const newColumn = updateColumnFormatting(column, formatting);
139
- setColumn(newColumn);
140
- onConfigChange(replaceColumn(tableConfig, newColumn));
141
- },
142
- [column, onConfigChange, tableConfig]
143
- );
144
- const handleChangeType = useCallback(
145
- (type) => {
146
- const updatedColumn = updateColumnType(column, type);
147
- setColumn(updatedColumn);
148
- onConfigChange(replaceColumn(tableConfig, updatedColumn));
149
- },
150
- [column, onConfigChange, tableConfig]
151
- );
152
- const handleChangeServerDataType = useCallback(
153
- (serverDataType) => {
154
- setColumn((col) => ({ ...col, serverDataType }));
155
- },
156
- []
157
- );
158
- const handleChangeRendering = useCallback(
159
- (renderProps) => {
160
- if (renderProps) {
161
- const newColumn = updateColumnRenderProps(
162
- column,
163
- renderProps
164
- );
165
- setColumn(newColumn);
166
- onConfigChange(replaceColumn(tableConfig, newColumn));
167
- }
168
- },
169
- [column, onConfigChange, tableConfig]
170
- );
171
- const navigateColumn = useCallback(
172
- ({ moveBy }) => {
173
- const { columns } = tableConfig;
174
- const index = columns.indexOf(column) + moveBy;
175
- const newColumn = columns[index];
176
- if (newColumn) {
177
- setColumn(newColumn);
178
- }
179
- },
180
- [column, tableConfig]
181
- );
182
- const navigateNextColumn = useCallback(() => {
183
- navigateColumn({ moveBy: 1 });
184
- }, [navigateColumn]);
185
- const navigatePrevColumn = useCallback(() => {
186
- navigateColumn({ moveBy: -1 });
187
- }, [navigateColumn]);
188
- const handleSaveCalculatedColumn = useCallback(() => {
189
- onCreateCalculatedColumn(column);
190
- }, [column, onCreateCalculatedColumn]);
191
- const handleCancelEdit = useCallback(() => {
192
- if (columnProp.name === "::") {
193
- onCancelCreateColumn();
194
- } else {
195
- if (columnRef.current !== void 0 && columnRef.current !== column) {
196
- setColumn(columnRef.current);
197
- }
198
- setEditMode(false);
199
- }
200
- }, [column, columnProp.name, onCancelCreateColumn]);
201
- return {
202
- availableRenderers,
203
- editCalculatedColumn: inEditMode,
204
- column,
205
- navigateNextColumn,
206
- navigatePrevColumn,
207
- onCancel: handleCancelEdit,
208
- onChange: handleChange,
209
- onChangeCalculatedColumnName: handleChangeCalculatedColumnName,
210
- onChangeFormatting: handleChangeFormatting,
211
- onChangeRendering: handleChangeRendering,
212
- onChangeServerDataType: handleChangeServerDataType,
213
- onChangeToggleButton: handleChangeToggleButton,
214
- onChangeType: handleChangeType,
215
- onEditCalculatedColumn: handleEditCalculatedcolumn,
216
- onInputCommit: handleInputCommit,
217
- onSave: handleSaveCalculatedColumn
218
- };
219
- };
220
-
221
- export { useColumnSettings };
222
- //# sourceMappingURL=useColumnSettings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useColumnSettings.js","sources":["../../src/table-column-settings/useColumnSettings.ts"],"sourcesContent":["import {\n ColumnDescriptor,\n TableConfig,\n ColumnTypeFormatting,\n ColumnSettingsProps,\n} from \"@vuu-ui/vuu-table-types\";\n\nimport {\n CellRendererDescriptor,\n ColumnRenderPropsChangeHandler,\n getFieldName,\n getRegisteredCellRenderers,\n isValidColumnAlignment,\n isValidPinLocation,\n setCalculatedColumnName,\n updateColumnRenderProps,\n updateColumnFormatting,\n updateColumnType,\n queryClosest,\n} from \"@vuu-ui/vuu-utils\";\nimport { VuuColumnDataType } from \"@vuu-ui/vuu-protocol-types\";\nimport {\n FormEventHandler,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { DataValueTypeSimple } from \"@vuu-ui/vuu-data-types\";\n\nconst integerCellRenderers: CellRendererDescriptor[] = [\n {\n description: \"Default formatter for columns with data type integer\",\n label: \"Default Renderer (int, long)\",\n name: \"default-int\",\n },\n];\nconst doubleCellRenderers: CellRendererDescriptor[] = [\n {\n description: \"Default formatter for columns with data type double\",\n label: \"Default Renderer (double)\",\n name: \"default-double\",\n },\n];\n\nconst stringCellRenderers: CellRendererDescriptor[] = [\n {\n description: \"Default formatter for columns with data type string\",\n label: \"Default Renderer (string)\",\n name: \"default-string\",\n },\n];\n\nconst booleanCellRenderers: CellRendererDescriptor[] = [];\n\nconst getAvailableCellRenderers = (\n column: ColumnDescriptor,\n): CellRendererDescriptor[] => {\n switch (column.serverDataType) {\n case \"char\":\n case \"string\":\n return stringCellRenderers.concat(getRegisteredCellRenderers(\"string\"));\n case \"int\":\n case \"long\":\n return integerCellRenderers.concat(getRegisteredCellRenderers(\"int\"));\n case \"double\":\n return doubleCellRenderers.concat(getRegisteredCellRenderers(\"double\"));\n case \"boolean\":\n return booleanCellRenderers.concat(getRegisteredCellRenderers(\"boolean\"));\n default:\n return stringCellRenderers;\n }\n};\n\nconst getColumn = (columns: ColumnDescriptor[], column: ColumnDescriptor) => {\n if (column.name === \"::\") {\n // this is a new calculated column\n return column;\n } else {\n const col = columns.find((col) => col.name === column.name);\n if (col) {\n return col;\n }\n throw Error(`columns does not contain column ${name}`);\n }\n};\n\nconst replaceColumn = (\n tableConfig: TableConfig,\n column: ColumnDescriptor,\n): TableConfig => ({\n ...tableConfig,\n columns: tableConfig.columns.map((col) =>\n col.name === column.name ? column : col,\n ),\n});\n\nexport const useColumnSettings = ({\n column: columnProp,\n onCancelCreateColumn,\n onConfigChange,\n onCreateCalculatedColumn,\n tableConfig,\n}: Omit<ColumnSettingsProps, \"vuuTable\">) => {\n const [column, setColumn] = useState<ColumnDescriptor>(\n getColumn(tableConfig.columns, columnProp),\n );\n const columnRef = useRef<ColumnDescriptor>(column);\n const [inEditMode, setEditMode] = useState(column.name === \"::\");\n\n const handleEditCalculatedcolumn = useCallback(() => {\n columnRef.current = column;\n setEditMode(true);\n }, [column]);\n\n useEffect(() => {\n setColumn(columnProp);\n setEditMode(columnProp.name === \"::\");\n }, [columnProp]);\n\n const availableRenderers = useMemo(() => {\n return getAvailableCellRenderers(column);\n }, [column]);\n\n const handleInputCommit = useCallback(() => {\n onConfigChange(replaceColumn(tableConfig, column));\n }, [column, onConfigChange, tableConfig]);\n\n const handleChangeToggleButton = useCallback<FormEventHandler>(\n (evt) => {\n const button = queryClosest<HTMLButtonElement>(evt.target, \"button\");\n if (button) {\n const fieldName = getFieldName(button);\n const { value } = button;\n switch (fieldName) {\n case \"column-alignment\":\n if (isValidColumnAlignment(value)) {\n const newColumn: ColumnDescriptor = {\n ...column,\n align: value || undefined,\n };\n setColumn(newColumn);\n onConfigChange(replaceColumn(tableConfig, newColumn));\n }\n break;\n case \"column-pin\":\n if (isValidPinLocation(value)) {\n const newColumn: ColumnDescriptor = {\n ...column,\n pin: value || undefined,\n };\n setColumn(newColumn);\n onConfigChange(replaceColumn(tableConfig, newColumn));\n\n break;\n }\n }\n }\n },\n [column, onConfigChange, tableConfig],\n );\n\n const handleChange = useCallback<FormEventHandler>((evt) => {\n const input = evt.target as HTMLInputElement;\n const fieldName = getFieldName(input);\n const { value } = input;\n switch (fieldName) {\n case \"column-label\":\n setColumn((state) => ({ ...state, label: value }));\n break;\n case \"column-name\":\n setColumn((state) => setCalculatedColumnName(state, value));\n break;\n case \"column-width\":\n setColumn((state) => ({ ...state, width: parseInt(value) }));\n break;\n }\n }, []);\n\n const handleChangeCalculatedColumnName = useCallback((name: string) => {\n setColumn((state) => ({ ...state, name }));\n }, []);\n\n const handleChangeFormatting = useCallback(\n (formatting: ColumnTypeFormatting) => {\n const newColumn = updateColumnFormatting(column, formatting);\n setColumn(newColumn);\n onConfigChange(replaceColumn(tableConfig, newColumn));\n },\n [column, onConfigChange, tableConfig],\n );\n\n const handleChangeType = useCallback(\n (type: DataValueTypeSimple) => {\n const updatedColumn = updateColumnType(column, type);\n setColumn(updatedColumn);\n onConfigChange(replaceColumn(tableConfig, updatedColumn));\n },\n [column, onConfigChange, tableConfig],\n );\n\n // Changing the server data type applies only to calculated columns\n const handleChangeServerDataType = useCallback(\n (serverDataType: VuuColumnDataType) => {\n setColumn((col) => ({ ...col, serverDataType }));\n },\n [],\n );\n\n const handleChangeRendering = useCallback<ColumnRenderPropsChangeHandler>(\n (renderProps) => {\n if (renderProps) {\n const newColumn: ColumnDescriptor = updateColumnRenderProps(\n column,\n renderProps,\n );\n setColumn(newColumn);\n onConfigChange(replaceColumn(tableConfig, newColumn));\n }\n },\n [column, onConfigChange, tableConfig],\n );\n\n const navigateColumn = useCallback(\n ({ moveBy }: { moveBy: number }) => {\n const { columns } = tableConfig;\n const index = columns.indexOf(column) + moveBy;\n const newColumn = columns[index];\n if (newColumn) {\n setColumn(newColumn);\n }\n },\n [column, tableConfig],\n );\n const navigateNextColumn = useCallback(() => {\n navigateColumn({ moveBy: 1 });\n }, [navigateColumn]);\n\n const navigatePrevColumn = useCallback(() => {\n navigateColumn({ moveBy: -1 });\n }, [navigateColumn]);\n\n const handleSaveCalculatedColumn = useCallback(() => {\n // TODO validate expression, unique name\n onCreateCalculatedColumn(column);\n }, [column, onCreateCalculatedColumn]);\n\n const handleCancelEdit = useCallback(() => {\n if (columnProp.name === \"::\") {\n onCancelCreateColumn();\n } else {\n if (columnRef.current !== undefined && columnRef.current !== column) {\n setColumn(columnRef.current);\n }\n setEditMode(false);\n }\n }, [column, columnProp.name, onCancelCreateColumn]);\n\n return {\n availableRenderers,\n editCalculatedColumn: inEditMode,\n column,\n navigateNextColumn,\n navigatePrevColumn,\n onCancel: handleCancelEdit,\n onChange: handleChange,\n onChangeCalculatedColumnName: handleChangeCalculatedColumnName,\n onChangeFormatting: handleChangeFormatting,\n onChangeRendering: handleChangeRendering,\n onChangeServerDataType: handleChangeServerDataType,\n onChangeToggleButton: handleChangeToggleButton,\n onChangeType: handleChangeType,\n onEditCalculatedColumn: handleEditCalculatedcolumn,\n onInputCommit: handleInputCommit,\n onSave: handleSaveCalculatedColumn,\n };\n};\n"],"names":["col","name"],"mappings":"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"}
@@ -1,122 +0,0 @@
1
- import { getCalculatedColumnDetails } from '@vuu-ui/vuu-utils';
2
- import { useRef, useState, useCallback } from 'react';
3
- import { useContextPanel } from '@vuu-ui/vuu-ui-controls';
4
- import { defaultTableSettingsPermissions } from './TableSettingsPanel.js';
5
-
6
- const columnSettingsFromColumnMenuPermissions = (settings) => typeof settings === void 0 ? true : typeof settings === "boolean" ? settings : settings?.allowColumnSettings ?? true;
7
- const tableSettingsFromColumnMenuPermissions = (settings) => typeof settings === void 0 ? defaultTableSettingsPermissions : typeof settings === "boolean" ? settings : settings?.allowTableSettings ?? defaultTableSettingsPermissions;
8
- const useTableAndColumnSettings = ({
9
- availableColumns: availableColumnsProps,
10
- settingsPermissions,
11
- onAvailableColumnsChange,
12
- onConfigChange,
13
- onCreateCalculatedColumn,
14
- onDataSourceConfigChange,
15
- tableConfig
16
- }) => {
17
- const showTableSettingsRef = useRef(void 0);
18
- const [availableColumns, setAvailableColumns] = useState(
19
- availableColumnsProps
20
- );
21
- const showContextPanel = useContextPanel();
22
- const handleCancelCreateColumn = useCallback(() => {
23
- requestAnimationFrame(() => {
24
- showTableSettingsRef.current?.();
25
- });
26
- }, []);
27
- const handleCreateCalculatedColumn = useCallback(
28
- (column) => {
29
- const { serverDataType } = getCalculatedColumnDetails(column);
30
- if (serverDataType) {
31
- const newAvailableColumns = availableColumns.concat({
32
- name: column.name,
33
- serverDataType
34
- });
35
- setAvailableColumns(newAvailableColumns);
36
- onAvailableColumnsChange?.(newAvailableColumns);
37
- requestAnimationFrame(() => {
38
- showTableSettingsRef.current?.();
39
- });
40
- onCreateCalculatedColumn(column);
41
- } else {
42
- throw Error(
43
- "Cannot create calculatec columns without valis serverDataType"
44
- );
45
- }
46
- },
47
- [availableColumns, onAvailableColumnsChange, onCreateCalculatedColumn]
48
- );
49
- const showColumnSettingsPanel = useCallback(
50
- (action) => {
51
- showContextPanel("ColumnSettings", "Column Settings", {
52
- column: action.column,
53
- onCancelCreateColumn: handleCancelCreateColumn,
54
- onConfigChange,
55
- onCreateCalculatedColumn: handleCreateCalculatedColumn,
56
- tableConfig,
57
- vuuTable: action.vuuTable
58
- });
59
- },
60
- [
61
- handleCancelCreateColumn,
62
- handleCreateCalculatedColumn,
63
- onConfigChange,
64
- showContextPanel,
65
- tableConfig
66
- ]
67
- );
68
- const handleAddCalculatedColumn = useCallback(() => {
69
- showColumnSettingsPanel({
70
- column: {
71
- name: "::",
72
- serverDataType: "string"
73
- },
74
- type: "column-settings",
75
- vuuTable: { module: "SIMUL", table: "instruments" }
76
- });
77
- }, [showColumnSettingsPanel]);
78
- const handleNavigateToColumn = useCallback(
79
- (columnName) => {
80
- const column = tableConfig.columns.find((c) => c.name === columnName);
81
- if (column) {
82
- showColumnSettingsPanel({
83
- type: "column-settings",
84
- column,
85
- //TODO where do we get this from
86
- vuuTable: { module: "SIMUL", table: "instruments" }
87
- });
88
- }
89
- },
90
- [showColumnSettingsPanel, tableConfig.columns]
91
- );
92
- showTableSettingsRef.current = useCallback(() => {
93
- showContextPanel("TableSettings", "DataGrid Settings", {
94
- availableColumns: availableColumns ?? tableConfig.columns.map(({ name, serverDataType }) => ({
95
- name,
96
- serverDataType
97
- })),
98
- onAddCalculatedColumn: handleAddCalculatedColumn,
99
- onConfigChange,
100
- onDataSourceConfigChange,
101
- onNavigateToColumn: handleNavigateToColumn,
102
- permissions: settingsPermissions?.allowTableSettings,
103
- tableConfig
104
- });
105
- }, [
106
- availableColumns,
107
- handleAddCalculatedColumn,
108
- handleNavigateToColumn,
109
- onConfigChange,
110
- onDataSourceConfigChange,
111
- settingsPermissions,
112
- showContextPanel,
113
- tableConfig
114
- ]);
115
- return {
116
- showColumnSettingsPanel,
117
- showTableSettingsPanel: showTableSettingsRef.current
118
- };
119
- };
120
-
121
- export { columnSettingsFromColumnMenuPermissions, tableSettingsFromColumnMenuPermissions, useTableAndColumnSettings };
122
- //# sourceMappingURL=useTableAndColumnSettings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTableAndColumnSettings.js","sources":["../../src/table-column-settings/useTableAndColumnSettings.ts"],"sourcesContent":["import { DataSourceConfig, SchemaColumn } from \"@vuu-ui/vuu-data-types\";\nimport {\n ColumnDescriptor,\n ColumnMenuPermissions,\n ColumnSettingsProps,\n SettingsPermissions,\n TableConfig,\n TableSettingsProps,\n} from \"@vuu-ui/vuu-table-types\";\nimport { getCalculatedColumnDetails } from \"@vuu-ui/vuu-utils\";\nimport { useCallback, useRef, useState } from \"react\";\nimport { DisplayColumnSettingsAction } from \"@vuu-ui/vuu-table-extras/src/column-menu/column-action-types\";\nimport { useContextPanel } from \"@vuu-ui/vuu-ui-controls\";\nimport { defaultTableSettingsPermissions } from \"./TableSettingsPanel\";\n\nexport interface TableAndColumnSettingsHookProps {\n availableColumns: SchemaColumn[];\n onAvailableColumnsChange?: (columns: SchemaColumn[]) => void;\n onConfigChange: (config: TableConfig) => void;\n onCreateCalculatedColumn: (column: ColumnDescriptor) => void;\n onDataSourceConfigChange: (dataSourceConfig: DataSourceConfig) => void;\n settingsPermissions?: SettingsPermissions;\n tableConfig: TableConfig;\n}\n\nexport const columnSettingsFromColumnMenuPermissions = (\n settings?: boolean | ColumnMenuPermissions,\n) =>\n typeof settings === undefined\n ? true\n : typeof settings === \"boolean\"\n ? settings\n : (settings?.allowColumnSettings ?? true);\nexport const tableSettingsFromColumnMenuPermissions = (\n settings?: boolean | ColumnMenuPermissions,\n) =>\n typeof settings === undefined\n ? defaultTableSettingsPermissions\n : typeof settings === \"boolean\"\n ? settings\n : (settings?.allowTableSettings ?? defaultTableSettingsPermissions);\n\nexport const useTableAndColumnSettings = ({\n availableColumns: availableColumnsProps,\n settingsPermissions,\n onAvailableColumnsChange,\n onConfigChange,\n onCreateCalculatedColumn,\n onDataSourceConfigChange,\n tableConfig,\n}: TableAndColumnSettingsHookProps) => {\n const showTableSettingsRef = useRef<() => void>(undefined);\n\n const [availableColumns, setAvailableColumns] = useState<SchemaColumn[]>(\n availableColumnsProps,\n );\n\n const showContextPanel = useContextPanel();\n\n const handleCancelCreateColumn = useCallback(() => {\n requestAnimationFrame(() => {\n showTableSettingsRef.current?.();\n });\n }, []);\n\n const handleCreateCalculatedColumn = useCallback(\n (column: ColumnDescriptor) => {\n const { serverDataType } = getCalculatedColumnDetails(column);\n if (serverDataType) {\n const newAvailableColumns = availableColumns.concat({\n name: column.name,\n serverDataType,\n });\n setAvailableColumns(newAvailableColumns);\n onAvailableColumnsChange?.(newAvailableColumns);\n requestAnimationFrame(() => {\n showTableSettingsRef.current?.();\n });\n onCreateCalculatedColumn(column);\n } else {\n throw Error(\n \"Cannot create calculatec columns without valis serverDataType\",\n );\n }\n },\n [availableColumns, onAvailableColumnsChange, onCreateCalculatedColumn],\n );\n\n const showColumnSettingsPanel = useCallback(\n (action: DisplayColumnSettingsAction) => {\n showContextPanel(\"ColumnSettings\", \"Column Settings\", {\n column: action.column,\n onCancelCreateColumn: handleCancelCreateColumn,\n onConfigChange,\n onCreateCalculatedColumn: handleCreateCalculatedColumn,\n tableConfig,\n vuuTable: action.vuuTable,\n } as ColumnSettingsProps);\n },\n [\n handleCancelCreateColumn,\n handleCreateCalculatedColumn,\n onConfigChange,\n showContextPanel,\n tableConfig,\n ],\n );\n\n const handleAddCalculatedColumn = useCallback(() => {\n showColumnSettingsPanel({\n column: {\n name: \"::\",\n serverDataType: \"string\",\n },\n type: \"column-settings\",\n vuuTable: { module: \"SIMUL\", table: \"instruments\" },\n });\n }, [showColumnSettingsPanel]);\n\n const handleNavigateToColumn = useCallback(\n (columnName: string) => {\n const column = tableConfig.columns.find((c) => c.name === columnName);\n if (column) {\n showColumnSettingsPanel({\n type: \"column-settings\",\n column,\n //TODO where do we get this from\n vuuTable: { module: \"SIMUL\", table: \"instruments\" },\n });\n }\n },\n [showColumnSettingsPanel, tableConfig.columns],\n );\n\n showTableSettingsRef.current = useCallback(() => {\n showContextPanel(\"TableSettings\", \"DataGrid Settings\", {\n availableColumns:\n availableColumns ??\n tableConfig.columns.map(({ name, serverDataType }) => ({\n name,\n serverDataType,\n })),\n onAddCalculatedColumn: handleAddCalculatedColumn,\n onConfigChange,\n onDataSourceConfigChange,\n onNavigateToColumn: handleNavigateToColumn,\n permissions: settingsPermissions?.allowTableSettings,\n tableConfig,\n } as TableSettingsProps);\n }, [\n availableColumns,\n handleAddCalculatedColumn,\n handleNavigateToColumn,\n onConfigChange,\n onDataSourceConfigChange,\n settingsPermissions,\n showContextPanel,\n tableConfig,\n ]);\n\n return {\n showColumnSettingsPanel,\n showTableSettingsPanel: showTableSettingsRef.current,\n };\n};\n"],"names":[],"mappings":"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"}
@@ -1,170 +0,0 @@
1
- import { updateTableConfig } from '@vuu-ui/vuu-table';
2
- import { reorderColumnItems, subscribedOnly, addColumnToSubscribedColumns, queryClosest, useLayoutEffectSkipFirst, isCalculatedColumn } from '@vuu-ui/vuu-utils';
3
- import { useState, useMemo, useCallback } from 'react';
4
-
5
- const buildColumnItems = (availableColumns, configuredColumns) => {
6
- return availableColumns.map(({ name, serverDataType }) => {
7
- const configuredColumn = configuredColumns.find((col) => col.name === name);
8
- return {
9
- hidden: configuredColumn?.hidden,
10
- isCalculated: isCalculatedColumn(name),
11
- label: configuredColumn?.label ?? name,
12
- name,
13
- serverDataType,
14
- subscribed: configuredColumn !== void 0
15
- };
16
- });
17
- };
18
- const useTableSettings = ({
19
- availableColumns: availableColumnsProp,
20
- onConfigChange,
21
- onDataSourceConfigChange,
22
- tableConfig: tableConfigProp
23
- }) => {
24
- const [{ availableColumns, tableConfig }, setColumnState] = useState({
25
- availableColumns: availableColumnsProp,
26
- tableConfig: tableConfigProp
27
- });
28
- const columnItems = useMemo(
29
- () => buildColumnItems(availableColumns, tableConfig.columns),
30
- [availableColumns, tableConfig.columns]
31
- );
32
- const handleReorderColumnItems = useCallback(
33
- (columnItems2) => {
34
- const orderedNames = columnItems2.map((c) => c.name);
35
- setColumnState((state) => {
36
- const newAvailableColumns = reorderColumnItems(
37
- state.availableColumns,
38
- orderedNames
39
- );
40
- const newColumns = reorderColumnItems(
41
- tableConfig.columns,
42
- orderedNames
43
- );
44
- return {
45
- availableColumns: newAvailableColumns,
46
- tableConfig: {
47
- ...state.tableConfig,
48
- columns: newColumns
49
- }
50
- };
51
- });
52
- },
53
- [tableConfig.columns]
54
- );
55
- const handleColumnChange = useCallback(
56
- (name, property, value) => {
57
- const columnItem = columnItems.find((col) => col.name === name);
58
- if (property === "subscribed") {
59
- if (columnItem?.subscribed) {
60
- const subscribedColumns = tableConfig.columns.filter((col) => col.name !== name).map((col) => col.name);
61
- setColumnState((state) => ({
62
- ...state,
63
- tableConfig: {
64
- ...tableConfig,
65
- columns: tableConfig.columns.filter(
66
- subscribedOnly(subscribedColumns)
67
- )
68
- }
69
- }));
70
- onDataSourceConfigChange({
71
- columns: subscribedColumns
72
- });
73
- } else {
74
- const newConfig = {
75
- ...tableConfig,
76
- columns: addColumnToSubscribedColumns(
77
- tableConfig.columns,
78
- availableColumns,
79
- name
80
- )
81
- };
82
- setColumnState((state) => ({
83
- ...state,
84
- tableConfig: newConfig
85
- }));
86
- const subscribedColumns = newConfig.columns.map((col) => col.name);
87
- onDataSourceConfigChange({
88
- columns: subscribedColumns
89
- });
90
- }
91
- } else if (columnItem?.subscribed) {
92
- const column = tableConfig.columns.find((col) => col.name === name);
93
- if (column) {
94
- const newConfig = updateTableConfig(tableConfig, {
95
- type: "column-prop",
96
- property,
97
- column,
98
- value
99
- });
100
- setColumnState((state) => ({
101
- ...state,
102
- tableConfig: newConfig
103
- }));
104
- }
105
- }
106
- },
107
- [availableColumns, columnItems, onDataSourceConfigChange, tableConfig]
108
- );
109
- const handleChangeColumnLabels = useCallback((evt) => {
110
- const button = queryClosest(evt.target, "button");
111
- if (button) {
112
- const value = parseInt(button.value);
113
- const columnFormatHeader = value === 0 ? void 0 : value === 1 ? "capitalize" : "uppercase";
114
- setColumnState((state) => ({
115
- ...state,
116
- tableConfig: {
117
- ...state.tableConfig,
118
- columnFormatHeader
119
- }
120
- }));
121
- }
122
- }, []);
123
- const handleChangeTableAttribute = useCallback(
124
- (evt) => {
125
- const button = queryClosest(evt.target, "button");
126
- if (button) {
127
- const { ariaPressed, value } = button;
128
- setColumnState((state) => ({
129
- ...state,
130
- tableConfig: {
131
- ...state.tableConfig,
132
- [value]: ariaPressed !== "true"
133
- }
134
- }));
135
- }
136
- },
137
- []
138
- );
139
- const handleCommitColumnWidth = useCallback((_, value) => {
140
- if (typeof value === "string") {
141
- const columnDefaultWidth = parseInt(value);
142
- if (!isNaN(columnDefaultWidth)) {
143
- setColumnState((state) => ({
144
- ...state,
145
- tableConfig: {
146
- ...state.tableConfig,
147
- columnDefaultWidth
148
- }
149
- }));
150
- }
151
- }
152
- }, []);
153
- useLayoutEffectSkipFirst(() => {
154
- onConfigChange?.(tableConfig);
155
- }, [onConfigChange, tableConfig]);
156
- const columnLabelsValue = tableConfig.columnFormatHeader === void 0 ? 0 : tableConfig.columnFormatHeader === "capitalize" ? 1 : 2;
157
- return {
158
- columnItems,
159
- columnLabelsValue,
160
- onChangeColumnLabels: handleChangeColumnLabels,
161
- onChangeTableAttribute: handleChangeTableAttribute,
162
- onColumnChange: handleColumnChange,
163
- onCommitColumnWidth: handleCommitColumnWidth,
164
- onReorderColumnItems: handleReorderColumnItems,
165
- tableConfig
166
- };
167
- };
168
-
169
- export { useTableSettings };
170
- //# sourceMappingURL=useTableSettings.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useTableSettings.js","sources":["../../src/table-column-settings/useTableSettings.ts"],"sourcesContent":["import { SchemaColumn } from \"@vuu-ui/vuu-data-types\";\nimport { updateTableConfig } from \"@vuu-ui/vuu-table\";\nimport {\n ColumnDescriptor,\n TableConfig,\n TableSettingsProps,\n} from \"@vuu-ui/vuu-table-types\";\nimport {\n addColumnToSubscribedColumns,\n queryClosest,\n isCalculatedColumn,\n subscribedOnly,\n useLayoutEffectSkipFirst,\n CommitHandler,\n reorderColumnItems,\n} from \"@vuu-ui/vuu-utils\";\nimport {\n MouseEvent,\n SyntheticEvent,\n useCallback,\n useMemo,\n useState,\n} from \"react\";\nimport { ColumnChangeHandler } from \"../column-list\";\n\nexport type ColumnLike = {\n name: string;\n};\n\nexport type ColumnItem = Pick<\n ColumnDescriptor,\n \"hidden\" | \"label\" | \"name\" | \"serverDataType\"\n> & {\n isCalculated: boolean;\n subscribed: boolean;\n};\n\nconst buildColumnItems = (\n availableColumns: SchemaColumn[],\n configuredColumns: ColumnDescriptor[],\n): ColumnItem[] => {\n return availableColumns.map<ColumnItem>(({ name, serverDataType }) => {\n const configuredColumn = configuredColumns.find((col) => col.name === name);\n return {\n hidden: configuredColumn?.hidden,\n isCalculated: isCalculatedColumn(name),\n label: configuredColumn?.label ?? name,\n name,\n serverDataType,\n subscribed: configuredColumn !== undefined,\n };\n });\n};\n\ntype ColumnState = {\n availableColumns: SchemaColumn[];\n tableConfig: TableConfig;\n};\n\nexport const useTableSettings = ({\n availableColumns: availableColumnsProp,\n onConfigChange,\n onDataSourceConfigChange,\n tableConfig: tableConfigProp,\n}: Omit<TableSettingsProps, \"onAddCalculatedColumn\">) => {\n const [{ availableColumns, tableConfig }, setColumnState] =\n useState<ColumnState>({\n availableColumns: availableColumnsProp,\n tableConfig: tableConfigProp,\n });\n\n const columnItems = useMemo(\n () => buildColumnItems(availableColumns, tableConfig.columns),\n [availableColumns, tableConfig.columns],\n );\n\n const handleReorderColumnItems = useCallback(\n (columnItems: ColumnItem[]) => {\n const orderedNames = columnItems.map((c) => c.name);\n setColumnState((state) => {\n const newAvailableColumns = reorderColumnItems(\n state.availableColumns,\n orderedNames,\n );\n const newColumns = reorderColumnItems(\n tableConfig.columns,\n orderedNames,\n );\n return {\n availableColumns: newAvailableColumns,\n tableConfig: {\n ...state.tableConfig,\n columns: newColumns,\n },\n };\n });\n },\n [tableConfig.columns],\n );\n\n const handleColumnChange = useCallback<ColumnChangeHandler>(\n (name, property, value) => {\n // to be applied immediately\n const columnItem = columnItems.find((col) => col.name === name);\n if (property === \"subscribed\") {\n if (columnItem?.subscribed) {\n const subscribedColumns = tableConfig.columns\n .filter((col) => col.name !== name)\n .map((col) => col.name);\n setColumnState((state) => ({\n ...state,\n tableConfig: {\n ...tableConfig,\n columns: tableConfig.columns.filter(\n subscribedOnly(subscribedColumns),\n ),\n },\n }));\n onDataSourceConfigChange({\n columns: subscribedColumns,\n });\n } else {\n const newConfig = {\n ...tableConfig,\n columns: addColumnToSubscribedColumns(\n tableConfig.columns,\n availableColumns,\n name,\n ),\n };\n setColumnState((state) => ({\n ...state,\n tableConfig: newConfig,\n }));\n\n const subscribedColumns = newConfig.columns.map((col) => col.name);\n\n onDataSourceConfigChange({\n columns: subscribedColumns,\n });\n }\n } else if (columnItem?.subscribed) {\n const column = tableConfig.columns.find((col) => col.name === name);\n if (column) {\n const newConfig = updateTableConfig(tableConfig, {\n type: \"column-prop\",\n property,\n column,\n value,\n });\n setColumnState((state) => ({\n ...state,\n tableConfig: newConfig,\n }));\n }\n }\n },\n [availableColumns, columnItems, onDataSourceConfigChange, tableConfig],\n );\n\n const handleChangeColumnLabels = useCallback((evt: SyntheticEvent) => {\n const button = queryClosest<HTMLButtonElement>(evt.target, \"button\");\n if (button) {\n const value = parseInt(button.value);\n const columnFormatHeader =\n value === 0 ? undefined : value === 1 ? \"capitalize\" : \"uppercase\";\n setColumnState((state) => ({\n ...state,\n tableConfig: {\n ...state.tableConfig,\n columnFormatHeader,\n },\n }));\n }\n }, []);\n\n const handleChangeTableAttribute = useCallback(\n (evt: MouseEvent<HTMLButtonElement>) => {\n const button = queryClosest<HTMLButtonElement>(evt.target, \"button\");\n if (button) {\n const { ariaPressed, value } = button;\n setColumnState((state) => ({\n ...state,\n tableConfig: {\n ...state.tableConfig,\n [value]: ariaPressed !== \"true\",\n },\n }));\n }\n },\n [],\n );\n\n const handleCommitColumnWidth = useCallback<CommitHandler>((_, value) => {\n if (typeof value === \"string\") {\n const columnDefaultWidth = parseInt(value);\n if (!isNaN(columnDefaultWidth)) {\n setColumnState((state) => ({\n ...state,\n tableConfig: {\n ...state.tableConfig,\n columnDefaultWidth,\n },\n }));\n }\n }\n }, []);\n\n useLayoutEffectSkipFirst(() => {\n onConfigChange?.(tableConfig);\n }, [onConfigChange, tableConfig]);\n\n const columnLabelsValue =\n tableConfig.columnFormatHeader === undefined\n ? 0\n : tableConfig.columnFormatHeader === \"capitalize\"\n ? 1\n : 2;\n\n return {\n columnItems,\n columnLabelsValue,\n onChangeColumnLabels: handleChangeColumnLabels,\n onChangeTableAttribute: handleChangeTableAttribute,\n onColumnChange: handleColumnChange,\n onCommitColumnWidth: handleCommitColumnWidth,\n onReorderColumnItems: handleReorderColumnItems,\n tableConfig,\n };\n};\n"],"names":["columnItems"],"mappings":"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"}
@@ -1,44 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { createContext, useContext } from 'react';
3
-
4
- const NullMenuActionHandler = (menuItemId) => {
5
- console.log(
6
- `[TableContext] no menu action handler installed (menuItemHandler invoked with ${menuItemId})`
7
- );
8
- return false;
9
- };
10
- const NullDataSource = {};
11
- const TableContext = createContext({
12
- dataSource: NullDataSource,
13
- menuActionHandler: NullMenuActionHandler
14
- });
15
- const TableProvider = ({
16
- children,
17
- dataSource,
18
- menuActionHandler
19
- }) => {
20
- return /* @__PURE__ */ jsx(
21
- TableContext.Provider,
22
- {
23
- value: {
24
- dataSource,
25
- menuActionHandler
26
- },
27
- children
28
- }
29
- );
30
- };
31
- function useTableContext(throwIfNoDataSource = false) {
32
- const { dataSource, menuActionHandler } = useContext(TableContext);
33
- if (dataSource === NullDataSource && menuActionHandler == NullMenuActionHandler && throwIfNoDataSource) {
34
- throw Error(`[TableProvider] no DataSourceProvider has been declared`);
35
- } else {
36
- return {
37
- dataSource,
38
- menuActionHandler
39
- };
40
- }
41
- }
42
-
43
- export { TableContext, TableProvider, useTableContext };
44
- //# sourceMappingURL=TableProvider.js.map