@finos/legend-query-builder 0.1.2 → 0.2.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 (329) hide show
  1. package/lib/components/QueryBuilder.d.ts.map +1 -1
  2. package/lib/components/QueryBuilder.js +1 -1
  3. package/lib/components/QueryBuilder.js.map +1 -1
  4. package/lib/components/QueryBuilderComponentTestUtils.d.ts.map +1 -1
  5. package/lib/components/QueryBuilderComponentTestUtils.js +1 -3
  6. package/lib/components/QueryBuilderComponentTestUtils.js.map +1 -1
  7. package/lib/components/QueryBuilderDiffPanel.js +1 -2
  8. package/lib/components/QueryBuilderDiffPanel.js.map +1 -1
  9. package/lib/components/QueryBuilderParametersPanel.d.ts +1 -1
  10. package/lib/components/QueryBuilderParametersPanel.d.ts.map +1 -1
  11. package/lib/components/QueryBuilderParametersPanel.js +8 -5
  12. package/lib/components/QueryBuilderParametersPanel.js.map +1 -1
  13. package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts.map +1 -1
  14. package/lib/components/QueryBuilderPropertyExpressionEditor.js +11 -8
  15. package/lib/components/QueryBuilderPropertyExpressionEditor.js.map +1 -1
  16. package/lib/components/QueryBuilderResultPanel.d.ts.map +1 -1
  17. package/lib/components/QueryBuilderResultPanel.js +6 -4
  18. package/lib/components/QueryBuilderResultPanel.js.map +1 -1
  19. package/lib/components/QueryBuilderTextEditor.js +2 -2
  20. package/lib/components/QueryBuilderTextEditor.js.map +1 -1
  21. package/lib/components/QueryBuilder_TestID.d.ts +1 -0
  22. package/lib/components/QueryBuilder_TestID.d.ts.map +1 -1
  23. package/lib/components/QueryBuilder_TestID.js +1 -0
  24. package/lib/components/QueryBuilder_TestID.js.map +1 -1
  25. package/lib/components/explorer/QueryBuilderExplorerPanel.js +2 -2
  26. package/lib/components/explorer/QueryBuilderExplorerPanel.js.map +1 -1
  27. package/lib/components/explorer/QueryBuilderMilestoningEditor.d.ts.map +1 -1
  28. package/lib/components/explorer/QueryBuilderMilestoningEditor.js +5 -4
  29. package/lib/components/explorer/QueryBuilderMilestoningEditor.js.map +1 -1
  30. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts.map +1 -1
  31. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js +4 -2
  32. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
  33. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js +1 -1
  34. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js.map +1 -1
  35. package/lib/components/filter/QueryBuilderFilterPanel.d.ts.map +1 -1
  36. package/lib/components/filter/QueryBuilderFilterPanel.js +7 -4
  37. package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
  38. package/lib/components/shared/BasicValueSpecificationEditor.d.ts +53 -0
  39. package/lib/components/shared/BasicValueSpecificationEditor.d.ts.map +1 -0
  40. package/lib/components/shared/BasicValueSpecificationEditor.js +323 -0
  41. package/lib/components/shared/BasicValueSpecificationEditor.js.map +1 -0
  42. package/lib/components/shared/CustomDatePicker.d.ts +39 -0
  43. package/lib/components/shared/CustomDatePicker.d.ts.map +1 -0
  44. package/lib/components/shared/CustomDatePicker.js +622 -0
  45. package/lib/components/shared/CustomDatePicker.js.map +1 -0
  46. package/lib/components/shared/LambdaEditor.d.ts +92 -0
  47. package/lib/components/shared/LambdaEditor.d.ts.map +1 -0
  48. package/lib/components/shared/LambdaEditor.js +432 -0
  49. package/lib/components/shared/LambdaEditor.js.map +1 -0
  50. package/lib/{graphManager/protocol/pure/v1/V1_QueryBuilder_PropertyExpressionTypeInferenceBuilder.d.ts → components/shared/LambdaParameterValuesEditor.d.ts} +11 -3
  51. package/lib/components/shared/LambdaParameterValuesEditor.d.ts.map +1 -0
  52. package/lib/components/shared/LambdaParameterValuesEditor.js +52 -0
  53. package/lib/components/shared/LambdaParameterValuesEditor.js.map +1 -0
  54. package/lib/components/shared/QueryBuilderLambdaEditor.d.ts +1 -1
  55. package/lib/components/shared/QueryBuilderLambdaEditor.d.ts.map +1 -1
  56. package/lib/components/shared/QueryBuilderLambdaEditor.js +3 -2
  57. package/lib/components/shared/QueryBuilderLambdaEditor.js.map +1 -1
  58. package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.d.ts.map +1 -1
  59. package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js +1 -2
  60. package/lib/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js.map +1 -1
  61. package/lib/graphManager/protocol/pure/v1/{V1_QueryBuilder_FunctionExpressionBuilder.d.ts → V1_QueryValueSpecificationBuilderHelper.d.ts} +3 -2
  62. package/lib/graphManager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.d.ts.map +1 -0
  63. package/lib/graphManager/protocol/pure/v1/{V1_QueryBuilder_FunctionExpressionBuilder.js → V1_QueryValueSpecificationBuilderHelper.js} +3 -2
  64. package/lib/graphManager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.js.map +1 -0
  65. package/lib/index.css +2 -2
  66. package/lib/index.css.map +1 -1
  67. package/lib/index.d.ts +7 -0
  68. package/lib/index.d.ts.map +1 -1
  69. package/lib/index.js +8 -0
  70. package/lib/index.js.map +1 -1
  71. package/lib/package.json +7 -10
  72. package/lib/stores/QueryBuilderMilestoningState.d.ts.map +1 -1
  73. package/lib/stores/QueryBuilderMilestoningState.js +6 -6
  74. package/lib/stores/QueryBuilderMilestoningState.js.map +1 -1
  75. package/lib/stores/QueryBuilderParametersState.d.ts +1 -1
  76. package/lib/stores/QueryBuilderParametersState.d.ts.map +1 -1
  77. package/lib/stores/QueryBuilderParametersState.js +1 -1
  78. package/lib/stores/QueryBuilderParametersState.js.map +1 -1
  79. package/lib/stores/QueryBuilderPropertyEditorState.d.ts.map +1 -1
  80. package/lib/stores/QueryBuilderPropertyEditorState.js +35 -38
  81. package/lib/stores/QueryBuilderPropertyEditorState.js.map +1 -1
  82. package/lib/stores/QueryBuilderResultState.d.ts.map +1 -1
  83. package/lib/stores/QueryBuilderResultState.js +2 -1
  84. package/lib/stores/QueryBuilderResultState.js.map +1 -1
  85. package/lib/stores/QueryBuilderState.d.ts +2 -2
  86. package/lib/stores/QueryBuilderState.d.ts.map +1 -1
  87. package/lib/stores/QueryBuilderState.js +5 -5
  88. package/lib/stores/QueryBuilderState.js.map +1 -1
  89. package/lib/stores/QueryBuilderStateBuilder.js +1 -1
  90. package/lib/stores/QueryBuilderStateBuilder.js.map +1 -1
  91. package/lib/stores/QueryBuilderTextEditorState.d.ts +1 -1
  92. package/lib/stores/QueryBuilderTextEditorState.d.ts.map +1 -1
  93. package/lib/stores/QueryBuilderTextEditorState.js +2 -1
  94. package/lib/stores/QueryBuilderTextEditorState.js.map +1 -1
  95. package/lib/stores/QueryBuilderValueSpecificationBuilder.d.ts.map +1 -1
  96. package/lib/stores/QueryBuilderValueSpecificationBuilder.js +2 -2
  97. package/lib/stores/QueryBuilderValueSpecificationBuilder.js.map +1 -1
  98. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.d.ts.map +1 -1
  99. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js +23 -20
  100. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js.map +1 -1
  101. package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts +1 -1
  102. package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts.map +1 -1
  103. package/lib/stores/QueryBuilderValueSpecificationHelper.js +10 -9
  104. package/lib/stores/QueryBuilderValueSpecificationHelper.js.map +1 -1
  105. package/lib/stores/explorer/QueryBuilderExplorerState.d.ts.map +1 -1
  106. package/lib/stores/explorer/QueryBuilderExplorerState.js +4 -3
  107. package/lib/stores/explorer/QueryBuilderExplorerState.js.map +1 -1
  108. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js +1 -1
  109. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js.map +1 -1
  110. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.js +1 -1
  111. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.js.map +1 -1
  112. package/lib/stores/fetch-structure/graph-fetch/{QueryBuilderGraphFetchValueSpecificationBuilder.d.ts → QueryBuilderGraphFetchTreeValueSpecificationBuilder.d.ts} +1 -1
  113. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeValueSpecificationBuilder.d.ts.map +1 -0
  114. package/lib/stores/fetch-structure/graph-fetch/{QueryBuilderGraphFetchValueSpecificationBuilder.js → QueryBuilderGraphFetchTreeValueSpecificationBuilder.js} +1 -1
  115. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeValueSpecificationBuilder.js.map +1 -0
  116. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.d.ts +1 -1
  117. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.d.ts.map +1 -1
  118. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.js +3 -3
  119. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.js.map +1 -1
  120. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.js +1 -1
  121. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.js.map +1 -1
  122. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionStateBuilder.js +4 -4
  123. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionStateBuilder.js.map +1 -1
  124. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.d.ts.map +1 -1
  125. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.js +6 -6
  126. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.js.map +1 -1
  127. package/lib/stores/fetch-structure/projection/aggregation/operators/{QueryBuilderAggregateOperatorHelper.d.ts → QueryBuilderAggregateOperatorValueSpecificationBuilder.d.ts} +2 -2
  128. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperatorValueSpecificationBuilder.d.ts.map +1 -0
  129. package/lib/stores/fetch-structure/projection/aggregation/operators/{QueryBuilderAggregateOperatorHelper.js → QueryBuilderAggregateOperatorValueSpecificationBuilder.js} +2 -2
  130. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperatorValueSpecificationBuilder.js.map +1 -0
  131. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Average.js +3 -3
  132. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Average.js.map +1 -1
  133. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Count.js +3 -3
  134. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Count.js.map +1 -1
  135. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Distinct.js +3 -3
  136. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Distinct.js.map +1 -1
  137. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.js +1 -1
  138. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.js.map +1 -1
  139. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_JoinString.js +1 -1
  140. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_JoinString.js.map +1 -1
  141. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Max.js +5 -5
  142. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Max.js.map +1 -1
  143. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Min.js +5 -5
  144. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Min.js.map +1 -1
  145. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.js +3 -3
  146. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.js.map +1 -1
  147. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.js +3 -3
  148. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.js.map +1 -1
  149. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Sum.js +3 -3
  150. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Sum.js.map +1 -1
  151. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterStateBuilder.js +2 -2
  152. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterStateBuilder.js.map +1 -1
  153. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.d.ts +1 -1
  154. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.d.ts.map +1 -1
  155. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js +10 -10
  156. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js.map +1 -1
  157. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorHelper.d.ts +1 -4
  158. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorHelper.d.ts.map +1 -1
  159. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorHelper.js +3 -46
  160. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorHelper.js.map +1 -1
  161. package/{src/graphManager/protocol/pure/v1/V1_QueryBuilder_PropertyExpressionTypeInferenceBuilder.ts → lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.d.ts} +5 -13
  162. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.d.ts.map +1 -0
  163. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.js +61 -0
  164. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.js.map +1 -0
  165. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.d.ts.map +1 -1
  166. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js +5 -4
  167. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js.map +1 -1
  168. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.d.ts.map +1 -1
  169. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js +5 -4
  170. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js.map +1 -1
  171. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.d.ts.map +1 -1
  172. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js +10 -8
  173. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js.map +1 -1
  174. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.d.ts.map +1 -1
  175. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js +5 -4
  176. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js.map +1 -1
  177. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.js +3 -3
  178. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.js.map +1 -1
  179. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.js +3 -3
  180. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.js.map +1 -1
  181. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js +1 -1
  182. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js.map +1 -1
  183. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.d.ts.map +1 -1
  184. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js +5 -4
  185. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js.map +1 -1
  186. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.js +3 -3
  187. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.js.map +1 -1
  188. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.d.ts.map +1 -1
  189. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js +5 -4
  190. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js.map +1 -1
  191. package/lib/stores/filter/operators/{QueryBuilderFilterOperatorHelper.d.ts → QueryBuilderFilterOperatorValueSpecificationBuilder.d.ts} +1 -1
  192. package/lib/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.d.ts.map +1 -0
  193. package/lib/stores/filter/operators/{QueryBuilderFilterOperatorHelper.js → QueryBuilderFilterOperatorValueSpecificationBuilder.js} +11 -13
  194. package/lib/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.js.map +1 -0
  195. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.d.ts.map +1 -1
  196. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js +7 -6
  197. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js.map +1 -1
  198. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.d.ts.map +1 -1
  199. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.js +7 -6
  200. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.js.map +1 -1
  201. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.d.ts.map +1 -1
  202. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.js +13 -11
  203. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.js.map +1 -1
  204. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.d.ts.map +1 -1
  205. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.js +8 -7
  206. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.js.map +1 -1
  207. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts.map +1 -1
  208. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js +8 -7
  209. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js.map +1 -1
  210. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.js +6 -6
  211. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.js.map +1 -1
  212. package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.js +4 -4
  213. package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.js.map +1 -1
  214. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.d.ts.map +1 -1
  215. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.js +8 -7
  216. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.js.map +1 -1
  217. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.d.ts.map +1 -1
  218. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.js +8 -7
  219. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.js.map +1 -1
  220. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.d.ts.map +1 -1
  221. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js +7 -6
  222. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js.map +1 -1
  223. package/lib/stores/shared/LambdaEditorState.d.ts +40 -0
  224. package/lib/stores/shared/LambdaEditorState.d.ts.map +1 -0
  225. package/lib/stores/shared/LambdaEditorState.js +81 -0
  226. package/lib/stores/shared/LambdaEditorState.js.map +1 -0
  227. package/lib/stores/shared/LambdaParameterState.d.ts +62 -0
  228. package/lib/stores/shared/LambdaParameterState.d.ts.map +1 -0
  229. package/lib/stores/shared/LambdaParameterState.js +157 -0
  230. package/lib/stores/shared/LambdaParameterState.js.map +1 -0
  231. package/lib/{graphManager/protocol/pure/v1/V1_QueryBuilder_PropertyExpressionTypeInferenceBuilder.js → stores/shared/ValueSpecificationEditorHelper.d.ts} +5 -3
  232. package/lib/stores/shared/ValueSpecificationEditorHelper.d.ts.map +1 -0
  233. package/lib/stores/shared/ValueSpecificationEditorHelper.js +77 -0
  234. package/lib/stores/shared/ValueSpecificationEditorHelper.js.map +1 -0
  235. package/lib/stores/shared/ValueSpecificationModifierHelper.d.ts +33 -0
  236. package/lib/stores/shared/ValueSpecificationModifierHelper.d.ts.map +1 -0
  237. package/lib/stores/shared/ValueSpecificationModifierHelper.js +71 -0
  238. package/lib/stores/shared/ValueSpecificationModifierHelper.js.map +1 -0
  239. package/package.json +14 -17
  240. package/src/components/QueryBuilder.tsx +4 -1
  241. package/src/components/QueryBuilderComponentTestUtils.tsx +2 -2
  242. package/src/components/QueryBuilderDiffPanel.tsx +1 -1
  243. package/src/components/QueryBuilderParametersPanel.tsx +8 -7
  244. package/src/components/QueryBuilderPropertyExpressionEditor.tsx +15 -12
  245. package/src/components/QueryBuilderResultPanel.tsx +8 -6
  246. package/src/components/QueryBuilderTextEditor.tsx +2 -2
  247. package/src/components/QueryBuilder_TestID.ts +2 -0
  248. package/src/components/explorer/QueryBuilderExplorerPanel.tsx +2 -2
  249. package/src/components/explorer/QueryBuilderMilestoningEditor.tsx +5 -3
  250. package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +6 -4
  251. package/src/components/fetch-structure/QueryBuilderResultModifierPanel.tsx +1 -1
  252. package/src/components/filter/QueryBuilderFilterPanel.tsx +9 -6
  253. package/src/components/shared/BasicValueSpecificationEditor.tsx +837 -0
  254. package/src/components/shared/CustomDatePicker.tsx +1363 -0
  255. package/src/components/shared/LambdaEditor.tsx +858 -0
  256. package/src/components/shared/LambdaParameterValuesEditor.tsx +121 -0
  257. package/src/components/shared/QueryBuilderLambdaEditor.tsx +5 -5
  258. package/src/graphManager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.ts +2 -2
  259. package/src/graphManager/protocol/pure/v1/{V1_QueryBuilder_FunctionExpressionBuilder.ts → V1_QueryValueSpecificationBuilderHelper.ts} +9 -1
  260. package/src/index.ts +11 -0
  261. package/src/stores/QueryBuilderMilestoningState.ts +7 -7
  262. package/src/stores/QueryBuilderParametersState.ts +4 -4
  263. package/src/stores/QueryBuilderPropertyEditorState.ts +49 -56
  264. package/src/stores/QueryBuilderResultState.ts +2 -4
  265. package/src/stores/QueryBuilderState.ts +5 -5
  266. package/src/stores/QueryBuilderStateBuilder.ts +1 -1
  267. package/src/stores/QueryBuilderTextEditorState.ts +2 -1
  268. package/src/stores/QueryBuilderValueSpecificationBuilder.ts +5 -2
  269. package/src/stores/QueryBuilderValueSpecificationBuilderHelper.ts +30 -42
  270. package/src/stores/QueryBuilderValueSpecificationHelper.ts +13 -8
  271. package/src/stores/explorer/QueryBuilderExplorerState.ts +12 -2
  272. package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.ts +1 -1
  273. package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.ts +3 -3
  274. package/src/stores/fetch-structure/graph-fetch/{QueryBuilderGraphFetchValueSpecificationBuilder.ts → QueryBuilderGraphFetchTreeValueSpecificationBuilder.ts} +0 -1
  275. package/src/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.ts +3 -3
  276. package/src/stores/fetch-structure/projection/QueryBuilderProjectionState.ts +1 -1
  277. package/src/stores/fetch-structure/projection/QueryBuilderProjectionStateBuilder.ts +4 -4
  278. package/src/stores/fetch-structure/projection/QueryBuilderProjectionValueSpecificationBuilder.ts +6 -9
  279. package/src/stores/fetch-structure/projection/aggregation/operators/{QueryBuilderAggregateOperatorHelper.ts → QueryBuilderAggregateOperatorValueSpecificationBuilder.ts} +1 -1
  280. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Average.ts +3 -3
  281. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Count.ts +3 -3
  282. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Distinct.ts +3 -3
  283. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.ts +1 -1
  284. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_JoinString.ts +1 -1
  285. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Max.ts +5 -5
  286. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Min.ts +5 -5
  287. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.ts +3 -3
  288. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.ts +3 -3
  289. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Sum.ts +3 -3
  290. package/src/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterStateBuilder.ts +2 -2
  291. package/src/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.ts +12 -10
  292. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorHelper.ts +2 -86
  293. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.ts +104 -0
  294. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.ts +3 -3
  295. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.ts +3 -3
  296. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.ts +8 -7
  297. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.ts +4 -4
  298. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.ts +3 -3
  299. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.ts +2 -2
  300. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.ts +1 -1
  301. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.ts +4 -4
  302. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.ts +3 -3
  303. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.ts +3 -3
  304. package/src/stores/filter/operators/{QueryBuilderFilterOperatorHelper.ts → QueryBuilderFilterOperatorValueSpecificationBuilder.ts} +10 -11
  305. package/src/stores/filter/operators/QueryBuilderFilterOperator_Contain.ts +5 -5
  306. package/src/stores/filter/operators/QueryBuilderFilterOperator_EndWith.ts +5 -5
  307. package/src/stores/filter/operators/QueryBuilderFilterOperator_Equal.ts +11 -10
  308. package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.ts +7 -7
  309. package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.ts +7 -7
  310. package/src/stores/filter/operators/QueryBuilderFilterOperator_In.ts +5 -5
  311. package/src/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.ts +3 -3
  312. package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThan.ts +7 -7
  313. package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.ts +7 -7
  314. package/src/stores/filter/operators/QueryBuilderFilterOperator_StartWith.ts +5 -5
  315. package/src/stores/shared/LambdaEditorState.ts +118 -0
  316. package/src/stores/shared/LambdaParameterState.ts +259 -0
  317. package/src/stores/shared/ValueSpecificationEditorHelper.ts +143 -0
  318. package/src/stores/shared/ValueSpecificationModifierHelper.ts +177 -0
  319. package/tsconfig.json +14 -7
  320. package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_FunctionExpressionBuilder.d.ts.map +0 -1
  321. package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_FunctionExpressionBuilder.js.map +0 -1
  322. package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_PropertyExpressionTypeInferenceBuilder.d.ts.map +0 -1
  323. package/lib/graphManager/protocol/pure/v1/V1_QueryBuilder_PropertyExpressionTypeInferenceBuilder.js.map +0 -1
  324. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.d.ts.map +0 -1
  325. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchValueSpecificationBuilder.js.map +0 -1
  326. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperatorHelper.d.ts.map +0 -1
  327. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperatorHelper.js.map +0 -1
  328. package/lib/stores/filter/operators/QueryBuilderFilterOperatorHelper.d.ts.map +0 -1
  329. package/lib/stores/filter/operators/QueryBuilderFilterOperatorHelper.js.map +0 -1
