@finos/legend-application-query 5.2.2 → 5.2.3

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 (613) hide show
  1. package/lib/application/LegendQueryApplicationConfig.d.ts +0 -2
  2. package/lib/application/LegendQueryApplicationConfig.d.ts.map +1 -1
  3. package/lib/application/LegendQueryApplicationConfig.js +0 -2
  4. package/lib/application/LegendQueryApplicationConfig.js.map +1 -1
  5. package/lib/components/LegendQueryApplication.d.ts.map +1 -1
  6. package/lib/components/LegendQueryApplication.js +5 -15
  7. package/lib/components/LegendQueryApplication.js.map +1 -1
  8. package/lib/components/LegendQueryBaseStoreProvider.d.ts.map +1 -1
  9. package/lib/components/LegendQueryBaseStoreProvider.js +1 -3
  10. package/lib/components/LegendQueryBaseStoreProvider.js.map +1 -1
  11. package/lib/components/QueryBuilder.d.ts.map +1 -1
  12. package/lib/components/QueryBuilder.js +16 -9
  13. package/lib/components/QueryBuilder.js.map +1 -1
  14. package/lib/components/QueryBuilderParameterPanel.d.ts.map +1 -1
  15. package/lib/components/QueryBuilderParameterPanel.js +1 -1
  16. package/lib/components/QueryBuilderParameterPanel.js.map +1 -1
  17. package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts +1 -1
  18. package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts.map +1 -1
  19. package/lib/components/QueryBuilderPropertyExpressionEditor.js +2 -2
  20. package/lib/components/QueryBuilderPropertyExpressionEditor.js.map +1 -1
  21. package/lib/components/QueryBuilderResultPanel.d.ts.map +1 -1
  22. package/lib/components/QueryBuilderResultPanel.js +6 -6
  23. package/lib/components/QueryBuilderResultPanel.js.map +1 -1
  24. package/lib/components/QueryBuilderSetupPanel.js +1 -1
  25. package/lib/components/QueryBuilderSetupPanel.js.map +1 -1
  26. package/lib/components/QueryBuilderTextEditor.js +1 -1
  27. package/lib/components/QueryBuilderTextEditor.js.map +1 -1
  28. package/lib/components/QueryEditorComponentTestUtils.d.ts +0 -2
  29. package/lib/components/QueryEditorComponentTestUtils.d.ts.map +1 -1
  30. package/lib/components/QueryEditorComponentTestUtils.js +2 -5
  31. package/lib/components/QueryEditorComponentTestUtils.js.map +1 -1
  32. package/lib/components/QueryEditorStoreProvider.d.ts.map +1 -1
  33. package/lib/components/QueryEditorStoreProvider.js +3 -7
  34. package/lib/components/QueryEditorStoreProvider.js.map +1 -1
  35. package/lib/components/QuerySetupStoreProvider.d.ts.map +1 -1
  36. package/lib/components/QuerySetupStoreProvider.js +1 -3
  37. package/lib/components/QuerySetupStoreProvider.js.map +1 -1
  38. package/lib/components/{QueryBuilderExplorerPanel.d.ts → explorer/QueryBuilderExplorerPanel.d.ts} +1 -1
  39. package/lib/components/explorer/QueryBuilderExplorerPanel.d.ts.map +1 -0
  40. package/lib/components/{QueryBuilderExplorerPanel.js → explorer/QueryBuilderExplorerPanel.js} +12 -47
  41. package/lib/components/explorer/QueryBuilderExplorerPanel.js.map +1 -0
  42. package/lib/components/{QueryBuilderFunctionsExplorerPanel.d.ts → explorer/QueryBuilderFunctionsExplorerPanel.d.ts} +1 -1
  43. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.d.ts.map +1 -0
  44. package/lib/components/{QueryBuilderFunctionsExplorerPanel.js → explorer/QueryBuilderFunctionsExplorerPanel.js} +1 -1
  45. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js.map +1 -0
  46. package/lib/components/{QueryBuilderMilestoneEditor.d.ts → explorer/QueryBuilderMilestoneEditor.d.ts} +1 -1
  47. package/lib/components/explorer/QueryBuilderMilestoneEditor.d.ts.map +1 -0
  48. package/lib/components/{QueryBuilderMilestoneEditor.js → explorer/QueryBuilderMilestoneEditor.js} +3 -3
  49. package/lib/components/explorer/QueryBuilderMilestoneEditor.js.map +1 -0
  50. package/lib/components/{QueryBuilderPropertySearchPanel.d.ts → explorer/QueryBuilderPropertySearchPanel.d.ts} +1 -1
  51. package/lib/components/explorer/QueryBuilderPropertySearchPanel.d.ts.map +1 -0
  52. package/lib/components/{QueryBuilderPropertySearchPanel.js → explorer/QueryBuilderPropertySearchPanel.js} +5 -5
  53. package/lib/components/explorer/QueryBuilderPropertySearchPanel.js.map +1 -0
  54. package/lib/components/{QueryBuilderFetchStructurePanel.d.ts → fetch-structure/QueryBuilderFetchStructurePanel.d.ts} +1 -1
  55. package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.d.ts.map +1 -0
  56. package/lib/components/{QueryBuilderFetchStructurePanel.js → fetch-structure/QueryBuilderFetchStructurePanel.js} +15 -12
  57. package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.js.map +1 -0
  58. package/lib/components/{QueryBuilderGraphFetchTreePanel.d.ts → fetch-structure/QueryBuilderGraphFetchTreePanel.d.ts} +3 -3
  59. package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.d.ts.map +1 -0
  60. package/lib/components/{QueryBuilderGraphFetchTreePanel.js → fetch-structure/QueryBuilderGraphFetchTreePanel.js} +4 -4
  61. package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.js.map +1 -0
  62. package/lib/components/{QueryBuilderPostFilterPanel.d.ts → fetch-structure/QueryBuilderPostFilterPanel.d.ts} +3 -3
  63. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts.map +1 -0
  64. package/lib/components/{QueryBuilderPostFilterPanel.js → fetch-structure/QueryBuilderPostFilterPanel.js} +20 -18
  65. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -0
  66. package/lib/components/{QueryBuilderProjectionPanel.d.ts → fetch-structure/QueryBuilderProjectionPanel.d.ts} +1 -1
  67. package/lib/components/fetch-structure/QueryBuilderProjectionPanel.d.ts.map +1 -0
  68. package/lib/components/{QueryBuilderProjectionPanel.js → fetch-structure/QueryBuilderProjectionPanel.js} +11 -11
  69. package/lib/components/fetch-structure/QueryBuilderProjectionPanel.js.map +1 -0
  70. package/lib/components/{QueryBuilderResultModifierPanel.d.ts → fetch-structure/QueryBuilderResultModifierPanel.d.ts} +1 -1
  71. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts.map +1 -0
  72. package/lib/components/{QueryBuilderResultModifierPanel.js → fetch-structure/QueryBuilderResultModifierPanel.js} +9 -6
  73. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js.map +1 -0
  74. package/lib/components/{QueryBuilderFilterPanel.d.ts → filter/QueryBuilderFilterPanel.d.ts} +1 -1
  75. package/lib/components/filter/QueryBuilderFilterPanel.d.ts.map +1 -0
  76. package/lib/components/{QueryBuilderFilterPanel.js → filter/QueryBuilderFilterPanel.js} +10 -9
  77. package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -0
  78. package/lib/components/{QueryBuilderLambdaEditor.d.ts → shared/QueryBuilderLambdaEditor.d.ts} +1 -1
  79. package/lib/components/shared/QueryBuilderLambdaEditor.d.ts.map +1 -0
  80. package/lib/components/{QueryBuilderLambdaEditor.js → shared/QueryBuilderLambdaEditor.js} +0 -0
  81. package/lib/components/shared/QueryBuilderLambdaEditor.js.map +1 -0
  82. package/lib/components/{QueryBuilderPanelIssueCountBadge.d.ts → shared/QueryBuilderPanelIssueCountBadge.d.ts} +0 -0
  83. package/lib/components/shared/QueryBuilderPanelIssueCountBadge.d.ts.map +1 -0
  84. package/lib/components/{QueryBuilderPanelIssueCountBadge.js → shared/QueryBuilderPanelIssueCountBadge.js} +0 -0
  85. package/lib/components/shared/QueryBuilderPanelIssueCountBadge.js.map +1 -0
  86. package/lib/components/{QueryBuilderPropertyInfoTooltip.d.ts → shared/QueryBuilderPropertyInfoTooltip.d.ts} +0 -0
  87. package/lib/components/shared/QueryBuilderPropertyInfoTooltip.d.ts.map +1 -0
  88. package/lib/components/{QueryBuilderPropertyInfoTooltip.js → shared/QueryBuilderPropertyInfoTooltip.js} +0 -0
  89. package/lib/components/shared/QueryBuilderPropertyInfoTooltip.js.map +1 -0
  90. package/lib/index.css +2 -2
  91. package/lib/index.css.map +1 -1
  92. package/lib/index.d.ts +0 -4
  93. package/lib/index.d.ts.map +1 -1
  94. package/lib/index.js +0 -4
  95. package/lib/index.js.map +1 -1
  96. package/lib/package.json +1 -2
  97. package/lib/stores/LegendQueryBaseStore.d.ts +2 -4
  98. package/lib/stores/LegendQueryBaseStore.d.ts.map +1 -1
  99. package/lib/stores/LegendQueryBaseStore.js +1 -5
  100. package/lib/stores/LegendQueryBaseStore.js.map +1 -1
  101. package/lib/stores/QueryBuilderGroupOperationHelper.d.ts +22 -0
  102. package/lib/stores/QueryBuilderGroupOperationHelper.d.ts.map +1 -0
  103. package/lib/stores/QueryBuilderGroupOperationHelper.js +43 -0
  104. package/lib/stores/QueryBuilderGroupOperationHelper.js.map +1 -0
  105. package/lib/stores/QueryBuilderPreviewDataHelper.d.ts.map +1 -1
  106. package/lib/stores/QueryBuilderPreviewDataHelper.js +16 -17
  107. package/lib/stores/QueryBuilderPreviewDataHelper.js.map +1 -1
  108. package/lib/stores/QueryBuilderPropertyEditorState.d.ts.map +1 -1
  109. package/lib/stores/QueryBuilderPropertyEditorState.js +5 -4
  110. package/lib/stores/QueryBuilderPropertyEditorState.js.map +1 -1
  111. package/lib/stores/QueryBuilderResultState.js +1 -1
  112. package/lib/stores/QueryBuilderResultState.js.map +1 -1
  113. package/lib/stores/QueryBuilderState.d.ts +9 -16
  114. package/lib/stores/QueryBuilderState.d.ts.map +1 -1
  115. package/lib/stores/QueryBuilderState.js +19 -33
  116. package/lib/stores/QueryBuilderState.js.map +1 -1
  117. package/lib/stores/QueryBuilderTestUtils.d.ts.map +1 -1
  118. package/lib/stores/QueryBuilderTestUtils.js +2 -1
  119. package/lib/stores/QueryBuilderTestUtils.js.map +1 -1
  120. package/lib/stores/QueryBuilderTypeaheadHelper.d.ts +7 -7
  121. package/lib/stores/QueryBuilderTypeaheadHelper.d.ts.map +1 -1
  122. package/lib/stores/QueryBuilderTypeaheadHelper.js +23 -28
  123. package/lib/stores/QueryBuilderTypeaheadHelper.js.map +1 -1
  124. package/lib/stores/{QueryBuilderLambdaBuilder.d.ts → QueryBuilderValueSpecificationBuilder.d.ts} +1 -3
  125. package/lib/stores/QueryBuilderValueSpecificationBuilder.d.ts.map +1 -0
  126. package/lib/stores/{QueryBuilderLambdaBuilder.js → QueryBuilderValueSpecificationBuilder.js} +179 -190
  127. package/lib/stores/QueryBuilderValueSpecificationBuilder.js.map +1 -0
  128. package/lib/stores/{QueryBuilderOperatorsHelper.d.ts → QueryBuilderValueSpecificationHelper.d.ts} +5 -9
  129. package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts.map +1 -0
  130. package/lib/stores/{QueryBuilderOperatorsHelper.js → QueryBuilderValueSpecificationHelper.js} +38 -30
  131. package/lib/stores/QueryBuilderValueSpecificationHelper.js.map +1 -0
  132. package/lib/stores/{QueryBuilderLambdaProcessor.d.ts → QueryBuilderValueSpecificationProcessor.d.ts} +1 -1
  133. package/lib/stores/QueryBuilderValueSpecificationProcessor.d.ts.map +1 -0
  134. package/lib/stores/{QueryBuilderLambdaProcessor.js → QueryBuilderValueSpecificationProcessor.js} +16 -14
  135. package/lib/stores/QueryBuilderValueSpecificationProcessor.js.map +1 -0
  136. package/lib/stores/QueryEditorStore.d.ts +4 -6
  137. package/lib/stores/QueryEditorStore.d.ts.map +1 -1
  138. package/lib/stores/QueryEditorStore.js +7 -9
  139. package/lib/stores/QueryEditorStore.js.map +1 -1
  140. package/lib/stores/QueryEditorStoreTestUtils.d.ts.map +1 -1
  141. package/lib/stores/QueryEditorStoreTestUtils.js +0 -1
  142. package/lib/stores/QueryEditorStoreTestUtils.js.map +1 -1
  143. package/lib/stores/QuerySetupStore.d.ts +1 -3
  144. package/lib/stores/QuerySetupStore.d.ts.map +1 -1
  145. package/lib/stores/QuerySetupStore.js +1 -3
  146. package/lib/stores/QuerySetupStore.js.map +1 -1
  147. package/lib/stores/{QueryBuilderExplorerState.d.ts → explorer/QueryBuilderExplorerState.d.ts} +3 -2
  148. package/lib/stores/explorer/QueryBuilderExplorerState.d.ts.map +1 -0
  149. package/lib/stores/{QueryBuilderExplorerState.js → explorer/QueryBuilderExplorerState.js} +71 -3
  150. package/lib/stores/explorer/QueryBuilderExplorerState.js.map +1 -0
  151. package/lib/stores/{QueryBuilderPropertySearchPanelState.d.ts → explorer/QueryBuilderPropertySearchPanelState.d.ts} +2 -2
  152. package/lib/stores/explorer/QueryBuilderPropertySearchPanelState.d.ts.map +1 -0
  153. package/lib/stores/{QueryBuilderPropertySearchPanelState.js → explorer/QueryBuilderPropertySearchPanelState.js} +1 -1
  154. package/lib/stores/explorer/QueryBuilderPropertySearchPanelState.js.map +1 -0
  155. package/lib/stores/{QueryFunctionsExplorerState.d.ts → explorer/QueryFunctionsExplorerState.d.ts} +1 -1
  156. package/lib/stores/explorer/QueryFunctionsExplorerState.d.ts.map +1 -0
  157. package/lib/stores/{QueryFunctionsExplorerState.js → explorer/QueryFunctionsExplorerState.js} +0 -0
  158. package/lib/stores/explorer/QueryFunctionsExplorerState.js.map +1 -0
  159. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts +23 -0
  160. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts.map +1 -0
  161. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js +24 -0
  162. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js.map +1 -0
  163. package/lib/stores/{QueryBuilderFetchStructureState.d.ts → fetch-structure/QueryBuilderFetchStructureState.d.ts} +11 -7
  164. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.d.ts.map +1 -0
  165. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.js +116 -0
  166. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.js.map +1 -0
  167. package/lib/stores/{QueryBuilderGraphFetchTreeState.d.ts → fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts} +6 -5
  168. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts.map +1 -0
  169. package/lib/stores/{QueryBuilderGraphFetchTreeState.js → fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js} +17 -17
  170. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js.map +1 -0
  171. package/lib/stores/{QueryBuilderGraphFetchTreeUtil.d.ts → fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.d.ts} +2 -2
  172. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.d.ts.map +1 -0
  173. package/lib/stores/{QueryBuilderGraphFetchTreeUtil.js → fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.js} +1 -1
  174. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.js.map +1 -0
  175. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.d.ts +19 -0
  176. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.d.ts.map +1 -0
  177. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.js +49 -0
  178. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.js.map +1 -0
  179. package/lib/stores/{QueryBuilderProjectionState.d.ts → fetch-structure/projection/QueryBuilderProjectionColumnState.d.ts} +6 -34
  180. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.d.ts.map +1 -0
  181. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.js +187 -0
  182. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.js.map +1 -0
  183. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.d.ts +59 -0
  184. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.d.ts.map +1 -0
  185. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.js +203 -0
  186. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.js.map +1 -0
  187. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.d.ts +21 -0
  188. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.d.ts.map +1 -0
  189. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.js +73 -0
  190. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.js.map +1 -0
  191. package/lib/stores/{QueryResultSetModifierState.d.ts → fetch-structure/projection/QueryResultSetModifierState.d.ts} +5 -14
  192. package/lib/stores/fetch-structure/projection/QueryResultSetModifierState.d.ts.map +1 -0
  193. package/lib/stores/fetch-structure/projection/QueryResultSetModifierState.js +77 -0
  194. package/lib/stores/fetch-structure/projection/QueryResultSetModifierState.js.map +1 -0
  195. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperator.d.ts +32 -0
  196. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperator.d.ts.map +1 -0
  197. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperator.js +36 -0
  198. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperator.js.map +1 -0
  199. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperatorLoader.d.ts +18 -0
  200. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperatorLoader.d.ts.map +1 -0
  201. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperatorLoader.js +38 -0
  202. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperatorLoader.js.map +1 -0
  203. package/lib/stores/{QueryBuilderAggregationState.d.ts → fetch-structure/projection/aggregation/QueryBuilderAggregationState.d.ts} +4 -15
  204. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationState.d.ts.map +1 -0
  205. package/lib/stores/{QueryBuilderAggregationState.js → fetch-structure/projection/aggregation/QueryBuilderAggregationState.js} +2 -21
  206. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationState.js.map +1 -0
  207. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperatorHelper.d.ts +3 -2
  208. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperatorHelper.d.ts.map +1 -0
  209. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperatorHelper.js +1 -1
  210. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperatorHelper.js.map +1 -0
  211. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_Average.d.ts +3 -2
  212. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Average.d.ts.map +1 -0
  213. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_Average.js +3 -3
  214. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Average.js.map +1 -0
  215. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_Count.d.ts +3 -2
  216. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Count.d.ts.map +1 -0
  217. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_Count.js +3 -3
  218. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Count.js.map +1 -0
  219. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_Distinct.d.ts +3 -2
  220. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Distinct.d.ts.map +1 -0
  221. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_Distinct.js +3 -3
  222. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Distinct.js.map +1 -0
  223. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_DistinctCount.d.ts +3 -2
  224. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.d.ts.map +1 -0
  225. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_DistinctCount.js +4 -3
  226. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.js.map +1 -0
  227. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_JoinString.d.ts +3 -2
  228. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_JoinString.d.ts.map +1 -0
  229. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_JoinString.js +4 -3
  230. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_JoinString.js.map +1 -0
  231. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_Max.d.ts +3 -2
  232. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Max.d.ts.map +1 -0
  233. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_Max.js +3 -3
  234. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Max.js.map +1 -0
  235. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_Min.d.ts +3 -2
  236. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Min.d.ts.map +1 -0
  237. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_Min.js +3 -3
  238. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Min.js.map +1 -0
  239. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_StdDev_Population.d.ts +3 -2
  240. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.d.ts.map +1 -0
  241. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_StdDev_Population.js +3 -3
  242. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.js.map +1 -0
  243. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_StdDev_Sample.d.ts +3 -2
  244. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.d.ts.map +1 -0
  245. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_StdDev_Sample.js +3 -3
  246. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.js.map +1 -0
  247. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_Sum.d.ts +3 -2
  248. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Sum.d.ts.map +1 -0
  249. package/lib/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_Sum.js +3 -3
  250. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Sum.js.map +1 -0
  251. package/lib/stores/{QueryBuilderPostFilterOperator.d.ts → fetch-structure/projection/post-filter/QueryBuilderPostFilterOperator.d.ts} +0 -0
  252. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterOperator.d.ts.map +1 -0
  253. package/lib/stores/{QueryBuilderPostFilterOperator.js → fetch-structure/projection/post-filter/QueryBuilderPostFilterOperator.js} +0 -0
  254. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterOperator.js.map +1 -0
  255. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterOperatorLoader.d.ts +18 -0
  256. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterOperatorLoader.d.ts.map +1 -0
  257. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterOperatorLoader.js +44 -0
  258. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterOperatorLoader.js.map +1 -0
  259. package/lib/stores/{QueryBuilderPostFilterState.d.ts → fetch-structure/projection/post-filter/QueryBuilderPostFilterState.d.ts} +6 -6
  260. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterState.d.ts.map +1 -0
  261. package/lib/stores/{QueryBuilderPostFilterState.js → fetch-structure/projection/post-filter/QueryBuilderPostFilterState.js} +18 -15
  262. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterState.js.map +1 -0
  263. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.d.ts +19 -0
  264. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.d.ts.map +1 -0
  265. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js +82 -0
  266. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js.map +1 -0
  267. package/lib/stores/{QueryBuilderPostFilterProcessor.d.ts → fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationProcessor.d.ts} +2 -5
  268. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationProcessor.d.ts.map +1 -0
  269. package/lib/stores/{QueryBuilderPostFilterProcessor.js → fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationProcessor.js} +13 -11
  270. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationProcessor.js.map +1 -0
  271. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperatorHelper.d.ts +2 -2
  272. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorHelper.d.ts.map +1 -0
  273. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperatorHelper.js +5 -5
  274. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorHelper.js.map +1 -0
  275. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_Contain.d.ts +0 -0
  276. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.d.ts.map +1 -0
  277. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_Contain.js +7 -8
  278. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js.map +1 -0
  279. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_EndWith.d.ts +0 -0
  280. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.d.ts.map +1 -0
  281. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_EndWith.js +7 -8
  282. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js.map +1 -0
  283. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_Equal.d.ts +0 -0
  284. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.d.ts.map +1 -0
  285. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_Equal.js +11 -12
  286. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js.map +1 -0
  287. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_GreaterThan.d.ts +0 -0
  288. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.d.ts.map +1 -0
  289. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_GreaterThan.js +8 -9
  290. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js.map +1 -0
  291. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_GreaterThanEqual.d.ts +0 -0
  292. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.d.ts.map +1 -0
  293. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_GreaterThanEqual.js +2 -2
  294. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.js.map +1 -0
  295. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_In.d.ts +0 -0
  296. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.d.ts.map +1 -0
  297. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_In.js +8 -8
  298. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.js.map +1 -0
  299. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_IsEmpty.d.ts +0 -0
  300. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.d.ts.map +1 -0
  301. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_IsEmpty.js +3 -3
  302. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js.map +1 -0
  303. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_LessThan.d.ts +0 -0
  304. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.d.ts.map +1 -0
  305. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_LessThan.js +8 -9
  306. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js.map +1 -0
  307. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_LessThanEqual.d.ts +0 -0
  308. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.d.ts.map +1 -0
  309. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_LessThanEqual.js +2 -2
  310. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.js.map +1 -0
  311. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_StartWith.d.ts +0 -0
  312. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.d.ts.map +1 -0
  313. package/lib/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_StartWith.js +7 -8
  314. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js.map +1 -0
  315. package/lib/stores/filter/QueryBuilderFilterOperator.d.ts +27 -0
  316. package/lib/stores/filter/QueryBuilderFilterOperator.d.ts.map +1 -0
  317. package/lib/stores/filter/QueryBuilderFilterOperator.js +20 -0
  318. package/lib/stores/filter/QueryBuilderFilterOperator.js.map +1 -0
  319. package/lib/stores/filter/QueryBuilderFilterOperatorLoader.d.ts +18 -0
  320. package/lib/stores/filter/QueryBuilderFilterOperatorLoader.d.ts.map +1 -0
  321. package/lib/stores/filter/QueryBuilderFilterOperatorLoader.js +44 -0
  322. package/lib/stores/filter/QueryBuilderFilterOperatorLoader.js.map +1 -0
  323. package/lib/stores/{QueryBuilderFilterState.d.ts → filter/QueryBuilderFilterState.d.ts} +7 -16
  324. package/lib/stores/filter/QueryBuilderFilterState.d.ts.map +1 -0
  325. package/lib/stores/{QueryBuilderFilterState.js → filter/QueryBuilderFilterState.js} +9 -70
  326. package/lib/stores/filter/QueryBuilderFilterState.js.map +1 -0
  327. package/lib/stores/filter/QueryBuilderValueSpecificationBuilder.d.ts +19 -0
  328. package/lib/stores/filter/QueryBuilderValueSpecificationBuilder.d.ts.map +1 -0
  329. package/lib/stores/filter/QueryBuilderValueSpecificationBuilder.js +78 -0
  330. package/lib/stores/filter/QueryBuilderValueSpecificationBuilder.js.map +1 -0
  331. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperatorHelper.d.ts +2 -1
  332. package/lib/stores/filter/operators/QueryBuilderFilterOperatorHelper.d.ts.map +1 -0
  333. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperatorHelper.js +3 -3
  334. package/lib/stores/filter/operators/QueryBuilderFilterOperatorHelper.js.map +1 -0
  335. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_Contain.d.ts +2 -1
  336. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.d.ts.map +1 -0
  337. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_Contain.js +3 -4
  338. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js.map +1 -0
  339. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_EndWith.d.ts +2 -1
  340. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.d.ts.map +1 -0
  341. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_EndWith.js +3 -4
  342. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.js.map +1 -0
  343. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_Equal.d.ts +2 -1
  344. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.d.ts.map +1 -0
  345. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_Equal.js +4 -5
  346. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.js.map +1 -0
  347. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_GreaterThan.d.ts +2 -1
  348. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.d.ts.map +1 -0
  349. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_GreaterThan.js +4 -5
  350. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.js.map +1 -0
  351. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_GreaterThanEqual.d.ts +2 -1
  352. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts.map +1 -0
  353. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_GreaterThanEqual.js +4 -5
  354. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js.map +1 -0
  355. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_In.d.ts +2 -1
  356. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.d.ts.map +1 -0
  357. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_In.js +3 -3
  358. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.js.map +1 -0
  359. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_IsEmpty.d.ts +2 -1
  360. package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.d.ts.map +1 -0
  361. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_IsEmpty.js +3 -3
  362. package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.js.map +1 -0
  363. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_LessThan.d.ts +2 -1
  364. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.d.ts.map +1 -0
  365. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_LessThan.js +4 -5
  366. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.js.map +1 -0
  367. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_LessThanEqual.d.ts +2 -1
  368. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.d.ts.map +1 -0
  369. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_LessThanEqual.js +4 -5
  370. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.js.map +1 -0
  371. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_StartWith.d.ts +2 -1
  372. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.d.ts.map +1 -0
  373. package/lib/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_StartWith.js +3 -4
  374. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js.map +1 -0
  375. package/package.json +3 -4
  376. package/src/application/LegendQueryApplicationConfig.ts +1 -6
  377. package/src/components/LegendQueryApplication.tsx +10 -27
  378. package/src/components/LegendQueryBaseStoreProvider.tsx +0 -3
  379. package/src/components/QueryBuilder.tsx +19 -12
  380. package/src/components/QueryBuilderParameterPanel.tsx +1 -0
  381. package/src/components/QueryBuilderPropertyExpressionEditor.tsx +2 -2
  382. package/src/components/QueryBuilderResultPanel.tsx +10 -7
  383. package/src/components/QueryBuilderSetupPanel.tsx +1 -1
  384. package/src/components/QueryBuilderTextEditor.tsx +1 -1
  385. package/src/components/QueryEditorComponentTestUtils.tsx +5 -17
  386. package/src/components/QueryEditorStoreProvider.tsx +0 -7
  387. package/src/components/QuerySetupStoreProvider.tsx +0 -3
  388. package/src/components/{QueryBuilderExplorerPanel.tsx → explorer/QueryBuilderExplorerPanel.tsx} +18 -92
  389. package/src/components/{QueryBuilderFunctionsExplorerPanel.tsx → explorer/QueryBuilderFunctionsExplorerPanel.tsx} +2 -2
  390. package/src/components/{QueryBuilderMilestoneEditor.tsx → explorer/QueryBuilderMilestoneEditor.tsx} +4 -4
  391. package/src/components/{QueryBuilderPropertySearchPanel.tsx → explorer/QueryBuilderPropertySearchPanel.tsx} +6 -6
  392. package/src/components/{QueryBuilderFetchStructurePanel.tsx → fetch-structure/QueryBuilderFetchStructurePanel.tsx} +23 -14
  393. package/src/components/{QueryBuilderGraphFetchTreePanel.tsx → fetch-structure/QueryBuilderGraphFetchTreePanel.tsx} +6 -6
  394. package/src/components/{QueryBuilderPostFilterPanel.tsx → fetch-structure/QueryBuilderPostFilterPanel.tsx} +26 -30
  395. package/src/components/{QueryBuilderProjectionPanel.tsx → fetch-structure/QueryBuilderProjectionPanel.tsx} +13 -15
  396. package/src/components/{QueryBuilderResultModifierPanel.tsx → fetch-structure/QueryBuilderResultModifierPanel.tsx} +16 -8
  397. package/src/components/{QueryBuilderFilterPanel.tsx → filter/QueryBuilderFilterPanel.tsx} +12 -19
  398. package/src/components/{QueryBuilderLambdaEditor.tsx → shared/QueryBuilderLambdaEditor.tsx} +1 -1
  399. package/src/components/{QueryBuilderPanelIssueCountBadge.tsx → shared/QueryBuilderPanelIssueCountBadge.tsx} +0 -0
  400. package/src/components/{QueryBuilderPropertyInfoTooltip.tsx → shared/QueryBuilderPropertyInfoTooltip.tsx} +0 -0
  401. package/src/index.ts +0 -4
  402. package/src/stores/LegendQueryBaseStore.ts +1 -14
  403. package/src/stores/QueryBuilderGroupOperationHelper.ts +54 -0
  404. package/src/stores/QueryBuilderPreviewDataHelper.ts +17 -21
  405. package/src/stores/QueryBuilderPropertyEditorState.ts +6 -3
  406. package/src/stores/QueryBuilderResultState.ts +1 -1
  407. package/src/stores/QueryBuilderState.ts +22 -53
  408. package/src/stores/QueryBuilderTestUtils.ts +4 -1
  409. package/src/stores/QueryBuilderTypeaheadHelper.ts +31 -32
  410. package/src/stores/{QueryBuilderLambdaBuilder.ts → QueryBuilderValueSpecificationBuilder.ts} +331 -347
  411. package/src/stores/{QueryBuilderOperatorsHelper.ts → QueryBuilderValueSpecificationHelper.ts} +66 -47
  412. package/src/stores/{QueryBuilderLambdaProcessor.ts → QueryBuilderValueSpecificationProcessor.ts} +20 -13
  413. package/src/stores/QueryEditorStore.ts +3 -10
  414. package/src/stores/QueryEditorStoreTestUtils.ts +0 -1
  415. package/src/stores/QuerySetupStore.ts +0 -4
  416. package/src/stores/{QueryBuilderExplorerState.ts → explorer/QueryBuilderExplorerState.ts} +138 -3
  417. package/src/stores/{QueryBuilderPropertySearchPanelState.ts → explorer/QueryBuilderPropertySearchPanelState.ts} +2 -2
  418. package/src/stores/{QueryFunctionsExplorerState.ts → explorer/QueryFunctionsExplorerState.ts} +1 -1
  419. package/src/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.ts +34 -0
  420. package/src/stores/fetch-structure/QueryBuilderFetchStructureState.ts +173 -0
  421. package/src/stores/{QueryBuilderGraphFetchTreeState.ts → fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.ts} +29 -25
  422. package/src/stores/{QueryBuilderGraphFetchTreeUtil.ts → fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.ts} +2 -2
  423. package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.ts +90 -0
  424. package/src/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.ts +329 -0
  425. package/src/stores/fetch-structure/projection/QueryBuilderProjectionState.ts +390 -0
  426. package/src/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.ts +170 -0
  427. package/src/stores/fetch-structure/projection/QueryResultSetModifierState.ts +95 -0
  428. package/src/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperator.ts +79 -0
  429. package/src/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperatorLoader.ts +41 -0
  430. package/src/stores/{QueryBuilderAggregationState.ts → fetch-structure/projection/aggregation/QueryBuilderAggregationState.ts} +6 -69
  431. package/src/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperatorHelper.ts +3 -5
  432. package/src/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_Average.ts +4 -6
  433. package/src/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_Count.ts +4 -6
  434. package/src/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_Distinct.ts +4 -6
  435. package/src/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_DistinctCount.ts +4 -6
  436. package/src/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_JoinString.ts +4 -6
  437. package/src/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_Max.ts +4 -6
  438. package/src/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_Min.ts +4 -6
  439. package/src/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_StdDev_Population.ts +4 -6
  440. package/src/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_StdDev_Sample.ts +4 -6
  441. package/src/stores/{aggregateOperators → fetch-structure/projection/aggregation/operators}/QueryBuilderAggregateOperator_Sum.ts +4 -6
  442. package/src/stores/{QueryBuilderPostFilterOperator.ts → fetch-structure/projection/post-filter/QueryBuilderPostFilterOperator.ts} +0 -0
  443. package/src/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterOperatorLoader.ts +65 -0
  444. package/src/stores/{QueryBuilderPostFilterState.ts → fetch-structure/projection/post-filter/QueryBuilderPostFilterState.ts} +35 -28
  445. package/src/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.ts +131 -0
  446. package/src/stores/{QueryBuilderPostFilterProcessor.ts → fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationProcessor.ts} +13 -11
  447. package/src/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperatorHelper.ts +5 -5
  448. package/src/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_Contain.ts +12 -12
  449. package/src/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_EndWith.ts +12 -12
  450. package/src/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_Equal.ts +17 -17
  451. package/src/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_GreaterThan.ts +12 -12
  452. package/src/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_GreaterThanEqual.ts +2 -2
  453. package/src/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_In.ts +12 -12
  454. package/src/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_IsEmpty.ts +3 -3
  455. package/src/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_LessThan.ts +12 -12
  456. package/src/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_LessThanEqual.ts +2 -2
  457. package/src/stores/{postFilterOperators → fetch-structure/projection/post-filter/operators}/QueryBuilderPostFilterOperator_StartWith.ts +12 -12
  458. package/src/stores/filter/QueryBuilderFilterOperator.ts +52 -0
  459. package/src/stores/filter/QueryBuilderFilterOperatorLoader.ts +65 -0
  460. package/src/stores/{QueryBuilderFilterState.ts → filter/QueryBuilderFilterState.ts} +26 -148
  461. package/src/stores/filter/QueryBuilderValueSpecificationBuilder.ts +120 -0
  462. package/src/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperatorHelper.ts +4 -4
  463. package/src/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_Contain.ts +8 -8
  464. package/src/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_EndWith.ts +8 -8
  465. package/src/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_Equal.ts +10 -10
  466. package/src/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_GreaterThan.ts +9 -9
  467. package/src/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_GreaterThanEqual.ts +9 -9
  468. package/src/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_In.ts +7 -7
  469. package/src/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_IsEmpty.ts +6 -6
  470. package/src/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_LessThan.ts +9 -9
  471. package/src/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_LessThanEqual.ts +9 -9
  472. package/src/stores/{filterOperators → filter/operators}/QueryBuilderFilterOperator_StartWith.ts +7 -7
  473. package/tsconfig.json +75 -65
  474. package/lib/components/QueryBuilderExplorerPanel.d.ts.map +0 -1
  475. package/lib/components/QueryBuilderExplorerPanel.js.map +0 -1
  476. package/lib/components/QueryBuilderFetchStructurePanel.d.ts.map +0 -1
  477. package/lib/components/QueryBuilderFetchStructurePanel.js.map +0 -1
  478. package/lib/components/QueryBuilderFilterPanel.d.ts.map +0 -1
  479. package/lib/components/QueryBuilderFilterPanel.js.map +0 -1
  480. package/lib/components/QueryBuilderFunctionsExplorerPanel.d.ts.map +0 -1
  481. package/lib/components/QueryBuilderFunctionsExplorerPanel.js.map +0 -1
  482. package/lib/components/QueryBuilderGraphFetchTreePanel.d.ts.map +0 -1
  483. package/lib/components/QueryBuilderGraphFetchTreePanel.js.map +0 -1
  484. package/lib/components/QueryBuilderLambdaEditor.d.ts.map +0 -1
  485. package/lib/components/QueryBuilderLambdaEditor.js.map +0 -1
  486. package/lib/components/QueryBuilderMilestoneEditor.d.ts.map +0 -1
  487. package/lib/components/QueryBuilderMilestoneEditor.js.map +0 -1
  488. package/lib/components/QueryBuilderPanelIssueCountBadge.d.ts.map +0 -1
  489. package/lib/components/QueryBuilderPanelIssueCountBadge.js.map +0 -1
  490. package/lib/components/QueryBuilderPostFilterPanel.d.ts.map +0 -1
  491. package/lib/components/QueryBuilderPostFilterPanel.js.map +0 -1
  492. package/lib/components/QueryBuilderProjectionPanel.d.ts.map +0 -1
  493. package/lib/components/QueryBuilderProjectionPanel.js.map +0 -1
  494. package/lib/components/QueryBuilderPropertyInfoTooltip.d.ts.map +0 -1
  495. package/lib/components/QueryBuilderPropertyInfoTooltip.js.map +0 -1
  496. package/lib/components/QueryBuilderPropertySearchPanel.d.ts.map +0 -1
  497. package/lib/components/QueryBuilderPropertySearchPanel.js.map +0 -1
  498. package/lib/components/QueryBuilderResultModifierPanel.d.ts.map +0 -1
  499. package/lib/components/QueryBuilderResultModifierPanel.js.map +0 -1
  500. package/lib/stores/QueryBuilderAggregationState.d.ts.map +0 -1
  501. package/lib/stores/QueryBuilderAggregationState.js.map +0 -1
  502. package/lib/stores/QueryBuilderExplorerState.d.ts.map +0 -1
  503. package/lib/stores/QueryBuilderExplorerState.js.map +0 -1
  504. package/lib/stores/QueryBuilderFetchStructureState.d.ts.map +0 -1
  505. package/lib/stores/QueryBuilderFetchStructureState.js +0 -58
  506. package/lib/stores/QueryBuilderFetchStructureState.js.map +0 -1
  507. package/lib/stores/QueryBuilderFilterState.d.ts.map +0 -1
  508. package/lib/stores/QueryBuilderFilterState.js.map +0 -1
  509. package/lib/stores/QueryBuilderGraphFetchTreeState.d.ts.map +0 -1
  510. package/lib/stores/QueryBuilderGraphFetchTreeState.js.map +0 -1
  511. package/lib/stores/QueryBuilderGraphFetchTreeUtil.d.ts.map +0 -1
  512. package/lib/stores/QueryBuilderGraphFetchTreeUtil.js.map +0 -1
  513. package/lib/stores/QueryBuilderLambdaBuilder.d.ts.map +0 -1
  514. package/lib/stores/QueryBuilderLambdaBuilder.js.map +0 -1
  515. package/lib/stores/QueryBuilderLambdaProcessor.d.ts.map +0 -1
  516. package/lib/stores/QueryBuilderLambdaProcessor.js.map +0 -1
  517. package/lib/stores/QueryBuilderOperatorLoader.d.ts +0 -47
  518. package/lib/stores/QueryBuilderOperatorLoader.d.ts.map +0 -1
  519. package/lib/stores/QueryBuilderOperatorLoader.js +0 -94
  520. package/lib/stores/QueryBuilderOperatorLoader.js.map +0 -1
  521. package/lib/stores/QueryBuilderOperatorsHelper.d.ts.map +0 -1
  522. package/lib/stores/QueryBuilderOperatorsHelper.js.map +0 -1
  523. package/lib/stores/QueryBuilderPostFilterOperator.d.ts.map +0 -1
  524. package/lib/stores/QueryBuilderPostFilterOperator.js.map +0 -1
  525. package/lib/stores/QueryBuilderPostFilterProcessor.d.ts.map +0 -1
  526. package/lib/stores/QueryBuilderPostFilterProcessor.js.map +0 -1
  527. package/lib/stores/QueryBuilderPostFilterState.d.ts.map +0 -1
  528. package/lib/stores/QueryBuilderPostFilterState.js.map +0 -1
  529. package/lib/stores/QueryBuilderProjectionState.d.ts.map +0 -1
  530. package/lib/stores/QueryBuilderProjectionState.js +0 -416
  531. package/lib/stores/QueryBuilderProjectionState.js.map +0 -1
  532. package/lib/stores/QueryBuilderPropertySearchPanelState.d.ts.map +0 -1
  533. package/lib/stores/QueryBuilderPropertySearchPanelState.js.map +0 -1
  534. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.d.ts +0 -19
  535. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.d.ts.map +0 -1
  536. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js +0 -50
  537. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js.map +0 -1
  538. package/lib/stores/QueryFunctionsExplorerState.d.ts.map +0 -1
  539. package/lib/stores/QueryFunctionsExplorerState.js.map +0 -1
  540. package/lib/stores/QueryResultSetModifierState.d.ts.map +0 -1
  541. package/lib/stores/QueryResultSetModifierState.js +0 -165
  542. package/lib/stores/QueryResultSetModifierState.js.map +0 -1
  543. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperatorHelper.d.ts.map +0 -1
  544. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperatorHelper.js.map +0 -1
  545. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Average.d.ts.map +0 -1
  546. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Average.js.map +0 -1
  547. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Count.d.ts.map +0 -1
  548. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Count.js.map +0 -1
  549. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Distinct.d.ts.map +0 -1
  550. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Distinct.js.map +0 -1
  551. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_DistinctCount.d.ts.map +0 -1
  552. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_DistinctCount.js.map +0 -1
  553. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_JoinString.d.ts.map +0 -1
  554. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_JoinString.js.map +0 -1
  555. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Max.d.ts.map +0 -1
  556. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Max.js.map +0 -1
  557. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Min.d.ts.map +0 -1
  558. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Min.js.map +0 -1
  559. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_StdDev_Population.d.ts.map +0 -1
  560. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_StdDev_Population.js.map +0 -1
  561. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_StdDev_Sample.d.ts.map +0 -1
  562. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_StdDev_Sample.js.map +0 -1
  563. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Sum.d.ts.map +0 -1
  564. package/lib/stores/aggregateOperators/QueryBuilderAggregateOperator_Sum.js.map +0 -1
  565. package/lib/stores/filterOperators/QueryBuilderFilterOperatorHelper.d.ts.map +0 -1
  566. package/lib/stores/filterOperators/QueryBuilderFilterOperatorHelper.js.map +0 -1
  567. package/lib/stores/filterOperators/QueryBuilderFilterOperator_Contain.d.ts.map +0 -1
  568. package/lib/stores/filterOperators/QueryBuilderFilterOperator_Contain.js.map +0 -1
  569. package/lib/stores/filterOperators/QueryBuilderFilterOperator_EndWith.d.ts.map +0 -1
  570. package/lib/stores/filterOperators/QueryBuilderFilterOperator_EndWith.js.map +0 -1
  571. package/lib/stores/filterOperators/QueryBuilderFilterOperator_Equal.d.ts.map +0 -1
  572. package/lib/stores/filterOperators/QueryBuilderFilterOperator_Equal.js.map +0 -1
  573. package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.d.ts.map +0 -1
  574. package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThan.js.map +0 -1
  575. package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts.map +0 -1
  576. package/lib/stores/filterOperators/QueryBuilderFilterOperator_GreaterThanEqual.js.map +0 -1
  577. package/lib/stores/filterOperators/QueryBuilderFilterOperator_In.d.ts.map +0 -1
  578. package/lib/stores/filterOperators/QueryBuilderFilterOperator_In.js.map +0 -1
  579. package/lib/stores/filterOperators/QueryBuilderFilterOperator_IsEmpty.d.ts.map +0 -1
  580. package/lib/stores/filterOperators/QueryBuilderFilterOperator_IsEmpty.js.map +0 -1
  581. package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThan.d.ts.map +0 -1
  582. package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThan.js.map +0 -1
  583. package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.d.ts.map +0 -1
  584. package/lib/stores/filterOperators/QueryBuilderFilterOperator_LessThanEqual.js.map +0 -1
  585. package/lib/stores/filterOperators/QueryBuilderFilterOperator_StartWith.d.ts.map +0 -1
  586. package/lib/stores/filterOperators/QueryBuilderFilterOperator_StartWith.js.map +0 -1
  587. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperatorHelper.d.ts.map +0 -1
  588. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperatorHelper.js.map +0 -1
  589. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Contain.d.ts.map +0 -1
  590. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Contain.js.map +0 -1
  591. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_EndWith.d.ts.map +0 -1
  592. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_EndWith.js.map +0 -1
  593. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.d.ts.map +0 -1
  594. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_Equal.js.map +0 -1
  595. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.d.ts.map +0 -1
  596. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThan.js.map +0 -1
  597. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThanEqual.d.ts.map +0 -1
  598. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_GreaterThanEqual.js.map +0 -1
  599. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_In.d.ts.map +0 -1
  600. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_In.js.map +0 -1
  601. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_IsEmpty.d.ts.map +0 -1
  602. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_IsEmpty.js.map +0 -1
  603. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.d.ts.map +0 -1
  604. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThan.js.map +0 -1
  605. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThanEqual.d.ts.map +0 -1
  606. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_LessThanEqual.js.map +0 -1
  607. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_StartWith.d.ts.map +0 -1
  608. package/lib/stores/postFilterOperators/QueryBuilderPostFilterOperator_StartWith.js.map +0 -1
  609. package/src/stores/QueryBuilderFetchStructureState.ts +0 -75
  610. package/src/stores/QueryBuilderOperatorLoader.ts +0 -133
  611. package/src/stores/QueryBuilderProjectionState.ts +0 -783
  612. package/src/stores/QueryBuilderValueSpecificationBuilderHelper.ts +0 -78
  613. package/src/stores/QueryResultSetModifierState.ts +0 -307
