@vuu-ui/vuu-table-extras 2.1.17 → 2.1.19-beta.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (311) hide show
  1. package/package.json +16 -17
  2. package/types/cell-renderers/background-cell/BackgroundCell.d.ts +1 -1
  3. package/types/cell-renderers/dropdown-cell/DropdownCell.d.ts +1 -1
  4. package/types/cell-renderers/lookup-cell/LookupCell.d.ts +1 -1
  5. package/types/column-expression-input/column-language-parser/generated/column-parser.d.ts +1 -1
  6. package/types/column-expression-input/column-language-parser/generated/column-parser.terms.d.ts +1 -24
  7. package/types/column-expression-input/column-language-parser/test.d.mts +1 -1
  8. package/types/csv-upload/CsvUpload.d.ts +47 -0
  9. package/types/csv-upload/index.d.ts +7 -0
  10. package/types/csv-upload/parse/csv-constants.d.ts +2 -0
  11. package/types/csv-upload/parse/csv-errors.d.ts +46 -0
  12. package/types/csv-upload/parse/csv-parse.d.ts +11 -0
  13. package/types/csv-upload/parse/csv-schema-validation.d.ts +16 -0
  14. package/types/csv-upload/parse/csv-upload-utils.d.ts +21 -0
  15. package/types/csv-upload/parse/index.d.ts +5 -0
  16. package/types/csv-upload/useCsvUpload.d.ts +26 -0
  17. package/types/csv-upload/useCsvUploadSessionPreview.d.ts +10 -0
  18. package/types/freeze-control/useFreezeControl.d.ts +1 -1
  19. package/types/index.d.ts +1 -0
  20. package/cjs/calculated-column/CalculatedColumnPanel.js +0 -85
  21. package/cjs/calculated-column/CalculatedColumnPanel.js.map +0 -1
  22. package/cjs/calculated-column/useCalculatedColumnPanel.js +0 -71
  23. package/cjs/calculated-column/useCalculatedColumnPanel.js.map +0 -1
  24. package/cjs/calculated-column/useEditCalculatedColumn.js +0 -138
  25. package/cjs/calculated-column/useEditCalculatedColumn.js.map +0 -1
  26. package/cjs/cell-edit-validators/CaseValidator.js +0 -25
  27. package/cjs/cell-edit-validators/CaseValidator.js.map +0 -1
  28. package/cjs/cell-edit-validators/PatternValidator.js +0 -31
  29. package/cjs/cell-edit-validators/PatternValidator.js.map +0 -1
  30. package/cjs/cell-renderers/background-cell/BackgroundCell.css.js +0 -6
  31. package/cjs/cell-renderers/background-cell/BackgroundCell.css.js.map +0 -1
  32. package/cjs/cell-renderers/background-cell/BackgroundCell.js +0 -81
  33. package/cjs/cell-renderers/background-cell/BackgroundCell.js.map +0 -1
  34. package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js +0 -6
  35. package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js.map +0 -1
  36. package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js +0 -67
  37. package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +0 -1
  38. package/cjs/cell-renderers/background-cell/BackgroundKeyframes.css.js +0 -6
  39. package/cjs/cell-renderers/background-cell/BackgroundKeyframes.css.js.map +0 -1
  40. package/cjs/cell-renderers/background-cell/useDirection.js +0 -20
  41. package/cjs/cell-renderers/background-cell/useDirection.js.map +0 -1
  42. package/cjs/cell-renderers/button-cell/IconButtonCell.css.js +0 -6
  43. package/cjs/cell-renderers/button-cell/IconButtonCell.css.js.map +0 -1
  44. package/cjs/cell-renderers/button-cell/IconButtonCell.js +0 -40
  45. package/cjs/cell-renderers/button-cell/IconButtonCell.js.map +0 -1
  46. package/cjs/cell-renderers/dropdown-cell/DropdownCell.css.js +0 -6
  47. package/cjs/cell-renderers/dropdown-cell/DropdownCell.css.js.map +0 -1
  48. package/cjs/cell-renderers/dropdown-cell/DropdownCell.js +0 -103
  49. package/cjs/cell-renderers/dropdown-cell/DropdownCell.js.map +0 -1
  50. package/cjs/cell-renderers/lookup-cell/LookupCell.js +0 -21
  51. package/cjs/cell-renderers/lookup-cell/LookupCell.js.map +0 -1
  52. package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.css.js +0 -6
  53. package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.css.js.map +0 -1
  54. package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.js +0 -62
  55. package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.js.map +0 -1
  56. package/cjs/cell-renderers/progress-cell/ProgressCell.css.js +0 -6
  57. package/cjs/cell-renderers/progress-cell/ProgressCell.css.js.map +0 -1
  58. package/cjs/cell-renderers/progress-cell/ProgressCell.js +0 -69
  59. package/cjs/cell-renderers/progress-cell/ProgressCell.js.map +0 -1
  60. package/cjs/column-expression-input/ColumnExpressionInput.css.js +0 -6
  61. package/cjs/column-expression-input/ColumnExpressionInput.css.js.map +0 -1
  62. package/cjs/column-expression-input/ColumnExpressionInput.js +0 -39
  63. package/cjs/column-expression-input/ColumnExpressionInput.js.map +0 -1
  64. package/cjs/column-expression-input/column-function-descriptors.js +0 -307
  65. package/cjs/column-expression-input/column-function-descriptors.js.map +0 -1
  66. package/cjs/column-expression-input/column-language-parser/ColumnExpressionLanguage.js +0 -28
  67. package/cjs/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +0 -1
  68. package/cjs/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js +0 -465
  69. package/cjs/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +0 -1
  70. package/cjs/column-expression-input/column-language-parser/column-expression-parse-utils.js +0 -61
  71. package/cjs/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +0 -1
  72. package/cjs/column-expression-input/column-language-parser/generated/column-parser.js +0 -21
  73. package/cjs/column-expression-input/column-language-parser/generated/column-parser.js.map +0 -1
  74. package/cjs/column-expression-input/functionDocInfo.js +0 -39
  75. package/cjs/column-expression-input/functionDocInfo.js.map +0 -1
  76. package/cjs/column-expression-input/highlighting.js +0 -16
  77. package/cjs/column-expression-input/highlighting.js.map +0 -1
  78. package/cjs/column-expression-input/theme.js +0 -63
  79. package/cjs/column-expression-input/theme.js.map +0 -1
  80. package/cjs/column-expression-input/useColumnAutoComplete.js +0 -358
  81. package/cjs/column-expression-input/useColumnAutoComplete.js.map +0 -1
  82. package/cjs/column-expression-input/useColumnExpressionEditor.js +0 -131
  83. package/cjs/column-expression-input/useColumnExpressionEditor.js.map +0 -1
  84. package/cjs/column-expression-input/useColumnExpressionSuggestionProvider.js +0 -213
  85. package/cjs/column-expression-input/useColumnExpressionSuggestionProvider.js.map +0 -1
  86. package/cjs/column-formatting-settings/BaseNumericFormattingSettings.js +0 -98
  87. package/cjs/column-formatting-settings/BaseNumericFormattingSettings.js.map +0 -1
  88. package/cjs/column-formatting-settings/ColumnFormattingPanel.js +0 -111
  89. package/cjs/column-formatting-settings/ColumnFormattingPanel.js.map +0 -1
  90. package/cjs/column-formatting-settings/DateTimeFormattingSettings.js +0 -102
  91. package/cjs/column-formatting-settings/DateTimeFormattingSettings.js.map +0 -1
  92. package/cjs/column-formatting-settings/LongTypeFormattingSettings.css.js +0 -6
  93. package/cjs/column-formatting-settings/LongTypeFormattingSettings.css.js.map +0 -1
  94. package/cjs/column-formatting-settings/LongTypeFormattingSettings.js +0 -48
  95. package/cjs/column-formatting-settings/LongTypeFormattingSettings.js.map +0 -1
  96. package/cjs/column-menu/ColumnMenu.css.js +0 -6
  97. package/cjs/column-menu/ColumnMenu.css.js.map +0 -1
  98. package/cjs/column-menu/ColumnMenu.js +0 -107
  99. package/cjs/column-menu/ColumnMenu.js.map +0 -1
  100. package/cjs/column-menu/column-menu-utils.js +0 -459
  101. package/cjs/column-menu/column-menu-utils.js.map +0 -1
  102. package/cjs/column-menu/useColumnActions.js +0 -68
  103. package/cjs/column-menu/useColumnActions.js.map +0 -1
  104. package/cjs/column-picker/ColumnModel.js +0 -177
  105. package/cjs/column-picker/ColumnModel.js.map +0 -1
  106. package/cjs/column-picker/ColumnPicker.css.js +0 -6
  107. package/cjs/column-picker/ColumnPicker.css.js.map +0 -1
  108. package/cjs/column-picker/ColumnPicker.js +0 -252
  109. package/cjs/column-picker/ColumnPicker.js.map +0 -1
  110. package/cjs/column-picker/ColumnPickerAction.js +0 -34
  111. package/cjs/column-picker/ColumnPickerAction.js.map +0 -1
  112. package/cjs/column-picker/useColumnPicker.js +0 -55
  113. package/cjs/column-picker/useColumnPicker.js.map +0 -1
  114. package/cjs/column-picker/useTableColumnPicker.js +0 -35
  115. package/cjs/column-picker/useTableColumnPicker.js.map +0 -1
  116. package/cjs/column-settings-panel/ColumnNameLabel.css.js +0 -6
  117. package/cjs/column-settings-panel/ColumnNameLabel.css.js.map +0 -1
  118. package/cjs/column-settings-panel/ColumnNameLabel.js +0 -45
  119. package/cjs/column-settings-panel/ColumnNameLabel.js.map +0 -1
  120. package/cjs/column-settings-panel/ColumnSettingsPanel.css.js +0 -6
  121. package/cjs/column-settings-panel/ColumnSettingsPanel.css.js.map +0 -1
  122. package/cjs/column-settings-panel/ColumnSettingsPanel.js +0 -161
  123. package/cjs/column-settings-panel/ColumnSettingsPanel.js.map +0 -1
  124. package/cjs/column-settings-panel/useColumnSettings.js +0 -203
  125. package/cjs/column-settings-panel/useColumnSettings.js.map +0 -1
  126. package/cjs/datasource-stats/DatasourceStats.css.js +0 -6
  127. package/cjs/datasource-stats/DatasourceStats.css.js.map +0 -1
  128. package/cjs/datasource-stats/DatasourceStats.js +0 -76
  129. package/cjs/datasource-stats/DatasourceStats.js.map +0 -1
  130. package/cjs/datasource-stats/useDatasourceStats.js +0 -61
  131. package/cjs/datasource-stats/useDatasourceStats.js.map +0 -1
  132. package/cjs/freeze-control/FreezeControl.css.js +0 -6
  133. package/cjs/freeze-control/FreezeControl.css.js.map +0 -1
  134. package/cjs/freeze-control/FreezeControl.js +0 -106
  135. package/cjs/freeze-control/FreezeControl.js.map +0 -1
  136. package/cjs/freeze-control/FrozenBanner.css.js +0 -6
  137. package/cjs/freeze-control/FrozenBanner.css.js.map +0 -1
  138. package/cjs/freeze-control/FrozenBanner.js +0 -55
  139. package/cjs/freeze-control/FrozenBanner.js.map +0 -1
  140. package/cjs/freeze-control/freezeControlBadge.js +0 -10
  141. package/cjs/freeze-control/freezeControlBadge.js.map +0 -1
  142. package/cjs/freeze-control/useFreezeControl.js +0 -68
  143. package/cjs/freeze-control/useFreezeControl.js.map +0 -1
  144. package/cjs/index.js +0 -86
  145. package/cjs/index.js.map +0 -1
  146. package/cjs/tabbed-table-config-panel/TabbedTableConfigPanel.css.js +0 -6
  147. package/cjs/tabbed-table-config-panel/TabbedTableConfigPanel.css.js.map +0 -1
  148. package/cjs/tabbed-table-config-panel/TabbedTableConfigPanel.js +0 -90
  149. package/cjs/tabbed-table-config-panel/TabbedTableConfigPanel.js.map +0 -1
  150. package/cjs/tabbed-table-config-panel/TabbedTableSettingsAction.js +0 -44
  151. package/cjs/tabbed-table-config-panel/TabbedTableSettingsAction.js.map +0 -1
  152. package/cjs/tabbed-table-config-panel/useTabbedTableConfigPanel.js +0 -49
  153. package/cjs/tabbed-table-config-panel/useTabbedTableConfigPanel.js.map +0 -1
  154. package/cjs/table-footer/TableFooter.css.js +0 -6
  155. package/cjs/table-footer/TableFooter.css.js.map +0 -1
  156. package/cjs/table-footer/TableFooter.js +0 -34
  157. package/cjs/table-footer/TableFooter.js.map +0 -1
  158. package/cjs/table-provider/TableProvider.js +0 -61
  159. package/cjs/table-provider/TableProvider.js.map +0 -1
  160. package/cjs/table-settings-panel/TableSettingsPanel.css.js +0 -6
  161. package/cjs/table-settings-panel/TableSettingsPanel.css.js.map +0 -1
  162. package/cjs/table-settings-panel/TableSettingsPanel.js +0 -116
  163. package/cjs/table-settings-panel/TableSettingsPanel.js.map +0 -1
  164. package/cjs/table-settings-panel/useTableSettings.js +0 -60
  165. package/cjs/table-settings-panel/useTableSettings.js.map +0 -1
  166. package/esm/calculated-column/CalculatedColumnPanel.js +0 -83
  167. package/esm/calculated-column/CalculatedColumnPanel.js.map +0 -1
  168. package/esm/calculated-column/useCalculatedColumnPanel.js +0 -69
  169. package/esm/calculated-column/useCalculatedColumnPanel.js.map +0 -1
  170. package/esm/calculated-column/useEditCalculatedColumn.js +0 -136
  171. package/esm/calculated-column/useEditCalculatedColumn.js.map +0 -1
  172. package/esm/cell-edit-validators/CaseValidator.js +0 -23
  173. package/esm/cell-edit-validators/CaseValidator.js.map +0 -1
  174. package/esm/cell-edit-validators/PatternValidator.js +0 -29
  175. package/esm/cell-edit-validators/PatternValidator.js.map +0 -1
  176. package/esm/cell-renderers/background-cell/BackgroundCell.css.js +0 -4
  177. package/esm/cell-renderers/background-cell/BackgroundCell.css.js.map +0 -1
  178. package/esm/cell-renderers/background-cell/BackgroundCell.js +0 -79
  179. package/esm/cell-renderers/background-cell/BackgroundCell.js.map +0 -1
  180. package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js +0 -4
  181. package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js.map +0 -1
  182. package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js +0 -65
  183. package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +0 -1
  184. package/esm/cell-renderers/background-cell/BackgroundKeyframes.css.js +0 -4
  185. package/esm/cell-renderers/background-cell/BackgroundKeyframes.css.js.map +0 -1
  186. package/esm/cell-renderers/background-cell/useDirection.js +0 -18
  187. package/esm/cell-renderers/background-cell/useDirection.js.map +0 -1
  188. package/esm/cell-renderers/button-cell/IconButtonCell.css.js +0 -4
  189. package/esm/cell-renderers/button-cell/IconButtonCell.css.js.map +0 -1
  190. package/esm/cell-renderers/button-cell/IconButtonCell.js +0 -38
  191. package/esm/cell-renderers/button-cell/IconButtonCell.js.map +0 -1
  192. package/esm/cell-renderers/dropdown-cell/DropdownCell.css.js +0 -4
  193. package/esm/cell-renderers/dropdown-cell/DropdownCell.css.js.map +0 -1
  194. package/esm/cell-renderers/dropdown-cell/DropdownCell.js +0 -101
  195. package/esm/cell-renderers/dropdown-cell/DropdownCell.js.map +0 -1
  196. package/esm/cell-renderers/lookup-cell/LookupCell.js +0 -19
  197. package/esm/cell-renderers/lookup-cell/LookupCell.js.map +0 -1
  198. package/esm/cell-renderers/pct-progress-cell/PctProgressCell.css.js +0 -4
  199. package/esm/cell-renderers/pct-progress-cell/PctProgressCell.css.js.map +0 -1
  200. package/esm/cell-renderers/pct-progress-cell/PctProgressCell.js +0 -60
  201. package/esm/cell-renderers/pct-progress-cell/PctProgressCell.js.map +0 -1
  202. package/esm/cell-renderers/progress-cell/ProgressCell.css.js +0 -4
  203. package/esm/cell-renderers/progress-cell/ProgressCell.css.js.map +0 -1
  204. package/esm/cell-renderers/progress-cell/ProgressCell.js +0 -67
  205. package/esm/cell-renderers/progress-cell/ProgressCell.js.map +0 -1
  206. package/esm/column-expression-input/ColumnExpressionInput.css.js +0 -4
  207. package/esm/column-expression-input/ColumnExpressionInput.css.js.map +0 -1
  208. package/esm/column-expression-input/ColumnExpressionInput.js +0 -37
  209. package/esm/column-expression-input/ColumnExpressionInput.js.map +0 -1
  210. package/esm/column-expression-input/column-function-descriptors.js +0 -305
  211. package/esm/column-expression-input/column-function-descriptors.js.map +0 -1
  212. package/esm/column-expression-input/column-language-parser/ColumnExpressionLanguage.js +0 -26
  213. package/esm/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +0 -1
  214. package/esm/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js +0 -463
  215. package/esm/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +0 -1
  216. package/esm/column-expression-input/column-language-parser/column-expression-parse-utils.js +0 -56
  217. package/esm/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +0 -1
  218. package/esm/column-expression-input/column-language-parser/generated/column-parser.js +0 -19
  219. package/esm/column-expression-input/column-language-parser/generated/column-parser.js.map +0 -1
  220. package/esm/column-expression-input/functionDocInfo.js +0 -37
  221. package/esm/column-expression-input/functionDocInfo.js.map +0 -1
  222. package/esm/column-expression-input/highlighting.js +0 -14
  223. package/esm/column-expression-input/highlighting.js.map +0 -1
  224. package/esm/column-expression-input/theme.js +0 -61
  225. package/esm/column-expression-input/theme.js.map +0 -1
  226. package/esm/column-expression-input/useColumnAutoComplete.js +0 -356
  227. package/esm/column-expression-input/useColumnAutoComplete.js.map +0 -1
  228. package/esm/column-expression-input/useColumnExpressionEditor.js +0 -129
  229. package/esm/column-expression-input/useColumnExpressionEditor.js.map +0 -1
  230. package/esm/column-expression-input/useColumnExpressionSuggestionProvider.js +0 -211
  231. package/esm/column-expression-input/useColumnExpressionSuggestionProvider.js.map +0 -1
  232. package/esm/column-formatting-settings/BaseNumericFormattingSettings.js +0 -96
  233. package/esm/column-formatting-settings/BaseNumericFormattingSettings.js.map +0 -1
  234. package/esm/column-formatting-settings/ColumnFormattingPanel.js +0 -109
  235. package/esm/column-formatting-settings/ColumnFormattingPanel.js.map +0 -1
  236. package/esm/column-formatting-settings/DateTimeFormattingSettings.js +0 -100
  237. package/esm/column-formatting-settings/DateTimeFormattingSettings.js.map +0 -1
  238. package/esm/column-formatting-settings/LongTypeFormattingSettings.css.js +0 -4
  239. package/esm/column-formatting-settings/LongTypeFormattingSettings.css.js.map +0 -1
  240. package/esm/column-formatting-settings/LongTypeFormattingSettings.js +0 -46
  241. package/esm/column-formatting-settings/LongTypeFormattingSettings.js.map +0 -1
  242. package/esm/column-menu/ColumnMenu.css.js +0 -4
  243. package/esm/column-menu/ColumnMenu.css.js.map +0 -1
  244. package/esm/column-menu/ColumnMenu.js +0 -105
  245. package/esm/column-menu/ColumnMenu.js.map +0 -1
  246. package/esm/column-menu/column-menu-utils.js +0 -451
  247. package/esm/column-menu/column-menu-utils.js.map +0 -1
  248. package/esm/column-menu/useColumnActions.js +0 -66
  249. package/esm/column-menu/useColumnActions.js.map +0 -1
  250. package/esm/column-picker/ColumnModel.js +0 -170
  251. package/esm/column-picker/ColumnModel.js.map +0 -1
  252. package/esm/column-picker/ColumnPicker.css.js +0 -4
  253. package/esm/column-picker/ColumnPicker.css.js.map +0 -1
  254. package/esm/column-picker/ColumnPicker.js +0 -249
  255. package/esm/column-picker/ColumnPicker.js.map +0 -1
  256. package/esm/column-picker/ColumnPickerAction.js +0 -32
  257. package/esm/column-picker/ColumnPickerAction.js.map +0 -1
  258. package/esm/column-picker/useColumnPicker.js +0 -53
  259. package/esm/column-picker/useColumnPicker.js.map +0 -1
  260. package/esm/column-picker/useTableColumnPicker.js +0 -33
  261. package/esm/column-picker/useTableColumnPicker.js.map +0 -1
  262. package/esm/column-settings-panel/ColumnNameLabel.css.js +0 -4
  263. package/esm/column-settings-panel/ColumnNameLabel.css.js.map +0 -1
  264. package/esm/column-settings-panel/ColumnNameLabel.js +0 -43
  265. package/esm/column-settings-panel/ColumnNameLabel.js.map +0 -1
  266. package/esm/column-settings-panel/ColumnSettingsPanel.css.js +0 -4
  267. package/esm/column-settings-panel/ColumnSettingsPanel.css.js.map +0 -1
  268. package/esm/column-settings-panel/ColumnSettingsPanel.js +0 -159
  269. package/esm/column-settings-panel/ColumnSettingsPanel.js.map +0 -1
  270. package/esm/column-settings-panel/useColumnSettings.js +0 -201
  271. package/esm/column-settings-panel/useColumnSettings.js.map +0 -1
  272. package/esm/datasource-stats/DatasourceStats.css.js +0 -4
  273. package/esm/datasource-stats/DatasourceStats.css.js.map +0 -1
  274. package/esm/datasource-stats/DatasourceStats.js +0 -74
  275. package/esm/datasource-stats/DatasourceStats.js.map +0 -1
  276. package/esm/datasource-stats/useDatasourceStats.js +0 -59
  277. package/esm/datasource-stats/useDatasourceStats.js.map +0 -1
  278. package/esm/freeze-control/FreezeControl.css.js +0 -4
  279. package/esm/freeze-control/FreezeControl.css.js.map +0 -1
  280. package/esm/freeze-control/FreezeControl.js +0 -104
  281. package/esm/freeze-control/FreezeControl.js.map +0 -1
  282. package/esm/freeze-control/FrozenBanner.css.js +0 -4
  283. package/esm/freeze-control/FrozenBanner.css.js.map +0 -1
  284. package/esm/freeze-control/FrozenBanner.js +0 -53
  285. package/esm/freeze-control/FrozenBanner.js.map +0 -1
  286. package/esm/freeze-control/freezeControlBadge.js +0 -8
  287. package/esm/freeze-control/freezeControlBadge.js.map +0 -1
  288. package/esm/freeze-control/useFreezeControl.js +0 -66
  289. package/esm/freeze-control/useFreezeControl.js.map +0 -1
  290. package/esm/index.js +0 -36
  291. package/esm/index.js.map +0 -1
  292. package/esm/tabbed-table-config-panel/TabbedTableConfigPanel.css.js +0 -4
  293. package/esm/tabbed-table-config-panel/TabbedTableConfigPanel.css.js.map +0 -1
  294. package/esm/tabbed-table-config-panel/TabbedTableConfigPanel.js +0 -88
  295. package/esm/tabbed-table-config-panel/TabbedTableConfigPanel.js.map +0 -1
  296. package/esm/tabbed-table-config-panel/TabbedTableSettingsAction.js +0 -42
  297. package/esm/tabbed-table-config-panel/TabbedTableSettingsAction.js.map +0 -1
  298. package/esm/tabbed-table-config-panel/useTabbedTableConfigPanel.js +0 -47
  299. package/esm/tabbed-table-config-panel/useTabbedTableConfigPanel.js.map +0 -1
  300. package/esm/table-footer/TableFooter.css.js +0 -4
  301. package/esm/table-footer/TableFooter.css.js.map +0 -1
  302. package/esm/table-footer/TableFooter.js +0 -31
  303. package/esm/table-footer/TableFooter.js.map +0 -1
  304. package/esm/table-provider/TableProvider.js +0 -56
  305. package/esm/table-provider/TableProvider.js.map +0 -1
  306. package/esm/table-settings-panel/TableSettingsPanel.css.js +0 -4
  307. package/esm/table-settings-panel/TableSettingsPanel.css.js.map +0 -1
  308. package/esm/table-settings-panel/TableSettingsPanel.js +0 -112
  309. package/esm/table-settings-panel/TableSettingsPanel.js.map +0 -1
  310. package/esm/table-settings-panel/useTableSettings.js +0 -58
  311. package/esm/table-settings-panel/useTableSettings.js.map +0 -1
