@finos/legend-application-query 5.0.0

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 (553) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +3 -0
  3. package/lib/LegendQueryAppEvent.d.ts +19 -0
  4. package/lib/LegendQueryAppEvent.d.ts.map +1 -0
  5. package/lib/LegendQueryAppEvent.js +21 -0
  6. package/lib/LegendQueryAppEvent.js.map +1 -0
  7. package/lib/QueryBuilder_Const.d.ts +77 -0
  8. package/lib/QueryBuilder_Const.d.ts.map +1 -0
  9. package/lib/QueryBuilder_Const.js +85 -0
  10. package/lib/QueryBuilder_Const.js.map +1 -0
  11. package/lib/application/LegendQuery.d.ts +27 -0
  12. package/lib/application/LegendQuery.d.ts.map +1 -0
  13. package/lib/application/LegendQuery.js +58 -0
  14. package/lib/application/LegendQuery.js.map +1 -0
  15. package/lib/application/LegendQueryApplicationConfig.d.ts +46 -0
  16. package/lib/application/LegendQueryApplicationConfig.d.ts.map +1 -0
  17. package/lib/application/LegendQueryApplicationConfig.js +35 -0
  18. package/lib/application/LegendQueryApplicationConfig.js.map +1 -0
  19. package/lib/application/LegendQueryPluginManager.d.ts +32 -0
  20. package/lib/application/LegendQueryPluginManager.d.ts.map +1 -0
  21. package/lib/application/LegendQueryPluginManager.js +46 -0
  22. package/lib/application/LegendQueryPluginManager.js.map +1 -0
  23. package/lib/components/LegendQueryApplication.d.ts +25 -0
  24. package/lib/components/LegendQueryApplication.d.ts.map +1 -0
  25. package/lib/components/LegendQueryApplication.js +39 -0
  26. package/lib/components/LegendQueryApplication.js.map +1 -0
  27. package/lib/components/LegendQueryBaseStoreProvider.d.ts +28 -0
  28. package/lib/components/LegendQueryBaseStoreProvider.d.ts.map +1 -0
  29. package/lib/components/LegendQueryBaseStoreProvider.js +32 -0
  30. package/lib/components/LegendQueryBaseStoreProvider.js.map +1 -0
  31. package/lib/components/QueryBuilder.d.ts +23 -0
  32. package/lib/components/QueryBuilder.d.ts.map +1 -0
  33. package/lib/components/QueryBuilder.js +91 -0
  34. package/lib/components/QueryBuilder.js.map +1 -0
  35. package/lib/components/QueryBuilderExplorerPanel.d.ts +34 -0
  36. package/lib/components/QueryBuilderExplorerPanel.d.ts.map +1 -0
  37. package/lib/components/QueryBuilderExplorerPanel.js +379 -0
  38. package/lib/components/QueryBuilderExplorerPanel.js.map +1 -0
  39. package/lib/components/QueryBuilderFetchStructurePanel.d.ts +23 -0
  40. package/lib/components/QueryBuilderFetchStructurePanel.d.ts.map +1 -0
  41. package/lib/components/QueryBuilderFetchStructurePanel.js +89 -0
  42. package/lib/components/QueryBuilderFetchStructurePanel.js.map +1 -0
  43. package/lib/components/QueryBuilderFilterPanel.d.ts +23 -0
  44. package/lib/components/QueryBuilderFilterPanel.d.ts.map +1 -0
  45. package/lib/components/QueryBuilderFilterPanel.js +301 -0
  46. package/lib/components/QueryBuilderFilterPanel.js.map +1 -0
  47. package/lib/components/QueryBuilderFunctionsExplorerPanel.d.ts +23 -0
  48. package/lib/components/QueryBuilderFunctionsExplorerPanel.d.ts.map +1 -0
  49. package/lib/components/QueryBuilderFunctionsExplorerPanel.js +177 -0
  50. package/lib/components/QueryBuilderFunctionsExplorerPanel.js.map +1 -0
  51. package/lib/components/QueryBuilderGraphFetchTreePanel.d.ts +33 -0
  52. package/lib/components/QueryBuilderGraphFetchTreePanel.d.ts.map +1 -0
  53. package/lib/components/QueryBuilderGraphFetchTreePanel.js +96 -0
  54. package/lib/components/QueryBuilderGraphFetchTreePanel.js.map +1 -0
  55. package/lib/components/QueryBuilderLambdaEditor.d.ts +42 -0
  56. package/lib/components/QueryBuilderLambdaEditor.d.ts.map +1 -0
  57. package/lib/components/QueryBuilderLambdaEditor.js +47 -0
  58. package/lib/components/QueryBuilderLambdaEditor.js.map +1 -0
  59. package/lib/components/QueryBuilderMilestoneEditor.d.ts +24 -0
  60. package/lib/components/QueryBuilderMilestoneEditor.d.ts.map +1 -0
  61. package/lib/components/QueryBuilderMilestoneEditor.js +120 -0
  62. package/lib/components/QueryBuilderMilestoneEditor.js.map +1 -0
  63. package/lib/components/QueryBuilderParameterPanel.d.ts +30 -0
  64. package/lib/components/QueryBuilderParameterPanel.d.ts.map +1 -0
  65. package/lib/components/QueryBuilderParameterPanel.js +148 -0
  66. package/lib/components/QueryBuilderParameterPanel.js.map +1 -0
  67. package/lib/components/QueryBuilderPostFilterPanel.d.ts +31 -0
  68. package/lib/components/QueryBuilderPostFilterPanel.d.ts.map +1 -0
  69. package/lib/components/QueryBuilderPostFilterPanel.js +373 -0
  70. package/lib/components/QueryBuilderPostFilterPanel.js.map +1 -0
  71. package/lib/components/QueryBuilderProjectionPanel.d.ts +23 -0
  72. package/lib/components/QueryBuilderProjectionPanel.d.ts.map +1 -0
  73. package/lib/components/QueryBuilderProjectionPanel.js +229 -0
  74. package/lib/components/QueryBuilderProjectionPanel.js.map +1 -0
  75. package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts +30 -0
  76. package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts.map +1 -0
  77. package/lib/components/QueryBuilderPropertyExpressionEditor.js +116 -0
  78. package/lib/components/QueryBuilderPropertyExpressionEditor.js.map +1 -0
  79. package/lib/components/QueryBuilderPropertyInfoTooltip.d.ts +26 -0
  80. package/lib/components/QueryBuilderPropertyInfoTooltip.d.ts.map +1 -0
  81. package/lib/components/QueryBuilderPropertyInfoTooltip.js +32 -0
  82. package/lib/components/QueryBuilderPropertyInfoTooltip.js.map +1 -0
  83. package/lib/components/QueryBuilderPropertySearchPanel.d.ts +24 -0
  84. package/lib/components/QueryBuilderPropertySearchPanel.d.ts.map +1 -0
  85. package/lib/components/QueryBuilderPropertySearchPanel.js +202 -0
  86. package/lib/components/QueryBuilderPropertySearchPanel.js.map +1 -0
  87. package/lib/components/QueryBuilderResultModifierPanel.d.ts +23 -0
  88. package/lib/components/QueryBuilderResultModifierPanel.d.ts.map +1 -0
  89. package/lib/components/QueryBuilderResultModifierPanel.js +88 -0
  90. package/lib/components/QueryBuilderResultModifierPanel.js.map +1 -0
  91. package/lib/components/QueryBuilderResultPanel.d.ts +23 -0
  92. package/lib/components/QueryBuilderResultPanel.d.ts.map +1 -0
  93. package/lib/components/QueryBuilderResultPanel.js +223 -0
  94. package/lib/components/QueryBuilderResultPanel.js.map +1 -0
  95. package/lib/components/QueryBuilderSetupPanel.d.ts +23 -0
  96. package/lib/components/QueryBuilderSetupPanel.d.ts.map +1 -0
  97. package/lib/components/QueryBuilderSetupPanel.js +148 -0
  98. package/lib/components/QueryBuilderSetupPanel.js.map +1 -0
  99. package/lib/components/QueryBuilderTextEditor.d.ts +23 -0
  100. package/lib/components/QueryBuilderTextEditor.d.ts.map +1 -0
  101. package/lib/components/QueryBuilderTextEditor.js +48 -0
  102. package/lib/components/QueryBuilderTextEditor.js.map +1 -0
  103. package/lib/components/QueryBuilderUnsupportedQueryEditor.d.ts +23 -0
  104. package/lib/components/QueryBuilderUnsupportedQueryEditor.d.ts.map +1 -0
  105. package/lib/components/QueryBuilderUnsupportedQueryEditor.js +35 -0
  106. package/lib/components/QueryBuilderUnsupportedQueryEditor.js.map +1 -0
  107. package/lib/components/QueryBuilder_TestID.d.ts +26 -0
  108. package/lib/components/QueryBuilder_TestID.d.ts.map +1 -0
  109. package/lib/components/QueryBuilder_TestID.js +27 -0
  110. package/lib/components/QueryBuilder_TestID.js.map +1 -0
  111. package/lib/components/QueryEditor.d.ts +29 -0
  112. package/lib/components/QueryEditor.d.ts.map +1 -0
  113. package/lib/components/QueryEditor.js +130 -0
  114. package/lib/components/QueryEditor.js.map +1 -0
  115. package/lib/components/QueryEditorComponentTestUtils.d.ts +35 -0
  116. package/lib/components/QueryEditorComponentTestUtils.d.ts.map +1 -0
  117. package/lib/components/QueryEditorComponentTestUtils.js +108 -0
  118. package/lib/components/QueryEditorComponentTestUtils.js.map +1 -0
  119. package/lib/components/QueryEditorStoreProvider.d.ts +37 -0
  120. package/lib/components/QueryEditorStoreProvider.d.ts.map +1 -0
  121. package/lib/components/QueryEditorStoreProvider.js +48 -0
  122. package/lib/components/QueryEditorStoreProvider.js.map +1 -0
  123. package/lib/components/QuerySetup.d.ts +18 -0
  124. package/lib/components/QuerySetup.d.ts.map +1 -0
  125. package/lib/components/QuerySetup.js +388 -0
  126. package/lib/components/QuerySetup.js.map +1 -0
  127. package/lib/components/QuerySetupStoreProvider.d.ts +23 -0
  128. package/lib/components/QuerySetupStoreProvider.d.ts.map +1 -0
  129. package/lib/components/QuerySetupStoreProvider.js +35 -0
  130. package/lib/components/QuerySetupStoreProvider.js.map +1 -0
  131. package/lib/components/shared/ElementIconUtils.d.ts +18 -0
  132. package/lib/components/shared/ElementIconUtils.d.ts.map +1 -0
  133. package/lib/components/shared/ElementIconUtils.js +37 -0
  134. package/lib/components/shared/ElementIconUtils.js.map +1 -0
  135. package/lib/graphManager/QueryBuilder_GraphManagerPlugin.d.ts +21 -0
  136. package/lib/graphManager/QueryBuilder_GraphManagerPlugin.d.ts.map +1 -0
  137. package/lib/graphManager/QueryBuilder_GraphManagerPlugin.js +27 -0
  138. package/lib/graphManager/QueryBuilder_GraphManagerPlugin.js.map +1 -0
  139. package/lib/graphManager/QueryBuilder_GraphManagerPreset.d.ts +24 -0
  140. package/lib/graphManager/QueryBuilder_GraphManagerPreset.d.ts.map +1 -0
  141. package/lib/graphManager/QueryBuilder_GraphManagerPreset.js +32 -0
  142. package/lib/graphManager/QueryBuilder_GraphManagerPreset.js.map +1 -0
  143. package/lib/graphManager/action/analytics/MappingRuntimeCompatibilityAnalysis.d.ts +21 -0
  144. package/lib/graphManager/action/analytics/MappingRuntimeCompatibilityAnalysis.d.ts.map +1 -0
  145. package/lib/graphManager/action/analytics/MappingRuntimeCompatibilityAnalysis.js +20 -0
  146. package/lib/graphManager/action/analytics/MappingRuntimeCompatibilityAnalysis.js.map +1 -0
  147. package/lib/graphManager/action/analytics/ServiceExecutionAnalysis.d.ts +21 -0
  148. package/lib/graphManager/action/analytics/ServiceExecutionAnalysis.d.ts.map +1 -0
  149. package/lib/graphManager/action/analytics/ServiceExecutionAnalysis.js +20 -0
  150. package/lib/graphManager/action/analytics/ServiceExecutionAnalysis.js.map +1 -0
  151. package/lib/graphManager/protocol/pure/QueryBuilder_PureGraphManagerExtension.d.ts +25 -0
  152. package/lib/graphManager/protocol/pure/QueryBuilder_PureGraphManagerExtension.d.ts.map +1 -0
  153. package/lib/graphManager/protocol/pure/QueryBuilder_PureGraphManagerExtension.js +21 -0
  154. package/lib/graphManager/protocol/pure/QueryBuilder_PureGraphManagerExtension.js.map +1 -0
  155. package/lib/graphManager/protocol/pure/QueryBuilder_PureGraphManagerExtensionBuilder.d.ts +18 -0
  156. package/lib/graphManager/protocol/pure/QueryBuilder_PureGraphManagerExtensionBuilder.d.ts.map +1 -0
  157. package/lib/graphManager/protocol/pure/QueryBuilder_PureGraphManagerExtensionBuilder.js +20 -0
  158. package/lib/graphManager/protocol/pure/QueryBuilder_PureGraphManagerExtensionBuilder.js.map +1 -0
  159. package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.d.ts +22 -0
  160. package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.d.ts.map +1 -0
  161. package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js +68 -0
  162. package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js.map +1 -0
  163. package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_FunctionExpressionBuilder.d.ts +22 -0
  164. package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_FunctionExpressionBuilder.d.ts.map +1 -0
  165. package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_FunctionExpressionBuilder.js +207 -0
  166. package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_FunctionExpressionBuilder.js.map +1 -0
  167. package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_PropertyExpressionTypeInferenceBuilder.d.ts +18 -0
  168. package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_PropertyExpressionTypeInferenceBuilder.d.ts.map +1 -0
  169. package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_PropertyExpressionTypeInferenceBuilder.js +18 -0
  170. package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_PropertyExpressionTypeInferenceBuilder.js.map +1 -0
  171. package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_PureGraphManagerExtension.d.ts +29 -0
  172. package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_PureGraphManagerExtension.d.ts.map +1 -0
  173. package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_PureGraphManagerExtension.js +182 -0
  174. package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_PureGraphManagerExtension.js.map +1 -0
  175. package/lib/index.css +17 -0
  176. package/lib/index.css.map +1 -0
  177. package/lib/index.d.ts +36 -0
  178. package/lib/index.d.ts.map +1 -0
  179. package/lib/index.js +36 -0
  180. package/lib/index.js.map +1 -0
  181. package/lib/package.json +99 -0
  182. package/lib/stores/LegendQueryApplicationPlugin.d.ts +47 -0
  183. package/lib/stores/LegendQueryApplicationPlugin.d.ts.map +1 -0
  184. package/lib/stores/LegendQueryApplicationPlugin.js +27 -0
  185. package/lib/stores/LegendQueryApplicationPlugin.js.map +1 -0
  186. package/lib/stores/LegendQueryBaseStore.d.ts +28 -0
  187. package/lib/stores/LegendQueryBaseStore.d.ts.map +1 -0
  188. package/lib/stores/LegendQueryBaseStore.js +28 -0
  189. package/lib/stores/LegendQueryBaseStore.js.map +1 -0
  190. package/lib/stores/LegendQueryEventService.d.ts +27 -0
  191. package/lib/stores/LegendQueryEventService.d.ts.map +1 -0
  192. package/lib/stores/LegendQueryEventService.js +29 -0
  193. package/lib/stores/LegendQueryEventService.js.map +1 -0
  194. package/lib/stores/LegendQueryRouter.d.ts +55 -0
  195. package/lib/stores/LegendQueryRouter.d.ts.map +1 -0
  196. package/lib/stores/LegendQueryRouter.js +50 -0
  197. package/lib/stores/LegendQueryRouter.js.map +1 -0
  198. package/lib/stores/QueryBuilderAggregationState.d.ts +53 -0
  199. package/lib/stores/QueryBuilderAggregationState.d.ts.map +1 -0
  200. package/lib/stores/QueryBuilderAggregationState.js +122 -0
  201. package/lib/stores/QueryBuilderAggregationState.js.map +1 -0
  202. package/lib/stores/QueryBuilderExplorerState.d.ts +93 -0
  203. package/lib/stores/QueryBuilderExplorerState.d.ts.map +1 -0
  204. package/lib/stores/QueryBuilderExplorerState.js +310 -0
  205. package/lib/stores/QueryBuilderExplorerState.js.map +1 -0
  206. package/lib/stores/QueryBuilderFetchStructureState.d.ts +33 -0
  207. package/lib/stores/QueryBuilderFetchStructureState.d.ts.map +1 -0
  208. package/lib/stores/QueryBuilderFetchStructureState.js +50 -0
  209. package/lib/stores/QueryBuilderFetchStructureState.js.map +1 -0
  210. package/lib/stores/QueryBuilderFilterState.d.ts +127 -0
  211. package/lib/stores/QueryBuilderFilterState.d.ts.map +1 -0
  212. package/lib/stores/QueryBuilderFilterState.js +566 -0
  213. package/lib/stores/QueryBuilderFilterState.js.map +1 -0
  214. package/lib/stores/QueryBuilderGraphFetchTreeState.d.ts +35 -0
  215. package/lib/stores/QueryBuilderGraphFetchTreeState.d.ts.map +1 -0
  216. package/lib/stores/QueryBuilderGraphFetchTreeState.js +65 -0
  217. package/lib/stores/QueryBuilderGraphFetchTreeState.js.map +1 -0
  218. package/lib/stores/QueryBuilderGraphFetchTreeUtil.d.ts +41 -0
  219. package/lib/stores/QueryBuilderGraphFetchTreeUtil.d.ts.map +1 -0
  220. package/lib/stores/QueryBuilderGraphFetchTreeUtil.js +173 -0
  221. package/lib/stores/QueryBuilderGraphFetchTreeUtil.js.map +1 -0
  222. package/lib/stores/QueryBuilderLambdaBuilder.d.ts +30 -0
  223. package/lib/stores/QueryBuilderLambdaBuilder.d.ts.map +1 -0
  224. package/lib/stores/QueryBuilderLambdaBuilder.js +407 -0
  225. package/lib/stores/QueryBuilderLambdaBuilder.js.map +1 -0
  226. package/lib/stores/QueryBuilderLambdaProcessor.d.ts +56 -0
  227. package/lib/stores/QueryBuilderLambdaProcessor.d.ts.map +1 -0
  228. package/lib/stores/QueryBuilderLambdaProcessor.js +544 -0
  229. package/lib/stores/QueryBuilderLambdaProcessor.js.map +1 -0
  230. package/lib/stores/QueryBuilderOperatorsHelper.d.ts +28 -0
  231. package/lib/stores/QueryBuilderOperatorsHelper.d.ts.map +1 -0
  232. package/lib/stores/QueryBuilderOperatorsHelper.js +123 -0
  233. package/lib/stores/QueryBuilderOperatorsHelper.js.map +1 -0
  234. package/lib/stores/QueryBuilderPostFilterOperator.d.ts +29 -0
  235. package/lib/stores/QueryBuilderPostFilterOperator.d.ts.map +1 -0
  236. package/lib/stores/QueryBuilderPostFilterOperator.js +30 -0
  237. package/lib/stores/QueryBuilderPostFilterOperator.js.map +1 -0
  238. package/lib/stores/QueryBuilderPostFilterProcessor.d.ts +24 -0
  239. package/lib/stores/QueryBuilderPostFilterProcessor.d.ts.map +1 -0
  240. package/lib/stores/QueryBuilderPostFilterProcessor.js +111 -0
  241. package/lib/stores/QueryBuilderPostFilterProcessor.js.map +1 -0
  242. package/lib/stores/QueryBuilderPostFilterState.d.ts +132 -0
  243. package/lib/stores/QueryBuilderPostFilterState.d.ts.map +1 -0
  244. package/lib/stores/QueryBuilderPostFilterState.js +559 -0
  245. package/lib/stores/QueryBuilderPostFilterState.js.map +1 -0
  246. package/lib/stores/QueryBuilderPreviewDataHelper.d.ts +25 -0
  247. package/lib/stores/QueryBuilderPreviewDataHelper.d.ts.map +1 -0
  248. package/lib/stores/QueryBuilderPreviewDataHelper.js +161 -0
  249. package/lib/stores/QueryBuilderPreviewDataHelper.js.map +1 -0
  250. package/lib/stores/QueryBuilderProjectionState.d.ts +104 -0
  251. package/lib/stores/QueryBuilderProjectionState.d.ts.map +1 -0
  252. package/lib/stores/QueryBuilderProjectionState.js +432 -0
  253. package/lib/stores/QueryBuilderProjectionState.js.map +1 -0
  254. package/lib/stores/QueryBuilderPropertyEditorState.d.ts +62 -0
  255. package/lib/stores/QueryBuilderPropertyEditorState.d.ts.map +1 -0
  256. package/lib/stores/QueryBuilderPropertyEditorState.js +384 -0
  257. package/lib/stores/QueryBuilderPropertyEditorState.js.map +1 -0
  258. package/lib/stores/QueryBuilderPropertySearchPanelState.d.ts +46 -0
  259. package/lib/stores/QueryBuilderPropertySearchPanelState.d.ts.map +1 -0
  260. package/lib/stores/QueryBuilderPropertySearchPanelState.js +240 -0
  261. package/lib/stores/QueryBuilderPropertySearchPanelState.js.map +1 -0
  262. package/lib/stores/QueryBuilderResultState.d.ts +38 -0
  263. package/lib/stores/QueryBuilderResultState.d.ts.map +1 -0
  264. package/lib/stores/QueryBuilderResultState.js +164 -0
  265. package/lib/stores/QueryBuilderResultState.js.map +1 -0
  266. package/lib/stores/QueryBuilderSetupState.d.ts +46 -0
  267. package/lib/stores/QueryBuilderSetupState.d.ts.map +1 -0
  268. package/lib/stores/QueryBuilderSetupState.js +163 -0
  269. package/lib/stores/QueryBuilderSetupState.js.map +1 -0
  270. package/lib/stores/QueryBuilderState.d.ts +101 -0
  271. package/lib/stores/QueryBuilderState.d.ts.map +1 -0
  272. package/lib/stores/QueryBuilderState.js +371 -0
  273. package/lib/stores/QueryBuilderState.js.map +1 -0
  274. package/lib/stores/QueryBuilderUnsupportedState.d.ts +26 -0
  275. package/lib/stores/QueryBuilderUnsupportedState.d.ts.map +1 -0
  276. package/lib/stores/QueryBuilderUnsupportedState.js +36 -0
  277. package/lib/stores/QueryBuilderUnsupportedState.js.map +1 -0
  278. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.d.ts +19 -0
  279. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.d.ts.map +1 -0
  280. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js +50 -0
  281. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js.map +1 -0
  282. package/lib/stores/QueryEditorStore.d.ts +98 -0
  283. package/lib/stores/QueryEditorStore.d.ts.map +1 -0
  284. package/lib/stores/QueryEditorStore.js +370 -0
  285. package/lib/stores/QueryEditorStore.js.map +1 -0
  286. package/lib/stores/QueryEditorStoreTestUtils.d.ts +18 -0
  287. package/lib/stores/QueryEditorStoreTestUtils.d.ts.map +1 -0
  288. package/lib/stores/QueryEditorStoreTestUtils.js +42 -0
  289. package/lib/stores/QueryEditorStoreTestUtils.js.map +1 -0
  290. package/lib/stores/QueryFunctionsExplorerState.d.ts +63 -0
  291. package/lib/stores/QueryFunctionsExplorerState.d.ts.map +1 -0
  292. package/lib/stores/QueryFunctionsExplorerState.js +238 -0
  293. package/lib/stores/QueryFunctionsExplorerState.js.map +1 -0
  294. package/lib/stores/QueryParametersState.d.ts +30 -0
  295. package/lib/stores/QueryParametersState.d.ts.map +1 -0
  296. package/lib/stores/QueryParametersState.js +42 -0
  297. package/lib/stores/QueryParametersState.js.map +1 -0
  298. package/lib/stores/QueryResultSetModifierState.d.ts +52 -0
  299. package/lib/stores/QueryResultSetModifierState.d.ts.map +1 -0
  300. package/lib/stores/QueryResultSetModifierState.js +165 -0
  301. package/lib/stores/QueryResultSetModifierState.js.map +1 -0
  302. package/lib/stores/QuerySetupStore.d.ts +86 -0
  303. package/lib/stores/QuerySetupStore.d.ts.map +1 -0
  304. package/lib/stores/QuerySetupStore.js +297 -0
  305. package/lib/stores/QuerySetupStore.js.map +1 -0
  306. package/lib/stores/QueryTextEditorState.d.ts +49 -0
  307. package/lib/stores/QueryTextEditorState.d.ts.map +1 -0
  308. package/lib/stores/QueryTextEditorState.js +145 -0
  309. package/lib/stores/QueryTextEditorState.js.map +1 -0
  310. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperatorHelper.d.ts +21 -0
  311. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperatorHelper.d.ts.map +1 -0
  312. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperatorHelper.js +40 -0
  313. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperatorHelper.js.map +1 -0
  314. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Average.d.ts +26 -0
  315. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Average.d.ts.map +1 -0
  316. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Average.js +50 -0
  317. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Average.js.map +1 -0
  318. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Count.d.ts +26 -0
  319. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Count.d.ts.map +1 -0
  320. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Count.js +55 -0
  321. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Count.js.map +1 -0
  322. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Distinct.d.ts +25 -0
  323. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Distinct.d.ts.map +1 -0
  324. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Distinct.js +50 -0
  325. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Distinct.js.map +1 -0
  326. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_DistinctCount.d.ts +26 -0
  327. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_DistinctCount.d.ts.map +1 -0
  328. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_DistinctCount.js +77 -0
  329. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_DistinctCount.js.map +1 -0
  330. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_JoinString.d.ts +26 -0
  331. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_JoinString.d.ts.map +1 -0
  332. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_JoinString.js +66 -0
  333. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_JoinString.js.map +1 -0
  334. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Max.d.ts +25 -0
  335. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Max.d.ts.map +1 -0
  336. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Max.js +86 -0
  337. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Max.js.map +1 -0
  338. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Min.d.ts +25 -0
  339. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Min.d.ts.map +1 -0
  340. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Min.js +86 -0
  341. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Min.js.map +1 -0
  342. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_StdDev_Population.d.ts +26 -0
  343. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_StdDev_Population.d.ts.map +1 -0
  344. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_StdDev_Population.js +50 -0
  345. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_StdDev_Population.js.map +1 -0
  346. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_StdDev_Sample.d.ts +26 -0
  347. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_StdDev_Sample.d.ts.map +1 -0
  348. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_StdDev_Sample.js +50 -0
  349. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_StdDev_Sample.js.map +1 -0
  350. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Sum.d.ts +25 -0
  351. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Sum.d.ts.map +1 -0
  352. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Sum.js +45 -0
  353. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Sum.js.map +1 -0
  354. package/lib/stores/filterOperators/QueryBuilderFilterOperatorHelper.d.ts +20 -0
  355. package/lib/stores/filterOperators/QueryBuilderFilterOperatorHelper.d.ts.map +1 -0
  356. package/lib/stores/filterOperators/QueryBuilderFilterOperatorHelper.js +257 -0
  357. package/lib/stores/filterOperators/QueryBuilderFilterOperatorHelper.js.map +1 -0
  358. package/lib/stores/filterOperators/QueryBuilderFilterOperator_Contain.d.ts +31 -0
  359. package/lib/stores/filterOperators/QueryBuilderFilterOperator_Contain.d.ts.map +1 -0
  360. package/lib/stores/filterOperators/QueryBuilderFilterOperator_Contain.js +72 -0
  361. package/lib/stores/filterOperators/QueryBuilderFilterOperator_Contain.js.map +1 -0
  362. package/lib/stores/filterOperators/QueryBuilderFilterOperator_EndWith.d.ts +31 -0
  363. package/lib/stores/filterOperators/QueryBuilderFilterOperator_EndWith.d.ts.map +1 -0
  364. package/lib/stores/filterOperators/QueryBuilderFilterOperator_EndWith.js +72 -0
  365. package/lib/stores/filterOperators/QueryBuilderFilterOperator_EndWith.js.map +1 -0
  366. package/lib/stores/filterOperators/QueryBuilderFilterOperator_Equal.d.ts +31 -0
  367. package/lib/stores/filterOperators/QueryBuilderFilterOperator_Equal.d.ts.map +1 -0
  368. package/lib/stores/filterOperators/QueryBuilderFilterOperator_Equal.js +139 -0
  369. package/lib/stores/filterOperators/QueryBuilderFilterOperator_Equal.js.map +1 -0
  370. package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.d.ts +26 -0
  371. package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.d.ts.map +1 -0
  372. package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.js +107 -0
  373. package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.js.map +1 -0
  374. package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts +26 -0
  375. package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts.map +1 -0
  376. package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.js +107 -0
  377. package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.js.map +1 -0
  378. package/lib/stores/filterOperators/QueryBuilderFilterOperator_In.d.ts +31 -0
  379. package/lib/stores/filterOperators/QueryBuilderFilterOperator_In.d.ts.map +1 -0
  380. package/lib/stores/filterOperators/QueryBuilderFilterOperator_In.js +103 -0
  381. package/lib/stores/filterOperators/QueryBuilderFilterOperator_In.js.map +1 -0
  382. package/lib/stores/filterOperators/QueryBuilderFilterOperator_IsEmpty.d.ts +31 -0
  383. package/lib/stores/filterOperators/QueryBuilderFilterOperator_IsEmpty.d.ts.map +1 -0
  384. package/lib/stores/filterOperators/QueryBuilderFilterOperator_IsEmpty.js +65 -0
  385. package/lib/stores/filterOperators/QueryBuilderFilterOperator_IsEmpty.js.map +1 -0
  386. package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThan.d.ts +26 -0
  387. package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThan.d.ts.map +1 -0
  388. package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThan.js +108 -0
  389. package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThan.js.map +1 -0
  390. package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.d.ts +26 -0
  391. package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.d.ts.map +1 -0
  392. package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.js +107 -0
  393. package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.js.map +1 -0
  394. package/lib/stores/filterOperators/QueryBuilderFilterOperator_StartWith.d.ts +31 -0
  395. package/lib/stores/filterOperators/QueryBuilderFilterOperator_StartWith.d.ts.map +1 -0
  396. package/lib/stores/filterOperators/QueryBuilderFilterOperator_StartWith.js +72 -0
  397. package/lib/stores/filterOperators/QueryBuilderFilterOperator_StartWith.js.map +1 -0
  398. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperatorHelper.d.ts +23 -0
  399. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperatorHelper.d.ts.map +1 -0
  400. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperatorHelper.js +74 -0
  401. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperatorHelper.js.map +1 -0
  402. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Contain.d.ts +32 -0
  403. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Contain.d.ts.map +1 -0
  404. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Contain.js +76 -0
  405. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Contain.js.map +1 -0
  406. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_EndWith.d.ts +32 -0
  407. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_EndWith.d.ts.map +1 -0
  408. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_EndWith.js +76 -0
  409. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_EndWith.js.map +1 -0
  410. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.d.ts +32 -0
  411. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.d.ts.map +1 -0
  412. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.js +142 -0
  413. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.js.map +1 -0
  414. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.d.ts +27 -0
  415. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.d.ts.map +1 -0
  416. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.js +105 -0
  417. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.js.map +1 -0
  418. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThanEqual.d.ts +24 -0
  419. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThanEqual.d.ts.map +1 -0
  420. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThanEqual.js +43 -0
  421. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThanEqual.js.map +1 -0
  422. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_In.d.ts +32 -0
  423. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_In.d.ts.map +1 -0
  424. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_In.js +104 -0
  425. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_In.js.map +1 -0
  426. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_IsEmpty.d.ts +33 -0
  427. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_IsEmpty.d.ts.map +1 -0
  428. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_IsEmpty.js +67 -0
  429. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_IsEmpty.js.map +1 -0
  430. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.d.ts +27 -0
  431. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.d.ts.map +1 -0
  432. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.js +105 -0
  433. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.js.map +1 -0
  434. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThanEqual.d.ts +24 -0
  435. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThanEqual.d.ts.map +1 -0
  436. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThanEqual.js +43 -0
  437. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThanEqual.js.map +1 -0
  438. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_StartWith.d.ts +32 -0
  439. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_StartWith.d.ts.map +1 -0
  440. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_StartWith.js +76 -0
  441. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_StartWith.js.map +1 -0
  442. package/package.json +99 -0
  443. package/src/LegendQueryAppEvent.ts +20 -0
  444. package/src/QueryBuilder_Const.ts +88 -0
  445. package/src/application/LegendQuery.tsx +92 -0
  446. package/src/application/LegendQueryApplicationConfig.ts +77 -0
  447. package/src/application/LegendQueryPluginManager.ts +67 -0
  448. package/src/components/LegendQueryApplication.tsx +104 -0
  449. package/src/components/LegendQueryBaseStoreProvider.tsx +68 -0
  450. package/src/components/QueryBuilder.tsx +375 -0
  451. package/src/components/QueryBuilderExplorerPanel.tsx +998 -0
  452. package/src/components/QueryBuilderFetchStructurePanel.tsx +184 -0
  453. package/src/components/QueryBuilderFilterPanel.tsx +858 -0
  454. package/src/components/QueryBuilderFunctionsExplorerPanel.tsx +598 -0
  455. package/src/components/QueryBuilderGraphFetchTreePanel.tsx +270 -0
  456. package/src/components/QueryBuilderLambdaEditor.tsx +117 -0
  457. package/src/components/QueryBuilderMilestoneEditor.tsx +291 -0
  458. package/src/components/QueryBuilderParameterPanel.tsx +434 -0
  459. package/src/components/QueryBuilderPostFilterPanel.tsx +1061 -0
  460. package/src/components/QueryBuilderProjectionPanel.tsx +652 -0
  461. package/src/components/QueryBuilderPropertyExpressionEditor.tsx +370 -0
  462. package/src/components/QueryBuilderPropertyInfoTooltip.tsx +87 -0
  463. package/src/components/QueryBuilderPropertySearchPanel.tsx +617 -0
  464. package/src/components/QueryBuilderResultModifierPanel.tsx +252 -0
  465. package/src/components/QueryBuilderResultPanel.tsx +582 -0
  466. package/src/components/QueryBuilderSetupPanel.tsx +341 -0
  467. package/src/components/QueryBuilderTextEditor.tsx +127 -0
  468. package/src/components/QueryBuilderUnsupportedQueryEditor.tsx +110 -0
  469. package/src/components/QueryBuilder_TestID.ts +26 -0
  470. package/src/components/QueryEditor.tsx +345 -0
  471. package/src/components/QueryEditorComponentTestUtils.tsx +200 -0
  472. package/src/components/QueryEditorStoreProvider.tsx +128 -0
  473. package/src/components/QuerySetup.tsx +907 -0
  474. package/src/components/QuerySetupStoreProvider.tsx +65 -0
  475. package/src/components/shared/ElementIconUtils.tsx +47 -0
  476. package/src/graphManager/QueryBuilder_GraphManagerPlugin.ts +32 -0
  477. package/src/graphManager/QueryBuilder_GraphManagerPreset.ts +33 -0
  478. package/src/graphManager/action/analytics/MappingRuntimeCompatibilityAnalysis.ts +22 -0
  479. package/src/graphManager/action/analytics/ServiceExecutionAnalysis.ts +22 -0
  480. package/src/graphManager/protocol/pure/QueryBuilder_PureGraphManagerExtension.ts +47 -0
  481. package/src/graphManager/protocol/pure/QueryBuilder_PureGraphManagerExtensionBuilder.ts +27 -0
  482. package/src/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.ts +170 -0
  483. package/src/graphManager/protocol/pure/v1/V1_QueryBuilder_FunctionExpressionBuilder.ts +573 -0
  484. package/src/graphManager/protocol/pure/v1/V1_QueryBuilder_PropertyExpressionTypeInferenceBuilder.ts +28 -0
  485. package/src/graphManager/protocol/pure/v1/V1_QueryBuilder_PureGraphManagerExtension.ts +296 -0
  486. package/src/index.ts +57 -0
  487. package/src/stores/LegendQueryApplicationPlugin.ts +61 -0
  488. package/src/stores/LegendQueryBaseStore.ts +47 -0
  489. package/src/stores/LegendQueryEventService.ts +38 -0
  490. package/src/stores/LegendQueryRouter.ts +114 -0
  491. package/src/stores/QueryBuilderAggregationState.ts +208 -0
  492. package/src/stores/QueryBuilderExplorerState.ts +590 -0
  493. package/src/stores/QueryBuilderFetchStructureState.ts +59 -0
  494. package/src/stores/QueryBuilderFilterState.ts +815 -0
  495. package/src/stores/QueryBuilderGraphFetchTreeState.ts +90 -0
  496. package/src/stores/QueryBuilderGraphFetchTreeUtil.ts +281 -0
  497. package/src/stores/QueryBuilderLambdaBuilder.ts +755 -0
  498. package/src/stores/QueryBuilderLambdaProcessor.ts +1239 -0
  499. package/src/stores/QueryBuilderOperatorsHelper.ts +191 -0
  500. package/src/stores/QueryBuilderPostFilterOperator.ts +66 -0
  501. package/src/stores/QueryBuilderPostFilterProcessor.ts +275 -0
  502. package/src/stores/QueryBuilderPostFilterState.ts +762 -0
  503. package/src/stores/QueryBuilderPreviewDataHelper.ts +300 -0
  504. package/src/stores/QueryBuilderProjectionState.ts +796 -0
  505. package/src/stores/QueryBuilderPropertyEditorState.ts +656 -0
  506. package/src/stores/QueryBuilderPropertySearchPanelState.ts +331 -0
  507. package/src/stores/QueryBuilderResultState.ts +263 -0
  508. package/src/stores/QueryBuilderSetupState.ts +236 -0
  509. package/src/stores/QueryBuilderState.ts +561 -0
  510. package/src/stores/QueryBuilderUnsupportedState.ts +42 -0
  511. package/src/stores/QueryBuilderValueSpecificationBuilderHelper.ts +76 -0
  512. package/src/stores/QueryEditorStore.ts +648 -0
  513. package/src/stores/QueryEditorStoreTestUtils.ts +46 -0
  514. package/src/stores/QueryFunctionsExplorerState.ts +386 -0
  515. package/src/stores/QueryParametersState.ts +54 -0
  516. package/src/stores/QueryResultSetModifierState.ts +307 -0
  517. package/src/stores/QuerySetupStore.ts +430 -0
  518. package/src/stores/QueryTextEditorState.ts +203 -0
  519. package/src/stores/aggregateOperators/QueryBuilderAggregateOperatorHelper.ts +111 -0
  520. package/src/stores/aggregateOperators/QueryBuilderAggregateOperator_Average.ts +100 -0
  521. package/src/stores/aggregateOperators/QueryBuilderAggregateOperator_Count.ts +108 -0
  522. package/src/stores/aggregateOperators/QueryBuilderAggregateOperator_Distinct.ts +98 -0
  523. package/src/stores/aggregateOperators/QueryBuilderAggregateOperator_DistinctCount.ts +175 -0
  524. package/src/stores/aggregateOperators/QueryBuilderAggregateOperator_JoinString.ts +157 -0
  525. package/src/stores/aggregateOperators/QueryBuilderAggregateOperator_Max.ts +176 -0
  526. package/src/stores/aggregateOperators/QueryBuilderAggregateOperator_Min.ts +176 -0
  527. package/src/stores/aggregateOperators/QueryBuilderAggregateOperator_StdDev_Population.ts +100 -0
  528. package/src/stores/aggregateOperators/QueryBuilderAggregateOperator_StdDev_Sample.ts +100 -0
  529. package/src/stores/aggregateOperators/QueryBuilderAggregateOperator_Sum.ts +90 -0
  530. package/src/stores/filterOperators/QueryBuilderFilterOperatorHelper.ts +524 -0
  531. package/src/stores/filterOperators/QueryBuilderFilterOperator_Contain.ts +134 -0
  532. package/src/stores/filterOperators/QueryBuilderFilterOperator_EndWith.ts +134 -0
  533. package/src/stores/filterOperators/QueryBuilderFilterOperator_Equal.ts +233 -0
  534. package/src/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.ts +164 -0
  535. package/src/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.ts +164 -0
  536. package/src/stores/filterOperators/QueryBuilderFilterOperator_In.ts +181 -0
  537. package/src/stores/filterOperators/QueryBuilderFilterOperator_IsEmpty.ts +125 -0
  538. package/src/stores/filterOperators/QueryBuilderFilterOperator_LessThan.ts +165 -0
  539. package/src/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.ts +164 -0
  540. package/src/stores/filterOperators/QueryBuilderFilterOperator_StartWith.ts +134 -0
  541. package/src/stores/postFilterOperators/QueryBuilderPostFilterOperatorHelper.ts +129 -0
  542. package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_Contain.ts +140 -0
  543. package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_EndWith.ts +135 -0
  544. package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.ts +238 -0
  545. package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.ts +161 -0
  546. package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThanEqual.ts +70 -0
  547. package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_In.ts +183 -0
  548. package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_IsEmpty.ts +113 -0
  549. package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.ts +161 -0
  550. package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThanEqual.ts +70 -0
  551. package/src/stores/postFilterOperators/QueryBuilderPostFilterOperator_StartWith.ts +135 -0
  552. package/tsconfig.json +155 -0
  553. package/tsconfig.package.json +38 -0
