@finos/legend-query-builder 0.1.2 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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(