@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
@@ -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>
@@ -15,7 +15,12 @@
15
15
  */
16
16
 
17
17
  import { observer } from 'mobx-react-lite';
18
- import { clsx, BlankPanelContent } from '@finos/legend-art';
18
+ import {
19
+ clsx,
20
+ BlankPanelContent,
21
+ Panel,
22
+ PanelContent,
23
+ } from '@finos/legend-art';
19
24
  import type { QueryBuilderState } from '../../stores/QueryBuilderState.js';
20
25
  import { prettyCONSTName } from '@finos/legend-shared';
21
26
  import { QueryBuilderProjectionPanel } from './QueryBuilderProjectionPanel.js';
@@ -47,7 +52,7 @@ const QueryBuilderFetchStructureEditor = observer(
47
52
  );
48
53
  }
49
54
  return (
50
- <div className="panel__content">
55
+ <PanelContent>
51
56
  <BlankPanelContent>
52
57
  <div className="query-builder__unsupported-view__main">
53
58
  <div className="query-builder__unsupported-view__summary">
@@ -55,7 +60,7 @@ const QueryBuilderFetchStructureEditor = observer(
55
60
  </div>
56
61
  </div>
57
62
  </BlankPanelContent>
58
- </div>
63
+ </PanelContent>
59
64
  );
60
65
  },
61
66
  );
@@ -78,7 +83,7 @@ export const QueryBuilderFetchStructurePanel = observer(
78
83
  };
79
84
 
80
85
  return (
81
- <div className="panel">
86
+ <Panel>
82
87
  <div className="panel__header">
83
88
  <div className="panel__header__title">
84
89
  <div className="panel__header__title__label">fetch structure</div>
@@ -106,7 +111,7 @@ export const QueryBuilderFetchStructurePanel = observer(
106
111
  <QueryBuilderFetchStructureEditor
107
112
  queryBuilderState={queryBuilderState}
108
113
  />
109
- </div>
114
+ </Panel>
110
115
  );
111
116
  },
112
117
  );
@@ -52,6 +52,7 @@ import {
52
52
  PanelEntryDropZonePlaceholder,
53
53
  useDragPreviewLayer,
54
54
  BlankPanelContent,
55
+ PanelContent,
55
56
  } from '@finos/legend-art';
56
57
  import {
57
58
  type Type,
@@ -1035,7 +1036,7 @@ const QueryBuilderPostFilterPanelContent = observer(
1035
1036
  </button>
1036
1037
  </div>
1037
1038
  </div>
1038
- <div className="panel__content">
1039
+ <PanelContent>
1039
1040
  <PanelDropZone
1040
1041
  isDragOver={isDragOver}
1041
1042
  dropTargetConnector={dropTargetConnector}
@@ -1058,7 +1059,7 @@ const QueryBuilderPostFilterPanelContent = observer(
1058
1059
  </>
1059
1060
  )}
1060
1061
  </PanelDropZone>
1061
- </div>
1062
+ </PanelContent>
1062
1063
  </div>
1063
1064
  );
1064
1065
  },
@@ -1090,11 +1091,11 @@ export const QueryBuilderPostFilterPanel = observer(
1090
1091
  <div className="panel__header__title__label">post-filter</div>
1091
1092
  </div>
1092
1093
  </div>
1093
- <div className="panel__content">
1094
+ <PanelContent>
1094
1095
  <BlankPanelContent>
1095
1096
  Post-filter is not supported for the current fetch-structure
1096
1097
  </BlankPanelContent>
1097
- </div>
1098
+ </PanelContent>
1098
1099
  </>
1099
1100
  )}
1100
1101
  </div>
@@ -34,6 +34,7 @@ import {
34
34
  useDragPreviewLayer,
35
35
  OptionsIcon,
36
36
  PlusIcon,
37
+ PanelContent,
37
38
  } from '@finos/legend-art';
38
39
  import {
39
40
  type QueryBuilderExplorerTreeDragSource,
@@ -538,12 +539,8 @@ export const QueryBuilderProjectionPanel = observer(
538
539
  new QueryBuilderSimpleProjectionColumnState(
539
540
  projectionState,
540
541
  buildPropertyExpressionFromExplorerTreeNodeData(
541
- projectionState.queryBuilderState.explorerState
542
- .nonNullableTreeData,
543
542
  (item as QueryBuilderExplorerTreeDragSource).node,
544
- projectionState.queryBuilderState.graphManagerState.graph,
545
- projectionState.queryBuilderState.explorerState
546
- .propertySearchState.allMappedPropertyNodes,
543
+ projectionState.queryBuilderState.explorerState,
547
544
  ),
548
545
  projectionState.queryBuilderState.explorerState.humanizePropertyName,
549
546
  ),
@@ -587,7 +584,7 @@ export const QueryBuilderProjectionPanel = observer(
587
584
  }, [applicationStore, projectionState]);
588
585
 
589
586
  return (
590
- <div className="panel__content">
587
+ <PanelContent>
591
588
  <div className="query-builder__projection__toolbar">
592
589
  <button
593
590
  className="panel__header__action"
@@ -643,7 +640,7 @@ export const QueryBuilderProjectionPanel = observer(
643
640
  <QueryResultModifierModal projectionState={projectionState} />
644
641
  </PanelDropZone>
645
642
  </div>
646
- </div>
643
+ </PanelContent>
647
644
  );
648
645
  },
649
646
  );