@@ -0,0 +1,544 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { assertNonNullable, assertTrue, assertType, guaranteeNonNullable, guaranteeType, isNonNullable, isNumber, isString, returnUndefOnError, UnsupportedOperationError, } from '@finos/legend-shared';
17
+ import { COLUMN_SORT_TYPE, SortColumnState, } from './QueryResultSetModifierState.js';
18
+ import { QueryBuilderFilterTreeGroupNodeData, QueryBuilderFilterTreeConditionNodeData, } from './QueryBuilderFilterState.js';
19
+ import { FETCH_STRUCTURE_MODE } from './QueryBuilderFetchStructureState.js';
20
+ import { MILESTONING_STEREOTYPE, DerivedProperty, RawLambda, matchFunctionName, Class, CollectionInstanceValue, GraphFetchTreeInstanceValue, LambdaFunctionInstanceValue, PrimitiveInstanceValue, RootGraphFetchTree, SimpleFunctionExpression, VariableExpression, AbstractPropertyExpression, V1_deserializeRawValueSpecification, V1_RawLambda, getMilestoneTemporalStereotype, } from '@finos/legend-graph';
21
+ import { QueryBuilderDerivationProjectionColumnState, QueryBuilderSimpleProjectionColumnState, } from './QueryBuilderProjectionState.js';
22
+ import { toGroupOperation } from './QueryBuilderOperatorsHelper.js';
23
+ import { processPostFilterLambda } from './QueryBuilderPostFilterProcessor.js';
24
+ import { getDerivedPropertyMilestoningSteoreotype } from './QueryBuilderPropertyEditorState.js';
25
+ import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../QueryBuilder_Const.js';
26
+ import { LambdaParameterState } from '@finos/legend-application';
27
+ const getNullableStringValueFromValueSpec = (valueSpec) => {
28
+ if (valueSpec instanceof PrimitiveInstanceValue &&
29
+ isString(valueSpec.values[0])) {
30
+ return valueSpec.values[0];
31
+ }
32
+ return undefined;
33
+ };
34
+ const getNullableNumberValueFromValueSpec = (valueSpec) => {
35
+ if (valueSpec instanceof PrimitiveInstanceValue &&
36
+ isNumber(valueSpec.values[0])) {
37
+ return valueSpec.values[0];
38
+ }
39
+ return undefined;
40
+ };
41
+ /**
42
+ * Checks if the milestoning property expression is valid in terms of number of parameter values provided
43
+ * in relation to its milestoning type.
44
+ *
45
+ * NOTE: this takes date propgation into account. See the table below for all
46
+ * the combination:
47
+ *
48
+ * | [source] | | | | |
49
+ * ----------------------------------------------------------------------
50
+ * [target] | | NONE | PR_TMP | BI_TMP | BU_TMP |
51
+ * ----------------------------------------------------------------------
52
+ * | NONE | N.A. | PRD | PRD,BUD | BUD |
53
+ * ----------------------------------------------------------------------
54
+ * | PR_TMP | N.A. | X | PRD,BUD | BUD |
55
+ * ----------------------------------------------------------------------
56
+ * | BI_TMP | N.A. | X | X | X |
57
+ * ----------------------------------------------------------------------
58
+ * | BU_TMP | N.A. | PRD | PRD,BUD | X |
59
+ * ----------------------------------------------------------------------
60
+ *
61
+ * Annotations:
62
+ *
63
+ * [source]: source temporal type
64
+ * [target]: target temporal type
65
+ *
66
+ * PR_TMP : processing temporal
67
+ * BI_TMP : bitemporal
68
+ * BU_TMP : business temporal
69
+ *
70
+ * X : no default date propagated
71
+ * PRD : default processing date is propagated
72
+ * BUD : default business date is propgated
73
+ */
74
+ const validatePropertyExpressionChain = (propertyExpression, graph) => {
75
+ if (propertyExpression.func.genericType.value.rawType instanceof Class &&
76
+ propertyExpression.func._OWNER._generatedMilestonedProperties.length !== 0) {
77
+ const name = propertyExpression.func.name;
78
+ const func = propertyExpression.func._OWNER._generatedMilestonedProperties.find((e) => e.name === name);
79
+ if (func) {
80
+ const targetStereotype = getMilestoneTemporalStereotype(propertyExpression.func.genericType.value.rawType, graph);
81
+ if (targetStereotype) {
82
+ const sourceStereotype = getDerivedPropertyMilestoningSteoreotype(guaranteeType(func, DerivedProperty), graph);
83
+ if (sourceStereotype !== MILESTONING_STEREOTYPE.BITEMPORAL &&
84
+ targetStereotype !== sourceStereotype) {
85
+ if (targetStereotype === MILESTONING_STEREOTYPE.BITEMPORAL) {
86
+ if (propertyExpression.parametersValues.length !== 3 &&
87
+ !sourceStereotype) {
88
+ throw new UnsupportedOperationError(`Property of milestoning sterotype '${MILESTONING_STEREOTYPE.BITEMPORAL}' should have exactly two parameters`);
89
+ }
90
+ else if (propertyExpression.parametersValues.length < 2) {
91
+ throw new UnsupportedOperationError(`Property of milestoning sterotype '${MILESTONING_STEREOTYPE.BITEMPORAL}' should have at least one parameter`);
92
+ }
93
+ else if (propertyExpression.parametersValues.length > 3) {
94
+ throw new UnsupportedOperationError(`Property of milestoning sterotype '${MILESTONING_STEREOTYPE.BITEMPORAL}' should not have more than two parameters`);
95
+ }
96
+ }
97
+ else if (propertyExpression.parametersValues.length !== 2) {
98
+ throw new UnsupportedOperationError(`Property of milestoning sterotype '${targetStereotype}' should have exactly one parameter`);
99
+ }
100
+ }
101
+ }
102
+ }
103
+ }
104
+ };
105
+ const processFilterExpression = (expression, filterState, parentFilterNodeId) => {
106
+ const parentNode = parentFilterNodeId
107
+ ? filterState.getNode(parentFilterNodeId)
108
+ : undefined;
109
+ if ([
110
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.AND,
111
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.OR,
112
+ ].some((fn) => matchFunctionName(expression.functionName, fn))) {
113
+ const groupNode = new QueryBuilderFilterTreeGroupNodeData(parentFilterNodeId, toGroupOperation(expression.functionName));
114
+ filterState.nodes.set(groupNode.id, groupNode);
115
+ expression.parametersValues.forEach((filterExpression) => processFilterExpression(guaranteeType(filterExpression, SimpleFunctionExpression, `Can't process filter group expression: each child expression must be a function expression`), filterState, groupNode.id));
116
+ filterState.addNodeFromNode(groupNode, parentNode);
117
+ }
118
+ else {
119
+ const propertyExpression = expression.parametersValues[0];
120
+ if (propertyExpression instanceof AbstractPropertyExpression) {
121
+ const currentPropertyExpression = propertyExpression.parametersValues[0];
122
+ if (currentPropertyExpression instanceof AbstractPropertyExpression) {
123
+ validatePropertyExpressionChain(currentPropertyExpression, filterState.queryBuilderState.graphManagerState.graph);
124
+ }
125
+ }
126
+ for (const operator of filterState.operators) {
127
+ // NOTE: this allow plugin author to either return `undefined` or throw error
128
+ // if there is a problem with building the lambda. Either case, the plugin is
129
+ // considered as not supporting the lambda.
130
+ const filterConditionState = returnUndefOnError(() => operator.buildFilterConditionState(filterState, expression));
131
+ if (filterConditionState) {
132
+ filterState.addNodeFromNode(new QueryBuilderFilterTreeConditionNodeData(undefined, filterConditionState), parentNode);
133
+ return;
134
+ }
135
+ }
136
+ throw new UnsupportedOperationError(`Can't process filter() expression: no compatible filter operator processer available from plugins`);
137
+ }
138
+ };
139
+ const processFilterLambda = (filterLambda, filterState) => {
140
+ const lambdaFunc = guaranteeNonNullable(filterLambda.values[0], `Can't process filter() lambda: filter() lambda function is missing`);
141
+ assertTrue(lambdaFunc.expressionSequence.length === 1, `Can't process filter() lambda: only support filter() lambda body with 1 expression`);
142
+ const rootExpression = guaranteeType(lambdaFunc.expressionSequence[0], SimpleFunctionExpression, `Can't process filter() lambda: only support filter() lambda body with 1 expression`);
143
+ assertTrue(lambdaFunc.functionType.parameters.length === 1, `Can't process filter() lambda: only support filter() lambda with 1 parameter`);
144
+ filterState.setLambdaParameterName(guaranteeType(lambdaFunc.functionType.parameters[0], VariableExpression, `Can't process filter() lambda: only support filter() lambda with 1 parameter`).name);
145
+ processFilterExpression(rootExpression, filterState, undefined);
146
+ };
147
+ const processAggregateLambda = (aggregateLambda, projectionColumnState, aggregationState) => {
148
+ const lambdaFunc = guaranteeNonNullable(aggregateLambda.values[0], `Can't process agg() lambda: agg() lambda function is missing`);
149
+ assertTrue(lambdaFunc.expressionSequence.length === 1, `Can't process agg() lambda: only support agg() lambda body with 1 expression`);
150
+ const expression = guaranteeType(lambdaFunc.expressionSequence[0], SimpleFunctionExpression, `Can't process agg() lambda: only support agg() lambda body with 1 expression`);
151
+ assertTrue(lambdaFunc.functionType.parameters.length === 1, `Can't process agg() lambda: only support agg() lambda with 1 parameter`);
152
+ const lambdaParam = guaranteeType(lambdaFunc.functionType.parameters[0], VariableExpression, `Can't process agg() lambda: only support agg() lambda with 1 parameter`);
153
+ for (const operator of aggregationState.operators) {
154
+ // NOTE: this allow plugin author to either return `undefined` or throw error
155
+ // if there is a problem with building the lambda. Either case, the plugin is
156
+ // considered as not supporting the lambda.
157
+ const aggregateColumnState = returnUndefOnError(() => operator.buildAggregateColumnState(expression, lambdaParam, projectionColumnState));
158
+ if (aggregateColumnState) {
159
+ aggregationState.addColumn(aggregateColumnState);
160
+ return;
161
+ }
162
+ }
163
+ throw new UnsupportedOperationError(`Can't process aggregate expression function: no compatible aggregate operator processer available from plugins`);
164
+ };
165
+ /**
166
+ * This is the expression processor for query builder.
167
+ * Unlike expression builder which takes care of transforming the value specification
168
+ * from `protocol` to `metamodel`, and type-inferencing, this takes care
169
+ * of traversing the expression to populate the query builder UI state.
170
+ *
171
+ * NOTE: While traversing the expression, this processor also does a fair amount of
172
+ * validations and assertsions but just so enough to populate the UI state.
173
+ *
174
+ * Validation and assertion should be done by both the builder and processor, but the builder
175
+ * will do more structural checks to build the proper metamodel. The processor should never
176
+ * modify the metamodel, just traversing it.
177
+ */
178
+ export class QueryBuilderLambdaProcessor {
179
+ queryBuilderState;
180
+ precedingExpression;
181
+ constructor(queryBuilderState, precedingExpression) {
182
+ this.queryBuilderState = queryBuilderState;
183
+ this.precedingExpression = precedingExpression;
184
+ }
185
+ visit_INTERNAL__UnknownValueSpecification(valueSpecification) {
186
+ assertNonNullable(this.precedingExpression, `Can't process unknown value: unknown value preceding expression cannot be retrieved`);
187
+ const precedingExpressionName = this.precedingExpression.functionName;
188
+ if ([
189
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_PROJECT,
190
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_GROUP_BY,
191
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_AGG,
192
+ ].some((fn) => matchFunctionName(precedingExpressionName, fn))) {
193
+ const projectionState = this.queryBuilderState.fetchStructureState.projectionState;
194
+ const rawLambdaProtocol = returnUndefOnError(() => guaranteeType(V1_deserializeRawValueSpecification(valueSpecification.content), V1_RawLambda));
195
+ assertNonNullable(rawLambdaProtocol, `Can't process unknown value: only support ${precedingExpressionName}() column expression as a lambda`);
196
+ const columnState = new QueryBuilderDerivationProjectionColumnState(projectionState, new RawLambda(rawLambdaProtocol.parameters, rawLambdaProtocol.body));
197
+ projectionState.addColumn(columnState, { skipSorting: true });
198
+ return;
199
+ }
200
+ throw new UnsupportedOperationError(`Can't process unknown value with preceding expression of function ${this.precedingExpression.functionName}()`);
201
+ }
202
+ visit_RootGraphFetchTreeInstanceValue(valueSpecification) {
203
+ throw new UnsupportedOperationError();
204
+ }
205
+ visit_PropertyGraphFetchTreeInstanceValue(valueSpecification) {
206
+ throw new UnsupportedOperationError();
207
+ }
208
+ visit_AlloySerializationConfigInstanceValue(valueSpecification) {
209
+ throw new UnsupportedOperationError();
210
+ }
211
+ visit_PrimitiveInstanceValue(valueSpecification) {
212
+ throw new UnsupportedOperationError();
213
+ }
214
+ visit_EnumValueInstanceValue(valueSpecification) {
215
+ throw new UnsupportedOperationError();
216
+ }
217
+ visit_RuntimeInstanceValue(valueSpecification) {
218
+ throw new UnsupportedOperationError();
219
+ }
220
+ visit_PairInstanceValue(valueSpecification) {
221
+ throw new UnsupportedOperationError();
222
+ }
223
+ visit_MappingInstanceValue(valueSpecification) {
224
+ throw new UnsupportedOperationError();
225
+ }
226
+ visit_PureListInstanceValue(valueSpecification) {
227
+ throw new UnsupportedOperationError();
228
+ }
229
+ visit_CollectionInstanceValue(valueSpecification) {
230
+ throw new UnsupportedOperationError();
231
+ }
232
+ visit_FunctionExpression(valueSpecification) {
233
+ throw new UnsupportedOperationError();
234
+ }
235
+ visit_INTERNAL__PropagatedValue(valueSpecification) {
236
+ throw new UnsupportedOperationError();
237
+ }
238
+ visit_SimpleFunctionExpression(valueSpecification) {
239
+ const functionName = valueSpecification.functionName;
240
+ if (matchFunctionName(functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.GET_ALL)) {
241
+ const _class = valueSpecification.genericType?.value.rawType;
242
+ assertType(_class, Class, `Can't process getAll() expression: getAll() return type is missing`);
243
+ this.queryBuilderState.querySetupState.setClass(_class, true);
244
+ this.queryBuilderState.explorerState.refreshTreeData();
245
+ let acceptedNoOfParameters = 1;
246
+ const stereotype = getMilestoneTemporalStereotype(_class, this.queryBuilderState.graphManagerState.graph);
247
+ switch (stereotype) {
248
+ case MILESTONING_STEREOTYPE.BITEMPORAL:
249
+ acceptedNoOfParameters = 3;
250
+ assertTrue(valueSpecification.parametersValues.length ===
251
+ acceptedNoOfParameters, `Can't process getAll() expression: when used with a bitemporal milestoned class getAll() expects two parameters`);
252
+ this.queryBuilderState.querySetupState.setProcessingDate(valueSpecification.parametersValues[1]);
253
+ this.queryBuilderState.querySetupState.setBusinessDate(valueSpecification.parametersValues[2]);
254
+ break;
255
+ case MILESTONING_STEREOTYPE.BUSINESS_TEMPORAL:
256
+ acceptedNoOfParameters = 2;
257
+ assertTrue(valueSpecification.parametersValues.length ===
258
+ acceptedNoOfParameters, `Can't process getAll() expression: when used with a milestoned class getAll() expects a parameter`);
259
+ this.queryBuilderState.querySetupState.setBusinessDate(valueSpecification.parametersValues[1]);
260
+ break;
261
+ case MILESTONING_STEREOTYPE.PROCESSING_TEMPORAL:
262
+ acceptedNoOfParameters = 2;
263
+ assertTrue(valueSpecification.parametersValues.length ===
264
+ acceptedNoOfParameters, `Can't process getAll() expression: when used with a milestoned class getAll() expects a parameter`);
265
+ this.queryBuilderState.querySetupState.setProcessingDate(valueSpecification.parametersValues[1]);
266
+ break;
267
+ default:
268
+ assertTrue(valueSpecification.parametersValues.length ===
269
+ acceptedNoOfParameters, `Can't process getAll() expression: getAll() expects no arguments`);
270
+ }
271
+ return;
272
+ }
273
+ else if (matchFunctionName(functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.FILTER) ||
274
+ matchFunctionName(functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_FILTER)) {
275
+ assertTrue(valueSpecification.parametersValues.length === 2, `Can't process filter() expression: filter() expects 1 argument`);
276
+ const filterState = this.queryBuilderState.filterState;
277
+ const precedingExpression = guaranteeType(valueSpecification.parametersValues[0], SimpleFunctionExpression, `Can't process filter() expression: only support filter() immediately following an expression`);
278
+ precedingExpression.accept_ValueSpecificationVisitor(new QueryBuilderLambdaProcessor(this.queryBuilderState, undefined));
279
+ if (matchFunctionName(precedingExpression.functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.GET_ALL)) {
280
+ assertTrue(matchFunctionName(functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.FILTER), `Can't process filter() expression: only supports ${QUERY_BUILDER_SUPPORTED_FUNCTIONS.FILTER}() immediately following getAll() (got '${functionName}')`);
281
+ const filterLambda = valueSpecification.parametersValues[1];
282
+ assertType(filterLambda, LambdaFunctionInstanceValue, `Can't process filter() expression: filter() expects argument #1 to be a lambda function`);
283
+ processFilterLambda(filterLambda, filterState);
284
+ /**
285
+ * NOTE: Since group operations like and/or do not take more than 2 parameters, if there are
286
+ * more than 2 clauses in each group operations, then these clauses are converted into an
287
+ * unbalanced tree. However, this would look quite bad for UX, as such, we simplify the tree.
288
+ * After building the filter state.
289
+ */
290
+ filterState.simplifyTree();
291
+ return;
292
+ }
293
+ else if (matchFunctionName(precedingExpression.functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_PROJECT) ||
294
+ matchFunctionName(precedingExpression.functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_GROUP_BY)) {
295
+ assertTrue(matchFunctionName(functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_FILTER), `Can't process post-filter expression: only supports ${QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_FILTER}() immediately following TDS project()/groupBy() (got '${functionName}')`);
296
+ const postFilterState = this.queryBuilderState.postFilterState;
297
+ const postFilterLambda = valueSpecification.parametersValues[1];
298
+ assertType(postFilterLambda, LambdaFunctionInstanceValue, `Can't process post-filter expression: expects argument #1 to be a lambda function`);
299
+ processPostFilterLambda(postFilterLambda, postFilterState);
300
+ this.queryBuilderState.setShowPostFilterPanel(true);
301
+ postFilterState.simplifyTree();
302
+ return;
303
+ }
304
+ else {
305
+ throw new UnsupportedOperationError("`Can't process filter() expression: only support filter() immediately following getAll() or TDS project()/groupBy()");
306
+ }
307
+ }
308
+ else if (matchFunctionName(functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_PROJECT)) {
309
+ const params = valueSpecification.parametersValues;
310
+ assertTrue(params.length === 3, `Can't process project() expression: project() expects 2 arguments`);
311
+ const precedingExpression = guaranteeType(params[0], SimpleFunctionExpression, `Can't process project() expression: only support project() immediately following an expression`);
312
+ precedingExpression.accept_ValueSpecificationVisitor(new QueryBuilderLambdaProcessor(this.queryBuilderState, undefined));
313
+ // check caller
314
+ assertTrue([
315
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.GET_ALL,
316
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.FILTER,
317
+ ].some((fn) => matchFunctionName(precedingExpression.functionName, fn)), `Can't process project() expression: only support project() immediately following either getAll() or filter()`);
318
+ // columns
319
+ const columnLambdas = params[1];
320
+ assertType(columnLambdas, CollectionInstanceValue, `Can't process project() expression: project() expects argument #1 to be a collection`);
321
+ columnLambdas.values.map((value) => value.accept_ValueSpecificationVisitor(new QueryBuilderLambdaProcessor(this.queryBuilderState, valueSpecification)));
322
+ // aliases
323
+ const columnAliases = params[2];
324
+ assertType(columnAliases, CollectionInstanceValue, `Can't process project() expression: project() expects argument #2 to be a collection`);
325
+ assertTrue(columnLambdas.values.length === columnAliases.values.length, `Can't process project() expression: number of aliases does not match the number of columns`);
326
+ const aliases = columnAliases.values
327
+ .map(getNullableStringValueFromValueSpec)
328
+ .filter(isNonNullable);
329
+ this.queryBuilderState.fetchStructureState.projectionState.columns.forEach((e, idx) => e.setColumnName(aliases[idx]));
330
+ return;
331
+ }
332
+ else if (matchFunctionName(functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_TAKE)) {
333
+ assertTrue(valueSpecification.parametersValues.length === 2, `Can't process take() expression: take() expects 1 argument`);
334
+ const precedingExpression = guaranteeType(valueSpecification.parametersValues[0], SimpleFunctionExpression, `Can't process take() expression: only support take() immediately following an expression`);
335
+ precedingExpression.accept_ValueSpecificationVisitor(new QueryBuilderLambdaProcessor(this.queryBuilderState, undefined));
336
+ // check caller
337
+ assertTrue([
338
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_TAKE,
339
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_DISTINCT,
340
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_SORT,
341
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_PROJECT,
342
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_GROUP_BY,
343
+ ].some((fn) => matchFunctionName(precedingExpression.functionName, fn)), `Can't process take() expression: only support take() in TDS expression`);
344
+ const takeValue = getNullableNumberValueFromValueSpec(guaranteeNonNullable(valueSpecification.parametersValues[1]));
345
+ this.queryBuilderState.resultSetModifierState.setLimit(takeValue);
346
+ return;
347
+ }
348
+ else if (matchFunctionName(functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_DISTINCT)) {
349
+ assertTrue(valueSpecification.parametersValues.length === 1, `Can't process disctinct() expression: distinct() expects no parameter`);
350
+ const precedingExpression = guaranteeType(valueSpecification.parametersValues[0], SimpleFunctionExpression, `Can't process distinct() expression: only support distinct() immediately following an expression`);
351
+ precedingExpression.accept_ValueSpecificationVisitor(new QueryBuilderLambdaProcessor(this.queryBuilderState, undefined));
352
+ // check caller
353
+ assertTrue([
354
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_TAKE,
355
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_DISTINCT,
356
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_SORT,
357
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_PROJECT,
358
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_GROUP_BY,
359
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_FILTER,
360
+ ].some((fn) => matchFunctionName(precedingExpression.functionName, fn)), `Can't process distinct() expression: only support distinct() in TDS expression`);
361
+ this.queryBuilderState.resultSetModifierState.distinct = true;
362
+ return;
363
+ }
364
+ else if (matchFunctionName(functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_SORT)) {
365
+ assertTrue(valueSpecification.parametersValues.length === 2, `Can't process sort() expression: sort() expects 1 argument`);
366
+ const precedingExpression = guaranteeType(valueSpecification.parametersValues[0], SimpleFunctionExpression, `Can't process sort() expression: only support sort() immediately following an expression`);
367
+ precedingExpression.accept_ValueSpecificationVisitor(new QueryBuilderLambdaProcessor(this.queryBuilderState, undefined));
368
+ // check caller
369
+ assertTrue([
370
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_TAKE,
371
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_DISTINCT,
372
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_SORT,
373
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_PROJECT,
374
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_GROUP_BY,
375
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_FILTER,
376
+ ].some((fn) => matchFunctionName(precedingExpression.functionName, fn)), `Can't process sort() expression: only support sort() in TDS expression`);
377
+ const sortParam = valueSpecification.parametersValues[1];
378
+ assertType(sortParam, CollectionInstanceValue, `Can't process sort() expression: sort() argument should be a collection`);
379
+ sortParam.values.map((e) => e.accept_ValueSpecificationVisitor(new QueryBuilderLambdaProcessor(this.queryBuilderState, valueSpecification)));
380
+ return;
381
+ }
382
+ else if ((matchFunctionName(functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_ASC) ||
383
+ matchFunctionName(functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_DESC)) &&
384
+ this.precedingExpression &&
385
+ matchFunctionName(this.precedingExpression.functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_SORT)) {
386
+ assertTrue(valueSpecification.parametersValues.length === 1, `Can't process ${functionName}() expression: ${functionName}() expects no argument`);
387
+ const sortColumnName = getNullableStringValueFromValueSpec(guaranteeNonNullable(valueSpecification.parametersValues[0]));
388
+ const queryBuilderProjectionColumnState = this.queryBuilderState.fetchStructureState.projectionState.columns.find((e) => e.columnName === sortColumnName);
389
+ if (queryBuilderProjectionColumnState) {
390
+ const sortColumnState = new SortColumnState(this.queryBuilderState, queryBuilderProjectionColumnState);
391
+ sortColumnState.sortType = matchFunctionName(functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_ASC)
392
+ ? COLUMN_SORT_TYPE.ASC
393
+ : COLUMN_SORT_TYPE.DESC;
394
+ this.queryBuilderState.resultSetModifierState.addSortColumn(sortColumnState);
395
+ }
396
+ return;
397
+ }
398
+ else if (matchFunctionName(functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_GROUP_BY)) {
399
+ assertTrue(valueSpecification.parametersValues.length === 4, `Can't process groupBy() expression: groupBy() expects 3 arguments`);
400
+ const params = valueSpecification.parametersValues;
401
+ const precedingExpression = guaranteeType(params[0], SimpleFunctionExpression, `Can't process groupBy() expression: only support groupBy() immediately following an expression`);
402
+ precedingExpression.accept_ValueSpecificationVisitor(new QueryBuilderLambdaProcessor(this.queryBuilderState, undefined));
403
+ // check caller
404
+ assertTrue([
405
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.GET_ALL,
406
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.FILTER,
407
+ ].some((fn) => matchFunctionName(precedingExpression.functionName, fn)), `Can't process groupBy() expression: only support groupBy() immediately following either getAll() or filter()`);
408
+ // columns
409
+ const columnExpressions = params[1];
410
+ assertType(columnExpressions, CollectionInstanceValue, `Can't process groupBy() expression: groupBy() expects argument #1 to be a collection`);
411
+ columnExpressions.values.map((e) => e.accept_ValueSpecificationVisitor(new QueryBuilderLambdaProcessor(this.queryBuilderState, valueSpecification)));
412
+ // aggregations
413
+ const aggregationExpressions = params[2];
414
+ assertType(aggregationExpressions, CollectionInstanceValue, `Can't process groupBy() expression: groupBy() expects argument #2 to be a collection`);
415
+ aggregationExpressions.values.map((e) => e.accept_ValueSpecificationVisitor(new QueryBuilderLambdaProcessor(this.queryBuilderState, valueSpecification)));
416
+ // aliases
417
+ const columnAliases = params[3];
418
+ assertType(columnAliases, CollectionInstanceValue, `Can't process groupBy() expression: groupBy() expects argument #3 to be a collection`);
419
+ assertTrue(columnAliases.values.length ===
420
+ columnExpressions.values.length +
421
+ aggregationExpressions.values.length, `Can't process groupBy() expression: number of aliases does not match the number of columns`);
422
+ const aliases = columnAliases.values
423
+ .map(getNullableStringValueFromValueSpec)
424
+ .filter(isNonNullable);
425
+ this.queryBuilderState.fetchStructureState.projectionState.columns.forEach((e, idx) => e.setColumnName(aliases[idx]));
426
+ return;
427
+ }
428
+ else if (matchFunctionName(functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_AGG)) {
429
+ assertTrue(valueSpecification.parametersValues.length === 2, `Can't process agg() expression: agg() expects 2 arguments`);
430
+ // check caller
431
+ assertNonNullable(this.precedingExpression);
432
+ assertTrue(matchFunctionName(this.precedingExpression.functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_GROUP_BY), `Can't process agg() expression: only support agg() in aggregation`);
433
+ const columnLambdas = guaranteeNonNullable(valueSpecification.parametersValues[0]);
434
+ columnLambdas.accept_ValueSpecificationVisitor(new QueryBuilderLambdaProcessor(this.queryBuilderState, valueSpecification));
435
+ const aggregateLambda = valueSpecification.parametersValues[1];
436
+ assertType(aggregateLambda, LambdaFunctionInstanceValue, `Can't process agg() expression: agg() expects argument #1 to be a lambda function`);
437
+ // NOTE: since we process agg() expressions one by one, we know that the current agg()
438
+ // always correspond to the last column projection state, based on our processing procedure
439
+ processAggregateLambda(aggregateLambda, guaranteeNonNullable(this.queryBuilderState.fetchStructureState.projectionState.columns[this.queryBuilderState.fetchStructureState.projectionState.columns
440
+ .length - 1]), this.queryBuilderState.fetchStructureState.projectionState
441
+ .aggregationState);
442
+ return;
443
+ }
444
+ else if (matchFunctionName(functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.SERIALIZE)) {
445
+ assertTrue(valueSpecification.parametersValues.length === 2, `Can't process serialize() expression: serialize() expects 1 argument`);
446
+ const precedingExpression = guaranteeType(valueSpecification.parametersValues[0], SimpleFunctionExpression, `Can't process serialize() expression: only support serialize() immediately following an expression`);
447
+ precedingExpression.accept_ValueSpecificationVisitor(new QueryBuilderLambdaProcessor(this.queryBuilderState, valueSpecification));
448
+ // check caller
449
+ assertTrue([
450
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.GRAPH_FETCH,
451
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.GRAPH_FETCH_CHECKED,
452
+ ].some((fn) => matchFunctionName(precedingExpression.functionName, fn)), `Can't process serialize() expression: only support serialize() in graph-fetch expression`);
453
+ const serializeFunc = guaranteeType(valueSpecification.parametersValues[1], GraphFetchTreeInstanceValue, `Can't process serialize() expression: serialize() graph-fetch is missing`);
454
+ const value = guaranteeType(serializeFunc.values[0], RootGraphFetchTree, `Can't process serialize() expression: serialize() graph-fetch tree root is missing`);
455
+ this.queryBuilderState.fetchStructureState.setFetchStructureMode(FETCH_STRUCTURE_MODE.GRAPH_FETCH);
456
+ this.queryBuilderState.fetchStructureState.graphFetchTreeState.initialize(value);
457
+ return;
458
+ }
459
+ else if ((matchFunctionName(functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.GRAPH_FETCH_CHECKED) ||
460
+ matchFunctionName(functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.GRAPH_FETCH)) &&
461
+ this.precedingExpression &&
462
+ matchFunctionName(this.precedingExpression.functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.SERIALIZE)) {
463
+ assertTrue(valueSpecification.parametersValues.length === 2, `Can't process ${functionName}() expression: ${functionName}() expects 1 argument`);
464
+ const precedingExpression = guaranteeType(valueSpecification.parametersValues[0], SimpleFunctionExpression, `Can't process ${functionName}() expression: only support ${functionName}() immediately following an expression`);
465
+ precedingExpression.accept_ValueSpecificationVisitor(new QueryBuilderLambdaProcessor(this.queryBuilderState, valueSpecification));
466
+ // check caller
467
+ assertTrue([
468
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.FILTER,
469
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.GET_ALL,
470
+ ].some((fn) => matchFunctionName(precedingExpression.functionName, fn)), `Can't process ${functionName}(): only support ${functionName}() immediately following either getAll() or filter()`);
471
+ this.queryBuilderState.fetchStructureState.graphFetchTreeState.setChecked(matchFunctionName(functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.GRAPH_FETCH_CHECKED));
472
+ return;
473
+ }
474
+ throw new UnsupportedOperationError(`Can't process expression of function ${functionName}()`);
475
+ }
476
+ visit_VariableExpression(valueSpecification) {
477
+ throw new UnsupportedOperationError();
478
+ }
479
+ visit_LambdaFunctionInstanceValue(valueSpecification) {
480
+ valueSpecification.values.forEach((value) => value.expressionSequence.forEach((expression) => expression.accept_ValueSpecificationVisitor(new QueryBuilderLambdaProcessor(this.queryBuilderState, this.precedingExpression))));
481
+ }
482
+ visit_AbstractPropertyExpression(valueSpecification) {
483
+ assertNonNullable(this.precedingExpression, `Can't process property expression: property expression preceding expression cannot be retrieved`);
484
+ const precedingExpressionName = this.precedingExpression.functionName;
485
+ if ([
486
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_PROJECT,
487
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_GROUP_BY,
488
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_AGG,
489
+ ].some((fn) => matchFunctionName(precedingExpressionName, fn))) {
490
+ // NOTE: we do this before creating the projection state, as we will
491
+ // auto-fill arguments for derived properties when missing as part of building
492
+ // the property expression state.
493
+ let currentPropertyExpression = valueSpecification;
494
+ while (currentPropertyExpression instanceof AbstractPropertyExpression) {
495
+ const propertyExpression = currentPropertyExpression;
496
+ validatePropertyExpressionChain(currentPropertyExpression, this.queryBuilderState.graphManagerState.graph);
497
+ currentPropertyExpression = guaranteeNonNullable(currentPropertyExpression.parametersValues[0]);
498
+ // here we just do a simple check to ensure that if we encounter derived properties
499
+ // the number of parameters and arguments provided match
500
+ if (propertyExpression.func instanceof DerivedProperty) {
501
+ assertTrue((Array.isArray(propertyExpression.func.parameters)
502
+ ? propertyExpression.func.parameters.length
503
+ : 0) ===
504
+ propertyExpression.parametersValues.length - 1, `Can't process property expression: derived property '${propertyExpression.func.name}' expects number of provided arguments to match number of parameters`);
505
+ }
506
+ // Take care of chains of subtype (a pattern that is not useful, but we want to support and rectify)
507
+ // $x.employees->subType(@Person)->subType(@Staff)
508
+ while (currentPropertyExpression instanceof SimpleFunctionExpression &&
509
+ matchFunctionName(currentPropertyExpression.functionName, QUERY_BUILDER_SUPPORTED_FUNCTIONS.SUBTYPE)) {
510
+ currentPropertyExpression = guaranteeNonNullable(currentPropertyExpression.parametersValues[0]);
511
+ }
512
+ }
513
+ assertType(currentPropertyExpression, VariableExpression, `Can't process property expression: expects expression root to be a variable`);
514
+ const projectionState = this.queryBuilderState.fetchStructureState.projectionState;
515
+ const columnState = new QueryBuilderSimpleProjectionColumnState(projectionState, valueSpecification, false);
516
+ projectionState.addColumn(columnState, { skipSorting: true });
517
+ // NOTE: technically we should set the lambda parameter name when we process
518
+ // the lambda, not when we process the lambda body like this, but that requires
519
+ // some setup, so it's easier to do it here. The validation of this should have
520
+ // already been taken care of by the builder.
521
+ columnState.setLambdaParameterName(currentPropertyExpression.name);
522
+ return;
523
+ }
524
+ throw new UnsupportedOperationError(`Can't process property expression with preceding expression of function ${this.precedingExpression.functionName}()`);
525
+ }
526
+ visit_InstanceValue(valueSpecification) {
527
+ throw new UnsupportedOperationError();
528
+ }
529
+ }
530
+ export const processQueryParameters = (parameters, queryBuilderState) => {
531
+ const queryParameterState = queryBuilderState.queryParametersState;
532
+ parameters.forEach((parameter) => {
533
+ const parameterState = new LambdaParameterState(parameter, queryBuilderState.observableContext);
534
+ parameterState.mockParameterValue();
535
+ queryParameterState.addParameter(parameterState);
536
+ });
537
+ };
538
+ export const processQueryBuilderLambdaFunction = (queryBuilderState, lambdaFunc) => {
539
+ if (lambdaFunc.functionType.parameters.length) {
540
+ processQueryParameters(lambdaFunc.functionType.parameters, queryBuilderState);
541
+ }
542
+ lambdaFunc.expressionSequence.map((e) => e.accept_ValueSpecificationVisitor(new QueryBuilderLambdaProcessor(queryBuilderState, undefined)));
543
+ };
544
+ //# sourceMappingURL=QueryBuilderLambdaProcessor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryBuilderLambdaProcessor.js","sourceRoot":"","sources":["../../src/stores/QueryBuilderLambdaProcessor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Copyright (c) 2020-present, Goldman Sachs
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { type Type, type PureModel, type ValueSpecification, SimpleFunctionExpression } from '@finos/legend-graph';
17
+ export declare enum QUERY_BUILDER_GROUP_OPERATION {
18
+ AND = "and",
19
+ OR = "or"
20
+ }
21
+ export declare const fromGroupOperation: (operation: QUERY_BUILDER_GROUP_OPERATION) => string;
22
+ export declare const toGroupOperation: (functionName: string) => QUERY_BUILDER_GROUP_OPERATION;
23
+ export declare const getNonCollectionValueSpecificationType: (valueSpecification: ValueSpecification) => Type | undefined;
24
+ export declare const getCollectionValueSpecificationType: (graph: PureModel, values: ValueSpecification[]) => Type | undefined;
25
+ export declare const unwrapNotExpression: (expression: SimpleFunctionExpression) => SimpleFunctionExpression | undefined;
26
+ export declare const buildNotExpression: (graph: PureModel, expression: ValueSpecification) => ValueSpecification;
27
+ export declare const isPropertyExpressionChainOptional: (expression: ValueSpecification | undefined) => boolean;
28
+ //# sourceMappingURL=QueryBuilderOperatorsHelper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryBuilderOperatorsHelper.d.ts","sourceRoot":"","sources":["../../src/stores/QueryBuilderOperatorsHelper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAGL,KAAK,IAAI,EACT,KAAK,SAAS,EACd,KAAK,kBAAkB,EAIvB,wBAAwB,EAMzB,MAAM,qBAAqB,CAAC;AAS7B,oBAAY,6BAA6B;IACvC,GAAG,QAAQ;IACX,EAAE,OAAO;CACV;AAED,eAAO,MAAM,kBAAkB,cAClB,6BAA6B,KACvC,MAWF,CAAC;AAEF,eAAO,MAAM,gBAAgB,iBACb,MAAM,KACnB,6BAWF,CAAC;AAEF,eAAO,MAAM,sCAAsC,uBAC7B,kBAAkB,KACrC,IAAI,GAAG,SAWT,CAAC;AAEF,eAAO,MAAM,mCAAmC,UACvC,SAAS,UACR,kBAAkB,EAAE,KAC3B,IAAI,GAAG,SA4CT,CAAC;AAEF,eAAO,MAAM,mBAAmB,eAClB,wBAAwB,KACnC,wBAAwB,GAAG,SAa7B,CAAC;AAEF,eAAO,MAAM,kBAAkB,UACtB,SAAS,cACJ,kBAAkB,KAC7B,kBAUF,CAAC;AAEF,eAAO,MAAM,iCAAiC,eAChC,kBAAkB,GAAG,SAAS,KACzC,OAiBF,CAAC"}