@finos/legend-query-builder 0.0.2 → 0.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (392) hide show
  1. package/lib/components/QueryBuilder.d.ts +1 -0
  2. package/lib/components/QueryBuilder.d.ts.map +1 -1
  3. package/lib/components/QueryBuilder.js +14 -4
  4. package/lib/components/QueryBuilder.js.map +1 -1
  5. package/lib/components/QueryBuilderDiffPanel.d.ts +23 -0
  6. package/lib/components/QueryBuilderDiffPanel.d.ts.map +1 -0
  7. package/lib/components/QueryBuilderDiffPanel.js +103 -0
  8. package/lib/components/QueryBuilderDiffPanel.js.map +1 -0
  9. package/lib/components/QueryBuilderParametersPanel.d.ts +1 -0
  10. package/lib/components/QueryBuilderParametersPanel.d.ts.map +1 -1
  11. package/lib/components/QueryBuilderParametersPanel.js +2 -2
  12. package/lib/components/QueryBuilderParametersPanel.js.map +1 -1
  13. package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts +1 -0
  14. package/lib/components/QueryBuilderPropertyExpressionEditor.d.ts.map +1 -1
  15. package/lib/components/QueryBuilderResultPanel.d.ts +1 -0
  16. package/lib/components/QueryBuilderResultPanel.d.ts.map +1 -1
  17. package/lib/components/QueryBuilderResultPanel.js +9 -10
  18. package/lib/components/QueryBuilderResultPanel.js.map +1 -1
  19. package/lib/components/QueryBuilderSideBar.d.ts +1 -0
  20. package/lib/components/QueryBuilderSideBar.d.ts.map +1 -1
  21. package/lib/components/QueryBuilderSideBar.js +1 -1
  22. package/lib/components/QueryBuilderSideBar.js.map +1 -1
  23. package/lib/components/QueryBuilderTextEditor.d.ts +1 -0
  24. package/lib/components/QueryBuilderTextEditor.d.ts.map +1 -1
  25. package/lib/components/QueryBuilderUnsupportedQueryEditor.d.ts +1 -0
  26. package/lib/components/QueryBuilderUnsupportedQueryEditor.d.ts.map +1 -1
  27. package/lib/components/QueryBuilderUnsupportedQueryEditor.js +2 -2
  28. package/lib/components/QueryBuilderUnsupportedQueryEditor.js.map +1 -1
  29. package/lib/components/QuerySetupUtils.d.ts +22 -0
  30. package/lib/components/QuerySetupUtils.d.ts.map +1 -0
  31. package/lib/components/QuerySetupUtils.js +20 -0
  32. package/lib/components/QuerySetupUtils.js.map +1 -0
  33. package/lib/components/ServiceQuerySetupUtils.d.ts +23 -0
  34. package/lib/components/ServiceQuerySetupUtils.d.ts.map +1 -0
  35. package/lib/components/ServiceQuerySetupUtils.js +25 -0
  36. package/lib/components/ServiceQuerySetupUtils.js.map +1 -0
  37. package/lib/components/explorer/QueryBuilderExplorerPanel.d.ts.map +1 -1
  38. package/lib/components/explorer/QueryBuilderExplorerPanel.js +4 -10
  39. package/lib/components/explorer/QueryBuilderExplorerPanel.js.map +1 -1
  40. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.d.ts +1 -0
  41. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.d.ts.map +1 -1
  42. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js +8 -6
  43. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js.map +1 -1
  44. package/lib/components/explorer/{QueryBuilderMilestoneEditor.d.ts → QueryBuilderMilestoningEditor.d.ts} +2 -1
  45. package/lib/components/explorer/QueryBuilderMilestoningEditor.d.ts.map +1 -0
  46. package/lib/components/explorer/{QueryBuilderMilestoneEditor.js → QueryBuilderMilestoningEditor.js} +9 -9
  47. package/lib/components/explorer/QueryBuilderMilestoningEditor.js.map +1 -0
  48. package/lib/components/explorer/QueryBuilderPropertySearchPanel.d.ts +1 -0
  49. package/lib/components/explorer/QueryBuilderPropertySearchPanel.d.ts.map +1 -1
  50. package/lib/components/explorer/QueryBuilderPropertySearchPanel.js +69 -61
  51. package/lib/components/explorer/QueryBuilderPropertySearchPanel.js.map +1 -1
  52. package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.d.ts +1 -0
  53. package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.d.ts.map +1 -1
  54. package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.js +3 -3
  55. package/lib/components/fetch-structure/QueryBuilderFetchStructurePanel.js.map +1 -1
  56. package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.d.ts +1 -0
  57. package/lib/components/fetch-structure/QueryBuilderGraphFetchTreePanel.d.ts.map +1 -1
  58. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts +1 -0
  59. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.d.ts.map +1 -1
  60. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js +3 -3
  61. package/lib/components/fetch-structure/QueryBuilderPostFilterPanel.js.map +1 -1
  62. package/lib/components/fetch-structure/QueryBuilderProjectionPanel.d.ts +1 -0
  63. package/lib/components/fetch-structure/QueryBuilderProjectionPanel.d.ts.map +1 -1
  64. package/lib/components/fetch-structure/QueryBuilderProjectionPanel.js +3 -5
  65. package/lib/components/fetch-structure/QueryBuilderProjectionPanel.js.map +1 -1
  66. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts +1 -0
  67. package/lib/components/fetch-structure/QueryBuilderResultModifierPanel.d.ts.map +1 -1
  68. package/lib/components/filter/QueryBuilderFilterPanel.d.ts +1 -0
  69. package/lib/components/filter/QueryBuilderFilterPanel.d.ts.map +1 -1
  70. package/lib/components/filter/QueryBuilderFilterPanel.js +5 -9
  71. package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
  72. package/lib/components/shared/QueryBuilderLambdaEditor.d.ts +1 -0
  73. package/lib/components/shared/QueryBuilderLambdaEditor.d.ts.map +1 -1
  74. package/lib/components/shared/QueryBuilderPropertyInfoTooltip.d.ts.map +1 -1
  75. package/lib/components/shared/QueryBuilderPropertyInfoTooltip.js +7 -2
  76. package/lib/components/shared/QueryBuilderPropertyInfoTooltip.js.map +1 -1
  77. package/lib/graphManager/QueryBuilderHashUtils.d.ts +84 -0
  78. package/lib/graphManager/QueryBuilderHashUtils.d.ts.map +1 -0
  79. package/lib/graphManager/QueryBuilderHashUtils.js +91 -0
  80. package/lib/graphManager/QueryBuilderHashUtils.js.map +1 -0
  81. package/lib/index.css +17 -1
  82. package/lib/index.css.map +1 -1
  83. package/lib/index.d.ts +4 -0
  84. package/lib/index.d.ts.map +1 -1
  85. package/lib/index.js +4 -0
  86. package/lib/index.js.map +1 -1
  87. package/lib/package.json +11 -9
  88. package/lib/stores/QueryBuilderChangeDetectionState.d.ts +27 -5
  89. package/lib/stores/QueryBuilderChangeDetectionState.d.ts.map +1 -1
  90. package/lib/stores/QueryBuilderChangeDetectionState.js +106 -10
  91. package/lib/stores/QueryBuilderChangeDetectionState.js.map +1 -1
  92. package/lib/stores/QueryBuilderConfig.d.ts +1 -0
  93. package/lib/stores/QueryBuilderConfig.d.ts.map +1 -1
  94. package/lib/stores/QueryBuilderConfig.js +1 -0
  95. package/lib/stores/QueryBuilderConfig.js.map +1 -1
  96. package/lib/stores/QueryBuilderMilestoningState.d.ts +3 -1
  97. package/lib/stores/QueryBuilderMilestoningState.d.ts.map +1 -1
  98. package/lib/stores/QueryBuilderMilestoningState.js +10 -0
  99. package/lib/stores/QueryBuilderMilestoningState.js.map +1 -1
  100. package/lib/stores/QueryBuilderParametersState.d.ts +4 -2
  101. package/lib/stores/QueryBuilderParametersState.d.ts.map +1 -1
  102. package/lib/stores/QueryBuilderParametersState.js +11 -2
  103. package/lib/stores/QueryBuilderParametersState.js.map +1 -1
  104. package/lib/stores/QueryBuilderPropertyEditorState.d.ts +5 -3
  105. package/lib/stores/QueryBuilderPropertyEditorState.d.ts.map +1 -1
  106. package/lib/stores/QueryBuilderPropertyEditorState.js +15 -5
  107. package/lib/stores/QueryBuilderPropertyEditorState.js.map +1 -1
  108. package/lib/stores/QueryBuilderResultState.d.ts +5 -3
  109. package/lib/stores/QueryBuilderResultState.d.ts.map +1 -1
  110. package/lib/stores/QueryBuilderResultState.js +26 -6
  111. package/lib/stores/QueryBuilderResultState.js.map +1 -1
  112. package/lib/stores/QueryBuilderState.d.ts +3 -5
  113. package/lib/stores/QueryBuilderState.d.ts.map +1 -1
  114. package/lib/stores/QueryBuilderState.js +32 -22
  115. package/lib/stores/QueryBuilderState.js.map +1 -1
  116. package/lib/stores/QueryBuilderStateTestUtils.js +1 -1
  117. package/lib/stores/QueryBuilderStateTestUtils.js.map +1 -1
  118. package/lib/stores/QueryBuilderTextEditorState.js +1 -1
  119. package/lib/stores/QueryBuilderTextEditorState.js.map +1 -1
  120. package/lib/stores/QueryBuilderTypeaheadHelper.d.ts.map +1 -1
  121. package/lib/stores/QueryBuilderTypeaheadHelper.js +3 -4
  122. package/lib/stores/QueryBuilderTypeaheadHelper.js.map +1 -1
  123. package/lib/stores/QueryBuilderUnsupportedQueryState.d.ts +4 -2
  124. package/lib/stores/QueryBuilderUnsupportedQueryState.d.ts.map +1 -1
  125. package/lib/stores/QueryBuilderUnsupportedQueryState.js +10 -1
  126. package/lib/stores/QueryBuilderUnsupportedQueryState.js.map +1 -1
  127. package/lib/stores/ServiceInfo.d.ts +28 -0
  128. package/lib/stores/ServiceInfo.d.ts.map +1 -0
  129. package/lib/stores/ServiceInfo.js +34 -0
  130. package/lib/stores/ServiceInfo.js.map +1 -0
  131. package/lib/stores/explorer/QueryBuilderExplorerState.d.ts +6 -6
  132. package/lib/stores/explorer/QueryBuilderExplorerState.d.ts.map +1 -1
  133. package/lib/stores/explorer/QueryBuilderExplorerState.js +19 -14
  134. package/lib/stores/explorer/QueryBuilderExplorerState.js.map +1 -1
  135. package/lib/stores/explorer/QueryBuilderPropertySearchState.d.ts +36 -17
  136. package/lib/stores/explorer/QueryBuilderPropertySearchState.d.ts.map +1 -1
  137. package/lib/stores/explorer/QueryBuilderPropertySearchState.js +203 -161
  138. package/lib/stores/explorer/QueryBuilderPropertySearchState.js.map +1 -1
  139. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts +5 -3
  140. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts.map +1 -1
  141. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js +1 -0
  142. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js.map +1 -1
  143. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.d.ts +1 -1
  144. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.d.ts.map +1 -1
  145. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.js +3 -3
  146. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.js.map +1 -1
  147. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts +3 -1
  148. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts.map +1 -1
  149. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js +9 -1
  150. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js.map +1 -1
  151. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.d.ts +7 -5
  152. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.d.ts.map +1 -1
  153. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.js +20 -5
  154. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.js.map +1 -1
  155. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.d.ts +7 -4
  156. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.d.ts.map +1 -1
  157. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.js +20 -5
  158. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.js.map +1 -1
  159. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.d.ts +6 -5
  160. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.d.ts.map +1 -1
  161. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.js +14 -9
  162. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.js.map +1 -1
  163. package/lib/stores/fetch-structure/projection/QueryResultSetModifierState.d.ts +6 -3
  164. package/lib/stores/fetch-structure/projection/QueryResultSetModifierState.d.ts.map +1 -1
  165. package/lib/stores/fetch-structure/projection/QueryResultSetModifierState.js +28 -5
  166. package/lib/stores/fetch-structure/projection/QueryResultSetModifierState.js.map +1 -1
  167. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperator.d.ts +4 -1
  168. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperator.d.ts.map +1 -1
  169. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperator.js +7 -1
  170. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperator.js.map +1 -1
  171. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationState.d.ts +8 -5
  172. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationState.d.ts.map +1 -1
  173. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationState.js +24 -7
  174. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationState.js.map +1 -1
  175. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Average.d.ts +3 -1
  176. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Average.d.ts.map +1 -1
  177. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Average.js +5 -0
  178. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Average.js.map +1 -1
  179. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Count.d.ts +3 -1
  180. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Count.d.ts.map +1 -1
  181. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Count.js +5 -0
  182. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Count.js.map +1 -1
  183. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Distinct.d.ts +3 -1
  184. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Distinct.d.ts.map +1 -1
  185. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Distinct.js +7 -0
  186. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Distinct.js.map +1 -1
  187. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.d.ts +3 -1
  188. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.d.ts.map +1 -1
  189. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.js +7 -1
  190. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.js.map +1 -1
  191. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_JoinString.d.ts +3 -1
  192. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_JoinString.d.ts.map +1 -1
  193. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_JoinString.js +7 -1
  194. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_JoinString.js.map +1 -1
  195. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Max.d.ts +3 -1
  196. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Max.d.ts.map +1 -1
  197. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Max.js +5 -0
  198. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Max.js.map +1 -1
  199. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Min.d.ts +3 -1
  200. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Min.d.ts.map +1 -1
  201. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Min.js +5 -0
  202. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Min.js.map +1 -1
  203. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.d.ts +3 -1
  204. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.d.ts.map +1 -1
  205. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.js +7 -0
  206. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.js.map +1 -1
  207. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.d.ts +3 -1
  208. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.d.ts.map +1 -1
  209. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.js +7 -0
  210. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.js.map +1 -1
  211. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Sum.d.ts +3 -1
  212. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Sum.d.ts.map +1 -1
  213. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Sum.js +5 -0
  214. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Sum.js.map +1 -1
  215. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterOperator.d.ts +3 -1
  216. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterOperator.d.ts.map +1 -1
  217. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterOperator.js.map +1 -1
  218. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterState.d.ts +14 -8
  219. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterState.d.ts.map +1 -1
  220. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterState.js +54 -4
  221. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterState.js.map +1 -1
  222. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.d.ts +4 -1
  223. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.d.ts.map +1 -1
  224. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js +12 -1
  225. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js.map +1 -1
  226. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.d.ts +4 -1
  227. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.d.ts.map +1 -1
  228. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js +12 -1
  229. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js.map +1 -1
  230. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.d.ts +4 -1
  231. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.d.ts.map +1 -1
  232. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js +10 -1
  233. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js.map +1 -1
  234. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.d.ts +3 -1
  235. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.d.ts.map +1 -1
  236. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js +7 -1
  237. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js.map +1 -1
  238. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.d.ts +1 -0
  239. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.d.ts.map +1 -1
  240. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.js +7 -0
  241. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.js.map +1 -1
  242. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.d.ts +4 -1
  243. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.d.ts.map +1 -1
  244. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.js +10 -1
  245. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.js.map +1 -1
  246. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.d.ts +4 -1
  247. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.d.ts.map +1 -1
  248. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js +12 -0
  249. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js.map +1 -1
  250. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.d.ts +3 -1
  251. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.d.ts.map +1 -1
  252. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js +7 -1
  253. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js.map +1 -1
  254. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.d.ts +3 -1
  255. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.d.ts.map +1 -1
  256. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.js +7 -0
  257. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.js.map +1 -1
  258. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.d.ts +5 -2
  259. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.d.ts.map +1 -1
  260. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js +12 -1
  261. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js.map +1 -1
  262. package/lib/stores/filter/QueryBuilderFilterOperator.d.ts +3 -1
  263. package/lib/stores/filter/QueryBuilderFilterOperator.d.ts.map +1 -1
  264. package/lib/stores/filter/QueryBuilderFilterOperator.js.map +1 -1
  265. package/lib/stores/filter/QueryBuilderFilterState.d.ts +14 -8
  266. package/lib/stores/filter/QueryBuilderFilterState.d.ts.map +1 -1
  267. package/lib/stores/filter/QueryBuilderFilterState.js +54 -9
  268. package/lib/stores/filter/QueryBuilderFilterState.js.map +1 -1
  269. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.d.ts +4 -1
  270. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.d.ts.map +1 -1
  271. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js +10 -1
  272. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js.map +1 -1
  273. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.d.ts +4 -1
  274. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.d.ts.map +1 -1
  275. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.js +10 -1
  276. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.js.map +1 -1
  277. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.d.ts +4 -1
  278. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.d.ts.map +1 -1
  279. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.js +8 -1
  280. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.js.map +1 -1
  281. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.d.ts +3 -1
  282. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.d.ts.map +1 -1
  283. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.js +7 -1
  284. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.js.map +1 -1
  285. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts +3 -1
  286. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts.map +1 -1
  287. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js +7 -1
  288. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js.map +1 -1
  289. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.d.ts +4 -1
  290. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.d.ts.map +1 -1
  291. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.js +8 -0
  292. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.js.map +1 -1
  293. package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.d.ts +4 -1
  294. package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.d.ts.map +1 -1
  295. package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.js +10 -0
  296. package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.js.map +1 -1
  297. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.d.ts +3 -1
  298. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.d.ts.map +1 -1
  299. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.js +5 -1
  300. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.js.map +1 -1
  301. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.d.ts +3 -1
  302. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.d.ts.map +1 -1
  303. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.js +7 -1
  304. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.js.map +1 -1
  305. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.d.ts +4 -1
  306. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.d.ts.map +1 -1
  307. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js +10 -1
  308. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js.map +1 -1
  309. package/lib/stores/workflows/ServiceQueryBuilderState.d.ts.map +1 -1
  310. package/lib/stores/workflows/ServiceQueryBuilderState.js +15 -7
  311. package/lib/stores/workflows/ServiceQueryBuilderState.js.map +1 -1
  312. package/package.json +17 -15
  313. package/src/components/QueryBuilder.tsx +41 -1
  314. package/src/components/QueryBuilderDiffPanel.tsx +222 -0
  315. package/src/components/QueryBuilderParametersPanel.tsx +2 -2
  316. package/src/components/QueryBuilderResultPanel.tsx +34 -20
  317. package/src/components/QueryBuilderSideBar.tsx +1 -1
  318. package/src/components/QueryBuilderUnsupportedQueryEditor.tsx +8 -9
  319. package/src/components/QuerySetupUtils.ts +23 -0
  320. package/src/components/ServiceQuerySetupUtils.tsx +54 -0
  321. package/src/components/explorer/QueryBuilderExplorerPanel.tsx +5 -12
  322. package/src/components/explorer/QueryBuilderFunctionsExplorerPanel.tsx +24 -14
  323. package/src/components/explorer/{QueryBuilderMilestoneEditor.tsx → QueryBuilderMilestoningEditor.tsx} +12 -8
  324. package/src/components/explorer/QueryBuilderPropertySearchPanel.tsx +156 -145
  325. package/src/components/fetch-structure/QueryBuilderFetchStructurePanel.tsx +10 -5
  326. package/src/components/fetch-structure/QueryBuilderPostFilterPanel.tsx +5 -4
  327. package/src/components/fetch-structure/QueryBuilderProjectionPanel.tsx +4 -7
  328. package/src/components/filter/QueryBuilderFilterPanel.tsx +6 -15
  329. package/src/components/shared/QueryBuilderPropertyInfoTooltip.tsx +22 -0
  330. package/src/graphManager/QueryBuilderHashUtils.ts +95 -0
  331. package/src/index.ts +4 -0
  332. package/src/stores/QueryBuilderChangeDetectionState.ts +143 -10
  333. package/src/stores/QueryBuilderConfig.ts +2 -0
  334. package/src/stores/QueryBuilderMilestoningState.ts +12 -1
  335. package/src/stores/QueryBuilderParametersState.ts +18 -3
  336. package/src/stores/QueryBuilderPropertyEditorState.ts +19 -7
  337. package/src/stores/QueryBuilderResultState.ts +30 -8
  338. package/src/stores/QueryBuilderState.ts +50 -37
  339. package/src/stores/QueryBuilderStateTestUtils.ts +1 -1
  340. package/src/stores/QueryBuilderTextEditorState.ts +1 -1
  341. package/src/stores/QueryBuilderTypeaheadHelper.ts +6 -5
  342. package/src/stores/QueryBuilderUnsupportedQueryState.ts +13 -3
  343. package/src/stores/ServiceInfo.ts +52 -0
  344. package/src/stores/explorer/QueryBuilderExplorerState.ts +26 -30
  345. package/src/stores/explorer/QueryBuilderPropertySearchState.ts +259 -193
  346. package/src/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.ts +8 -3
  347. package/src/stores/fetch-structure/QueryBuilderFetchStructureState.ts +4 -4
  348. package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.ts +18 -2
  349. package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.ts +31 -6
  350. package/src/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.ts +34 -9
  351. package/src/stores/fetch-structure/projection/QueryBuilderProjectionState.ts +23 -16
  352. package/src/stores/fetch-structure/projection/QueryResultSetModifierState.ts +38 -8
  353. package/src/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperator.ts +15 -2
  354. package/src/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationState.ts +37 -12
  355. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Average.ts +10 -1
  356. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Count.ts +10 -1
  357. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Distinct.ts +12 -1
  358. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.ts +17 -2
  359. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_JoinString.ts +17 -2
  360. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Max.ts +10 -1
  361. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Min.ts +10 -1
  362. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.ts +12 -1
  363. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.ts +12 -1
  364. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Sum.ts +10 -1
  365. package/src/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterOperator.ts +4 -2
  366. package/src/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterState.ts +78 -10
  367. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.ts +19 -1
  368. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.ts +22 -2
  369. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.ts +17 -1
  370. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.ts +13 -1
  371. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.ts +8 -0
  372. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.ts +20 -2
  373. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.ts +18 -1
  374. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.ts +13 -1
  375. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.ts +12 -1
  376. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.ts +26 -3
  377. package/src/stores/filter/QueryBuilderFilterOperator.ts +4 -2
  378. package/src/stores/filter/QueryBuilderFilterState.ts +80 -22
  379. package/src/stores/filter/operators/QueryBuilderFilterOperator_Contain.ts +20 -2
  380. package/src/stores/filter/operators/QueryBuilderFilterOperator_EndWith.ts +20 -2
  381. package/src/stores/filter/operators/QueryBuilderFilterOperator_Equal.ts +18 -2
  382. package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.ts +16 -2
  383. package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.ts +16 -2
  384. package/src/stores/filter/operators/QueryBuilderFilterOperator_In.ts +14 -1
  385. package/src/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.ts +16 -1
  386. package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThan.ts +14 -2
  387. package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.ts +16 -2
  388. package/src/stores/filter/operators/QueryBuilderFilterOperator_StartWith.ts +20 -2
  389. package/src/stores/workflows/ServiceQueryBuilderState.ts +24 -9
  390. package/tsconfig.json +8 -2
  391. package/lib/components/explorer/QueryBuilderMilestoneEditor.d.ts.map +0 -1
  392. package/lib/components/explorer/QueryBuilderMilestoneEditor.js.map +0 -1
