@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,755 @@
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
+
17
+ import {
18
+ assertTrue,
19
+ getNullableFirstElement,
20
+ guaranteeNonNullable,
21
+ guaranteeType,
22
+ isNonNullable,
23
+ UnsupportedOperationError,
24
+ } from '@finos/legend-shared';
25
+ import {
26
+ type ValueSpecification,
27
+ Class,
28
+ Multiplicity,
29
+ getMilestoneTemporalStereotype,
30
+ INTERNAL__UnknownValueSpecification,
31
+ V1_GraphTransformerContextBuilder,
32
+ V1_serializeRawValueSpecification,
33
+ V1_transformRawLambda,
34
+ extractElementNameFromPath,
35
+ InstanceValue,
36
+ PackageableElementExplicitReference,
37
+ CollectionInstanceValue,
38
+ CORE_PURE_PATH,
39
+ FunctionType,
40
+ GenericType,
41
+ GenericTypeExplicitReference,
42
+ LambdaFunction,
43
+ PrimitiveInstanceValue,
44
+ PRIMITIVE_TYPE,
45
+ RootGraphFetchTreeInstanceValue,
46
+ SimpleFunctionExpression,
47
+ TYPICAL_MULTIPLICITY_TYPE,
48
+ MILESTONING_STEREOTYPE,
49
+ AbstractPropertyExpression,
50
+ DerivedProperty,
51
+ INTERNAL__PropagatedValue,
52
+ matchFunctionName,
53
+ } from '@finos/legend-graph';
54
+ import { isGraphFetchTreeDataEmpty } from './QueryBuilderGraphFetchTreeUtil.js';
55
+ import type { QueryBuilderState } from './QueryBuilderState.js';
56
+ import { buildFilterExpression } from './QueryBuilderFilterState.js';
57
+ import {
58
+ QueryBuilderDerivationProjectionColumnState,
59
+ QueryBuilderSimpleProjectionColumnState,
60
+ } from './QueryBuilderProjectionState.js';
61
+ import { buildGenericLambdaFunctionInstanceValue } from './QueryBuilderValueSpecificationBuilderHelper.js';
62
+ import {
63
+ type QueryBuilderPostFilterState,
64
+ type QueryBuilderPostFilterTreeNodeData,
65
+ QueryBuilderPostFilterTreeConditionNodeData,
66
+ QueryBuilderPostFilterTreeGroupNodeData,
67
+ } from './QueryBuilderPostFilterState.js';
68
+ import { fromGroupOperation } from './QueryBuilderOperatorsHelper.js';
69
+ import { getDerivedPropertyMilestoningSteoreotype } from './QueryBuilderPropertyEditorState.js';
70
+ import {
71
+ functionExpression_setParametersValues,
72
+ propertyExpression_setParametersValue,
73
+ buildParametersLetLambdaFunc,
74
+ } from '@finos/legend-application';
75
+ import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../QueryBuilder_Const.js';
76
+
77
+ /**
78
+ * Checks if the provided property expression match the criteria for default
79
+ * date propagation so we know whether we need to fill in values for the parameter
80
+ * or just propgate values from the parent's expression
81
+ *
82
+ * NOTE: this takes date propgation into account. See the table below for all
83
+ * the combination:
84
+ *
85
+ * | [source] | | | | |
86
+ * ----------------------------------------------------------------------
87
+ * [target] | | NONE | PR_TMP | BI_TMP | BU_TMP |
88
+ * ----------------------------------------------------------------------
89
+ * | NONE | N.A. | PRD | PRD,BUD | BUD |
90
+ * ----------------------------------------------------------------------
91
+ * | PR_TMP | N.A. | X | PRD,BUD | BUD |
92
+ * ----------------------------------------------------------------------
93
+ * | BI_TMP | N.A. | X | X | X |
94
+ * ----------------------------------------------------------------------
95
+ * | BU_TMP | N.A. | PRD | PRD,BUD | X |
96
+ * ----------------------------------------------------------------------
97
+ *
98
+ * Annotations:
99
+ *
100
+ * [source]: source temporal type
101
+ * [target]: target temporal type
102
+ *
103
+ * PR_TMP : processing temporal
104
+ * BI_TMP : bitemporal
105
+ * BU_TMP : business temporal
106
+ *
107
+ * X : no default date propagated
108
+ * PRD : default processing date is propagated
109
+ * BUD : default business date is propgated
110
+ */
111
+ const isDefaultDatePropagationSupported = (
112
+ currentPropertyExpression: AbstractPropertyExpression,
113
+ queryBuilderState: QueryBuilderState,
114
+ prevPropertyExpression?: AbstractPropertyExpression | undefined,
115
+ ): boolean => {
116
+ const property = currentPropertyExpression.func;
117
+ const graph = queryBuilderState.graphManagerState.graph;
118
+ // Default date propagation is not supported for current expression when the previous property expression is a derived property.
119
+ if (
120
+ prevPropertyExpression &&
121
+ prevPropertyExpression.func instanceof DerivedProperty &&
122
+ prevPropertyExpression.func._OWNER.derivedProperties.includes(
123
+ prevPropertyExpression.func,
124
+ )
125
+ ) {
126
+ return false;
127
+ }
128
+ // Default date propagation is not supported for current expression when the milestonedParameterValues of
129
+ // the previous property expression doesn't match with the global milestonedParameterValues
130
+ if (
131
+ prevPropertyExpression &&
132
+ prevPropertyExpression.func.genericType.value.rawType instanceof Class
133
+ ) {
134
+ const milestoningStereotype = getMilestoneTemporalStereotype(
135
+ prevPropertyExpression.func.genericType.value.rawType,
136
+ graph,
137
+ );
138
+ if (
139
+ milestoningStereotype &&
140
+ !prevPropertyExpression.parametersValues
141
+ .slice(1)
142
+ .every(
143
+ (parameterValue) =>
144
+ parameterValue instanceof INTERNAL__PropagatedValue,
145
+ )
146
+ ) {
147
+ return false;
148
+ }
149
+ }
150
+ if (property.genericType.value.rawType instanceof Class) {
151
+ // the stereotype of source class of current property expression.
152
+ const sourceStereotype =
153
+ property instanceof DerivedProperty
154
+ ? getDerivedPropertyMilestoningSteoreotype(property, graph)
155
+ : undefined;
156
+ // Default date propagation is always supported if the source is `bitemporal`
157
+ if (sourceStereotype === MILESTONING_STEREOTYPE.BITEMPORAL) {
158
+ return true;
159
+ }
160
+ // the stereotype (if exists) of the generic type of current property expression.
161
+ const targetStereotype = getMilestoneTemporalStereotype(
162
+ property.genericType.value.rawType,
163
+ graph,
164
+ );
165
+ // Default date propagation is supported when stereotype of both source and target matches
166
+ if (sourceStereotype && targetStereotype) {
167
+ return sourceStereotype === targetStereotype;
168
+ }
169
+ }
170
+ return false;
171
+ };
172
+
173
+ export const buildGetAllFunction = (
174
+ _class: Class,
175
+ multiplicity: Multiplicity,
176
+ ): SimpleFunctionExpression => {
177
+ const _func = new SimpleFunctionExpression(
178
+ extractElementNameFromPath(QUERY_BUILDER_SUPPORTED_FUNCTIONS.GET_ALL),
179
+ multiplicity,
180
+ );
181
+ const classInstance = new InstanceValue(
182
+ multiplicity,
183
+ GenericTypeExplicitReference.create(new GenericType(_class)),
184
+ );
185
+ classInstance.values[0] = PackageableElementExplicitReference.create(_class);
186
+ _func.parametersValues.push(classInstance);
187
+ return _func;
188
+ };
189
+
190
+ const buildPostFilterExpression = (
191
+ filterState: QueryBuilderPostFilterState,
192
+ node: QueryBuilderPostFilterTreeNodeData,
193
+ ): ValueSpecification | undefined => {
194
+ if (node instanceof QueryBuilderPostFilterTreeConditionNodeData) {
195
+ return node.condition.operator.buildPostFilterConditionExpression(
196
+ node.condition,
197
+ );
198
+ } else if (node instanceof QueryBuilderPostFilterTreeGroupNodeData) {
199
+ const multiplicityOne =
200
+ filterState.queryBuilderState.graphManagerState.graph.getTypicalMultiplicity(
201
+ TYPICAL_MULTIPLICITY_TYPE.ONE,
202
+ );
203
+ const func = new SimpleFunctionExpression(
204
+ extractElementNameFromPath(fromGroupOperation(node.groupOperation)),
205
+ multiplicityOne,
206
+ );
207
+ const clauses = node.childrenIds
208
+ .map((e) => filterState.nodes.get(e))
209
+ .filter(isNonNullable)
210
+ .map((e) => buildPostFilterExpression(filterState, e))
211
+ .filter(isNonNullable);
212
+ /**
213
+ * NOTE: Due to a limitation (or perhaps design decision) in the engine, group operations
214
+ * like and/or do not take more than 2 parameters, as such, if we have more than 2, we need
215
+ * to create a chain of this operation to accomondate.
216
+ *
217
+ * This means that in the read direction, we might need to flatten the chains down to group with
218
+ * multiple clauses. This means user's intended grouping will not be kept.
219
+ */
220
+ if (clauses.length > 2) {
221
+ const firstClause = clauses[0] as ValueSpecification;
222
+ let currentClause: ValueSpecification = clauses[
223
+ clauses.length - 1
224
+ ] as ValueSpecification;
225
+ for (let i = clauses.length - 2; i > 0; --i) {
226
+ const clause1 = clauses[i] as ValueSpecification;
227
+ const clause2 = currentClause;
228
+ const groupClause = new SimpleFunctionExpression(
229
+ extractElementNameFromPath(fromGroupOperation(node.groupOperation)),
230
+ multiplicityOne,
231
+ );
232
+ groupClause.parametersValues = [clause1, clause2];
233
+ currentClause = groupClause;
234
+ }
235
+ func.parametersValues = [firstClause, currentClause];
236
+ } else {
237
+ func.parametersValues = clauses;
238
+ }
239
+ return func.parametersValues.length ? func : undefined;
240
+ }
241
+ return undefined;
242
+ };
243
+
244
+ export const processPostFilterOnLambda = (
245
+ postFilterState: QueryBuilderPostFilterState,
246
+ lambda: LambdaFunction,
247
+ ): LambdaFunction => {
248
+ const postFilterConditionExpressions = postFilterState.rootIds
249
+ .map((e) => guaranteeNonNullable(postFilterState.nodes.get(e)))
250
+ .map((e) => buildPostFilterExpression(postFilterState, e))
251
+ .filter(isNonNullable);
252
+ if (
253
+ !postFilterConditionExpressions.length ||
254
+ lambda.expressionSequence.length !== 1
255
+ ) {
256
+ return lambda;
257
+ }
258
+ assertTrue(
259
+ postFilterState.queryBuilderState.fetchStructureState.isProjectionMode(),
260
+ 'Can only apply post-filter while fetching projection columns',
261
+ );
262
+ const multiplicityOne =
263
+ postFilterState.queryBuilderState.graphManagerState.graph.getTypicalMultiplicity(
264
+ TYPICAL_MULTIPLICITY_TYPE.ONE,
265
+ );
266
+ const filterLambda = buildGenericLambdaFunctionInstanceValue(
267
+ postFilterState.lambdaParameterName,
268
+ postFilterConditionExpressions,
269
+ postFilterState.queryBuilderState.graphManagerState.graph,
270
+ );
271
+ // main filter expression
272
+ const filterExpression = new SimpleFunctionExpression(
273
+ extractElementNameFromPath(QUERY_BUILDER_SUPPORTED_FUNCTIONS.FILTER),
274
+ multiplicityOne,
275
+ );
276
+ const currentExpression = guaranteeNonNullable(lambda.expressionSequence[0]);
277
+ filterExpression.parametersValues = [currentExpression, filterLambda];
278
+ lambda.expressionSequence[0] = filterExpression;
279
+ return lambda;
280
+ };
281
+
282
+ export const buildPropertyExpressionChain = (
283
+ propertyExpression: AbstractPropertyExpression,
284
+ queryBuilderState: QueryBuilderState,
285
+ ): ValueSpecification => {
286
+ const graph = queryBuilderState.graphManagerState.graph;
287
+ const newPropertyExpression = new AbstractPropertyExpression(
288
+ '',
289
+ graph.getTypicalMultiplicity(TYPICAL_MULTIPLICITY_TYPE.ONE),
290
+ );
291
+ newPropertyExpression.func = propertyExpression.func;
292
+ newPropertyExpression.parametersValues = propertyExpression.parametersValues;
293
+
294
+ let nextExpression: ValueSpecification | undefined;
295
+ let currentExpression: ValueSpecification | undefined = newPropertyExpression;
296
+ while (currentExpression instanceof AbstractPropertyExpression) {
297
+ nextExpression = getNullableFirstElement(
298
+ currentExpression.parametersValues,
299
+ );
300
+ if (nextExpression instanceof AbstractPropertyExpression) {
301
+ const parameterValue = new AbstractPropertyExpression(
302
+ '',
303
+ graph.getTypicalMultiplicity(TYPICAL_MULTIPLICITY_TYPE.ONE),
304
+ );
305
+ parameterValue.func = nextExpression.func;
306
+ parameterValue.parametersValues = nextExpression.parametersValues;
307
+ nextExpression = parameterValue;
308
+ currentExpression.parametersValues[0] = parameterValue;
309
+ }
310
+ if (currentExpression.func instanceof DerivedProperty) {
311
+ const parameterValues = currentExpression.parametersValues.slice(1);
312
+ parameterValues.forEach((parameterValue, index) => {
313
+ if (parameterValue instanceof INTERNAL__PropagatedValue) {
314
+ // Replace with argumentless derived property expression only when default date propagation is supported
315
+ if (
316
+ isDefaultDatePropagationSupported(
317
+ guaranteeType(currentExpression, AbstractPropertyExpression),
318
+ queryBuilderState,
319
+ nextExpression instanceof AbstractPropertyExpression
320
+ ? nextExpression
321
+ : undefined,
322
+ )
323
+ ) {
324
+ // NOTE: For `bitemporal` property check if the property expression has parameters which are not instance of
325
+ // `INTERNAL_PropagatedValue` then pass the parameters as user explicitly changed values of either of the parameters.
326
+ if (
327
+ (index === 1 &&
328
+ guaranteeType(currentExpression, AbstractPropertyExpression)
329
+ .parametersValues.length === 3) ||
330
+ (index === 0 &&
331
+ guaranteeType(currentExpression, AbstractPropertyExpression)
332
+ .parametersValues.length === 3 &&
333
+ !(
334
+ guaranteeType(currentExpression, AbstractPropertyExpression)
335
+ .parametersValues[2] instanceof INTERNAL__PropagatedValue
336
+ ))
337
+ ) {
338
+ propertyExpression_setParametersValue(
339
+ guaranteeType(currentExpression, AbstractPropertyExpression),
340
+ index + 1,
341
+ parameterValue.getValue(),
342
+ queryBuilderState.observableContext,
343
+ );
344
+ } else {
345
+ functionExpression_setParametersValues(
346
+ guaranteeType(currentExpression, AbstractPropertyExpression),
347
+ [
348
+ guaranteeNonNullable(
349
+ guaranteeType(currentExpression, AbstractPropertyExpression)
350
+ .parametersValues[0],
351
+ ),
352
+ ],
353
+ queryBuilderState.observableContext,
354
+ );
355
+ }
356
+ } else {
357
+ propertyExpression_setParametersValue(
358
+ guaranteeType(currentExpression, AbstractPropertyExpression),
359
+ index + 1,
360
+ parameterValue.getValue(),
361
+ queryBuilderState.observableContext,
362
+ );
363
+ }
364
+ }
365
+ });
366
+ }
367
+ currentExpression = nextExpression;
368
+ // Take care of chains of subtype (a pattern that is not useful, but we want to support and rectify)
369
+ // $x.employees->subType(@Person)->subType(@Staff)
370
+ while (
371
+ currentExpression instanceof SimpleFunctionExpression &&
372
+ matchFunctionName(
373
+ currentExpression.functionName,
374
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.SUBTYPE,
375
+ )
376
+ ) {
377
+ currentExpression = getNullableFirstElement(
378
+ currentExpression.parametersValues,
379
+ );
380
+ }
381
+ }
382
+ return newPropertyExpression;
383
+ };
384
+
385
+ export const buildLambdaFunction = (
386
+ queryBuilderState: QueryBuilderState,
387
+ options?: {
388
+ /**
389
+ * Set queryBuilderState to `true` when we construct query for execution within the app.
390
+ * queryBuilderState will make the lambda function building process overrides several query values, such as the row limit.
391
+ */
392
+ isBuildingExecutionQuery?: boolean | undefined;
393
+ keepSourceInformation?: boolean | undefined;
394
+ },
395
+ ): LambdaFunction => {
396
+ const _class = guaranteeNonNullable(
397
+ queryBuilderState.querySetupState._class,
398
+ 'Class is required to build query',
399
+ );
400
+ const multiplicityOne =
401
+ queryBuilderState.graphManagerState.graph.getTypicalMultiplicity(
402
+ TYPICAL_MULTIPLICITY_TYPE.ONE,
403
+ );
404
+ const typeString = queryBuilderState.graphManagerState.graph.getPrimitiveType(
405
+ PRIMITIVE_TYPE.STRING,
406
+ );
407
+ const typeAny = queryBuilderState.graphManagerState.graph.getType(
408
+ CORE_PURE_PATH.ANY,
409
+ );
410
+ const lambdaFunction = new LambdaFunction(
411
+ new FunctionType(typeAny, multiplicityOne),
412
+ );
413
+
414
+ // build getAll()
415
+ const getAllFunction = buildGetAllFunction(_class, multiplicityOne);
416
+
417
+ // build milestoning parameter(s) for getAll()
418
+ const milestoningStereotype = getMilestoneTemporalStereotype(
419
+ _class,
420
+ queryBuilderState.graphManagerState.graph,
421
+ );
422
+ if (milestoningStereotype) {
423
+ switch (milestoningStereotype) {
424
+ case MILESTONING_STEREOTYPE.BUSINESS_TEMPORAL: {
425
+ getAllFunction.parametersValues.push(
426
+ guaranteeNonNullable(
427
+ queryBuilderState.querySetupState.businessDate,
428
+ `Milestoning class should have a parameter of type 'Date'`,
429
+ ),
430
+ );
431
+ break;
432
+ }
433
+ case MILESTONING_STEREOTYPE.PROCESSING_TEMPORAL: {
434
+ getAllFunction.parametersValues.push(
435
+ guaranteeNonNullable(
436
+ queryBuilderState.querySetupState.processingDate,
437
+ `Milestoning class should have a parameter of type 'Date'`,
438
+ ),
439
+ );
440
+ break;
441
+ }
442
+ case MILESTONING_STEREOTYPE.BITEMPORAL: {
443
+ getAllFunction.parametersValues.push(
444
+ guaranteeNonNullable(
445
+ queryBuilderState.querySetupState.processingDate,
446
+ `Milestoning class should have a parameter of type 'Date'`,
447
+ ),
448
+ );
449
+ getAllFunction.parametersValues.push(
450
+ guaranteeNonNullable(
451
+ queryBuilderState.querySetupState.businessDate,
452
+ `Milestoning class should have a parameter of type 'Date'`,
453
+ ),
454
+ );
455
+ break;
456
+ }
457
+ default:
458
+ }
459
+ }
460
+ lambdaFunction.expressionSequence[0] = getAllFunction;
461
+
462
+ // build filter()
463
+ const filterFunction = buildFilterExpression(
464
+ queryBuilderState.filterState,
465
+ getAllFunction,
466
+ );
467
+ if (filterFunction) {
468
+ lambdaFunction.expressionSequence[0] = filterFunction;
469
+ }
470
+ // build fetch structure
471
+ if (queryBuilderState.fetchStructureState.isProjectionMode()) {
472
+ if (
473
+ queryBuilderState.fetchStructureState.projectionState.aggregationState
474
+ .columns.length
475
+ ) {
476
+ // aggregation
477
+
478
+ const groupByFunction = new SimpleFunctionExpression(
479
+ extractElementNameFromPath(
480
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_GROUP_BY,
481
+ ),
482
+ multiplicityOne,
483
+ );
484
+
485
+ const colLambdas = new CollectionInstanceValue(
486
+ new Multiplicity(
487
+ queryBuilderState.fetchStructureState.projectionState.columns.length -
488
+ queryBuilderState.fetchStructureState.projectionState
489
+ .aggregationState.columns.length,
490
+ queryBuilderState.fetchStructureState.projectionState.columns.length -
491
+ queryBuilderState.fetchStructureState.projectionState
492
+ .aggregationState.columns.length,
493
+ ),
494
+ );
495
+ const aggregateLambdas = new CollectionInstanceValue(
496
+ new Multiplicity(
497
+ queryBuilderState.fetchStructureState.projectionState.aggregationState.columns.length,
498
+ queryBuilderState.fetchStructureState.projectionState.aggregationState.columns.length,
499
+ ),
500
+ );
501
+ const colAliases = new CollectionInstanceValue(
502
+ new Multiplicity(
503
+ queryBuilderState.fetchStructureState.projectionState.columns.length,
504
+ queryBuilderState.fetchStructureState.projectionState.columns.length,
505
+ ),
506
+ );
507
+ queryBuilderState.fetchStructureState.projectionState.columns.forEach(
508
+ (projectionColumnState) => {
509
+ // column alias
510
+ const colAlias = new PrimitiveInstanceValue(
511
+ GenericTypeExplicitReference.create(new GenericType(typeString)),
512
+ multiplicityOne,
513
+ );
514
+ colAlias.values.push(projectionColumnState.columnName);
515
+ colAliases.values.push(colAlias);
516
+
517
+ const aggregateColumnState =
518
+ queryBuilderState.fetchStructureState.projectionState.aggregationState.columns.find(
519
+ (column) =>
520
+ column.projectionColumnState === projectionColumnState,
521
+ );
522
+
523
+ // column projection
524
+ let columnLambda: ValueSpecification;
525
+ if (
526
+ projectionColumnState instanceof
527
+ QueryBuilderSimpleProjectionColumnState
528
+ ) {
529
+ columnLambda = buildGenericLambdaFunctionInstanceValue(
530
+ projectionColumnState.lambdaParameterName,
531
+ [
532
+ buildPropertyExpressionChain(
533
+ projectionColumnState.propertyExpressionState
534
+ .propertyExpression,
535
+ projectionColumnState.propertyExpressionState
536
+ .queryBuilderState,
537
+ ),
538
+ ],
539
+ queryBuilderState.graphManagerState.graph,
540
+ );
541
+ } else if (
542
+ projectionColumnState instanceof
543
+ QueryBuilderDerivationProjectionColumnState
544
+ ) {
545
+ columnLambda = new INTERNAL__UnknownValueSpecification(
546
+ V1_serializeRawValueSpecification(
547
+ V1_transformRawLambda(
548
+ projectionColumnState.lambda,
549
+ new V1_GraphTransformerContextBuilder(
550
+ // TODO?: do we need to include the plugins here?
551
+ [],
552
+ )
553
+ .withKeepSourceInformationFlag(
554
+ Boolean(options?.keepSourceInformation),
555
+ )
556
+ .build(),
557
+ ),
558
+ ),
559
+ );
560
+ } else {
561
+ throw new UnsupportedOperationError(
562
+ `Can't build project() column expression: unsupported projection column state`,
563
+ projectionColumnState,
564
+ );
565
+ }
566
+
567
+ // column aggregation
568
+ if (aggregateColumnState) {
569
+ const aggregateFunctionExpression = new SimpleFunctionExpression(
570
+ extractElementNameFromPath(
571
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_AGG,
572
+ ),
573
+ multiplicityOne,
574
+ );
575
+ const aggregateLambda = buildGenericLambdaFunctionInstanceValue(
576
+ aggregateColumnState.lambdaParameterName,
577
+ [
578
+ aggregateColumnState.operator.buildAggregateExpressionFromState(
579
+ aggregateColumnState,
580
+ ),
581
+ ],
582
+ aggregateColumnState.aggregationState.projectionState
583
+ .queryBuilderState.graphManagerState.graph,
584
+ );
585
+ aggregateFunctionExpression.parametersValues = [
586
+ columnLambda,
587
+ aggregateLambda,
588
+ ];
589
+
590
+ aggregateLambdas.values.push(aggregateFunctionExpression);
591
+ } else {
592
+ colLambdas.values.push(columnLambda);
593
+ }
594
+ },
595
+ );
596
+ const expression = lambdaFunction.expressionSequence[0];
597
+ groupByFunction.parametersValues = [
598
+ expression,
599
+ colLambdas,
600
+ aggregateLambdas,
601
+ colAliases,
602
+ ];
603
+ lambdaFunction.expressionSequence[0] = groupByFunction;
604
+ } else if (
605
+ queryBuilderState.fetchStructureState.projectionState.columns.length
606
+ ) {
607
+ // projection
608
+ const projectFunction = new SimpleFunctionExpression(
609
+ extractElementNameFromPath(
610
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_PROJECT,
611
+ ),
612
+ multiplicityOne,
613
+ );
614
+ const colLambdas = new CollectionInstanceValue(
615
+ new Multiplicity(
616
+ queryBuilderState.fetchStructureState.projectionState.columns.length,
617
+ queryBuilderState.fetchStructureState.projectionState.columns.length,
618
+ ),
619
+ );
620
+ const colAliases = new CollectionInstanceValue(
621
+ new Multiplicity(
622
+ queryBuilderState.fetchStructureState.projectionState.columns.length,
623
+ queryBuilderState.fetchStructureState.projectionState.columns.length,
624
+ ),
625
+ );
626
+ queryBuilderState.fetchStructureState.projectionState.columns.forEach(
627
+ (projectionColumnState) => {
628
+ // column alias
629
+ const colAlias = new PrimitiveInstanceValue(
630
+ GenericTypeExplicitReference.create(new GenericType(typeString)),
631
+ multiplicityOne,
632
+ );
633
+ colAlias.values.push(projectionColumnState.columnName);
634
+ colAliases.values.push(colAlias);
635
+
636
+ // column projection
637
+ let columnLambda: ValueSpecification;
638
+ if (
639
+ projectionColumnState instanceof
640
+ QueryBuilderSimpleProjectionColumnState
641
+ ) {
642
+ columnLambda = buildGenericLambdaFunctionInstanceValue(
643
+ projectionColumnState.lambdaParameterName,
644
+ [
645
+ buildPropertyExpressionChain(
646
+ projectionColumnState.propertyExpressionState
647
+ .propertyExpression,
648
+ projectionColumnState.propertyExpressionState
649
+ .queryBuilderState,
650
+ ),
651
+ ],
652
+ queryBuilderState.graphManagerState.graph,
653
+ );
654
+ } else if (
655
+ projectionColumnState instanceof
656
+ QueryBuilderDerivationProjectionColumnState
657
+ ) {
658
+ columnLambda = new INTERNAL__UnknownValueSpecification(
659
+ V1_serializeRawValueSpecification(
660
+ V1_transformRawLambda(
661
+ projectionColumnState.lambda,
662
+ new V1_GraphTransformerContextBuilder(
663
+ // TODO?: do we need to include the plugins here?
664
+ [],
665
+ )
666
+ .withKeepSourceInformationFlag(
667
+ Boolean(options?.keepSourceInformation),
668
+ )
669
+ .build(),
670
+ ),
671
+ ),
672
+ );
673
+ } else {
674
+ throw new UnsupportedOperationError(
675
+ `Can't build project() column expression: unsupported projection column state`,
676
+ projectionColumnState,
677
+ );
678
+ }
679
+ colLambdas.values.push(columnLambda);
680
+ },
681
+ );
682
+ const expression = lambdaFunction.expressionSequence[0];
683
+ projectFunction.parametersValues = [expression, colLambdas, colAliases];
684
+ lambdaFunction.expressionSequence[0] = projectFunction;
685
+ }
686
+ } else if (
687
+ queryBuilderState.fetchStructureState.isGraphFetchMode() &&
688
+ queryBuilderState.fetchStructureState.graphFetchTreeState.treeData &&
689
+ !isGraphFetchTreeDataEmpty(
690
+ queryBuilderState.fetchStructureState.graphFetchTreeState.treeData,
691
+ )
692
+ ) {
693
+ const graphFetchInstance = new RootGraphFetchTreeInstanceValue(
694
+ multiplicityOne,
695
+ );
696
+ graphFetchInstance.values = [
697
+ queryBuilderState.fetchStructureState.graphFetchTreeState.treeData.tree,
698
+ ];
699
+ const serializeFunction = new SimpleFunctionExpression(
700
+ extractElementNameFromPath(QUERY_BUILDER_SUPPORTED_FUNCTIONS.SERIALIZE),
701
+ multiplicityOne,
702
+ );
703
+ const graphFetchFunc = new SimpleFunctionExpression(
704
+ queryBuilderState.fetchStructureState.graphFetchTreeState.isChecked
705
+ ? extractElementNameFromPath(
706
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.GRAPH_FETCH_CHECKED,
707
+ )
708
+ : extractElementNameFromPath(
709
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.GRAPH_FETCH,
710
+ ),
711
+ multiplicityOne,
712
+ );
713
+ const expression = lambdaFunction.expressionSequence[0];
714
+ graphFetchFunc.parametersValues = [expression, graphFetchInstance];
715
+ serializeFunction.parametersValues = [graphFetchFunc, graphFetchInstance];
716
+ lambdaFunction.expressionSequence[0] = serializeFunction;
717
+ }
718
+ // build post-filter
719
+ processPostFilterOnLambda(queryBuilderState.postFilterState, lambdaFunction);
720
+ // build result set modifiers
721
+ queryBuilderState.resultSetModifierState.buildResultSetModifiers(
722
+ lambdaFunction,
723
+ {
724
+ overridingLimit: options?.isBuildingExecutionQuery
725
+ ? queryBuilderState.resultState.previewLimit
726
+ : undefined,
727
+ },
728
+ );
729
+ // build parameters
730
+ if (
731
+ !queryBuilderState.mode.isParametersDisabled &&
732
+ queryBuilderState.queryParametersState.parameterStates.length
733
+ ) {
734
+ // if we are executing:
735
+ // set the parameters to empty
736
+ // add let statements for each parameter
737
+ if (options?.isBuildingExecutionQuery) {
738
+ lambdaFunction.functionType.parameters = [];
739
+ const letsFuncs = buildParametersLetLambdaFunc(
740
+ queryBuilderState.graphManagerState.graph,
741
+ queryBuilderState.queryParametersState.parameterStates,
742
+ );
743
+ lambdaFunction.expressionSequence = [
744
+ ...letsFuncs.expressionSequence,
745
+ ...lambdaFunction.expressionSequence,
746
+ ];
747
+ } else {
748
+ lambdaFunction.functionType.parameters =
749
+ queryBuilderState.queryParametersState.parameterStates.map(
750
+ (e) => e.parameter,
751
+ );
752
+ }
753
+ }
754
+ return lambdaFunction;
755
+ };