@@ -1,39 +0,0 @@
1
- 'use strict';
2
-
3
- var vuuUtils = require('@vuu-ui/vuu-utils');
4
-
5
- const functionDocInfo = ({
6
- name,
7
- description,
8
- example,
9
- params,
10
- type
11
- }) => {
12
- const rootElement = vuuUtils.createEl("div", "vuuFunctionDoc");
13
- const headingElement = vuuUtils.createEl("div", "function-heading");
14
- const nameElement = vuuUtils.createEl("span", "function-name", name);
15
- const paramElement = vuuUtils.createEl("span", "param-list", params.description);
16
- const typeElement = vuuUtils.createEl("span", "function-type", type);
17
- headingElement.appendChild(nameElement);
18
- headingElement.appendChild(paramElement);
19
- headingElement.appendChild(typeElement);
20
- const child2 = vuuUtils.createEl("p", void 0, description);
21
- rootElement.appendChild(headingElement);
22
- rootElement.appendChild(child2);
23
- if (example) {
24
- const exampleElement = vuuUtils.createEl("div", "example-container");
25
- const expressionElement = vuuUtils.createEl(
26
- "div",
27
- "example-expression",
28
- example.expression
29
- );
30
- const resultElement = vuuUtils.createEl("div", "example-result", example.result);
31
- exampleElement.appendChild(expressionElement);
32
- rootElement.appendChild(exampleElement);
33
- rootElement.appendChild(resultElement);
34
- }
35
- return rootElement;
36
- };
37
-
38
- exports.functionDocInfo = functionDocInfo;
39
- //# sourceMappingURL=functionDocInfo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"functionDocInfo.js","sources":["../../../../packages/vuu-table-extras/src/column-expression-input/functionDocInfo.ts"],"sourcesContent":["import { createEl } from \"@vuu-ui/vuu-utils\";\nimport { ColumnFunctionDescriptor } from \"./column-function-descriptors\";\n\nexport const functionDocInfo = ({\n name,\n description,\n example,\n params,\n type,\n}: ColumnFunctionDescriptor) => {\n const rootElement = createEl(\"div\", \"vuuFunctionDoc\");\n const headingElement = createEl(\"div\", \"function-heading\");\n\n const nameElement = createEl(\"span\", \"function-name\", name);\n const paramElement = createEl(\"span\", \"param-list\", params.description);\n const typeElement = createEl(\"span\", \"function-type\", type);\n\n headingElement.appendChild(nameElement);\n headingElement.appendChild(paramElement);\n headingElement.appendChild(typeElement);\n\n const child2 = createEl(\"p\", undefined, description);\n\n rootElement.appendChild(headingElement);\n rootElement.appendChild(child2);\n\n if (example) {\n const exampleElement = createEl(\"div\", \"example-container\");\n const expressionElement = createEl(\n \"div\",\n \"example-expression\",\n example.expression,\n );\n const resultElement = createEl(\"div\", \"example-result\", example.result);\n\n exampleElement.appendChild(expressionElement);\n\n rootElement.appendChild(exampleElement);\n rootElement.appendChild(resultElement);\n }\n\n return rootElement;\n};\n"],"names":["createEl"],"mappings":";;;;AAGO,MAAM,kBAAkB,CAAC;AAAA,EAC9B,IAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAgC,KAAA;AAC9B,EAAM,MAAA,WAAA,GAAcA,iBAAS,CAAA,KAAA,EAAO,gBAAgB,CAAA;AACpD,EAAM,MAAA,cAAA,GAAiBA,iBAAS,CAAA,KAAA,EAAO,kBAAkB,CAAA;AAEzD,EAAA,MAAM,WAAc,GAAAA,iBAAA,CAAS,MAAQ,EAAA,eAAA,EAAiB,IAAI,CAAA;AAC1D,EAAA,MAAM,YAAe,GAAAA,iBAAA,CAAS,MAAQ,EAAA,YAAA,EAAc,OAAO,WAAW,CAAA;AACtE,EAAA,MAAM,WAAc,GAAAA,iBAAA,CAAS,MAAQ,EAAA,eAAA,EAAiB,IAAI,CAAA;AAE1D,EAAA,cAAA,CAAe,YAAY,WAAW,CAAA;AACtC,EAAA,cAAA,CAAe,YAAY,YAAY,CAAA;AACvC,EAAA,cAAA,CAAe,YAAY,WAAW,CAAA;AAEtC,EAAA,MAAM,MAAS,GAAAA,iBAAA,CAAS,GAAK,EAAA,KAAA,CAAA,EAAW,WAAW,CAAA;AAEnD,EAAA,WAAA,CAAY,YAAY,cAAc,CAAA;AACtC,EAAA,WAAA,CAAY,YAAY,MAAM,CAAA;AAE9B,EAAA,IAAI,OAAS,EAAA;AACX,IAAM,MAAA,cAAA,GAAiBA,iBAAS,CAAA,KAAA,EAAO,mBAAmB,CAAA;AAC1D,IAAA,MAAM,iBAAoB,GAAAA,iBAAA;AAAA,MACxB,KAAA;AAAA,MACA,oBAAA;AAAA,MACA,OAAQ,CAAA;AAAA,KACV;AACA,IAAA,MAAM,aAAgB,GAAAA,iBAAA,CAAS,KAAO,EAAA,gBAAA,EAAkB,QAAQ,MAAM,CAAA;AAEtE,IAAA,cAAA,CAAe,YAAY,iBAAiB,CAAA;AAE5C,IAAA,WAAA,CAAY,YAAY,cAAc,CAAA;AACtC,IAAA,WAAA,CAAY,YAAY,aAAa,CAAA;AAAA;AAGvC,EAAO,OAAA,WAAA;AACT;;;;"}
@@ -1,16 +0,0 @@
1
- 'use strict';
2
-
3
- var vuuCodemirror = require('@vuu-ui/vuu-codemirror');
4
-
5
- const myHighlightStyle = vuuCodemirror.HighlightStyle.define([
6
- {
7
- tag: vuuCodemirror.tags.attributeValue,
8
- color: "var(--vuuFilterEditor-variableColor);font-weight: bold"
9
- },
10
- { tag: vuuCodemirror.tags.variableName, color: "var(--vuuFilterEditor-variableColor)" },
11
- { tag: vuuCodemirror.tags.comment, color: "green", fontStyle: "italic" }
12
- ]);
13
- const vuuHighlighting = vuuCodemirror.syntaxHighlighting(myHighlightStyle);
14
-
15
- exports.vuuHighlighting = vuuHighlighting;
16
- //# sourceMappingURL=highlighting.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"highlighting.js","sources":["../../../../packages/vuu-table-extras/src/column-expression-input/highlighting.ts"],"sourcesContent":["import {\n HighlightStyle,\n syntaxHighlighting,\n tags,\n} from \"@vuu-ui/vuu-codemirror\";\n\nconst myHighlightStyle = HighlightStyle.define([\n {\n tag: tags.attributeValue,\n color: \"var(--vuuFilterEditor-variableColor);font-weight: bold\",\n },\n { tag: tags.variableName, color: \"var(--vuuFilterEditor-variableColor)\" },\n { tag: tags.comment, color: \"green\", fontStyle: \"italic\" },\n]);\n\nexport const vuuHighlighting = syntaxHighlighting(myHighlightStyle);\n"],"names":["HighlightStyle","tags","syntaxHighlighting"],"mappings":";;;;AAMA,MAAM,gBAAA,GAAmBA,6BAAe,MAAO,CAAA;AAAA,EAC7C;AAAA,IACE,KAAKC,kBAAK,CAAA,cAAA;AAAA,IACV,KAAO,EAAA;AAAA,GACT;AAAA,EACA,EAAE,GAAA,EAAKA,kBAAK,CAAA,YAAA,EAAc,OAAO,sCAAuC,EAAA;AAAA,EACxE,EAAE,GAAK,EAAAA,kBAAA,CAAK,SAAS,KAAO,EAAA,OAAA,EAAS,WAAW,QAAS;AAC3D,CAAC,CAAA;AAEY,MAAA,eAAA,GAAkBC,iCAAmB,gBAAgB;;;;"}
@@ -1,63 +0,0 @@
1
- 'use strict';
2
-
3
- var vuuCodemirror = require('@vuu-ui/vuu-codemirror');
4
-
5
- const vuuTheme = vuuCodemirror.EditorView.theme(
6
- {
7
- "&": {
8
- border: "solid 1px var(--salt-container-primary-borderColor)",
9
- color: "var(--vuuFilterEditor-color)",
10
- backgroundColor: "var(--vuuFilterEditor-background)"
11
- },
12
- ".cm-content": {
13
- caretColor: "var(--vuuFilterEditor-cursorColor)"
14
- },
15
- "&.cm-focused .cm-cursor": {
16
- borderLeftColor: "var(--vuuFilterEditor-cursorColor)"
17
- },
18
- "&.cm-focused .cm-selectionBackground, ::selection": {
19
- backgroundColor: "var(--vuuFilterEditor-selectionBackground)"
20
- },
21
- ".cm-selectionBackground, ::selection": {
22
- backgroundColor: "var(--vuuFilterEditor-selectionBackground)"
23
- },
24
- ".cm-scroller": {
25
- fontFamily: "var(--vuuFilterEditor-fontFamily)"
26
- },
27
- ".cm-completionLabel": {
28
- color: "var(--vuu-color-gray-50)"
29
- },
30
- ".cm-completionMatchedText": {
31
- color: "var(--vuu-color-gray-80)",
32
- fontWeight: 700,
33
- textDecoration: "none"
34
- },
35
- ".cm-tooltip": {
36
- background: "var(--vuuFilterEditor-tooltipBackground)",
37
- border: "var(--vuuFilterEditor-tooltipBorder)",
38
- borderRadius: "4px",
39
- boxShadow: "var(--vuuFilterEditor-tooltipElevation)",
40
- "&.cm-tooltip-autocomplete > ul": {
41
- fontFamily: "var(--vuuFilterEditor-fontFamily)",
42
- fontSize: "var(--vuuFilterEditor-fontSize)",
43
- maxHeight: "240px"
44
- },
45
- "&.cm-tooltip-autocomplete > ul > li": {
46
- height: "var(--vuuFilterEditor-suggestion-height)",
47
- padding: "0 3px",
48
- lineHeight: "var(--vuuFilterEditor-suggestion-height)"
49
- },
50
- "&.cm-tooltip-autocomplete li[aria-selected]": {
51
- background: "var(--vuuFilterEditor-suggestion-selectedBackground)",
52
- color: "var(--vuuFilterEditor-suggestion-selectedColor)"
53
- },
54
- "&.cm-tooltip-autocomplete li .cm-completionDetail": {
55
- color: "var(--vuuFilterEditor-suggestion-detailColor)"
56
- }
57
- }
58
- },
59
- { dark: false }
60
- );
61
-
62
- exports.vuuTheme = vuuTheme;
63
- //# sourceMappingURL=theme.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"theme.js","sources":["../../../../packages/vuu-table-extras/src/column-expression-input/theme.ts"],"sourcesContent":["import { EditorView } from \"@vuu-ui/vuu-codemirror\";\n\nexport const vuuTheme = EditorView.theme(\n {\n \"&\": {\n border: \"solid 1px var(--salt-container-primary-borderColor)\",\n color: \"var(--vuuFilterEditor-color)\",\n backgroundColor: \"var(--vuuFilterEditor-background)\",\n },\n \".cm-content\": {\n caretColor: \"var(--vuuFilterEditor-cursorColor)\",\n },\n \"&.cm-focused .cm-cursor\": {\n borderLeftColor: \"var(--vuuFilterEditor-cursorColor)\",\n },\n \"&.cm-focused .cm-selectionBackground, ::selection\": {\n backgroundColor: \"var(--vuuFilterEditor-selectionBackground)\",\n },\n \".cm-selectionBackground, ::selection\": {\n backgroundColor: \"var(--vuuFilterEditor-selectionBackground)\",\n },\n \".cm-scroller\": {\n fontFamily: \"var(--vuuFilterEditor-fontFamily)\",\n },\n \".cm-completionLabel\": {\n color: \"var(--vuu-color-gray-50)\",\n },\n \".cm-completionMatchedText\": {\n color: \"var(--vuu-color-gray-80)\",\n fontWeight: 700,\n textDecoration: \"none\",\n },\n \".cm-tooltip\": {\n background: \"var(--vuuFilterEditor-tooltipBackground)\",\n border: \"var(--vuuFilterEditor-tooltipBorder)\",\n borderRadius: \"4px\",\n boxShadow: \"var(--vuuFilterEditor-tooltipElevation)\",\n \"&.cm-tooltip-autocomplete > ul\": {\n fontFamily: \"var(--vuuFilterEditor-fontFamily)\",\n fontSize: \"var(--vuuFilterEditor-fontSize)\",\n maxHeight: \"240px\",\n },\n \"&.cm-tooltip-autocomplete > ul > li\": {\n height: \"var(--vuuFilterEditor-suggestion-height)\",\n padding: \"0 3px\",\n lineHeight: \"var(--vuuFilterEditor-suggestion-height)\",\n },\n \"&.cm-tooltip-autocomplete li[aria-selected]\": {\n background: \"var(--vuuFilterEditor-suggestion-selectedBackground)\",\n color: \"var(--vuuFilterEditor-suggestion-selectedColor)\",\n },\n \"&.cm-tooltip-autocomplete li .cm-completionDetail\": {\n color: \"var(--vuuFilterEditor-suggestion-detailColor)\",\n },\n },\n },\n { dark: false },\n);\n"],"names":["EditorView"],"mappings":";;;;AAEO,MAAM,WAAWA,wBAAW,CAAA,KAAA;AAAA,EACjC;AAAA,IACE,GAAK,EAAA;AAAA,MACH,MAAQ,EAAA,qDAAA;AAAA,MACR,KAAO,EAAA,8BAAA;AAAA,MACP,eAAiB,EAAA;AAAA,KACnB;AAAA,IACA,aAAe,EAAA;AAAA,MACb,UAAY,EAAA;AAAA,KACd;AAAA,IACA,yBAA2B,EAAA;AAAA,MACzB,eAAiB,EAAA;AAAA,KACnB;AAAA,IACA,mDAAqD,EAAA;AAAA,MACnD,eAAiB,EAAA;AAAA,KACnB;AAAA,IACA,sCAAwC,EAAA;AAAA,MACtC,eAAiB,EAAA;AAAA,KACnB;AAAA,IACA,cAAgB,EAAA;AAAA,MACd,UAAY,EAAA;AAAA,KACd;AAAA,IACA,qBAAuB,EAAA;AAAA,MACrB,KAAO,EAAA;AAAA,KACT;AAAA,IACA,2BAA6B,EAAA;AAAA,MAC3B,KAAO,EAAA,0BAAA;AAAA,MACP,UAAY,EAAA,GAAA;AAAA,MACZ,cAAgB,EAAA;AAAA,KAClB;AAAA,IACA,aAAe,EAAA;AAAA,MACb,UAAY,EAAA,0CAAA;AAAA,MACZ,MAAQ,EAAA,sCAAA;AAAA,MACR,YAAc,EAAA,KAAA;AAAA,MACd,SAAW,EAAA,yCAAA;AAAA,MACX,gCAAkC,EAAA;AAAA,QAChC,UAAY,EAAA,mCAAA;AAAA,QACZ,QAAU,EAAA,iCAAA;AAAA,QACV,SAAW,EAAA;AAAA,OACb;AAAA,MACA,qCAAuC,EAAA;AAAA,QACrC,MAAQ,EAAA,0CAAA;AAAA,QACR,OAAS,EAAA,OAAA;AAAA,QACT,UAAY,EAAA;AAAA,OACd;AAAA,MACA,6CAA+C,EAAA;AAAA,QAC7C,UAAY,EAAA,sDAAA;AAAA,QACZ,KAAO,EAAA;AAAA,OACT;AAAA,MACA,mDAAqD,EAAA;AAAA,QACnD,KAAO,EAAA;AAAA;AACT;AACF,GACF;AAAA,EACA,EAAE,MAAM,KAAM;AAChB;;;;"}
@@ -1,358 +0,0 @@
1
- 'use strict';
2
-
3
- var vuuCodemirror = require('@vuu-ui/vuu-codemirror');
4
- var react = require('react');
5
- require('./column-language-parser/ColumnExpressionLanguage.js');
6
- require('./column-language-parser/ColumnExpressionTreeWalker.js');
7
- var columnExpressionParseUtils = require('./column-language-parser/column-expression-parse-utils.js');
8
-
9
- const applyPrefix = (completions, prefix) => prefix ? completions.map((completion) => ({
10
- ...completion,
11
- apply: typeof completion.apply === "function" ? completion.apply : `${prefix}${completion.apply ?? completion.label}`
12
- })) : completions;
13
- const isOperator = (node) => node === void 0 ? false : ["Times", "Divide", "Plus", "Minus"].includes(node.name);
14
- const completionDone = (onSubmit) => ({
15
- apply: () => {
16
- onSubmit?.();
17
- },
18
- label: "Done",
19
- boost: 10
20
- });
21
- const getLastChild = (node, context) => {
22
- let { lastChild: childNode } = node;
23
- const { pos } = context;
24
- while (childNode) {
25
- const isBeforeCursor = childNode.from < pos;
26
- if (isBeforeCursor && columnExpressionParseUtils.ColumnNamedTerms.includes(childNode.name)) {
27
- if (childNode.name === "ParenthesizedExpression") {
28
- const expression = childNode.firstChild?.nextSibling;
29
- if (expression) {
30
- childNode = expression;
31
- }
32
- }
33
- return childNode;
34
- } else {
35
- childNode = childNode.prevSibling;
36
- }
37
- }
38
- };
39
- const getFunctionName = (node, state) => {
40
- if (node.name === "ArgList") {
41
- const functionNode = node.prevSibling;
42
- if (functionNode) {
43
- return vuuCodemirror.getValue(functionNode, state);
44
- }
45
- } else if (node.name === "OpenBrace") {
46
- const maybeFunction = node.parent?.prevSibling;
47
- if (maybeFunction?.name === "Function") {
48
- return vuuCodemirror.getValue(maybeFunction, state);
49
- }
50
- }
51
- };
52
- const getRelationalOperator = (node, state) => {
53
- if (node.name === "RelationalExpression") {
54
- const lastNode = columnExpressionParseUtils.lastNamedChild(node);
55
- if (lastNode?.name === "RelationalOperator") {
56
- return vuuCodemirror.getValue(lastNode, state);
57
- }
58
- } else {
59
- const prevNode = node.prevSibling;
60
- if (prevNode?.name === "RelationalOperator") {
61
- return vuuCodemirror.getValue(prevNode, state);
62
- }
63
- }
64
- };
65
- const getColumnName = (node, state) => {
66
- if (node.name === "RelationalExpression") {
67
- if (node.firstChild?.name === "Column") {
68
- return vuuCodemirror.getValue(node.firstChild, state);
69
- }
70
- } else {
71
- const prevNode = node.prevSibling;
72
- if (prevNode?.name === "Column") {
73
- return vuuCodemirror.getValue(prevNode, state);
74
- } else if (prevNode?.name === "RelationalOperator") {
75
- return getColumnName(prevNode, state);
76
- }
77
- }
78
- };
79
- const makeSuggestions = async (context, suggestionProvider, suggestionType, optionalArgs = {}) => {
80
- const options = await suggestionProvider.getSuggestions(
81
- suggestionType,
82
- optionalArgs
83
- );
84
- const { startsWith = "" } = optionalArgs;
85
- return { from: context.pos - startsWith.length, options };
86
- };
87
- const handleConditionalExpression = (node, context, suggestionProvider, maybeComplete, onSubmit) => {
88
- const lastChild = getLastChild(node, context);
89
- switch (lastChild?.name) {
90
- case "If":
91
- return makeSuggestions(context, suggestionProvider, "expression", {
92
- prefix: "( "
93
- });
94
- case "OpenBrace":
95
- return makeSuggestions(context, suggestionProvider, "expression");
96
- case "Condition":
97
- return makeSuggestions(context, suggestionProvider, "expression", {
98
- prefix: ", "
99
- });
100
- case "CloseBrace":
101
- if (maybeComplete) {
102
- const options = [completionDone(onSubmit)];
103
- return { from: context.pos, options };
104
- }
105
- }
106
- };
107
- const promptToSave = (context, onSubmit) => {
108
- const options = [completionDone(onSubmit)];
109
- return { from: context.pos, options };
110
- };
111
- const useColumnAutoComplete = (suggestionProvider, onSubmit) => {
112
- const makeSuggestions2 = react.useCallback(
113
- async (context, suggestionType, optionalArgs = {}) => {
114
- const options = await suggestionProvider.getSuggestions(
115
- suggestionType,
116
- optionalArgs
117
- );
118
- const { startsWith = "" } = optionalArgs;
119
- return { from: context.pos - startsWith.length, options };
120
- },
121
- [suggestionProvider]
122
- );
123
- return react.useCallback(
124
- async (context) => {
125
- const { state, pos } = context;
126
- const word = context.matchBefore(/\w*/) ?? {
127
- from: 0,
128
- to: 0,
129
- text: void 0
130
- };
131
- const tree = vuuCodemirror.syntaxTree(state);
132
- const nodeBefore = tree.resolveInner(pos, -1);
133
- const text = state.doc.toString();
134
- const maybeComplete = columnExpressionParseUtils.isCompleteExpression(text);
135
- switch (nodeBefore.name) {
136
- case "If": {
137
- return makeSuggestions2(context, "expression", { prefix: "( " });
138
- }
139
- case "Condition":
140
- {
141
- const lastChild = getLastChild(nodeBefore, context);
142
- if (lastChild?.name === "Column") {
143
- const prevChild = vuuCodemirror.getPreviousNode(lastChild);
144
- if (prevChild?.name !== "RelationalOperator") {
145
- return makeSuggestions2(context, "condition-operator", {
146
- columnName: vuuCodemirror.getValue(lastChild, state)
147
- });
148
- }
149
- } else if (lastChild?.name === "RelationalOperator") {
150
- return makeSuggestions2(context, "expression");
151
- }
152
- }
153
- break;
154
- case "ConditionalExpression":
155
- return handleConditionalExpression(
156
- nodeBefore,
157
- context,
158
- suggestionProvider
159
- );
160
- case "RelationalExpression":
161
- {
162
- if (columnExpressionParseUtils.isCompleteRelationalExpression(nodeBefore)) {
163
- return {
164
- from: context.pos,
165
- options: vuuCodemirror.booleanJoinSuggestions.concat({
166
- label: ", <truthy expression>, <falsy expression>",
167
- apply: ", "
168
- })
169
- };
170
- } else {
171
- const operator = getRelationalOperator(nodeBefore, state);
172
- const columnName = getColumnName(nodeBefore, state);
173
- if (!operator) {
174
- const options = await suggestionProvider.getSuggestions(
175
- "condition-operator",
176
- {
177
- columnName
178
- }
179
- );
180
- return { from: context.pos, options };
181
- } else {
182
- return makeSuggestions2(context, "expression");
183
- }
184
- }
185
- }
186
- case "RelationalOperator":
187
- return makeSuggestions2(context, "expression");
188
- case "String":
189
- {
190
- const operator = getRelationalOperator(
191
- nodeBefore,
192
- state
193
- );
194
- const columnName = getColumnName(nodeBefore, state);
195
- const { from, to } = nodeBefore;
196
- if (to - from === 2 && context.pos === from + 1) {
197
- if (columnName && operator) {
198
- return makeSuggestions2(context, "columnValue", {
199
- columnName,
200
- operator,
201
- startsWith: word.text
202
- });
203
- }
204
- } else if (to - from > 2 && context.pos === to) {
205
- return makeSuggestions2(context, "expression", {
206
- prefix: ", "
207
- });
208
- }
209
- }
210
- break;
211
- case "ArithmeticExpression":
212
- {
213
- const lastChild = getLastChild(nodeBefore, context);
214
- if (lastChild?.name === "Column") {
215
- return makeSuggestions2(context, "expression");
216
- } else if (isOperator(lastChild)) {
217
- const operator = lastChild.name;
218
- return makeSuggestions2(context, "column", { operator });
219
- }
220
- }
221
- break;
222
- case "OpenBrace":
223
- {
224
- const functionName = getFunctionName(nodeBefore, state);
225
- return makeSuggestions2(context, "expression", { functionName });
226
- }
227
- case "ArgList": {
228
- const functionName = getFunctionName(nodeBefore, state);
229
- const lastArgument = getLastChild(nodeBefore, context);
230
- const prefix = lastArgument?.name === "OpenBrace" || lastArgument?.name === "Comma" ? void 0 : ",";
231
- let options = await suggestionProvider.getSuggestions("expression", {
232
- functionName
233
- });
234
- options = prefix ? applyPrefix(options, ", ") : options;
235
- if (lastArgument?.name !== "OpenBrace" && lastArgument?.name !== "Comma") {
236
- options = [
237
- {
238
- apply: ") ",
239
- boost: 10,
240
- label: "Done - no more arguments"
241
- }
242
- ].concat(options);
243
- }
244
- return { from: context.pos, options };
245
- }
246
- case "Equal":
247
- if (text.trim() === "=") {
248
- return makeSuggestions2(context, "expression");
249
- }
250
- break;
251
- case "ParenthesizedExpression":
252
- case "ColumnDefinitionExpression":
253
- if (context.pos === 0) {
254
- return makeSuggestions2(context, "expression");
255
- } else {
256
- const lastChild = getLastChild(nodeBefore, context);
257
- if (lastChild?.name === "Column") {
258
- if (maybeComplete) {
259
- const options = [
260
- completionDone(onSubmit.current)
261
- ];
262
- const columnName = vuuCodemirror.getValue(lastChild, state);
263
- const columnOptions = await suggestionProvider.getSuggestions("operator", {
264
- columnName
265
- });
266
- return {
267
- from: context.pos,
268
- options: options.concat(columnOptions)
269
- };
270
- }
271
- } else if (lastChild?.name === "CallExpression") {
272
- if (maybeComplete) {
273
- return {
274
- from: context.pos,
275
- options: [completionDone(onSubmit.current)]
276
- };
277
- }
278
- } else if (lastChild?.name === "ArithmeticExpression") {
279
- if (maybeComplete) {
280
- let options = [completionDone(onSubmit.current)];
281
- const lastExpressionChild = getLastChild(lastChild, context);
282
- if (lastExpressionChild?.name === "Column") {
283
- const columnName = vuuCodemirror.getValue(lastExpressionChild, state);
284
- const suggestions = await suggestionProvider.getSuggestions(
285
- "operator",
286
- { columnName }
287
- );
288
- options = options.concat(suggestions);
289
- }
290
- return {
291
- from: context.pos,
292
- options
293
- };
294
- }
295
- } else if (lastChild?.name === "ConditionalExpression") {
296
- return handleConditionalExpression(
297
- lastChild,
298
- context,
299
- suggestionProvider,
300
- maybeComplete,
301
- onSubmit.current
302
- );
303
- }
304
- break;
305
- }
306
- case "Column":
307
- {
308
- const isPartialMatch = await suggestionProvider.isPartialMatch(
309
- "expression",
310
- void 0,
311
- word.text
312
- );
313
- if (isPartialMatch) {
314
- return makeSuggestions2(context, "expression", {
315
- startsWith: word.text
316
- });
317
- }
318
- }
319
- break;
320
- case "Comma":
321
- {
322
- const parentNode = vuuCodemirror.getNamedParentNode(nodeBefore);
323
- if (parentNode?.name === "ConditionalExpression") {
324
- return makeSuggestions2(context, "expression");
325
- }
326
- }
327
- break;
328
- case "CloseBrace":
329
- {
330
- const parentNode = vuuCodemirror.getNamedParentNode(nodeBefore);
331
- if (parentNode?.name === "ConditionalExpression") {
332
- return handleConditionalExpression(
333
- parentNode,
334
- context,
335
- suggestionProvider,
336
- maybeComplete,
337
- onSubmit.current
338
- );
339
- } else if (parentNode?.name === "ArgList") {
340
- if (maybeComplete) {
341
- return promptToSave(context, onSubmit.current);
342
- }
343
- }
344
- }
345
- break;
346
- default: {
347
- if (nodeBefore?.prevSibling?.name === "FilterClause") {
348
- console.log("looks like we ight be a or|and operator");
349
- }
350
- }
351
- }
352
- },
353
- [makeSuggestions2, onSubmit, suggestionProvider]
354
- );
355
- };
356
-
357
- exports.useColumnAutoComplete = useColumnAutoComplete;
358
- //# sourceMappingURL=useColumnAutoComplete.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"useColumnAutoComplete.js","sources":["../../../../packages/vuu-table-extras/src/column-expression-input/useColumnAutoComplete.ts"],"sourcesContent":["import {\n booleanJoinSuggestions,\n Completion,\n CompletionContext,\n CompletionSource,\n EditorState,\n getNamedParentNode,\n getPreviousNode,\n getValue,\n SyntaxNode,\n syntaxTree,\n} from \"@vuu-ui/vuu-codemirror\";\nimport { MutableRefObject, useCallback } from \"react\";\nimport {\n ColumnNamedTerms,\n isCompleteExpression,\n isCompleteRelationalExpression,\n} from \"./column-language-parser\";\nimport {\n ColumnExpressionOperator,\n ColumnExpressionSuggestionOptions,\n ColumnExpressionSuggestionType,\n IExpressionSuggestionProvider,\n} from \"./useColumnExpressionEditor\";\nimport { lastNamedChild } from \"./column-language-parser\";\n\nexport type ApplyCompletion = (mode?: \"add\" | \"replace\") => void;\n\nexport type Operator = \"\";\n\nconst applyPrefix = (completions: Completion[], prefix?: string) =>\n prefix\n ? completions.map((completion) => ({\n ...completion,\n apply:\n typeof completion.apply === \"function\"\n ? completion.apply\n : `${prefix}${completion.apply ?? completion.label}`,\n }))\n : completions;\n\nconst isOperator = (node?: SyntaxNode): node is SyntaxNode =>\n node === undefined\n ? false\n : [\"Times\", \"Divide\", \"Plus\", \"Minus\"].includes(node.name);\n\nconst completionDone = (onSubmit?: () => void): Completion => ({\n apply: () => {\n onSubmit?.();\n },\n label: \"Done\",\n boost: 10,\n});\n\nconst getLastChild = (node: SyntaxNode, context: CompletionContext) => {\n let { lastChild: childNode } = node;\n const { pos } = context;\n while (childNode) {\n const isBeforeCursor = childNode.from < pos;\n if (isBeforeCursor && ColumnNamedTerms.includes(childNode.name)) {\n if (childNode.name === \"ParenthesizedExpression\") {\n // extract the parenthesized expression\n const expression = childNode.firstChild?.nextSibling;\n if (expression) {\n childNode = expression;\n }\n }\n return childNode;\n } else {\n childNode = childNode.prevSibling;\n }\n }\n};\nconst getFunctionName = (node: SyntaxNode, state: EditorState) => {\n if (node.name === \"ArgList\") {\n const functionNode = node.prevSibling;\n if (functionNode) {\n return getValue(functionNode, state);\n }\n } else if (node.name === \"OpenBrace\") {\n const maybeFunction = node.parent?.prevSibling;\n if (maybeFunction?.name === \"Function\") {\n return getValue(maybeFunction, state);\n }\n }\n};\n\nconst getRelationalOperator = (node: SyntaxNode, state: EditorState) => {\n if (node.name === \"RelationalExpression\") {\n const lastNode = lastNamedChild(node);\n if (lastNode?.name === \"RelationalOperator\") {\n return getValue(lastNode, state);\n }\n } else {\n const prevNode = node.prevSibling;\n if (prevNode?.name === \"RelationalOperator\") {\n return getValue(prevNode, state) as ColumnExpressionOperator;\n }\n }\n};\n\nconst getColumnName = (\n node: SyntaxNode,\n state: EditorState,\n): string | undefined => {\n if (node.name === \"RelationalExpression\") {\n if (node.firstChild?.name === \"Column\") {\n return getValue(node.firstChild, state);\n }\n } else {\n const prevNode = node.prevSibling;\n if (prevNode?.name === \"Column\") {\n return getValue(prevNode, state);\n } else if (prevNode?.name === \"RelationalOperator\") {\n return getColumnName(prevNode, state);\n }\n }\n};\n\nconst makeSuggestions = async (\n context: CompletionContext,\n suggestionProvider: IExpressionSuggestionProvider,\n suggestionType: ColumnExpressionSuggestionType,\n optionalArgs: ColumnExpressionSuggestionOptions = {},\n) => {\n const options = await suggestionProvider.getSuggestions(\n suggestionType,\n optionalArgs,\n );\n const { startsWith = \"\" } = optionalArgs;\n return { from: context.pos - startsWith.length, options };\n};\n\nconst handleConditionalExpression = (\n node: SyntaxNode,\n context: CompletionContext,\n suggestionProvider: IExpressionSuggestionProvider,\n maybeComplete?: boolean,\n onSubmit?: () => void,\n) => {\n const lastChild = getLastChild(node, context);\n switch (lastChild?.name) {\n case \"If\":\n return makeSuggestions(context, suggestionProvider, \"expression\", {\n prefix: \"( \",\n });\n case \"OpenBrace\":\n return makeSuggestions(context, suggestionProvider, \"expression\");\n case \"Condition\":\n return makeSuggestions(context, suggestionProvider, \"expression\", {\n prefix: \", \",\n });\n case \"CloseBrace\":\n if (maybeComplete) {\n const options: Completion[] = [completionDone(onSubmit)];\n return { from: context.pos, options };\n }\n }\n};\n\nconst promptToSave = (context: CompletionContext, onSubmit: () => void) => {\n const options: Completion[] = [completionDone(onSubmit)];\n return { from: context.pos, options };\n};\n\nexport const useColumnAutoComplete = (\n suggestionProvider: IExpressionSuggestionProvider,\n onSubmit: MutableRefObject<ApplyCompletion>,\n) => {\n const makeSuggestions = useCallback(\n async (\n context: CompletionContext,\n suggestionType: ColumnExpressionSuggestionType,\n optionalArgs: ColumnExpressionSuggestionOptions = {},\n ) => {\n const options = await suggestionProvider.getSuggestions(\n suggestionType,\n optionalArgs,\n );\n const { startsWith = \"\" } = optionalArgs;\n return { from: context.pos - startsWith.length, options };\n },\n [suggestionProvider],\n );\n\n return useCallback(\n async (context: CompletionContext) => {\n const { state, pos } = context;\n const word = context.matchBefore(/\\w*/) ?? {\n from: 0,\n to: 0,\n text: undefined,\n };\n\n const tree = syntaxTree(state);\n const nodeBefore = tree.resolveInner(pos, -1);\n const text = state.doc.toString();\n const maybeComplete = isCompleteExpression(text);\n\n switch (nodeBefore.name) {\n case \"If\": {\n return makeSuggestions(context, \"expression\", { prefix: \"( \" });\n }\n case \"Condition\":\n {\n const lastChild = getLastChild(nodeBefore, context);\n if (lastChild?.name === \"Column\") {\n // is this the first term ?\n const prevChild = getPreviousNode(lastChild);\n if (prevChild?.name !== \"RelationalOperator\") {\n return makeSuggestions(context, \"condition-operator\", {\n columnName: getValue(lastChild, state),\n });\n }\n } else if (lastChild?.name === \"RelationalOperator\") {\n // we need the type of the expression on the other side of the operator\n return makeSuggestions(context, \"expression\");\n }\n }\n break;\n case \"ConditionalExpression\":\n return handleConditionalExpression(\n nodeBefore,\n context,\n suggestionProvider,\n );\n case \"RelationalExpression\":\n {\n if (isCompleteRelationalExpression(nodeBefore)) {\n return {\n from: context.pos,\n options: booleanJoinSuggestions.concat({\n label: \", <truthy expression>, <falsy expression>\",\n apply: \", \",\n }),\n };\n } else {\n const operator = getRelationalOperator(nodeBefore, state);\n const columnName = getColumnName(nodeBefore, state);\n if (!operator) {\n const options = await suggestionProvider.getSuggestions(\n \"condition-operator\",\n {\n columnName,\n },\n );\n return { from: context.pos, options };\n } else {\n return makeSuggestions(context, \"expression\");\n }\n }\n }\n break;\n\n case \"RelationalOperator\":\n // we need the type of the expression on the other side of the operator\n return makeSuggestions(context, \"expression\");\n\n case \"String\":\n {\n // we only encounter a string as the right hand operand of a conditional expression\n const operator = getRelationalOperator(\n nodeBefore,\n state,\n ) as ColumnExpressionOperator;\n const columnName = getColumnName(nodeBefore, state);\n // are we inside the string or immediately after it\n const { from, to } = nodeBefore;\n if (to - from === 2 && context.pos === from + 1) {\n // We are in an empty string, i.e between two quotes\n if (columnName && operator) {\n return makeSuggestions(context, \"columnValue\", {\n columnName,\n operator,\n startsWith: word.text,\n });\n }\n } else if (to - from > 2 && context.pos === to) {\n // NOte we couls also offer AND/OR to extend the condition\n return makeSuggestions(context, \"expression\", {\n prefix: \", \",\n });\n }\n }\n break;\n\n case \"ArithmeticExpression\":\n {\n const lastChild = getLastChild(nodeBefore, context);\n if (lastChild?.name === \"Column\") {\n return makeSuggestions(context, \"expression\");\n } else if (isOperator(lastChild)) {\n const operator = lastChild.name as ColumnExpressionOperator;\n return makeSuggestions(context, \"column\", { operator });\n }\n }\n\n break;\n case \"OpenBrace\":\n {\n // Might be a function expression, might be parenthesized\n const functionName = getFunctionName(nodeBefore, state);\n // If not function, what came before - if it's an operator\n // we restrict to numerics\n return makeSuggestions(context, \"expression\", { functionName });\n }\n break;\n case \"ArgList\": {\n const functionName = getFunctionName(nodeBefore, state);\n const lastArgument = getLastChild(nodeBefore, context);\n\n const prefix =\n lastArgument?.name === \"OpenBrace\" || lastArgument?.name === \"Comma\"\n ? undefined\n : \",\";\n let options = await suggestionProvider.getSuggestions(\"expression\", {\n functionName,\n });\n options = prefix ? applyPrefix(options, \", \") : options;\n\n // TODO per function check for number of arguments expected\n if (\n lastArgument?.name !== \"OpenBrace\" &&\n lastArgument?.name !== \"Comma\"\n ) {\n options = [\n {\n apply: \") \",\n boost: 10,\n label: \"Done - no more arguments\",\n } as Completion,\n ].concat(options);\n }\n return { from: context.pos, options };\n }\n case \"Equal\":\n if (text.trim() === \"=\") {\n return makeSuggestions(context, \"expression\");\n }\n break;\n case \"ParenthesizedExpression\":\n case \"ColumnDefinitionExpression\":\n if (context.pos === 0) {\n return makeSuggestions(context, \"expression\");\n } else {\n const lastChild = getLastChild(nodeBefore, context);\n if (lastChild?.name === \"Column\") {\n if (maybeComplete) {\n // We come in here is the columns IS complete, too (ie has space after)\n const options: Completion[] = [\n completionDone(onSubmit.current),\n ];\n const columnName = getValue(lastChild, state);\n const columnOptions: Completion[] =\n await suggestionProvider.getSuggestions(\"operator\", {\n columnName,\n });\n\n return {\n from: context.pos,\n options: options.concat(columnOptions),\n };\n }\n } else if (lastChild?.name === \"CallExpression\") {\n if (maybeComplete) {\n return {\n from: context.pos,\n options: [completionDone(onSubmit.current)],\n };\n }\n } else if (lastChild?.name === \"ArithmeticExpression\") {\n if (maybeComplete) {\n let options: Completion[] = [completionDone(onSubmit.current)];\n\n const lastExpressionChild = getLastChild(lastChild, context);\n if (lastExpressionChild?.name === \"Column\") {\n const columnName = getValue(lastExpressionChild, state);\n // TODO need to exclude columns already included in expression\n\n const suggestions = await suggestionProvider.getSuggestions(\n \"operator\",\n { columnName },\n );\n options = options.concat(suggestions);\n }\n\n return {\n from: context.pos,\n options,\n };\n }\n } else if (lastChild?.name === \"ConditionalExpression\") {\n return handleConditionalExpression(\n lastChild,\n context,\n suggestionProvider,\n maybeComplete,\n onSubmit.current,\n );\n }\n break;\n }\n case \"Column\":\n {\n const isPartialMatch = await suggestionProvider.isPartialMatch(\n \"expression\",\n undefined,\n word.text,\n );\n\n if (isPartialMatch) {\n return makeSuggestions(context, \"expression\", {\n startsWith: word.text,\n });\n }\n }\n break;\n case \"Comma\":\n {\n const parentNode = getNamedParentNode(nodeBefore);\n if (parentNode?.name === \"ConditionalExpression\") {\n return makeSuggestions(context, \"expression\");\n }\n }\n break;\n\n case \"CloseBrace\":\n {\n const parentNode = getNamedParentNode(nodeBefore);\n if (parentNode?.name === \"ConditionalExpression\") {\n return handleConditionalExpression(\n parentNode,\n context,\n suggestionProvider,\n maybeComplete,\n onSubmit.current,\n );\n } else if (parentNode?.name === \"ArgList\") {\n if (maybeComplete) {\n return promptToSave(context, onSubmit.current);\n }\n }\n }\n break;\n\n default: {\n if (nodeBefore?.prevSibling?.name === \"FilterClause\") {\n console.log(\"looks like we ight be a or|and operator\");\n }\n }\n }\n },\n [makeSuggestions, onSubmit, suggestionProvider],\n ) as CompletionSource;\n};\n"],"names":["ColumnNamedTerms","getValue","lastNamedChild","makeSuggestions","useCallback","syntaxTree","isCompleteExpression","getPreviousNode","isCompleteRelationalExpression","booleanJoinSuggestions","getNamedParentNode"],"mappings":"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"}