@@ -31,7 +31,7 @@ import {
31
31
  import {
32
32
  buildAggregateColumnState,
33
33
  buildAggregateExpression,
34
- } from './QueryBuilderAggregateOperatorHelper.js';
34
+ } from './QueryBuilderAggregateOperatorValueSpecificationBuilder.js';
35
35
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
36
36
  import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../../graphManager/QueryBuilderHashUtils.js';
37
37
  import { type Hashable, hashArray } from '@finos/legend-shared';
@@ -52,7 +52,7 @@ export class QueryBuilderAggregateOperator_Sum
52
52
  ) {
53
53
  const propertyType =
54
54
  projectionColumnState.propertyExpressionState.propertyExpression.func
55
- .genericType.value.rawType;
55
+ .value.genericType.value.rawType;
56
56
  return (
57
57
  [
58
58
  PRIMITIVE_TYPE.NUMBER,
@@ -72,8 +72,8 @@ export class QueryBuilderAggregateOperator_Sum
72
72
  ): ValueSpecification {
73
73
  return buildAggregateExpression(
74
74
  QUERY_BUILDER_SUPPORTED_FUNCTIONS.SUM,
75
- graph,
76
75
  variableName,
76
+ graph,
77
77
  );
78
78
  }
79
79
 
@@ -57,7 +57,7 @@ const findProjectionColumnState = (
57
57
  postFilterState: QueryBuilderPostFilterState,
58
58
  ): QueryBuilderProjectionColumnState | QueryBuilderAggregateColumnState => {
59
59
  const projectionState = postFilterState.projectionState;
60
- const properyExpressionName = propertyExpression.func.name;
60
+ const properyExpressionName = propertyExpression.func.value.name;
61
61
  assertTrue(
62
62
  Object.values(TDS_COLUMN_GETTER).includes(
63
63
  properyExpressionName as TDS_COLUMN_GETTER,
@@ -121,7 +121,7 @@ export const buildPostFilterConditionState = (
121
121
  if (
122
122
  tdsColumnGetter &&
123
123
  expression instanceof AbstractPropertyExpression &&
124
- expression.func.name === tdsColumnGetter
124
+ expression.func.value.name === tdsColumnGetter
125
125
  ) {
126
126
  const columnState = findProjectionColumnState(expression, postFilterState);
127
127
  postConditionState = new PostFilterConditionState(
@@ -33,7 +33,7 @@ import {
33
33
  } from './QueryBuilderPostFilterState.js';
34
34
 
35
35
  const buildPostFilterExpression = (
36
- filterState: QueryBuilderPostFilterState,
36
+ postFilterState: QueryBuilderPostFilterState,
37
37
  node: QueryBuilderPostFilterTreeNodeData,
38
38
  ): ValueSpecification | undefined => {
39
39
  if (node instanceof QueryBuilderPostFilterTreeConditionNodeData) {
@@ -42,7 +42,7 @@ const buildPostFilterExpression = (
42
42
  );
43
43
  } else if (node instanceof QueryBuilderPostFilterTreeGroupNodeData) {
44
44
  const multiplicityOne =
45
- filterState.projectionState.queryBuilderState.graphManagerState.graph.getTypicalMultiplicity(
45
+ postFilterState.projectionState.queryBuilderState.graphManagerState.graph.getTypicalMultiplicity(
46
46
  TYPICAL_MULTIPLICITY_TYPE.ONE,
47
47
  );
48
48
  const func = new SimpleFunctionExpression(
@@ -50,9 +50,9 @@ const buildPostFilterExpression = (
50
50
  multiplicityOne,
51
51
  );
52
52
  const clauses = node.childrenIds
53
- .map((e) => filterState.nodes.get(e))
53
+ .map((e) => postFilterState.nodes.get(e))
54
54
  .filter(isNonNullable)
55
- .map((e) => buildPostFilterExpression(filterState, e))
55
+ .map((e) => buildPostFilterExpression(postFilterState, e))
56
56
  .filter(isNonNullable);
57
57
  /**
58
58
  * NOTE: Due to a limitation (or perhaps design decision) in the engine, group operations
@@ -88,7 +88,7 @@ const buildPostFilterExpression = (
88
88
 
89
89
  export const appendPostFilter = (
90
90
  postFilterState: QueryBuilderPostFilterState,
91
- lambda: LambdaFunction,
91
+ lambdaFunction: LambdaFunction,
92
92
  ): LambdaFunction => {
93
93
  const postFilterConditionExpressions = postFilterState.rootIds
94
94
  .map((e) => guaranteeNonNullable(postFilterState.nodes.get(e)))
@@ -96,9 +96,9 @@ export const appendPostFilter = (
96
96
  .filter(isNonNullable);
97
97
  if (
98
98
  !postFilterConditionExpressions.length ||
99
- lambda.expressionSequence.length !== 1
99
+ lambdaFunction.expressionSequence.length !== 1
100
100
  ) {
101
- return lambda;
101
+ return lambdaFunction;
102
102
  }
103
103
  const multiplicityOne =
104
104
  postFilterState.projectionState.queryBuilderState.graphManagerState.graph.getTypicalMultiplicity(
@@ -114,8 +114,10 @@ export const appendPostFilter = (
114
114
  extractElementNameFromPath(QUERY_BUILDER_SUPPORTED_FUNCTIONS.TDS_FILTER),
115
115
  multiplicityOne,
116
116
  );
117
- const currentExpression = guaranteeNonNullable(lambda.expressionSequence[0]);
117
+ const currentExpression = guaranteeNonNullable(
118
+ lambdaFunction.expressionSequence[0],
119
+ );
118
120
  filterExpression.parametersValues = [currentExpression, filterLambda];
119
- lambda.expressionSequence[0] = filterExpression;
120
- return lambda;
121
+ lambdaFunction.expressionSequence[0] = filterExpression;
122
+ return lambdaFunction;
121
123
  };
@@ -16,30 +16,10 @@
16
16
 
17
17
  import {
18
18
  type Multiplicity,
19
- type FunctionExpression,
20
- AbstractPropertyExpression,
21
- extractElementNameFromPath,
22
- GenericType,
23
- GenericTypeExplicitReference,
24
- PrimitiveInstanceValue,
25
- PRIMITIVE_TYPE,
26
- SimpleFunctionExpression,
27
19
  TYPICAL_MULTIPLICITY_TYPE,
28
- VariableExpression,
29
- getAllClassDerivedProperties,
30
- CORE_PURE_PATH,
31
20
  } from '@finos/legend-graph';
32
- import {
33
- guaranteeNonNullable,
34
- UnsupportedOperationError,
35
- } from '@finos/legend-shared';
21
+ import { UnsupportedOperationError } from '@finos/legend-shared';
36
22
  import { QueryBuilderAggregateColumnState } from '../../aggregation/QueryBuilderAggregationState.js';
37
- import type { QueryBuilderPostFilterOperator } from '../QueryBuilderPostFilterOperator.js';
38
- import {
39
- type PostFilterConditionState,
40
- type TDS_COLUMN_GETTER,
41
- getTDSColumnDerivedProperyFromType,
42
- } from '../QueryBuilderPostFilterState.js';
43
23
  import {
44
24
  type QueryBuilderProjectionColumnState,
45
25
  QueryBuilderSimpleProjectionColumnState,
@@ -55,7 +35,7 @@ export const getColumnMultiplicity = (
55
35
  TYPICAL_MULTIPLICITY_TYPE.ONE,
56
36
  );
57
37
  } else if (columnState instanceof QueryBuilderSimpleProjectionColumnState) {
58
- return columnState.propertyExpressionState.propertyExpression.func
38
+ return columnState.propertyExpressionState.propertyExpression.func.value
59
39
  .multiplicity;
60
40
  }
61
41
  throw new UnsupportedOperationError(
@@ -63,67 +43,3 @@ export const getColumnMultiplicity = (
63
43
  columnState,
64
44
  );
65
45
  };
66
-
67
- export const buildPostFilterConditionExpression = (
68
- filterConditionState: PostFilterConditionState,
69
- operator: QueryBuilderPostFilterOperator,
70
- /**
71
- * If provided, this will be used to construct the simple
72
- * function expression for the function with the specified
73
- * name. If not provided, we will fall back to use the TDS column getter function expression.
74
- * This is the case because with TDS, we are provided some filter-like operators, e.g. IS_NULL, IS_NOT_NULL, etc.
75
- */
76
- operatorFunctionFullPath: string | undefined,
77
- ): FunctionExpression => {
78
- // primitives
79
- const graph =
80
- filterConditionState.postFilterState.projectionState.queryBuilderState
81
- .graphManagerState.graph;
82
- const multiplicityOne = graph.getTypicalMultiplicity(
83
- TYPICAL_MULTIPLICITY_TYPE.ONE,
84
- );
85
- const typeString = graph.getPrimitiveType(PRIMITIVE_TYPE.STRING);
86
- // property expression
87
- const colState = filterConditionState.columnState;
88
- const tdsPropertyExpression = new AbstractPropertyExpression(
89
- '',
90
- multiplicityOne,
91
- );
92
- let tdsDerivedPropertyName: TDS_COLUMN_GETTER;
93
- const correspondingTdsDerivedProperty = operator.getTdsColumnGetter();
94
- if (correspondingTdsDerivedProperty) {
95
- tdsDerivedPropertyName = correspondingTdsDerivedProperty;
96
- } else {
97
- const type = guaranteeNonNullable(colState.getReturnType());
98
- tdsDerivedPropertyName = getTDSColumnDerivedProperyFromType(type);
99
- }
100
- tdsPropertyExpression.func = guaranteeNonNullable(
101
- getAllClassDerivedProperties(graph.getClass(CORE_PURE_PATH.TDS_ROW)).find(
102
- (p) => p.name === tdsDerivedPropertyName,
103
- ),
104
- );
105
- const variableName = new VariableExpression(
106
- filterConditionState.postFilterState.lambdaParameterName,
107
- multiplicityOne,
108
- );
109
- const colInstanceValue = new PrimitiveInstanceValue(
110
- GenericTypeExplicitReference.create(new GenericType(typeString)),
111
- multiplicityOne,
112
- );
113
- colInstanceValue.values = [colState.columnName];
114
- tdsPropertyExpression.parametersValues = [variableName, colInstanceValue];
115
-
116
- if (operatorFunctionFullPath) {
117
- const expression = new SimpleFunctionExpression(
118
- extractElementNameFromPath(operatorFunctionFullPath),
119
- multiplicityOne,
120
- );
121
- expression.parametersValues.push(tdsPropertyExpression);
122
- if (filterConditionState.value) {
123
- expression.parametersValues.push(filterConditionState.value);
124
- }
125
- return expression;
126
- } else {
127
- return tdsPropertyExpression;
128
- }
129
- };
@@ -0,0 +1,104 @@
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
+ type FunctionExpression,
19
+ AbstractPropertyExpression,
20
+ extractElementNameFromPath,
21
+ GenericType,
22
+ GenericTypeExplicitReference,
23
+ PrimitiveInstanceValue,
24
+ PRIMITIVE_TYPE,
25
+ SimpleFunctionExpression,
26
+ TYPICAL_MULTIPLICITY_TYPE,
27
+ VariableExpression,
28
+ getAllClassDerivedProperties,
29
+ CORE_PURE_PATH,
30
+ PropertyExplicitReference,
31
+ } from '@finos/legend-graph';
32
+ import { guaranteeNonNullable } from '@finos/legend-shared';
33
+ import type { QueryBuilderPostFilterOperator } from '../QueryBuilderPostFilterOperator.js';
34
+ import {
35
+ type PostFilterConditionState,
36
+ type TDS_COLUMN_GETTER,
37
+ getTDSColumnDerivedProperyFromType,
38
+ } from '../QueryBuilderPostFilterState.js';
39
+
40
+ export const buildPostFilterConditionExpression = (
41
+ filterConditionState: PostFilterConditionState,
42
+ operator: QueryBuilderPostFilterOperator,
43
+ /**
44
+ * If provided, this will be used to construct the simple
45
+ * function expression for the function with the specified
46
+ * name. If not provided, we will fall back to use the TDS column getter function expression.
47
+ * This is the case because with TDS, we are provided some filter-like operators, e.g. IS_NULL, IS_NOT_NULL, etc.
48
+ */
49
+ operatorFunctionFullPath: string | undefined,
50
+ ): FunctionExpression => {
51
+ // primitives
52
+ const graph =
53
+ filterConditionState.postFilterState.projectionState.queryBuilderState
54
+ .graphManagerState.graph;
55
+ const multiplicityOne = graph.getTypicalMultiplicity(
56
+ TYPICAL_MULTIPLICITY_TYPE.ONE,
57
+ );
58
+ const typeString = graph.getPrimitiveType(PRIMITIVE_TYPE.STRING);
59
+ // property expression
60
+ const colState = filterConditionState.columnState;
61
+ const tdsPropertyExpression = new AbstractPropertyExpression(
62
+ '',
63
+ multiplicityOne,
64
+ );
65
+ let tdsDerivedPropertyName: TDS_COLUMN_GETTER;
66
+ const correspondingTdsDerivedProperty = operator.getTdsColumnGetter();
67
+ if (correspondingTdsDerivedProperty) {
68
+ tdsDerivedPropertyName = correspondingTdsDerivedProperty;
69
+ } else {
70
+ const type = guaranteeNonNullable(colState.getReturnType());
71
+ tdsDerivedPropertyName = getTDSColumnDerivedProperyFromType(type);
72
+ }
73
+ tdsPropertyExpression.func = PropertyExplicitReference.create(
74
+ guaranteeNonNullable(
75
+ getAllClassDerivedProperties(graph.getClass(CORE_PURE_PATH.TDS_ROW)).find(
76
+ (p) => p.name === tdsDerivedPropertyName,
77
+ ),
78
+ ),
79
+ );
80
+ const variableName = new VariableExpression(
81
+ filterConditionState.postFilterState.lambdaParameterName,
82
+ multiplicityOne,
83
+ );
84
+ const colInstanceValue = new PrimitiveInstanceValue(
85
+ GenericTypeExplicitReference.create(new GenericType(typeString)),
86
+ multiplicityOne,
87
+ );
88
+ colInstanceValue.values = [colState.columnName];
89
+ tdsPropertyExpression.parametersValues = [variableName, colInstanceValue];
90
+
91
+ if (operatorFunctionFullPath) {
92
+ const expression = new SimpleFunctionExpression(
93
+ extractElementNameFromPath(operatorFunctionFullPath),
94
+ multiplicityOne,
95
+ );
96
+ expression.parametersValues.push(tdsPropertyExpression);
97
+ if (filterConditionState.value) {
98
+ expression.parametersValues.push(filterConditionState.value);
99
+ }
100
+ return expression;
101
+ } else {
102
+ return tdsPropertyExpression;
103
+ }
104
+ };
@@ -20,7 +20,6 @@ import {
20
20
  type ValueSpecification,
21
21
  type FunctionExpression,
22
22
  PRIMITIVE_TYPE,
23
- buildPrimitiveInstanceValue,
24
23
  } from '@finos/legend-graph';
25
24
  import {
26
25
  guaranteeNonNullable,
@@ -40,9 +39,10 @@ import {
40
39
  getNonCollectionValueSpecificationType,
41
40
  unwrapNotExpression,
42
41
  } from '../../../../QueryBuilderValueSpecificationHelper.js';
43
- import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorHelper.js';
42
+ import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
44
43
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
45
44
  import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../../graphManager/QueryBuilderHashUtils.js';
45
+ import { buildPrimitiveInstanceValue } from '../../../../shared/ValueSpecificationEditorHelper.js';
46
46
 
47
47
  export class QueryBuilderPostFilterOperator_Contain
48
48
  extends QueryBuilderPostFilterOperator
@@ -133,9 +133,9 @@ export class QueryBuilderPostFilterOperator_NotContain extends QueryBuilderPostF
133
133
  );
134
134
  return expression
135
135
  ? buildNotExpression(
136
+ expression,
136
137
  postFilterConditionState.postFilterState.projectionState
137
138
  .queryBuilderState.graphManagerState.graph,
138
- expression,
139
139
  )
140
140
  : undefined;
141
141
  }
@@ -19,7 +19,6 @@ import {
19
19
  type ValueSpecification,
20
20
  type FunctionExpression,
21
21
  PRIMITIVE_TYPE,
22
- buildPrimitiveInstanceValue,
23
22
  } from '@finos/legend-graph';
24
23
  import {
25
24
  type Hashable,
@@ -38,9 +37,10 @@ import {
38
37
  getNonCollectionValueSpecificationType,
39
38
  unwrapNotExpression,
40
39
  } from '../../../../QueryBuilderValueSpecificationHelper.js';
41
- import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorHelper.js';
40
+ import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
42
41
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
43
42
  import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../../graphManager/QueryBuilderHashUtils.js';
43
+ import { buildPrimitiveInstanceValue } from '../../../../shared/ValueSpecificationEditorHelper.js';
44
44
 
45
45
  export class QueryBuilderPostFilterOperator_EndWith
46
46
  extends QueryBuilderPostFilterOperator
@@ -130,9 +130,9 @@ export class QueryBuilderPostFilterOperator_NotEndWith extends QueryBuilderPostF
130
130
  );
131
131
  return expression
132
132
  ? buildNotExpression(
133
+ expression,
133
134
  postFilterConditionState.postFilterState.projectionState
134
135
  .queryBuilderState.graphManagerState.graph,
135
- expression,
136
136
  )
137
137
  : undefined;
138
138
  }
@@ -29,7 +29,6 @@ import {
29
29
  PRIMITIVE_TYPE,
30
30
  TYPICAL_MULTIPLICITY_TYPE,
31
31
  SUPPORTED_FUNCTIONS,
32
- buildPrimitiveInstanceValue,
33
32
  } from '@finos/legend-graph';
34
33
  import {
35
34
  guaranteeNonNullable,
@@ -50,9 +49,11 @@ import {
50
49
  isTypeCompatibleForAssignment,
51
50
  unwrapNotExpression,
52
51
  } from '../../../../QueryBuilderValueSpecificationHelper.js';
53
- import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorHelper.js';
52
+ import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
54
53
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
55
54
  import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../../graphManager/QueryBuilderHashUtils.js';
55
+ import { buildPrimitiveInstanceValue } from '../../../../shared/ValueSpecificationEditorHelper.js';
56
+ import { instanceValue_setValues } from '../../../../shared/ValueSpecificationModifierHelper.js';
56
57
 
57
58
  export class QueryBuilderPostFilterOperator_Equal
58
59
  extends QueryBuilderPostFilterOperator
@@ -140,9 +141,9 @@ export class QueryBuilderPostFilterOperator_Equal
140
141
  ),
141
142
  multiplicityOne,
142
143
  );
143
- enumValueInstanceValue.values = [
144
+ instanceValue_setValues(enumValueInstanceValue, [
144
145
  EnumValueExplicitReference.create(propertyType.values[0] as Enum),
145
- ];
146
+ ]);
146
147
  return enumValueInstanceValue;
147
148
  }
148
149
  throw new UnsupportedOperationError(
@@ -182,8 +183,8 @@ export class QueryBuilderPostFilterOperator_Equal
182
183
  postFilterState,
183
184
  expression,
184
185
  expression.parametersValues[0] instanceof AbstractPropertyExpression &&
185
- expression.parametersValues[0].func.genericType.value.rawType.path ===
186
- PRIMITIVE_TYPE.DATETIME &&
186
+ expression.parametersValues[0].func.value.genericType.value.rawType
187
+ .path === PRIMITIVE_TYPE.DATETIME &&
187
188
  expression.parametersValues[1]?.genericType?.value.rawType.path !==
188
189
  PRIMITIVE_TYPE.DATETIME
189
190
  ? SUPPORTED_FUNCTIONS.IS_ON_DAY
@@ -209,9 +210,9 @@ export class QueryBuilderPostFilterOperator_NotEqual extends QueryBuilderPostFil
209
210
  );
210
211
  return expression
211
212
  ? buildNotExpression(
213
+ expression,
212
214
  postFilterConditionState.postFilterState.projectionState
213
215
  .queryBuilderState.graphManagerState.graph,
214
- expression,
215
216
  )
216
217
  : undefined;
217
218
  }
@@ -21,7 +21,6 @@ import {
21
21
  AbstractPropertyExpression,
22
22
  PRIMITIVE_TYPE,
23
23
  SUPPORTED_FUNCTIONS,
24
- buildPrimitiveInstanceValue,
25
24
  } from '@finos/legend-graph';
26
25
  import {
27
26
  guaranteeNonNullable,
@@ -40,9 +39,10 @@ import {
40
39
  getNonCollectionValueSpecificationType,
41
40
  isTypeCompatibleForAssignment,
42
41
  } from '../../../../QueryBuilderValueSpecificationHelper.js';
43
- import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorHelper.js';
42
+ import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
44
43
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
45
44
  import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../../graphManager/QueryBuilderHashUtils.js';
45
+ import { buildPrimitiveInstanceValue } from '../../../../shared/ValueSpecificationEditorHelper.js';
46
46
 
47
47
  export class QueryBuilderPostFilterOperator_GreaterThan
48
48
  extends QueryBuilderPostFilterOperator
@@ -137,8 +137,8 @@ export class QueryBuilderPostFilterOperator_GreaterThan
137
137
  postFilterState,
138
138
  expression,
139
139
  expression.parametersValues[0] instanceof AbstractPropertyExpression &&
140
- expression.parametersValues[0].func.genericType.value.rawType.path ===
141
- PRIMITIVE_TYPE.DATETIME &&
140
+ expression.parametersValues[0].func.value.genericType.value.rawType
141
+ .path === PRIMITIVE_TYPE.DATETIME &&
142
142
  expression.parametersValues[1]?.genericType?.value.rawType.path !==
143
143
  PRIMITIVE_TYPE.DATETIME
144
144
  ? SUPPORTED_FUNCTIONS.IS_AFTER_DAY
@@ -26,7 +26,7 @@ import type {
26
26
  PostFilterConditionState,
27
27
  QueryBuilderPostFilterState,
28
28
  } from '../QueryBuilderPostFilterState.js';
29
- import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorHelper.js';
29
+ import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
30
30
  import { QueryBuilderPostFilterOperator_GreaterThan } from './QueryBuilderPostFilterOperator_GreaterThan.js';
31
31
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
32
32
  import { hashArray } from '@finos/legend-shared';
@@ -60,8 +60,8 @@ export class QueryBuilderPostFilterOperator_GreaterThanEqual extends QueryBuilde
60
60
  postFilterState,
61
61
  expression,
62
62
  expression.parametersValues[0] instanceof AbstractPropertyExpression &&
63
- expression.parametersValues[0].func.genericType.value.rawType.path ===
64
- PRIMITIVE_TYPE.DATETIME &&
63
+ expression.parametersValues[0].func.value.genericType.value.rawType
64
+ .path === PRIMITIVE_TYPE.DATETIME &&
65
65
  expression.parametersValues[1]?.genericType?.value.rawType.path !==
66
66
  PRIMITIVE_TYPE.DATETIME
67
67
  ? SUPPORTED_FUNCTIONS.IS_AFTER_DAY
@@ -38,7 +38,7 @@ import type {
38
38
  PostFilterConditionState,
39
39
  QueryBuilderPostFilterState,
40
40
  } from '../QueryBuilderPostFilterState.js';
41
- import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorHelper.js';
41
+ import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
42
42
  import {
43
43
  buildNotExpression,
44
44
  getCollectionValueSpecificationType,
@@ -176,9 +176,9 @@ export class QueryBuilderPostFilterOperator_NotIn extends QueryBuilderPostFilter
176
176
  );
177
177
  return expression
178
178
  ? buildNotExpression(
179
+ expression,
179
180
  postFilterConditionState.postFilterState.projectionState
180
181
  .queryBuilderState.graphManagerState.graph,
181
- expression,
182
182
  )
183
183
  : undefined;
184
184
  }
@@ -29,7 +29,7 @@ import {
29
29
  TDS_COLUMN_GETTER,
30
30
  } from '../QueryBuilderPostFilterState.js';
31
31
  import { QueryBuilderSimpleProjectionColumnState } from '../../QueryBuilderProjectionColumnState.js';
32
- import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorHelper.js';
32
+ import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
33
33
  import { isPropertyExpressionChainOptional } from '../../../../QueryBuilderValueSpecificationHelper.js';
34
34
  import { type Hashable, hashArray } from '@finos/legend-shared';
35
35
  import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../../graphManager/QueryBuilderHashUtils.js';
@@ -21,7 +21,6 @@ import {
21
21
  type FunctionExpression,
22
22
  PRIMITIVE_TYPE,
23
23
  SUPPORTED_FUNCTIONS,
24
- buildPrimitiveInstanceValue,
25
24
  } from '@finos/legend-graph';
26
25
  import {
27
26
  guaranteeNonNullable,
@@ -40,9 +39,10 @@ import {
40
39
  getNonCollectionValueSpecificationType,
41
40
  isTypeCompatibleForAssignment,
42
41
  } from '../../../../QueryBuilderValueSpecificationHelper.js';
43
- import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorHelper.js';
42
+ import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
44
43
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
45
44
  import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../../graphManager/QueryBuilderHashUtils.js';
45
+ import { buildPrimitiveInstanceValue } from '../../../../shared/ValueSpecificationEditorHelper.js';
46
46
 
47
47
  export class QueryBuilderPostFilterOperator_LessThan
48
48
  extends QueryBuilderPostFilterOperator
@@ -137,8 +137,8 @@ export class QueryBuilderPostFilterOperator_LessThan
137
137
  postFilterState,
138
138
  expression,
139
139
  expression.parametersValues[0] instanceof AbstractPropertyExpression &&
140
- expression.parametersValues[0].func.genericType.value.rawType.path ===
141
- PRIMITIVE_TYPE.DATETIME &&
140
+ expression.parametersValues[0].func.value.genericType.value.rawType
141
+ .path === PRIMITIVE_TYPE.DATETIME &&
142
142
  expression.parametersValues[1]?.genericType?.value.rawType.path !==
143
143
  PRIMITIVE_TYPE.DATETIME
144
144
  ? SUPPORTED_FUNCTIONS.IS_BEFORE_DAY
@@ -26,7 +26,7 @@ import type {
26
26
  PostFilterConditionState,
27
27
  QueryBuilderPostFilterState,
28
28
  } from '../QueryBuilderPostFilterState.js';
29
- import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorHelper.js';
29
+ import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
30
30
  import { QueryBuilderPostFilterOperator_LessThan } from './QueryBuilderPostFilterOperator_LessThan.js';
31
31
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
32
32
  import { type Hashable, hashArray } from '@finos/legend-shared';
@@ -63,8 +63,8 @@ export class QueryBuilderPostFilterOperator_LessThanEqual
63
63
  postFilterState,
64
64
  expression,
65
65
  expression.parametersValues[0] instanceof AbstractPropertyExpression &&
66
- expression.parametersValues[0].func.genericType.value.rawType.path ===
67
- PRIMITIVE_TYPE.DATETIME &&
66
+ expression.parametersValues[0].func.value.genericType.value.rawType
67
+ .path === PRIMITIVE_TYPE.DATETIME &&
68
68
  expression.parametersValues[1]?.genericType?.value.rawType.path !==
69
69
  PRIMITIVE_TYPE.DATETIME
70
70
  ? SUPPORTED_FUNCTIONS.IS_ON_OR_BEFORE_DAY
@@ -20,7 +20,6 @@ import {
20
20
  type SimpleFunctionExpression,
21
21
  type FunctionExpression,
22
22
  PRIMITIVE_TYPE,
23
- buildPrimitiveInstanceValue,
24
23
  } from '@finos/legend-graph';
25
24
  import {
26
25
  type Hashable,
@@ -39,9 +38,10 @@ import {
39
38
  getNonCollectionValueSpecificationType,
40
39
  unwrapNotExpression,
41
40
  } from '../../../../QueryBuilderValueSpecificationHelper.js';
42
- import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorHelper.js';
41
+ import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
43
42
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
44
43
  import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../../graphManager/QueryBuilderHashUtils.js';
44
+ import { buildPrimitiveInstanceValue } from '../../../../shared/ValueSpecificationEditorHelper.js';
45
45
 
46
46
  export class QueryBuilderPostFilterOperator_StartWith
47
47
  extends QueryBuilderPostFilterOperator
@@ -133,9 +133,9 @@ export class QueryBuilderPostFilterOperator_NotStartWith
133
133
  );
134
134
  return expression
135
135
  ? buildNotExpression(
136
+ expression,
136
137
  postFilterConditionState.postFilterState.projectionState
137
138
  .queryBuilderState.graphManagerState.graph,
138
- expression,
139
139
  )
140
140
  : undefined;
141
141
  }
@@ -138,8 +138,8 @@ const buildFilterConditionExpressionWithExists = (
138
138
  // ... but if the property is of multiplicity multiple, start a new property chain
139
139
  if (
140
140
  exp instanceof AbstractPropertyExpression &&
141
- (exp.func.multiplicity.upperBound === undefined ||
142
- exp.func.multiplicity.upperBound > 1)
141
+ (exp.func.value.multiplicity.upperBound === undefined ||
142
+ exp.func.value.multiplicity.upperBound > 1)
143
143
  ) {
144
144
  // NOTE: we need to find/generate the property chain variable name
145
145
  // here, by doing this, we try our best to respect original/user-input variable name
@@ -346,8 +346,9 @@ const buildFilterConditionStateWithExists = (
346
346
  multiplicityOne,
347
347
  );
348
348
  flattenedPropertyExpressionChain.func = initialPropertyExpression.func;
349
- flattenedPropertyExpressionChain.parametersValues =
350
- initialPropertyExpression.parametersValues;
349
+ flattenedPropertyExpressionChain.parametersValues = [
350
+ ...initialPropertyExpression.parametersValues,
351
+ ];
351
352
 
352
353
  for (const expression of existsLambdaExpressions) {
353
354
  // when rebuilding the property expression chain, disregard the initial variable that starts the chain
@@ -381,13 +382,11 @@ const buildFilterConditionStateWithExists = (
381
382
  multiplicityOne,
382
383
  );
383
384
  propertyExpression.func = currentExpression.func;
384
- if (currentExpression.parametersValues.length > 1) {
385
- // NOTE: we must retain the rest of the parameters as those are derived property parameters
386
- propertyExpression.parametersValues =
387
- currentExpression.parametersValues.slice(1);
388
- } else {
389
- propertyExpression.parametersValues = [];
390
- }
385
+ // NOTE: we must retain the rest of the parameters as those are derived property parameters
386
+ propertyExpression.parametersValues =
387
+ currentExpression.parametersValues.length > 1
388
+ ? currentExpression.parametersValues.slice(1)
389
+ : [];
391
390
  expressions.push(propertyExpression);
392
391
  }
393
392
  currentExpression = guaranteeNonNullable(