@@ -22,7 +22,11 @@ import {
22
22
  PRIMITIVE_TYPE,
23
23
  buildPrimitiveInstanceValue,
24
24
  } from '@finos/legend-graph';
25
- import { UnsupportedOperationError } from '@finos/legend-shared';
25
+ import {
26
+ type Hashable,
27
+ hashArray,
28
+ UnsupportedOperationError,
29
+ } from '@finos/legend-shared';
26
30
  import { QueryBuilderPostFilterOperator } from '../QueryBuilderPostFilterOperator.js';
27
31
  import { buildPostFilterConditionState } from '../QueryBuilderPostFilterStateBuilder.js';
28
32
  import type {
@@ -37,8 +41,12 @@ import {
37
41
  } from '../../../../QueryBuilderValueSpecificationHelper.js';
38
42
  import { buildPostFilterConditionExpression } from './QueryBuilderPostFilterOperatorHelper.js';
39
43
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../../../graphManager/QueryBuilderSupportedFunctions.js';
44
+ import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../../../graphManager/QueryBuilderHashUtils.js';
40
45
 
41
- export class QueryBuilderPostFilterOperator_StartWith extends QueryBuilderPostFilterOperator {
46
+ export class QueryBuilderPostFilterOperator_StartWith
47
+ extends QueryBuilderPostFilterOperator
48
+ implements Hashable
49
+ {
42
50
  getLabel(): string {
43
51
  return 'starts with';
44
52
  }
@@ -102,8 +110,17 @@ export class QueryBuilderPostFilterOperator_StartWith extends QueryBuilderPostFi
102
110
  this,
103
111
  );
104
112
  }
113
+
114
+ get hashCode(): string {
115
+ return hashArray([
116
+ QUERY_BUILDER_HASH_STRUCTURE.POST_FILTER_OPERATOR_START_WITH,
117
+ ]);
118
+ }
105
119
  }
