@finos/legend-query-builder 0.2.2 → 0.3.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 (295) hide show
  1. package/lib/components/QueryBuilder.d.ts +0 -1
  2. package/lib/components/QueryBuilder.d.ts.map +1 -1
  3. package/lib/components/QueryBuilder.js +42 -9
  4. package/lib/components/QueryBuilder.js.map +1 -1
  5. package/lib/components/QueryBuilderComponentTestUtils.d.ts.map +1 -1
  6. package/lib/components/QueryBuilderComponentTestUtils.js +2 -5
  7. package/lib/components/QueryBuilderComponentTestUtils.js.map +1 -1
  8. package/lib/components/QueryBuilderDiffPanel.d.ts +0 -1
  9. package/lib/components/QueryBuilderDiffPanel.d.ts.map +1 -1
  10. package/lib/components/QueryBuilderDiffPanel.js +2 -2
  11. package/lib/components/QueryBuilderDiffPanel.js.map +1 -1
  12. package/lib/components/QueryBuilderParametersPanel.d.ts +0 -1
  13. package/lib/components/QueryBuilderParametersPanel.d.ts.map +1 -1
  14. package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts +0 -1
  15. package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts.map +1 -1
  16. package/lib/components/QueryBuilderResultPanel.d.ts +0 -1
  17. package/lib/components/QueryBuilderResultPanel.d.ts.map +1 -1
  18. package/lib/components/QueryBuilderResultPanel.js +3 -3
  19. package/lib/components/QueryBuilderSideBar.d.ts +0 -1
  20. package/lib/components/QueryBuilderSideBar.d.ts.map +1 -1
  21. package/lib/components/QueryBuilderSideBar.js +2 -1
  22. package/lib/components/QueryBuilderSideBar.js.map +1 -1
  23. package/lib/components/QueryBuilderTextEditor.d.ts +0 -1
  24. package/lib/components/QueryBuilderTextEditor.d.ts.map +1 -1
  25. package/lib/components/QueryBuilderUnsupportedQueryEditor.d.ts +0 -1
  26. package/lib/components/QueryBuilderUnsupportedQueryEditor.d.ts.map +1 -1
  27. package/lib/components/QueryBuilder_TestID.d.ts +1 -0
  28. package/lib/components/QueryBuilder_TestID.d.ts.map +1 -1
  29. package/lib/components/QueryBuilder_TestID.js +1 -0
  30. package/lib/components/QueryBuilder_TestID.js.map +1 -1
  31. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.d.ts +0 -1
  32. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.d.ts.map +1 -1
  33. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js +5 -5
  34. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js.map +1 -1
  35. package/lib/components/explorer/QueryBuilderMilestoningEditor.d.ts +0 -1
  36. package/lib/components/explorer/QueryBuilderMilestoningEditor.d.ts.map +1 -1
  37. package/lib/components/explorer/QueryBuilderMilestoningEditor.js +2 -2
  38. package/lib/components/explorer/QueryBuilderMilestoningEditor.js.map +1 -1
  39. package/lib/components/explorer/QueryBuilderPropertySearchPanel.d.ts +0 -1
  40. package/lib/components/explorer/QueryBuilderPropertySearchPanel.d.ts.map +1 -1
  41. package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.d.ts +0 -1
  42. package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.d.ts.map +1 -1
  43. package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.d.ts +0 -1
  44. package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.d.ts.map +1 -1
  45. package/lib/components/fetch-structure/QueryBuilderOlapGroupByPanel.d.ts +22 -0
  46. package/lib/components/fetch-structure/QueryBuilderOlapGroupByPanel.d.ts.map +1 -0
  47. package/lib/components/fetch-structure/QueryBuilderOlapGroupByPanel.js +363 -0
  48. package/lib/components/fetch-structure/QueryBuilderOlapGroupByPanel.js.map +1 -0
  49. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts +0 -1
  50. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts.map +1 -1
  51. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js +21 -53
  52. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
  53. package/lib/components/fetch-structure/QueryBuilderPostTDSPanel.d.ts +22 -0
  54. package/lib/components/fetch-structure/QueryBuilderPostTDSPanel.d.ts.map +1 -0
  55. package/lib/components/fetch-structure/QueryBuilderPostTDSPanel.js +32 -0
  56. package/lib/components/fetch-structure/QueryBuilderPostTDSPanel.js.map +1 -0
  57. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts +0 -1
  58. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts.map +1 -1
  59. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js +2 -1
  60. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js.map +1 -1
  61. package/lib/components/fetch-structure/QueryBuilderTDSComponentHelper.d.ts +27 -0
  62. package/lib/components/fetch-structure/QueryBuilderTDSComponentHelper.d.ts.map +1 -0
  63. package/lib/components/fetch-structure/QueryBuilderTDSComponentHelper.js +61 -0
  64. package/lib/components/fetch-structure/QueryBuilderTDSComponentHelper.js.map +1 -0
  65. package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts +0 -1
  66. package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts.map +1 -1
  67. package/lib/components/fetch-structure/QueryBuilderTDSPanel.js +4 -13
  68. package/lib/components/fetch-structure/QueryBuilderTDSPanel.js.map +1 -1
  69. package/lib/components/filter/QueryBuilderFilterPanel.d.ts +0 -1
  70. package/lib/components/filter/QueryBuilderFilterPanel.d.ts.map +1 -1
  71. package/lib/components/shared/LambdaEditor.d.ts +0 -1
  72. package/lib/components/shared/LambdaEditor.d.ts.map +1 -1
  73. package/lib/components/shared/LambdaEditor.js +23 -7
  74. package/lib/components/shared/LambdaEditor.js.map +1 -1
  75. package/lib/components/shared/LambdaParameterValuesEditor.d.ts +0 -1
  76. package/lib/components/shared/LambdaParameterValuesEditor.d.ts.map +1 -1
  77. package/lib/components/workflows/ServiceQueryBuilder.d.ts.map +1 -1
  78. package/lib/components/workflows/ServiceQueryBuilder.js +5 -1
  79. package/lib/components/workflows/ServiceQueryBuilder.js.map +1 -1
  80. package/lib/graphManager/QueryBuilderHashUtils.d.ts +14 -0
  81. package/lib/graphManager/QueryBuilderHashUtils.d.ts.map +1 -1
  82. package/lib/graphManager/QueryBuilderHashUtils.js +15 -0
  83. package/lib/graphManager/QueryBuilderHashUtils.js.map +1 -1
  84. package/lib/graphManager/QueryBuilderSupportedFunctions.d.ts +7 -1
  85. package/lib/graphManager/QueryBuilderSupportedFunctions.d.ts.map +1 -1
  86. package/lib/graphManager/QueryBuilderSupportedFunctions.js +7 -0
  87. package/lib/graphManager/QueryBuilderSupportedFunctions.js.map +1 -1
  88. package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.d.ts.map +1 -1
  89. package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js +4 -1
  90. package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js.map +1 -1
  91. package/lib/graphManager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.d.ts +1 -0
  92. package/lib/graphManager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.d.ts.map +1 -1
  93. package/lib/graphManager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.js +50 -0
  94. package/lib/graphManager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.js.map +1 -1
  95. package/lib/index.css +2 -2
  96. package/lib/index.css.map +1 -1
  97. package/lib/package.json +6 -6
  98. package/lib/stores/QueryBuilderStateBuilder.d.ts.map +1 -1
  99. package/lib/stores/QueryBuilderStateBuilder.js +7 -1
  100. package/lib/stores/QueryBuilderStateBuilder.js.map +1 -1
  101. package/lib/stores/QueryBuilderStateTestUtils.d.ts.map +1 -1
  102. package/lib/stores/QueryBuilderStateTestUtils.js +2 -4
  103. package/lib/stores/QueryBuilderStateTestUtils.js.map +1 -1
  104. package/lib/stores/QueryBuilderTypeaheadHelper.js +2 -2
  105. package/lib/stores/explorer/QueryBuilderExplorerState.js +3 -3
  106. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts +1 -0
  107. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts.map +1 -1
  108. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js +3 -0
  109. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js.map +1 -1
  110. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts.map +1 -1
  111. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js +2 -1
  112. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js.map +1 -1
  113. package/lib/stores/fetch-structure/tds/QueryBuilderTDSColumnState_.d.ts +24 -0
  114. package/lib/stores/fetch-structure/tds/QueryBuilderTDSColumnState_.d.ts.map +1 -0
  115. package/lib/stores/fetch-structure/tds/QueryBuilderTDSColumnState_.js +20 -0
  116. package/lib/stores/fetch-structure/tds/QueryBuilderTDSColumnState_.js.map +1 -0
  117. package/lib/stores/fetch-structure/tds/QueryBuilderTDSHelper.d.ts +23 -0
  118. package/lib/stores/fetch-structure/tds/QueryBuilderTDSHelper.d.ts.map +1 -0
  119. package/lib/stores/fetch-structure/tds/QueryBuilderTDSHelper.js +41 -0
  120. package/lib/stores/fetch-structure/tds/QueryBuilderTDSHelper.js.map +1 -0
  121. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts +11 -0
  122. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts.map +1 -1
  123. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js +44 -1
  124. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js.map +1 -1
  125. package/lib/stores/fetch-structure/tds/QueryResultSetModifierState.d.ts +2 -2
  126. package/lib/stores/fetch-structure/tds/QueryResultSetModifierState.d.ts.map +1 -1
  127. package/lib/stores/fetch-structure/tds/QueryResultSetModifierState.js +2 -2
  128. package/lib/stores/fetch-structure/tds/QueryResultSetModifierState.js.map +1 -1
  129. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateOperator.js +1 -1
  130. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.d.ts +4 -4
  131. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.d.ts.map +1 -1
  132. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.js +8 -7
  133. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.js.map +1 -1
  134. package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByOperatorLoader.d.ts +18 -0
  135. package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByOperatorLoader.d.ts.map +1 -0
  136. package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByOperatorLoader.js +36 -0
  137. package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByOperatorLoader.js.map +1 -0
  138. package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByState.d.ts +91 -0
  139. package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByState.d.ts.map +1 -0
  140. package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByState.js +272 -0
  141. package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByState.js.map +1 -0
  142. package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByStateBuilder.d.ts +19 -0
  143. package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByStateBuilder.d.ts.map +1 -0
  144. package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByStateBuilder.js +100 -0
  145. package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByStateBuilder.js.map +1 -0
  146. package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByValueSpecificationBuilder.d.ts +19 -0
  147. package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByValueSpecificationBuilder.d.ts.map +1 -0
  148. package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByValueSpecificationBuilder.js +83 -0
  149. package/lib/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByValueSpecificationBuilder.js.map +1 -0
  150. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_.d.ts +29 -0
  151. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_.d.ts.map +1 -0
  152. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_.js +30 -0
  153. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_.js.map +1 -0
  154. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Average.d.ts +25 -0
  155. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Average.d.ts.map +1 -0
  156. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Average.js +50 -0
  157. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Average.js.map +1 -0
  158. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Count.d.ts +25 -0
  159. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Count.d.ts.map +1 -0
  160. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Count.js +51 -0
  161. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Count.js.map +1 -0
  162. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Max.d.ts +25 -0
  163. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Max.d.ts.map +1 -0
  164. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Max.js +50 -0
  165. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Max.js.map +1 -0
  166. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Min.d.ts +25 -0
  167. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Min.d.ts.map +1 -0
  168. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Min.js +50 -0
  169. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Min.js.map +1 -0
  170. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Sum.d.ts +25 -0
  171. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Sum.d.ts.map +1 -0
  172. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Sum.js +51 -0
  173. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Sum.js.map +1 -0
  174. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_AverageRank_.d.ts +24 -0
  175. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_AverageRank_.d.ts.map +1 -0
  176. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_AverageRank_.js +48 -0
  177. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_AverageRank_.js.map +1 -0
  178. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_DenseRank_.d.ts +24 -0
  179. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_DenseRank_.d.ts.map +1 -0
  180. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_DenseRank_.js +48 -0
  181. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_DenseRank_.js.map +1 -0
  182. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_Rank_.d.ts +24 -0
  183. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_Rank_.d.ts.map +1 -0
  184. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_Rank_.js +48 -0
  185. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_Rank_.js.map +1 -0
  186. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_RowNumber_.d.ts +24 -0
  187. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_RowNumber_.d.ts.map +1 -0
  188. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_RowNumber_.js +48 -0
  189. package/lib/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_RowNumber_.js.map +1 -0
  190. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterOperator.d.ts +1 -1
  191. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterOperator.js +2 -2
  192. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts +6 -4
  193. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts.map +1 -1
  194. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js +14 -3
  195. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js.map +1 -1
  196. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.d.ts.map +1 -1
  197. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.js +8 -11
  198. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.js.map +1 -1
  199. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorHelper.d.ts +2 -2
  200. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorHelper.d.ts.map +1 -1
  201. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorHelper.js +5 -1
  202. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorHelper.js.map +1 -1
  203. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.js +4 -4
  204. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js +1 -1
  205. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js +1 -1
  206. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js +3 -3
  207. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js +3 -3
  208. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.js +1 -1
  209. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_In.js +2 -2
  210. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.d.ts +2 -2
  211. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js +3 -3
  212. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js +3 -3
  213. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.js +1 -1
  214. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js +1 -1
  215. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionColumnState.d.ts +4 -6
  216. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionColumnState.d.ts.map +1 -1
  217. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionColumnState.js +6 -5
  218. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionColumnState.js.map +1 -1
  219. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.d.ts.map +1 -1
  220. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.js +1 -0
  221. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.js.map +1 -1
  222. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.d.ts.map +1 -1
  223. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.js +6 -3
  224. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.js.map +1 -1
  225. package/lib/stores/filter/QueryBuilderFilterState.d.ts +2 -0
  226. package/lib/stores/filter/QueryBuilderFilterState.d.ts.map +1 -1
  227. package/lib/stores/filter/QueryBuilderFilterState.js +6 -0
  228. package/lib/stores/filter/QueryBuilderFilterState.js.map +1 -1
  229. package/package.json +13 -13
  230. package/src/components/QueryBuilder.tsx +110 -35
  231. package/src/components/QueryBuilderComponentTestUtils.tsx +9 -11
  232. package/src/components/QueryBuilderDiffPanel.tsx +2 -2
  233. package/src/components/QueryBuilderResultPanel.tsx +4 -4
  234. package/src/components/QueryBuilderSideBar.tsx +4 -1
  235. package/src/components/QueryBuilder_TestID.ts +1 -0
  236. package/src/components/explorer/QueryBuilderFunctionsExplorerPanel.tsx +6 -6
  237. package/src/components/explorer/QueryBuilderMilestoningEditor.tsx +2 -3
  238. package/src/components/fetch-structure/QueryBuilderOlapGroupByPanel.tsx +1140 -0
  239. package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +31 -106
  240. package/src/components/fetch-structure/QueryBuilderPostTDSPanel.tsx +69 -0
  241. package/src/components/fetch-structure/QueryBuilderResultModifierPanel.tsx +4 -1
  242. package/src/components/fetch-structure/QueryBuilderTDSComponentHelper.tsx +118 -0
  243. package/src/components/fetch-structure/QueryBuilderTDSPanel.tsx +4 -23
  244. package/src/components/shared/LambdaEditor.tsx +25 -22
  245. package/src/components/workflows/ServiceQueryBuilder.tsx +10 -2
  246. package/src/graphManager/QueryBuilderHashUtils.ts +16 -0
  247. package/src/graphManager/QueryBuilderSupportedFunctions.ts +7 -0
  248. package/src/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.ts +14 -0
  249. package/src/graphManager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.ts +129 -0
  250. package/src/stores/QueryBuilderStateBuilder.ts +14 -1
  251. package/src/stores/QueryBuilderStateTestUtils.ts +9 -13
  252. package/src/stores/QueryBuilderTypeaheadHelper.ts +2 -2
  253. package/src/stores/explorer/QueryBuilderExplorerState.ts +3 -3
  254. package/src/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.ts +4 -0
  255. package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.ts +2 -1
  256. package/src/stores/fetch-structure/tds/QueryBuilderTDSColumnState_.ts +28 -0
  257. package/src/stores/fetch-structure/tds/QueryBuilderTDSHelper.ts +79 -0
  258. package/src/stores/fetch-structure/tds/QueryBuilderTDSState.ts +68 -1
  259. package/src/stores/fetch-structure/tds/QueryResultSetModifierState.ts +2 -2
  260. package/src/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateOperator.ts +1 -1
  261. package/src/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.ts +11 -9
  262. package/src/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByOperatorLoader.ts +39 -0
  263. package/src/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByState.ts +377 -0
  264. package/src/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByStateBuilder.ts +237 -0
  265. package/src/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByValueSpecificationBuilder.ts +148 -0
  266. package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_.ts +43 -0
  267. package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Average.ts +56 -0
  268. package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Count.ts +57 -0
  269. package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Max.ts +56 -0
  270. package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Min.ts +56 -0
  271. package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Sum.ts +57 -0
  272. package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_AverageRank_.ts +54 -0
  273. package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_DenseRank_.ts +54 -0
  274. package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_Rank_.ts +54 -0
  275. package/src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_RowNumber_.ts +54 -0
  276. package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterOperator.ts +2 -2
  277. package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.ts +22 -10
  278. package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.ts +11 -19
  279. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorHelper.ts +8 -7
  280. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.ts +4 -4
  281. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.ts +1 -1
  282. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.ts +1 -1
  283. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.ts +3 -3
  284. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.ts +3 -3
  285. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.ts +1 -1
  286. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_In.ts +2 -2
  287. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.ts +3 -3
  288. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.ts +3 -3
  289. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.ts +1 -1
  290. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.ts +1 -1
  291. package/src/stores/fetch-structure/tds/projection/QueryBuilderProjectionColumnState.ts +9 -11
  292. package/src/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.ts +1 -0
  293. package/src/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.ts +8 -4
  294. package/src/stores/filter/QueryBuilderFilterState.ts +7 -0
  295. package/tsconfig.json +19 -0
