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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (217) hide show
  1. package/cjs/index.js +4254 -65
  2. package/cjs/index.js.map +1 -1
  3. package/esm/index.js +4221 -28
  4. package/esm/index.js.map +1 -1
  5. package/package.json +11 -11
  6. package/cjs/cell-edit-validators/CaseValidator.js +0 -25
  7. package/cjs/cell-edit-validators/CaseValidator.js.map +0 -1
  8. package/cjs/cell-edit-validators/PatternValidator.js +0 -31
  9. package/cjs/cell-edit-validators/PatternValidator.js.map +0 -1
  10. package/cjs/cell-renderers/background-cell/BackgroundCell.css.js +0 -6
  11. package/cjs/cell-renderers/background-cell/BackgroundCell.css.js.map +0 -1
  12. package/cjs/cell-renderers/background-cell/BackgroundCell.js +0 -76
  13. package/cjs/cell-renderers/background-cell/BackgroundCell.js.map +0 -1
  14. package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js +0 -6
  15. package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js.map +0 -1
  16. package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js +0 -67
  17. package/cjs/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +0 -1
  18. package/cjs/cell-renderers/background-cell/BackgroundKeyframes.css.js +0 -6
  19. package/cjs/cell-renderers/background-cell/BackgroundKeyframes.css.js.map +0 -1
  20. package/cjs/cell-renderers/background-cell/useDirection.js +0 -20
  21. package/cjs/cell-renderers/background-cell/useDirection.js.map +0 -1
  22. package/cjs/cell-renderers/dropdown-cell/DropdownCell.css.js +0 -6
  23. package/cjs/cell-renderers/dropdown-cell/DropdownCell.css.js.map +0 -1
  24. package/cjs/cell-renderers/dropdown-cell/DropdownCell.js +0 -94
  25. package/cjs/cell-renderers/dropdown-cell/DropdownCell.js.map +0 -1
  26. package/cjs/cell-renderers/lookup-cell/LookupCell.js +0 -23
  27. package/cjs/cell-renderers/lookup-cell/LookupCell.js.map +0 -1
  28. package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.css.js +0 -6
  29. package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.css.js.map +0 -1
  30. package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.js +0 -62
  31. package/cjs/cell-renderers/pct-progress-cell/PctProgressCell.js.map +0 -1
  32. package/cjs/cell-renderers/progress-cell/ProgressCell.css.js +0 -6
  33. package/cjs/cell-renderers/progress-cell/ProgressCell.css.js.map +0 -1
  34. package/cjs/cell-renderers/progress-cell/ProgressCell.js +0 -69
  35. package/cjs/cell-renderers/progress-cell/ProgressCell.js.map +0 -1
  36. package/cjs/column-expression-input/ColumnExpressionInput.css.js +0 -6
  37. package/cjs/column-expression-input/ColumnExpressionInput.css.js.map +0 -1
  38. package/cjs/column-expression-input/ColumnExpressionInput.js +0 -39
  39. package/cjs/column-expression-input/ColumnExpressionInput.js.map +0 -1
  40. package/cjs/column-expression-input/column-function-descriptors.js +0 -307
  41. package/cjs/column-expression-input/column-function-descriptors.js.map +0 -1
  42. package/cjs/column-expression-input/column-language-parser/ColumnExpressionLanguage.js +0 -28
  43. package/cjs/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +0 -1
  44. package/cjs/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js +0 -465
  45. package/cjs/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +0 -1
  46. package/cjs/column-expression-input/column-language-parser/column-expression-parse-utils.js +0 -61
  47. package/cjs/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +0 -1
  48. package/cjs/column-expression-input/column-language-parser/generated/column-parser.js +0 -21
  49. package/cjs/column-expression-input/column-language-parser/generated/column-parser.js.map +0 -1
  50. package/cjs/column-expression-input/functionDocInfo.js +0 -39
  51. package/cjs/column-expression-input/functionDocInfo.js.map +0 -1
  52. package/cjs/column-expression-input/highlighting.js +0 -16
  53. package/cjs/column-expression-input/highlighting.js.map +0 -1
  54. package/cjs/column-expression-input/theme.js +0 -63
  55. package/cjs/column-expression-input/theme.js.map +0 -1
  56. package/cjs/column-expression-input/useColumnAutoComplete.js +0 -358
  57. package/cjs/column-expression-input/useColumnAutoComplete.js.map +0 -1
  58. package/cjs/column-expression-input/useColumnExpressionEditor.js +0 -131
  59. package/cjs/column-expression-input/useColumnExpressionEditor.js.map +0 -1
  60. package/cjs/column-expression-input/useColumnExpressionSuggestionProvider.js +0 -213
  61. package/cjs/column-expression-input/useColumnExpressionSuggestionProvider.js.map +0 -1
  62. package/cjs/column-expression-panel/ColumnExpressionPanel.js +0 -85
  63. package/cjs/column-expression-panel/ColumnExpressionPanel.js.map +0 -1
  64. package/cjs/column-expression-panel/useColumnExpression.js +0 -69
  65. package/cjs/column-expression-panel/useColumnExpression.js.map +0 -1
  66. package/cjs/column-formatting-settings/BaseNumericFormattingSettings.js +0 -97
  67. package/cjs/column-formatting-settings/BaseNumericFormattingSettings.js.map +0 -1
  68. package/cjs/column-formatting-settings/ColumnFormattingPanel.js +0 -104
  69. package/cjs/column-formatting-settings/ColumnFormattingPanel.js.map +0 -1
  70. package/cjs/column-formatting-settings/DateTimeFormattingSettings.js +0 -99
  71. package/cjs/column-formatting-settings/DateTimeFormattingSettings.js.map +0 -1
  72. package/cjs/column-formatting-settings/LongTypeFormattingSettings.css.js +0 -6
  73. package/cjs/column-formatting-settings/LongTypeFormattingSettings.css.js.map +0 -1
  74. package/cjs/column-formatting-settings/LongTypeFormattingSettings.js +0 -49
  75. package/cjs/column-formatting-settings/LongTypeFormattingSettings.js.map +0 -1
  76. package/cjs/column-list/ColumnList.css.js +0 -6
  77. package/cjs/column-list/ColumnList.css.js.map +0 -1
  78. package/cjs/column-list/ColumnList.js +0 -172
  79. package/cjs/column-list/ColumnList.js.map +0 -1
  80. package/cjs/column-menu/ColumnMenu.css.js +0 -6
  81. package/cjs/column-menu/ColumnMenu.css.js.map +0 -1
  82. package/cjs/column-menu/ColumnMenu.js +0 -116
  83. package/cjs/column-menu/ColumnMenu.js.map +0 -1
  84. package/cjs/column-menu/column-menu-utils.js +0 -489
  85. package/cjs/column-menu/column-menu-utils.js.map +0 -1
  86. package/cjs/column-menu/useColumnActions.js +0 -75
  87. package/cjs/column-menu/useColumnActions.js.map +0 -1
  88. package/cjs/datasource-stats/DatasourceStats.css.js +0 -6
  89. package/cjs/datasource-stats/DatasourceStats.css.js.map +0 -1
  90. package/cjs/datasource-stats/DatasourceStats.js +0 -52
  91. package/cjs/datasource-stats/DatasourceStats.js.map +0 -1
  92. package/cjs/table-column-settings/ColumnNameLabel.css.js +0 -6
  93. package/cjs/table-column-settings/ColumnNameLabel.css.js.map +0 -1
  94. package/cjs/table-column-settings/ColumnNameLabel.js +0 -45
  95. package/cjs/table-column-settings/ColumnNameLabel.js.map +0 -1
  96. package/cjs/table-column-settings/ColumnSettingsPanel.css.js +0 -6
  97. package/cjs/table-column-settings/ColumnSettingsPanel.css.js.map +0 -1
  98. package/cjs/table-column-settings/ColumnSettingsPanel.js +0 -202
  99. package/cjs/table-column-settings/ColumnSettingsPanel.js.map +0 -1
  100. package/cjs/table-column-settings/TableSettingsPanel.css.js +0 -6
  101. package/cjs/table-column-settings/TableSettingsPanel.css.js.map +0 -1
  102. package/cjs/table-column-settings/TableSettingsPanel.js +0 -139
  103. package/cjs/table-column-settings/TableSettingsPanel.js.map +0 -1
  104. package/cjs/table-column-settings/useColumnSettings.js +0 -224
  105. package/cjs/table-column-settings/useColumnSettings.js.map +0 -1
  106. package/cjs/table-column-settings/useTableAndColumnSettings.js +0 -126
  107. package/cjs/table-column-settings/useTableAndColumnSettings.js.map +0 -1
  108. package/cjs/table-column-settings/useTableSettings.js +0 -172
  109. package/cjs/table-column-settings/useTableSettings.js.map +0 -1
  110. package/cjs/table-provider/TableProvider.js +0 -48
  111. package/cjs/table-provider/TableProvider.js.map +0 -1
  112. package/esm/cell-edit-validators/CaseValidator.js +0 -23
  113. package/esm/cell-edit-validators/CaseValidator.js.map +0 -1
  114. package/esm/cell-edit-validators/PatternValidator.js +0 -29
  115. package/esm/cell-edit-validators/PatternValidator.js.map +0 -1
  116. package/esm/cell-renderers/background-cell/BackgroundCell.css.js +0 -4
  117. package/esm/cell-renderers/background-cell/BackgroundCell.css.js.map +0 -1
  118. package/esm/cell-renderers/background-cell/BackgroundCell.js +0 -74
  119. package/esm/cell-renderers/background-cell/BackgroundCell.js.map +0 -1
  120. package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js +0 -4
  121. package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.css.js.map +0 -1
  122. package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js +0 -65
  123. package/esm/cell-renderers/background-cell/BackgroundCellConfigurationEditor.js.map +0 -1
  124. package/esm/cell-renderers/background-cell/BackgroundKeyframes.css.js +0 -4
  125. package/esm/cell-renderers/background-cell/BackgroundKeyframes.css.js.map +0 -1
  126. package/esm/cell-renderers/background-cell/useDirection.js +0 -18
  127. package/esm/cell-renderers/background-cell/useDirection.js.map +0 -1
  128. package/esm/cell-renderers/dropdown-cell/DropdownCell.css.js +0 -4
  129. package/esm/cell-renderers/dropdown-cell/DropdownCell.css.js.map +0 -1
  130. package/esm/cell-renderers/dropdown-cell/DropdownCell.js +0 -92
  131. package/esm/cell-renderers/dropdown-cell/DropdownCell.js.map +0 -1
  132. package/esm/cell-renderers/lookup-cell/LookupCell.js +0 -21
  133. package/esm/cell-renderers/lookup-cell/LookupCell.js.map +0 -1
  134. package/esm/cell-renderers/pct-progress-cell/PctProgressCell.css.js +0 -4
  135. package/esm/cell-renderers/pct-progress-cell/PctProgressCell.css.js.map +0 -1
  136. package/esm/cell-renderers/pct-progress-cell/PctProgressCell.js +0 -60
  137. package/esm/cell-renderers/pct-progress-cell/PctProgressCell.js.map +0 -1
  138. package/esm/cell-renderers/progress-cell/ProgressCell.css.js +0 -4
  139. package/esm/cell-renderers/progress-cell/ProgressCell.css.js.map +0 -1
  140. package/esm/cell-renderers/progress-cell/ProgressCell.js +0 -67
  141. package/esm/cell-renderers/progress-cell/ProgressCell.js.map +0 -1
  142. package/esm/column-expression-input/ColumnExpressionInput.css.js +0 -4
  143. package/esm/column-expression-input/ColumnExpressionInput.css.js.map +0 -1
  144. package/esm/column-expression-input/ColumnExpressionInput.js +0 -37
  145. package/esm/column-expression-input/ColumnExpressionInput.js.map +0 -1
  146. package/esm/column-expression-input/column-function-descriptors.js +0 -305
  147. package/esm/column-expression-input/column-function-descriptors.js.map +0 -1
  148. package/esm/column-expression-input/column-language-parser/ColumnExpressionLanguage.js +0 -26
  149. package/esm/column-expression-input/column-language-parser/ColumnExpressionLanguage.js.map +0 -1
  150. package/esm/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js +0 -463
  151. package/esm/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.js.map +0 -1
  152. package/esm/column-expression-input/column-language-parser/column-expression-parse-utils.js +0 -56
  153. package/esm/column-expression-input/column-language-parser/column-expression-parse-utils.js.map +0 -1
  154. package/esm/column-expression-input/column-language-parser/generated/column-parser.js +0 -19
  155. package/esm/column-expression-input/column-language-parser/generated/column-parser.js.map +0 -1
  156. package/esm/column-expression-input/functionDocInfo.js +0 -37
  157. package/esm/column-expression-input/functionDocInfo.js.map +0 -1
  158. package/esm/column-expression-input/highlighting.js +0 -14
  159. package/esm/column-expression-input/highlighting.js.map +0 -1
  160. package/esm/column-expression-input/theme.js +0 -61
  161. package/esm/column-expression-input/theme.js.map +0 -1
  162. package/esm/column-expression-input/useColumnAutoComplete.js +0 -356
  163. package/esm/column-expression-input/useColumnAutoComplete.js.map +0 -1
  164. package/esm/column-expression-input/useColumnExpressionEditor.js +0 -129
  165. package/esm/column-expression-input/useColumnExpressionEditor.js.map +0 -1
  166. package/esm/column-expression-input/useColumnExpressionSuggestionProvider.js +0 -211
  167. package/esm/column-expression-input/useColumnExpressionSuggestionProvider.js.map +0 -1
  168. package/esm/column-expression-panel/ColumnExpressionPanel.js +0 -83
  169. package/esm/column-expression-panel/ColumnExpressionPanel.js.map +0 -1
  170. package/esm/column-expression-panel/useColumnExpression.js +0 -67
  171. package/esm/column-expression-panel/useColumnExpression.js.map +0 -1
  172. package/esm/column-formatting-settings/BaseNumericFormattingSettings.js +0 -95
  173. package/esm/column-formatting-settings/BaseNumericFormattingSettings.js.map +0 -1
  174. package/esm/column-formatting-settings/ColumnFormattingPanel.js +0 -102
  175. package/esm/column-formatting-settings/ColumnFormattingPanel.js.map +0 -1
  176. package/esm/column-formatting-settings/DateTimeFormattingSettings.js +0 -97
  177. package/esm/column-formatting-settings/DateTimeFormattingSettings.js.map +0 -1
  178. package/esm/column-formatting-settings/LongTypeFormattingSettings.css.js +0 -4
  179. package/esm/column-formatting-settings/LongTypeFormattingSettings.css.js.map +0 -1
  180. package/esm/column-formatting-settings/LongTypeFormattingSettings.js +0 -47
  181. package/esm/column-formatting-settings/LongTypeFormattingSettings.js.map +0 -1
  182. package/esm/column-list/ColumnList.css.js +0 -4
  183. package/esm/column-list/ColumnList.css.js.map +0 -1
  184. package/esm/column-list/ColumnList.js +0 -170
  185. package/esm/column-list/ColumnList.js.map +0 -1
  186. package/esm/column-menu/ColumnMenu.css.js +0 -4
  187. package/esm/column-menu/ColumnMenu.css.js.map +0 -1
  188. package/esm/column-menu/ColumnMenu.js +0 -114
  189. package/esm/column-menu/ColumnMenu.js.map +0 -1
  190. package/esm/column-menu/column-menu-utils.js +0 -480
  191. package/esm/column-menu/column-menu-utils.js.map +0 -1
  192. package/esm/column-menu/useColumnActions.js +0 -73
  193. package/esm/column-menu/useColumnActions.js.map +0 -1
  194. package/esm/datasource-stats/DatasourceStats.css.js +0 -4
  195. package/esm/datasource-stats/DatasourceStats.css.js.map +0 -1
  196. package/esm/datasource-stats/DatasourceStats.js +0 -50
  197. package/esm/datasource-stats/DatasourceStats.js.map +0 -1
  198. package/esm/table-column-settings/ColumnNameLabel.css.js +0 -4
  199. package/esm/table-column-settings/ColumnNameLabel.css.js.map +0 -1
  200. package/esm/table-column-settings/ColumnNameLabel.js +0 -43
  201. package/esm/table-column-settings/ColumnNameLabel.js.map +0 -1
  202. package/esm/table-column-settings/ColumnSettingsPanel.css.js +0 -4
  203. package/esm/table-column-settings/ColumnSettingsPanel.css.js.map +0 -1
  204. package/esm/table-column-settings/ColumnSettingsPanel.js +0 -200
  205. package/esm/table-column-settings/ColumnSettingsPanel.js.map +0 -1
  206. package/esm/table-column-settings/TableSettingsPanel.css.js +0 -4
  207. package/esm/table-column-settings/TableSettingsPanel.css.js.map +0 -1
  208. package/esm/table-column-settings/TableSettingsPanel.js +0 -136
  209. package/esm/table-column-settings/TableSettingsPanel.js.map +0 -1
  210. package/esm/table-column-settings/useColumnSettings.js +0 -222
  211. package/esm/table-column-settings/useColumnSettings.js.map +0 -1
  212. package/esm/table-column-settings/useTableAndColumnSettings.js +0 -122
  213. package/esm/table-column-settings/useTableAndColumnSettings.js.map +0 -1
  214. package/esm/table-column-settings/useTableSettings.js +0 -170
  215. package/esm/table-column-settings/useTableSettings.js.map +0 -1
  216. package/esm/table-provider/TableProvider.js +0 -44
  217. package/esm/table-provider/TableProvider.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"column-function-descriptors.js","sources":["../../src/column-expression-input/column-function-descriptors.ts"],"sourcesContent":["export type ColumnFunctionDescriptor = {\n accepts:\n | \"string\"\n | \"number\"\n | \"boolean\"\n | \"any\"\n | Array<\"string\" | \"number\" | \"boolean\">;\n description: string;\n example: {\n expression: string;\n result: string;\n };\n name: string;\n params: {\n count?: number;\n description: string;\n };\n type: \"string\" | \"number\" | \"boolean\" | \"variable\";\n};\n\nexport const columnFunctionDescriptors: ColumnFunctionDescriptor[] = [\n /**\n * and\n */\n {\n accepts: [\"boolean\"],\n description:\n \"Applies boolean and operator across supplied parameters to returns a single boolean result\",\n example: {\n expression: 'and(ccy=\"EUR\",quantity=0)',\n result: \"true | false\",\n },\n name: \"and\",\n params: {\n description: \"( boolean, [ boolean* ] )\",\n },\n type: \"boolean\",\n },\n\n /**\n * concatenate()\n */\n {\n accepts: \"string\",\n description:\n \"Returns multiple string values as a single joined string. Arguments may be string literal values, string columns or other string expressions. Non string arguments may also be included, these will be converted to strings.\",\n example: {\n expression: 'concatenate(\"example\", \"-test\")',\n result: '\"example-test\"',\n },\n name: \"concatenate\",\n params: {\n description: \"( string, string, [ string* ] )\",\n },\n type: \"string\",\n },\n /**\n * contains()\n */\n {\n accepts: [\"string\", \"string\"],\n description:\n \"Tests a string value to determine whether it contains a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> contains one or more occurrences of <target subscring>\",\n example: {\n expression: 'contains(\"Royal Bank of Scotland\", \"bank\")',\n result: \"true\",\n },\n name: \"contains\",\n params: {\n description: \"( string )\",\n },\n type: \"boolean\",\n },\n\n /**\n * left()\n */\n {\n accepts: [\"string\", \"number\"],\n description:\n \"Returns the leftmost <number> characters from <string>. First argument may be a string literal, string column or other string expression.\",\n example: {\n expression: 'left(\"USD Benchmark Report\", 3)',\n result: '\"USD\"',\n },\n name: \"left\",\n params: {\n count: 2,\n description: \"( string, number )\",\n },\n type: \"string\",\n },\n /**\n * len()\n */\n {\n accepts: \"string\",\n description:\n \"Returns the number of characters in <string>. Argument may be a string literal, string column or other string expression.\",\n example: {\n expression: 'len(\"example\")',\n result: \"7\",\n },\n name: \"len\",\n params: {\n description: \"(string)\",\n },\n type: \"number\",\n },\n /**\n * lower()\n */\n {\n accepts: \"string\",\n description:\n \"Convert a string value to lowercase. Argument may be a string column or other string expression.\",\n example: {\n expression: 'lower(\"examPLE\")',\n result: '\"example\"',\n },\n name: \"lower\",\n params: {\n description: \"( string )\",\n },\n type: \"string\",\n },\n /**\n * or\n */\n {\n accepts: [\"boolean\"],\n description:\n \"Applies boolean or operator across supplied parameters to returns a single boolean result\",\n example: {\n expression: 'or(status=\"cancelled\",quantity=0)',\n result: \"true | false\",\n },\n name: \"or\",\n params: {\n description: \"( boolean, [ boolean* ] )\",\n },\n type: \"boolean\",\n },\n\n /**\n * upper()\n */\n {\n accepts: \"string\",\n description:\n \"Convert a string value to uppercase. Argument may be a string column or other string expression.\",\n example: {\n expression: 'upper(\"example\")',\n result: '\"EXAMPLE\"',\n },\n name: \"upper\",\n params: {\n description: \"( string )\",\n },\n type: \"string\",\n },\n /**\n * right()\n */\n {\n accepts: [\"string\", \"number\"],\n description:\n \"Returns the rightmost <number> characters from <string>. First argument may be a string literal, string column or other string expression.\",\n example: {\n expression: \"blah\",\n result: \"blah\",\n },\n name: \"right\",\n params: {\n description: \"( string )\",\n },\n type: \"string\",\n },\n /**\n * replace()\n */\n {\n accepts: [\"string\", \"string\", \"string\"],\n description:\n \"Replace characters within a string. Accepts three arguments: source text, text to replace and replacement text. Returns a copy of <source text> with any occurrences of <text to replace> replaced by <replacement text>\",\n example: {\n expression: \"blah\",\n result: \"blah\",\n },\n name: \"replace\",\n params: {\n description: \"( string )\",\n },\n type: \"string\",\n },\n /**\n * text()\n */\n {\n accepts: \"number\",\n description: \"Converts a number to a string.\",\n example: {\n expression: \"blah\",\n result: \"blah\",\n },\n name: \"text\",\n params: {\n description: \"( string )\",\n },\n type: \"string\",\n },\n /**\n * starts()\n */\n {\n accepts: \"string\",\n description:\n \"Tests a string value to determine whether it starts with a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> starts with <target subscring>.\",\n example: {\n expression: \"blah\",\n result: \"blah\",\n },\n name: \"starts\",\n params: {\n description: \"( string )\",\n },\n type: \"boolean\",\n },\n /**\n * starts()\n */\n {\n accepts: \"string\",\n description:\n \"Tests a string value to determine whether it ends with a given substring. Accepts two arguments: source text and target substring. Returns true if <source text> ends with <target subscring>.\",\n example: {\n expression: \"blah\",\n result: \"blah\",\n },\n name: \"ends\",\n params: {\n description: \"( string )\",\n },\n type: \"boolean\",\n },\n {\n accepts: \"number\",\n description: \"blah\",\n example: {\n expression: \"blah\",\n result: \"blah\",\n },\n name: \"min\",\n params: {\n description: \"( string )\",\n },\n type: \"number\",\n },\n {\n accepts: \"number\",\n description: \"blah\",\n example: {\n expression: \"blah\",\n result: \"blah\",\n },\n name: \"max\",\n params: {\n description: \"( string )\",\n },\n type: \"number\",\n },\n {\n accepts: \"number\",\n description: \"blah\",\n example: {\n expression: \"blah\",\n result: \"blah\",\n },\n name: \"sum\",\n params: {\n description: \"( string )\",\n },\n type: \"number\",\n },\n {\n accepts: \"number\",\n description: \"blah\",\n example: {\n expression: \"blah\",\n result: \"blah\",\n },\n name: \"round\",\n params: {\n description: \"( string )\",\n },\n type: \"number\",\n },\n {\n accepts: \"any\",\n description: \"blah\",\n example: {\n expression: \"blah\",\n result: \"blah\",\n },\n name: \"or\",\n params: {\n description: \"( string )\",\n },\n type: \"boolean\",\n },\n {\n accepts: \"any\",\n description: \"blah\",\n example: {\n expression: \"blah\",\n result: \"blah\",\n },\n name: \"and\",\n params: {\n description: \"( string )\",\n },\n type: \"boolean\",\n },\n {\n accepts: \"any\",\n description:\n \"Return one of two possible result values, depending on the evaluation of a filter expression. If <filterExpression> resolves to true, result is <expression1>, otherwise <expression2>. \",\n example: {\n expression: \"blah\",\n result: \"blah\",\n },\n name: \"if\",\n params: {\n description: \"( filterExpression, expression1, expression 2)\",\n },\n type: \"variable\",\n },\n];\n"],"names":[],"mappings":"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"}
