@vuu-ui/vuu-table-extras 2.1.19-beta.2 → 2.1.19-beta.3

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 (434) hide show
  1. package/cjs/node_modules/csv-parse/dist/esm/sync.js +3978 -0
  2. package/cjs/node_modules/csv-parse/dist/esm/sync.js.map +1 -0
  3. package/cjs/packages/vuu-table-extras/src/calculated-column/CalculatedColumnPanel.js +85 -0
  4. package/cjs/packages/vuu-table-extras/src/calculated-column/CalculatedColumnPanel.js.map +1 -0
  5. package/cjs/packages/vuu-table-extras/src/calculated-column/useCalculatedColumnPanel.js +71 -0
  6. package/cjs/packages/vuu-table-extras/src/calculated-column/useCalculatedColumnPanel.js.map +1 -0
  7. package/cjs/packages/vuu-table-extras/src/calculated-column/useEditCalculatedColumn.js +138 -0
  8. package/cjs/packages/vuu-table-extras/src/calculated-column/useEditCalculatedColumn.js.map +1 -0
  9. package/cjs/packages/vuu-table-extras/src/cell-edit-validators/CaseValidator.js +25 -0
  10. package/cjs/packages/vuu-table-extras/src/cell-edit-validators/CaseValidator.js.map +1 -0
  11. package/cjs/packages/vuu-table-extras/src/cell-edit-validators/PatternValidator.js +31 -0
  12. package/cjs/packages/vuu-table-extras/src/cell-edit-validators/PatternValidator.js.map +1 -0
  13. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.css.js +6 -0
  14. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.css.js.map +1 -0
  15. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.js +81 -0
  16. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.js.map +1 -0
  17. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js +6 -0
  18. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js.map +1 -0
  19. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js +67 -0
  20. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +1 -0
  21. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundKeyframes.css.js +6 -0
  22. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundKeyframes.css.js.map +1 -0
  23. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/useDirection.js +20 -0
  24. package/cjs/packages/vuu-table-extras/src/cell-renderers/background-cell/useDirection.js.map +1 -0
  25. package/cjs/packages/vuu-table-extras/src/cell-renderers/button-cell/IconButtonCell.css.js +6 -0
  26. package/cjs/packages/vuu-table-extras/src/cell-renderers/button-cell/IconButtonCell.css.js.map +1 -0
  27. package/cjs/packages/vuu-table-extras/src/cell-renderers/button-cell/IconButtonCell.js +40 -0
  28. package/cjs/packages/vuu-table-extras/src/cell-renderers/button-cell/IconButtonCell.js.map +1 -0
  29. package/cjs/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.css.js +6 -0
  30. package/cjs/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.css.js.map +1 -0
  31. package/cjs/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.js +103 -0
  32. package/cjs/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.js.map +1 -0
  33. package/cjs/packages/vuu-table-extras/src/cell-renderers/lookup-cell/LookupCell.js +21 -0
  34. package/cjs/packages/vuu-table-extras/src/cell-renderers/lookup-cell/LookupCell.js.map +1 -0
  35. package/cjs/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.css.js +6 -0
  36. package/cjs/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.css.js.map +1 -0
  37. package/cjs/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.js +62 -0
  38. package/cjs/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.js.map +1 -0
  39. package/cjs/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.css.js +6 -0
  40. package/cjs/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.css.js.map +1 -0
  41. package/cjs/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.js +69 -0
  42. package/cjs/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.js.map +1 -0
  43. package/cjs/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.css.js +6 -0
  44. package/cjs/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.css.js.map +1 -0
  45. package/cjs/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.js +39 -0
  46. package/cjs/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.js.map +1 -0
  47. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-function-descriptors.js +307 -0
  48. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-function-descriptors.js.map +1 -0
  49. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionLanguage.js +28 -0
  50. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +1 -0
  51. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js +465 -0
  52. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +1 -0
  53. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/column-expression-parse-utils.js +61 -0
  54. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +1 -0
  55. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/generated/column-parser.js +21 -0
  56. package/cjs/packages/vuu-table-extras/src/column-expression-input/column-language-parser/generated/column-parser.js.map +1 -0
  57. package/cjs/packages/vuu-table-extras/src/column-expression-input/functionDocInfo.js +39 -0
  58. package/cjs/packages/vuu-table-extras/src/column-expression-input/functionDocInfo.js.map +1 -0
  59. package/cjs/packages/vuu-table-extras/src/column-expression-input/highlighting.js +16 -0
  60. package/cjs/packages/vuu-table-extras/src/column-expression-input/highlighting.js.map +1 -0
  61. package/cjs/packages/vuu-table-extras/src/column-expression-input/theme.js +63 -0
  62. package/cjs/packages/vuu-table-extras/src/column-expression-input/theme.js.map +1 -0
  63. package/cjs/packages/vuu-table-extras/src/column-expression-input/useColumnAutoComplete.js +358 -0
  64. package/cjs/packages/vuu-table-extras/src/column-expression-input/useColumnAutoComplete.js.map +1 -0
  65. package/cjs/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionEditor.js +131 -0
  66. package/cjs/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionEditor.js.map +1 -0
  67. package/cjs/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionSuggestionProvider.js +213 -0
  68. package/cjs/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionSuggestionProvider.js.map +1 -0
  69. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/BaseNumericFormattingSettings.js +98 -0
  70. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/BaseNumericFormattingSettings.js.map +1 -0
  71. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/ColumnFormattingPanel.js +111 -0
  72. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/ColumnFormattingPanel.js.map +1 -0
  73. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/DateTimeFormattingSettings.js +102 -0
  74. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/DateTimeFormattingSettings.js.map +1 -0
  75. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.css.js +6 -0
  76. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.css.js.map +1 -0
  77. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.js +48 -0
  78. package/cjs/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.js.map +1 -0
  79. package/cjs/packages/vuu-table-extras/src/column-menu/ColumnMenu.css.js +6 -0
  80. package/cjs/packages/vuu-table-extras/src/column-menu/ColumnMenu.css.js.map +1 -0
  81. package/cjs/packages/vuu-table-extras/src/column-menu/ColumnMenu.js +107 -0
  82. package/cjs/packages/vuu-table-extras/src/column-menu/ColumnMenu.js.map +1 -0
  83. package/cjs/packages/vuu-table-extras/src/column-menu/column-menu-utils.js +459 -0
  84. package/cjs/packages/vuu-table-extras/src/column-menu/column-menu-utils.js.map +1 -0
  85. package/cjs/packages/vuu-table-extras/src/column-menu/useColumnActions.js +68 -0
  86. package/cjs/packages/vuu-table-extras/src/column-menu/useColumnActions.js.map +1 -0
  87. package/cjs/packages/vuu-table-extras/src/column-picker/ColumnModel.js +177 -0
  88. package/cjs/packages/vuu-table-extras/src/column-picker/ColumnModel.js.map +1 -0
  89. package/cjs/packages/vuu-table-extras/src/column-picker/ColumnPicker.css.js +6 -0
  90. package/cjs/packages/vuu-table-extras/src/column-picker/ColumnPicker.css.js.map +1 -0
  91. package/cjs/packages/vuu-table-extras/src/column-picker/ColumnPicker.js +252 -0
  92. package/cjs/packages/vuu-table-extras/src/column-picker/ColumnPicker.js.map +1 -0
  93. package/cjs/packages/vuu-table-extras/src/column-picker/ColumnPickerAction.js +34 -0
  94. package/cjs/packages/vuu-table-extras/src/column-picker/ColumnPickerAction.js.map +1 -0
  95. package/cjs/packages/vuu-table-extras/src/column-picker/useColumnPicker.js +55 -0
  96. package/cjs/packages/vuu-table-extras/src/column-picker/useColumnPicker.js.map +1 -0
  97. package/cjs/packages/vuu-table-extras/src/column-picker/useTableColumnPicker.js +35 -0
  98. package/cjs/packages/vuu-table-extras/src/column-picker/useTableColumnPicker.js.map +1 -0
  99. package/cjs/packages/vuu-table-extras/src/column-settings-panel/ColumnNameLabel.css.js +6 -0
  100. package/cjs/packages/vuu-table-extras/src/column-settings-panel/ColumnNameLabel.css.js.map +1 -0
  101. package/cjs/packages/vuu-table-extras/src/column-settings-panel/ColumnNameLabel.js +45 -0
  102. package/cjs/packages/vuu-table-extras/src/column-settings-panel/ColumnNameLabel.js.map +1 -0
  103. package/cjs/packages/vuu-table-extras/src/column-settings-panel/ColumnSettingsPanel.css.js +6 -0
  104. package/cjs/packages/vuu-table-extras/src/column-settings-panel/ColumnSettingsPanel.css.js.map +1 -0
  105. package/cjs/packages/vuu-table-extras/src/column-settings-panel/ColumnSettingsPanel.js +161 -0
  106. package/cjs/packages/vuu-table-extras/src/column-settings-panel/ColumnSettingsPanel.js.map +1 -0
  107. package/cjs/packages/vuu-table-extras/src/column-settings-panel/useColumnSettings.js +203 -0
  108. package/cjs/packages/vuu-table-extras/src/column-settings-panel/useColumnSettings.js.map +1 -0
  109. package/cjs/packages/vuu-table-extras/src/csv-upload/CsvUpload.css.js +6 -0
  110. package/cjs/packages/vuu-table-extras/src/csv-upload/CsvUpload.css.js.map +1 -0
  111. package/cjs/packages/vuu-table-extras/src/csv-upload/CsvUpload.js +95 -0
  112. package/cjs/packages/vuu-table-extras/src/csv-upload/CsvUpload.js.map +1 -0
  113. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-constants.js +8 -0
  114. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-constants.js.map +1 -0
  115. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-errors.js +64 -0
  116. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-errors.js.map +1 -0
  117. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-parse.js +199 -0
  118. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-parse.js.map +1 -0
  119. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-schema-validation.js +100 -0
  120. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-schema-validation.js.map +1 -0
  121. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-upload-utils.js +86 -0
  122. package/cjs/packages/vuu-table-extras/src/csv-upload/parse/csv-upload-utils.js.map +1 -0
  123. package/cjs/packages/vuu-table-extras/src/csv-upload/useCsvUpload.js +306 -0
  124. package/cjs/packages/vuu-table-extras/src/csv-upload/useCsvUpload.js.map +1 -0
  125. package/cjs/packages/vuu-table-extras/src/csv-upload/useCsvUploadSessionPreview.js +73 -0
  126. package/cjs/packages/vuu-table-extras/src/csv-upload/useCsvUploadSessionPreview.js.map +1 -0
  127. package/cjs/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.css.js +6 -0
  128. package/cjs/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.css.js.map +1 -0
  129. package/cjs/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.js +76 -0
  130. package/cjs/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.js.map +1 -0
  131. package/cjs/packages/vuu-table-extras/src/datasource-stats/useDatasourceStats.js +61 -0
  132. package/cjs/packages/vuu-table-extras/src/datasource-stats/useDatasourceStats.js.map +1 -0
  133. package/cjs/packages/vuu-table-extras/src/freeze-control/FreezeControl.css.js +6 -0
  134. package/cjs/packages/vuu-table-extras/src/freeze-control/FreezeControl.css.js.map +1 -0
  135. package/cjs/packages/vuu-table-extras/src/freeze-control/FreezeControl.js +106 -0
  136. package/cjs/packages/vuu-table-extras/src/freeze-control/FreezeControl.js.map +1 -0
  137. package/cjs/packages/vuu-table-extras/src/freeze-control/FrozenBanner.css.js +6 -0
  138. package/cjs/packages/vuu-table-extras/src/freeze-control/FrozenBanner.css.js.map +1 -0
  139. package/cjs/packages/vuu-table-extras/src/freeze-control/FrozenBanner.js +55 -0
  140. package/cjs/packages/vuu-table-extras/src/freeze-control/FrozenBanner.js.map +1 -0
  141. package/cjs/packages/vuu-table-extras/src/freeze-control/freezeControlBadge.js +10 -0
  142. package/cjs/packages/vuu-table-extras/src/freeze-control/freezeControlBadge.js.map +1 -0
  143. package/cjs/packages/vuu-table-extras/src/freeze-control/useFreezeControl.js +68 -0
  144. package/cjs/packages/vuu-table-extras/src/freeze-control/useFreezeControl.js.map +1 -0
  145. package/cjs/packages/vuu-table-extras/src/index.js +102 -0
  146. package/cjs/packages/vuu-table-extras/src/index.js.map +1 -0
  147. package/cjs/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableConfigPanel.css.js +6 -0
  148. package/cjs/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableConfigPanel.css.js.map +1 -0
  149. package/cjs/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableConfigPanel.js +90 -0
  150. package/cjs/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableConfigPanel.js.map +1 -0
  151. package/cjs/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableSettingsAction.js +44 -0
  152. package/cjs/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableSettingsAction.js.map +1 -0
  153. package/cjs/packages/vuu-table-extras/src/tabbed-table-config-panel/useTabbedTableConfigPanel.js +49 -0
  154. package/cjs/packages/vuu-table-extras/src/tabbed-table-config-panel/useTabbedTableConfigPanel.js.map +1 -0
  155. package/cjs/packages/vuu-table-extras/src/table-footer/TableFooter.css.js +6 -0
  156. package/cjs/packages/vuu-table-extras/src/table-footer/TableFooter.css.js.map +1 -0
  157. package/cjs/packages/vuu-table-extras/src/table-footer/TableFooter.js +34 -0
  158. package/cjs/packages/vuu-table-extras/src/table-footer/TableFooter.js.map +1 -0
  159. package/cjs/packages/vuu-table-extras/src/table-provider/TableProvider.js +61 -0
  160. package/cjs/packages/vuu-table-extras/src/table-provider/TableProvider.js.map +1 -0
  161. package/cjs/packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.css.js +6 -0
  162. package/cjs/packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.css.js.map +1 -0
  163. package/cjs/packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.js +116 -0
  164. package/cjs/packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.js.map +1 -0
  165. package/cjs/packages/vuu-table-extras/src/table-settings-panel/useTableSettings.js +60 -0
  166. package/cjs/packages/vuu-table-extras/src/table-settings-panel/useTableSettings.js.map +1 -0
  167. package/esm/node_modules/csv-parse/dist/esm/sync.js +3974 -0
  168. package/esm/node_modules/csv-parse/dist/esm/sync.js.map +1 -0
  169. package/esm/packages/vuu-table-extras/src/calculated-column/CalculatedColumnPanel.js +83 -0
  170. package/esm/packages/vuu-table-extras/src/calculated-column/CalculatedColumnPanel.js.map +1 -0
  171. package/esm/packages/vuu-table-extras/src/calculated-column/useCalculatedColumnPanel.js +69 -0
  172. package/esm/packages/vuu-table-extras/src/calculated-column/useCalculatedColumnPanel.js.map +1 -0
  173. package/esm/packages/vuu-table-extras/src/calculated-column/useEditCalculatedColumn.js +136 -0
  174. package/esm/packages/vuu-table-extras/src/calculated-column/useEditCalculatedColumn.js.map +1 -0
  175. package/esm/packages/vuu-table-extras/src/cell-edit-validators/CaseValidator.js +23 -0
  176. package/esm/packages/vuu-table-extras/src/cell-edit-validators/CaseValidator.js.map +1 -0
  177. package/esm/packages/vuu-table-extras/src/cell-edit-validators/PatternValidator.js +29 -0
  178. package/esm/packages/vuu-table-extras/src/cell-edit-validators/PatternValidator.js.map +1 -0
  179. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.css.js +4 -0
  180. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.css.js.map +1 -0
  181. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.js +79 -0
  182. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCell.js.map +1 -0
  183. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js +4 -0
  184. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js.map +1 -0
  185. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js +65 -0
  186. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +1 -0
  187. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundKeyframes.css.js +4 -0
  188. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/BackgroundKeyframes.css.js.map +1 -0
  189. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/useDirection.js +18 -0
  190. package/esm/packages/vuu-table-extras/src/cell-renderers/background-cell/useDirection.js.map +1 -0
  191. package/esm/packages/vuu-table-extras/src/cell-renderers/button-cell/IconButtonCell.css.js +4 -0
  192. package/esm/packages/vuu-table-extras/src/cell-renderers/button-cell/IconButtonCell.css.js.map +1 -0
  193. package/esm/packages/vuu-table-extras/src/cell-renderers/button-cell/IconButtonCell.js +38 -0
  194. package/esm/packages/vuu-table-extras/src/cell-renderers/button-cell/IconButtonCell.js.map +1 -0
  195. package/esm/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.css.js +4 -0
  196. package/esm/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.css.js.map +1 -0
  197. package/esm/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.js +101 -0
  198. package/esm/packages/vuu-table-extras/src/cell-renderers/dropdown-cell/DropdownCell.js.map +1 -0
  199. package/esm/packages/vuu-table-extras/src/cell-renderers/lookup-cell/LookupCell.js +19 -0
  200. package/esm/packages/vuu-table-extras/src/cell-renderers/lookup-cell/LookupCell.js.map +1 -0
  201. package/esm/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.css.js +4 -0
  202. package/esm/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.css.js.map +1 -0
  203. package/esm/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.js +60 -0
  204. package/esm/packages/vuu-table-extras/src/cell-renderers/pct-progress-cell/PctProgressCell.js.map +1 -0
  205. package/esm/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.css.js +4 -0
  206. package/esm/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.css.js.map +1 -0
  207. package/esm/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.js +67 -0
  208. package/esm/packages/vuu-table-extras/src/cell-renderers/progress-cell/ProgressCell.js.map +1 -0
  209. package/esm/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.css.js +4 -0
  210. package/esm/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.css.js.map +1 -0
  211. package/esm/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.js +37 -0
  212. package/esm/packages/vuu-table-extras/src/column-expression-input/ColumnExpressionInput.js.map +1 -0
  213. package/esm/packages/vuu-table-extras/src/column-expression-input/column-function-descriptors.js +305 -0
  214. package/esm/packages/vuu-table-extras/src/column-expression-input/column-function-descriptors.js.map +1 -0
  215. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionLanguage.js +26 -0
  216. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +1 -0
  217. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js +463 -0
  218. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +1 -0
  219. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/column-expression-parse-utils.js +56 -0
  220. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +1 -0
  221. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/generated/column-parser.js +19 -0
  222. package/esm/packages/vuu-table-extras/src/column-expression-input/column-language-parser/generated/column-parser.js.map +1 -0
  223. package/esm/packages/vuu-table-extras/src/column-expression-input/functionDocInfo.js +37 -0
  224. package/esm/packages/vuu-table-extras/src/column-expression-input/functionDocInfo.js.map +1 -0
  225. package/esm/packages/vuu-table-extras/src/column-expression-input/highlighting.js +14 -0
  226. package/esm/packages/vuu-table-extras/src/column-expression-input/highlighting.js.map +1 -0
  227. package/esm/packages/vuu-table-extras/src/column-expression-input/theme.js +61 -0
  228. package/esm/packages/vuu-table-extras/src/column-expression-input/theme.js.map +1 -0
  229. package/esm/packages/vuu-table-extras/src/column-expression-input/useColumnAutoComplete.js +356 -0
  230. package/esm/packages/vuu-table-extras/src/column-expression-input/useColumnAutoComplete.js.map +1 -0
  231. package/esm/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionEditor.js +129 -0
  232. package/esm/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionEditor.js.map +1 -0
  233. package/esm/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionSuggestionProvider.js +211 -0
  234. package/esm/packages/vuu-table-extras/src/column-expression-input/useColumnExpressionSuggestionProvider.js.map +1 -0
  235. package/esm/packages/vuu-table-extras/src/column-formatting-settings/BaseNumericFormattingSettings.js +96 -0
  236. package/esm/packages/vuu-table-extras/src/column-formatting-settings/BaseNumericFormattingSettings.js.map +1 -0
  237. package/esm/packages/vuu-table-extras/src/column-formatting-settings/ColumnFormattingPanel.js +109 -0
  238. package/esm/packages/vuu-table-extras/src/column-formatting-settings/ColumnFormattingPanel.js.map +1 -0
  239. package/esm/packages/vuu-table-extras/src/column-formatting-settings/DateTimeFormattingSettings.js +100 -0
  240. package/esm/packages/vuu-table-extras/src/column-formatting-settings/DateTimeFormattingSettings.js.map +1 -0
  241. package/esm/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.css.js +4 -0
  242. package/esm/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.css.js.map +1 -0
  243. package/esm/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.js +46 -0
  244. package/esm/packages/vuu-table-extras/src/column-formatting-settings/LongTypeFormattingSettings.js.map +1 -0
  245. package/esm/packages/vuu-table-extras/src/column-menu/ColumnMenu.css.js +4 -0
  246. package/esm/packages/vuu-table-extras/src/column-menu/ColumnMenu.css.js.map +1 -0
  247. package/esm/packages/vuu-table-extras/src/column-menu/ColumnMenu.js +105 -0
  248. package/esm/packages/vuu-table-extras/src/column-menu/ColumnMenu.js.map +1 -0
  249. package/esm/packages/vuu-table-extras/src/column-menu/column-menu-utils.js +451 -0
  250. package/esm/packages/vuu-table-extras/src/column-menu/column-menu-utils.js.map +1 -0
  251. package/esm/packages/vuu-table-extras/src/column-menu/useColumnActions.js +66 -0
  252. package/esm/packages/vuu-table-extras/src/column-menu/useColumnActions.js.map +1 -0
  253. package/esm/packages/vuu-table-extras/src/column-picker/ColumnModel.js +170 -0
  254. package/esm/packages/vuu-table-extras/src/column-picker/ColumnModel.js.map +1 -0
  255. package/esm/packages/vuu-table-extras/src/column-picker/ColumnPicker.css.js +4 -0
  256. package/esm/packages/vuu-table-extras/src/column-picker/ColumnPicker.css.js.map +1 -0
  257. package/esm/packages/vuu-table-extras/src/column-picker/ColumnPicker.js +249 -0
  258. package/esm/packages/vuu-table-extras/src/column-picker/ColumnPicker.js.map +1 -0
  259. package/esm/packages/vuu-table-extras/src/column-picker/ColumnPickerAction.js +32 -0
  260. package/esm/packages/vuu-table-extras/src/column-picker/ColumnPickerAction.js.map +1 -0
  261. package/esm/packages/vuu-table-extras/src/column-picker/useColumnPicker.js +53 -0
  262. package/esm/packages/vuu-table-extras/src/column-picker/useColumnPicker.js.map +1 -0
  263. package/esm/packages/vuu-table-extras/src/column-picker/useTableColumnPicker.js +33 -0
  264. package/esm/packages/vuu-table-extras/src/column-picker/useTableColumnPicker.js.map +1 -0
  265. package/esm/packages/vuu-table-extras/src/column-settings-panel/ColumnNameLabel.css.js +4 -0
  266. package/esm/packages/vuu-table-extras/src/column-settings-panel/ColumnNameLabel.css.js.map +1 -0
  267. package/esm/packages/vuu-table-extras/src/column-settings-panel/ColumnNameLabel.js +43 -0
  268. package/esm/packages/vuu-table-extras/src/column-settings-panel/ColumnNameLabel.js.map +1 -0
  269. package/esm/packages/vuu-table-extras/src/column-settings-panel/ColumnSettingsPanel.css.js +4 -0
  270. package/esm/packages/vuu-table-extras/src/column-settings-panel/ColumnSettingsPanel.css.js.map +1 -0
  271. package/esm/packages/vuu-table-extras/src/column-settings-panel/ColumnSettingsPanel.js +159 -0
  272. package/esm/packages/vuu-table-extras/src/column-settings-panel/ColumnSettingsPanel.js.map +1 -0
  273. package/esm/packages/vuu-table-extras/src/column-settings-panel/useColumnSettings.js +201 -0
  274. package/esm/packages/vuu-table-extras/src/column-settings-panel/useColumnSettings.js.map +1 -0
  275. package/esm/packages/vuu-table-extras/src/csv-upload/CsvUpload.css.js +4 -0
  276. package/esm/packages/vuu-table-extras/src/csv-upload/CsvUpload.css.js.map +1 -0
  277. package/esm/packages/vuu-table-extras/src/csv-upload/CsvUpload.js +93 -0
  278. package/esm/packages/vuu-table-extras/src/csv-upload/CsvUpload.js.map +1 -0
  279. package/{src → esm/packages/vuu-table-extras/src}/csv-upload/parse/csv-constants.js +2 -0
  280. package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-constants.js.map +1 -0
  281. package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-errors.js +57 -0
  282. package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-errors.js.map +1 -0
  283. package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-parse.js +196 -0
  284. package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-parse.js.map +1 -0
  285. package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-schema-validation.js +97 -0
  286. package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-schema-validation.js.map +1 -0
  287. package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-upload-utils.js +76 -0
  288. package/esm/packages/vuu-table-extras/src/csv-upload/parse/csv-upload-utils.js.map +1 -0
  289. package/esm/packages/vuu-table-extras/src/csv-upload/useCsvUpload.js +304 -0
  290. package/esm/packages/vuu-table-extras/src/csv-upload/useCsvUpload.js.map +1 -0
  291. package/esm/packages/vuu-table-extras/src/csv-upload/useCsvUploadSessionPreview.js +71 -0
  292. package/esm/packages/vuu-table-extras/src/csv-upload/useCsvUploadSessionPreview.js.map +1 -0
  293. package/esm/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.css.js +4 -0
  294. package/esm/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.css.js.map +1 -0
  295. package/esm/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.js +74 -0
  296. package/esm/packages/vuu-table-extras/src/datasource-stats/DatasourceStats.js.map +1 -0
  297. package/esm/packages/vuu-table-extras/src/datasource-stats/useDatasourceStats.js +59 -0
  298. package/esm/packages/vuu-table-extras/src/datasource-stats/useDatasourceStats.js.map +1 -0
  299. package/esm/packages/vuu-table-extras/src/freeze-control/FreezeControl.css.js +4 -0
  300. package/esm/packages/vuu-table-extras/src/freeze-control/FreezeControl.css.js.map +1 -0
  301. package/esm/packages/vuu-table-extras/src/freeze-control/FreezeControl.js +104 -0
  302. package/esm/packages/vuu-table-extras/src/freeze-control/FreezeControl.js.map +1 -0
  303. package/esm/packages/vuu-table-extras/src/freeze-control/FrozenBanner.css.js +4 -0
  304. package/esm/packages/vuu-table-extras/src/freeze-control/FrozenBanner.css.js.map +1 -0
  305. package/esm/packages/vuu-table-extras/src/freeze-control/FrozenBanner.js +53 -0
  306. package/esm/packages/vuu-table-extras/src/freeze-control/FrozenBanner.js.map +1 -0
  307. package/esm/packages/vuu-table-extras/src/freeze-control/freezeControlBadge.js +8 -0
  308. package/esm/packages/vuu-table-extras/src/freeze-control/freezeControlBadge.js.map +1 -0
  309. package/esm/packages/vuu-table-extras/src/freeze-control/useFreezeControl.js +66 -0
  310. package/esm/packages/vuu-table-extras/src/freeze-control/useFreezeControl.js.map +1 -0
  311. package/esm/packages/vuu-table-extras/src/index.js +43 -0
  312. package/esm/packages/vuu-table-extras/src/index.js.map +1 -0
  313. package/esm/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableConfigPanel.css.js +4 -0
  314. package/esm/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableConfigPanel.css.js.map +1 -0
  315. package/esm/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableConfigPanel.js +88 -0
  316. package/esm/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableConfigPanel.js.map +1 -0
  317. package/esm/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableSettingsAction.js +42 -0
  318. package/esm/packages/vuu-table-extras/src/tabbed-table-config-panel/TabbedTableSettingsAction.js.map +1 -0
  319. package/esm/packages/vuu-table-extras/src/tabbed-table-config-panel/useTabbedTableConfigPanel.js +47 -0
  320. package/esm/packages/vuu-table-extras/src/tabbed-table-config-panel/useTabbedTableConfigPanel.js.map +1 -0
  321. package/esm/packages/vuu-table-extras/src/table-footer/TableFooter.css.js +4 -0
  322. package/esm/packages/vuu-table-extras/src/table-footer/TableFooter.css.js.map +1 -0
  323. package/esm/packages/vuu-table-extras/src/table-footer/TableFooter.js +31 -0
  324. package/esm/packages/vuu-table-extras/src/table-footer/TableFooter.js.map +1 -0
  325. package/esm/packages/vuu-table-extras/src/table-provider/TableProvider.js +56 -0
  326. package/esm/packages/vuu-table-extras/src/table-provider/TableProvider.js.map +1 -0
  327. package/esm/packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.css.js +4 -0
  328. package/esm/packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.css.js.map +1 -0
  329. package/esm/packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.js +112 -0
  330. package/esm/packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.js.map +1 -0
  331. package/esm/packages/vuu-table-extras/src/table-settings-panel/useTableSettings.js +58 -0
  332. package/esm/packages/vuu-table-extras/src/table-settings-panel/useTableSettings.js.map +1 -0
  333. package/package.json +18 -15
  334. package/types/cell-renderers/background-cell/BackgroundCell.d.ts +1 -1
  335. package/types/cell-renderers/dropdown-cell/DropdownCell.d.ts +1 -1
  336. package/types/cell-renderers/lookup-cell/LookupCell.d.ts +1 -1
  337. package/types/column-expression-input/column-language-parser/generated/column-parser.d.ts +1 -1
  338. package/types/column-expression-input/column-language-parser/generated/column-parser.terms.d.ts +24 -1
  339. package/types/column-expression-input/column-language-parser/test.d.mts +1 -1
  340. package/types/freeze-control/useFreezeControl.d.ts +1 -1
  341. package/src/calculated-column/CalculatedColumnPanel.js +0 -95
  342. package/src/calculated-column/useCalculatedColumnPanel.js +0 -60
  343. package/src/calculated-column/useEditCalculatedColumn.js +0 -104
  344. package/src/cell-edit-validators/CaseValidator.js +0 -21
  345. package/src/cell-edit-validators/PatternValidator.js +0 -23
  346. package/src/cell-edit-validators/index.js +0 -2
  347. package/src/cell-renderers/background-cell/BackgroundCell.css.js +0 -103
  348. package/src/cell-renderers/background-cell/BackgroundCell.js +0 -76
  349. package/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js +0 -9
  350. package/src/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js +0 -71
  351. package/src/cell-renderers/background-cell/BackgroundKeyframes.css.js +0 -187
  352. package/src/cell-renderers/background-cell/index.js +0 -2
  353. package/src/cell-renderers/background-cell/useDirection.js +0 -25
  354. package/src/cell-renderers/button-cell/IconButtonCell.css.js +0 -23
  355. package/src/cell-renderers/button-cell/IconButtonCell.js +0 -33
  356. package/src/cell-renderers/dropdown-cell/DropdownCell.css.js +0 -36
  357. package/src/cell-renderers/dropdown-cell/DropdownCell.js +0 -84
  358. package/src/cell-renderers/dropdown-cell/index.js +0 -1
  359. package/src/cell-renderers/index.js +0 -6
  360. package/src/cell-renderers/lookup-cell/LookupCell.js +0 -15
  361. package/src/cell-renderers/lookup-cell/index.js +0 -1
  362. package/src/cell-renderers/pct-progress-cell/PctProgressCell.css.js +0 -31
  363. package/src/cell-renderers/pct-progress-cell/PctProgressCell.js +0 -49
  364. package/src/cell-renderers/pct-progress-cell/index.js +0 -1
  365. package/src/cell-renderers/progress-cell/ProgressCell.css.js +0 -43
  366. package/src/cell-renderers/progress-cell/ProgressCell.js +0 -74
  367. package/src/cell-renderers/progress-cell/index.js +0 -1
  368. package/src/column-expression-input/ColumnExpressionInput.css.js +0 -94
  369. package/src/column-expression-input/ColumnExpressionInput.js +0 -28
  370. package/src/column-expression-input/column-function-descriptors.js +0 -281
  371. package/src/column-expression-input/column-language-parser/ColumnExpressionLanguage.js +0 -18
  372. package/src/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js +0 -381
  373. package/src/column-expression-input/column-language-parser/column-expression-parse-utils.js +0 -56
  374. package/src/column-expression-input/column-language-parser/index.js +0 -3
  375. package/src/column-expression-input/functionDocInfo.js +0 -24
  376. package/src/column-expression-input/highlighting.js +0 -18
  377. package/src/column-expression-input/index.js +0 -4
  378. package/src/column-expression-input/theme.js +0 -57
  379. package/src/column-expression-input/useColumnAutoComplete.js +0 -307
  380. package/src/column-expression-input/useColumnExpressionEditor.js +0 -133
  381. package/src/column-expression-input/useColumnExpressionSuggestionProvider.js +0 -211
  382. package/src/column-formatting-settings/BaseNumericFormattingSettings.js +0 -96
  383. package/src/column-formatting-settings/ColumnFormattingPanel.js +0 -112
  384. package/src/column-formatting-settings/DateTimeFormattingSettings.js +0 -116
  385. package/src/column-formatting-settings/LongTypeFormattingSettings.css.js +0 -11
  386. package/src/column-formatting-settings/LongTypeFormattingSettings.js +0 -54
  387. package/src/column-formatting-settings/index.js +0 -3
  388. package/src/column-menu/ColumnMenu.css.js +0 -25
  389. package/src/column-menu/ColumnMenu.js +0 -69
  390. package/src/column-menu/column-action-types.js +0 -0
  391. package/src/column-menu/column-menu-utils.js +0 -318
  392. package/src/column-menu/useColumnActions.js +0 -77
  393. package/src/column-picker/ColumnModel.js +0 -113
  394. package/src/column-picker/ColumnPicker.css.js +0 -96
  395. package/src/column-picker/ColumnPicker.js +0 -204
  396. package/src/column-picker/ColumnPickerAction.js +0 -24
  397. package/src/column-picker/useColumnPicker.js +0 -42
  398. package/src/column-picker/useTableColumnPicker.js +0 -27
  399. package/src/column-picker/useTableColumnPickerDeprecated.js +0 -87
  400. package/src/column-settings-panel/ColumnNameLabel.css.js +0 -18
  401. package/src/column-settings-panel/ColumnNameLabel.js +0 -54
  402. package/src/column-settings-panel/ColumnSettingsPanel.css.js +0 -70
  403. package/src/column-settings-panel/ColumnSettingsPanel.js +0 -173
  404. package/src/column-settings-panel/useColumnSettings.js +0 -205
  405. package/src/csv-upload/CsvUpload.css.js +0 -28
  406. package/src/csv-upload/CsvUpload.js +0 -95
  407. package/src/csv-upload/index.js +0 -7
  408. package/src/csv-upload/parse/csv-errors.js +0 -54
  409. package/src/csv-upload/parse/csv-parse.js +0 -79
  410. package/src/csv-upload/parse/csv-schema-validation.js +0 -45
  411. package/src/csv-upload/parse/csv-upload-utils.js +0 -59
  412. package/src/csv-upload/parse/index.js +0 -5
  413. package/src/csv-upload/useCsvUpload.js +0 -260
  414. package/src/csv-upload/useCsvUploadSessionPreview.js +0 -70
  415. package/src/datasource-stats/DatasourceStats.css.js +0 -56
  416. package/src/datasource-stats/DatasourceStats.js +0 -89
  417. package/src/datasource-stats/useDatasourceStats.js +0 -48
  418. package/src/freeze-control/FreezeControl.css.js +0 -108
  419. package/src/freeze-control/FreezeControl.js +0 -96
  420. package/src/freeze-control/FrozenBanner.css.js +0 -16
  421. package/src/freeze-control/FrozenBanner.js +0 -48
  422. package/src/freeze-control/freezeControlBadge.js +0 -9
  423. package/src/freeze-control/useFreezeControl.js +0 -68
  424. package/src/index.js +0 -22
  425. package/src/tabbed-table-config-panel/TabbedTableConfigPanel.css.js +0 -23
  426. package/src/tabbed-table-config-panel/TabbedTableConfigPanel.js +0 -99
  427. package/src/tabbed-table-config-panel/TabbedTableSettingsAction.js +0 -28
  428. package/src/tabbed-table-config-panel/useTabbedTableConfigPanel.js +0 -29
  429. package/src/table-footer/TableFooter.css.js +0 -22
  430. package/src/table-footer/TableFooter.js +0 -30
  431. package/src/table-provider/TableProvider.js +0 -33
  432. package/src/table-settings-panel/TableSettingsPanel.css.js +0 -70
  433. package/src/table-settings-panel/TableSettingsPanel.js +0 -128
  434. package/src/table-settings-panel/useTableSettings.js +0 -50