@@ -0,0 +1,54 @@
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 { PRIMITIVE_TYPE, type Type } from '@finos/legend-graph';
18
+ import { hashArray } from '@finos/legend-shared';
19
+ import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../../graphManager/QueryBuilderHashUtils.js';
20
+ import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
21
+ import { QueryBuilderTDSOlapOperator } from './QueryBuilderTDSOlapOperator_.js';
22
+
23
+ export class QueryBuilderTDSOlapRankOperator_RowNumber extends QueryBuilderTDSOlapOperator {
24
+ getLabel(): string {
25
+ return 'row number';
26
+ }
27
+
28
+ get pureFunc(): string {
29
+ return QUERY_BUILDER_SUPPORTED_FUNCTIONS.OLAP_ROW_NUMBER;
30
+ }
31
+
32
+ get hashCode(): string {
33
+ return hashArray([QUERY_BUILDER_HASH_STRUCTURE.OLAP_OPERATOR_ROW_NUMBER]);
34
+ }
35
+
36
+ isCompatibleWithType(type: Type | undefined): boolean {
37
+ if (type) {
38
+ return (
39
+ [
40
+ PRIMITIVE_TYPE.STRING,
41
+ PRIMITIVE_TYPE.BOOLEAN,
42
+ PRIMITIVE_TYPE.NUMBER,
43
+ PRIMITIVE_TYPE.INTEGER,
44
+ PRIMITIVE_TYPE.DECIMAL,
45
+ PRIMITIVE_TYPE.FLOAT,
46
+ PRIMITIVE_TYPE.DATE,
47
+ PRIMITIVE_TYPE.STRICTDATE,
48
+ PRIMITIVE_TYPE.DATETIME,
49
+ ] as string[]
50
+ ).includes(type.path);
51
+ }
52
+ return true;
53
+ }
54
+ }
@@ -31,7 +31,7 @@ export abstract class QueryBuilderPostFilterOperator implements Hashable {
31
31
 
32
32
  abstract getLabel(): string;
33
33
 
34
- getTdsColumnGetter(): TDS_COLUMN_GETTER | undefined {
34
+ getTDSColumnGetter(): TDS_COLUMN_GETTER | undefined {
35
35
  return undefined;
36
36
  }
37
37
 
@@ -48,7 +48,7 @@ export abstract class QueryBuilderPostFilterOperator implements Hashable {
48
48
  isCompatibleWithPostFilterColumn(
49
49
  postFilterState: PostFilterConditionState,
50
50
  ): boolean {
51
- const columnType = postFilterState.columnState.getReturnType();
51
+ const columnType = postFilterState.columnState.getColumnType();
52
52
  if (columnType) {
53
53
  return this.isCompatibleWithType(columnType);
54
54
  }
@@ -38,8 +38,9 @@ import {
38
38
  uuid,
39
39
  filterByType,
40
40
  ActionState,
41
- type Hashable,
42
41
  hashArray,
42
+ uniq,
43
+ type Hashable,
43
44
  } from '@finos/legend-shared';
44
45
  import {
45
46
  action,
@@ -50,10 +51,10 @@ import {
50
51
  observable,
51
52
  } from 'mobx';
52
53
  import { DEFAULT_POST_FILTER_LAMBDA_VARIABLE_NAME } from '../../../QueryBuilderConfig.js';
53
- import type { QueryBuilderAggregateColumnState } from '../aggregation/QueryBuilderAggregationState.js';
54
+ import { QueryBuilderAggregateColumnState } from '../aggregation/QueryBuilderAggregationState.js';
54
55
  import type { QueryBuilderPostFilterOperator } from './QueryBuilderPostFilterOperator.js';
55
56
  import {
56
- type QueryBuilderProjectionColumnState,
57
+ QueryBuilderProjectionColumnState,
57
58
  type QueryBuilderProjectionColumnDragSource,
58
59
  QueryBuilderDerivationProjectionColumnState,
59
60
  } from '../projection/QueryBuilderProjectionColumnState.js';
@@ -65,6 +66,7 @@ import {
65
66
  import { QUERY_BUILDER_GROUP_OPERATION } from '../../../QueryBuilderGroupOperationHelper.js';
66
67
  import type { QueryBuilderTDSState } from '../QueryBuilderTDSState.js';
67
68
  import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../graphManager/QueryBuilderHashUtils.js';
69
+ import type { QueryBuilderTDSColumnState } from '../QueryBuilderTDSColumnState_.js';
68
70
 
69
71
  export enum QUERY_BUILDER_POST_FILTER_DND_TYPE {
70
72
  GROUP_CONDITION = 'GROUP_CONDITION',
@@ -303,9 +305,7 @@ export class QueryBuilderPostFilterTreeBlankConditionNodeData
303
305
 
304
306
  export class PostFilterConditionState implements Hashable {
305
307
  readonly postFilterState: QueryBuilderPostFilterState;
306
- columnState:
307
- | QueryBuilderProjectionColumnState
308
- | QueryBuilderAggregateColumnState;
308
+ columnState: QueryBuilderTDSColumnState;
309
309
  value?: ValueSpecification | undefined;
310
310
  operator: QueryBuilderPostFilterOperator;
311
311
  typeaheadSearchResults: string[] | undefined;
@@ -313,9 +313,7 @@ export class PostFilterConditionState implements Hashable {
313
313
 
314
314
  constructor(
315
315
  postFilterState: QueryBuilderPostFilterState,
316
- colState:
317
- | QueryBuilderProjectionColumnState
318
- | QueryBuilderAggregateColumnState,
316
+ colState: QueryBuilderTDSColumnState,
319
317
  value: ValueSpecification | undefined,
320
318
  operator: QueryBuilderPostFilterOperator | undefined,
321
319
  ) {
@@ -363,12 +361,18 @@ export class PostFilterConditionState implements Hashable {
363
361
  try {
364
362
  this.typeaheadSearchState.inProgress();
365
363
  this.typeaheadSearchResults = undefined;
364
+ const _columnState =
365
+ this.columnState instanceof QueryBuilderProjectionColumnState ||
366
+ this.columnState instanceof QueryBuilderAggregateColumnState
367
+ ? this.columnState
368
+ : undefined;
369
+ const columnState = guaranteeNonNullable(_columnState);
366
370
  if (performTypeahead(this.value)) {
367
371
  const result =
368
372
  (yield this.postFilterState.tdsState.queryBuilderState.graphManagerState.graphManager.executeMapping(
369
373
  buildProjectionColumnTypeaheadQuery(
370
374
  this.postFilterState.tdsState.queryBuilderState,
371
- this.columnState,
375
+ columnState,
372
376
  this.value,
373
377
  ),
374
378
  guaranteeNonNullable(
@@ -536,6 +540,14 @@ export class QueryBuilderPostFilterState
536
540
  : undefined;
537
541
  }
538
542
 
543
+ get referencedTDSColumns(): QueryBuilderTDSColumnState[] {
544
+ return uniq(
545
+ Array.from(this.nodes.values())
546
+ .filter(filterByType(QueryBuilderPostFilterTreeConditionNodeData))
547
+ .map((n) => n.condition.columnState),
548
+ );
549
+ }
550
+
539
551
  getRootNode(): QueryBuilderPostFilterTreeNodeData | undefined {
540
552
  assertTrue(
541
553
  this.rootIds.length < 2,
@@ -32,7 +32,9 @@ import {
32
32
  guaranteeType,
33
33
  UnsupportedOperationError,
34
34
  } from '@finos/legend-shared';
35
- import type { QueryBuilderAggregateColumnState } from '../aggregation/QueryBuilderAggregationState.js';
35
+ import { QueryBuilderDerivationProjectionColumnState } from '../projection/QueryBuilderProjectionColumnState.js';
36
+ import type { QueryBuilderTDSColumnState } from '../QueryBuilderTDSColumnState_.js';
37
+ import { getTDSColumnState } from '../QueryBuilderTDSHelper.js';
36
38
  import type { QueryBuilderPostFilterOperator } from './QueryBuilderPostFilterOperator.js';
37
39
  import {
38
40
  type QueryBuilderPostFilterState,
@@ -43,20 +45,16 @@ import {
43
45
  TDS_COLUMN_GETTER,
44
46
  getTypeFromDerivedProperty,
45
47
  } from './QueryBuilderPostFilterState.js';
46
- import {
47
- type QueryBuilderProjectionColumnState,
48
- QueryBuilderDerivationProjectionColumnState,
49
- } from '../projection/QueryBuilderProjectionColumnState.js';
50
- import { toGroupOperation } from '../../../QueryBuilderGroupOperationHelper.js';
51
- import { QueryBuilderTDSState } from '../QueryBuilderTDSState.js';
52
- import type { QueryBuilderState } from '../../../QueryBuilderState.js';
53
48
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../graphManager/QueryBuilderSupportedFunctions.js';
49
+ import type { QueryBuilderState } from '../../../QueryBuilderState.js';
50
+ import { QueryBuilderTDSState } from '../QueryBuilderTDSState.js';
51
+ import { toGroupOperation } from '../../../QueryBuilderGroupOperationHelper.js';
54
52
 
55
53
  const findProjectionColumnState = (
56
54
  propertyExpression: AbstractPropertyExpression,
57
55
  postFilterState: QueryBuilderPostFilterState,
58
- ): QueryBuilderProjectionColumnState | QueryBuilderAggregateColumnState => {
59
- const tdsState = postFilterState.tdsState;
56
+ ): QueryBuilderTDSColumnState => {
57
+ const projectionState = postFilterState.tdsState;
60
58
  const properyExpressionName = propertyExpression.func.value.name;
61
59
  assertTrue(
62
60
  Object.values(TDS_COLUMN_GETTER).includes(
@@ -76,13 +74,7 @@ const findProjectionColumnState = (
76
74
  ).values[0],
77
75
  'Can`t process TDS column expression: Column should be a string primitive instance value',
78
76
  );
79
- const columnStates = [
80
- ...tdsState.aggregationState.columns,
81
- ...tdsState.projectionColumns,
82
- ];
83
- const columnState = guaranteeNonNullable(
84
- columnStates.find((c) => c.columnName === columnName),
85
- );
77
+ const columnState = getTDSColumnState(projectionState, columnName);
86
78
  if (
87
79
  tdsColumnGetter !== TDS_COLUMN_GETTER.IS_NULL &&
88
80
  tdsColumnGetter !== TDS_COLUMN_GETTER.IS_NOT_NULL
@@ -97,7 +89,7 @@ const findProjectionColumnState = (
97
89
  }
98
90
  return columnState;
99
91
  }
100
- const columnType = guaranteeNonNullable(columnState.getReturnType());
92
+ const columnType = guaranteeNonNullable(columnState.getColumnType());
101
93
  assertTrue(
102
94
  (getTDSColumnDerivedProperyFromType(columnType) as string) ===
103
95
  tdsColumnGetter,
@@ -116,7 +108,7 @@ export const buildPostFilterConditionState = (
116
108
  operator: QueryBuilderPostFilterOperator,
117
109
  ): PostFilterConditionState | undefined => {
118
110
  let postConditionState: PostFilterConditionState | undefined;
119
- const tdsColumnGetter = operator.getTdsColumnGetter();
111
+ const tdsColumnGetter = operator.getTDSColumnGetter();
120
112
  if (
121
113
  tdsColumnGetter &&
122
114
  expression instanceof AbstractPropertyExpression &&
@@ -20,20 +20,21 @@ import {
20
20
  } from '@finos/legend-graph';
21
21
  import { UnsupportedOperationError } from '@finos/legend-shared';
22
22
  import { QueryBuilderAggregateColumnState } from '../../aggregation/QueryBuilderAggregationState.js';
23
- import {
24
- type QueryBuilderProjectionColumnState,
25
- QueryBuilderSimpleProjectionColumnState,
26
- } from '../../projection/QueryBuilderProjectionColumnState.js';
23
+ import { QueryBuilderOlapGroupByColumnState } from '../../olapGroupBy/QueryBuilderOlapGroupByState.js';
24
+ import { QueryBuilderSimpleProjectionColumnState } from '../../projection/QueryBuilderProjectionColumnState.js';
25
+ import type { QueryBuilderTDSColumnState } from '../../QueryBuilderTDSColumnState_.js';
27
26
 
28
27
  export const getColumnMultiplicity = (
29
- columnState:
30
- | QueryBuilderProjectionColumnState
31
- | QueryBuilderAggregateColumnState,
28
+ columnState: QueryBuilderTDSColumnState | QueryBuilderAggregateColumnState,
32
29
  ): Multiplicity => {
33
30
  if (columnState instanceof QueryBuilderAggregateColumnState) {
34
31
  return columnState.aggregationState.tdsState.queryBuilderState.graphManagerState.graph.getTypicalMultiplicity(
35
32
  TYPICAL_MULTIPLICITY_TYPE.ONE,
36
33
  );
34
+ } else if (columnState instanceof QueryBuilderOlapGroupByColumnState) {
35
+ return columnState.olapState.tdsState.queryBuilderState.graphManagerState.graph.getTypicalMultiplicity(
36
+ TYPICAL_MULTIPLICITY_TYPE.ONE,
37
+ );
37
38
  } else if (columnState instanceof QueryBuilderSimpleProjectionColumnState) {
38
39
  return columnState.propertyExpressionState.propertyExpression.func.value
39
40
  .multiplicity;
@@ -63,11 +63,11 @@ export const buildPostFilterConditionExpression = (
63
63
  multiplicityOne,
64
64
  );
65
65
  let tdsDerivedPropertyName: TDS_COLUMN_GETTER;
66
- const correspondingTdsDerivedProperty = operator.getTdsColumnGetter();
67
- if (correspondingTdsDerivedProperty) {
68
- tdsDerivedPropertyName = correspondingTdsDerivedProperty;
66
+ const correspondingTDSDerivedProperty = operator.getTDSColumnGetter();
67
+ if (correspondingTDSDerivedProperty) {
68
+ tdsDerivedPropertyName = correspondingTDSDerivedProperty;
69
69
  } else {
70
- const type = guaranteeNonNullable(colState.getReturnType());
70
+ const type = guaranteeNonNullable(colState.getColumnType());
71
71
  tdsDerivedPropertyName = getTDSColumnDerivedProperyFromType(type);
72
72
  }
73
73
  tdsPropertyExpression.func = PropertyExplicitReference.create(
@@ -72,7 +72,7 @@ export class QueryBuilderPostFilterOperator_Contain
72
72
  postFilterConditionState: PostFilterConditionState,
73
73
  ): ValueSpecification {
74
74
  const propertyType = guaranteeNonNullable(
75
- postFilterConditionState.columnState.getReturnType(),
75
+ postFilterConditionState.columnState.getColumnType(),
76
76
  );
77
77
  switch (propertyType.path) {
78
78
  case PRIMITIVE_TYPE.STRING: {
@@ -69,7 +69,7 @@ export class QueryBuilderPostFilterOperator_EndWith
69
69
  getDefaultFilterConditionValue(
70
70
  postFilterConditionState: PostFilterConditionState,
71
71
  ): ValueSpecification {
72
- const propertyType = postFilterConditionState.columnState.getReturnType();
72
+ const propertyType = postFilterConditionState.columnState.getColumnType();
73
73
  switch (propertyType?.path) {
74
74
  case PRIMITIVE_TYPE.STRING: {
75
75
  return buildPrimitiveInstanceValue(
@@ -91,7 +91,7 @@ export class QueryBuilderPostFilterOperator_Equal
91
91
  return isTypeCompatibleForAssignment(
92
92
  getNonCollectionValueSpecificationType(valueSpecification),
93
93
  guaranteeNonNullable(
94
- postFilterConditionState.columnState.getReturnType(),
94
+ postFilterConditionState.columnState.getColumnType(),
95
95
  ),
96
96
  );
97
97
  }
@@ -102,7 +102,7 @@ export class QueryBuilderPostFilterOperator_Equal
102
102
  postFilterConditionState: PostFilterConditionState,
103
103
  ): ValueSpecification {
104
104
  const propertyType = guaranteeNonNullable(
105
- postFilterConditionState.columnState.getReturnType(),
105
+ postFilterConditionState.columnState.getColumnType(),
106
106
  );
107
107
  switch (propertyType.path) {
108
108
  case PRIMITIVE_TYPE.STRING:
@@ -166,7 +166,7 @@ export class QueryBuilderPostFilterOperator_Equal
166
166
  return buildPostFilterConditionExpression(
167
167
  postFilterConditionState,
168
168
  this,
169
- postFilterConditionState.columnState.getReturnType()?.path ===
169
+ postFilterConditionState.columnState.getColumnType()?.path ===
170
170
  PRIMITIVE_TYPE.DATETIME &&
171
171
  postFilterConditionState.value?.genericType?.value.rawType.path !==
172
172
  PRIMITIVE_TYPE.DATETIME
@@ -74,7 +74,7 @@ export class QueryBuilderPostFilterOperator_GreaterThan
74
74
  ? getNonCollectionValueSpecificationType(postFilterConditionState.value)
75
75
  : undefined,
76
76
  guaranteeNonNullable(
77
- postFilterConditionState.columnState.getReturnType(),
77
+ postFilterConditionState.columnState.getColumnType(),
78
78
  ),
79
79
  );
80
80
  }
@@ -82,7 +82,7 @@ export class QueryBuilderPostFilterOperator_GreaterThan
82
82
  getDefaultFilterConditionValue(
83
83
  postFilterConditionState: PostFilterConditionState,
84
84
  ): ValueSpecification {
85
- const propertyType = postFilterConditionState.columnState.getReturnType();
85
+ const propertyType = postFilterConditionState.columnState.getColumnType();
86
86
  switch (propertyType?.path) {
87
87
  case PRIMITIVE_TYPE.NUMBER:
88
88
  case PRIMITIVE_TYPE.DECIMAL:
@@ -120,7 +120,7 @@ export class QueryBuilderPostFilterOperator_GreaterThan
120
120
  return buildPostFilterConditionExpression(
121
121
  postFilterConditionState,
122
122
  this,
123
- postFilterConditionState.columnState.getReturnType()?.path ===
123
+ postFilterConditionState.columnState.getColumnType()?.path ===
124
124
  PRIMITIVE_TYPE.DATETIME &&
125
125
  postFilterConditionState.value?.genericType?.value.rawType.path !==
126
126
  PRIMITIVE_TYPE.DATETIME
@@ -43,7 +43,7 @@ export class QueryBuilderPostFilterOperator_GreaterThanEqual extends QueryBuilde
43
43
  return buildPostFilterConditionExpression(
44
44
  postFilterConditionState,
45
45
  this,
46
- postFilterConditionState.columnState.getReturnType()?.path ===
46
+ postFilterConditionState.columnState.getColumnType()?.path ===
47
47
  PRIMITIVE_TYPE.DATETIME &&
48
48
  postFilterConditionState.value?.genericType?.value.rawType.path !==
49
49
  PRIMITIVE_TYPE.DATETIME
@@ -75,7 +75,7 @@ export class QueryBuilderPostFilterOperator_In
75
75
  postFilterConditionState: PostFilterConditionState,
76
76
  ): boolean {
77
77
  const propertyType = guaranteeNonNullable(
78
- postFilterConditionState.columnState.getReturnType(),
78
+ postFilterConditionState.columnState.getColumnType(),
79
79
  );
80
80
  const valueSpec = postFilterConditionState.value;
81
81
  if (valueSpec instanceof CollectionInstanceValue) {
@@ -128,7 +128,7 @@ export class QueryBuilderPostFilterOperator_In
128
128
  TYPICAL_MULTIPLICITY_TYPE.ONE,
129
129
  );
130
130
  const propertyType = guaranteeNonNullable(
131
- postFilterConditionState.columnState.getReturnType(),
131
+ postFilterConditionState.columnState.getColumnType(),
132
132
  );
133
133
  return new CollectionInstanceValue(
134
134
  multiplicityOne,
@@ -42,7 +42,7 @@ export class QueryBuilderPostFilterOperator_IsEmpty
42
42
  return 'is empty';
43
43
  }
44
44
 
45
- override getTdsColumnGetter(): TDS_COLUMN_GETTER | undefined {
45
+ override getTDSColumnGetter(): TDS_COLUMN_GETTER | undefined {
46
46
  return TDS_COLUMN_GETTER.IS_NULL;
47
47
  }
48
48
 
@@ -62,7 +62,7 @@ export class QueryBuilderPostFilterOperator_IsEmpty
62
62
  override isCompatibleWithPostFilterColumn(
63
63
  postFilterState: PostFilterConditionState,
64
64
  ): boolean {
65
- const columnType = postFilterState.columnState.getReturnType();
65
+ const columnType = postFilterState.columnState.getColumnType();
66
66
  if (columnType && this.isCompatibleWithType(columnType)) {
67
67
  if (
68
68
  postFilterState.columnState instanceof
@@ -118,7 +118,7 @@ export class QueryBuilderPostFilterOperator_IsNotEmpty extends QueryBuilderPostF
118
118
  return `is not empty`;
119
119
  }
120
120
 
121
- override getTdsColumnGetter(): TDS_COLUMN_GETTER | undefined {
121
+ override getTDSColumnGetter(): TDS_COLUMN_GETTER | undefined {
122
122
  return TDS_COLUMN_GETTER.IS_NOT_NULL;
123
123
  }
124
124
 
@@ -74,7 +74,7 @@ export class QueryBuilderPostFilterOperator_LessThan
74
74
  ? getNonCollectionValueSpecificationType(postFilterConditionState.value)
75
75
  : undefined,
76
76
  guaranteeNonNullable(
77
- postFilterConditionState.columnState.getReturnType(),
77
+ postFilterConditionState.columnState.getColumnType(),
78
78
  ),
79
79
  );
80
80
  }
@@ -82,7 +82,7 @@ export class QueryBuilderPostFilterOperator_LessThan
82
82
  getDefaultFilterConditionValue(
83
83
  postFilterConditionState: PostFilterConditionState,
84
84
  ): ValueSpecification {
85
- const propertyType = postFilterConditionState.columnState.getReturnType();
85
+ const propertyType = postFilterConditionState.columnState.getColumnType();
86
86
  switch (propertyType?.path) {
87
87
  case PRIMITIVE_TYPE.NUMBER:
88
88
  case PRIMITIVE_TYPE.DECIMAL:
@@ -120,7 +120,7 @@ export class QueryBuilderPostFilterOperator_LessThan
120
120
  return buildPostFilterConditionExpression(
121
121
  postFilterConditionState,
122
122
  this,
123
- postFilterConditionState.columnState.getReturnType()?.path ===
123
+ postFilterConditionState.columnState.getColumnType()?.path ===
124
124
  PRIMITIVE_TYPE.DATETIME &&
125
125
  postFilterConditionState.value?.genericType?.value.rawType.path !==
126
126
  PRIMITIVE_TYPE.DATETIME
@@ -46,7 +46,7 @@ export class QueryBuilderPostFilterOperator_LessThanEqual
46
46
  return buildPostFilterConditionExpression(
47
47
  postFilterConditionState,
48
48
  this,
49
- postFilterConditionState.columnState.getReturnType()?.path ===
49
+ postFilterConditionState.columnState.getColumnType()?.path ===
50
50
  PRIMITIVE_TYPE.DATETIME &&
51
51
  postFilterConditionState.value?.genericType?.value.rawType.path !==
52
52
  PRIMITIVE_TYPE.DATETIME
@@ -70,7 +70,7 @@ export class QueryBuilderPostFilterOperator_StartWith
70
70
  getDefaultFilterConditionValue(
71
71
  postFilterConditionState: PostFilterConditionState,
72
72
  ): ValueSpecification {
73
- const propertyType = postFilterConditionState.columnState.getReturnType();
73
+ const propertyType = postFilterConditionState.columnState.getColumnType();
74
74
  switch (propertyType?.path) {
75
75
  case PRIMITIVE_TYPE.STRING: {
76
76
  return buildPrimitiveInstanceValue(
@@ -19,7 +19,6 @@ import {
19
19
  type GeneratorFn,
20
20
  LogEvent,
21
21
  assertErrorThrown,
22
- uuid,
23
22
  guaranteeNonNullable,
24
23
  assertTrue,
25
24
  assertNonEmptyString,
@@ -50,11 +49,12 @@ import {
50
49
  RawLambda,
51
50
  stub_RawLambda,
52
51
  } from '@finos/legend-graph';
52
+ import { QueryBuilderTDSColumnState } from '../QueryBuilderTDSColumnState_.js';
53
+ import type { QueryBuilderTDSState } from '../QueryBuilderTDSState.js';
53
54
  import {
54
55
  DEFAULT_LAMBDA_VARIABLE_NAME,
55
56
  QUERY_BUILDER_SOURCE_ID_LABEL,
56
57
  } from '../../../QueryBuilderConfig.js';
57
- import type { QueryBuilderTDSState } from '../QueryBuilderTDSState.js';
58
58
  import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../graphManager/QueryBuilderHashUtils.js';
59
59
  import { LambdaEditorState } from '../../../shared/LambdaEditorState.js';
60
60
 
@@ -64,12 +64,15 @@ export interface QueryBuilderProjectionColumnDragSource {
64
64
  columnState: QueryBuilderProjectionColumnState;
65
65
  }
66
66
 
67
- export abstract class QueryBuilderProjectionColumnState implements Hashable {
68
- readonly uuid = uuid();
67
+ export abstract class QueryBuilderProjectionColumnState
68
+ extends QueryBuilderTDSColumnState
69
+ implements Hashable
70
+ {
69
71
  tdsState: QueryBuilderTDSState;
70
72
  columnName: string;
71
73
 
72
74
  constructor(tdsState: QueryBuilderTDSState, columnName: string) {
75
+ super();
73
76
  makeObservable(this, {
74
77
  uuid: false,
75
78
  tdsState: false,
@@ -77,7 +80,6 @@ export abstract class QueryBuilderProjectionColumnState implements Hashable {
77
80
  setColumnName: action,
78
81
  hashCode: computed,
79
82
  });
80
-
81
83
  this.tdsState = tdsState;
82
84
  this.columnName = columnName;
83
85
  }
@@ -85,10 +87,6 @@ export abstract class QueryBuilderProjectionColumnState implements Hashable {
85
87
  setColumnName(val: string): void {
86
88
  this.columnName = val;
87
89
  }
88
-
89
- abstract getReturnType(): Type | undefined;
90
-
91
- abstract get hashCode(): string;
92
90
  }
93
91
 
94
92
  export class QueryBuilderSimpleProjectionColumnState
@@ -143,7 +141,7 @@ export class QueryBuilderSimpleProjectionColumnState
143
141
  );
144
142
  }
145
143
 
146
- override getReturnType(): Type | undefined {
144
+ override getColumnType(): Type | undefined {
147
145
  return this.propertyExpressionState.propertyExpression.func.value
148
146
  .genericType.value.rawType;
149
147
  }
@@ -333,7 +331,7 @@ export class QueryBuilderDerivationProjectionColumnState
333
331
  this.setReturnType(resolvedType);
334
332
  }
335
333
 
336
- override getReturnType(): Type | undefined {
334
+ override getColumnType(): Type | undefined {
337
335
  return this.returnType;
338
336
  }
339
337
 
@@ -346,6 +346,7 @@ export const processTDSSortExpression = (
346
346
  QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_PROJECT,
347
347
  QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_GROUP_BY,
348
348
  QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_FILTER,
349
+ QUERY_BUILDER_SUPPORTED_FUNCTIONS.OLAP_GROUPBY,
349
350
  ]),
350
351
  `Can't process sort() expression: only support sort() in TDS expression`,
351
352
  );
@@ -35,10 +35,6 @@ import {
35
35
  guaranteeNonNullable,
36
36
  UnsupportedOperationError,
37
37
  } from '@finos/legend-shared';
38
- import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../graphManager/QueryBuilderSupportedFunctions.js';
39
- import { buildPropertyExpressionChain } from '../../../QueryBuilderValueSpecificationBuilderHelper.js';
40
- import { buildGenericLambdaFunctionInstanceValue } from '../../../QueryBuilderValueSpecificationHelper.js';
41
- import { appendPostFilter } from '../post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js';
42
38
  import {
43
39
  QueryBuilderDerivationProjectionColumnState,
44
40
  QueryBuilderSimpleProjectionColumnState,
@@ -49,6 +45,11 @@ import {
49
45
  type QueryResultSetModifierState,
50
46
  type SortColumnState,
51
47
  } from '../QueryResultSetModifierState.js';
48
+ import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../graphManager/QueryBuilderSupportedFunctions.js';
49
+ import { buildGenericLambdaFunctionInstanceValue } from '../../../QueryBuilderValueSpecificationHelper.js';
50
+ import { buildPropertyExpressionChain } from '../../../QueryBuilderValueSpecificationBuilderHelper.js';
51
+ import { appendOlapGroupByState } from '../olapGroupBy/QueryBuilderOlapGroupByValueSpecificationBuilder.js';
52
+ import { appendPostFilter } from '../post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js';
52
53
 
53
54
  const buildSortExpression = (
54
55
  sortColumnState: SortColumnState,
@@ -396,6 +397,9 @@ export const appendProjection = (
396
397
  lambdaFunction.expressionSequence[0] = projectFunction;
397
398
  }
398
399
 
400
+ // build olapGroupBy
401
+ appendOlapGroupByState(tdsState.olapGroupByState, lambdaFunction);
402
+
399
403
  // build post-filter
400
404
  appendPostFilter(tdsState.postFilterState, lambdaFunction);
401
405
 
@@ -374,6 +374,7 @@ export class QueryBuilderFilterState
374
374
  isRearrangingConditions = false;
375
375
  operators: QueryBuilderFilterOperator[] = [];
376
376
  private _suppressClickawayEventListener = false;
377
+ showPanel = true;
377
378
 
378
379
  constructor(
379
380
  queryBuilderState: QueryBuilderState,
@@ -385,6 +386,7 @@ export class QueryBuilderFilterState
385
386
  selectedNode: observable,
386
387
  isRearrangingConditions: observable,
387
388
  lambdaParameterName: observable,
389
+ showPanel: observable,
388
390
  setLambdaParameterName: action,
389
391
  setRearrangingConditions: action,
390
392
  suppressClickawayEventListener: action,
@@ -398,6 +400,7 @@ export class QueryBuilderFilterState
398
400
  pruneTree: action,
399
401
  simplifyTree: action,
400
402
  collapseTree: action,
403
+ setShowPanel: action,
401
404
  expandTree: action,
402
405
  hashCode: computed,
403
406
  });
@@ -414,6 +417,10 @@ export class QueryBuilderFilterState
414
417
  this.lambdaParameterName = val;
415
418
  }
416
419
 
420
+ setShowPanel(val: boolean): void {
421
+ this.showPanel = val;
422
+ }
423
+
417
424
  setRearrangingConditions(val: boolean): void {
418
425
  this.isRearrangingConditions = val;
419
426
  }
package/tsconfig.json CHANGED
@@ -77,6 +77,8 @@
77
77
  "./src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.ts",
78
78
  "./src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.ts",
79
79
  "./src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeValueSpecificationBuilder.ts",
80
+ "./src/stores/fetch-structure/tds/QueryBuilderTDSColumnState_.ts",
81
+ "./src/stores/fetch-structure/tds/QueryBuilderTDSHelper.ts",
80
82
  "./src/stores/fetch-structure/tds/QueryBuilderTDSState.ts",
81
83
  "./src/stores/fetch-structure/tds/QueryResultSetModifierState.ts",
82
84
  "./src/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateOperator.ts",
@@ -94,6 +96,20 @@
94
96
  "./src/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.ts",
95
97
  "./src/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.ts",
96
98
  "./src/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Sum.ts",
99
+ "./src/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByOperatorLoader.ts",
100
+ "./src/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByState.ts",
101
+ "./src/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByStateBuilder.ts",
102
+ "./src/stores/fetch-structure/tds/olapGroupBy/QueryBuilderOlapGroupByValueSpecificationBuilder.ts",
103
+ "./src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_.ts",
104
+ "./src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Average.ts",
105
+ "./src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Count.ts",
106
+ "./src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Max.ts",
107
+ "./src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Min.ts",
108
+ "./src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapOperator_Sum.ts",
109
+ "./src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_AverageRank_.ts",
110
+ "./src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_DenseRank_.ts",
111
+ "./src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_Rank_.ts",
112
+ "./src/stores/fetch-structure/tds/olapGroupBy/operators/QueryBuilderTDSOlapRankOperator_RowNumber_.ts",
97
113
  "./src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterOperator.ts",
98
114
  "./src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterOperatorLoader.ts",
99
115
  "./src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.ts",
@@ -154,8 +170,11 @@
154
170
  "./src/components/explorer/QueryBuilderPropertySearchPanel.tsx",
155
171
  "./src/components/fetch-structure/QueryBuilderFetchStructurePanel.tsx",
156
172
  "./src/components/fetch-structure/QueryBuilderGraphFetchTreePanel.tsx",
173
+ "./src/components/fetch-structure/QueryBuilderOlapGroupByPanel.tsx",
157
174
  "./src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx",
175
+ "./src/components/fetch-structure/QueryBuilderPostTDSPanel.tsx",
158
176
  "./src/components/fetch-structure/QueryBuilderResultModifierPanel.tsx",
177
+ "./src/components/fetch-structure/QueryBuilderTDSComponentHelper.tsx",
159
178
  "./src/components/fetch-structure/QueryBuilderTDSPanel.tsx",
160
179
  "./src/components/filter/QueryBuilderFilterPanel.tsx",
161
180
  "./src/components/shared/BasicValueSpecificationEditor.tsx",