@@ -0,0 +1,173 @@
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 { action, makeAutoObservable } from 'mobx';
18
+ import type { QueryBuilderState } from '../QueryBuilderState.js';
19
+ import { QueryBuilderGraphFetchTreeState } from './graph-fetch/QueryBuilderGraphFetchTreeState.js';
20
+ import { QueryBuilderProjectionState } from './projection/QueryBuilderProjectionState.js';
21
+ import {
22
+ buildPropertyExpressionFromExplorerTreeNodeData,
23
+ type QueryBuilderExplorerTreeNodeData,
24
+ QueryBuilderExplorerTreePropertyNodeData,
25
+ } from '../explorer/QueryBuilderExplorerState.js';
26
+ import { Class } from '@finos/legend-graph';
27
+ import { filterByType } from '@finos/legend-shared';
28
+ import { addQueryBuilderPropertyNode } from './graph-fetch/QueryBuilderGraphFetchTreeUtil.js';
29
+ import { QueryBuilderSimpleProjectionColumnState } from './projection/QueryBuilderProjectionColumnState.js';
30
+
31
+ export enum FETCH_STRUCTURE_MODE {
32
+ PROJECTION = 'PROJECTION',
33
+ GRAPH_FETCH = 'GRAPH_FETCH',
34
+ }
35
+
36
+ export class QueryBuilderFetchStructureState {
37
+ queryBuilderState: QueryBuilderState;
38
+ /**
39
+ * TODO: refactor this so we could reduce this to
40
+ * `implementationState: QueryBuilderFetchStructureImplementationState`
41
+ * so we don't have graph fetch and projection at the same time
42
+ *
43
+ * TODO?: perhaps it would eventually make sense to default to
44
+ * graph-fetch since `getAll()` naturally works for graph-fetch case
45
+ * and graph-fetch allows somewhat an empty tree
46
+ */
47
+ fetchStructureMode = FETCH_STRUCTURE_MODE.PROJECTION;
48
+ projectionState: QueryBuilderProjectionState;
49
+ graphFetchTreeState: QueryBuilderGraphFetchTreeState;
50
+
51
+ constructor(queryBuilderState: QueryBuilderState) {
52
+ makeAutoObservable(this, {
53
+ queryBuilderState: false,
54
+ setFetchStructureMode: action,
55
+ });
56
+
57
+ this.queryBuilderState = queryBuilderState;
58
+ // TODO: we probably should modularize this a bit better
59
+ // See https://github.com/finos/legend-studio/issues/731
60
+ this.projectionState = new QueryBuilderProjectionState(
61
+ queryBuilderState,
62
+ this,
63
+ );
64
+ this.graphFetchTreeState = new QueryBuilderGraphFetchTreeState(
65
+ queryBuilderState,
66
+ this,
67
+ );
68
+ }
69
+
70
+ setFetchStructureMode(val: FETCH_STRUCTURE_MODE): void {
71
+ this.fetchStructureMode = val;
72
+ }
73
+
74
+ fetchProperty(node: QueryBuilderExplorerTreeNodeData): void {
75
+ if (
76
+ node instanceof QueryBuilderExplorerTreePropertyNodeData &&
77
+ !(node.type instanceof Class)
78
+ ) {
79
+ switch (this.fetchStructureMode) {
80
+ case FETCH_STRUCTURE_MODE.GRAPH_FETCH: {
81
+ this.graphFetchTreeState.addProperty(node);
82
+ return;
83
+ }
84
+ case FETCH_STRUCTURE_MODE.PROJECTION: {
85
+ this.projectionState.addColumn(
86
+ new QueryBuilderSimpleProjectionColumnState(
87
+ this.projectionState,
88
+ buildPropertyExpressionFromExplorerTreeNodeData(
89
+ this.queryBuilderState.explorerState.nonNullableTreeData,
90
+ node,
91
+ this.queryBuilderState.graphManagerState.graph,
92
+ this.queryBuilderState.explorerState.propertySearchPanelState
93
+ .allMappedPropertyNodes,
94
+ ),
95
+ this.queryBuilderState.explorerState.humanizePropertyName,
96
+ ),
97
+ );
98
+ return;
99
+ }
100
+ default:
101
+ return;
102
+ }
103
+ }
104
+ }
105
+
106
+ fetchNodeChildrenProperties(node: QueryBuilderExplorerTreeNodeData): void {
107
+ if (node.type instanceof Class) {
108
+ // NOTE: here we require the node to already been expanded so the child nodes are generated
109
+ // we don't allow adding unopened node. Maybe if it helps, we can show a warning.
110
+ const nodesToAdd = node.childrenIds
111
+ .map((childId) =>
112
+ this.queryBuilderState.explorerState.nonNullableTreeData.nodes.get(
113
+ childId,
114
+ ),
115
+ )
116
+ .filter(filterByType(QueryBuilderExplorerTreePropertyNodeData))
117
+ .filter(
118
+ (childNode) =>
119
+ !(childNode.type instanceof Class) && childNode.mappingData.mapped,
120
+ );
121
+
122
+ switch (this.fetchStructureMode) {
123
+ case FETCH_STRUCTURE_MODE.GRAPH_FETCH: {
124
+ const graphFetchTreeData = this.graphFetchTreeState.treeData;
125
+ if (graphFetchTreeData) {
126
+ nodesToAdd.forEach((nodeToAdd) =>
127
+ addQueryBuilderPropertyNode(
128
+ graphFetchTreeData,
129
+ this.queryBuilderState.explorerState.nonNullableTreeData,
130
+ nodeToAdd,
131
+ this.queryBuilderState,
132
+ ),
133
+ );
134
+ this.graphFetchTreeState.setGraphFetchTree({
135
+ ...graphFetchTreeData,
136
+ });
137
+ }
138
+ return;
139
+ }
140
+ case FETCH_STRUCTURE_MODE.PROJECTION: {
141
+ nodesToAdd.forEach((nodeToAdd) => {
142
+ this.projectionState.addColumn(
143
+ new QueryBuilderSimpleProjectionColumnState(
144
+ this.projectionState,
145
+ buildPropertyExpressionFromExplorerTreeNodeData(
146
+ this.queryBuilderState.explorerState.nonNullableTreeData,
147
+ nodeToAdd,
148
+ this.queryBuilderState.graphManagerState.graph,
149
+ this.queryBuilderState.explorerState.propertySearchPanelState
150
+ .allMappedPropertyNodes,
151
+ ),
152
+ this.queryBuilderState.explorerState.humanizePropertyName,
153
+ ),
154
+ );
155
+ });
156
+ return;
157
+ }
158
+ default:
159
+ return;
160
+ }
161
+ }
162
+ }
163
+
164
+ get validationIssues(): string[] | undefined {
165
+ switch (this.fetchStructureMode) {
166
+ case FETCH_STRUCTURE_MODE.PROJECTION:
167
+ return this.projectionState.validationIssues;
168
+ case FETCH_STRUCTURE_MODE.GRAPH_FETCH:
169
+ default:
170
+ return undefined;
171
+ }
172
+ }
173
+ }
@@ -14,8 +14,8 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import type { QueryBuilderState } from './QueryBuilderState.js';
18
- import { makeAutoObservable, action } from 'mobx';
17
+ import type { QueryBuilderState } from '../../QueryBuilderState.js';
18
+ import { action, makeObservable, observable } from 'mobx';
19
19
  import {
20
20
  PackageableElementExplicitReference,
21
21
  RootGraphFetchTree,
@@ -25,11 +25,12 @@ import {
25
25
  addQueryBuilderPropertyNode,
26
26
  buildGraphFetchTreeData,
27
27
  } from './QueryBuilderGraphFetchTreeUtil.js';
28
- import type { QueryBuilderExplorerTreePropertyNodeData } from './QueryBuilderExplorerState.js';
28
+ import type { QueryBuilderExplorerTreePropertyNodeData } from '../../explorer/QueryBuilderExplorerState.js';
29
29
  import { assertNonNullable } from '@finos/legend-shared';
30
+ import { QueryBuilderFetchStructureImplementationState } from '../QueryBuilderFetchStructureImplementationState.js';
31
+ import type { QueryBuilderFetchStructureState } from '../QueryBuilderFetchStructureState.js';
30
32
 
31
- export class QueryBuilderGraphFetchTreeState {
32
- queryBuilderState: QueryBuilderState;
33
+ export class QueryBuilderGraphFetchTreeState extends QueryBuilderFetchStructureImplementationState {
33
34
  treeData?: QueryBuilderGraphFetchTreeData | undefined;
34
35
  /**
35
36
  * If set to `true` we will use `graphFetchChecked` function instead of `graphFetch`.
@@ -38,14 +39,18 @@ export class QueryBuilderGraphFetchTreeState {
38
39
  */
39
40
  isChecked = false;
40
41
 
41
- constructor(queryBuilderState: QueryBuilderState) {
42
- makeAutoObservable(this, {
43
- queryBuilderState: false,
42
+ constructor(
43
+ queryBuilderState: QueryBuilderState,
44
+ fetchStructureState: QueryBuilderFetchStructureState,
45
+ ) {
46
+ super(queryBuilderState, fetchStructureState);
47
+
48
+ makeObservable(this, {
49
+ treeData: observable,
50
+ isChecked: observable,
44
51
  setGraphFetchTree: action,
45
52
  setChecked: action,
46
53
  });
47
-
48
- this.queryBuilderState = queryBuilderState;
49
54
  }
50
55
 
51
56
  setGraphFetchTree(val: QueryBuilderGraphFetchTreeData | undefined): void {
@@ -56,23 +61,22 @@ export class QueryBuilderGraphFetchTreeState {
56
61
  this.isChecked = val;
57
62
  }
58
63
 
64
+ // TODO-BEFORE-PR: consider removing this
59
65
  initialize(tree?: RootGraphFetchTree): void {
60
- if (this.queryBuilderState.fetchStructureState.isGraphFetchMode()) {
61
- if (tree) {
62
- this.setGraphFetchTree(buildGraphFetchTreeData(tree));
63
- } else {
64
- const _class = this.queryBuilderState.querySetupState._class;
65
- if (_class) {
66
- this.setGraphFetchTree(
67
- buildGraphFetchTreeData(
68
- new RootGraphFetchTree(
69
- PackageableElementExplicitReference.create(_class),
70
- ),
66
+ if (tree) {
67
+ this.setGraphFetchTree(buildGraphFetchTreeData(tree));
68
+ } else {
69
+ const _class = this.queryBuilderState.querySetupState._class;
70
+ if (_class) {
71
+ this.setGraphFetchTree(
72
+ buildGraphFetchTreeData(
73
+ new RootGraphFetchTree(
74
+ PackageableElementExplicitReference.create(_class),
71
75
  ),
72
- );
73
- } else {
74
- this.setGraphFetchTree(undefined);
75
- }
76
+ ),
77
+ );
78
+ } else {
79
+ this.setGraphFetchTree(undefined);
76
80
  }
77
81
  }
78
82
  }
@@ -30,8 +30,8 @@ import {
30
30
  type QueryBuilderExplorerTreeNodeData,
31
31
  QueryBuilderExplorerTreePropertyNodeData,
32
32
  QueryBuilderExplorerTreeSubTypeNodeData,
33
- } from './QueryBuilderExplorerState.js';
34
- import type { QueryBuilderState } from './QueryBuilderState.js';
33
+ } from '../../explorer/QueryBuilderExplorerState.js';
34
+ import type { QueryBuilderState } from '../../QueryBuilderState.js';
35
35
  import {
36
36
  graphFetchTree_addSubTree,
37
37
  graphFetchTree_removeSubTree,
@@ -0,0 +1,90 @@
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
+ extractElementNameFromPath,
19
+ GenericType,
20
+ GenericTypeExplicitReference,
21
+ matchFunctionName,
22
+ PrimitiveInstanceValue,
23
+ PRIMITIVE_TYPE,
24
+ SimpleFunctionExpression,
25
+ TYPICAL_MULTIPLICITY_TYPE,
26
+ type ValueSpecification,
27
+ type LambdaFunction,
28
+ } from '@finos/legend-graph';
29
+ import { guaranteeType } from '@finos/legend-shared';
30
+ import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../QueryBuilder_Const.js';
31
+ import type { QueryBuilderState } from '../../QueryBuilderState.js';
32
+
33
+ export const appendTakeLimit = (
34
+ queryBuilderState: QueryBuilderState,
35
+ lambda: LambdaFunction,
36
+ previewLimit?: number | undefined,
37
+ ): LambdaFunction => {
38
+ if (!previewLimit) {
39
+ return lambda;
40
+ }
41
+ const multiplicityOne =
42
+ queryBuilderState.graphManagerState.graph.getTypicalMultiplicity(
43
+ TYPICAL_MULTIPLICITY_TYPE.ONE,
44
+ );
45
+ if (lambda.expressionSequence.length === 1) {
46
+ const func = lambda.expressionSequence[0];
47
+ if (func instanceof SimpleFunctionExpression) {
48
+ if (
49
+ matchFunctionName(
50
+ func.functionName,
51
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.SERIALIZE,
52
+ )
53
+ ) {
54
+ const limit = new PrimitiveInstanceValue(
55
+ GenericTypeExplicitReference.create(
56
+ new GenericType(
57
+ queryBuilderState.graphManagerState.graph.getPrimitiveType(
58
+ PRIMITIVE_TYPE.INTEGER,
59
+ ),
60
+ ),
61
+ ),
62
+ multiplicityOne,
63
+ );
64
+ limit.values = [previewLimit];
65
+ const takeFunction = new SimpleFunctionExpression(
66
+ extractElementNameFromPath(QUERY_BUILDER_SUPPORTED_FUNCTIONS.TAKE),
67
+ multiplicityOne,
68
+ );
69
+
70
+ // NOTE: `take()` does not work on `graphFetch()` or `serialize()` so we will put it
71
+ // right next to `all()`
72
+ const serializeFunction = func;
73
+ const graphFetchFunc = guaranteeType(
74
+ serializeFunction.parametersValues[0],
75
+ SimpleFunctionExpression,
76
+ );
77
+ const getAllFunc = graphFetchFunc
78
+ .parametersValues[0] as ValueSpecification;
79
+ takeFunction.parametersValues[0] = getAllFunc;
80
+ takeFunction.parametersValues[1] = limit;
81
+ graphFetchFunc.parametersValues = [
82
+ takeFunction,
83
+ graphFetchFunc.parametersValues[1] as ValueSpecification,
84
+ ];
85
+ return lambda;
86
+ }
87
+ }
88
+ }
89
+ return lambda;
90
+ };
@@ -0,0 +1,329 @@
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 { action, makeObservable, observable, flow } from 'mobx';
18
+ import {
19
+ type GeneratorFn,
20
+ LogEvent,
21
+ assertErrorThrown,
22
+ uuid,
23
+ guaranteeNonNullable,
24
+ assertTrue,
25
+ assertNonEmptyString,
26
+ } from '@finos/legend-shared';
27
+ import {
28
+ type QueryBuilderExplorerTreePropertyNodeData,
29
+ buildPropertyExpressionFromExplorerTreeNodeData,
30
+ } from '../../explorer/QueryBuilderExplorerState.js';
31
+ import {
32
+ getPropertyChainName,
33
+ QueryBuilderPropertyExpressionState,
34
+ } from '../../QueryBuilderPropertyEditorState.js';
35
+ import type { QueryBuilderState } from '../../QueryBuilderState.js';
36
+ import {
37
+ type AbstractPropertyExpression,
38
+ type Type,
39
+ type VariableExpression,
40
+ PackageableElementExplicitReference,
41
+ GRAPH_MANAGER_EVENT,
42
+ PRIMITIVE_TYPE,
43
+ buildSourceInformationSourceId,
44
+ ParserError,
45
+ TYPICAL_MULTIPLICITY_TYPE,
46
+ RawVariableExpression,
47
+ Enumeration,
48
+ RawLambda,
49
+ stub_RawLambda,
50
+ } from '@finos/legend-graph';
51
+ import {
52
+ DEFAULT_LAMBDA_VARIABLE_NAME,
53
+ QUERY_BUILDER_SOURCE_ID_LABEL,
54
+ } from '../../../QueryBuilder_Const.js';
55
+ import { LambdaEditorState } from '@finos/legend-application';
56
+ import type { QueryBuilderProjectionState } from './QueryBuilderProjectionState.js';
57
+
58
+ export const QUERY_BUILDER_PROJECTION_COLUMN_DND_TYPE = 'PROJECTION_COLUMN';
59
+
60
+ export interface QueryBuilderProjectionColumnDragSource {
61
+ columnState: QueryBuilderProjectionColumnState;
62
+ }
63
+
64
+ export abstract class QueryBuilderProjectionColumnState {
65
+ readonly uuid = uuid();
66
+ projectionState: QueryBuilderProjectionState;
67
+ columnName: string;
68
+
69
+ constructor(
70
+ projectionState: QueryBuilderProjectionState,
71
+ columnName: string,
72
+ ) {
73
+ makeObservable(this, {
74
+ uuid: false,
75
+ projectionState: false,
76
+ columnName: observable,
77
+ setColumnName: action,
78
+ });
79
+
80
+ this.projectionState = projectionState;
81
+ this.columnName = columnName;
82
+ }
83
+
84
+ setColumnName(val: string): void {
85
+ this.columnName = val;
86
+ }
87
+
88
+ abstract getReturnType(): Type | undefined;
89
+ }
90
+
91
+ export class QueryBuilderSimpleProjectionColumnState extends QueryBuilderProjectionColumnState {
92
+ lambdaParameterName: string = DEFAULT_LAMBDA_VARIABLE_NAME;
93
+ propertyExpressionState: QueryBuilderPropertyExpressionState;
94
+
95
+ constructor(
96
+ projectionState: QueryBuilderProjectionState,
97
+ propertyExpression: AbstractPropertyExpression,
98
+ humanizePropertyName: boolean,
99
+ ) {
100
+ super(projectionState, '');
101
+
102
+ makeObservable(this, {
103
+ lambdaParameterName: observable,
104
+ propertyExpressionState: observable,
105
+ setLambdaParameterName: action,
106
+ changeProperty: action,
107
+ });
108
+
109
+ this.propertyExpressionState = new QueryBuilderPropertyExpressionState(
110
+ projectionState.queryBuilderState,
111
+ propertyExpression,
112
+ );
113
+ this.columnName = getPropertyChainName(
114
+ this.propertyExpressionState.propertyExpression,
115
+ humanizePropertyName,
116
+ );
117
+ }
118
+
119
+ setLambdaParameterName(val: string): void {
120
+ this.lambdaParameterName = val;
121
+ }
122
+
123
+ changeProperty(
124
+ node: QueryBuilderExplorerTreePropertyNodeData,
125
+ humanizePropertyName: boolean,
126
+ ): void {
127
+ this.propertyExpressionState = new QueryBuilderPropertyExpressionState(
128
+ this.projectionState.queryBuilderState,
129
+ buildPropertyExpressionFromExplorerTreeNodeData(
130
+ this.projectionState.queryBuilderState.explorerState
131
+ .nonNullableTreeData,
132
+ node,
133
+ this.projectionState.queryBuilderState.graphManagerState.graph,
134
+ this.projectionState.queryBuilderState.explorerState
135
+ .propertySearchPanelState.allMappedPropertyNodes,
136
+ ),
137
+ );
138
+ this.columnName = getPropertyChainName(
139
+ this.propertyExpressionState.propertyExpression,
140
+ humanizePropertyName,
141
+ );
142
+ }
143
+
144
+ override getReturnType(): Type | undefined {
145
+ return this.propertyExpressionState.propertyExpression.func.genericType
146
+ .value.rawType;
147
+ }
148
+ }
149
+
150
+ class QueryBuilderDerivationProjectionLambdaState extends LambdaEditorState {
151
+ queryBuilderState: QueryBuilderState;
152
+ derivationProjectionColumnState: QueryBuilderDerivationProjectionColumnState;
153
+ /**
154
+ * This is used to store the JSON string when viewing the query in JSON mode
155
+ * TODO: consider moving this to another state if we need to simplify the logic of text-mode
156
+ */
157
+ readOnlylambdaJson = '';
158
+
159
+ constructor(
160
+ queryBuilderState: QueryBuilderState,
161
+ derivationProjectionColumnState: QueryBuilderDerivationProjectionColumnState,
162
+ ) {
163
+ super('', '');
164
+ this.queryBuilderState = queryBuilderState;
165
+ this.derivationProjectionColumnState = derivationProjectionColumnState;
166
+ }
167
+
168
+ get lambdaId(): string {
169
+ return buildSourceInformationSourceId([
170
+ // TODO: to be reworked
171
+ // See https://github.com/finos/legend-studio/issues/1168
172
+ QUERY_BUILDER_SOURCE_ID_LABEL.QUERY_BUILDER,
173
+ QUERY_BUILDER_SOURCE_ID_LABEL.PROJECTION,
174
+ this.derivationProjectionColumnState.uuid,
175
+ ]);
176
+ }
177
+
178
+ setLambdaJson(lambdaJson: string): void {
179
+ this.readOnlylambdaJson = lambdaJson;
180
+ }
181
+
182
+ *convertLambdaGrammarStringToObject(): GeneratorFn<void> {
183
+ const emptyLambda = stub_RawLambda();
184
+ if (this.lambdaString) {
185
+ try {
186
+ const lambda =
187
+ (yield this.queryBuilderState.graphManagerState.graphManager.pureCodeToLambda(
188
+ this.fullLambdaString,
189
+ this.lambdaId,
190
+ )) as RawLambda;
191
+ this.setParserError(undefined);
192
+ this.derivationProjectionColumnState.setLambda(lambda);
193
+ } catch (error) {
194
+ assertErrorThrown(error);
195
+ if (error instanceof ParserError) {
196
+ this.setParserError(error);
197
+ }
198
+ this.queryBuilderState.applicationStore.log.error(
199
+ LogEvent.create(GRAPH_MANAGER_EVENT.PARSING_FAILURE),
200
+ error,
201
+ );
202
+ }
203
+ } else {
204
+ this.clearErrors();
205
+ this.derivationProjectionColumnState.setLambda(emptyLambda);
206
+ }
207
+ }
208
+
209
+ *convertLambdaObjectToGrammarString(pretty: boolean): GeneratorFn<void> {
210
+ if (this.derivationProjectionColumnState.lambda.body) {
211
+ try {
212
+ const lambdas = new Map<string, RawLambda>();
213
+ lambdas.set(
214
+ this.lambdaId,
215
+ new RawLambda(
216
+ this.derivationProjectionColumnState.lambda.parameters,
217
+ this.derivationProjectionColumnState.lambda.body,
218
+ ),
219
+ );
220
+ const isolatedLambdas =
221
+ (yield this.queryBuilderState.graphManagerState.graphManager.lambdasToPureCode(
222
+ lambdas,
223
+ pretty,
224
+ )) as Map<string, string>;
225
+ const grammarText = isolatedLambdas.get(this.lambdaId);
226
+ this.setLambdaString(
227
+ grammarText !== undefined
228
+ ? this.extractLambdaString(grammarText)
229
+ : '',
230
+ );
231
+ this.clearErrors();
232
+ } catch (error) {
233
+ assertErrorThrown(error);
234
+ this.queryBuilderState.applicationStore.log.error(
235
+ LogEvent.create(GRAPH_MANAGER_EVENT.PARSING_FAILURE),
236
+ error,
237
+ );
238
+ }
239
+ } else {
240
+ this.clearErrors();
241
+ this.setLambdaString('');
242
+ }
243
+ }
244
+ }
245
+
246
+ export class QueryBuilderDerivationProjectionColumnState extends QueryBuilderProjectionColumnState {
247
+ derivationLambdaEditorState: QueryBuilderDerivationProjectionLambdaState;
248
+ lambda: RawLambda;
249
+ returnType: Type | undefined;
250
+
251
+ constructor(projectionState: QueryBuilderProjectionState, lambda: RawLambda) {
252
+ super(projectionState, '(derivation)');
253
+
254
+ makeObservable(this, {
255
+ lambda: observable,
256
+ returnType: observable,
257
+ setLambda: action,
258
+ fetchDerivationLambdaReturnType: flow,
259
+ });
260
+
261
+ this.derivationLambdaEditorState =
262
+ new QueryBuilderDerivationProjectionLambdaState(
263
+ projectionState.queryBuilderState,
264
+ this,
265
+ );
266
+ this.lambda = lambda;
267
+ }
268
+
269
+ setLambda(val: RawLambda): void {
270
+ this.lambda = val;
271
+ }
272
+
273
+ setReturnType(val: Type | undefined): void {
274
+ this.returnType = val;
275
+ }
276
+
277
+ /**
278
+ * Fetches lambda return type for derivation column.
279
+ * Throws error if unable to fetch type or if type is not primitive or an enumeration
280
+ * as expected by a projection column
281
+ */
282
+ *fetchDerivationLambdaReturnType(): GeneratorFn<void> {
283
+ assertTrue(Array.isArray(this.lambda.parameters));
284
+ const projectionParameter = this.lambda.parameters as object[];
285
+ const graph =
286
+ this.projectionState.queryBuilderState.graphManagerState.graph;
287
+ const multiplicityOne = graph.getTypicalMultiplicity(
288
+ TYPICAL_MULTIPLICITY_TYPE.ONE,
289
+ );
290
+ assertTrue(projectionParameter.length === 1);
291
+ const variable = projectionParameter[0] as VariableExpression;
292
+ assertNonEmptyString(variable.name);
293
+ // assign variable to query class
294
+ const rawVariableExpression = new RawVariableExpression(
295
+ variable.name,
296
+ multiplicityOne,
297
+ PackageableElementExplicitReference.create(
298
+ guaranteeNonNullable(
299
+ this.projectionState.queryBuilderState.querySetupState._class,
300
+ ),
301
+ ),
302
+ );
303
+ const _rawVariableExpression =
304
+ this.projectionState.queryBuilderState.graphManagerState.graphManager.serializeRawValueSpecification(
305
+ rawVariableExpression,
306
+ );
307
+ const isolatedLambda = new RawLambda(
308
+ [_rawVariableExpression],
309
+ this.lambda.body,
310
+ );
311
+ const type =
312
+ (yield this.projectionState.queryBuilderState.graphManagerState.graphManager.getLambdaReturnType(
313
+ isolatedLambda,
314
+ graph,
315
+ )) as string;
316
+ const resolvedType = graph.getType(type);
317
+ assertTrue(
318
+ Object.values(PRIMITIVE_TYPE).includes(
319
+ resolvedType.path as PRIMITIVE_TYPE,
320
+ ) || resolvedType instanceof Enumeration,
321
+ 'projection column must have primitive return type',
322
+ );
323
+ this.setReturnType(resolvedType);
324
+ }
325
+
326
+ override getReturnType(): Type | undefined {
327
+ return this.returnType;
328
+ }
329
+ }