@finos/legend-query-builder 4.14.34 → 4.14.36

Sign up to get free protection for your applications and to get access to all the features.
Files changed (330) hide show
  1. package/lib/__lib__/QueryBuilderTesting.d.ts +1 -0
  2. package/lib/__lib__/QueryBuilderTesting.d.ts.map +1 -1
  3. package/lib/__lib__/QueryBuilderTesting.js +1 -0
  4. package/lib/__lib__/QueryBuilderTesting.js.map +1 -1
  5. package/lib/components/QueryBuilder.d.ts.map +1 -1
  6. package/lib/components/QueryBuilder.js +37 -17
  7. package/lib/components/QueryBuilder.js.map +1 -1
  8. package/lib/components/QueryBuilderConstantExpressionPanel.d.ts.map +1 -1
  9. package/lib/components/QueryBuilderConstantExpressionPanel.js +30 -13
  10. package/lib/components/QueryBuilderConstantExpressionPanel.js.map +1 -1
  11. package/lib/components/QueryBuilderParametersPanel.js.map +1 -1
  12. package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts.map +1 -1
  13. package/lib/components/QueryBuilderPropertyExpressionEditor.js +2 -1
  14. package/lib/components/QueryBuilderPropertyExpressionEditor.js.map +1 -1
  15. package/lib/components/QueryBuilderSideBar.d.ts +2 -18
  16. package/lib/components/QueryBuilderSideBar.d.ts.map +1 -1
  17. package/lib/components/QueryBuilderSideBar.js +32 -104
  18. package/lib/components/QueryBuilderSideBar.js.map +1 -1
  19. package/lib/components/QueryLoader.js.map +1 -1
  20. package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.d.ts.map +1 -1
  21. package/lib/components/__test-utils__/QueryBuilderComponentTestUtils.js.map +1 -1
  22. package/lib/components/data-access/DataAccessOverview.js.map +1 -1
  23. package/lib/components/execution-plan/ConstantExecutionNodeViewer.js.map +1 -1
  24. package/lib/components/execution-plan/DataTypeResultTypeViewer.js.map +1 -1
  25. package/lib/components/execution-plan/ExecutionPlanViewer.js.map +1 -1
  26. package/lib/components/execution-plan/FunctionParametersValidationNodeViewer.d.ts.map +1 -1
  27. package/lib/components/execution-plan/FunctionParametersValidationNodeViewer.js +1 -2
  28. package/lib/components/execution-plan/FunctionParametersValidationNodeViewer.js.map +1 -1
  29. package/lib/components/execution-plan/ImplementationViewer.js.map +1 -1
  30. package/lib/components/execution-plan/ResultTypeViewer.js.map +1 -1
  31. package/lib/components/execution-plan/SQLExecutionNodeViewer.js.map +1 -1
  32. package/lib/components/execution-plan/SequenceExecutionNodeViewer.js.map +1 -1
  33. package/lib/components/execution-plan/StoreMappingGlobalGraphFetchExecutionNodeViewer.js.map +1 -1
  34. package/lib/components/execution-plan/TempTableStrategyViewer.js.map +1 -1
  35. package/lib/components/explorer/QueryBuilderExplorerPanel.js.map +1 -1
  36. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js.map +1 -1
  37. package/lib/components/explorer/QueryBuilderMilestoningEditor.js.map +1 -1
  38. package/lib/components/explorer/QueryBuilderPropertySearchPanel.js.map +1 -1
  39. package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.js.map +1 -1
  40. package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.d.ts.map +1 -1
  41. package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.js.map +1 -1
  42. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts.map +1 -1
  43. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js +2 -1
  44. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
  45. package/lib/components/fetch-structure/QueryBuilderPostTDSPanel.js.map +1 -1
  46. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts.map +1 -1
  47. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js +50 -5
  48. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.js.map +1 -1
  49. package/lib/components/fetch-structure/QueryBuilderTDSComponentHelper.js.map +1 -1
  50. package/lib/components/fetch-structure/QueryBuilderTDSPanel.d.ts.map +1 -1
  51. package/lib/components/fetch-structure/QueryBuilderTDSPanel.js +2 -1
  52. package/lib/components/fetch-structure/QueryBuilderTDSPanel.js.map +1 -1
  53. package/lib/components/fetch-structure/QueryBuilderTDSWindowPanel.js.map +1 -1
  54. package/lib/components/filter/QueryBuilderFilterPanel.d.ts.map +1 -1
  55. package/lib/components/filter/QueryBuilderFilterPanel.js +2 -1
  56. package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
  57. package/lib/components/result/QueryBuilderResultPanel.js.map +1 -1
  58. package/lib/components/result/tds/QueryBuilderTDSGridResult.js.map +1 -1
  59. package/lib/components/result/tds/QueryBuilderTDSResultShared.js.map +1 -1
  60. package/lib/components/result/tds/QueryBuilderTDSSimpleGridResult.js.map +1 -1
  61. package/lib/components/shared/BasicValueSpecificationEditor.d.ts +0 -1
  62. package/lib/components/shared/BasicValueSpecificationEditor.d.ts.map +1 -1
  63. package/lib/components/shared/BasicValueSpecificationEditor.js +62 -28
  64. package/lib/components/shared/BasicValueSpecificationEditor.js.map +1 -1
  65. package/lib/components/shared/CustomDatePicker.d.ts +1 -0
  66. package/lib/components/shared/CustomDatePicker.d.ts.map +1 -1
  67. package/lib/components/shared/CustomDatePicker.js +15 -10
  68. package/lib/components/shared/CustomDatePicker.js.map +1 -1
  69. package/lib/components/shared/LambdaEditor.js +1 -1
  70. package/lib/components/shared/LambdaEditor.js.map +1 -1
  71. package/lib/components/shared/LambdaParameterValuesEditor.js.map +1 -1
  72. package/lib/components/shared/QueryBuilderPanelIssueCountBadge.js.map +1 -1
  73. package/lib/components/shared/QueryBuilderVariableSelector.d.ts +1 -0
  74. package/lib/components/shared/QueryBuilderVariableSelector.d.ts.map +1 -1
  75. package/lib/components/shared/QueryBuilderVariableSelector.js +2 -2
  76. package/lib/components/shared/QueryBuilderVariableSelector.js.map +1 -1
  77. package/lib/components/workflows/ClassQueryBuilder.d.ts.map +1 -1
  78. package/lib/components/workflows/ClassQueryBuilder.js +19 -16
  79. package/lib/components/workflows/ClassQueryBuilder.js.map +1 -1
  80. package/lib/components/workflows/MappingQueryBuilder.d.ts.map +1 -1
  81. package/lib/components/workflows/MappingQueryBuilder.js +18 -15
  82. package/lib/components/workflows/MappingQueryBuilder.js.map +1 -1
  83. package/lib/components/workflows/ServiceQueryBuilder.d.ts.map +1 -1
  84. package/lib/components/workflows/ServiceQueryBuilder.js +13 -10
  85. package/lib/components/workflows/ServiceQueryBuilder.js.map +1 -1
  86. package/lib/graph-manager/protocol/pure/QueryBuilder_PureProtocolProcessorPlugin.js.map +1 -1
  87. package/lib/graph-manager/protocol/pure/v1/V1_QueryBuilder_PureGraphManagerExtension.js.map +1 -1
  88. package/lib/graph-manager/protocol/pure/v1/V1_QueryValueSpecificationBuilderHelper.js.map +1 -1
  89. package/lib/index.css +2 -2
  90. package/lib/index.css.map +1 -1
  91. package/lib/index.d.ts +2 -1
  92. package/lib/index.d.ts.map +1 -1
  93. package/lib/index.js +1 -0
  94. package/lib/index.js.map +1 -1
  95. package/lib/package.json +16 -16
  96. package/lib/stores/QueryBuilderChangeDetectionState.js.map +1 -1
  97. package/lib/stores/QueryBuilderChangeHistoryState.js.map +1 -1
  98. package/lib/stores/QueryBuilderConstantsState.d.ts.map +1 -1
  99. package/lib/stores/QueryBuilderConstantsState.js +2 -1
  100. package/lib/stores/QueryBuilderConstantsState.js.map +1 -1
  101. package/lib/stores/QueryBuilderGroupOperationHelper.js.map +1 -1
  102. package/lib/stores/QueryBuilderPropertyEditorState.d.ts +1 -1
  103. package/lib/stores/QueryBuilderPropertyEditorState.d.ts.map +1 -1
  104. package/lib/stores/QueryBuilderPropertyEditorState.js +14 -35
  105. package/lib/stores/QueryBuilderPropertyEditorState.js.map +1 -1
  106. package/lib/stores/QueryBuilderResultState.js.map +1 -1
  107. package/lib/stores/QueryBuilderState.d.ts +3 -0
  108. package/lib/stores/QueryBuilderState.d.ts.map +1 -1
  109. package/lib/stores/QueryBuilderState.js +15 -1
  110. package/lib/stores/QueryBuilderState.js.map +1 -1
  111. package/lib/stores/QueryBuilderStateBuilder.js.map +1 -1
  112. package/lib/stores/QueryBuilderTextEditorState.js.map +1 -1
  113. package/lib/stores/QueryBuilderTypeaheadHelper.js.map +1 -1
  114. package/lib/stores/QueryBuilderValueSpecificationBuilder.js.map +1 -1
  115. package/lib/stores/QueryBuilderValueSpecificationBuilderHelper.js.map +1 -1
  116. package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts +2 -1
  117. package/lib/stores/QueryBuilderValueSpecificationHelper.d.ts.map +1 -1
  118. package/lib/stores/QueryBuilderValueSpecificationHelper.js +23 -1
  119. package/lib/stores/QueryBuilderValueSpecificationHelper.js.map +1 -1
  120. package/lib/stores/QueryBuilder_LegendApplicationPlugin_Extension.d.ts +13 -0
  121. package/lib/stores/QueryBuilder_LegendApplicationPlugin_Extension.d.ts.map +1 -1
  122. package/lib/stores/QueryLoaderState.js.map +1 -1
  123. package/lib/stores/__test-utils__/QueryBuilderStateTestUtils.js.map +1 -1
  124. package/lib/stores/data-access/DataAccessState.js.map +1 -1
  125. package/lib/stores/entitlements/QueryBuilderCheckEntitlementsState.js.map +1 -1
  126. package/lib/stores/execution-plan/ExecutionPlanState.js.map +1 -1
  127. package/lib/stores/explorer/QueryBuilderExplorerState.js.map +1 -1
  128. package/lib/stores/explorer/QueryBuilderPropertySearchState.js.map +1 -1
  129. package/lib/stores/explorer/QueryFunctionsExplorerState.js.map +1 -1
  130. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts +2 -0
  131. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts.map +1 -1
  132. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js +2 -0
  133. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js.map +1 -1
  134. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.js.map +1 -1
  135. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts +2 -0
  136. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts.map +1 -1
  137. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js +6 -0
  138. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js.map +1 -1
  139. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeStateBuilder.js.map +1 -1
  140. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.js.map +1 -1
  141. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeValueSpecificationBuilder.js.map +1 -1
  142. package/lib/stores/fetch-structure/tds/QueryBuilderTDSHelper.js.map +1 -1
  143. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts +2 -0
  144. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.d.ts.map +1 -1
  145. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js +16 -0
  146. package/lib/stores/fetch-structure/tds/QueryBuilderTDSState.js.map +1 -1
  147. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunction.js.map +1 -1
  148. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregateCalendarFunctionValueSpecificationBuilder.js.map +1 -1
  149. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationState.js.map +1 -1
  150. package/lib/stores/fetch-structure/tds/aggregation/QueryBuilderAggregationStateBuilder.js.map +1 -1
  151. package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperatorValueSpecificationBuilder.js.map +1 -1
  152. package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Average.js.map +1 -1
  153. package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Count.js.map +1 -1
  154. package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Distinct.js.map +1 -1
  155. package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.js.map +1 -1
  156. package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_JoinString.js.map +1 -1
  157. package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Max.js.map +1 -1
  158. package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Min.js.map +1 -1
  159. package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.js.map +1 -1
  160. package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.js.map +1 -1
  161. package/lib/stores/fetch-structure/tds/aggregation/operators/QueryBuilderAggregateOperator_Sum.js.map +1 -1
  162. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterOperator.js.map +1 -1
  163. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts +3 -0
  164. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.d.ts.map +1 -1
  165. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js +42 -3
  166. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.js.map +1 -1
  167. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterStateBuilder.js.map +1 -1
  168. package/lib/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterValueSpecificationBuilder.js.map +1 -1
  169. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorHelper.js.map +1 -1
  170. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.js.map +1 -1
  171. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.d.ts.map +1 -1
  172. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js +6 -5
  173. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js.map +1 -1
  174. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.d.ts.map +1 -1
  175. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js +6 -5
  176. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js.map +1 -1
  177. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.d.ts.map +1 -1
  178. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js +8 -37
  179. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js.map +1 -1
  180. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.d.ts.map +1 -1
  181. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js +7 -10
  182. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js.map +1 -1
  183. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_In.js.map +1 -1
  184. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js.map +1 -1
  185. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.d.ts.map +1 -1
  186. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js +7 -10
  187. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js.map +1 -1
  188. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.d.ts.map +1 -1
  189. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js +6 -5
  190. package/lib/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js.map +1 -1
  191. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionColumnState.js.map +1 -1
  192. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionStateBuilder.js.map +1 -1
  193. package/lib/stores/fetch-structure/tds/projection/QueryBuilderProjectionValueSpecificationBuilder.js.map +1 -1
  194. package/lib/stores/fetch-structure/tds/projection/QueryBuilderRelationProjectValueSpecBuidler.js.map +1 -1
  195. package/lib/stores/fetch-structure/tds/projection/QueryBuilderTypedProjectionStateBuilder.js.map +1 -1
  196. package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowState.js.map +1 -1
  197. package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowStateBuilder.js.map +1 -1
  198. package/lib/stores/fetch-structure/tds/window/QueryBuilderWindowValueSpecificationBuilder.js.map +1 -1
  199. package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Average.js.map +1 -1
  200. package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Count.js.map +1 -1
  201. package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Max.js.map +1 -1
  202. package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Min.js.map +1 -1
  203. package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowOperator_Sum.js.map +1 -1
  204. package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_AverageRank.js.map +1 -1
  205. package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_DenseRank.js.map +1 -1
  206. package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_Rank.js.map +1 -1
  207. package/lib/stores/fetch-structure/tds/window/operators/QueryBuilderTDS_WindowRankOperator_RowNumber.js.map +1 -1
  208. package/lib/stores/filter/QueryBuilderFilterState.d.ts +3 -0
  209. package/lib/stores/filter/QueryBuilderFilterState.d.ts.map +1 -1
  210. package/lib/stores/filter/QueryBuilderFilterState.js +30 -2
  211. package/lib/stores/filter/QueryBuilderFilterState.js.map +1 -1
  212. package/lib/stores/filter/QueryBuilderFilterStateBuilder.js.map +1 -1
  213. package/lib/stores/filter/QueryBuilderFilterValueSpecificationBuilder.js.map +1 -1
  214. package/lib/stores/filter/operators/QueryBuilderFilterOperatorValueSpecificationBuilder.js.map +1 -1
  215. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.d.ts.map +1 -1
  216. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js +5 -4
  217. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js.map +1 -1
  218. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.d.ts.map +1 -1
  219. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.js +5 -4
  220. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.js.map +1 -1
  221. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.d.ts.map +1 -1
  222. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.js +7 -35
  223. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.js.map +1 -1
  224. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.d.ts.map +1 -1
  225. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.js +6 -8
  226. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.js.map +1 -1
  227. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts.map +1 -1
  228. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js +6 -8
  229. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js.map +1 -1
  230. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.js.map +1 -1
  231. package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.js.map +1 -1
  232. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.d.ts.map +1 -1
  233. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.js +6 -8
  234. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.js.map +1 -1
  235. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.d.ts.map +1 -1
  236. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.js +6 -8
  237. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.js.map +1 -1
  238. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.d.ts.map +1 -1
  239. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js +5 -4
  240. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js.map +1 -1
  241. package/lib/stores/milestoning/QueryBuilderBitemporalMilestoningImplementation.js.map +1 -1
  242. package/lib/stores/milestoning/QueryBuilderBusinessTemporalMilestoningImplementation.js.map +1 -1
  243. package/lib/stores/milestoning/QueryBuilderMilestoningHelper.js.map +1 -1
  244. package/lib/stores/milestoning/QueryBuilderMilestoningState.js.map +1 -1
  245. package/lib/stores/milestoning/QueryBuilderProcessingTemporalMilestoningImplementation.js.map +1 -1
  246. package/lib/stores/query-workflow/QueryBuilderWorkFlowState.d.ts +5 -0
  247. package/lib/stores/query-workflow/QueryBuilderWorkFlowState.d.ts.map +1 -1
  248. package/lib/stores/query-workflow/QueryBuilderWorkFlowState.js +7 -0
  249. package/lib/stores/query-workflow/QueryBuilderWorkFlowState.js.map +1 -1
  250. package/lib/stores/shared/LambdaEditorState.js.map +1 -1
  251. package/lib/stores/shared/LambdaParameterState.js.map +1 -1
  252. package/lib/stores/shared/ValueSpecificationEditorHelper.d.ts +1 -1
  253. package/lib/stores/shared/ValueSpecificationEditorHelper.d.ts.map +1 -1
  254. package/lib/stores/shared/ValueSpecificationEditorHelper.js +20 -10
  255. package/lib/stores/shared/ValueSpecificationEditorHelper.js.map +1 -1
  256. package/lib/stores/watermark/QueryBuilderWatermarkState.d.ts +0 -2
  257. package/lib/stores/watermark/QueryBuilderWatermarkState.d.ts.map +1 -1
  258. package/lib/stores/watermark/QueryBuilderWatermarkState.js +0 -6
  259. package/lib/stores/watermark/QueryBuilderWatermarkState.js.map +1 -1
  260. package/lib/stores/watermark/QueryBuilderWatermarkValueSpecificationBuilder.js.map +1 -1
  261. package/lib/stores/workflows/ClassQueryBuilderState.js.map +1 -1
  262. package/lib/stores/workflows/MappingQueryBuilderState.d.ts +2 -2
  263. package/lib/stores/workflows/MappingQueryBuilderState.d.ts.map +1 -1
  264. package/lib/stores/workflows/MappingQueryBuilderState.js +2 -1
  265. package/lib/stores/workflows/MappingQueryBuilderState.js.map +1 -1
  266. package/lib/stores/workflows/ServiceQueryBuilderState.d.ts +2 -2
  267. package/lib/stores/workflows/ServiceQueryBuilderState.d.ts.map +1 -1
  268. package/lib/stores/workflows/ServiceQueryBuilderState.js +2 -1
  269. package/lib/stores/workflows/ServiceQueryBuilderState.js.map +1 -1
  270. package/package.json +24 -24
  271. package/src/__lib__/QueryBuilderTesting.ts +1 -0
  272. package/src/components/QueryBuilder.tsx +89 -46
  273. package/src/components/QueryBuilderConstantExpressionPanel.tsx +41 -19
  274. package/src/components/QueryBuilderParametersPanel.tsx +7 -7
  275. package/src/components/QueryBuilderPropertyExpressionEditor.tsx +2 -0
  276. package/src/components/QueryBuilderSideBar.tsx +138 -339
  277. package/src/components/execution-plan/FunctionParametersValidationNodeViewer.tsx +3 -2
  278. package/src/components/explorer/QueryBuilderExplorerPanel.tsx +4 -4
  279. package/src/components/explorer/QueryBuilderPropertySearchPanel.tsx +4 -4
  280. package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +8 -3
  281. package/src/components/fetch-structure/QueryBuilderResultModifierPanel.tsx +139 -1
  282. package/src/components/fetch-structure/QueryBuilderTDSPanel.tsx +21 -4
  283. package/src/components/fetch-structure/QueryBuilderTDSWindowPanel.tsx +4 -4
  284. package/src/components/filter/QueryBuilderFilterPanel.tsx +12 -6
  285. package/src/components/result/tds/QueryBuilderTDSResultShared.tsx +2 -2
  286. package/src/components/result/tds/QueryBuilderTDSSimpleGridResult.tsx +1 -1
  287. package/src/components/shared/BasicValueSpecificationEditor.tsx +96 -34
  288. package/src/components/shared/CustomDatePicker.tsx +30 -22
  289. package/src/components/shared/QueryBuilderVariableSelector.tsx +2 -2
  290. package/src/components/workflows/ClassQueryBuilder.tsx +79 -77
  291. package/src/components/workflows/MappingQueryBuilder.tsx +75 -76
  292. package/src/components/workflows/ServiceQueryBuilder.tsx +71 -70
  293. package/src/index.ts +2 -1
  294. package/src/stores/QueryBuilderConstantsState.ts +2 -0
  295. package/src/stores/QueryBuilderPropertyEditorState.ts +17 -56
  296. package/src/stores/QueryBuilderState.ts +23 -1
  297. package/src/stores/QueryBuilderValueSpecificationHelper.ts +32 -0
  298. package/src/stores/QueryBuilder_LegendApplicationPlugin_Extension.ts +18 -0
  299. package/src/stores/explorer/QueryBuilderExplorerState.ts +2 -2
  300. package/src/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.ts +4 -0
  301. package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.ts +8 -0
  302. package/src/stores/fetch-structure/tds/QueryBuilderTDSState.ts +33 -0
  303. package/src/stores/fetch-structure/tds/post-filter/QueryBuilderPostFilterState.ts +59 -0
  304. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Contain.ts +5 -5
  305. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.ts +5 -5
  306. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_Equal.ts +10 -69
  307. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.ts +7 -18
  308. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.ts +7 -18
  309. package/src/stores/fetch-structure/tds/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.ts +5 -5
  310. package/src/stores/filter/QueryBuilderFilterState.ts +48 -2
  311. package/src/stores/filter/operators/QueryBuilderFilterOperator_Contain.ts +5 -5
  312. package/src/stores/filter/operators/QueryBuilderFilterOperator_EndWith.ts +5 -5
  313. package/src/stores/filter/operators/QueryBuilderFilterOperator_Equal.ts +10 -71
  314. package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.ts +6 -14
  315. package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.ts +6 -14
  316. package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThan.ts +6 -14
  317. package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.ts +6 -14
  318. package/src/stores/filter/operators/QueryBuilderFilterOperator_StartWith.ts +5 -5
  319. package/src/stores/query-workflow/QueryBuilderWorkFlowState.ts +10 -0
  320. package/src/stores/shared/ValueSpecificationEditorHelper.ts +32 -16
  321. package/src/stores/watermark/QueryBuilderWatermarkState.ts +0 -7
  322. package/src/stores/workflows/MappingQueryBuilderState.ts +7 -1
  323. package/src/stores/workflows/ServiceQueryBuilderState.ts +6 -1
  324. package/tsconfig.json +17 -2
  325. package/tsconfig.package.json +17 -1
  326. package/lib/components/watermark/QueryBuilderWatermark.d.ts +0 -22
  327. package/lib/components/watermark/QueryBuilderWatermark.d.ts.map +0 -1
  328. package/lib/components/watermark/QueryBuilderWatermark.js +0 -83
  329. package/lib/components/watermark/QueryBuilderWatermark.js.map +0 -1
  330. package/src/components/watermark/QueryBuilderWatermark.tsx +0 -218
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { CustomSelectorInput, PlayIcon, RobotIcon } from '@finos/legend-art';
17
+ import { CustomSelectorInput, PanelHeader } from '@finos/legend-art';
18
18
  import { observer } from 'mobx-react-lite';