@@ -0,0 +1,56 @@
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
+ rowActionHandlers
20
+ }) => {
21
+ return /* @__PURE__ */ jsx(
22
+ TableContext.Provider,
23
+ {
24
+ value: {
25
+ dataSource,
26
+ menuActionHandler,
27
+ rowActionHandlers
28
+ },
29
+ children
30
+ }
31
+ );
32
+ };
33
+ function useTableContext(throwIfNoDataSource = false) {
34
+ const { dataSource, menuActionHandler } = useContext(TableContext);
35
+ if (dataSource === NullDataSource && menuActionHandler == NullMenuActionHandler && throwIfNoDataSource) {
36
+ throw Error(`[TableProvider] no DataSourceProvider has been declared`);
37
+ } else {
38
+ return {
39
+ dataSource,
40
+ menuActionHandler
41
+ };
42
+ }
43
+ }
44
+ const useRowAction = (actionId) => {
45
+ const { rowActionHandlers } = useContext(TableContext);
46
+ if (rowActionHandlers?.[actionId]) {
47
+ return rowActionHandlers[actionId];
48
+ } else {
49
+ throw Error(
50
+ `[TableProvider] useRowAction, no action configured #${actionId}`
51
+ );
52
+ }
53
+ };
54
+
55
+ export { TableContext, TableProvider, useRowAction, useTableContext };
56
+ //# sourceMappingURL=TableProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableProvider.js","sources":["../../../../../../../packages/vuu-table-extras/src/table-provider/TableProvider.tsx"],"sourcesContent":["import type { MenuActionHandler } from \"@vuu-ui/vuu-context-menu\";\nimport type { DataSource } from \"@vuu-ui/vuu-data-types\";\nimport type { TableProps } from \"@vuu-ui/vuu-table\";\nimport type { ColumnDescriptor } from \"@vuu-ui/vuu-table-types\";\nimport { createContext, ReactNode, useContext } from \"react\";\nimport type { ColumnMenuActionType } from \"../column-menu/column-menu-utils\";\n\nexport interface TableContextProps\n extends Pick<TableProps, \"dataSource\" | \"rowActionHandlers\"> {\n menuActionHandler: MenuActionHandler<ColumnMenuActionType, ColumnDescriptor>;\n}\n\nconst NullMenuActionHandler = (menuItemId: string) => {\n console.log(\n `[TableContext] no menu action handler installed (menuItemHandler invoked with ${menuItemId})`,\n );\n return false;\n};\nconst NullDataSource = {} as DataSource;\n\nexport const TableContext = createContext<TableContextProps>({\n dataSource: NullDataSource,\n menuActionHandler: NullMenuActionHandler,\n});\n\nexport const TableProvider = ({\n children,\n dataSource,\n menuActionHandler,\n rowActionHandlers,\n}: TableContextProps & {\n children: ReactNode;\n}) => {\n return (\n <TableContext.Provider\n value={{\n dataSource,\n menuActionHandler,\n rowActionHandlers,\n }}\n >\n {children}\n </TableContext.Provider>\n );\n};\n\nexport function useTableContext(throwIfNoDataSource = false) {\n const { dataSource, menuActionHandler } = useContext(TableContext);\n if (\n dataSource === NullDataSource &&\n menuActionHandler == NullMenuActionHandler &&\n throwIfNoDataSource\n ) {\n throw Error(`[TableProvider] no DataSourceProvider has been declared`);\n } else {\n return {\n dataSource,\n menuActionHandler,\n };\n }\n}\n\nexport const useRowAction = (actionId: string) => {\n const { rowActionHandlers } = useContext(TableContext);\n if (rowActionHandlers?.[actionId]) {\n return rowActionHandlers[actionId];\n } else {\n throw Error(\n `[TableProvider] useRowAction, no action configured #${actionId}`,\n );\n }\n};\n"],"names":[],"mappings":";;;AAYA,MAAM,qBAAA,GAAwB,CAAC,UAAuB,KAAA;AACpD,EAAQ,OAAA,CAAA,GAAA;AAAA,IACN,iFAAiF,UAAU,CAAA,CAAA;AAAA,GAC7F;AACA,EAAO,OAAA,KAAA;AACT,CAAA;AACA,MAAM,iBAAiB,EAAC;AAEjB,MAAM,eAAe,aAAiC,CAAA;AAAA,EAC3D,UAAY,EAAA,cAAA;AAAA,EACZ,iBAAmB,EAAA;AACrB,CAAC;AAEM,MAAM,gBAAgB,CAAC;AAAA,EAC5B,QAAA;AAAA,EACA,UAAA;AAAA,EACA,iBAAA;AAAA,EACA;AACF,CAEM,KAAA;AACJ,EACE,uBAAA,GAAA;AAAA,IAAC,YAAa,CAAA,QAAA;AAAA,IAAb;AAAA,MACC,KAAO,EAAA;AAAA,QACL,UAAA;AAAA,QACA,iBAAA;AAAA,QACA;AAAA,OACF;AAAA,MAEC;AAAA;AAAA,GACH;AAEJ;AAEgB,SAAA,eAAA,CAAgB,sBAAsB,KAAO,EAAA;AAC3D,EAAA,MAAM,EAAE,UAAA,EAAY,iBAAkB,EAAA,GAAI,WAAW,YAAY,CAAA;AACjE,EAAA,IACE,UAAe,KAAA,cAAA,IACf,iBAAqB,IAAA,qBAAA,IACrB,mBACA,EAAA;AACA,IAAA,MAAM,MAAM,CAAyD,uDAAA,CAAA,CAAA;AAAA,GAChE,MAAA;AACL,IAAO,OAAA;AAAA,MACL,UAAA;AAAA,MACA;AAAA,KACF;AAAA;AAEJ;AAEa,MAAA,YAAA,GAAe,CAAC,QAAqB,KAAA;AAChD,EAAA,MAAM,EAAE,iBAAA,EAAsB,GAAA,UAAA,CAAW,YAAY,CAAA;AACrD,EAAI,IAAA,iBAAA,GAAoB,QAAQ,CAAG,EAAA;AACjC,IAAA,OAAO,kBAAkB,QAAQ,CAAA;AAAA,GAC5B,MAAA;AACL,IAAM,MAAA,KAAA;AAAA,MACJ,uDAAuD,QAAQ,CAAA;AAAA,KACjE;AAAA;AAEJ;;;;"}
@@ -0,0 +1,4 @@
1
+ var tableSettingsPanelCss = ".vuuTableSettingsPanel {\n --vuuScrollable-size: 6px;\n --vuu-svg-text-strikethrough: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 24\"><path d=\"M28.3333 9.33334C28.8867 9.33334 29.3333 8.88668 29.3333 8.33334C29.3333 7.78001 28.8867 7.33334 28.3333 7.33334H20.26L22.26 9.33334H23.48L23.1133 10.1867L24.5067 11.58L25.4733 9.33334H28.3333ZM27.6267 16.5867L18.7467 7.70668C18.4867 7.44668 18.0667 7.44668 17.8067 7.70668C17.5467 7.96668 17.5467 8.38668 17.8067 8.64668L21.98 12.82L20.88 15.38C20.62 15.9933 21.0667 16.6667 21.7267 16.6667C22.0933 16.6667 22.4267 16.4467 22.5733 16.1067L23.38 14.22L26.68 17.52C26.94 17.78 27.36 17.78 27.62 17.52C27.8867 17.2667 27.8867 16.8467 27.6267 16.5867Z\"/></svg>');\n --vuu-svg-text-Tt: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 24\"><path d=\"M17.6667 7.66666C17.6667 8.21999 18.1133 8.66666 18.6667 8.66666H21V15.6667C21 16.22 21.4467 16.6667 22 16.6667C22.5533 16.6667 23 16.22 23 15.6667V8.66666H25.3333C25.8867 8.66666 26.3333 8.21999 26.3333 7.66666C26.3333 7.11332 25.8867 6.66666 25.3333 6.66666H18.6667C18.1133 6.66666 17.6667 7.11332 17.6667 7.66666ZM29.3333 9.99999H25.3333C24.78 9.99999 24.3333 10.4467 24.3333 11C24.3333 11.5533 24.78 12 25.3333 12H26.3333V15.6667C26.3333 16.22 26.78 16.6667 27.3333 16.6667C27.8867 16.6667 28.3333 16.22 28.3333 15.6667V12H29.3333C29.8867 12 30.3333 11.5533 30.3333 11C30.3333 10.4467 29.8867 9.99999 29.3333 9.99999Z\" /></svg>');\n --vuu-svg-text-T: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 48 24\"><path d=\"M19.3333 7.66666C19.3333 8.21999 19.78 8.66666 20.3333 8.66666H23V15.6667C23 16.22 23.4467 16.6667 24 16.6667C24.5533 16.6667 25 16.22 25 15.6667V8.66666H27.6667C28.22 8.66666 28.6667 8.21999 28.6667 7.66666C28.6667 7.11332 28.22 6.66666 27.6667 6.66666H20.3333C19.78 6.66666 19.3333 7.11332 19.3333 7.66666Z\"/></svg>');\n --vuu-svg-stripes: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><rect x=\"2\" y=\"2\" width=\"12\" height=\"2\" rx=\"0.3\"/><rect x=\"2\" y=\"5\" width=\"12\" height=\"2\" rx=\"0.3\"/><rect x=\"2\" y=\"8\" width=\"12\" height=\"2\" rx=\"0.3\"/><rect x=\"2\" y=\"11\" width=\"12\" height=\"2\" rx=\"0.3\"/></svg>');\n --vuu-svg-row-lines: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><rect x=\"2\" y=\"3\" width=\"12\" height=\"1\" rx=\"0.3\" /><rect x=\"2\" y=\"6\" width=\"12\" height=\"1\" rx=\"0.3\" /><rect x=\"2\" y=\"9\" width=\"12\" height=\"1\" rx=\"0.3\" /><rect x=\"2\" y=\"12\" width=\"12\" height=\"1\" rx=\"0.3\"/></svg>');\n --vuu-svg-col-lines: url('data:image/svg+xml;utf8,<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 16 16\"><rect x=\"3\" y=\"14\" width=\"12\" height=\"1\" rx=\"0.3\" transform=\"rotate(-90 3 14)\"/><rect x=\"6\" y=\"14\" width=\"12\" height=\"1\" rx=\"0.3\" transform=\"rotate(-90 6 14)\"/><rect x=\"9\" y=\"14\" width=\"12\" height=\"1\" rx=\"0.3\" transform=\"rotate(-90 9 14)\"/><rect x=\"12\" y=\"14\" width=\"12\" height=\"1\" rx=\"0.3\" transform=\"rotate(-90 12 14)\"/></svg>');\n\n display: flex;\n flex-direction: column;\n gap: 24px;\n height: 100%;\n max-width: 254px;\n padding: 12px 2px var(--salt-spacing-200) 2px;\n}\n\n\n.vuuTableSettingsPanel [data-icon=\"text-strikethrough\"]{\n --vuu-icon-svg: var(--vuu-svg-text-strikethrough);\n}\n.vuuTableSettingsPanel [data-icon=\"text-Tt\"]{\n --vuu-icon-svg: var(--vuu-svg-text-Tt);\n}\n.vuuTableSettingsPanel [data-icon=\"text-T\"]{\n --vuu-icon-svg: var(--vuu-svg-text-T);\n}\n.vuuTableSettingsPanel [data-icon=\"col-lines\"]{\n --vuu-icon-svg: var(--vuu-svg-col-lines);\n}\n.vuuTableSettingsPanel [data-icon=\"row-lines\"]{\n --vuu-icon-svg: var(--vuu-svg-row-lines);\n}\n.vuuTableSettingsPanel [data-icon=\"row-striping\"]{\n --vuu-icon-svg: var(--vuu-svg-stripes);\n}\n\n.vuuTableSettingsPanel-header {\n font-size: 14px;\n font-weight: 600;\n padding-top: 24px;\n}\n\n.vuuTableSettingsPanel-columnListContainer {\n\n flex-grow: 1;\n flex-shrink: 1;\n flex-basis: 0;\n position: relative;\n overflow: auto;\n .vuuColumnList {\n height: 100%;\n }\n}\n\n.vuuTableSettingsPanel-calculatedButtonbar {\n --vuu-icon-size: 16px;\n --saltButton-height: 24px;\n --saltButton-width: 24px;\n align-items: center;\n display: flex;\n flex: 0 0 32px;\n gap: 12px;\n}\n\n\n\n\n\n\n";
2
+
3
+ export { tableSettingsPanelCss as default };
4
+ //# sourceMappingURL=TableSettingsPanel.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSettingsPanel.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -0,0 +1,112 @@
1
+ import { jsxs, jsx } from 'react/jsx-runtime';
2
+ import { FormField, FormFieldLabel, ToggleButtonGroup, ToggleButton } from '@salt-ds/core';
3
+ import { useComponentCssInjection } from '@salt-ds/styles';
4
+ import { useWindow } from '@salt-ds/window';
5
+ import { useTableSettings } from './useTableSettings.js';
6
+ import { VuuInput, Icon } from '@vuu-ui/vuu-ui-controls';
7
+ import tableSettingsPanelCss from './TableSettingsPanel.css.js';
8
+
9
+ const classBase = "vuuTableSettingsPanel";
10
+ const defaultTableSettingsPermissions = {
11
+ allowColumnLabelCase: true,
12
+ allowColumnDefaultWidth: true,
13
+ allowGridSeparators: true
14
+ };
15
+ const noTableSettingsPermissions = {
16
+ allowColumnLabelCase: false,
17
+ allowColumnDefaultWidth: false,
18
+ allowGridSeparators: false
19
+ };
20
+ const TableSettingsPanel = ({
21
+ onDisplayAttributeChange,
22
+ tableDisplayAttributes: tableDisplayAttributesProp,
23
+ permissions: permissionsProp
24
+ }) => {
25
+ const targetWindow = useWindow();
26
+ useComponentCssInjection({
27
+ testId: "vuu-table-settings-panel",
28
+ css: tableSettingsPanelCss,
29
+ window: targetWindow
30
+ });
31
+ const permissions = permissionsProp === void 0 || permissionsProp === true ? defaultTableSettingsPermissions : permissionsProp === false ? noTableSettingsPermissions : permissionsProp;
32
+ const {
33
+ columnLabelsValue,
34
+ onChangeColumnLabels,
35
+ onChangeTableAttribute,
36
+ onCommitColumnWidth,
37
+ tableDisplayAttributes
38
+ } = useTableSettings({
39
+ onDisplayAttributeChange,
40
+ tableDisplayAttributes: tableDisplayAttributesProp
41
+ });
42
+ const {
43
+ allowColumnLabelCase = true,
44
+ allowColumnDefaultWidth = true,
45
+ allowGridSeparators = true
46
+ } = permissions;
47
+ return /* @__PURE__ */ jsxs("div", { className: classBase, children: [
48
+ allowColumnDefaultWidth ? /* @__PURE__ */ jsxs(FormField, { children: [
49
+ /* @__PURE__ */ jsx(FormFieldLabel, { children: "Column Width" }),
50
+ /* @__PURE__ */ jsx(
51
+ VuuInput,
52
+ {
53
+ bordered: true,
54
+ className: "vuuInput",
55
+ "data-embedded": true,
56
+ onCommit: onCommitColumnWidth
57
+ }
58
+ )
59
+ ] }) : null,
60
+ allowColumnLabelCase ? /* @__PURE__ */ jsxs(FormField, { children: [
61
+ /* @__PURE__ */ jsx(FormFieldLabel, { children: "Column Labels" }),
62
+ /* @__PURE__ */ jsxs(
63
+ ToggleButtonGroup,
64
+ {
65
+ className: "vuuToggleButtonGroup",
66
+ onChange: onChangeColumnLabels,
67
+ value: columnLabelsValue,
68
+ children: [
69
+ /* @__PURE__ */ jsx(ToggleButton, { className: "vuuIconToggleButton", value: 0, children: /* @__PURE__ */ jsx(Icon, { name: "text-strikethrough", size: 48 }) }),
70
+ /* @__PURE__ */ jsx(ToggleButton, { className: "vuuIconToggleButton", value: 1, children: /* @__PURE__ */ jsx(Icon, { name: "text-Tt", size: 48 }) }),
71
+ /* @__PURE__ */ jsx(ToggleButton, { className: "vuuIconToggleButton", value: 2, children: /* @__PURE__ */ jsx(Icon, { name: "text-T", size: 48 }) })
72
+ ]
73
+ }
74
+ )
75
+ ] }) : null,
76
+ allowGridSeparators ? /* @__PURE__ */ jsxs(FormField, { children: [
77
+ /* @__PURE__ */ jsx(FormFieldLabel, { children: "Grid separators" }),
78
+ /* @__PURE__ */ jsxs("div", { className: "saltToggleButtonGroup vuuStateButtonGroup saltToggleButtonGroup-horizontal", children: [
79
+ /* @__PURE__ */ jsx(
80
+ ToggleButton,
81
+ {
82
+ selected: tableDisplayAttributes.zebraStripes ?? false,
83
+ onChange: onChangeTableAttribute,
84
+ value: "zebraStripes",
85
+ children: /* @__PURE__ */ jsx(Icon, { name: "row-striping", size: 16 })
86
+ }
87
+ ),
88
+ /* @__PURE__ */ jsx(
89
+ ToggleButton,
90
+ {
91
+ selected: tableDisplayAttributes.rowSeparators ?? false,
92
+ onChange: onChangeTableAttribute,
93
+ value: "rowSeparators",
94
+ children: /* @__PURE__ */ jsx(Icon, { name: "row-lines", size: 16 })
95
+ }
96
+ ),
97
+ /* @__PURE__ */ jsx(
98
+ ToggleButton,
99
+ {
100
+ selected: tableDisplayAttributes.columnSeparators ?? false,
101
+ onChange: onChangeTableAttribute,
102
+ value: "columnSeparators",
103
+ children: /* @__PURE__ */ jsx(Icon, { name: "col-lines", size: 16 })
104
+ }
105
+ )
106
+ ] })
107
+ ] }) : null
108
+ ] });
109
+ };
110
+
111
+ export { TableSettingsPanel, defaultTableSettingsPermissions, noTableSettingsPermissions };
112
+ //# sourceMappingURL=TableSettingsPanel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSettingsPanel.js","sources":["../../../../../../../packages/vuu-table-extras/src/table-settings-panel/TableSettingsPanel.tsx"],"sourcesContent":["import {\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 TableDisplayAttributes,\n TableSettingsPermissions,\n} from \"@vuu-ui/vuu-table-types\";\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 };\nexport const noTableSettingsPermissions: Readonly<TableSettingsPermissions> = {\n allowColumnLabelCase: false,\n allowColumnDefaultWidth: false,\n allowGridSeparators: false,\n};\n\nexport type TableDisplayAttributeChangeHandler = (\n displayAttributes: TableDisplayAttributes,\n) => void;\n\n/**\n * Describes the props for a Table Configuration Editor, for which\n * an implementation is provided in vuu-table-extras\n */\nexport interface TableSettingsPanelProps {\n allowColumnLabelCase?: boolean;\n allowColumnDefaultWidth?: boolean;\n allowGridRowStyling?: boolean;\n onDisplayAttributeChange: TableDisplayAttributeChangeHandler;\n tableDisplayAttributes: TableDisplayAttributes;\n permissions?: TableSettingsPermissions | boolean;\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 onDisplayAttributeChange,\n tableDisplayAttributes: tableDisplayAttributesProp,\n permissions: permissionsProp,\n}: TableSettingsPanelProps) => {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"vuu-table-settings-panel\",\n css: tableSettingsPanelCss,\n window: targetWindow,\n });\n\n const permissions =\n permissionsProp === undefined || permissionsProp === true\n ? defaultTableSettingsPermissions\n : permissionsProp === false\n ? noTableSettingsPermissions\n : permissionsProp;\n\n const {\n columnLabelsValue,\n onChangeColumnLabels,\n onChangeTableAttribute,\n onCommitColumnWidth,\n tableDisplayAttributes,\n } = useTableSettings({\n onDisplayAttributeChange,\n tableDisplayAttributes: tableDisplayAttributesProp,\n });\n\n const {\n allowColumnLabelCase = true,\n allowColumnDefaultWidth = true,\n allowGridSeparators = true,\n } = permissions;\n\n return (\n <div className={classBase}>\n {allowColumnDefaultWidth ? (\n <FormField>\n <FormFieldLabel>Column Width</FormFieldLabel>\n <VuuInput\n bordered\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={tableDisplayAttributes.zebraStripes ?? false}\n onChange={onChangeTableAttribute}\n value=\"zebraStripes\"\n >\n <Icon name=\"row-striping\" size={16} />\n </ToggleButton>\n <ToggleButton\n selected={tableDisplayAttributes.rowSeparators ?? false}\n onChange={onChangeTableAttribute}\n value=\"rowSeparators\"\n >\n <Icon name=\"row-lines\" size={16} />\n </ToggleButton>\n <ToggleButton\n selected={tableDisplayAttributes.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 </div>\n );\n};\n"],"names":[],"mappings":";;;;;;;;AAkBA,MAAM,SAAY,GAAA,uBAAA;AAEX,MAAM,+BACX,GAAA;AAAA,EACE,oBAAsB,EAAA,IAAA;AAAA,EACtB,uBAAyB,EAAA,IAAA;AAAA,EACzB,mBAAqB,EAAA;AACvB;AACK,MAAM,0BAAiE,GAAA;AAAA,EAC5E,oBAAsB,EAAA,KAAA;AAAA,EACtB,uBAAyB,EAAA,KAAA;AAAA,EACzB,mBAAqB,EAAA;AACvB;AAwBO,MAAM,qBAAqB,CAAC;AAAA,EACjC,wBAAA;AAAA,EACA,sBAAwB,EAAA,0BAAA;AAAA,EACxB,WAAa,EAAA;AACf,CAA+B,KAAA;AAC7B,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,0BAAA;AAAA,IACR,GAAK,EAAA,qBAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA,WAAA,GACJ,oBAAoB,KAAa,CAAA,IAAA,eAAA,KAAoB,OACjD,+BACA,GAAA,eAAA,KAAoB,QAClB,0BACA,GAAA,eAAA;AAER,EAAM,MAAA;AAAA,IACJ,iBAAA;AAAA,IACA,oBAAA;AAAA,IACA,sBAAA;AAAA,IACA,mBAAA;AAAA,IACA;AAAA,MACE,gBAAiB,CAAA;AAAA,IACnB,wBAAA;AAAA,IACA,sBAAwB,EAAA;AAAA,GACzB,CAAA;AAED,EAAM,MAAA;AAAA,IACJ,oBAAuB,GAAA,IAAA;AAAA,IACvB,uBAA0B,GAAA,IAAA;AAAA,IAC1B,mBAAsB,GAAA;AAAA,GACpB,GAAA,WAAA;AAEJ,EACE,uBAAA,IAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAW,SACb,EAAA,QAAA,EAAA;AAAA,IAAA,uBAAA,wBACE,SACC,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,kBAAe,QAAY,EAAA,cAAA,EAAA,CAAA;AAAA,sBAC5B,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,QAAQ,EAAA,IAAA;AAAA,UACR,SAAU,EAAA,UAAA;AAAA,UACV,eAAa,EAAA,IAAA;AAAA,UACb,QAAU,EAAA;AAAA;AAAA;AACZ,KAAA,EACF,CACE,GAAA,IAAA;AAAA,IAEH,oBAAA,wBACE,SACC,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,kBAAe,QAAa,EAAA,eAAA,EAAA,CAAA;AAAA,sBAC7B,IAAA;AAAA,QAAC,iBAAA;AAAA,QAAA;AAAA,UACC,SAAU,EAAA,sBAAA;AAAA,UACV,QAAU,EAAA,oBAAA;AAAA,UACV,KAAO,EAAA,iBAAA;AAAA,UAEP,QAAA,EAAA;AAAA,4BAAC,GAAA,CAAA,YAAA,EAAA,EAAa,SAAU,EAAA,qBAAA,EAAsB,KAAO,EAAA,CAAA,EACnD,QAAC,kBAAA,GAAA,CAAA,IAAA,EAAA,EAAK,IAAK,EAAA,oBAAA,EAAqB,IAAM,EAAA,EAAA,EAAI,CAC5C,EAAA,CAAA;AAAA,4BACC,GAAA,CAAA,YAAA,EAAA,EAAa,SAAU,EAAA,qBAAA,EAAsB,KAAO,EAAA,CAAA,EACnD,QAAC,kBAAA,GAAA,CAAA,IAAA,EAAA,EAAK,IAAK,EAAA,SAAA,EAAU,IAAM,EAAA,EAAA,EAAI,CACjC,EAAA,CAAA;AAAA,4BACC,GAAA,CAAA,YAAA,EAAA,EAAa,SAAU,EAAA,qBAAA,EAAsB,KAAO,EAAA,CAAA,EACnD,QAAC,kBAAA,GAAA,CAAA,IAAA,EAAA,EAAK,IAAK,EAAA,QAAA,EAAS,IAAM,EAAA,EAAA,EAAI,CAChC,EAAA;AAAA;AAAA;AAAA;AACF,KAAA,EACF,CACE,GAAA,IAAA;AAAA,IAEH,mBAAA,wBACE,SACC,EAAA,EAAA,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,kBAAe,QAAe,EAAA,iBAAA,EAAA,CAAA;AAAA,sBAC/B,IAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,4EACb,EAAA,QAAA,EAAA;AAAA,wBAAA,GAAA;AAAA,UAAC,YAAA;AAAA,UAAA;AAAA,YACC,QAAA,EAAU,uBAAuB,YAAgB,IAAA,KAAA;AAAA,YACjD,QAAU,EAAA,sBAAA;AAAA,YACV,KAAM,EAAA,cAAA;AAAA,YAEN,QAAC,kBAAA,GAAA,CAAA,IAAA,EAAA,EAAK,IAAK,EAAA,cAAA,EAAe,MAAM,EAAI,EAAA;AAAA;AAAA,SACtC;AAAA,wBACA,GAAA;AAAA,UAAC,YAAA;AAAA,UAAA;AAAA,YACC,QAAA,EAAU,uBAAuB,aAAiB,IAAA,KAAA;AAAA,YAClD,QAAU,EAAA,sBAAA;AAAA,YACV,KAAM,EAAA,eAAA;AAAA,YAEN,QAAC,kBAAA,GAAA,CAAA,IAAA,EAAA,EAAK,IAAK,EAAA,WAAA,EAAY,MAAM,EAAI,EAAA;AAAA;AAAA,SACnC;AAAA,wBACA,GAAA;AAAA,UAAC,YAAA;AAAA,UAAA;AAAA,YACC,QAAA,EAAU,uBAAuB,gBAAoB,IAAA,KAAA;AAAA,YACrD,QAAU,EAAA,sBAAA;AAAA,YACV,KAAM,EAAA,kBAAA;AAAA,YAEN,QAAC,kBAAA,GAAA,CAAA,IAAA,EAAA,EAAK,IAAK,EAAA,WAAA,EAAY,MAAM,EAAI,EAAA;AAAA;AAAA;AACnC,OACF,EAAA;AAAA,KAAA,EACF,CACE,GAAA;AAAA,GACN,EAAA,CAAA;AAEJ;;;;"}
@@ -0,0 +1,58 @@
1
+ import { queryClosest, useLayoutEffectSkipFirst } from '@vuu-ui/vuu-utils';
2
+ import { useState, useCallback } from 'react';
3
+
4
+ const useTableSettings = ({
5
+ onDisplayAttributeChange,
6
+ tableDisplayAttributes: tableDisplayAttributesProp
7
+ }) => {
8
+ const [tableDisplayAttributes, setDisplayTableAttributes] = useState(tableDisplayAttributesProp);
9
+ const handleChangeColumnLabels = useCallback((evt) => {
10
+ const button = queryClosest(evt.target, "button");
11
+ if (button) {
12
+ const value = parseInt(button.value);
13
+ const columnFormatHeader = value === 0 ? void 0 : value === 1 ? "capitalize" : "uppercase";
14
+ setDisplayTableAttributes((state) => ({
15
+ ...state,
16
+ columnFormatHeader
17
+ }));
18
+ }
19
+ }, []);
20
+ const handleChangeTableAttribute = useCallback(
21
+ (evt) => {
22
+ const button = queryClosest(evt.target, "button");
23
+ if (button) {
24
+ const { ariaPressed, value } = button;
25
+ setDisplayTableAttributes((state) => ({
26
+ ...state,
27
+ [value]: ariaPressed !== "true"
28
+ }));
29
+ }
30
+ },
31
+ []
32
+ );
33
+ const handleCommitColumnWidth = useCallback((_, value) => {
34
+ if (typeof value === "string") {
35
+ const columnDefaultWidth = parseInt(value);
36
+ if (!isNaN(columnDefaultWidth)) {
37
+ setDisplayTableAttributes((state) => ({
38
+ ...state,
39
+ columnDefaultWidth
40
+ }));
41
+ }
42
+ }
43
+ }, []);
44
+ useLayoutEffectSkipFirst(() => {
45
+ onDisplayAttributeChange?.(tableDisplayAttributes);
46
+ }, [onDisplayAttributeChange, tableDisplayAttributes]);
47
+ const columnLabelsValue = tableDisplayAttributes.columnFormatHeader === void 0 ? 0 : tableDisplayAttributes.columnFormatHeader === "capitalize" ? 1 : 2;
48
+ return {
49
+ columnLabelsValue,
50
+ onChangeColumnLabels: handleChangeColumnLabels,
51
+ onChangeTableAttribute: handleChangeTableAttribute,
52
+ onCommitColumnWidth: handleCommitColumnWidth,
53
+ tableDisplayAttributes
54
+ };
55
+ };
56
+
57
+ export { useTableSettings };
58
+ //# sourceMappingURL=useTableSettings.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableSettings.js","sources":["../../../../../../../packages/vuu-table-extras/src/table-settings-panel/useTableSettings.ts"],"sourcesContent":["import { TableDisplayAttributes } from \"@vuu-ui/vuu-table-types\";\nimport {\n queryClosest,\n useLayoutEffectSkipFirst,\n CommitHandler,\n} from \"@vuu-ui/vuu-utils\";\nimport { MouseEvent, SyntheticEvent, useCallback, useState } from \"react\";\nimport { TableSettingsPanelProps } from \"./TableSettingsPanel\";\n\nexport type ColumnLike = {\n name: string;\n};\n\nexport const useTableSettings = ({\n onDisplayAttributeChange,\n tableDisplayAttributes: tableDisplayAttributesProp,\n}: TableSettingsPanelProps) => {\n const [tableDisplayAttributes, setDisplayTableAttributes] =\n useState<TableDisplayAttributes>(tableDisplayAttributesProp);\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 setDisplayTableAttributes((state) => ({\n ...state,\n columnFormatHeader,\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 setDisplayTableAttributes((state) => ({\n ...state,\n [value]: ariaPressed !== \"true\",\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 setDisplayTableAttributes((state) => ({\n ...state,\n columnDefaultWidth,\n }));\n }\n }\n }, []);\n\n useLayoutEffectSkipFirst(() => {\n onDisplayAttributeChange?.(tableDisplayAttributes);\n }, [onDisplayAttributeChange, tableDisplayAttributes]);\n\n const columnLabelsValue =\n tableDisplayAttributes.columnFormatHeader === undefined\n ? 0\n : tableDisplayAttributes.columnFormatHeader === \"capitalize\"\n ? 1\n : 2;\n\n return {\n columnLabelsValue,\n onChangeColumnLabels: handleChangeColumnLabels,\n onChangeTableAttribute: handleChangeTableAttribute,\n onCommitColumnWidth: handleCommitColumnWidth,\n tableDisplayAttributes,\n };\n};\n"],"names":[],"mappings":";;;AAaO,MAAM,mBAAmB,CAAC;AAAA,EAC/B,wBAAA;AAAA,EACA,sBAAwB,EAAA;AAC1B,CAA+B,KAAA;AAC7B,EAAA,MAAM,CAAC,sBAAA,EAAwB,yBAAyB,CAAA,GACtD,SAAiC,0BAA0B,CAAA;AAE7D,EAAM,MAAA,wBAAA,GAA2B,WAAY,CAAA,CAAC,GAAwB,KAAA;AACpE,IAAA,MAAM,MAAS,GAAA,YAAA,CAAgC,GAAI,CAAA,MAAA,EAAQ,QAAQ,CAAA;AACnE,IAAA,IAAI,MAAQ,EAAA;AACV,MAAM,MAAA,KAAA,GAAQ,QAAS,CAAA,MAAA,CAAO,KAAK,CAAA;AACnC,MAAA,MAAM,qBACJ,KAAU,KAAA,CAAA,GAAI,KAAY,CAAA,GAAA,KAAA,KAAU,IAAI,YAAe,GAAA,WAAA;AACzD,MAAA,yBAAA,CAA0B,CAAC,KAAW,MAAA;AAAA,QACpC,GAAG,KAAA;AAAA,QACH;AAAA,OACA,CAAA,CAAA;AAAA;AACJ,GACF,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,0BAA6B,GAAA,WAAA;AAAA,IACjC,CAAC,GAAuC,KAAA;AACtC,MAAA,MAAM,MAAS,GAAA,YAAA,CAAgC,GAAI,CAAA,MAAA,EAAQ,QAAQ,CAAA;AACnE,MAAA,IAAI,MAAQ,EAAA;AACV,QAAM,MAAA,EAAE,WAAa,EAAA,KAAA,EAAU,GAAA,MAAA;AAC/B,QAAA,yBAAA,CAA0B,CAAC,KAAW,MAAA;AAAA,UACpC,GAAG,KAAA;AAAA,UACH,CAAC,KAAK,GAAG,WAAgB,KAAA;AAAA,SACzB,CAAA,CAAA;AAAA;AACJ,KACF;AAAA,IACA;AAAC,GACH;AAEA,EAAA,MAAM,uBAA0B,GAAA,WAAA,CAA2B,CAAC,CAAA,EAAG,KAAU,KAAA;AACvE,IAAI,IAAA,OAAO,UAAU,QAAU,EAAA;AAC7B,MAAM,MAAA,kBAAA,GAAqB,SAAS,KAAK,CAAA;AACzC,MAAI,IAAA,CAAC,KAAM,CAAA,kBAAkB,CAAG,EAAA;AAC9B,QAAA,yBAAA,CAA0B,CAAC,KAAW,MAAA;AAAA,UACpC,GAAG,KAAA;AAAA,UACH;AAAA,SACA,CAAA,CAAA;AAAA;AACJ;AACF,GACF,EAAG,EAAE,CAAA;AAEL,EAAA,wBAAA,CAAyB,MAAM;AAC7B,IAAA,wBAAA,GAA2B,sBAAsB,CAAA;AAAA,GAChD,EAAA,CAAC,wBAA0B,EAAA,sBAAsB,CAAC,CAAA;AAErD,EAAM,MAAA,iBAAA,GACJ,uBAAuB,kBAAuB,KAAA,KAAA,CAAA,GAC1C,IACA,sBAAuB,CAAA,kBAAA,KAAuB,eAC5C,CACA,GAAA,CAAA;AAER,EAAO,OAAA;AAAA,IACL,iBAAA;AAAA,IACA,oBAAsB,EAAA,wBAAA;AAAA,IACtB,sBAAwB,EAAA,0BAAA;AAAA,IACxB,mBAAqB,EAAA,uBAAA;AAAA,IACrB;AAAA,GACF;AACF;;;;"}
package/package.json CHANGED
@@ -1,21 +1,20 @@
1
1
  {
2
- "version": "2.1.19-beta.2",
2
+ "version": "2.1.19-beta.3",
3
3
  "author": "heswell",
4
4
  "license": "Apache-2.0",
5
- "type": "module",
6
5
  "devDependencies": {
7
- "@vuu-ui/vuu-filter-types": "2.1.19-beta.2",
8
- "@vuu-ui/vuu-protocol-types": "2.1.19-beta.2"
6
+ "@vuu-ui/vuu-filter-types": "2.1.19-beta.3",
7
+ "@vuu-ui/vuu-protocol-types": "2.1.19-beta.3"
9
8
  },
10
9
  "dependencies": {
11
- "@vuu-ui/vuu-codemirror": "2.1.19-beta.2",
12
- "@vuu-ui/vuu-data-react": "2.1.19-beta.2",
13
- "@vuu-ui/vuu-data-types": "2.1.19-beta.2",
14
- "@vuu-ui/vuu-table-types": "2.1.19-beta.2",
15
- "@vuu-ui/vuu-popups": "2.1.19-beta.2",
16
- "@vuu-ui/vuu-table": "2.1.19-beta.2",
17
- "@vuu-ui/vuu-utils": "2.1.19-beta.2",
18
- "@vuu-ui/vuu-ui-controls": "2.1.19-beta.2",
10
+ "@vuu-ui/vuu-codemirror": "2.1.19-beta.3",
11
+ "@vuu-ui/vuu-data-react": "2.1.19-beta.3",
12
+ "@vuu-ui/vuu-data-types": "2.1.19-beta.3",
13
+ "@vuu-ui/vuu-table-types": "2.1.19-beta.3",
14
+ "@vuu-ui/vuu-popups": "2.1.19-beta.3",
15
+ "@vuu-ui/vuu-table": "2.1.19-beta.3",
16
+ "@vuu-ui/vuu-utils": "2.1.19-beta.3",
17
+ "@vuu-ui/vuu-ui-controls": "2.1.19-beta.3",
19
18
  "@lezer/lr": "1.4.2",
20
19
  "@salt-ds/core": "1.54.1",
21
20
  "@salt-ds/lab": "1.0.0-alpha.83",
@@ -29,18 +28,22 @@
29
28
  "react": "^19.2.3",
30
29
  "react-dom": "^19.2.3"
31
30
  },
31
+ "type": "module",
32
32
  "files": [
33
33
  "README.md",
34
- "src",
34
+ "esm",
35
+ "cjs",
35
36
  "/types"
36
37
  ],
37
38
  "exports": {
38
39
  ".": {
39
- "import": "./src/index.js",
40
+ "require": "./cjs/packages/vuu-table-extras/src/index.js",
41
+ "import": "./esm/packages/vuu-table-extras/src/index.js",
40
42
  "types": "./types/index.d.ts"
41
43
  }
42
44
  },
43
- "module": "index.js",
45
+ "main": "cjs/index.js",
46
+ "module": "esm/index.js",
44
47
  "name": "@vuu-ui/vuu-table-extras",
45
48
  "types": "types/index.d.ts"
46
49
  }
