@finos/legend-query-builder 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (348) hide show
  1. package/lib/components/QueryBuilder.d.ts.map +1 -1
  2. package/lib/components/QueryBuilder.js +14 -4
  3. package/lib/components/QueryBuilder.js.map +1 -1
  4. package/lib/components/QueryBuilderDiffPanel.d.ts +22 -0
  5. package/lib/components/QueryBuilderDiffPanel.d.ts.map +1 -0
  6. package/lib/components/QueryBuilderDiffPanel.js +103 -0
  7. package/lib/components/QueryBuilderDiffPanel.js.map +1 -0
  8. package/lib/components/QueryBuilderParametersPanel.js +3 -3
  9. package/lib/components/QueryBuilderParametersPanel.js.map +1 -1
  10. package/lib/components/QueryBuilderResultPanel.d.ts.map +1 -1
  11. package/lib/components/QueryBuilderResultPanel.js +8 -9
  12. package/lib/components/QueryBuilderResultPanel.js.map +1 -1
  13. package/lib/components/QueryBuilderSideBar.js +1 -1
  14. package/lib/components/QueryBuilderSideBar.js.map +1 -1
  15. package/lib/components/ServiceQuerySetupUtils.d.ts +23 -0
  16. package/lib/components/ServiceQuerySetupUtils.d.ts.map +1 -0
  17. package/lib/components/ServiceQuerySetupUtils.js +25 -0
  18. package/lib/components/ServiceQuerySetupUtils.js.map +1 -0
  19. package/lib/components/explorer/QueryBuilderExplorerPanel.d.ts.map +1 -1
  20. package/lib/components/explorer/QueryBuilderExplorerPanel.js +4 -10
  21. package/lib/components/explorer/QueryBuilderExplorerPanel.js.map +1 -1
  22. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.d.ts.map +1 -1
  23. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js +8 -6
  24. package/lib/components/explorer/QueryBuilderFunctionsExplorerPanel.js.map +1 -1
  25. package/lib/components/explorer/{QueryBuilderMilestoneEditor.d.ts → QueryBuilderMilestoningEditor.d.ts} +1 -1
  26. package/lib/components/explorer/QueryBuilderMilestoningEditor.d.ts.map +1 -0
  27. package/lib/components/explorer/{QueryBuilderMilestoneEditor.js → QueryBuilderMilestoningEditor.js} +9 -9
  28. package/lib/components/explorer/QueryBuilderMilestoningEditor.js.map +1 -0
  29. package/lib/components/explorer/QueryBuilderPropertySearchPanel.d.ts.map +1 -1
  30. package/lib/components/explorer/QueryBuilderPropertySearchPanel.js +69 -61
  31. package/lib/components/explorer/QueryBuilderPropertySearchPanel.js.map +1 -1
  32. package/lib/components/fetch-structure/QueryBuilderProjectionPanel.d.ts.map +1 -1
  33. package/lib/components/fetch-structure/QueryBuilderProjectionPanel.js +1 -3
  34. package/lib/components/fetch-structure/QueryBuilderProjectionPanel.js.map +1 -1
  35. package/lib/components/filter/QueryBuilderFilterPanel.d.ts.map +1 -1
  36. package/lib/components/filter/QueryBuilderFilterPanel.js +3 -7
  37. package/lib/components/filter/QueryBuilderFilterPanel.js.map +1 -1
  38. package/lib/components/shared/QueryBuilderPropertyInfoTooltip.d.ts.map +1 -1
  39. package/lib/components/shared/QueryBuilderPropertyInfoTooltip.js +7 -2
  40. package/lib/components/shared/QueryBuilderPropertyInfoTooltip.js.map +1 -1
  41. package/lib/graphManager/QueryBuilderHashUtils.d.ts +84 -0
  42. package/lib/graphManager/QueryBuilderHashUtils.d.ts.map +1 -0
  43. package/lib/graphManager/QueryBuilderHashUtils.js +91 -0
  44. package/lib/graphManager/QueryBuilderHashUtils.js.map +1 -0
  45. package/lib/index.css +2 -2
  46. package/lib/index.css.map +1 -1
  47. package/lib/index.d.ts +3 -0
  48. package/lib/index.d.ts.map +1 -1
  49. package/lib/index.js +3 -0
  50. package/lib/index.js.map +1 -1
  51. package/lib/package.json +6 -4
  52. package/lib/stores/QueryBuilderChangeDetectionState.d.ts +26 -5
  53. package/lib/stores/QueryBuilderChangeDetectionState.d.ts.map +1 -1
  54. package/lib/stores/QueryBuilderChangeDetectionState.js +82 -10
  55. package/lib/stores/QueryBuilderChangeDetectionState.js.map +1 -1
  56. package/lib/stores/QueryBuilderConfig.d.ts +1 -0
  57. package/lib/stores/QueryBuilderConfig.d.ts.map +1 -1
  58. package/lib/stores/QueryBuilderConfig.js +1 -0
  59. package/lib/stores/QueryBuilderConfig.js.map +1 -1
  60. package/lib/stores/QueryBuilderMilestoningState.d.ts +3 -1
  61. package/lib/stores/QueryBuilderMilestoningState.d.ts.map +1 -1
  62. package/lib/stores/QueryBuilderMilestoningState.js +10 -0
  63. package/lib/stores/QueryBuilderMilestoningState.js.map +1 -1
  64. package/lib/stores/QueryBuilderParametersState.d.ts +3 -1
  65. package/lib/stores/QueryBuilderParametersState.d.ts.map +1 -1
  66. package/lib/stores/QueryBuilderParametersState.js +10 -1
  67. package/lib/stores/QueryBuilderParametersState.js.map +1 -1
  68. package/lib/stores/QueryBuilderPropertyEditorState.d.ts +5 -3
  69. package/lib/stores/QueryBuilderPropertyEditorState.d.ts.map +1 -1
  70. package/lib/stores/QueryBuilderPropertyEditorState.js +15 -5
  71. package/lib/stores/QueryBuilderPropertyEditorState.js.map +1 -1
  72. package/lib/stores/QueryBuilderResultState.d.ts +5 -3
  73. package/lib/stores/QueryBuilderResultState.d.ts.map +1 -1
  74. package/lib/stores/QueryBuilderResultState.js +26 -6
  75. package/lib/stores/QueryBuilderResultState.js.map +1 -1
  76. package/lib/stores/QueryBuilderState.d.ts +3 -5
  77. package/lib/stores/QueryBuilderState.d.ts.map +1 -1
  78. package/lib/stores/QueryBuilderState.js +32 -22
  79. package/lib/stores/QueryBuilderState.js.map +1 -1
  80. package/lib/stores/QueryBuilderStateTestUtils.js +1 -1
  81. package/lib/stores/QueryBuilderStateTestUtils.js.map +1 -1
  82. package/lib/stores/QueryBuilderTextEditorState.js +1 -1
  83. package/lib/stores/QueryBuilderTextEditorState.js.map +1 -1
  84. package/lib/stores/QueryBuilderUnsupportedQueryState.d.ts +4 -2
  85. package/lib/stores/QueryBuilderUnsupportedQueryState.d.ts.map +1 -1
  86. package/lib/stores/QueryBuilderUnsupportedQueryState.js +10 -1
  87. package/lib/stores/QueryBuilderUnsupportedQueryState.js.map +1 -1
  88. package/lib/stores/ServiceInfo.d.ts +28 -0
  89. package/lib/stores/ServiceInfo.d.ts.map +1 -0
  90. package/lib/stores/ServiceInfo.js +34 -0
  91. package/lib/stores/ServiceInfo.js.map +1 -0
  92. package/lib/stores/explorer/QueryBuilderExplorerState.d.ts +6 -6
  93. package/lib/stores/explorer/QueryBuilderExplorerState.d.ts.map +1 -1
  94. package/lib/stores/explorer/QueryBuilderExplorerState.js +19 -14
  95. package/lib/stores/explorer/QueryBuilderExplorerState.js.map +1 -1
  96. package/lib/stores/explorer/QueryBuilderPropertySearchState.d.ts +36 -17
  97. package/lib/stores/explorer/QueryBuilderPropertySearchState.d.ts.map +1 -1
  98. package/lib/stores/explorer/QueryBuilderPropertySearchState.js +203 -161
  99. package/lib/stores/explorer/QueryBuilderPropertySearchState.js.map +1 -1
  100. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts +5 -3
  101. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.d.ts.map +1 -1
  102. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js +1 -0
  103. package/lib/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.js.map +1 -1
  104. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.d.ts +1 -1
  105. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.d.ts.map +1 -1
  106. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.js +3 -3
  107. package/lib/stores/fetch-structure/QueryBuilderFetchStructureState.js.map +1 -1
  108. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts +3 -1
  109. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.d.ts.map +1 -1
  110. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js +9 -1
  111. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.js.map +1 -1
  112. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.d.ts +7 -5
  113. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.d.ts.map +1 -1
  114. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.js +20 -5
  115. package/lib/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.js.map +1 -1
  116. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.d.ts +7 -4
  117. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.d.ts.map +1 -1
  118. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.js +20 -5
  119. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.js.map +1 -1
  120. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.d.ts +6 -5
  121. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.d.ts.map +1 -1
  122. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.js +14 -9
  123. package/lib/stores/fetch-structure/projection/QueryBuilderProjectionState.js.map +1 -1
  124. package/lib/stores/fetch-structure/projection/QueryResultSetModifierState.d.ts +6 -3
  125. package/lib/stores/fetch-structure/projection/QueryResultSetModifierState.d.ts.map +1 -1
  126. package/lib/stores/fetch-structure/projection/QueryResultSetModifierState.js +28 -5
  127. package/lib/stores/fetch-structure/projection/QueryResultSetModifierState.js.map +1 -1
  128. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperator.d.ts +4 -1
  129. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperator.d.ts.map +1 -1
  130. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperator.js +7 -1
  131. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperator.js.map +1 -1
  132. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationState.d.ts +8 -5
  133. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationState.d.ts.map +1 -1
  134. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationState.js +24 -7
  135. package/lib/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationState.js.map +1 -1
  136. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Average.d.ts +3 -1
  137. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Average.d.ts.map +1 -1
  138. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Average.js +5 -0
  139. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Average.js.map +1 -1
  140. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Count.d.ts +3 -1
  141. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Count.d.ts.map +1 -1
  142. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Count.js +5 -0
  143. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Count.js.map +1 -1
  144. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Distinct.d.ts +3 -1
  145. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Distinct.d.ts.map +1 -1
  146. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Distinct.js +7 -0
  147. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Distinct.js.map +1 -1
  148. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.d.ts +3 -1
  149. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.d.ts.map +1 -1
  150. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.js +7 -1
  151. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.js.map +1 -1
  152. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_JoinString.d.ts +3 -1
  153. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_JoinString.d.ts.map +1 -1
  154. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_JoinString.js +7 -1
  155. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_JoinString.js.map +1 -1
  156. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Max.d.ts +3 -1
  157. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Max.d.ts.map +1 -1
  158. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Max.js +5 -0
  159. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Max.js.map +1 -1
  160. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Min.d.ts +3 -1
  161. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Min.d.ts.map +1 -1
  162. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Min.js +5 -0
  163. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Min.js.map +1 -1
  164. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.d.ts +3 -1
  165. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.d.ts.map +1 -1
  166. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.js +7 -0
  167. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.js.map +1 -1
  168. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.d.ts +3 -1
  169. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.d.ts.map +1 -1
  170. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.js +7 -0
  171. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.js.map +1 -1
  172. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Sum.d.ts +3 -1
  173. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Sum.d.ts.map +1 -1
  174. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Sum.js +5 -0
  175. package/lib/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Sum.js.map +1 -1
  176. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterOperator.d.ts +3 -1
  177. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterOperator.d.ts.map +1 -1
  178. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterOperator.js.map +1 -1
  179. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterState.d.ts +14 -8
  180. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterState.d.ts.map +1 -1
  181. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterState.js +54 -4
  182. package/lib/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterState.js.map +1 -1
  183. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.d.ts +4 -1
  184. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.d.ts.map +1 -1
  185. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js +12 -1
  186. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.js.map +1 -1
  187. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.d.ts +4 -1
  188. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.d.ts.map +1 -1
  189. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js +12 -1
  190. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.js.map +1 -1
  191. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.d.ts +4 -1
  192. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.d.ts.map +1 -1
  193. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js +10 -1
  194. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.js.map +1 -1
  195. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.d.ts +3 -1
  196. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.d.ts.map +1 -1
  197. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js +7 -1
  198. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.js.map +1 -1
  199. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.d.ts +1 -0
  200. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.d.ts.map +1 -1
  201. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.js +7 -0
  202. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.js.map +1 -1
  203. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.d.ts +4 -1
  204. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.d.ts.map +1 -1
  205. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.js +10 -1
  206. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.js.map +1 -1
  207. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.d.ts +4 -1
  208. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.d.ts.map +1 -1
  209. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js +12 -0
  210. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.js.map +1 -1
  211. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.d.ts +3 -1
  212. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.d.ts.map +1 -1
  213. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js +7 -1
  214. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.js.map +1 -1
  215. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.d.ts +3 -1
  216. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.d.ts.map +1 -1
  217. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.js +7 -0
  218. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.js.map +1 -1
  219. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.d.ts +5 -2
  220. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.d.ts.map +1 -1
  221. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js +12 -1
  222. package/lib/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.js.map +1 -1
  223. package/lib/stores/filter/QueryBuilderFilterOperator.d.ts +3 -1
  224. package/lib/stores/filter/QueryBuilderFilterOperator.d.ts.map +1 -1
  225. package/lib/stores/filter/QueryBuilderFilterOperator.js.map +1 -1
  226. package/lib/stores/filter/QueryBuilderFilterState.d.ts +14 -8
  227. package/lib/stores/filter/QueryBuilderFilterState.d.ts.map +1 -1
  228. package/lib/stores/filter/QueryBuilderFilterState.js +54 -9
  229. package/lib/stores/filter/QueryBuilderFilterState.js.map +1 -1
  230. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.d.ts +4 -1
  231. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.d.ts.map +1 -1
  232. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js +10 -1
  233. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Contain.js.map +1 -1
  234. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.d.ts +4 -1
  235. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.d.ts.map +1 -1
  236. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.js +10 -1
  237. package/lib/stores/filter/operators/QueryBuilderFilterOperator_EndWith.js.map +1 -1
  238. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.d.ts +4 -1
  239. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.d.ts.map +1 -1
  240. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.js +8 -1
  241. package/lib/stores/filter/operators/QueryBuilderFilterOperator_Equal.js.map +1 -1
  242. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.d.ts +3 -1
  243. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.d.ts.map +1 -1
  244. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.js +7 -1
  245. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.js.map +1 -1
  246. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts +3 -1
  247. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.d.ts.map +1 -1
  248. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js +7 -1
  249. package/lib/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.js.map +1 -1
  250. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.d.ts +4 -1
  251. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.d.ts.map +1 -1
  252. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.js +8 -0
  253. package/lib/stores/filter/operators/QueryBuilderFilterOperator_In.js.map +1 -1
  254. package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.d.ts +4 -1
  255. package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.d.ts.map +1 -1
  256. package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.js +10 -0
  257. package/lib/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.js.map +1 -1
  258. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.d.ts +3 -1
  259. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.d.ts.map +1 -1
  260. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.js +5 -1
  261. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThan.js.map +1 -1
  262. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.d.ts +3 -1
  263. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.d.ts.map +1 -1
  264. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.js +7 -1
  265. package/lib/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.js.map +1 -1
  266. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.d.ts +4 -1
  267. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.d.ts.map +1 -1
  268. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js +10 -1
  269. package/lib/stores/filter/operators/QueryBuilderFilterOperator_StartWith.js.map +1 -1
  270. package/lib/stores/workflows/ServiceQueryBuilderState.d.ts.map +1 -1
  271. package/lib/stores/workflows/ServiceQueryBuilderState.js +15 -7
  272. package/lib/stores/workflows/ServiceQueryBuilderState.js.map +1 -1
  273. package/package.json +12 -10
  274. package/src/components/QueryBuilder.tsx +41 -1
  275. package/src/components/QueryBuilderDiffPanel.tsx +222 -0
  276. package/src/components/QueryBuilderParametersPanel.tsx +3 -3
  277. package/src/components/QueryBuilderResultPanel.tsx +31 -18
  278. package/src/components/QueryBuilderSideBar.tsx +1 -1
  279. package/src/components/ServiceQuerySetupUtils.tsx +54 -0
  280. package/src/components/explorer/QueryBuilderExplorerPanel.tsx +5 -12
  281. package/src/components/explorer/QueryBuilderFunctionsExplorerPanel.tsx +24 -14
  282. package/src/components/explorer/{QueryBuilderMilestoneEditor.tsx → QueryBuilderMilestoningEditor.tsx} +12 -8
  283. package/src/components/explorer/QueryBuilderPropertySearchPanel.tsx +156 -145
  284. package/src/components/fetch-structure/QueryBuilderProjectionPanel.tsx +1 -5
  285. package/src/components/filter/QueryBuilderFilterPanel.tsx +3 -13
  286. package/src/components/shared/QueryBuilderPropertyInfoTooltip.tsx +22 -0
  287. package/src/graphManager/QueryBuilderHashUtils.ts +95 -0
  288. package/src/index.ts +3 -0
  289. package/src/stores/QueryBuilderChangeDetectionState.ts +112 -10
  290. package/src/stores/QueryBuilderConfig.ts +2 -0
  291. package/src/stores/QueryBuilderMilestoningState.ts +12 -1
  292. package/src/stores/QueryBuilderParametersState.ts +15 -2
  293. package/src/stores/QueryBuilderPropertyEditorState.ts +19 -7
  294. package/src/stores/QueryBuilderResultState.ts +30 -8
  295. package/src/stores/QueryBuilderState.ts +50 -37
  296. package/src/stores/QueryBuilderStateTestUtils.ts +1 -1
  297. package/src/stores/QueryBuilderTextEditorState.ts +1 -1
  298. package/src/stores/QueryBuilderUnsupportedQueryState.ts +13 -3
  299. package/src/stores/ServiceInfo.ts +52 -0
  300. package/src/stores/explorer/QueryBuilderExplorerState.ts +26 -30
  301. package/src/stores/explorer/QueryBuilderPropertySearchState.ts +259 -193
  302. package/src/stores/fetch-structure/QueryBuilderFetchStructureImplementationState.ts +8 -3
  303. package/src/stores/fetch-structure/QueryBuilderFetchStructureState.ts +4 -4
  304. package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeState.ts +18 -2
  305. package/src/stores/fetch-structure/graph-fetch/QueryBuilderGraphFetchTreeUtil.ts +31 -6
  306. package/src/stores/fetch-structure/projection/QueryBuilderProjectionColumnState.ts +34 -9
  307. package/src/stores/fetch-structure/projection/QueryBuilderProjectionState.ts +23 -16
  308. package/src/stores/fetch-structure/projection/QueryResultSetModifierState.ts +38 -8
  309. package/src/stores/fetch-structure/projection/aggregation/QueryBuilderAggregateOperator.ts +15 -2
  310. package/src/stores/fetch-structure/projection/aggregation/QueryBuilderAggregationState.ts +37 -12
  311. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Average.ts +10 -1
  312. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Count.ts +10 -1
  313. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Distinct.ts +12 -1
  314. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_DistinctCount.ts +17 -2
  315. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_JoinString.ts +17 -2
  316. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Max.ts +10 -1
  317. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Min.ts +10 -1
  318. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Population.ts +12 -1
  319. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_StdDev_Sample.ts +12 -1
  320. package/src/stores/fetch-structure/projection/aggregation/operators/QueryBuilderAggregateOperator_Sum.ts +10 -1
  321. package/src/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterOperator.ts +4 -2
  322. package/src/stores/fetch-structure/projection/post-filter/QueryBuilderPostFilterState.ts +78 -10
  323. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Contain.ts +19 -1
  324. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_EndWith.ts +22 -2
  325. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_Equal.ts +17 -1
  326. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThan.ts +13 -1
  327. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_GreaterThanEqual.ts +8 -0
  328. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_In.ts +20 -2
  329. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_IsEmpty.ts +18 -1
  330. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThan.ts +13 -1
  331. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_LessThanEqual.ts +12 -1
  332. package/src/stores/fetch-structure/projection/post-filter/operators/QueryBuilderPostFilterOperator_StartWith.ts +26 -3
  333. package/src/stores/filter/QueryBuilderFilterOperator.ts +4 -2
  334. package/src/stores/filter/QueryBuilderFilterState.ts +80 -22
  335. package/src/stores/filter/operators/QueryBuilderFilterOperator_Contain.ts +20 -2
  336. package/src/stores/filter/operators/QueryBuilderFilterOperator_EndWith.ts +20 -2
  337. package/src/stores/filter/operators/QueryBuilderFilterOperator_Equal.ts +18 -2
  338. package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThan.ts +16 -2
  339. package/src/stores/filter/operators/QueryBuilderFilterOperator_GreaterThanEqual.ts +16 -2
  340. package/src/stores/filter/operators/QueryBuilderFilterOperator_In.ts +14 -1
  341. package/src/stores/filter/operators/QueryBuilderFilterOperator_IsEmpty.ts +16 -1
  342. package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThan.ts +14 -2
  343. package/src/stores/filter/operators/QueryBuilderFilterOperator_LessThanEqual.ts +16 -2
  344. package/src/stores/filter/operators/QueryBuilderFilterOperator_StartWith.ts +20 -2
  345. package/src/stores/workflows/ServiceQueryBuilderState.ts +24 -9
  346. package/tsconfig.json +7 -2
  347. package/lib/components/explorer/QueryBuilderMilestoneEditor.d.ts.map +0 -1
  348. package/lib/components/explorer/QueryBuilderMilestoneEditor.js.map +0 -1
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- import { useRef, useState } from 'react';
17
+ import React, { useMemo, useRef, useState } from 'react';
18
18
  import {
19
19
  clsx,
20
20
  CheckSquareIcon,
@@ -27,9 +27,10 @@ import {
27
27
  InfoCircleIcon,
28
28
  TimesIcon,
29
29
  SearchIcon,
30
- ChevronDownIcon,
31
- ChevronRightIcon,
32
30
  useDragPreviewLayer,
31
+ PanelLoadingIndicator,
32
+ BlankPanelContent,
33
+ CogIcon,
33
34
  } from '@finos/legend-art';
34
35
  import {
35
36
  Class,
@@ -37,7 +38,7 @@ import {
37
38
  getAllClassProperties,
38
39
  getAllOwnClassProperties,
39
40
  } from '@finos/legend-graph';
40
- import { guaranteeNonNullable } from '@finos/legend-shared';
41
+ import { debounce, guaranteeNonNullable } from '@finos/legend-shared';
41
42
  import { observer } from 'mobx-react-lite';
42
43
  import { useDrag } from 'react-dnd';
43
44
  import { QUERY_BUILDER_PROPERTY_SEARCH_TYPE } from '../../stores/QueryBuilderConfig.js';
@@ -57,6 +58,7 @@ import {
57
58
  } from './QueryBuilderExplorerPanel.js';
58
59
  import { QueryBuilderPropertyInfoTooltip } from '../shared/QueryBuilderPropertyInfoTooltip.js';
59
60
  import { QUERY_BUILDER_TEST_ID } from '../QueryBuilder_TestID.js';
61
+ import { TextSearchAdvancedConfigMenu } from '@finos/legend-application';
60
62
 
61
63
  const prettyPropertyNameFromNodeId = (name: string): string => {
62
64
  let propNameArray = name.split('.');
@@ -115,7 +117,7 @@ const QueryBuilderTreeNodeViewer = observer(
115
117
  const { node, queryBuilderState, explorerState, level, stepPaddingInRem } =
116
118
  props;
117
119
  const [isExpandable, setIsExpandable] = useState(false);
118
- const propertySearchPanelState = explorerState.propertySearchState;
120
+ const propertySearchState = explorerState.propertySearchState;
119
121
  const [, dragConnector, dragPreviewConnector] = useDrag<{
120
122
  node?: QueryBuilderExplorerTreePropertyNodeData;
121
123
  }>(
@@ -139,18 +141,7 @@ const QueryBuilderTreeNodeViewer = observer(
139
141
  [node],
140
142
  );
141
143
  useDragPreviewLayer(dragPreviewConnector);
142
- const isMultiple =
143
- (node instanceof QueryBuilderExplorerTreePropertyNodeData &&
144
- (node.property.multiplicity.upperBound === undefined ||
145
- node.property.multiplicity.upperBound > 1)) ||
146
- (node instanceof QueryBuilderExplorerTreeSubTypeNodeData &&
147
- (node.multiplicity.upperBound === undefined ||
148
- node.multiplicity.upperBound > 1));
149
- const nodeExpandIcon = isExpandable ? (
150
- <ChevronDownIcon />
151
- ) : (
152
- <ChevronRightIcon />
153
- );
144
+
154
145
  const getChildrenNodes = (): QueryBuilderExplorerTreeNodeData[] => {
155
146
  const childNodes: QueryBuilderExplorerTreeNodeData[] = [];
156
147
  if (node.childrenIds.length) {
@@ -183,7 +174,7 @@ const QueryBuilderTreeNodeViewer = observer(
183
174
  }
184
175
  return childNodes;
185
176
  };
186
- const parentNode = propertySearchPanelState.allMappedPropertyNodes.find(
177
+ const parentNode = propertySearchState.indexedExplorerTreeNodes.find(
187
178
  (pn) =>
188
179
  node instanceof QueryBuilderExplorerTreePropertyNodeData &&
189
180
  node.parentId === pn.id,
@@ -200,19 +191,12 @@ const QueryBuilderTreeNodeViewer = observer(
200
191
  }}
201
192
  onClick={(): void => setIsExpandable(!isExpandable)}
202
193
  // Temporarily hide away the panel when we drag-and-drop the properties
203
- onDrag={(): void =>
204
- propertySearchPanelState.setIsSearchPanelHidden(true)
205
- }
194
+ onDrag={(): void => propertySearchState.setIsSearchPanelHidden(true)}
206
195
  onDragEnd={(): void =>
207
- propertySearchPanelState.setIsSearchPanelHidden(false)
196
+ propertySearchState.setIsSearchPanelHidden(false)
208
197
  }
209
198
  >
210
199
  <div className="tree-view__node__icon query-builder-property-search-panel__node__icon">
211
- {node.type instanceof Class && (
212
- <div className="query-builder-property-search-panel__expand-icon">
213
- {nodeExpandIcon}
214
- </div>
215
- )}
216
200
  <div className="query-builder-property-search-panel__type-icon">
217
201
  {renderPropertyTypeIcon(node.type)}
218
202
  </div>
@@ -223,14 +207,6 @@ const QueryBuilderTreeNodeViewer = observer(
223
207
  : node instanceof QueryBuilderExplorerTreeSubTypeNodeData
224
208
  ? prettyPropertyNameForSubTypeClass(node.id)
225
209
  : prettyPropertyNameFromNodeId(node.id)}
226
- {isMultiple && (
227
- <div
228
- className="query-builder-property-search-panel__node__label__multiple"
229
- title="Multiple values of this property can cause row explosion"
230
- >
231
- *
232
- </div>
233
- )}
234
210
  </div>
235
211
  <div className="query-builder-property-search-panel__node__actions">
236
212
  {node instanceof QueryBuilderExplorerTreePropertyNodeData && (
@@ -281,37 +257,43 @@ export const QueryBuilderPropertySearchPanel = observer(
281
257
  }) => {
282
258
  const { queryBuilderState, triggerElement } = props;
283
259
  const explorerState = queryBuilderState.explorerState;
284
- const propertySearchPanelState = explorerState.propertySearchState;
260
+ const propertySearchState = explorerState.propertySearchState;
285
261
  const searchInputRef = useRef<HTMLInputElement>(null);
286
- const changePropertyName: React.ChangeEventHandler<HTMLInputElement> = (
287
- event,
288
- ) => {
289
- propertySearchPanelState.setSearchText(event.target.value);
290
- propertySearchPanelState.refreshPropertyState();
291
- if (propertySearchPanelState.searchText.length >= 3) {
292
- propertySearchPanelState.fetchMappedPropertyNodes(
293
- propertySearchPanelState.searchText,
294
- );
295
- }
296
- };
297
- const clearPropertyName = (): void => {
298
- propertySearchPanelState.setSearchText('');
299
- propertySearchPanelState.refreshPropertyState();
262
+ const searchConfigTriggerRef = useRef<HTMLButtonElement>(null);
263
+
264
+ // search text
265
+ const debouncedSearchProperty = useMemo(
266
+ () => debounce(() => propertySearchState.search(), 100),
267
+ [propertySearchState],
268
+ );
269
+ const onSearchPropertyTextChange: React.ChangeEventHandler<
270
+ HTMLInputElement
271
+ > = (event) => {
272
+ propertySearchState.setSearchText(event.target.value);
273
+ debouncedSearchProperty();
300
274
  };
301
- const handleClose = (): void => {
302
- clearPropertyName();
303
- propertySearchPanelState.setIsSearchPanelOpen(false);
275
+
276
+ // search actions
277
+ const clearSearch = (): void => {
278
+ propertySearchState.resetSearch();
304
279
  };
305
- const toggleIsMultiple = (): void => {
306
- propertySearchPanelState.setFilterByMultiple(
307
- !propertySearchPanelState.filterByMultiple,
280
+ const toggleSearchConfigMenu = (): void =>
281
+ propertySearchState.setShowSearchConfigurationMenu(
282
+ !propertySearchState.showSearchConfigurationMenu,
308
283
  );
309
- };
284
+ const closeSearchConfigMenu = (): void =>
285
+ propertySearchState.setShowSearchConfigurationMenu(false);
286
+
287
+ // life-cycle
310
288
  const handleEnter = (): void => searchInputRef.current?.focus();
289
+ const handleClose = (): void => {
290
+ clearSearch();
291
+ propertySearchState.setIsSearchPanelOpen(false);
292
+ };
311
293
 
312
294
  return (
313
295
  <BasePopover
314
- open={propertySearchPanelState.isSearchPanelOpen}
296
+ open={propertySearchState.isSearchPanelOpen}
315
297
  // we need to get rid of the backdrop and the click-away trap
316
298
  // to make this popover behave like a popper
317
299
  // NOTE: we will cancel the effect of click-away trap using CSS
@@ -323,7 +305,7 @@ export const QueryBuilderPropertySearchPanel = observer(
323
305
  }}
324
306
  className={clsx('query-builder-property-search-panel__container', {
325
307
  'query-builder-property-search-panel__container--hidden':
326
- propertySearchPanelState.isSearchPanelHidden,
308
+ propertySearchState.isSearchPanelHidden,
327
309
  })}
328
310
  anchorEl={triggerElement}
329
311
  onClose={handleClose}
@@ -351,31 +333,76 @@ export const QueryBuilderPropertySearchPanel = observer(
351
333
  'query-builder-property-search-panel__input input--dark',
352
334
  {
353
335
  'query-builder-property-search-panel__input--searching':
354
- propertySearchPanelState.searchText,
336
+ propertySearchState.searchText,
355
337
  },
356
338
  )}
357
- onChange={changePropertyName}
358
- value={propertySearchPanelState.searchText}
359
- placeholder="Search for a property"
339
+ spellCheck={false}
340
+ onChange={onSearchPropertyTextChange}
341
+ value={propertySearchState.searchText}
342
+ placeholder="Search for a property by name or documentation"
360
343
  />
361
- {!propertySearchPanelState.searchText ? (
362
- <div className="query-builder-property-search-panel__input__search__icon">
363
- <SearchIcon />
344
+ {propertySearchState.searchText && (
345
+ <div className="query-builder-property-search-panel__input__search__count">
346
+ {propertySearchState.filteredSearchResults.length +
347
+ (propertySearchState.isOverSearchLimit &&
348
+ propertySearchState.filteredSearchResults.length !== 0
349
+ ? '+'
350
+ : '')}
364
351
  </div>
365
- ) : (
352
+ )}
353
+ <button
354
+ ref={searchConfigTriggerRef}
355
+ className={clsx(
356
+ 'query-builder-property-search-panel__input__search__config__trigger',
357
+ {
358
+ 'query-builder-property-search-panel__input__search__config__trigger--toggled':
359
+ propertySearchState.showSearchConfigurationMenu,
360
+ 'query-builder-property-search-panel__input__search__config__trigger--active':
361
+ propertySearchState.searchConfigurationState
362
+ .isAdvancedSearchActive,
363
+ },
364
+ )}
365
+ tabIndex={-1}
366
+ onClick={toggleSearchConfigMenu}
367
+ title="Click to toggle search config menu"
368
+ >
369
+ <CogIcon />
370
+ </button>
371
+ <BasePopover
372
+ open={Boolean(propertySearchState.showSearchConfigurationMenu)}
373
+ TransitionProps={{
374
+ onEnter: handleEnter,
375
+ }}
376
+ anchorEl={searchConfigTriggerRef.current}
377
+ onClose={closeSearchConfigMenu}
378
+ anchorOrigin={{
379
+ vertical: 'bottom',
380
+ horizontal: 'center',
381
+ }}
382
+ transformOrigin={{
383
+ vertical: 'top',
384
+ horizontal: 'center',
385
+ }}
386
+ >
387
+ <TextSearchAdvancedConfigMenu
388
+ configState={propertySearchState.searchConfigurationState}
389
+ />
390
+ </BasePopover>
391
+ {!propertySearchState.searchText ? (
366
392
  <>
367
- <div className="query-builder-property-search-panel__input__search__count">
368
- {propertySearchPanelState.filteredPropertyNodes.length}
393
+ <div className="query-builder-property-search-panel__input__search__icon">
394
+ <SearchIcon />
369
395
  </div>
370
- <button
371
- className="query-builder-property-search-panel__input__clear-btn"
372
- tabIndex={-1}
373
- onClick={clearPropertyName}
374
- title="Clear"
375
- >
376
- <TimesIcon />
377
- </button>
378
396
  </>
397
+ ) : (
398
+ <button
399
+ className="query-builder-property-search-panel__input__clear-btn"
400
+ tabIndex={-1}
401
+ onClick={clearSearch}
402
+ title="Clear"
403
+ >
404
+ <TimesIcon />
405
+ </button>
379
406
  )}
380
407
  </div>
381
408
  <button
@@ -393,48 +420,7 @@ export const QueryBuilderPropertySearchPanel = observer(
393
420
  <div className="query-builder-property-search-panel__config">
394
421
  <div className="query-builder-property-search-panel__form__section">
395
422
  <div className="query-builder-property-search-panel__form__section__header__label">
396
- Multiple
397
- <div
398
- className="query-builder-property-search-panel__info__label"
399
- title="Includes properties with multiplicity greater than one"
400
- >
401
- <InfoCircleIcon />
402
- </div>
403
- </div>
404
- <div
405
- className={clsx(
406
- 'query-builder-property-search-panel__form__section__toggler',
407
- {
408
- 'query-builder-property-search-panel__form__section__toggler--disabled':
409
- false,
410
- },
411
- )}
412
- >
413
- <button
414
- className={clsx(
415
- 'query-builder-property-search-panel__form__section__toggler__btn',
416
- {
417
- 'query-builder-property-search-panel__form__section__toggler__btn--toggled':
418
- propertySearchPanelState.filterByMultiple,
419
- },
420
- )}
421
- onClick={toggleIsMultiple}
422
- tabIndex={-1}
423
- >
424
- {propertySearchPanelState.filterByMultiple ? (
425
- <CheckSquareIcon />
426
- ) : (
427
- <SquareIcon />
428
- )}
429
- </button>
430
- <div className="query-builder-property-search-panel__form__section__toggler__prompt">
431
- Included
432
- </div>
433
- </div>
434
- </div>
435
- <div className="query-builder-property-search-panel__form__section">
436
- <div className="query-builder-property-search-panel__form__section__header__label">
437
- Element types
423
+ By type
438
424
  </div>
439
425
  <div className="query-builder-property-search-panel__filter__element">
440
426
  <button
@@ -442,19 +428,19 @@ export const QueryBuilderPropertySearchPanel = observer(
442
428
  'query-builder-property-search-panel__form__section__toggler__btn',
443
429
  {
444
430
  'query-builder-property-search-panel__form__section__toggler__btn--toggled':
445
- propertySearchPanelState.typeFilters.includes(
431
+ propertySearchState.typeFilters.includes(
446
432
  QUERY_BUILDER_PROPERTY_SEARCH_TYPE.CLASS,
447
433
  ),
448
434
  },
449
435
  )}
450
436
  onClick={(): void => {
451
- propertySearchPanelState.toggleTypeFilter(
437
+ propertySearchState.toggleFilterForType(
452
438
  QUERY_BUILDER_PROPERTY_SEARCH_TYPE.CLASS,
453
439
  );
454
440
  }}
455
441
  tabIndex={-1}
456
442
  >
457
- {propertySearchPanelState.typeFilters.includes(
443
+ {propertySearchState.typeFilters.includes(
458
444
  QUERY_BUILDER_PROPERTY_SEARCH_TYPE.CLASS,
459
445
  ) ? (
460
446
  <CheckSquareIcon />
@@ -472,19 +458,19 @@ export const QueryBuilderPropertySearchPanel = observer(
472
458
  'query-builder-property-search-panel__form__section__toggler__btn',
473
459
  {
474
460
  'query-builder-property-search-panel__form__section__toggler__btn--toggled':
475
- propertySearchPanelState.typeFilters.includes(
461
+ propertySearchState.typeFilters.includes(
476
462
  QUERY_BUILDER_PROPERTY_SEARCH_TYPE.STRING,
477
463
  ),
478
464
  },
479
465
  )}
480
466
  onClick={(): void => {
481
- propertySearchPanelState.toggleTypeFilter(
467
+ propertySearchState.toggleFilterForType(
482
468
  QUERY_BUILDER_PROPERTY_SEARCH_TYPE.STRING,
483
469
  );
484
470
  }}
485
471
  tabIndex={-1}
486
472
  >
487
- {propertySearchPanelState.typeFilters.includes(
473
+ {propertySearchState.typeFilters.includes(
488
474
  QUERY_BUILDER_PROPERTY_SEARCH_TYPE.STRING,
489
475
  ) ? (
490
476
  <CheckSquareIcon />
@@ -502,19 +488,19 @@ export const QueryBuilderPropertySearchPanel = observer(
502
488
  'query-builder-property-search-panel__form__section__toggler__btn',
503
489
  {
504
490
  'query-builder-property-search-panel__form__section__toggler__btn--toggled':
505
- propertySearchPanelState.typeFilters.includes(
491
+ propertySearchState.typeFilters.includes(
506
492
  QUERY_BUILDER_PROPERTY_SEARCH_TYPE.BOOLEAN,
507
493
  ),
508
494
  },
509
495
  )}
510
496
  onClick={(): void => {
511
- propertySearchPanelState.toggleTypeFilter(
497
+ propertySearchState.toggleFilterForType(
512
498
  QUERY_BUILDER_PROPERTY_SEARCH_TYPE.BOOLEAN,
513
499
  );
514
500
  }}
515
501
  tabIndex={-1}
516
502
  >
517
- {propertySearchPanelState.typeFilters.includes(
503
+ {propertySearchState.typeFilters.includes(
518
504
  QUERY_BUILDER_PROPERTY_SEARCH_TYPE.BOOLEAN,
519
505
  ) ? (
520
506
  <CheckSquareIcon />
@@ -532,19 +518,19 @@ export const QueryBuilderPropertySearchPanel = observer(
532
518
  'query-builder-property-search-panel__form__section__toggler__btn',
533
519
  {
534
520
  'query-builder-property-search-panel__form__section__toggler__btn--toggled':
535
- propertySearchPanelState.typeFilters.includes(
521
+ propertySearchState.typeFilters.includes(
536
522
  QUERY_BUILDER_PROPERTY_SEARCH_TYPE.NUMBER,
537
523
  ),
538
524
  },
539
525
  )}
540
526
  onClick={(): void => {
541
- propertySearchPanelState.toggleTypeFilter(
527
+ propertySearchState.toggleFilterForType(
542
528
  QUERY_BUILDER_PROPERTY_SEARCH_TYPE.NUMBER,
543
529
  );
544
530
  }}
545
531
  tabIndex={-1}
546
532
  >
547
- {propertySearchPanelState.typeFilters.includes(
533
+ {propertySearchState.typeFilters.includes(
548
534
  QUERY_BUILDER_PROPERTY_SEARCH_TYPE.NUMBER,
549
535
  ) ? (
550
536
  <CheckSquareIcon />
@@ -562,19 +548,19 @@ export const QueryBuilderPropertySearchPanel = observer(
562
548
  'query-builder-property-search-panel__form__section__toggler__btn',
563
549
  {
564
550
  'query-builder-property-search-panel__form__section__toggler__btn--toggled':
565
- propertySearchPanelState.typeFilters.includes(
551
+ propertySearchState.typeFilters.includes(
566
552
  QUERY_BUILDER_PROPERTY_SEARCH_TYPE.DATE,
567
553
  ),
568
554
  },
569
555
  )}
570
556
  onClick={(): void => {
571
- propertySearchPanelState.toggleTypeFilter(
557
+ propertySearchState.toggleFilterForType(
572
558
  QUERY_BUILDER_PROPERTY_SEARCH_TYPE.DATE,
573
559
  );
574
560
  }}
575
561
  tabIndex={-1}
576
562
  >
577
- {propertySearchPanelState.typeFilters.includes(
563
+ {propertySearchState.typeFilters.includes(
578
564
  QUERY_BUILDER_PROPERTY_SEARCH_TYPE.DATE,
579
565
  ) ? (
580
566
  <CheckSquareIcon />
@@ -593,18 +579,43 @@ export const QueryBuilderPropertySearchPanel = observer(
593
579
  <ResizablePanelSplitterLine color="var(--color-dark-grey-200)" />
594
580
  </ResizablePanelSplitter>
595
581
  <ResizablePanel>
582
+ {propertySearchState.searchState.isInProgress && (
583
+ <PanelLoadingIndicator isLoading={true} />
584
+ )}
596
585
  <div className="query-builder-property-search-panel__results">
597
- {propertySearchPanelState.filteredPropertyNodes.map(
598
- (node) => (
599
- <QueryBuilderTreeNodeViewer
600
- key={node.id}
601
- node={node}
602
- queryBuilderState={queryBuilderState}
603
- level={1}
604
- stepPaddingInRem={0}
605
- explorerState={queryBuilderState.explorerState}
606
- />
607
- ),
586
+ {!propertySearchState.searchState.isInProgress && (
587
+ <>
588
+ {Boolean(
589
+ propertySearchState.filteredSearchResults.length,
590
+ ) &&
591
+ propertySearchState.filteredSearchResults.map(
592
+ (node) => (
593
+ <QueryBuilderTreeNodeViewer
594
+ key={node.id}
595
+ node={node}
596
+ queryBuilderState={queryBuilderState}
597
+ level={1}
598
+ stepPaddingInRem={0}
599
+ explorerState={queryBuilderState.explorerState}
600
+ />
601
+ ),
602
+ )}
603
+ {!propertySearchState.filteredSearchResults.length &&
604
+ propertySearchState.searchText && (
605
+ <BlankPanelContent>
606
+ <div className="query-builder-property-search-panel__result-placeholder__text">
607
+ No result
608
+ </div>
609
+ <div className="query-builder-property-search-panel__result-placeholder__tips">
610
+ Tips: Navigate deeper into the explorer tree to
611
+ improve the scope and accuracy of the search
612
+ </div>
613
+ </BlankPanelContent>
614
+ )}
615
+ </>
616
+ )}
617
+ {propertySearchState.searchState.isInProgress && (
618
+ <BlankPanelContent>Searching...</BlankPanelContent>
608
619
  )}
609
620
  </div>
610
621
  </ResizablePanel>
@@ -538,12 +538,8 @@ export const QueryBuilderProjectionPanel = observer(
538
538
  new QueryBuilderSimpleProjectionColumnState(
539
539
  projectionState,
540
540
  buildPropertyExpressionFromExplorerTreeNodeData(
541
- projectionState.queryBuilderState.explorerState
542
- .nonNullableTreeData,
543
541
  (item as QueryBuilderExplorerTreeDragSource).node,
544
- projectionState.queryBuilderState.graphManagerState.graph,
545
- projectionState.queryBuilderState.explorerState
546
- .propertySearchState.allMappedPropertyNodes,
542
+ projectionState.queryBuilderState.explorerState,
547
543
  ),
548
544
  projectionState.queryBuilderState.explorerState.humanizePropertyName,
549
545
  ),
@@ -148,12 +148,8 @@ const QueryBuilderFilterConditionEditor = observer(
148
148
  ): void =>
149
149
  node.condition.changeProperty(
150
150
  buildPropertyExpressionFromExplorerTreeNodeData(
151
- node.condition.filterState.queryBuilderState.explorerState
152
- .nonNullableTreeData,
153
151
  propertyNode,
154
- graph,
155
- node.condition.filterState.queryBuilderState.explorerState
156
- .propertySearchState.allMappedPropertyNodes,
152
+ node.condition.filterState.queryBuilderState.explorerState,
157
153
  ),
158
154
  );
159
155
  // Drag and Drop on filter condition value
@@ -402,11 +398,8 @@ const QueryBuilderFilterTreeNodeContainer = observer(
402
398
  filterConditionState = new FilterConditionState(
403
399
  filterState,
404
400
  buildPropertyExpressionFromExplorerTreeNodeData(
405
- filterState.queryBuilderState.explorerState.nonNullableTreeData,
406
401
  dropNode,
407
- filterState.queryBuilderState.graphManagerState.graph,
408
- filterState.queryBuilderState.explorerState.propertySearchState
409
- .allMappedPropertyNodes,
402
+ filterState.queryBuilderState.explorerState,
410
403
  ),
411
404
  );
412
405
  } catch (error) {
@@ -729,11 +722,8 @@ export const QueryBuilderFilterPanel = observer(
729
722
  } else {
730
723
  propertyExpression =
731
724
  buildPropertyExpressionFromExplorerTreeNodeData(
732
- filterState.queryBuilderState.explorerState.nonNullableTreeData,
733
725
  (item as QueryBuilderExplorerTreeDragSource).node,
734
- filterState.queryBuilderState.graphManagerState.graph,
735
- filterState.queryBuilderState.explorerState.propertySearchState
736
- .allMappedPropertyNodes,
726
+ filterState.queryBuilderState.explorerState,
737
727
  );
738
728
  }
739
729
  filterConditionState = new FilterConditionState(
@@ -19,6 +19,8 @@ import {
19
19
  type AbstractProperty,
20
20
  DerivedProperty,
21
21
  getMultiplicityDescription,
22
+ CORE_PURE_PATH,
23
+ PURE_DOC_TAG,
22
24
  } from '@finos/legend-graph';
23
25
 
24
26
  export const QueryBuilderPropertyInfoTooltip: React.FC<{
@@ -29,6 +31,15 @@ export const QueryBuilderPropertyInfoTooltip: React.FC<{
29
31
  placement?: TooltipPlacement | undefined;
30
32
  }> = (props) => {
31
33
  const { property, path, isMapped, children, placement } = props;
34
+ const documentation = property.taggedValues
35
+ .filter(
36
+ (taggedValue) =>
37
+ taggedValue.tag.ownerReference.value.path ===
38
+ CORE_PURE_PATH.PROFILE_DOC &&
39
+ taggedValue.tag.value.value === PURE_DOC_TAG,
40
+ )
41
+ .map((taggedValue) => taggedValue.value);
42
+
32
43
  return (
33
44
  <Tooltip
34
45
  arrow={true}
@@ -78,6 +89,17 @@ export const QueryBuilderPropertyInfoTooltip: React.FC<{
78
89
  {isMapped ? 'Yes' : 'No'}
79
90
  </div>
80
91
  </div>
92
+
93
+ {Boolean(documentation.length) && (
94
+ <div className="query-builder__tooltip__item">
95
+ <div className="query-builder__tooltip__item__label">
96
+ Documentation
97
+ </div>
98
+ <div className="query-builder__tooltip__item__value">
99
+ {documentation.join('\n\n')}
100
+ </div>
101
+ </div>
102
+ )}
81
103
  </div>
82
104
  }
83
105
  >