19
19
  import { getMappingCompatibleClasses, type Service } from '@finos/legend-graph';
20
20
  import { useApplicationStore } from '@finos/legend-application';
@@ -55,7 +55,9 @@ const ServiceQueryBuilderSetupPanelContent = observer(
55
55
 
56
56
  // execution context
57
57
  const serviceOptions =
58
- queryBuilderState.usableServices?.map(buildElementOption) ?? [];
58
+ queryBuilderState.usableServices
59
+ ?.map(buildElementOption)
60
+ .sort((a, b) => a.label.localeCompare(b.label)) ?? [];
59
61
  const selectedServiceOption = buildElementOption(queryBuilderState.service);
60
62
  const onServiceOptionChange = (
61
63
  option: PackageableElementOption<Service>,
@@ -67,9 +69,9 @@ const ServiceQueryBuilderSetupPanelContent = observer(
67
69
  };
68
70
 
69
71
  // execution context
70
- const executionContextOptions = queryBuilderState.executionContexts.map(
71
- buildExecutionContextOption,
72
- );
72
+ const executionContextOptions = queryBuilderState.executionContexts
73
+ .map(buildExecutionContextOption)
74
+ .sort((a, b) => a.label.localeCompare(b.label));
73
75
  const selectedExecutionContextOption =
74
76
  queryBuilderState.selectedExecutionContext
75
77
  ? buildExecutionContextOption(
@@ -96,75 +98,74 @@ const ServiceQueryBuilderSetupPanelContent = observer(
96
98
  : [];
97
99
 
98
100
  return (
99
- <>
100
- <div className="query-builder__setup__config-group">
101
- <div className="query-builder__setup__config-group__header">
102
- <div className="query-builder__setup__config-group__header__title">
103
- service execution context
104
- </div>
101
+ <div className="query-builder__setup__config-group">
102
+ <PanelHeader title="properties" />
103
+ <div className="query-builder__setup__config-group__content">
104
+ <div className="query-builder__setup__config-group__item">
105
+ <label
106
+ className="btn--sm query-builder__setup__config-group__item__label"
107
+ title="service"
108
+ htmlFor="query-builder__setup__service-selector"
109
+ >
110
+ Service
111
+ </label>
112
+ <CustomSelectorInput
113
+ inputId="query-builder__setup__service-selector"
114
+ className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
115
+ placeholder="Choose a service..."
116
+ options={serviceOptions}
117
+ disabled={
118
+ serviceOptions.length < 1 ||
119
+ (serviceOptions.length === 1 && Boolean(selectedServiceOption))
120
+ }
121
+ onChange={onServiceOptionChange}
122
+ value={selectedServiceOption}
123
+ darkMode={
124
+ !applicationStore.layoutService
125
+ .TEMPORARY__isLightColorThemeEnabled
126
+ }
127
+ />
105
128
  </div>
106
- <div className="query-builder__setup__config-group__content">
107
- <div className="query-builder__setup__config-group__item">
108
- <div
109
- className="btn--sm query-builder__setup__config-group__item__label"
110
- title="service"
111
- >
112
- <RobotIcon className="query-builder__setup__service__icon__service" />
129
+ {/* We will display mapping and runtime selector for single-execution and execution context for multi-execution */}
130
+ {Boolean(queryBuilderState.executionContexts.length) && (
131
+ <>
132
+ <div className="query-builder__setup__config-group__item">
133
+ <label
134
+ className="btn--sm query-builder__setup__config-group__item__label"
135
+ title="execution context"
136
+ htmlFor="query-builder__setup__context-selector"
137
+ >
138
+ Context
139
+ </label>
140
+ <CustomSelectorInput
141
+ inputId="query-builder__setup__context-selector"
142
+ className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
143
+ placeholder="Choose an execution context..."
144
+ options={executionContextOptions}
145
+ disabled={
146
+ executionContextOptions.length < 1 ||
147
+ (executionContextOptions.length === 1 &&
148
+ Boolean(selectedExecutionContextOption))
149
+ }
150
+ onChange={onExecutionContextOptionChange}
151
+ value={selectedExecutionContextOption}
152
+ darkMode={
153
+ !applicationStore.layoutService
154
+ .TEMPORARY__isLightColorThemeEnabled
155
+ }
156
+ />
113
157
  </div>
114
- <CustomSelectorInput
115
- className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
116
- placeholder="Choose a service..."
117
- options={serviceOptions}
118
- disabled={
119
- serviceOptions.length < 1 ||
120
- (serviceOptions.length === 1 &&
121
- Boolean(selectedServiceOption))
122
- }
123
- onChange={onServiceOptionChange}
124
- value={selectedServiceOption}
125
- darkMode={
126
- !applicationStore.layoutService
127
- .TEMPORARY__isLightColorThemeEnabled
128
- }
129
- />
130
- </div>
131
- {/* We will display mapping and runtime selector for single-execution and execution context for multi-execution */}
132
- {Boolean(queryBuilderState.executionContexts.length) && (
133
- <>
134
- <div className="query-builder__setup__config-group__item">
135
- <div
136
- className="btn--sm query-builder__setup__config-group__item__label"
137
- title="execution context"
138
- >
139
- <PlayIcon className="query-builder__setup__service__icon__execution-context" />
140
- </div>
141
- <CustomSelectorInput
142
- className="panel__content__form__section__dropdown query-builder__setup__config-group__item__selector"
143
- placeholder="Choose an execution context..."
144
- options={executionContextOptions}
145
- disabled={
146
- executionContextOptions.length < 1 ||
147
- (executionContextOptions.length === 1 &&
148
- Boolean(selectedExecutionContextOption))
149
- }
150
- onChange={onExecutionContextOptionChange}
151
- value={selectedExecutionContextOption}
152
- darkMode={
153
- !applicationStore.layoutService
154
- .TEMPORARY__isLightColorThemeEnabled
155
- }
156
- />
157
- </div>
158
- </>
159
- )}
158
+ </>
159
+ )}
160
+ <div className="query-builder__setup__config-group__item">
161
+ <QueryBuilderClassSelector
162
+ queryBuilderState={queryBuilderState}
163
+ classes={classes}
164
+ noMatchMessage="No compatible entity found for specified execution context"
165
+ />
160
166
  </div>
161
167
  </div>
162
- <QueryBuilderClassSelector
163
- queryBuilderState={queryBuilderState}
164
- classes={classes}
165
- noMatchMessage="No compatible class found for specified execution context"
166
- />
167
- </>
168
+ </div>
168
169
  );
169
170
  },
170
171
  );
package/src/index.ts CHANGED
@@ -21,6 +21,7 @@ export * from './__lib__/QueryBuilderEvent.js';
21
21
  export { QueryBuilder_GraphManagerPreset } from './graph-manager/QueryBuilder_GraphManagerPreset.js';
22
22
  export { QueryBuilderConfig } from './graph-manager/QueryBuilderConfig.js';
23
23
  export { QUERY_BUILDER_TEST_ID } from './__lib__/QueryBuilderTesting.js';
24
+ export { dragAndDrop } from './components/__test-utils__/QueryBuilderComponentTestUtils.js';
24
25
  export {
25
26
  type CheckEntitlementEditorRender,
26
27
  QueryBuilder_LegendApplicationPlugin,
@@ -29,8 +30,8 @@ export { QueryBuilderNavigationBlocker } from './components/QueryBuilderNavigati
29
30
  export { QueryBuilder } from './components/QueryBuilder.js';
30
31
  export { QUERY_BUILDER_COMPONENT_ELEMENT_ID } from './components/QueryBuilderComponentElement.js';
31
32
  export {
32
- QueryBuilderState,
33
33
  type QuerySDLC,
34
+ QueryBuilderState,
34
35
  } from './stores/QueryBuilderState.js';
35
36
  export {
36
37
  getTDSColumnDerivedProperyFromType,
@@ -131,6 +131,8 @@ export class QueryBuilderSimpleConstantExpressionState
131
131
  this.queryBuilderState.graphManagerState.graph,
132
132
  type,
133
133
  this.queryBuilderState.observerContext,
134
+ this.queryBuilderState
135
+ .INTERNAL__enableInitializingDefaultSimpleExpressionValue,
134
136
  );
135
137
  this.setValueSpec(valSpec);
136
138
  } catch (error) {
@@ -26,17 +26,13 @@ import {
26
26
  import {
27
27
  Class,
28
28
  type AbstractProperty,
29
- type Enum,
30
29
  type ValueSpecification,
31
30
  type PureModel,
32
31
  AbstractPropertyExpression,
33
32
  DerivedProperty,
34
33
  Enumeration,
35
- EnumValueExplicitReference,
36
- EnumValueInstanceValue,
37
34
  InstanceValue,
38
35
  PrimitiveInstanceValue,
39
- type PRIMITIVE_TYPE,
40
36
  VariableExpression,
41
37
  SimpleFunctionExpression,
42
38
  matchFunctionName,
@@ -50,7 +46,7 @@ import {
50
46
  } from '@finos/legend-graph';
51
47
  import {
52
48
  createNullishValue,
53
- generateDefaultValueForPrimitiveType,
49
+ isValidInstanceValue,
54
50
  } from './QueryBuilderValueSpecificationHelper.js';
55
51
  import type { QueryBuilderState } from './QueryBuilderState.js';
56
52
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../graph/QueryBuilderMetaModelConst.js';
@@ -58,9 +54,9 @@ import { QUERY_BUILDER_STATE_HASH_STRUCTURE } from './QueryBuilderStateHashUtils
58
54
  import {
59
55
  propertyExpression_setFunc,
60
56
  functionExpression_setParametersValues,
61
- instanceValue_setValues,
62
57
  } from './shared/ValueSpecificationModifierHelper.js';
63
58
  import { generateMilestonedPropertyParameterValue } from './milestoning/QueryBuilderMilestoningHelper.js';
59
+ import { buildDefaultInstanceValue } from './shared/ValueSpecificationEditorHelper.js';
64
60
 
65
61
  export const getPropertyChainName = (
66
62
  propertyExpression: AbstractPropertyExpression,
@@ -107,9 +103,8 @@ export const getPropertyChainName = (
107
103
  processedChunks[processedChunks.length - 1],
108
104
  );
109
105
  if (latestProcessedChunk.startsWith(TYPE_CAST_TOKEN)) {
110
- processedChunks[
111
- processedChunks.length - 1
112
- ] = `${latestProcessedChunk}${chunk}`;
106
+ processedChunks[processedChunks.length - 1] =
107
+ `${latestProcessedChunk}${chunk}`;
113
108
  } else {
114
109
  processedChunks.push(chunk);
115
110
  }
@@ -142,44 +137,23 @@ export const getPropertyPath = (
142
137
  export const generateValueSpecificationForParameter = (
143
138
  parameter: VariableExpression,
144
139
  graph: PureModel,
140
+ initializeDefaultValue: boolean,
145
141
  observerContext: ObserverContext,
146
142
  ): ValueSpecification => {
147
143
  if (parameter.genericType) {
148
144
  const type = parameter.genericType.value.rawType;
149
- if (type instanceof PrimitiveType) {
150
- const primitiveInstanceValue = new PrimitiveInstanceValue(
151
- GenericTypeExplicitReference.create(
152
- new GenericType(
153
- // NOTE: since the default generated value for type Date is a StrictDate
154
- // we need to adjust the generic type accordingly
155
- // See https://github.com/finos/legend-studio/issues/1391
156
- type === PrimitiveType.DATE ? PrimitiveType.STRICTDATE : type,
157
- ),
158
- ),
159
- );
160
- if (type !== PrimitiveType.LATESTDATE) {
161
- instanceValue_setValues(
162
- primitiveInstanceValue,
163
- [generateDefaultValueForPrimitiveType(type.name as PRIMITIVE_TYPE)],
164
- observerContext,
145
+ if (type instanceof PrimitiveType || type instanceof Enumeration) {
146
+ if (type === PrimitiveType.LATESTDATE) {
147
+ return new PrimitiveInstanceValue(
148
+ GenericTypeExplicitReference.create(new GenericType(type)),
165
149
  );
166
150
  }
167
- return primitiveInstanceValue;
168
- } else if (type instanceof Enumeration) {
169
- const enumValueInstanceValue = new EnumValueInstanceValue(
170
- GenericTypeExplicitReference.create(new GenericType(type)),
151
+ return buildDefaultInstanceValue(
152
+ graph,
153
+ type,
154
+ observerContext,
155
+ initializeDefaultValue || parameter.multiplicity.lowerBound === 0,
171
156
  );
172
- if (type.values.length) {
173
- const enumValueRef = EnumValueExplicitReference.create(
174
- type.values[0] as Enum,
175
- );
176
- instanceValue_setValues(
177
- enumValueInstanceValue,
178
- [enumValueRef],
179
- observerContext,
180
- );
181
- }
182
- return enumValueInstanceValue;
183
157
  }
184
158
  }
185
159
  // for arguments of types we don't support, we will fill them with `[]`
@@ -216,6 +190,8 @@ const fillDerivedPropertyParameterValues = (
216
190
  parameter,
217
191
  derivedPropertyExpressionState.queryBuilderState.graphManagerState
218
192
  .graph,
193
+ derivedPropertyExpressionState.queryBuilderState
194
+ .INTERNAL__enableInitializingDefaultSimpleExpressionValue,
219
195
  derivedPropertyExpressionState.queryBuilderState.observerContext,
220
196
  ),
221
197
  );
@@ -285,22 +261,7 @@ export class QueryBuilderDerivedPropertyExpressionState {
285
261
  // TODO: more type matching logic here (take into account multiplicity, type, etc.)
286
262
  return this.parameterValues.every((paramValue) => {
287
263
  if (paramValue instanceof InstanceValue) {
288
- const isRequired = paramValue.multiplicity.lowerBound >= 1;
289
- // required and no values provided. LatestDate doesn't have any values so we skip that check for it.
290
- if (
291
- isRequired &&
292
- paramValue.genericType?.value.rawType !== PrimitiveType.LATESTDATE &&
293
- !paramValue.values.length
294
- ) {
295
- return false;
296
- }
297
- // more values than allowed
298
- if (
299
- paramValue.multiplicity.upperBound &&
300
- paramValue.values.length > paramValue.multiplicity.upperBound
301
- ) {
302
- return false;
303
- }
264
+ return isValidInstanceValue(paramValue);
304
265
  }
305
266
  return true;
306
267
  });
@@ -156,6 +156,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
156
156
  isCalendarEnabled = false;
157
157
  isQueryChatOpened = false;
158
158
  isLocalModeEnabled = false;
159
+ INTERNAL__enableInitializingDefaultSimpleExpressionValue = false;
159
160
 
160
161
  lambdaWriteMode = QUERY_BUILDER_LAMBDA_WRITER_MODE.STANDARD;
161
162
 
@@ -207,10 +208,12 @@ export abstract class QueryBuilderState implements CommandRegistrar {
207
208
  isLocalModeEnabled: observable,
208
209
  getAllFunction: observable,
209
210
  lambdaWriteMode: observable,
211
+ INTERNAL__enableInitializingDefaultSimpleExpressionValue: observable,
210
212
 
211
213
  sideBarClassName: computed,
212
214
  isQuerySupported: computed,
213
215
  allValidationIssues: computed,
216
+ canBuildQuery: computed,
214
217
 
215
218
  setShowFunctionsExplorerPanel: action,
216
219
  setShowParametersPanel: action,
@@ -222,6 +225,7 @@ export abstract class QueryBuilderState implements CommandRegistrar {
222
225
  setIsLocalModeEnabled: action,
223
226
  setGetAllFunction: action,
224
227
  setLambdaWriteMode: action,
228
+ setINTERNAL__enableInitializingDefaultSimpleExpressionValue: action,
225
229
 
226
230
  resetQueryResult: action,
227
231
  resetQueryContent: action,
@@ -402,6 +406,12 @@ export abstract class QueryBuilderState implements CommandRegistrar {
402
406
  this.getAllFunction = val;
403
407
  }
404
408
 
409
+ setINTERNAL__enableInitializingDefaultSimpleExpressionValue(
410
+ val: boolean,
411
+ ): void {
412
+ this.INTERNAL__enableInitializingDefaultSimpleExpressionValue = val;
413
+ }
414
+
405
415
  get isQuerySupported(): boolean {
406
416
  return !this.unsupportedQueryState.rawLambda;
407
417
  }
@@ -802,7 +812,19 @@ export abstract class QueryBuilderState implements CommandRegistrar {
802
812
  }
803
813
 
804
814
  get allValidationIssues(): string[] {
805
- return this.fetchStructureState.implementation.allValidationIssues;
815
+ return this.fetchStructureState.implementation.allValidationIssues.concat(
816
+ this.filterState.allValidationIssues,
817
+ );
818
+ }
819
+
820
+ get canBuildQuery(): boolean {
821
+ return (
822
+ !this.filterState.hasInvalidFilterValues &&
823
+ !this.filterState.hasInvalidDerivedPropertyParameters &&
824
+ !this.fetchStructureState.implementation.hasInvalidFilterValues &&
825
+ !this.fetchStructureState.implementation
826
+ .hasInvalidDerivedPropertyParameters
827
+ );
806
828
  }
807
829
 
808
830
  /**
@@ -46,6 +46,7 @@ import {
46
46
  INTERNAL__PropagatedValue,
47
47
  isSubType,
48
48
  type ObserverContext,
49
+ InstanceValue,
49
50
  } from '@finos/legend-graph';
50
51
  import {
51
52
  addUniqueEntry,
@@ -130,6 +131,37 @@ export const getCollectionValueSpecificationType = (
130
131
  return undefined;
131
132
  };
132
133
 
134
+ export const isValidInstanceValue = (value: InstanceValue): boolean => {
135
+ const isRequired = value.multiplicity.lowerBound >= 1;
136
+ // required and no values provided. LatestDate doesn't have any values so we skip that check for it.
137
+ if (
138
+ isRequired &&
139
+ value.genericType?.value.rawType !== PrimitiveType.LATESTDATE &&
140
+ (!value.values.length ||
141
+ value.values.some((val) => val === null || val === undefined))
142
+ ) {
143
+ return false;
144
+ }
145
+ // more values than allowed
146
+ if (
147
+ !(value instanceof CollectionInstanceValue) &&
148
+ value.multiplicity.upperBound &&
149
+ value.values.length > value.multiplicity.upperBound
150
+ ) {
151
+ return false;
152
+ }
153
+ // collection instance with invalid values
154
+ if (
155
+ value instanceof CollectionInstanceValue &&
156
+ value.values.some(
157
+ (val) => val instanceof InstanceValue && !isValidInstanceValue(val),
158
+ )
159
+ ) {
160
+ return false;
161
+ }
162
+ return true;
163
+ };
164
+
133
165
  export const unwrapNotExpression = (
134
166
  expression: SimpleFunctionExpression,
135
167
  ): SimpleFunctionExpression | undefined => {
@@ -75,6 +75,14 @@ export type TemplateQueryPanelContentRenderer = (
75
75
  queryBuilderState: QueryBuilderState,
76
76
  ) => React.ReactNode;
77
77
 
78
+ export type QueryBuilderHeaderActionConfiguration = {
79
+ key: string;
80
+ category: number;
81
+ renderer: (
82
+ queryBuilderState: QueryBuilderState,
83
+ ) => React.ReactNode | undefined;
84
+ };
85
+
78
86
  export interface QueryBuilder_LegendApplicationPlugin_Extension
79
87
  extends LegendApplicationPlugin {
80
88
  /**
@@ -118,4 +126,14 @@ export interface QueryBuilder_LegendApplicationPlugin_Extension
118
126
  * Get the list of template query panel content render
119
127
  */
120
128
  getExtraTemplateQueryPanelContentRenderer?(): TemplateQueryPanelContentRenderer[];
129
+
130
+ /**
131
+ * Get the list of action configurations
132
+ */
133
+ getExtraQueryBuilderHeaderActionConfigurations?(): QueryBuilderHeaderActionConfiguration[];
134
+
135
+ /**
136
+ * Get the list of action configurations
137
+ */
138
+ getExtraQueryBuilderHeaderTitleConfigurations?(): QueryBuilderHeaderActionConfiguration[];
121
139
  }
@@ -586,8 +586,8 @@ export const getQueryBuilderSubTypeNodeData = (
586
586
  parentNode instanceof QueryBuilderExplorerTreePropertyNodeData
587
587
  ? parentNode.property.multiplicity
588
588
  : parentNode instanceof QueryBuilderExplorerTreeSubTypeNodeData
589
- ? parentNode.multiplicity
590
- : Multiplicity.ONE,
589
+ ? parentNode.multiplicity
590
+ : Multiplicity.ONE,
591
591
  );
592
592
  subTypeNode.childrenIds =
593
593
  generateExplorerTreeClassNodeChildrenIDs(subTypeNode);
@@ -47,6 +47,8 @@ export abstract class QueryBuilderFetchStructureImplementationState
47
47
  usedExplorerTreePropertyNodeIDs: computed,
48
48
  fetchStructureValidationIssues: computed,
49
49
  allValidationIssues: computed,
50
+ hasInvalidFilterValues: computed,
51
+ hasInvalidDerivedPropertyParameters: computed,
50
52
  hashCode: computed,
51
53
  });
52
54
 
@@ -75,6 +77,8 @@ export abstract class QueryBuilderFetchStructureImplementationState
75
77
  ): void;
76
78
  abstract initialize(): void;
77
79
  abstract initializeWithQuery(): void;
80
+ abstract get hasInvalidFilterValues(): boolean;
81
+ abstract get hasInvalidDerivedPropertyParameters(): boolean;
78
82
  abstract get hashCode(): string;
79
83
 
80
84
  get TEMPORARY__showPostFetchStructurePanel(): boolean {
@@ -529,6 +529,14 @@ export class QueryBuilderGraphFetchTreeState
529
529
  );
530
530
  }
531
531
 
532
+ get hasInvalidFilterValues(): boolean {
533
+ return false;
534
+ }
535
+
536
+ get hasInvalidDerivedPropertyParameters(): boolean {
537
+ return false;
538
+ }
539
+
532
540
  get hashCode(): string {
533
541
  return hashArray([
534
542
  QUERY_BUILDER_STATE_HASH_STRUCTURE.GRAPH_FETCH_STATE,
@@ -149,6 +149,7 @@ export class QueryBuilderTDSState
149
149
  addColumn: action,
150
150
  moveColumn: action,
151
151
  removeAllColumns: action,
152
+ removeColumn: action,
152
153
  replaceColumn: action,
153
154
  initialize: action,
154
155
  initializeWithQuery: action,
@@ -328,6 +329,20 @@ export class QueryBuilderTDSState
328
329
  if (hasNoProjectionColumns) {
329
330
  validationIssues.push('Query has no projection columns');
330
331
  }
332
+
333
+ this.projectionColumns.forEach((column) => {
334
+ if (
335
+ column instanceof QueryBuilderSimpleProjectionColumnState &&
336
+ column.propertyExpressionState.derivedPropertyExpressionStates.some(
337
+ (p) => !p.isValid,
338
+ )
339
+ ) {
340
+ validationIssues.push(
341
+ `Derived property parameter value for ${column.propertyExpressionState.title} is missing`,
342
+ );
343
+ }
344
+ });
345
+
331
346
  return validationIssues;
332
347
  }
333
348
 
@@ -335,6 +350,7 @@ export class QueryBuilderTDSState
335
350
  const fetchStructureValidationIssues = [
336
351
  ...this.fetchStructureValidationIssues,
337
352
  ...this.windowState.windowValidationIssues,
353
+ ...this.postFilterState.allValidationIssues,
338
354
  ];
339
355
 
340
356
  return fetchStructureValidationIssues;
@@ -785,6 +801,23 @@ export class QueryBuilderTDSState
785
801
  return Boolean(usedInProjection ?? usedInPostFilter);
786
802
  }
787
803
 
804
+ get hasInvalidFilterValues(): boolean {
805
+ return (
806
+ this.postFilterState.hasInvalidFilterValues ||
807
+ this.postFilterState.hasInvalidDerivedPropertyParameters
808
+ );
809
+ }
810
+
811
+ get hasInvalidDerivedPropertyParameters(): boolean {
812
+ return this.projectionColumns.some(
813
+ (column) =>
814
+ column instanceof QueryBuilderSimpleProjectionColumnState &&
815
+ column.propertyExpressionState.derivedPropertyExpressionStates.some(
816
+ (p) => !p.isValid,
817
+ ),
818
+ );
819
+ }
820
+
788
821
  get hashCode(): string {
789
822
  return hashArray([
790
823
  QUERY_BUILDER_STATE_HASH_STRUCTURE.PROJECTION_STATE,
@@ -25,6 +25,7 @@ import {
25
25
  observe_ValueSpecification,
26
26
  PrimitiveType,
27
27
  CollectionInstanceValue,
28
+ InstanceValue,
28
29
  } from '@finos/legend-graph';
29
30
  import {
30
31
  type GeneratorFn,
@@ -59,6 +60,7 @@ import {
59
60
  QueryBuilderProjectionColumnState,
60
61
  type QueryBuilderProjectionColumnDragSource,
61
62
  QueryBuilderDerivationProjectionColumnState,
63
+ QueryBuilderSimpleProjectionColumnState,
62
64
  } from '../projection/QueryBuilderProjectionColumnState.js';
63
65
  import {
64
66
  buildProjectionColumnTypeaheadQuery,
@@ -72,6 +74,7 @@ import type { QueryBuilderTDSColumnState } from '../QueryBuilderTDSColumnState.j
72
74
  import {
73
75
  getCollectionValueSpecificationType,
74
76
  getNonCollectionValueSpecificationType,
77
+ isValidInstanceValue,
75
78
  isValueExpressionReferencedInValue,
76
79
  } from '../../../QueryBuilderValueSpecificationHelper.js';
77
80
  import { buildtdsPropertyExpressionFromColState } from './operators/QueryBuilderPostFilterOperatorValueSpecificationBuilder.js';
@@ -604,6 +607,9 @@ export class QueryBuilderPostFilterState
604
607
  replaceBlankNodeWithNode: action,
605
608
  setRearrangingConditions: action,
606
609
  setDerivedColumnBeingDropped: action,
610
+ allValidationIssues: computed,
611
+ hasInvalidFilterValues: computed,
612
+ hasInvalidDerivedPropertyParameters: computed,
607
613
  hashCode: computed,
608
614
  });
609
615
 
@@ -986,6 +992,59 @@ export class QueryBuilderPostFilterState
986
992
  );
987
993
  }
988
994
 
995
+ get allValidationIssues(): string[] {
996
+ const validationIssues: string[] = [];
997
+ Array.from(this.nodes.values()).forEach((node) => {
998
+ if (node instanceof QueryBuilderPostFilterTreeConditionNodeData) {
999
+ if (
1000
+ node.condition.rightConditionValue instanceof
1001
+ PostFilterValueSpecConditionValueState &&
1002
+ node.condition.rightConditionValue.value instanceof InstanceValue &&
1003
+ !isValidInstanceValue(node.condition.rightConditionValue.value) &&
1004
+ node.condition.leftConditionValue instanceof
1005
+ QueryBuilderSimpleProjectionColumnState
1006
+ ) {
1007
+ validationIssues.push(
1008
+ `Filter value for ${node.condition.leftConditionValue.propertyExpressionState.title} is missing or invalid`,
1009
+ );
1010
+ }
1011
+ if (
1012
+ node.condition.leftConditionValue instanceof
1013
+ QueryBuilderSimpleProjectionColumnState &&
1014
+ !node.condition.leftConditionValue.propertyExpressionState.isValid
1015
+ ) {
1016
+ validationIssues.push(
1017
+ `Derived property parameter value for ${node.condition.leftConditionValue.propertyExpressionState.title} is missing or invalid`,
1018
+ );
1019
+ }
1020
+ }
1021
+ });
1022
+ return validationIssues;
1023
+ }
1024
+
1025
+ get hasInvalidFilterValues(): boolean {
1026
+ return Array.from(this.nodes.values()).some(
1027
+ (node) =>
1028
+ node instanceof QueryBuilderPostFilterTreeConditionNodeData &&
1029
+ node.condition.rightConditionValue instanceof
1030
+ PostFilterValueSpecConditionValueState &&
1031
+ node.condition.rightConditionValue.value instanceof InstanceValue &&
1032
+ !isValidInstanceValue(node.condition.rightConditionValue.value) &&
1033
+ node.condition.leftConditionValue instanceof
1034
+ QueryBuilderSimpleProjectionColumnState,
1035
+ );
1036
+ }
1037
+
1038
+ get hasInvalidDerivedPropertyParameters(): boolean {
1039
+ return Array.from(this.nodes.values()).some(
1040
+ (node) =>
1041
+ node instanceof QueryBuilderPostFilterTreeConditionNodeData &&
1042
+ node.condition.leftConditionValue instanceof
1043
+ QueryBuilderSimpleProjectionColumnState &&
1044
+ !node.condition.leftConditionValue.propertyExpressionState.isValid,
1045
+ );
1046
+ }
1047
+
989
1048
  get hashCode(): string {
990
1049
  return hashArray([
991
1050
  QUERY_BUILDER_STATE_HASH_STRUCTURE.POST_FILTER_STATE,