@@ -1,2 +1,2 @@
1
1
  import { TableCellRendererProps } from "@vuu-ui/vuu-table-types";
2
- export declare const BackgroundCell: import("react").MemoExoticComponent<({ column, dataRow, }: TableCellRendererProps) => import("react/jsx-runtime").JSX.Element>;
2
+ export declare const BackgroundCell: import("react").NamedExoticComponent<TableCellRendererProps>;
@@ -1,2 +1,2 @@
1
1
  import { TableCellRendererProps } from "@vuu-ui/vuu-table-types";
2
- export declare const DropdownCell: import("react").MemoExoticComponent<({ column, dataRow, editedDuringCurrentSession, onEdit, }: TableCellRendererProps) => import("react/jsx-runtime").JSX.Element>;
2
+ export declare const DropdownCell: import("react").NamedExoticComponent<TableCellRendererProps>;
@@ -1,2 +1,2 @@
1
1
  import { TableCellRendererProps } from "@vuu-ui/vuu-table-types";
2
- export declare const LookupCell: import("react").MemoExoticComponent<({ column, dataRow, }: TableCellRendererProps) => import("react/jsx-runtime").JSX.Element>;
2
+ export declare const LookupCell: import("react").NamedExoticComponent<TableCellRendererProps>;
@@ -1,2 +1,2 @@
1
+ export const parser: LRParser;
1
2
  import { LRParser } from "@lezer/lr";
