@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,652 @@
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 { useEffect, useRef, useCallback, useState, forwardRef } from 'react';
18
+ import { observer } from 'mobx-react-lite';
19
+ import {
20
+ clsx,
21
+ BlankPanelPlaceholder,
22
+ TimesIcon,
23
+ DropdownMenu,
24
+ MenuContent,
25
+ MenuContentItem,
26
+ CaretDownIcon,
27
+ VerticalDragHandleIcon,
28
+ ContextMenu,
29
+ InputWithInlineValidation,
30
+ SigmaIcon,
31
+ } from '@finos/legend-art';
32
+ import {
33
+ type QueryBuilderExplorerTreeDragSource,
34
+ type QueryBuilderExplorerTreePropertyNodeData,
35
+ buildPropertyExpressionFromExplorerTreeNodeData,
36
+ QUERY_BUILDER_EXPLORER_TREE_DND_TYPE,
37
+ } from '../stores/QueryBuilderExplorerState.js';
38
+ import {
39
+ type DropTargetMonitor,
40
+ type XYCoord,
41
+ useDragLayer,
42
+ useDrag,
43
+ useDrop,
44
+ } from 'react-dnd';
45
+ import { getEmptyImage } from 'react-dnd-html5-backend';
46
+ import {
47
+ type QueryBuilderProjectionColumnDragSource,
48
+ type QueryBuilderProjectionColumnState,
49
+ QueryBuilderDerivationProjectionColumnState,
50
+ QueryBuilderSimpleProjectionColumnState,
51
+ QUERY_BUILDER_PROJECTION_DND_TYPE,
52
+ } from '../stores/QueryBuilderProjectionState.js';
53
+ import { QueryBuilderPropertyExpressionBadge } from './QueryBuilderPropertyExpressionEditor.js';
54
+ import type { QueryBuilderState } from '../stores/QueryBuilderState.js';
55
+ import { QueryResultModifierModal } from './QueryBuilderResultModifierPanel.js';
56
+ import { QUERY_BUILDER_TEST_ID } from './QueryBuilder_TestID.js';
57
+ import type { QueryBuilderAggregateOperator } from '../stores/QueryBuilderAggregationState.js';
58
+ import { flowResult } from 'mobx';
59
+ import { QueryBuilderLambdaEditor } from './QueryBuilderLambdaEditor.js';
60
+ import { useApplicationStore } from '@finos/legend-application';
61
+ import {
62
+ type QueryBuilderParameterDragSource,
63
+ QUERY_BUILDER_PARAMETER_TREE_DND_TYPE,
64
+ } from '../stores/QueryParametersState.js';
65
+ import {
66
+ type ConcreteFunctionDefinition,
67
+ generateFunctionCallString,
68
+ LAMBDA_PIPE,
69
+ VARIABLE_REFERENCE_TOKEN,
70
+ } from '@finos/legend-graph';
71
+ import {
72
+ type QueryBuilderFunctionsExplorerDragSource,
73
+ QUERY_BUILDER_FUNCTIONS_EXPLORER_TREE_DND_TYPE,
74
+ } from '../stores/QueryFunctionsExplorerState.js';
75
+ import { DEFAULT_LAMBDA_VARIABLE_NAME } from '../QueryBuilder_Const.js';
76
+ import { QueryBuilderPostFilterTreeConditionNodeData } from '../stores/QueryBuilderPostFilterState.js';
77
+ import { filterByType } from '@finos/legend-shared';
78
+
79
+ const ProjectionColumnDragLayer: React.FC = () => {
80
+ const { itemType, item, isDragging, currentPosition } = useDragLayer(
81
+ (monitor) => ({
82
+ itemType: monitor.getItemType(),
83
+ item: monitor.getItem<QueryBuilderProjectionColumnDragSource | null>(),
84
+ isDragging: monitor.isDragging(),
85
+ initialOffset: monitor.getInitialSourceClientOffset(),
86
+ currentPosition: monitor.getClientOffset(),
87
+ }),
88
+ );
89
+
90
+ if (
91
+ !isDragging ||
92
+ !item ||
93
+ itemType !== QUERY_BUILDER_PROJECTION_DND_TYPE.PROJECTION_COLUMN
94
+ ) {
95
+ return null;
96
+ }
97
+ return (
98
+ <div className="query-builder__projection__column__drag-preview-layer">
99
+ <div
100
+ className="query-builder__projection__column__drag-preview"
101
+ // added some offset so the mouse doesn't overlap the label too much
102
+ style={
103
+ !currentPosition
104
+ ? { display: 'none' }
105
+ : {
106
+ transform: `translate(${currentPosition.x + 20}px, ${
107
+ currentPosition.y + 10
108
+ }px)`,
109
+ }
110
+ }
111
+ >
112
+ {item.columnState.columnName}
113
+ </div>
114
+ </div>
115
+ );
116
+ };
117
+
118
+ const QueryBuilderProjectionColumnContextMenu = observer(
119
+ forwardRef<
120
+ HTMLDivElement,
121
+ {
122
+ projectionColumnState: QueryBuilderProjectionColumnState;
123
+ }
124
+ >(function QueryBuilderProjectionColumnContextMenu(props, ref) {
125
+ const { projectionColumnState } = props;
126
+ const removeColumn = (): void =>
127
+ projectionColumnState.projectionState.removeColumn(projectionColumnState);
128
+ const convertToDerivation = (): void => {
129
+ if (
130
+ projectionColumnState instanceof QueryBuilderSimpleProjectionColumnState
131
+ ) {
132
+ projectionColumnState.projectionState.transformSimpleProjectionToDerivation(
133
+ projectionColumnState,
134
+ );
135
+ }
136
+ };
137
+
138
+ return (
139
+ <MenuContent ref={ref}>
140
+ {projectionColumnState instanceof
141
+ QueryBuilderSimpleProjectionColumnState && (
142
+ <MenuContentItem onClick={convertToDerivation}>
143
+ Convert To Derivation
144
+ </MenuContentItem>
145
+ )}
146
+ <MenuContentItem onClick={removeColumn}>Remove</MenuContentItem>
147
+ </MenuContent>
148
+ );
149
+ }),
150
+ );
151
+
152
+ const QueryBuilderSimpleProjectionColumnEditor = observer(
153
+ (props: {
154
+ projectionColumnState: QueryBuilderSimpleProjectionColumnState;
155
+ }) => {
156
+ const { projectionColumnState } = props;
157
+ const onPropertyExpressionChange = (
158
+ node: QueryBuilderExplorerTreePropertyNodeData,
159
+ ): void =>
160
+ projectionColumnState.changeProperty(
161
+ node,
162
+ projectionColumnState.projectionState.queryBuilderState.explorerState
163
+ .humanizePropertyName,
164
+ );
165
+
166
+ return (
167
+ <div className="query-builder__projection__column__value__property">
168
+ <QueryBuilderPropertyExpressionBadge
169
+ propertyExpressionState={
170
+ projectionColumnState.propertyExpressionState
171
+ }
172
+ onPropertyExpressionChange={onPropertyExpressionChange}
173
+ />
174
+ </div>
175
+ );
176
+ },
177
+ );
178
+
179
+ const QueryBuilderDerivationProjectionColumnEditor = observer(
180
+ (props: {
181
+ projectionColumnState: QueryBuilderDerivationProjectionColumnState;
182
+ }) => {
183
+ const { projectionColumnState } = props;
184
+ const hasParserError = projectionColumnState.projectionState.hasParserError;
185
+
186
+ const handleDrop = useCallback(
187
+ (
188
+ item:
189
+ | QueryBuilderExplorerTreeDragSource
190
+ | QueryBuilderParameterDragSource
191
+ | QueryBuilderFunctionsExplorerDragSource,
192
+ type: string,
193
+ ): void => {
194
+ if (type === QUERY_BUILDER_PARAMETER_TREE_DND_TYPE.VARIABLE) {
195
+ projectionColumnState.derivationLambdaEditorState.setLambdaString(
196
+ `${
197
+ projectionColumnState.derivationLambdaEditorState.lambdaString
198
+ }${VARIABLE_REFERENCE_TOKEN}${
199
+ (item as QueryBuilderParameterDragSource).variable.variableName
200
+ }`,
201
+ );
202
+ } else if (
203
+ type === QUERY_BUILDER_FUNCTIONS_EXPLORER_TREE_DND_TYPE.FUNCTION
204
+ ) {
205
+ projectionColumnState.derivationLambdaEditorState.setLambdaString(
206
+ `${
207
+ projectionColumnState.derivationLambdaEditorState.lambdaString
208
+ }${`${generateFunctionCallString(
209
+ (item as QueryBuilderFunctionsExplorerDragSource).node
210
+ .packageableElement as ConcreteFunctionDefinition,
211
+ )}`}`,
212
+ );
213
+ } else {
214
+ projectionColumnState.derivationLambdaEditorState.setLambdaString(
215
+ projectionColumnState.derivationLambdaEditorState.lambdaString +
216
+ (item as QueryBuilderExplorerTreeDragSource).node.dndText,
217
+ );
218
+ }
219
+ },
220
+ [projectionColumnState],
221
+ );
222
+ const [, dropConnector] = useDrop(
223
+ () => ({
224
+ accept: [
225
+ QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.ROOT,
226
+ QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.CLASS_PROPERTY,
227
+ QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.ENUM_PROPERTY,
228
+ QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.PRIMITIVE_PROPERTY,
229
+ QUERY_BUILDER_PARAMETER_TREE_DND_TYPE.VARIABLE,
230
+ QUERY_BUILDER_FUNCTIONS_EXPLORER_TREE_DND_TYPE.FUNCTION,
231
+ ],
232
+ drop: (
233
+ item:
234
+ | QueryBuilderExplorerTreeDragSource
235
+ | QueryBuilderParameterDragSource
236
+ | QueryBuilderFunctionsExplorerDragSource,
237
+ monitor,
238
+ ): void => {
239
+ if (!monitor.didDrop()) {
240
+ handleDrop(item, monitor.getItemType() as string);
241
+ } // prevent drop event propagation to accomondate for nested DnD
242
+ },
243
+ }),
244
+ [handleDrop],
245
+ );
246
+
247
+ return (
248
+ <div
249
+ ref={dropConnector}
250
+ className={clsx(
251
+ 'query-builder__lambda-editor__container query-builder__projection__column__derivation',
252
+ { backdrop__element: hasParserError },
253
+ )}
254
+ >
255
+ <QueryBuilderLambdaEditor
256
+ className="query-builder__lambda-editor"
257
+ queryBuilderState={
258
+ projectionColumnState.projectionState.queryBuilderState
259
+ }
260
+ disabled={
261
+ projectionColumnState.projectionState
262
+ .isConvertDerivationProjectionObjects
263
+ }
264
+ lambdaEditorState={projectionColumnState.derivationLambdaEditorState}
265
+ forceBackdrop={hasParserError}
266
+ />
267
+ </div>
268
+ );
269
+ },
270
+ );
271
+
272
+ const QueryBuilderProjectionColumnEditor = observer(
273
+ (props: {
274
+ projectionColumnState: QueryBuilderProjectionColumnState;
275
+ isRearrangingColumns: boolean;
276
+ }) => {
277
+ const ref = useRef<HTMLDivElement>(null);
278
+
279
+ const [isSelectedFromContextMenu, setIsSelectedFromContextMenu] =
280
+ useState(false);
281
+ const onContextMenuOpen = (): void => setIsSelectedFromContextMenu(true);
282
+ const onContextMenuClose = (): void => setIsSelectedFromContextMenu(false);
283
+
284
+ const { projectionColumnState, isRearrangingColumns } = props;
285
+ const queryBuilderState =
286
+ projectionColumnState.projectionState.queryBuilderState;
287
+ const projectionState =
288
+ queryBuilderState.fetchStructureState.projectionState;
289
+
290
+ const isRemovalDisabled = Array.from(
291
+ queryBuilderState.postFilterState.nodes.values(),
292
+ )
293
+ .filter(filterByType(QueryBuilderPostFilterTreeConditionNodeData))
294
+ .map((n) => n.condition.columnState)
295
+ .includes(projectionColumnState);
296
+
297
+ const removeColumn = (): void =>
298
+ projectionState.removeColumn(projectionColumnState);
299
+
300
+ // name
301
+ const changeColumnName: React.ChangeEventHandler<HTMLInputElement> = (
302
+ event,
303
+ ) => projectionColumnState.setColumnName(event.target.value);
304
+ const isDuplicatedColumnName =
305
+ projectionColumnState.projectionState.columns.filter(
306
+ (column) => column.columnName === projectionColumnState.columnName,
307
+ ).length > 1;
308
+
309
+ // aggregation
310
+ const aggregateColumnState = projectionState.aggregationState.columns.find(
311
+ (column) => column.projectionColumnState === projectionColumnState,
312
+ );
313
+ const aggreateOperators = projectionState.aggregationState.operators.filter(
314
+ (op) => op.isCompatibleWithColumn(projectionColumnState),
315
+ );
316
+ const changeOperator =
317
+ (val: QueryBuilderAggregateOperator | undefined) => (): void =>
318
+ projectionState.aggregationState.changeColumnAggregateOperator(
319
+ val,
320
+ projectionColumnState,
321
+ );
322
+
323
+ // Drag and Drop
324
+ const handleHover = useCallback(
325
+ (
326
+ item: QueryBuilderProjectionColumnDragSource,
327
+ monitor: DropTargetMonitor,
328
+ ): void => {
329
+ const dragIndex = projectionState.columns.findIndex(
330
+ (e) => e === item.columnState,
331
+ );
332
+ const hoverIndex = projectionState.columns.findIndex(
333
+ (e) => e === projectionColumnState,
334
+ );
335
+ if (dragIndex === -1 || hoverIndex === -1 || dragIndex === hoverIndex) {
336
+ return;
337
+ }
338
+ // move the item being hovered on when the dragged item position is beyond the its middle point
339
+ const hoverBoundingReact = ref.current?.getBoundingClientRect();
340
+ const distanceThreshold =
341
+ ((hoverBoundingReact?.bottom ?? 0) - (hoverBoundingReact?.top ?? 0)) /
342
+ 2;
343
+ const dragDistance =
344
+ (monitor.getClientOffset() as XYCoord).y -
345
+ (hoverBoundingReact?.top ?? 0);
346
+ if (dragIndex < hoverIndex && dragDistance < distanceThreshold) {
347
+ return;
348
+ }
349
+ if (dragIndex > hoverIndex && dragDistance > distanceThreshold) {
350
+ return;
351
+ }
352
+ projectionState.moveColumn(dragIndex, hoverIndex);
353
+ },
354
+ [projectionColumnState, projectionState],
355
+ );
356
+ const [, dropConnector] = useDrop(
357
+ () => ({
358
+ accept: [QUERY_BUILDER_PROJECTION_DND_TYPE.PROJECTION_COLUMN],
359
+ hover: (
360
+ item: QueryBuilderProjectionColumnDragSource,
361
+ monitor: DropTargetMonitor,
362
+ ): void => handleHover(item, monitor),
363
+ }),
364
+ [handleHover],
365
+ );
366
+ const [, dragConnector, dragPreviewConnector] = useDrag(
367
+ () => ({
368
+ type: QUERY_BUILDER_PROJECTION_DND_TYPE.PROJECTION_COLUMN,
369
+ item: (): QueryBuilderProjectionColumnDragSource => {
370
+ projectionColumnState.setIsBeingDragged(true);
371
+ return { columnState: projectionColumnState };
372
+ },
373
+ end: (item: QueryBuilderProjectionColumnDragSource | undefined): void =>
374
+ item?.columnState.setIsBeingDragged(false),
375
+ }),
376
+ [projectionColumnState],
377
+ );
378
+ dragConnector(dropConnector(ref));
379
+
380
+ // hide default HTML5 preview image
381
+ useEffect(() => {
382
+ dragPreviewConnector(getEmptyImage(), { captureDraggingState: true });
383
+ }, [dragPreviewConnector]);
384
+
385
+ return (
386
+ <div
387
+ ref={ref}
388
+ className={clsx('query-builder__projection__column', {
389
+ 'query-builder__projection__column--dragged':
390
+ projectionColumnState.isBeingDragged,
391
+ 'query-builder__projection__column--no-hover': isRearrangingColumns,
392
+ })}
393
+ >
394
+ {projectionColumnState.isBeingDragged && (
395
+ <div className="query-builder__projection__column__dnd__placeholder__container">
396
+ <div className="query-builder__dnd__placeholder query-builder__projection__column__dnd__placeholder" />
397
+ </div>
398
+ )}
399
+ {!projectionColumnState.isBeingDragged && (
400
+ <ContextMenu
401
+ content={
402
+ <QueryBuilderProjectionColumnContextMenu
403
+ projectionColumnState={projectionColumnState}
404
+ />
405
+ }
406
+ disabled={
407
+ !(
408
+ projectionColumnState instanceof
409
+ QueryBuilderSimpleProjectionColumnState
410
+ )
411
+ }
412
+ className={clsx('query-builder__projection__column__context-menu', {
413
+ 'query-builder__projection__column--selected-from-context-menu':
414
+ isSelectedFromContextMenu,
415
+ })}
416
+ menuProps={{ elevation: 7 }}
417
+ onOpen={onContextMenuOpen}
418
+ onClose={onContextMenuClose}
419
+ >
420
+ <div className="query-builder__projection__column__dnd__indicator">
421
+ <div className="query-builder__projection__column__dnd__indicator__handler">
422
+ <VerticalDragHandleIcon />
423
+ </div>
424
+ </div>
425
+ <div className="query-builder__projection__column__name">
426
+ <InputWithInlineValidation
427
+ className="query-builder__projection__column__name__input input-group__input"
428
+ spellCheck={false}
429
+ value={projectionColumnState.columnName}
430
+ onChange={changeColumnName}
431
+ validationErrorMessage={
432
+ isDuplicatedColumnName ? 'Duplicated column' : undefined
433
+ }
434
+ />
435
+ </div>
436
+ <div className="query-builder__projection__column__value">
437
+ {projectionColumnState instanceof
438
+ QueryBuilderSimpleProjectionColumnState && (
439
+ <QueryBuilderSimpleProjectionColumnEditor
440
+ projectionColumnState={projectionColumnState}
441
+ />
442
+ )}
443
+ {projectionColumnState instanceof
444
+ QueryBuilderDerivationProjectionColumnState && (
445
+ <QueryBuilderDerivationProjectionColumnEditor
446
+ projectionColumnState={projectionColumnState}
447
+ />
448
+ )}
449
+ </div>
450
+ <div className="query-builder__projection__column__aggregate">
451
+ <div className="query-builder__projection__column__aggregate__operator">
452
+ {aggregateColumnState && (
453
+ <div className="query-builder__projection__column__aggregate__operator__label">
454
+ {aggregateColumnState.operator.getLabel(
455
+ projectionColumnState,
456
+ )}
457
+ </div>
458
+ )}
459
+
460
+ <DropdownMenu
461
+ className="query-builder__projection__column__aggregate__operator__dropdown"
462
+ disabled={!aggreateOperators.length}
463
+ content={
464
+ <MenuContent>
465
+ {aggregateColumnState && (
466
+ <MenuContentItem
467
+ className="query-builder__projection__column__aggregate__operator__dropdown__option"
468
+ onClick={changeOperator(undefined)}
469
+ >
470
+ (none)
471
+ </MenuContentItem>
472
+ )}
473
+ {aggreateOperators.map((op) => (
474
+ <MenuContentItem
475
+ key={op.uuid}
476
+ className="query-builder__projection__column__aggregate__operator__dropdown__option"
477
+ onClick={changeOperator(op)}
478
+ >
479
+ {op.getLabel(projectionColumnState)}
480
+ </MenuContentItem>
481
+ ))}
482
+ </MenuContent>
483
+ }
484
+ menuProps={{
485
+ anchorOrigin: { vertical: 'bottom', horizontal: 'left' },
486
+ transformOrigin: { vertical: 'top', horizontal: 'left' },
487
+ elevation: 7,
488
+ }}
489
+ >
490
+ <button
491
+ className={clsx(
492
+ 'query-builder__projection__column__aggregate__operator__badge',
493
+ {
494
+ 'query-builder__projection__column__aggregate__operator__badge--activated':
495
+ Boolean(aggregateColumnState),
496
+ },
497
+ )}
498
+ tabIndex={-1}
499
+ title="Choose Aggregate Operator..."
500
+ >
501
+ <SigmaIcon />
502
+ </button>
503
+ <button
504
+ className="query-builder__projection__column__aggregate__operator__dropdown__trigger"
505
+ tabIndex={-1}
506
+ title="Choose Aggregate Operator..."
507
+ >
508
+ <CaretDownIcon />
509
+ </button>
510
+ </DropdownMenu>
511
+ </div>
512
+ </div>
513
+ <div className="query-builder__projection__column__actions">
514
+ <button
515
+ className="query-builder__projection__column__action"
516
+ tabIndex={-1}
517
+ onClick={removeColumn}
518
+ disabled={isRemovalDisabled}
519
+ title={
520
+ isRemovalDisabled
521
+ ? "This column is used in the post filter and can't be removed"
522
+ : 'Remove'
523
+ }
524
+ >
525
+ <TimesIcon />
526
+ </button>
527
+ </div>
528
+ </ContextMenu>
529
+ )}
530
+ </div>
531
+ );
532
+ },
533
+ );
534
+
535
+ export const QueryBuilderProjectionPanel = observer(
536
+ (props: { queryBuilderState: QueryBuilderState }) => {
537
+ const applicationStore = useApplicationStore();
538
+ const { queryBuilderState } = props;
539
+ const projectionState =
540
+ queryBuilderState.fetchStructureState.projectionState;
541
+ const projectionColumns = projectionState.columns;
542
+ // Drag and Drop
543
+ const isRearrangingColumns = projectionColumns.some(
544
+ (columnState) => columnState.isBeingDragged,
545
+ );
546
+ const handleDrop = useCallback(
547
+ (
548
+ item:
549
+ | QueryBuilderExplorerTreeDragSource
550
+ | QueryBuilderFunctionsExplorerDragSource,
551
+ type: string,
552
+ ): void => {
553
+ switch (type) {
554
+ case QUERY_BUILDER_FUNCTIONS_EXPLORER_TREE_DND_TYPE.FUNCTION: {
555
+ const derivationProjectionColumn =
556
+ new QueryBuilderDerivationProjectionColumnState(
557
+ projectionState,
558
+ queryBuilderState.graphManagerState.graphManager.HACKY__createDefaultBlankLambda(),
559
+ );
560
+ derivationProjectionColumn.derivationLambdaEditorState.setLambdaString(
561
+ `${DEFAULT_LAMBDA_VARIABLE_NAME}${LAMBDA_PIPE}${generateFunctionCallString(
562
+ (item as QueryBuilderFunctionsExplorerDragSource).node
563
+ .packageableElement as ConcreteFunctionDefinition,
564
+ )}`,
565
+ );
566
+ projectionState.addColumn(derivationProjectionColumn);
567
+ break;
568
+ }
569
+ case QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.ENUM_PROPERTY:
570
+ case QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.PRIMITIVE_PROPERTY:
571
+ projectionState.addColumn(
572
+ new QueryBuilderSimpleProjectionColumnState(
573
+ projectionState,
574
+ buildPropertyExpressionFromExplorerTreeNodeData(
575
+ queryBuilderState.explorerState.nonNullableTreeData,
576
+ (item as QueryBuilderExplorerTreeDragSource).node,
577
+ projectionState.queryBuilderState.graphManagerState.graph,
578
+ queryBuilderState.explorerState.propertySearchPanelState
579
+ .allMappedPropertyNodes,
580
+ ),
581
+ queryBuilderState.explorerState.humanizePropertyName,
582
+ ),
583
+ );
584
+ break;
585
+ default:
586
+ break;
587
+ }
588
+ },
589
+ [queryBuilderState, projectionState],
590
+ );
591
+ const [{ isPropertyDragOver }, dropConnector] = useDrop(
592
+ () => ({
593
+ accept: [
594
+ QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.ENUM_PROPERTY,
595
+ QUERY_BUILDER_EXPLORER_TREE_DND_TYPE.PRIMITIVE_PROPERTY,
596
+ QUERY_BUILDER_FUNCTIONS_EXPLORER_TREE_DND_TYPE.FUNCTION,
597
+ ],
598
+ drop: (
599
+ item:
600
+ | QueryBuilderExplorerTreeDragSource
601
+ | QueryBuilderFunctionsExplorerDragSource,
602
+ monitor: DropTargetMonitor,
603
+ ): void => {
604
+ if (!monitor.didDrop()) {
605
+ handleDrop(item, monitor.getItemType() as string);
606
+ } // prevent drop event propagation to accomondate for nested DnD
607
+ },
608
+ collect: (monitor): { isPropertyDragOver: boolean } => ({
609
+ isPropertyDragOver: monitor.isOver({ shallow: true }),
610
+ }),
611
+ }),
612
+ [handleDrop],
613
+ );
614
+
615
+ useEffect(() => {
616
+ flowResult(projectionState.convertDerivationProjectionObjects()).catch(
617
+ applicationStore.alertUnhandledError,
618
+ );
619
+ }, [applicationStore, projectionState]);
620
+
621
+ return (
622
+ <div
623
+ className="panel__content dnd__overlay__container"
624
+ ref={dropConnector}
625
+ >
626
+ <div className={clsx({ dnd__overlay: isPropertyDragOver })} />
627
+ {!projectionColumns.length && (
628
+ <BlankPanelPlaceholder
629
+ placeholderText="Add a projection column"
630
+ tooltipText="Drag and drop properties here"
631
+ />
632
+ )}
633
+ {Boolean(projectionColumns.length) && (
634
+ <div
635
+ data-testid={QUERY_BUILDER_TEST_ID.QUERY_BUILDER_PROJECTION}
636
+ className="query-builder__projection__columns"
637
+ >
638
+ <ProjectionColumnDragLayer />
639
+ {projectionColumns.map((projectionColumnState) => (
640
+ <QueryBuilderProjectionColumnEditor
641
+ key={projectionColumnState.uuid}
642
+ projectionColumnState={projectionColumnState}
643
+ isRearrangingColumns={isRearrangingColumns}
644
+ />
645
+ ))}
646
+ </div>
647
+ )}
648
+ <QueryResultModifierModal queryBuilderState={queryBuilderState} />
649
+ </div>
650
+ );
651
+ },
652
+ );