@@ -1,26 +0,0 @@
1
- import { LRLanguage, styleTags, tags, LanguageSupport } from '@vuu-ui/vuu-codemirror';
2
- import { parser } from './generated/column-parser.js';
3
-
4
- const columnExpressionLanguage = LRLanguage.define({
5
- name: "VuuColumnExpression",
6
- parser: parser.configure({
7
- props: [
8
- styleTags({
9
- Column: tags.attributeValue,
10
- Function: tags.variableName,
11
- String: tags.string,
12
- Or: tags.emphasis,
13
- Operator: tags.operator
14
- })
15
- ]
16
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
- })
18
- });
19
- const columnExpressionLanguageSupport = () => {
20
- return new LanguageSupport(
21
- columnExpressionLanguage
22
- );
23
- };
24
-
25
- export { columnExpressionLanguageSupport };
26
- //# sourceMappingURL=ColumnExpressionLanguage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColumnExpressionLanguage.js","sources":["../../../src/column-expression-input/column-language-parser/ColumnExpressionLanguage.ts"],"sourcesContent":["import {\n LanguageSupport,\n LRLanguage,\n styleTags,\n tags as tag,\n} from \"@vuu-ui/vuu-codemirror\";\nimport { parser } from \"./generated/column-parser\";\n\nconst columnExpressionLanguage = LRLanguage.define({\n name: \"VuuColumnExpression\",\n parser: parser.configure({\n props: [\n styleTags({\n Column: tag.attributeValue,\n Function: tag.variableName,\n String: tag.string,\n Or: tag.emphasis,\n Operator: tag.operator,\n }),\n ],\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n }) as any,\n});\n\nexport const columnExpressionLanguageSupport = () => {\n return new LanguageSupport(\n columnExpressionLanguage /*, [exampleCompletion]*/,\n );\n};\n"],"names":["tag"],"mappings":";;;AAQA,MAAM,wBAAA,GAA2B,WAAW,MAAO,CAAA;AAAA,EACjD,IAAM,EAAA,qBAAA;AAAA,EACN,MAAA,EAAQ,OAAO,SAAU,CAAA;AAAA,IACvB,KAAO,EAAA;AAAA,MACL,SAAU,CAAA;AAAA,QACR,QAAQA,IAAI,CAAA,cAAA;AAAA,QACZ,UAAUA,IAAI,CAAA,YAAA;AAAA,QACd,QAAQA,IAAI,CAAA,MAAA;AAAA,QACZ,IAAIA,IAAI,CAAA,QAAA;AAAA,QACR,UAAUA,IAAI,CAAA;AAAA,OACf;AAAA;AACH;AAAA,GAED;AACH,CAAC,CAAA;AAEM,MAAM,kCAAkC,MAAM;AACnD,EAAA,OAAO,IAAI,eAAA;AAAA,IACT;AAAA,GACF;AACF;;;;"}
@@ -1,463 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __typeError = (msg) => {
3
- throw TypeError(msg);
4
- };
5
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
- var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
7
- var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
8
- var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
9
- var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
10
- var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
11
- var _expressions, _op, _expressions2, _expressions3, _op2, _expressions4, _op3, _expressions5, _expression, _callStack;
12
- class LiteralExpressionImpl {
13
- constructor(value) {
14
- __publicField(this, "type");
15
- __publicField(this, "value");
16
- this.value = value;
17
- switch (typeof value) {
18
- case "boolean":
19
- this.type = "booleanLiteralExpression";
20
- break;
21
- case "number":
22
- this.type = "numericLiteralExpression";
23
- break;
24
- default:
25
- this.type = "stringLiteralExpression";
26
- }
27
- }
28
- toJSON() {
29
- return {
30
- type: this.type,
31
- value: this.value
32
- };
33
- }
34
- }
35
- class ColumnExpressionImpl {
36
- constructor(columnName) {
37
- __publicField(this, "type", "colExpression");
38
- __publicField(this, "column");
39
- this.column = columnName;
40
- }
41
- toJSON() {
42
- return {
43
- type: this.type,
44
- column: this.column
45
- };
46
- }
47
- }
48
- class ArithmeticExpressionImpl {
49
- constructor(op = "unknown") {
50
- __privateAdd(this, _expressions, [
51
- { type: "unknown" },
52
- { type: "unknown" }
53
- ]);
54
- __privateAdd(this, _op);
55
- __publicField(this, "type", "arithmeticExpression");
56
- __privateSet(this, _op, op);
57
- }
58
- get op() {
59
- return __privateGet(this, _op);
60
- }
61
- set op(op) {
62
- __privateSet(this, _op, op);
63
- }
64
- get expressions() {
65
- return __privateGet(this, _expressions);
66
- }
67
- toJSON() {
68
- return {
69
- type: this.type,
70
- op: __privateGet(this, _op),
71
- expressions: __privateGet(this, _expressions)
72
- };
73
- }
74
- }
75
- _expressions = new WeakMap();
76
- _op = new WeakMap();
77
- class CallExpressionImpl {
78
- constructor(functionName) {
79
- __privateAdd(this, _expressions2, []);
80
- __publicField(this, "functionName");
81
- __publicField(this, "type", "callExpression");
82
- this.functionName = functionName;
83
- }
84
- get expressions() {
85
- return __privateGet(this, _expressions2);
86
- }
87
- get arguments() {
88
- return __privateGet(this, _expressions2);
89
- }
90
- toJSON() {
91
- return {
92
- type: this.type,
93
- functionName: this.functionName,
94
- arguments: __privateGet(this, _expressions2).map((e) => e.toJSON?.())
95
- };
96
- }
97
- }
98
- _expressions2 = new WeakMap();
99
- class RelationalExpressionImpl {
100
- constructor() {
101
- __privateAdd(this, _expressions3, [
102
- { type: "unknown" },
103
- { type: "unknown" }
104
- ]);
105
- __privateAdd(this, _op2, "unknown");
106
- __publicField(this, "type", "relationalExpression");
107
- }
108
- get op() {
109
- return __privateGet(this, _op2);
110
- }
111
- set op(op) {
112
- __privateSet(this, _op2, op);
113
- }
114
- get expressions() {
115
- return __privateGet(this, _expressions3);
116
- }
117
- toJSON() {
118
- return {
119
- type: this.type,
120
- op: __privateGet(this, _op2),
121
- expressions: __privateGet(this, _expressions3)
122
- };
123
- }
124
- }
125
- _expressions3 = new WeakMap();
126
- _op2 = new WeakMap();
127
- class BooleanConditionImp {
128
- constructor(booleanOperator) {
129
- __privateAdd(this, _expressions4, [
130
- { type: "unknown" },
131
- { type: "unknown" }
132
- ]);
133
- __privateAdd(this, _op3);
134
- __publicField(this, "type", "booleanCondition");
135
- __privateSet(this, _op3, booleanOperator);
136
- }
137
- get op() {
138
- return __privateGet(this, _op3);
139
- }
140
- get expressions() {
141
- return __privateGet(this, _expressions4);
142
- }
143
- toJSON() {
144
- return {
145
- type: this.type,
146
- op: __privateGet(this, _op3),
147
- expressions: __privateGet(this, _expressions4).map((e) => e.toJSON?.())
148
- };
149
- }
150
- }
151
- _expressions4 = new WeakMap();
152
- _op3 = new WeakMap();
153
- class ConditionalExpressionImpl {
154
- constructor(booleanOperator) {
155
- __privateAdd(this, _expressions5);
156
- __publicField(this, "type", "conditionalExpression");
157
- __privateSet(this, _expressions5, [
158
- booleanOperator ? new BooleanConditionImp(booleanOperator) : new RelationalExpressionImpl(),
159
- { type: "unknown" },
160
- { type: "unknown" }
161
- ]);
162
- }
163
- get expressions() {
164
- return __privateGet(this, _expressions5);
165
- }
166
- get condition() {
167
- return __privateGet(this, _expressions5)[0];
168
- }
169
- get truthyExpression() {
170
- return __privateGet(this, _expressions5)[1];
171
- }
172
- set truthyExpression(expression) {
173
- __privateGet(this, _expressions5)[1] = expression;
174
- }
175
- get falsyExpression() {
176
- return __privateGet(this, _expressions5)[2];
177
- }
178
- set falsyExpression(expression) {
179
- __privateGet(this, _expressions5)[2] = expression;
180
- }
181
- toJSON() {
182
- return {
183
- type: this.type,
184
- condition: this.condition.toJSON?.(),
185
- truthyExpression: this.truthyExpression,
186
- falsyExpression: this.falsyExpression?.toJSON?.() ?? this.falsyExpression
187
- };
188
- }
189
- }
190
- _expressions5 = new WeakMap();
191
- const isUnknown = (e) => e.type === "unknown";
192
- const isArithmeticExpression = (expression) => expression.type === "arithmeticExpression";
193
- const isCallExpression = (expression) => expression.type === "callExpression";
194
- const isConditionalExpression = (expression) => expression.type === "conditionalExpression";
195
- const isCondition = (expression) => expression.type === "relationalExpression" || expression.type === "booleanCondition";
196
- const isBooleanCondition = (expression) => expression.type === "booleanCondition";
197
- const isRelationalExpression = (expression) => expression?.type === "relationalExpression";
198
- const firstIncompleteExpression = (expression) => {
199
- if (isUnknown(expression)) {
200
- return expression;
201
- } else if (isRelationalExpression(expression)) {
202
- const [operand1, operand2] = expression.expressions;
203
- if (expressionIsIncomplete(operand1)) {
204
- return firstIncompleteExpression(operand1);
205
- } else if (expression.op === "unknown") {
206
- return expression;
207
- } else if (expressionIsIncomplete(operand2)) {
208
- return firstIncompleteExpression(operand2);
209
- }
210
- } else if (isCondition(expression)) {
211
- const { expressions = [] } = expression;
212
- for (const e of expressions) {
213
- if (expressionIsIncomplete(e)) {
214
- return firstIncompleteExpression(e);
215
- }
216
- }
217
- } else if (isConditionalExpression(expression)) {
218
- const { condition, truthyExpression, falsyExpression } = expression;
219
- if (expressionIsIncomplete(condition)) {
220
- return firstIncompleteExpression(condition);
221
- } else if (expressionIsIncomplete(truthyExpression)) {
222
- return firstIncompleteExpression(truthyExpression);
223
- } else if (expressionIsIncomplete(falsyExpression)) {
224
- return firstIncompleteExpression(falsyExpression);
225
- }
226
- } else if (isArithmeticExpression(expression)) {
227
- const { expressions = [] } = expression;
228
- for (const e of expressions) {
229
- if (expressionIsIncomplete(e)) {
230
- return firstIncompleteExpression(e);
231
- }
232
- }
233
- }
234
- };
235
- const replaceUnknownExpression = (incompleteExpression, unknownExpression, expression) => {
236
- const { expressions = [] } = incompleteExpression;
237
- if (expressions.includes(unknownExpression)) {
238
- const pos = expressions.indexOf(unknownExpression);
239
- expressions.splice(pos, 1, expression);
240
- return true;
241
- } else {
242
- for (const e of expressions) {
243
- if (replaceUnknownExpression(e, unknownExpression, expression)) {
244
- return true;
245
- }
246
- }
247
- }
248
- return false;
249
- };
250
- const expressionIsIncomplete = (expression) => {
251
- if (isUnknown(expression)) {
252
- return true;
253
- } else if (isConditionalExpression(expression)) {
254
- return expressionIsIncomplete(expression.condition) || expressionIsIncomplete(expression.truthyExpression) || expressionIsIncomplete(expression.falsyExpression);
255
- } else if (isRelationalExpression(expression) || isBooleanCondition(expression)) {
256
- return expression.op === void 0 || expression.expressions.some((e) => expressionIsIncomplete(e));
257
- }
258
- return false;
259
- };
260
- const addExpression = (expression, subExpression) => {
261
- const targetExpression = firstIncompleteExpression(expression);
262
- if (targetExpression) {
263
- if (targetExpression.expressions) {
264
- targetExpression.expressions.push(subExpression);
265
- } else {
266
- console.warn("don't know how to treat targetExpression");
267
- }
268
- } else {
269
- console.error("no target expression found");
270
- }
271
- };
272
- class ColumnExpression {
273
- constructor() {
274
- __privateAdd(this, _expression);
275
- __privateAdd(this, _callStack, []);
276
- }
277
- setCondition(booleanOperator) {
278
- if (__privateGet(this, _expression) === void 0) {
279
- this.addExpression(new ConditionalExpressionImpl(booleanOperator));
280
- } else if (isConditionalExpression(__privateGet(this, _expression))) {
281
- if (expressionIsIncomplete(__privateGet(this, _expression).condition)) {
282
- const condition = booleanOperator ? new BooleanConditionImp(booleanOperator) : new RelationalExpressionImpl();
283
- this.addExpression(condition);
284
- } else if (isUnknown(__privateGet(this, _expression).truthyExpression)) {
285
- __privateGet(this, _expression).truthyExpression = new ConditionalExpressionImpl(
286
- booleanOperator
287
- );
288
- } else if (expressionIsIncomplete(__privateGet(this, _expression).truthyExpression)) {
289
- const condition = booleanOperator ? new BooleanConditionImp(booleanOperator) : new RelationalExpressionImpl();
290
- this.addExpression(condition);
291
- } else if (isUnknown(__privateGet(this, _expression).falsyExpression)) {
292
- __privateGet(this, _expression).falsyExpression = new ConditionalExpressionImpl(
293
- booleanOperator
294
- );
295
- } else if (expressionIsIncomplete(__privateGet(this, _expression).falsyExpression)) {
296
- const condition = booleanOperator ? new BooleanConditionImp(booleanOperator) : new RelationalExpressionImpl();
297
- this.addExpression(condition);
298
- }
299
- } else {
300
- console.error("setCondition called unexpectedly");
301
- }
302
- }
303
- addExpression(expression) {
304
- if (__privateGet(this, _callStack).length > 0) {
305
- const currentCallExpression = __privateGet(this, _callStack).at(-1);
306
- currentCallExpression?.arguments.push(expression);
307
- } else if (__privateGet(this, _expression) === void 0) {
308
- __privateSet(this, _expression, expression);
309
- } else if (isArithmeticExpression(__privateGet(this, _expression))) {
310
- const targetExpression = firstIncompleteExpression(__privateGet(this, _expression));
311
- if (targetExpression && isUnknown(targetExpression)) {
312
- replaceUnknownExpression(
313
- __privateGet(this, _expression),
314
- targetExpression,
315
- expression
316
- );
317
- }
318
- } else if (isConditionalExpression(__privateGet(this, _expression))) {
319
- if (expressionIsIncomplete(__privateGet(this, _expression))) {
320
- const targetExpression = firstIncompleteExpression(__privateGet(this, _expression));
321
- if (targetExpression && isUnknown(targetExpression)) {
322
- replaceUnknownExpression(
323
- __privateGet(this, _expression),
324
- targetExpression,
325
- expression
326
- );
327
- } else if (targetExpression) {
328
- addExpression(targetExpression, expression);
329
- }
330
- }
331
- }
332
- }
333
- setFunction(functionName) {
334
- const callExpression = new CallExpressionImpl(functionName);
335
- this.addExpression(callExpression);
336
- __privateGet(this, _callStack).push(callExpression);
337
- }
338
- setColumn(columnName) {
339
- this.addExpression(new ColumnExpressionImpl(columnName));
340
- }
341
- setArithmeticOp(value) {
342
- const op = value;
343
- const expression = __privateGet(this, _expression);
344
- if (isArithmeticExpression(expression)) {
345
- expression.op = op;
346
- }
347
- }
348
- setRelationalOperator(value) {
349
- const op = value;
350
- if (__privateGet(this, _expression) && isConditionalExpression(__privateGet(this, _expression))) {
351
- const targetExpression = firstIncompleteExpression(__privateGet(this, _expression));
352
- if (isRelationalExpression(targetExpression)) {
353
- targetExpression.op = op;
354
- } else {
355
- console.error(`no target expression found (op = ${value})`);
356
- }
357
- }
358
- }
359
- setValue(value) {
360
- const literalExpression = new LiteralExpressionImpl(value);
361
- if (__privateGet(this, _expression) === void 0) {
362
- __privateSet(this, _expression, literalExpression);
363
- } else if (isArithmeticExpression(__privateGet(this, _expression))) {
364
- this.addExpression(literalExpression);
365
- } else if (isCallExpression(__privateGet(this, _expression))) {
366
- __privateGet(this, _expression).arguments.push(literalExpression);
367
- } else if (isConditionalExpression(__privateGet(this, _expression))) {
368
- if (expressionIsIncomplete(__privateGet(this, _expression))) {
369
- const targetExpression = firstIncompleteExpression(__privateGet(this, _expression));
370
- if (targetExpression && isUnknown(targetExpression)) {
371
- replaceUnknownExpression(
372
- __privateGet(this, _expression),
373
- targetExpression,
374
- literalExpression
375
- );
376
- } else if (targetExpression) {
377
- addExpression(targetExpression, literalExpression);
378
- }
379
- } else {
380
- console.log("what do we do with value, in a complete expression");
381
- }
382
- }
383
- }
384
- closeBrace() {
385
- __privateGet(this, _callStack).pop();
386
- }
387
- get expression() {
388
- return __privateGet(this, _expression);
389
- }
390
- toJSON() {
391
- return __privateGet(this, _expression)?.toJSON();
392
- }
393
- }
394
- _expression = new WeakMap();
395
- _callStack = new WeakMap();
396
- const walkTree = (tree, source) => {
397
- const columnExpression = new ColumnExpression();
398
- const cursor = tree.cursor();
399
- do {
400
- const { name, from, to } = cursor;
401
- switch (name) {
402
- case "AndCondition":
403
- columnExpression.setCondition("and");
404
- break;
405
- case "OrCondition":
406
- columnExpression.setCondition("or");
407
- break;
408
- case "RelationalExpression":
409
- columnExpression.setCondition();
410
- break;
411
- case "ArithmeticExpression":
412
- columnExpression.addExpression(new ArithmeticExpressionImpl());
413
- break;
414
- case "Column":
415
- {
416
- const columnName = source.substring(from, to);
417
- columnExpression.setColumn(columnName);
418
- }
419
- break;
420
- case "Function":
421
- {
422
- const functionName = source.substring(from, to);
423
- columnExpression.setFunction(functionName);
424
- }
425
- break;
426
- case "Times":
427
- case "Divide":
428
- case "Plus":
429
- case "Minus":
430
- {
431
- const op = source.substring(from, to);
432
- columnExpression.setArithmeticOp(op);
433
- }
434
- break;
435
- case "RelationalOperator":
436
- {
437
- const op = source.substring(from, to);
438
- columnExpression.setRelationalOperator(op);
439
- }
440
- break;
441
- case "False":
442
- case "True":
443
- {
444
- const value = source.substring(from, to);
445
- columnExpression.setValue(value === "true" ? true : false);
446
- }
447
- break;
448
- case "String":
449
- columnExpression.setValue(source.substring(from + 1, to - 1));
450
- break;
451
- case "Number":
452
- columnExpression.setValue(parseFloat(source.substring(from, to)));
453
- break;
454
- case "CloseBrace":
455
- columnExpression.closeBrace();
456
- break;
457
- }
458
- } while (cursor.next());
459
- return columnExpression.toJSON();
460
- };
461
-
462
- export { walkTree };
463
- //# sourceMappingURL=ColumnExpressionTreeWalker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColumnExpressionTreeWalker.js","sources":["../../../src/column-expression-input/column-language-parser/ColumnExpressionTreeWalker.ts"],"sourcesContent":["import { Tree } from \"@vuu-ui/vuu-codemirror\";\nimport { RelationalExpression } from \"./generated/column-parser.terms\";\ntype expressionType =\n | \"arithmeticExpression\"\n | \"booleanCondition\"\n | \"booleanLiteralExpression\"\n | \"callExpression\"\n | \"colExpression\"\n | \"conditionalExpression\"\n | \"numericLiteralExpression\"\n | \"relationalExpression\"\n | \"stringLiteralExpression\"\n | \"unknown\";\n\ntype arithmeticOp = \"*\" | \"/\" | \"+\" | \"-\" | \"unknown\";\ntype booleanOp = \"and\" | \"or\";\ntype relationalOp = \"=\" | \"!=\" | \">\" | \">=\" | \"<\" | \"<=\" | \"unknown\";\n\nexport interface Expression {\n type: expressionType;\n expressions?: Expression[];\n toJSON?: () => unknown;\n value?: string | number | boolean;\n}\n\ninterface UnknownExpression extends Expression {\n type: \"unknown\";\n}\n\ninterface BooleanLiteralExpression {\n type: \"booleanLiteralExpression\";\n value: boolean;\n}\n\ninterface NumericLiteralExpression {\n type: \"numericLiteralExpression\";\n value: number;\n}\ninterface StringLiteralExpression {\n type: \"stringLiteralExpression\";\n value: string;\n}\n\ninterface ArithmeticExpression extends Expression {\n expressions: [Expression, Expression];\n op: arithmeticOp;\n type: \"arithmeticExpression\";\n}\n\ninterface BooleanCondition extends Expression {\n expressions: Expression[];\n op: booleanOp;\n type: \"booleanCondition\";\n}\ninterface RelationalExpression extends Expression {\n expressions: Expression[];\n op: relationalOp;\n type: \"relationalExpression\";\n}\n\ninterface ColExpression extends Expression {\n column?: string;\n type: \"colExpression\";\n}\n\ninterface CallExpression extends Expression {\n arguments: Expression[];\n functionName?: string;\n type: \"callExpression\";\n}\n\ntype ConditionExpression = RelationalExpression | BooleanCondition;\n\ninterface ConditionalExpression extends Expression {\n type: \"conditionalExpression\";\n condition: ConditionExpression;\n truthyExpression: Expression;\n falsyExpression: Expression;\n}\n\nexport type ColumnDefinitionExpression =\n | ArithmeticExpression\n | BooleanLiteralExpression\n | CallExpression\n | ColExpression\n | ConditionalExpression\n | NumericLiteralExpression\n | StringLiteralExpression;\n\nclass LiteralExpressionImpl implements Expression {\n type:\n | \"booleanLiteralExpression\"\n | \"numericLiteralExpression\"\n | \"stringLiteralExpression\";\n value: boolean | number | string;\n constructor(value: boolean | number | string) {\n this.value = value;\n switch (typeof value) {\n case \"boolean\":\n this.type = \"booleanLiteralExpression\";\n break;\n case \"number\":\n this.type = \"numericLiteralExpression\";\n break;\n default:\n this.type = \"stringLiteralExpression\";\n }\n }\n toJSON() {\n return {\n type: this.type,\n value: this.value,\n } as\n | StringLiteralExpression\n | BooleanLiteralExpression\n | NumericLiteralExpression;\n }\n}\nclass ColumnExpressionImpl implements ColExpression {\n type = \"colExpression\" as const;\n column: string;\n constructor(columnName: string) {\n this.column = columnName;\n }\n toJSON() {\n return {\n type: this.type,\n column: this.column,\n } as ColExpression;\n }\n}\nclass ArithmeticExpressionImpl implements ArithmeticExpression {\n #expressions: [Expression, Expression] = [\n { type: \"unknown\" },\n { type: \"unknown\" },\n ];\n #op: arithmeticOp | \"unknown\";\n type = \"arithmeticExpression\" as const;\n constructor(op: arithmeticOp | \"unknown\" = \"unknown\") {\n this.#op = op;\n }\n get op() {\n return this.#op;\n }\n set op(op: arithmeticOp) {\n this.#op = op;\n }\n get expressions() {\n return this.#expressions;\n }\n\n toJSON() {\n return {\n type: this.type,\n op: this.#op,\n expressions: this.#expressions,\n };\n }\n}\n\nclass CallExpressionImpl implements CallExpression {\n #expressions: Expression[] = [];\n functionName: string;\n type = \"callExpression\" as const;\n constructor(functionName: string) {\n this.functionName = functionName;\n }\n\n get expressions() {\n return this.#expressions;\n }\n get arguments() {\n return this.#expressions;\n }\n\n toJSON() {\n return {\n type: this.type,\n functionName: this.functionName,\n arguments: this.#expressions.map((e) => e.toJSON?.()),\n } as CallExpression;\n }\n}\n\nclass RelationalExpressionImpl implements RelationalExpression {\n #expressions: [Expression, Expression] = [\n { type: \"unknown\" },\n { type: \"unknown\" },\n ];\n #op: relationalOp = \"unknown\";\n type = \"relationalExpression\" as const;\n\n get op() {\n return this.#op;\n }\n set op(op: relationalOp) {\n this.#op = op;\n }\n get expressions() {\n return this.#expressions;\n }\n\n toJSON() {\n return {\n type: this.type,\n op: this.#op,\n expressions: this.#expressions,\n } as RelationalExpression;\n }\n}\n\nclass BooleanConditionImp implements BooleanCondition {\n #expressions: [Expression, Expression] = [\n { type: \"unknown\" },\n { type: \"unknown\" },\n ];\n #op: \"and\" | \"or\";\n type = \"booleanCondition\" as const;\n constructor(booleanOperator: \"and\" | \"or\") {\n this.#op = booleanOperator;\n }\n get op() {\n return this.#op;\n }\n get expressions() {\n return this.#expressions;\n }\n toJSON() {\n return {\n type: this.type,\n op: this.#op,\n expressions: this.#expressions.map((e) => e.toJSON?.()),\n };\n }\n}\n\nclass ConditionalExpressionImpl implements ConditionalExpression {\n #expressions: [ConditionExpression, Expression, Expression];\n type = \"conditionalExpression\" as const;\n\n constructor(booleanOperator?: \"and\" | \"or\") {\n this.#expressions = [\n booleanOperator\n ? new BooleanConditionImp(booleanOperator)\n : new RelationalExpressionImpl(),\n { type: \"unknown\" },\n { type: \"unknown\" },\n ];\n }\n\n get expressions() {\n return this.#expressions;\n }\n\n get condition(): ConditionExpression {\n return this.#expressions[0];\n }\n get truthyExpression(): Expression {\n return this.#expressions[1];\n }\n set truthyExpression(expression: Expression) {\n this.#expressions[1] = expression;\n }\n get falsyExpression(): Expression {\n return this.#expressions[2];\n }\n set falsyExpression(expression: Expression) {\n this.#expressions[2] = expression;\n }\n\n toJSON() {\n return {\n type: this.type,\n condition: this.condition.toJSON?.(),\n truthyExpression: this.truthyExpression,\n falsyExpression: this.falsyExpression?.toJSON?.() ?? this.falsyExpression,\n };\n }\n}\n\ntype PartialExpression =\n | ArithmeticExpression\n | RelationalExpression\n | ColExpression\n | CallExpression\n | BooleanCondition\n | Partial<ConditionalExpression>;\n\nconst isUnknown = (e: Expression): e is UnknownExpression =>\n e.type === \"unknown\";\n\nconst isArithmeticExpression = (\n expression: PotentiallyUnresolvedExpression,\n): expression is ArithmeticExpression =>\n expression.type === \"arithmeticExpression\";\n\nconst isCallExpression = (\n expression: PotentiallyUnresolvedExpression,\n): expression is CallExpression => expression.type === \"callExpression\";\n\nconst isConditionalExpression = (\n expression: PotentiallyUnresolvedExpression,\n): expression is ConditionalExpression =>\n expression.type === \"conditionalExpression\";\n\nconst isCondition = (\n expression: Expression | PartialExpression,\n): expression is ConditionExpression =>\n expression.type === \"relationalExpression\" ||\n expression.type === \"booleanCondition\";\n\nconst booleanConditionIsIncomplete = (\n condition: ConditionExpression,\n): boolean =>\n condition.expressions.length < 2 ||\n condition.expressions.some((e) => conditionIsIncomplete(e));\n\nconst isBooleanCondition = (\n expression: Expression,\n): expression is BooleanCondition => expression.type === \"booleanCondition\";\n\nconst isRelationalExpression = (\n expression?: Expression,\n): expression is RelationalExpression =>\n expression?.type === \"relationalExpression\";\n\nconst conditionIsIncomplete = (\n condition: Expression,\n): condition is ConditionExpression =>\n (isBooleanCondition(condition) && booleanConditionIsIncomplete(condition)) ||\n (isRelationalExpression(condition) && condition.expressions.length < 2);\n\nconst firstIncompleteExpression = (\n expression: Expression,\n): Expression | undefined => {\n if (isUnknown(expression)) {\n return expression;\n } else if (isRelationalExpression(expression)) {\n const [operand1, operand2] = expression.expressions;\n if (expressionIsIncomplete(operand1)) {\n return firstIncompleteExpression(operand1);\n } else if (expression.op === \"unknown\") {\n return expression;\n } else if (expressionIsIncomplete(operand2)) {\n return firstIncompleteExpression(operand2);\n }\n } else if (isCondition(expression)) {\n const { expressions = [] } = expression;\n for (const e of expressions) {\n if (expressionIsIncomplete(e)) {\n return firstIncompleteExpression(e);\n }\n }\n } else if (isConditionalExpression(expression)) {\n const { condition, truthyExpression, falsyExpression } = expression;\n if (expressionIsIncomplete(condition)) {\n return firstIncompleteExpression(condition);\n } else if (expressionIsIncomplete(truthyExpression)) {\n return firstIncompleteExpression(truthyExpression);\n } else if (expressionIsIncomplete(falsyExpression)) {\n return firstIncompleteExpression(falsyExpression);\n }\n } else if (isArithmeticExpression(expression)) {\n const { expressions = [] } = expression;\n for (const e of expressions) {\n if (expressionIsIncomplete(e)) {\n return firstIncompleteExpression(e);\n }\n }\n }\n};\nconst replaceUnknownExpression = (\n incompleteExpression: Expression,\n unknownExpression: UnknownExpression,\n expression: Expression,\n): boolean => {\n const { expressions = [] } = incompleteExpression;\n if (expressions.includes(unknownExpression)) {\n const pos = expressions.indexOf(unknownExpression);\n expressions.splice(pos, 1, expression);\n return true;\n } else {\n for (const e of expressions) {\n if (replaceUnknownExpression(e, unknownExpression, expression)) {\n return true;\n }\n }\n }\n return false;\n};\n\nconst expressionIsIncomplete = (expression: Expression): boolean => {\n if (isUnknown(expression)) {\n return true;\n } else if (isConditionalExpression(expression)) {\n return (\n expressionIsIncomplete(expression.condition) ||\n expressionIsIncomplete(expression.truthyExpression) ||\n expressionIsIncomplete(expression.falsyExpression)\n );\n } else if (\n isRelationalExpression(expression) ||\n isBooleanCondition(expression)\n ) {\n return (\n expression.op === undefined ||\n expression.expressions.some((e) => expressionIsIncomplete(e))\n );\n }\n // TODO missing cases\n return false;\n};\n\ntype ExpressionImpl =\n | ArithmeticExpressionImpl\n | CallExpressionImpl\n | ColumnExpressionImpl\n | ConditionalExpressionImpl\n | LiteralExpressionImpl;\n\ntype PotentiallyUnresolvedExpression = Expression | PartialExpression;\n\nconst addExpression = (\n expression: Expression,\n subExpression: PartialExpression | Expression,\n) => {\n const targetExpression = firstIncompleteExpression(expression);\n if (targetExpression) {\n if (targetExpression.expressions) {\n targetExpression.expressions.push(subExpression as Expression);\n } else {\n console.warn(\"don't know how to treat targetExpression\");\n }\n } else {\n console.error(\"no target expression found\");\n }\n};\n\nclass ColumnExpression {\n #expression: ExpressionImpl | undefined;\n\n #callStack: CallExpression[] = [];\n\n setCondition(booleanOperator?: \"and\" | \"or\") {\n if (this.#expression === undefined) {\n this.addExpression(new ConditionalExpressionImpl(booleanOperator));\n } else if (isConditionalExpression(this.#expression)) {\n if (expressionIsIncomplete(this.#expression.condition)) {\n const condition = booleanOperator\n ? new BooleanConditionImp(booleanOperator)\n : new RelationalExpressionImpl();\n this.addExpression(condition);\n } else if (isUnknown(this.#expression.truthyExpression)) {\n this.#expression.truthyExpression = new ConditionalExpressionImpl(\n booleanOperator,\n );\n } else if (expressionIsIncomplete(this.#expression.truthyExpression)) {\n const condition = booleanOperator\n ? new BooleanConditionImp(booleanOperator)\n : new RelationalExpressionImpl();\n this.addExpression(condition);\n } else if (isUnknown(this.#expression.falsyExpression)) {\n this.#expression.falsyExpression = new ConditionalExpressionImpl(\n booleanOperator,\n );\n } else if (expressionIsIncomplete(this.#expression.falsyExpression)) {\n const condition = booleanOperator\n ? new BooleanConditionImp(booleanOperator)\n : new RelationalExpressionImpl();\n this.addExpression(condition);\n }\n } /*else if (isCallExpression(this.#expression)) {\n this.addExpression(new RelationalExpressionImpl());\n } */ else {\n console.error(\"setCondition called unexpectedly\");\n }\n }\n\n addExpression(expression: ExpressionImpl | Expression) {\n if (this.#callStack.length > 0) {\n const currentCallExpression = this.#callStack.at(-1);\n currentCallExpression?.arguments.push(expression as Expression);\n } else if (this.#expression === undefined) {\n this.#expression = expression as ExpressionImpl;\n } else if (isArithmeticExpression(this.#expression)) {\n const targetExpression = firstIncompleteExpression(this.#expression);\n if (targetExpression && isUnknown(targetExpression)) {\n replaceUnknownExpression(\n this.#expression,\n targetExpression,\n expression,\n );\n }\n } else if (isConditionalExpression(this.#expression)) {\n if (expressionIsIncomplete(this.#expression)) {\n const targetExpression = firstIncompleteExpression(this.#expression);\n if (targetExpression && isUnknown(targetExpression)) {\n replaceUnknownExpression(\n this.#expression,\n targetExpression,\n expression,\n );\n } else if (targetExpression) {\n addExpression(targetExpression, expression);\n }\n }\n }\n }\n\n setFunction(functionName: string) {\n const callExpression = new CallExpressionImpl(functionName);\n this.addExpression(callExpression);\n this.#callStack.push(callExpression);\n }\n\n setColumn(columnName: string) {\n this.addExpression(new ColumnExpressionImpl(columnName));\n }\n\n setArithmeticOp(value: string) {\n const op = value as arithmeticOp;\n const expression = this.#expression as Expression;\n if (isArithmeticExpression(expression)) {\n expression.op = op;\n }\n // else {\n // const targetExpression = firstIncompleteExpression(this.#expression);\n // if (targetExpression) {\n // targetExpression.op = op;\n // }\n // }\n }\n\n setRelationalOperator(value: string) {\n const op = value as relationalOp;\n if (this.#expression && isConditionalExpression(this.#expression)) {\n const targetExpression = firstIncompleteExpression(this.#expression);\n if (isRelationalExpression(targetExpression)) {\n targetExpression.op = op;\n } else {\n console.error(`no target expression found (op = ${value})`);\n }\n }\n }\n\n setValue(value: string | number | boolean) {\n const literalExpression = new LiteralExpressionImpl(value);\n if (this.#expression === undefined) {\n this.#expression = literalExpression;\n } else if (isArithmeticExpression(this.#expression)) {\n this.addExpression(literalExpression);\n } else if (isCallExpression(this.#expression)) {\n // TODO this might not be correct if call arguments include nested expression(s)\n this.#expression.arguments.push(literalExpression);\n } else if (isConditionalExpression(this.#expression)) {\n if (expressionIsIncomplete(this.#expression)) {\n const targetExpression = firstIncompleteExpression(this.#expression);\n if (targetExpression && isUnknown(targetExpression)) {\n replaceUnknownExpression(\n this.#expression,\n targetExpression,\n literalExpression,\n );\n } else if (targetExpression) {\n addExpression(targetExpression, literalExpression);\n }\n } else {\n console.log(\"what do we do with value, in a complete expression\");\n }\n }\n }\n\n closeBrace() {\n this.#callStack.pop();\n }\n\n get expression() {\n return this.#expression;\n }\n\n toJSON() {\n return this.#expression?.toJSON() as ColumnDefinitionExpression;\n }\n}\n\nexport const walkTree = (tree: Tree, source: string) => {\n const columnExpression = new ColumnExpression();\n const cursor = tree.cursor();\n do {\n const { name, from, to } = cursor;\n switch (name) {\n case \"AndCondition\":\n columnExpression.setCondition(\"and\");\n break;\n\n case \"OrCondition\":\n columnExpression.setCondition(\"or\");\n break;\n\n case \"RelationalExpression\":\n // TODO this breaks when the relationalexpression is an argument to a CallExpression\n columnExpression.setCondition();\n break;\n\n case \"ArithmeticExpression\":\n columnExpression.addExpression(new ArithmeticExpressionImpl());\n break;\n\n case \"Column\":\n {\n const columnName = source.substring(from, to);\n columnExpression.setColumn(columnName);\n }\n break;\n\n case \"Function\":\n {\n const functionName = source.substring(from, to);\n columnExpression.setFunction(functionName);\n }\n break;\n\n case \"Times\":\n case \"Divide\":\n case \"Plus\":\n case \"Minus\":\n {\n const op = source.substring(from, to);\n columnExpression.setArithmeticOp(op);\n }\n break;\n\n case \"RelationalOperator\":\n {\n const op = source.substring(from, to);\n columnExpression.setRelationalOperator(op);\n }\n break;\n\n case \"False\":\n case \"True\":\n {\n const value = source.substring(from, to);\n columnExpression.setValue(value === \"true\" ? true : false);\n }\n break;\n\n case \"String\":\n columnExpression.setValue(source.substring(from + 1, to - 1));\n break;\n\n case \"Number\":\n columnExpression.setValue(parseFloat(source.substring(from, to)));\n break;\n\n case \"CloseBrace\":\n columnExpression.closeBrace();\n break;\n\n default:\n }\n } while (cursor.next());\n\n return columnExpression.toJSON();\n};\n"],"names":["_expressions","_op"],"mappings":"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"}
@@ -1,56 +0,0 @@
1
- import { parser } from './generated/column-parser.js';
2
-
3
- const strictParser = parser.configure({ strict: true });
4
- const RelationalOperands = ["Number", "String"];
5
- const ColumnNamedTerms = [
6
- ...RelationalOperands,
7
- "AndCondition",
8
- "ArithmeticExpression",
9
- "BooleanOperator",
10
- "RelationalOperatorOperator",
11
- "CallExpression",
12
- "CloseBrace",
13
- "Column",
14
- "Comma",
15
- "ConditionalExpression",
16
- "Divide",
17
- "Equal",
18
- "If",
19
- "Minus",
20
- "OpenBrace",
21
- "OrCondition",
22
- "ParenthesizedExpression",
23
- "Plus",
24
- "RelationalExpression",
25
- "RelationalOperator",
26
- "Times"
27
- ];
28
- const isCompleteExpression = (src) => {
29
- try {
30
- strictParser.parse(src);
31
- return true;
32
- } catch (err) {
33
- return false;
34
- }
35
- };
36
- const lastNamedChild = (node) => {
37
- let { lastChild } = node;
38
- while (lastChild && !ColumnNamedTerms.includes(lastChild.name)) {
39
- lastChild = lastChild.prevSibling;
40
- console.log(lastChild?.name);
41
- }
42
- return lastChild;
43
- };
44
- const isCompleteRelationalExpression = (node) => {
45
- if (node?.name === "RelationalExpression") {
46
- const { firstChild } = node;
47
- const lastChild = lastNamedChild(node);
48
- if (firstChild?.name === "Column" && typeof lastChild?.name === "string" && RelationalOperands.includes(lastChild.name)) {
49
- return true;
50
- }
51
- }
52
- return false;
53
- };
54
-
55
- export { ColumnNamedTerms, isCompleteExpression, isCompleteRelationalExpression, lastNamedChild };
56
- //# sourceMappingURL=column-expression-parse-utils.js.map