2
- export declare const parser: LRParser;
@@ -1 +1,24 @@
1
- export declare const ColumnDefinitionExpression = 1, Column = 2, Number = 3, String = 4, True = 5, False = 6, ParenthesizedExpression = 7, OpenBrace = 8, CloseBrace = 9, ArithmeticExpression = 10, Divide = 11, Times = 12, Plus = 13, Minus = 14, ConditionalExpression = 15, If = 16, RelationalExpression = 17, RelationalOperator = 18, AndCondition = 19, OrCondition = 20, Comma = 21, CallExpression = 22, Function = 23, ArgList = 24;
1
+ export const ColumnDefinitionExpression: 1;
2
+ export const Column: 2;
3
+ export const Number: 3;
4
+ export const String: 4;
5
+ export const True: 5;
6
+ export const False: 6;
7
+ export const ParenthesizedExpression: 7;
8
+ export const OpenBrace: 8;
9
+ export const CloseBrace: 9;
10
+ export const ArithmeticExpression: 10;
11
+ export const Divide: 11;
12
+ export const Times: 12;
13
+ export const Plus: 13;
14
+ export const Minus: 14;
15
+ export const ConditionalExpression: 15;
16
+ export const If: 16;
17
+ export const RelationalExpression: 17;
18
+ export const RelationalOperator: 18;
19
+ export const AndCondition: 19;
20
+ export const OrCondition: 20;
21
+ export const Comma: 21;
22
+ export const CallExpression: 22;
23
+ export const Function: 23;
24
+ export const ArgList: 24;
@@ -1 +1 @@
1
- export declare const walkTree: (tree: any, source: any) => void;
1
+ export function walkTree(tree: any, source: any): void;
@@ -4,7 +4,7 @@ export interface FreezeProps {
4
4
  dataSource: DataSource;
5
5
  }
