@finos/legend-query-builder 0.0.2 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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
  }