106
- export class QueryBuilderPostFilterOperator_NotStartWith extends QueryBuilderPostFilterOperator_StartWith {
120
+ export class QueryBuilderPostFilterOperator_NotStartWith
121
+ extends QueryBuilderPostFilterOperator_StartWith
122
+ implements Hashable
123
+ {
107
124
  override getLabel(): string {
108
125
  return `doesn't start with`;
109
126
  }
@@ -132,4 +149,10 @@ export class QueryBuilderPostFilterOperator_NotStartWith extends QueryBuilderPos
132
149
  ? super.buildPostFilterConditionState(postFilterState, innerExpression)
133
150
  : undefined;
134
151
  }
152
+
153
+ override get hashCode(): string {
154
+ return hashArray([
155
+ QUERY_BUILDER_HASH_STRUCTURE.POST_FILTER_OPERATOR_NOT_START_WITH,
156
+ ]);
157
+ }
135
158
  }
@@ -18,13 +18,13 @@ import type {
18
18
  SimpleFunctionExpression,
19
19
  ValueSpecification,
20
20
  } from '@finos/legend-graph';
21
- import { uuid } from '@finos/legend-shared';
21
+ import { type Hashable, uuid } from '@finos/legend-shared';
22
22
  import type {
23
23
  FilterConditionState,
24
24
  QueryBuilderFilterState,
25
25
  } from './QueryBuilderFilterState.js';