6
6
  export declare const useFreezeControl: ({ dataSource }: FreezeProps) => {
7
+ onToggleChange: (evt: SyntheticEvent<HTMLButtonElement>) => void;
7
8
  isFrozen: boolean;
8
9
  newRecordCount: number;
9
- onToggleChange: (evt: SyntheticEvent<HTMLButtonElement>) => void;
10
10
  };
@@ -1,95 +0,0 @@
1
- import { jsx, jsxs } from "react/jsx-runtime";
2
- import { Dropdown, FormField, FormFieldLabel, Input, Option } from "@salt-ds/core";
3
- import { useCalculatedColumnPanel } from "./useCalculatedColumnPanel.js";
4
- import { useCallback, useRef } from "react";
5
- import { getCalculatedColumnDetails } from "@vuu-ui/vuu-utils";
6
- import { ColumnExpressionInput, useColumnExpressionSuggestionProvider } from "../column-expression-input/index.js";
7
- const classBase = "vuuCalculatedColumnPanel";
8
- const CalculatedColumnPanel = ({ column: columnProp, columnModel, onChangeColumn, onChangeServerDataType: onChangeServerDataTypeProp, vuuTable })=>{
9
- const typeRef = useRef(null);
10
- const { column, onChangeExpression, onChangeName, onChangeServerDataType } = useCalculatedColumnPanel({
11
- column: columnProp,
12
- onChangeColumn,
13
- onChangeServerDataType: onChangeServerDataTypeProp
14
- });
15
- const initialExpressionRef = useRef(getCalculatedColumnDetails(column).expression ?? "");
16
- const suggestionProvider = useColumnExpressionSuggestionProvider({
17
- columns: columnModel.selectedColumns,
18
- table: vuuTable
19
- });
20
- const handleSubmitExpression = useCallback(()=>{
21
- if (typeRef.current) typeRef.current?.querySelector("button")?.focus();
22
- }, []);
23
- const { name, serverDataType } = getCalculatedColumnDetails(column);
24
- return /*#__PURE__*/ jsxs("div", {
25
- className: classBase,
26
- children: [
27
- /*#__PURE__*/ jsx("div", {
28
- children: column.name
29
- }),
30
- /*#__PURE__*/ jsxs(FormField, {
31
- "data-field": "column-name",
32
- children: [
33
- /*#__PURE__*/ jsx(FormFieldLabel, {
34
- children: "Column Label"
35
- }),
36
- /*#__PURE__*/ jsx(Input, {
37
- className: "vuuInput",
38
- onChange: onChangeName,
39
- value: name
40
- })
41
- ]
42
- }),
43
- /*#__PURE__*/ jsxs(FormField, {
44
- "data-field": "column-expression",
45
- children: [
46
- /*#__PURE__*/ jsx(FormFieldLabel, {
47
- children: "Expression"
48
- }),
49
- /*#__PURE__*/ jsx(ColumnExpressionInput, {
50
- onChange: onChangeExpression,
51
- onSubmitExpression: handleSubmitExpression,
52
- source: initialExpressionRef.current,
53
- suggestionProvider: suggestionProvider
54
- })
55
- ]
56
- }),
57
- /*#__PURE__*/ jsxs(FormField, {
58
- "data-field": "type",
59
- children: [
60
- /*#__PURE__*/ jsx(FormFieldLabel, {
61
- children: "Column type"
62
- }),
63
- /*#__PURE__*/ jsxs(Dropdown, {
64
- className: `${classBase}-type`,
65
- onSelectionChange: onChangeServerDataType,
66
- ref: typeRef,
67
- selected: serverDataType ? [
68
- serverDataType
69
- ] : [],
70
- value: serverDataType,
71
- children: [
72
- /*#__PURE__*/ jsx(Option, {
73
- value: "boolean",
74
- children: "Boolean"
75
- }),
76
- /*#__PURE__*/ jsx(Option, {
77
- value: "double",
78
- children: "Double"
79
- }),
80
- /*#__PURE__*/ jsx(Option, {
81
- value: "long",
82
- children: "Long"
83
- }),
84
- /*#__PURE__*/ jsx(Option, {
85
- value: "string",
86
- children: "String"
87
- })
88
- ]
89
- })
90
- ]
91
- })
92
- ]
93
- });
94
- };
95
- export { CalculatedColumnPanel };
@@ -1,60 +0,0 @@
1
- import { getCalculatedColumnDetails, isVuuColumnDataType, setCalculatedColumnExpression, setCalculatedColumnName, setCalculatedColumnType } from "@vuu-ui/vuu-utils";
2
- import { useCallback, useRef, useState } from "react";
3
- const applyDefaults = (column)=>{
4
- const { name, expression, serverDataType } = getCalculatedColumnDetails(column);
5
- if (void 0 === serverDataType) return {
6
- ...column,
7
- name: `${name}:string:${expression}`
8
- };
9
- return column;
10
- };
11
- const useCalculatedColumnPanel = ({ column: columnProp, onChangeColumn, onChangeServerDataType: onChangeServerDataTypeProp })=>{
12
- const [column, _setColumn] = useState(applyDefaults(columnProp));
13
- const columnRef = useRef(columnProp);
14
- const setColumn = useCallback((column)=>{
15
- columnRef.current = column;
16
- _setColumn(column);
17
- }, []);
18
- const onChangeName = useCallback((evt)=>{
19
- const { value } = evt.target;
20
- const newColumn = setCalculatedColumnName(column, value);
21
- console.log(`name = ${newColumn.name}`);
22
- setColumn(newColumn);
23
- onChangeColumn(newColumn);
24
- }, [
25
- column,
26
- onChangeColumn,
27
- setColumn
28
- ]);
29
- const onChangeExpression = useCallback((value)=>{
30
- console.log(`expression = ${value}`);
31
- const expression = value.trim();
32
- const { current: column } = columnRef;
33
- const newColumn = setCalculatedColumnExpression(column, expression);
34
- setColumn(newColumn);
35
- onChangeColumn(newColumn);
36
- }, [
37
- onChangeColumn,
38
- setColumn
39
- ]);
40
- const onChangeServerDataType = useCallback((_e, [serverDataType])=>{
41
- if (isVuuColumnDataType(serverDataType)) {
42
- const newColumn = setCalculatedColumnType(column, serverDataType);
43
- setColumn(newColumn);
44
- onChangeServerDataTypeProp?.(serverDataType);
45
- onChangeColumn(newColumn);
46
- }
47
- }, [
48
- column,
49
- onChangeColumn,
50
- onChangeServerDataTypeProp,
51
- setColumn
52
- ]);
53
- return {
54
- column,
55
- onChangeExpression,
56
- onChangeName,
57
- onChangeServerDataType
58
- };
59
- };
60
- export { useCalculatedColumnPanel };