26
26
 
27
- export abstract class QueryBuilderFilterOperator {
27
+ export abstract class QueryBuilderFilterOperator implements Hashable {
28
28
  readonly uuid = uuid();
29
29
 
30
30
  abstract getLabel(filterConditionState: FilterConditionState): string;
@@ -49,4 +49,6 @@ export abstract class QueryBuilderFilterOperator {
49
49
  filterState: QueryBuilderFilterState,
50
50
  expression: SimpleFunctionExpression,
51
51
  ): FilterConditionState | undefined;
52
+
53
+ abstract get hashCode(): string;
52
54
  }
@@ -14,14 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import {
18
- action,
19
- computed,
20
- makeAutoObservable,
21
- makeObservable,
22
- observable,
23
- flow,
24
- } from 'mobx';
17
+ import { action, computed, makeObservable, observable, flow } from 'mobx';
25
18
  import type { TreeNodeData, TreeData } from '@finos/legend-art';
26
19
  import {
27
20
  type GeneratorFn,
@@ -36,6 +29,8 @@ import {
36
29
  assertErrorThrown,
37
30
  filterByType,
38
31
  ActionState,
32
+ type Hashable,
33
+ hashArray,
39
34
  } from '@finos/legend-shared';
40
35
  import type { QueryBuilderExplorerTreeDragSource } from '../explorer/QueryBuilderExplorerState.js';
41
36
  import { QueryBuilderPropertyExpressionState } from '../QueryBuilderPropertyEditorState.js';
@@ -55,6 +50,7 @@ import {
55
50
  } from '../QueryBuilderTypeaheadHelper.js';
56
51
  import type { QueryBuilderFilterOperator } from './QueryBuilderFilterOperator.js';
57
52
  import { QUERY_BUILDER_GROUP_OPERATION } from '../QueryBuilderGroupOperationHelper.js';
53
+ import { QUERY_BUILDER_HASH_STRUCTURE } from '../../graphManager/QueryBuilderHashUtils.js';
58
54
 
59
55
  export enum QUERY_BUILDER_FILTER_DND_TYPE {
60
56
  GROUP_CONDITION = 'GROUP_CONDITION',
@@ -73,8 +69,8 @@ export type QueryBuilderFilterDropTarget =
73
69
  export type QueryBuilderFilterConditionRearrangeDropTarget =
74
70
  QueryBuilderFilterConditionDragSource;
75
71
 
76
- export class FilterConditionState {
77
- filterState: QueryBuilderFilterState;
72
+ export class FilterConditionState implements Hashable {
73
+ readonly filterState: QueryBuilderFilterState;
78
74
  propertyExpressionState: QueryBuilderPropertyExpressionState;
79
75
  operator!: QueryBuilderFilterOperator;
80
76
  value?: ValueSpecification | undefined;
@@ -86,17 +82,20 @@ export class FilterConditionState {
86
82
  filterState: QueryBuilderFilterState,
87
83
  propertyExpression: AbstractPropertyExpression,
88
84
  ) {
89
- makeAutoObservable(this, {
90
- filterState: false,
85
+ makeObservable(this, {
86
+ propertyExpressionState: observable,
87
+ operator: observable,
88
+ value: observable,
89
+ existsLambdaParamNames: observable,
90
+ typeaheadSearchResults: observable,
91
91
  operators: computed,
92
92
  changeProperty: action,
93
93
  changeOperator: action,
94
94
  setOperator: action,
95
95
  setValue: action,
96
- typeaheadSearchResults: observable,
97
- typeaheadSearchState: observable,
98
96
  addExistsLambdaParamNames: action,
99
97
  handleTypeaheadSearch: flow,
98
+ hashCode: computed,
100
99
  });
101
100
 
102
101
  this.filterState = filterState;
@@ -208,9 +207,20 @@ export class FilterConditionState {
208
207
  addExistsLambdaParamNames(val: string): void {
209
208
  this.existsLambdaParamNames.push(val);
210
209
  }
210
+
211
+ get hashCode(): string {
212
+ return hashArray([
213
+ QUERY_BUILDER_HASH_STRUCTURE.FILTER_CONDITION_STATE,
214
+ this.propertyExpressionState,
215
+ this.value ?? '',
216
+ this.operator,
217
+ ]);
218
+ }
211
219
  }
212
220
 
213
- export abstract class QueryBuilderFilterTreeNodeData implements TreeNodeData {
221
+ export abstract class QueryBuilderFilterTreeNodeData
222
+ implements TreeNodeData, Hashable
223
+ {
214
224
  readonly id = uuid();
215
225
  readonly label = '';
216
226
  // NOTE: we don't use the `isSelected` attribute is not used since we keep track of it from the tree data level
@@ -225,6 +235,7 @@ export abstract class QueryBuilderFilterTreeNodeData implements TreeNodeData {
225
235
  parentId: observable,
226
236
  setIsOpen: action,
227
237
  setParentId: action,
238
+ hashCode: computed,
228
239
  });
229
240
  }
230
241
 
@@ -235,9 +246,14 @@ export abstract class QueryBuilderFilterTreeNodeData implements TreeNodeData {
235
246
  setParentId(val: string | undefined): void {
236
247
  this.parentId = val;
237
248
  }
249
+
250
+ abstract get hashCode(): string;
238
251
  }
239
252
 
240
- export class QueryBuilderFilterTreeGroupNodeData extends QueryBuilderFilterTreeNodeData {
253
+ export class QueryBuilderFilterTreeGroupNodeData
254
+ extends QueryBuilderFilterTreeNodeData
255
+ implements Hashable
256
+ {
241
257
  groupOperation: QUERY_BUILDER_GROUP_OPERATION;
242
258
  childrenIds: string[] = [];
243
259
 
@@ -282,9 +298,21 @@ export class QueryBuilderFilterTreeGroupNodeData extends QueryBuilderFilterTreeN
282
298
  node.setParentId(this.id);
283
299
  }
284
300
  }
301
+
302
+ get hashCode(): string {
303
+ return hashArray([
304
+ QUERY_BUILDER_HASH_STRUCTURE.FILTER_TREE_GROUP_NODE_DATA,
305
+ this.parentId ?? '',
306
+ hashArray(this.childrenIds),
307
+ this.groupOperation,
308
+ ]);
309
+ }
285
310
  }
286
311
 
287
- export class QueryBuilderFilterTreeConditionNodeData extends QueryBuilderFilterTreeNodeData {
312
+ export class QueryBuilderFilterTreeConditionNodeData
313
+ extends QueryBuilderFilterTreeNodeData
314
+ implements Hashable
315
+ {
288
316
  condition: FilterConditionState;
289
317
 
290
318
  constructor(parentId: string | undefined, condition: FilterConditionState) {
@@ -301,9 +329,20 @@ export class QueryBuilderFilterTreeConditionNodeData extends QueryBuilderFilterT
301
329
  get dragPreviewLabel(): string {
302
330
  return this.condition.propertyExpressionState.title;
303
331
  }
332
+
333
+ get hashCode(): string {
334
+ return hashArray([
335
+ QUERY_BUILDER_HASH_STRUCTURE.FILTER_TREE_CONDIITION_NODE_DATA,
336
+ this.parentId ?? '',
337
+ this.condition,
338
+ ]);
339
+ }
304
340
  }
305
341
 
306
- export class QueryBuilderFilterTreeBlankConditionNodeData extends QueryBuilderFilterTreeNodeData {
342
+ export class QueryBuilderFilterTreeBlankConditionNodeData
343
+ extends QueryBuilderFilterTreeNodeData
344
+ implements Hashable
345
+ {
307
346
  constructor(parentId: string | undefined) {
308
347
  super(parentId);
309
348
 
@@ -315,10 +354,17 @@ export class QueryBuilderFilterTreeBlankConditionNodeData extends QueryBuilderFi
315
354
  get dragPreviewLabel(): string {
316
355
  return '<blank>';
317
356
  }
357
+
358
+ get hashCode(): string {
359
+ return hashArray([
360
+ QUERY_BUILDER_HASH_STRUCTURE.FILTER_TREE_BLANK_CONDITION_NODE_DATA,
361
+ this.parentId ?? '',
362
+ ]);
363
+ }
318
364
  }
319
365
 
320
366
  export class QueryBuilderFilterState
321
- implements TreeData<QueryBuilderFilterTreeNodeData>
367
+ implements TreeData<QueryBuilderFilterTreeNodeData>, Hashable
322
368
  {
323
369
  queryBuilderState: QueryBuilderState;
324
370
  lambdaParameterName = DEFAULT_LAMBDA_VARIABLE_NAME;
@@ -333,9 +379,12 @@ export class QueryBuilderFilterState
333
379
  queryBuilderState: QueryBuilderState,
334
380
  operators: QueryBuilderFilterOperator[],
335
381
  ) {
336
- makeAutoObservable(this, {
337
- queryBuilderState: false,
338
- isValidMove: false,
382
+ makeObservable(this, {
383
+ rootIds: observable,
384
+ nodes: observable,
385
+ selectedNode: observable,
386
+ isRearrangingConditions: observable,
387
+ lambdaParameterName: observable,
339
388
  setLambdaParameterName: action,
340
389
  setRearrangingConditions: action,
341
390
  suppressClickawayEventListener: action,
@@ -350,6 +399,7 @@ export class QueryBuilderFilterState
350
399
  simplifyTree: action,
351
400
  collapseTree: action,
352
401
  expandTree: action,
402
+ hashCode: computed,
353
403
  });
354
404
 
355
405
  this.queryBuilderState = queryBuilderState;
@@ -733,4 +783,12 @@ export class QueryBuilderFilterState
733
783
  expandTree(): void {
734
784
  Array.from(this.nodes.values()).forEach((node) => node.setIsOpen(true));
735
785
  }
786
+
787
+ get hashCode(): string {
788
+ return hashArray([
789
+ QUERY_BUILDER_HASH_STRUCTURE.FILTER_STATE,
790
+ hashArray(this.rootIds),
791
+ hashArray(Array.from(this.nodes.values())),
792
+ ]);
793
+ }
736
794
  }
@@ -25,7 +25,11 @@ import {
25
25
  type SimpleFunctionExpression,
26
26
  buildPrimitiveInstanceValue,
27
27
  } from '@finos/legend-graph';
28
- import { UnsupportedOperationError } from '@finos/legend-shared';
28
+ import {
29
+ type Hashable,
30
+ hashArray,
31
+ UnsupportedOperationError,
32
+ } from '@finos/legend-shared';
29
33
  import {
30
34
  buildFilterConditionState,
31
35
  buildFilterConditionExpression,
@@ -37,8 +41,12 @@ import {
37
41
  unwrapNotExpression,
38
42
  } from '../../QueryBuilderValueSpecificationHelper.js';
39
43
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../graphManager/QueryBuilderSupportedFunctions.js';
44
+ import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../graphManager/QueryBuilderHashUtils.js';
40
45
 
41
- export class QueryBuilderFilterOperator_Contain extends QueryBuilderFilterOperator {
46
+ export class QueryBuilderFilterOperator_Contain
47
+ extends QueryBuilderFilterOperator
48
+ implements Hashable
49
+ {
42
50
  getLabel(filterConditionState: FilterConditionState): string {
43
51
  return 'contains';
44
52
  }
@@ -105,6 +113,10 @@ export class QueryBuilderFilterOperator_Contain extends QueryBuilderFilterOperat
105
113
  this,
106
114
  );
107
115
  }
116
+
117
+ get hashCode(): string {
118
+ return hashArray([QUERY_BUILDER_HASH_STRUCTURE.FILTER_OPERATOR_CONTAIN]);
119
+ }
108
120
  }
109
121
 
110
122
  export class QueryBuilderFilterOperator_NotContain extends QueryBuilderFilterOperator_Contain {
@@ -131,4 +143,10 @@ export class QueryBuilderFilterOperator_NotContain extends QueryBuilderFilterOpe
131
143
  ? super.buildFilterConditionState(filterState, innerExpression)
132
144
  : undefined;
133
145
  }
146
+
147
+ override get hashCode(): string {
148
+ return hashArray([
149
+ QUERY_BUILDER_HASH_STRUCTURE.FILTER_OPERATOR_NOT_CONTAIN,
150
+ ]);
151
+ }
134
152
  }
@@ -25,7 +25,11 @@ import {
25
25
  type SimpleFunctionExpression,
26
26
  buildPrimitiveInstanceValue,
27
27
  } from '@finos/legend-graph';
28
- import { UnsupportedOperationError } from '@finos/legend-shared';
28
+ import {
29
+ type Hashable,
30
+ hashArray,
31
+ UnsupportedOperationError,
32
+ } from '@finos/legend-shared';
29
33
  import {
30
34
  buildFilterConditionState,
31
35
  buildFilterConditionExpression,
@@ -37,8 +41,12 @@ import {
37
41
  unwrapNotExpression,
38
42
  } from '../../QueryBuilderValueSpecificationHelper.js';
39
43
  import { QUERY_BUILDER_SUPPORTED_FUNCTIONS } from '../../../graphManager/QueryBuilderSupportedFunctions.js';
44
+ import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../graphManager/QueryBuilderHashUtils.js';
40
45
 
41
- export class QueryBuilderFilterOperator_EndWith extends QueryBuilderFilterOperator {
46
+ export class QueryBuilderFilterOperator_EndWith
47
+ extends QueryBuilderFilterOperator
48
+ implements Hashable
49
+ {
42
50
  getLabel(filterConditionState: FilterConditionState): string {
43
51
  return 'ends with';
44
52
  }
@@ -105,6 +113,10 @@ export class QueryBuilderFilterOperator_EndWith extends QueryBuilderFilterOperat
105
113
  this,
106
114
  );
107
115
  }
116
+
117
+ get hashCode(): string {
118
+ return hashArray([QUERY_BUILDER_HASH_STRUCTURE.FILTER_OPERATOR_END_WITH]);
119
+ }
108
120
  }
109
121
 
110
122
  export class QueryBuilderFilterOperator_NotEndWith extends QueryBuilderFilterOperator_EndWith {
@@ -131,4 +143,10 @@ export class QueryBuilderFilterOperator_NotEndWith extends QueryBuilderFilterOpe
131
143
  ? super.buildFilterConditionState(filterState, innerExpression)
132
144
  : undefined;
133
145
  }
146
+
147
+ override get hashCode(): string {
148
+ return hashArray([
149
+ QUERY_BUILDER_HASH_STRUCTURE.FILTER_OPERATOR_NOT_END_WITH,
150
+ ]);
151
+ }
134
152
  }
@@ -34,7 +34,11 @@ import {
34
34
  SUPPORTED_FUNCTIONS,
35
35
  buildPrimitiveInstanceValue,
36
36
  } from '@finos/legend-graph';
37
- import { UnsupportedOperationError } from '@finos/legend-shared';
37
+ import {
38
+ type Hashable,
39
+ hashArray,
40
+ UnsupportedOperationError,
41
+ } from '@finos/legend-shared';
38
42
  import {
39
43
  buildFilterConditionState,
40
44
  buildFilterConditionExpression,
@@ -47,8 +51,12 @@ import {
47
51
  isTypeCompatibleForAssignment,
48
52
  unwrapNotExpression,
49
53
  } from '../../QueryBuilderValueSpecificationHelper.js';
54
+ import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../graphManager/QueryBuilderHashUtils.js';
50
55
 
51
- export class QueryBuilderFilterOperator_Equal extends QueryBuilderFilterOperator {
56
+ export class QueryBuilderFilterOperator_Equal
57
+ extends QueryBuilderFilterOperator
58
+ implements Hashable
59
+ {
52
60
  getLabel(filterConditionState: FilterConditionState): string {
53
61
  return 'is';
54
62
  }
@@ -182,6 +190,10 @@ export class QueryBuilderFilterOperator_Equal extends QueryBuilderFilterOperator
182
190
  this,
183
191
  );
184
192
  }
193
+
194
+ get hashCode(): string {
195
+ return hashArray([QUERY_BUILDER_HASH_STRUCTURE.FILTER_OPERATOR_EQUAL]);
196
+ }
185
197
  }
186
198
 
187
199
  export class QueryBuilderFilterOperator_NotEqual extends QueryBuilderFilterOperator_Equal {
@@ -208,4 +220,8 @@ export class QueryBuilderFilterOperator_NotEqual extends QueryBuilderFilterOpera
208
220
  ? super.buildFilterConditionState(filterState, innerExpression)
209
221
  : undefined;
210
222
  }
223
+
224
+ override get hashCode(): string {
225
+ return hashArray([QUERY_BUILDER_HASH_STRUCTURE.FILTER_OPERATOR_NOT_EQUAL]);
226
+ }
211
227
  }
@@ -27,7 +27,11 @@ import {
27
27
  SUPPORTED_FUNCTIONS,
28
28
  buildPrimitiveInstanceValue,
29
29
  } from '@finos/legend-graph';
30
- import { UnsupportedOperationError } from '@finos/legend-shared';
30
+ import {
31
+ type Hashable,
32
+ UnsupportedOperationError,
33
+ hashArray,
34
+ } from '@finos/legend-shared';
31
35
  import {
32
36
  buildFilterConditionState,
33
37
  buildFilterConditionExpression,
@@ -38,8 +42,12 @@ import {
38
42
  getNonCollectionValueSpecificationType,
39
43
  isTypeCompatibleForAssignment,
40
44
  } from '../../QueryBuilderValueSpecificationHelper.js';
45
+ import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../graphManager/QueryBuilderHashUtils.js';
41
46
 
42
- export class QueryBuilderFilterOperator_GreaterThan extends QueryBuilderFilterOperator {
47
+ export class QueryBuilderFilterOperator_GreaterThan
48
+ extends QueryBuilderFilterOperator
49
+ implements Hashable
50
+ {
43
51
  getLabel(filterConditionState: FilterConditionState): string {
44
52
  return '>';
45
53
  }
@@ -142,4 +150,10 @@ export class QueryBuilderFilterOperator_GreaterThan extends QueryBuilderFilterOp
142
150
  this,
143
151
  );
144
152
  }
153
+
154
+ get hashCode(): string {
155
+ return hashArray([
156
+ QUERY_BUILDER_HASH_STRUCTURE.FILTER_OPERATOR_GREATER_THAN,
157
+ ]);
158
+ }
145
159
  }
@@ -27,7 +27,11 @@ import {
27
27
  SUPPORTED_FUNCTIONS,
28
28
  buildPrimitiveInstanceValue,
29
29
  } from '@finos/legend-graph';
30
- import { UnsupportedOperationError } from '@finos/legend-shared';
30
+ import {
31
+ type Hashable,
32
+ UnsupportedOperationError,
33
+ hashArray,
34
+ } from '@finos/legend-shared';
31
35
  import {
32
36
  buildFilterConditionState,
33
37
  buildFilterConditionExpression,
@@ -38,8 +42,12 @@ import {
38
42
  getNonCollectionValueSpecificationType,
39
43
  isTypeCompatibleForAssignment,
40
44
  } from '../../QueryBuilderValueSpecificationHelper.js';
45
+ import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../graphManager/QueryBuilderHashUtils.js';
41
46
 
42
- export class QueryBuilderFilterOperator_GreaterThanEqual extends QueryBuilderFilterOperator {
47
+ export class QueryBuilderFilterOperator_GreaterThanEqual
48
+ extends QueryBuilderFilterOperator
49
+ implements Hashable
50
+ {
43
51
  getLabel(filterConditionState: FilterConditionState): string {
44
52
  return '>=';
45
53
  }
@@ -142,4 +150,10 @@ export class QueryBuilderFilterOperator_GreaterThanEqual extends QueryBuilderFil
142
150
  this,
143
151
  );
144
152
  }
153
+
154
+ get hashCode(): string {
155
+ return hashArray([
156
+ QUERY_BUILDER_HASH_STRUCTURE.FILTER_OPERATOR_GREATER_THAN_EQUAL,
157
+ ]);
158
+ }
145
159
  }
@@ -40,8 +40,13 @@ import {
40
40
  getCollectionValueSpecificationType,
41
41
  unwrapNotExpression,
42
42
  } from '../../QueryBuilderValueSpecificationHelper.js';
43
+ import { type Hashable, hashArray } from '@finos/legend-shared';
44
+ import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../graphManager/QueryBuilderHashUtils.js';
43
45
 
44
- export class QueryBuilderFilterOperator_In extends QueryBuilderFilterOperator {
46
+ export class QueryBuilderFilterOperator_In
47
+ extends QueryBuilderFilterOperator
48
+ implements Hashable
49
+ {
45
50
  getLabel(filterConditionState: FilterConditionState): string {
46
51
  return 'is in';
47
52
  }
@@ -152,6 +157,10 @@ export class QueryBuilderFilterOperator_In extends QueryBuilderFilterOperator {
152
157
  this,
153
158
  );
154
159
  }
160
+
161
+ get hashCode(): string {
162
+ return hashArray([QUERY_BUILDER_HASH_STRUCTURE.FILTER_OPERATOR_IN]);
163
+ }
155
164
  }
156
165
 
157
166
  export class QueryBuilderFilterOperator_NotIn extends QueryBuilderFilterOperator_In {
@@ -178,4 +187,8 @@ export class QueryBuilderFilterOperator_NotIn extends QueryBuilderFilterOperator
178
187
  ? super.buildFilterConditionState(filterState, innerExpression)
179
188
  : undefined;
180
189
  }
190
+
191
+ override get hashCode(): string {
192
+ return hashArray([QUERY_BUILDER_HASH_STRUCTURE.FILTER_OPERATOR_NOT_IN]);
193
+ }
181
194
  }
@@ -35,8 +35,13 @@ import {
35
35
  isPropertyExpressionChainOptional,
36
36
  unwrapNotExpression,
37
37
  } from '../../QueryBuilderValueSpecificationHelper.js';
38
+ import { type Hashable, hashArray } from '@finos/legend-shared';
39
+ import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../graphManager/QueryBuilderHashUtils.js';
38
40
 
39
- export class QueryBuilderFilterOperator_IsEmpty extends QueryBuilderFilterOperator {
41
+ export class QueryBuilderFilterOperator_IsEmpty
42
+ extends QueryBuilderFilterOperator
43
+ implements Hashable
44
+ {
40
45
  getLabel(filterConditionState: FilterConditionState): string {
41
46
  return 'is empty';
42
47
  }
@@ -96,6 +101,10 @@ export class QueryBuilderFilterOperator_IsEmpty extends QueryBuilderFilterOperat
96
101
  true,
97
102
  );
98
103
  }
104
+
105
+ get hashCode(): string {
106
+ return hashArray([QUERY_BUILDER_HASH_STRUCTURE.FILTER_OPERATOR_IS_EMPTY]);
107
+ }
99
108
  }
100
109
 
101
110
  export class QueryBuilderFilterOperator_IsNotEmpty extends QueryBuilderFilterOperator_IsEmpty {
@@ -122,4 +131,10 @@ export class QueryBuilderFilterOperator_IsNotEmpty extends QueryBuilderFilterOpe
122
131
  ? super.buildFilterConditionState(filterState, innerExpression)
123
132
  : undefined;
124
133
  }
134
+
135
+ override get hashCode(): string {
136
+ return hashArray([
137
+ QUERY_BUILDER_HASH_STRUCTURE.FILTER_OPERATOR_IS_NOT_EMPTY,
138
+ ]);
139
+ }
125
140
  }
@@ -27,7 +27,11 @@ import {
27
27
  SUPPORTED_FUNCTIONS,
28
28
  buildPrimitiveInstanceValue,
29
29
  } from '@finos/legend-graph';
30
- import { UnsupportedOperationError } from '@finos/legend-shared';
30
+ import {
31
+ type Hashable,
32
+ hashArray,
33
+ UnsupportedOperationError,
34
+ } from '@finos/legend-shared';
31
35
  import {
32
36
  buildFilterConditionState,
33
37
  buildFilterConditionExpression,
@@ -38,8 +42,12 @@ import {
38
42
  getNonCollectionValueSpecificationType,
39
43
  isTypeCompatibleForAssignment,
40
44
  } from '../../QueryBuilderValueSpecificationHelper.js';
45
+ import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../graphManager/QueryBuilderHashUtils.js';
41
46
 
42
- export class QueryBuilderFilterOperator_LessThan extends QueryBuilderFilterOperator {
47
+ export class QueryBuilderFilterOperator_LessThan
48
+ extends QueryBuilderFilterOperator
49
+ implements Hashable
50
+ {
43
51
  getLabel(filterConditionState: FilterConditionState): string {
44
52
  return '<';
45
53
  }
@@ -142,4 +150,8 @@ export class QueryBuilderFilterOperator_LessThan extends QueryBuilderFilterOpera
142
150
  this,
143
151
  );
144
152
  }
153
+
154
+ get hashCode(): string {
155
+ return hashArray([QUERY_BUILDER_HASH_STRUCTURE.FILTER_OPERATOR_LESS_THAN]);
156
+ }
145
157
  }
@@ -27,7 +27,11 @@ import {
27
27
  SUPPORTED_FUNCTIONS,
28
28
  buildPrimitiveInstanceValue,
29
29
  } from '@finos/legend-graph';
30
- import { UnsupportedOperationError } from '@finos/legend-shared';
30
+ import {
31
+ type Hashable,
32
+ UnsupportedOperationError,
33
+ hashArray,
34
+ } from '@finos/legend-shared';
31
35
  import {
32
36
  buildFilterConditionState,
33
37
  buildFilterConditionExpression,
@@ -38,8 +42,12 @@ import {
38
42
  getNonCollectionValueSpecificationType,
39
43
  isTypeCompatibleForAssignment,
40
44
  } from '../../QueryBuilderValueSpecificationHelper.js';
45
+ import { QUERY_BUILDER_HASH_STRUCTURE } from '../../../graphManager/QueryBuilderHashUtils.js';
41
46
 
42
- export class QueryBuilderFilterOperator_LessThanEqual extends QueryBuilderFilterOperator {
47
+ export class QueryBuilderFilterOperator_LessThanEqual
48
+ extends QueryBuilderFilterOperator
49
+ implements Hashable
50
+ {
43
51
  getLabel(filterConditionState: FilterConditionState): string {
44
52
  return '<=';
45
53
  }
@@ -142,4 +150,10 @@ export class QueryBuilderFilterOperator_LessThanEqual extends QueryBuilderFilter
142
150
  this,
143
151
  );
144
152
  }
153
+
154
+ get hashCode(): string {
155
+ return hashArray([
156
+ QUERY_BUILDER_HASH_STRUCTURE.FILTER_OPERATOR_LESS_THAN_EQUAL,
157
+ ]);
158
+ }
145
159
  }