@itwin/presentation-hierarchies 2.0.0-alpha.15 → 2.0.0-alpha.17

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 (424) hide show
  1. package/CHANGELOG.md +74 -0
  2. package/README.md +6 -17
  3. package/lib/hierarchies/HierarchyErrors.d.ts.map +1 -0
  4. package/lib/hierarchies/HierarchyErrors.js.map +1 -0
  5. package/lib/hierarchies/HierarchyMerge.d.ts.map +1 -0
  6. package/lib/hierarchies/HierarchyMerge.js.map +1 -0
  7. package/lib/hierarchies/HierarchyNode.d.ts.map +1 -0
  8. package/lib/hierarchies/HierarchyNode.js.map +1 -0
  9. package/lib/hierarchies/HierarchyNodeIdentifier.d.ts.map +1 -0
  10. package/lib/hierarchies/HierarchyNodeIdentifier.js.map +1 -0
  11. package/lib/{esm/hierarchies → hierarchies}/HierarchyNodeKey.d.ts +4 -4
  12. package/lib/hierarchies/HierarchyNodeKey.d.ts.map +1 -0
  13. package/lib/{esm/hierarchies → hierarchies}/HierarchyNodeKey.js +5 -5
  14. package/lib/hierarchies/HierarchyNodeKey.js.map +1 -0
  15. package/lib/hierarchies/HierarchyProvider.d.ts.map +1 -0
  16. package/lib/hierarchies/HierarchyProvider.js.map +1 -0
  17. package/lib/hierarchies/HierarchySearch.d.ts.map +1 -0
  18. package/lib/hierarchies/HierarchySearch.js.map +1 -0
  19. package/lib/hierarchies/Logging.d.ts.map +1 -0
  20. package/lib/hierarchies/Logging.js.map +1 -0
  21. package/lib/hierarchies/imodel/HierarchyCache.d.ts.map +1 -0
  22. package/lib/hierarchies/imodel/HierarchyCache.js.map +1 -0
  23. package/lib/{esm/hierarchies → hierarchies}/imodel/IModelHierarchyDefinition.d.ts +3 -34
  24. package/lib/hierarchies/imodel/IModelHierarchyDefinition.d.ts.map +1 -0
  25. package/lib/hierarchies/imodel/IModelHierarchyDefinition.js.map +1 -0
  26. package/lib/{esm/hierarchies → hierarchies}/imodel/IModelHierarchyNode.d.ts +2 -2
  27. package/lib/hierarchies/imodel/IModelHierarchyNode.d.ts.map +1 -0
  28. package/lib/hierarchies/imodel/IModelHierarchyNode.js.map +1 -0
  29. package/lib/{cjs/hierarchies → hierarchies}/imodel/IModelHierarchyProvider.d.ts +20 -2
  30. package/lib/hierarchies/imodel/IModelHierarchyProvider.d.ts.map +1 -0
  31. package/lib/{esm/hierarchies → hierarchies}/imodel/IModelHierarchyProvider.js +27 -21
  32. package/lib/hierarchies/imodel/IModelHierarchyProvider.js.map +1 -0
  33. package/lib/hierarchies/imodel/LimitingECSqlQueryExecutor.d.ts.map +1 -0
  34. package/lib/{esm/hierarchies → hierarchies}/imodel/LimitingECSqlQueryExecutor.js +6 -2
  35. package/lib/hierarchies/imodel/LimitingECSqlQueryExecutor.js.map +1 -0
  36. package/lib/{esm/hierarchies → hierarchies}/imodel/NodeSelectQueryFactory.d.ts +8 -7
  37. package/lib/hierarchies/imodel/NodeSelectQueryFactory.d.ts.map +1 -0
  38. package/lib/{esm/hierarchies → hierarchies}/imodel/NodeSelectQueryFactory.js +16 -11
  39. package/lib/hierarchies/imodel/NodeSelectQueryFactory.js.map +1 -0
  40. package/lib/{esm/hierarchies → hierarchies}/imodel/PredicateBasedHierarchyDefinition.d.ts +2 -2
  41. package/lib/hierarchies/imodel/PredicateBasedHierarchyDefinition.d.ts.map +1 -0
  42. package/lib/hierarchies/imodel/PredicateBasedHierarchyDefinition.js.map +1 -0
  43. package/lib/hierarchies/imodel/SearchHierarchyDefinition.d.ts.map +1 -0
  44. package/lib/{esm/hierarchies → hierarchies}/imodel/SearchHierarchyDefinition.js +3 -4
  45. package/lib/hierarchies/imodel/SearchHierarchyDefinition.js.map +1 -0
  46. package/lib/{esm/hierarchies → hierarchies}/imodel/TreeNodesReader.d.ts +1 -1
  47. package/lib/hierarchies/imodel/TreeNodesReader.d.ts.map +1 -0
  48. package/lib/{esm/hierarchies → hierarchies}/imodel/TreeNodesReader.js +2 -5
  49. package/lib/hierarchies/imodel/TreeNodesReader.js.map +1 -0
  50. package/lib/{esm/hierarchies → hierarchies}/imodel/Utils.d.ts +1 -0
  51. package/lib/hierarchies/imodel/Utils.d.ts.map +1 -0
  52. package/lib/{esm/hierarchies → hierarchies}/imodel/Utils.js +1 -0
  53. package/lib/hierarchies/imodel/Utils.js.map +1 -0
  54. package/lib/hierarchies/imodel/operators/DetermineChildren.d.ts.map +1 -0
  55. package/lib/hierarchies/imodel/operators/DetermineChildren.js.map +1 -0
  56. package/lib/hierarchies/imodel/operators/Grouping.d.ts.map +1 -0
  57. package/lib/hierarchies/imodel/operators/Grouping.js.map +1 -0
  58. package/lib/hierarchies/imodel/operators/HideIfNoChildren.d.ts.map +1 -0
  59. package/lib/hierarchies/imodel/operators/HideIfNoChildren.js.map +1 -0
  60. package/lib/hierarchies/imodel/operators/HideNodesInHierarchy.d.ts.map +1 -0
  61. package/lib/hierarchies/imodel/operators/HideNodesInHierarchy.js.map +1 -0
  62. package/lib/hierarchies/imodel/operators/grouping/AutoExpand.d.ts.map +1 -0
  63. package/lib/hierarchies/imodel/operators/grouping/AutoExpand.js.map +1 -0
  64. package/lib/hierarchies/imodel/operators/grouping/BaseClassGrouping.d.ts.map +1 -0
  65. package/lib/{esm/hierarchies → hierarchies}/imodel/operators/grouping/BaseClassGrouping.js +4 -4
  66. package/lib/hierarchies/imodel/operators/grouping/BaseClassGrouping.js.map +1 -0
  67. package/lib/hierarchies/imodel/operators/grouping/ClassGrouping.d.ts.map +1 -0
  68. package/lib/{esm/hierarchies → hierarchies}/imodel/operators/grouping/ClassGrouping.js +3 -3
  69. package/lib/hierarchies/imodel/operators/grouping/ClassGrouping.js.map +1 -0
  70. package/lib/hierarchies/imodel/operators/grouping/GroupHiding.d.ts.map +1 -0
  71. package/lib/hierarchies/imodel/operators/grouping/GroupHiding.js.map +1 -0
  72. package/lib/hierarchies/imodel/operators/grouping/LabelGrouping.d.ts.map +1 -0
  73. package/lib/hierarchies/imodel/operators/grouping/LabelGrouping.js.map +1 -0
  74. package/lib/{cjs/hierarchies → hierarchies}/imodel/operators/grouping/PropertiesGrouping.d.ts +1 -1
  75. package/lib/hierarchies/imodel/operators/grouping/PropertiesGrouping.d.ts.map +1 -0
  76. package/lib/{esm/hierarchies → hierarchies}/imodel/operators/grouping/PropertiesGrouping.js +10 -9
  77. package/lib/hierarchies/imodel/operators/grouping/PropertiesGrouping.js.map +1 -0
  78. package/lib/hierarchies/imodel/operators/grouping/Shared.d.ts.map +1 -0
  79. package/lib/hierarchies/imodel/operators/grouping/Shared.js.map +1 -0
  80. package/lib/hierarchies/internal/Common.d.ts.map +1 -0
  81. package/lib/hierarchies/internal/Common.js.map +1 -0
  82. package/lib/hierarchies/internal/DisposePolyfill.d.ts.map +1 -0
  83. package/lib/hierarchies/internal/DisposePolyfill.js.map +1 -0
  84. package/lib/hierarchies/internal/EachValueFrom.d.ts.map +1 -0
  85. package/lib/hierarchies/internal/EachValueFrom.js.map +1 -0
  86. package/lib/hierarchies/internal/LoggingUtils.d.ts.map +1 -0
  87. package/lib/hierarchies/internal/LoggingUtils.js.map +1 -0
  88. package/lib/hierarchies/internal/RxjsHierarchyDefinition.d.ts.map +1 -0
  89. package/lib/hierarchies/internal/RxjsHierarchyDefinition.js.map +1 -0
  90. package/lib/hierarchies/internal/SubscriptionScheduler.d.ts.map +1 -0
  91. package/lib/hierarchies/internal/SubscriptionScheduler.js.map +1 -0
  92. package/lib/hierarchies/internal/operators/Partition.d.ts.map +1 -0
  93. package/lib/hierarchies/internal/operators/Partition.js.map +1 -0
  94. package/lib/hierarchies/internal/operators/ReduceToMergeMap.d.ts.map +1 -0
  95. package/lib/hierarchies/internal/operators/ReduceToMergeMap.js.map +1 -0
  96. package/lib/hierarchies/internal/operators/ReleaseMainThread.d.ts.map +1 -0
  97. package/lib/hierarchies/internal/operators/ReleaseMainThread.js.map +1 -0
  98. package/lib/hierarchies/internal/operators/ShareReplayWithErrors.d.ts.map +1 -0
  99. package/lib/hierarchies/internal/operators/ShareReplayWithErrors.js.map +1 -0
  100. package/lib/hierarchies/internal/operators/Sorting.d.ts.map +1 -0
  101. package/lib/hierarchies/internal/operators/Sorting.js.map +1 -0
  102. package/lib/hierarchies/internal/operators/TapOnce.d.ts.map +1 -0
  103. package/lib/hierarchies/internal/operators/TapOnce.js.map +1 -0
  104. package/lib/{esm/presentation-hierarchies.d.ts → presentation-hierarchies.d.ts} +0 -2
  105. package/lib/presentation-hierarchies.d.ts.map +1 -0
  106. package/lib/{esm/presentation-hierarchies.js → presentation-hierarchies.js} +0 -1
  107. package/lib/presentation-hierarchies.js.map +1 -0
  108. package/package.json +19 -21
  109. package/lib/cjs/hierarchies/HierarchyErrors.d.ts.map +0 -1
  110. package/lib/cjs/hierarchies/HierarchyErrors.js +0 -20
  111. package/lib/cjs/hierarchies/HierarchyErrors.js.map +0 -1
  112. package/lib/cjs/hierarchies/HierarchyMerge.d.ts.map +0 -1
  113. package/lib/cjs/hierarchies/HierarchyMerge.js +0 -43
  114. package/lib/cjs/hierarchies/HierarchyMerge.js.map +0 -1
  115. package/lib/cjs/hierarchies/HierarchyNode.d.ts.map +0 -1
  116. package/lib/cjs/hierarchies/HierarchyNode.js +0 -82
  117. package/lib/cjs/hierarchies/HierarchyNode.js.map +0 -1
  118. package/lib/cjs/hierarchies/HierarchyNodeIdentifier.d.ts.map +0 -1
  119. package/lib/cjs/hierarchies/HierarchyNodeIdentifier.js +0 -52
  120. package/lib/cjs/hierarchies/HierarchyNodeIdentifier.js.map +0 -1
  121. package/lib/cjs/hierarchies/HierarchyNodeKey.d.ts +0 -162
  122. package/lib/cjs/hierarchies/HierarchyNodeKey.d.ts.map +0 -1
  123. package/lib/cjs/hierarchies/HierarchyNodeKey.js +0 -166
  124. package/lib/cjs/hierarchies/HierarchyNodeKey.js.map +0 -1
  125. package/lib/cjs/hierarchies/HierarchyProvider.d.ts.map +0 -1
  126. package/lib/cjs/hierarchies/HierarchyProvider.js +0 -64
  127. package/lib/cjs/hierarchies/HierarchyProvider.js.map +0 -1
  128. package/lib/cjs/hierarchies/HierarchySearch.d.ts.map +0 -1
  129. package/lib/cjs/hierarchies/HierarchySearch.js +0 -468
  130. package/lib/cjs/hierarchies/HierarchySearch.js.map +0 -1
  131. package/lib/cjs/hierarchies/Logging.d.ts.map +0 -1
  132. package/lib/cjs/hierarchies/Logging.js +0 -27
  133. package/lib/cjs/hierarchies/Logging.js.map +0 -1
  134. package/lib/cjs/hierarchies/imodel/HierarchyCache.d.ts.map +0 -1
  135. package/lib/cjs/hierarchies/imodel/HierarchyCache.js +0 -81
  136. package/lib/cjs/hierarchies/imodel/HierarchyCache.js.map +0 -1
  137. package/lib/cjs/hierarchies/imodel/IModelHierarchyDefinition.d.ts +0 -175
  138. package/lib/cjs/hierarchies/imodel/IModelHierarchyDefinition.d.ts.map +0 -1
  139. package/lib/cjs/hierarchies/imodel/IModelHierarchyDefinition.js +0 -21
  140. package/lib/cjs/hierarchies/imodel/IModelHierarchyDefinition.js.map +0 -1
  141. package/lib/cjs/hierarchies/imodel/IModelHierarchyNode.d.ts +0 -234
  142. package/lib/cjs/hierarchies/imodel/IModelHierarchyNode.d.ts.map +0 -1
  143. package/lib/cjs/hierarchies/imodel/IModelHierarchyNode.js +0 -29
  144. package/lib/cjs/hierarchies/imodel/IModelHierarchyNode.js.map +0 -1
  145. package/lib/cjs/hierarchies/imodel/IModelHierarchyProvider.d.ts.map +0 -1
  146. package/lib/cjs/hierarchies/imodel/IModelHierarchyProvider.js +0 -651
  147. package/lib/cjs/hierarchies/imodel/IModelHierarchyProvider.js.map +0 -1
  148. package/lib/cjs/hierarchies/imodel/LimitingECSqlQueryExecutor.d.ts.map +0 -1
  149. package/lib/cjs/hierarchies/imodel/LimitingECSqlQueryExecutor.js +0 -122
  150. package/lib/cjs/hierarchies/imodel/LimitingECSqlQueryExecutor.js.map +0 -1
  151. package/lib/cjs/hierarchies/imodel/NodeSelectQueryFactory.d.ts +0 -230
  152. package/lib/cjs/hierarchies/imodel/NodeSelectQueryFactory.d.ts.map +0 -1
  153. package/lib/cjs/hierarchies/imodel/NodeSelectQueryFactory.js +0 -624
  154. package/lib/cjs/hierarchies/imodel/NodeSelectQueryFactory.js.map +0 -1
  155. package/lib/cjs/hierarchies/imodel/PredicateBasedHierarchyDefinition.d.ts +0 -140
  156. package/lib/cjs/hierarchies/imodel/PredicateBasedHierarchyDefinition.d.ts.map +0 -1
  157. package/lib/cjs/hierarchies/imodel/PredicateBasedHierarchyDefinition.js +0 -94
  158. package/lib/cjs/hierarchies/imodel/PredicateBasedHierarchyDefinition.js.map +0 -1
  159. package/lib/cjs/hierarchies/imodel/SearchHierarchyDefinition.d.ts.map +0 -1
  160. package/lib/cjs/hierarchies/imodel/SearchHierarchyDefinition.js +0 -268
  161. package/lib/cjs/hierarchies/imodel/SearchHierarchyDefinition.js.map +0 -1
  162. package/lib/cjs/hierarchies/imodel/TreeNodesReader.d.ts +0 -35
  163. package/lib/cjs/hierarchies/imodel/TreeNodesReader.d.ts.map +0 -1
  164. package/lib/cjs/hierarchies/imodel/TreeNodesReader.js +0 -51
  165. package/lib/cjs/hierarchies/imodel/TreeNodesReader.js.map +0 -1
  166. package/lib/cjs/hierarchies/imodel/Utils.d.ts +0 -4
  167. package/lib/cjs/hierarchies/imodel/Utils.d.ts.map +0 -1
  168. package/lib/cjs/hierarchies/imodel/Utils.js +0 -71
  169. package/lib/cjs/hierarchies/imodel/Utils.js.map +0 -1
  170. package/lib/cjs/hierarchies/imodel/operators/DetermineChildren.d.ts.map +0 -1
  171. package/lib/cjs/hierarchies/imodel/operators/DetermineChildren.js +0 -40
  172. package/lib/cjs/hierarchies/imodel/operators/DetermineChildren.js.map +0 -1
  173. package/lib/cjs/hierarchies/imodel/operators/Grouping.d.ts.map +0 -1
  174. package/lib/cjs/hierarchies/imodel/operators/Grouping.js +0 -176
  175. package/lib/cjs/hierarchies/imodel/operators/Grouping.js.map +0 -1
  176. package/lib/cjs/hierarchies/imodel/operators/HideIfNoChildren.d.ts.map +0 -1
  177. package/lib/cjs/hierarchies/imodel/operators/HideIfNoChildren.js +0 -75
  178. package/lib/cjs/hierarchies/imodel/operators/HideIfNoChildren.js.map +0 -1
  179. package/lib/cjs/hierarchies/imodel/operators/HideNodesInHierarchy.d.ts.map +0 -1
  180. package/lib/cjs/hierarchies/imodel/operators/HideNodesInHierarchy.js +0 -84
  181. package/lib/cjs/hierarchies/imodel/operators/HideNodesInHierarchy.js.map +0 -1
  182. package/lib/cjs/hierarchies/imodel/operators/grouping/AutoExpand.d.ts.map +0 -1
  183. package/lib/cjs/hierarchies/imodel/operators/grouping/AutoExpand.js +0 -26
  184. package/lib/cjs/hierarchies/imodel/operators/grouping/AutoExpand.js.map +0 -1
  185. package/lib/cjs/hierarchies/imodel/operators/grouping/BaseClassGrouping.d.ts.map +0 -1
  186. package/lib/cjs/hierarchies/imodel/operators/grouping/BaseClassGrouping.js +0 -113
  187. package/lib/cjs/hierarchies/imodel/operators/grouping/BaseClassGrouping.js.map +0 -1
  188. package/lib/cjs/hierarchies/imodel/operators/grouping/ClassGrouping.d.ts.map +0 -1
  189. package/lib/cjs/hierarchies/imodel/operators/grouping/ClassGrouping.js +0 -54
  190. package/lib/cjs/hierarchies/imodel/operators/grouping/ClassGrouping.js.map +0 -1
  191. package/lib/cjs/hierarchies/imodel/operators/grouping/GroupHiding.d.ts.map +0 -1
  192. package/lib/cjs/hierarchies/imodel/operators/grouping/GroupHiding.js +0 -49
  193. package/lib/cjs/hierarchies/imodel/operators/grouping/GroupHiding.js.map +0 -1
  194. package/lib/cjs/hierarchies/imodel/operators/grouping/LabelGrouping.d.ts.map +0 -1
  195. package/lib/cjs/hierarchies/imodel/operators/grouping/LabelGrouping.js +0 -52
  196. package/lib/cjs/hierarchies/imodel/operators/grouping/LabelGrouping.js.map +0 -1
  197. package/lib/cjs/hierarchies/imodel/operators/grouping/PropertiesGrouping.d.ts.map +0 -1
  198. package/lib/cjs/hierarchies/imodel/operators/grouping/PropertiesGrouping.js +0 -310
  199. package/lib/cjs/hierarchies/imodel/operators/grouping/PropertiesGrouping.js.map +0 -1
  200. package/lib/cjs/hierarchies/imodel/operators/grouping/Shared.d.ts.map +0 -1
  201. package/lib/cjs/hierarchies/imodel/operators/grouping/Shared.js +0 -31
  202. package/lib/cjs/hierarchies/imodel/operators/grouping/Shared.js.map +0 -1
  203. package/lib/cjs/hierarchies/internal/Common.d.ts.map +0 -1
  204. package/lib/cjs/hierarchies/internal/Common.js +0 -91
  205. package/lib/cjs/hierarchies/internal/Common.js.map +0 -1
  206. package/lib/cjs/hierarchies/internal/DisposePolyfill.d.ts +0 -1
  207. package/lib/cjs/hierarchies/internal/DisposePolyfill.d.ts.map +0 -1
  208. package/lib/cjs/hierarchies/internal/DisposePolyfill.js +0 -11
  209. package/lib/cjs/hierarchies/internal/DisposePolyfill.js.map +0 -1
  210. package/lib/cjs/hierarchies/internal/EachValueFrom.d.ts.map +0 -1
  211. package/lib/cjs/hierarchies/internal/EachValueFrom.js +0 -111
  212. package/lib/cjs/hierarchies/internal/EachValueFrom.js.map +0 -1
  213. package/lib/cjs/hierarchies/internal/LoggingUtils.d.ts.map +0 -1
  214. package/lib/cjs/hierarchies/internal/LoggingUtils.js +0 -37
  215. package/lib/cjs/hierarchies/internal/LoggingUtils.js.map +0 -1
  216. package/lib/cjs/hierarchies/internal/RxjsHierarchyDefinition.d.ts.map +0 -1
  217. package/lib/cjs/hierarchies/internal/RxjsHierarchyDefinition.js +0 -28
  218. package/lib/cjs/hierarchies/internal/RxjsHierarchyDefinition.js.map +0 -1
  219. package/lib/cjs/hierarchies/internal/SubscriptionScheduler.d.ts.map +0 -1
  220. package/lib/cjs/hierarchies/internal/SubscriptionScheduler.js +0 -54
  221. package/lib/cjs/hierarchies/internal/SubscriptionScheduler.js.map +0 -1
  222. package/lib/cjs/hierarchies/internal/operators/Partition.d.ts.map +0 -1
  223. package/lib/cjs/hierarchies/internal/operators/Partition.js +0 -60
  224. package/lib/cjs/hierarchies/internal/operators/Partition.js.map +0 -1
  225. package/lib/cjs/hierarchies/internal/operators/ReduceToMergeMap.d.ts.map +0 -1
  226. package/lib/cjs/hierarchies/internal/operators/ReduceToMergeMap.js +0 -50
  227. package/lib/cjs/hierarchies/internal/operators/ReduceToMergeMap.js.map +0 -1
  228. package/lib/cjs/hierarchies/internal/operators/ReleaseMainThread.d.ts.map +0 -1
  229. package/lib/cjs/hierarchies/internal/operators/ReleaseMainThread.js +0 -24
  230. package/lib/cjs/hierarchies/internal/operators/ReleaseMainThread.js.map +0 -1
  231. package/lib/cjs/hierarchies/internal/operators/ShareReplayWithErrors.d.ts.map +0 -1
  232. package/lib/cjs/hierarchies/internal/operators/ShareReplayWithErrors.js +0 -23
  233. package/lib/cjs/hierarchies/internal/operators/ShareReplayWithErrors.js.map +0 -1
  234. package/lib/cjs/hierarchies/internal/operators/Sorting.d.ts.map +0 -1
  235. package/lib/cjs/hierarchies/internal/operators/Sorting.js +0 -25
  236. package/lib/cjs/hierarchies/internal/operators/Sorting.js.map +0 -1
  237. package/lib/cjs/hierarchies/internal/operators/TapOnce.d.ts.map +0 -1
  238. package/lib/cjs/hierarchies/internal/operators/TapOnce.js +0 -19
  239. package/lib/cjs/hierarchies/internal/operators/TapOnce.js.map +0 -1
  240. package/lib/cjs/package.json +0 -1
  241. package/lib/cjs/presentation-hierarchies.d.ts +0 -26
  242. package/lib/cjs/presentation-hierarchies.d.ts.map +0 -1
  243. package/lib/cjs/presentation-hierarchies.js +0 -43
  244. package/lib/cjs/presentation-hierarchies.js.map +0 -1
  245. package/lib/esm/hierarchies/HierarchyErrors.d.ts +0 -9
  246. package/lib/esm/hierarchies/HierarchyErrors.d.ts.map +0 -1
  247. package/lib/esm/hierarchies/HierarchyErrors.js.map +0 -1
  248. package/lib/esm/hierarchies/HierarchyMerge.d.ts +0 -19
  249. package/lib/esm/hierarchies/HierarchyMerge.d.ts.map +0 -1
  250. package/lib/esm/hierarchies/HierarchyMerge.js.map +0 -1
  251. package/lib/esm/hierarchies/HierarchyNode.d.ts +0 -149
  252. package/lib/esm/hierarchies/HierarchyNode.d.ts.map +0 -1
  253. package/lib/esm/hierarchies/HierarchyNode.js.map +0 -1
  254. package/lib/esm/hierarchies/HierarchyNodeIdentifier.d.ts +0 -31
  255. package/lib/esm/hierarchies/HierarchyNodeIdentifier.d.ts.map +0 -1
  256. package/lib/esm/hierarchies/HierarchyNodeIdentifier.js.map +0 -1
  257. package/lib/esm/hierarchies/HierarchyNodeKey.d.ts.map +0 -1
  258. package/lib/esm/hierarchies/HierarchyNodeKey.js.map +0 -1
  259. package/lib/esm/hierarchies/HierarchyProvider.d.ts +0 -134
  260. package/lib/esm/hierarchies/HierarchyProvider.d.ts.map +0 -1
  261. package/lib/esm/hierarchies/HierarchyProvider.js.map +0 -1
  262. package/lib/esm/hierarchies/HierarchySearch.d.ts +0 -297
  263. package/lib/esm/hierarchies/HierarchySearch.d.ts.map +0 -1
  264. package/lib/esm/hierarchies/HierarchySearch.js.map +0 -1
  265. package/lib/esm/hierarchies/Logging.d.ts +0 -13
  266. package/lib/esm/hierarchies/Logging.d.ts.map +0 -1
  267. package/lib/esm/hierarchies/Logging.js.map +0 -1
  268. package/lib/esm/hierarchies/imodel/HierarchyCache.d.ts +0 -18
  269. package/lib/esm/hierarchies/imodel/HierarchyCache.d.ts.map +0 -1
  270. package/lib/esm/hierarchies/imodel/HierarchyCache.js.map +0 -1
  271. package/lib/esm/hierarchies/imodel/IModelHierarchyDefinition.d.ts.map +0 -1
  272. package/lib/esm/hierarchies/imodel/IModelHierarchyDefinition.js.map +0 -1
  273. package/lib/esm/hierarchies/imodel/IModelHierarchyNode.d.ts.map +0 -1
  274. package/lib/esm/hierarchies/imodel/IModelHierarchyNode.js.map +0 -1
  275. package/lib/esm/hierarchies/imodel/IModelHierarchyProvider.d.ts +0 -120
  276. package/lib/esm/hierarchies/imodel/IModelHierarchyProvider.d.ts.map +0 -1
  277. package/lib/esm/hierarchies/imodel/IModelHierarchyProvider.js.map +0 -1
  278. package/lib/esm/hierarchies/imodel/LimitingECSqlQueryExecutor.d.ts +0 -21
  279. package/lib/esm/hierarchies/imodel/LimitingECSqlQueryExecutor.d.ts.map +0 -1
  280. package/lib/esm/hierarchies/imodel/LimitingECSqlQueryExecutor.js.map +0 -1
  281. package/lib/esm/hierarchies/imodel/NodeSelectQueryFactory.d.ts.map +0 -1
  282. package/lib/esm/hierarchies/imodel/NodeSelectQueryFactory.js.map +0 -1
  283. package/lib/esm/hierarchies/imodel/PredicateBasedHierarchyDefinition.d.ts.map +0 -1
  284. package/lib/esm/hierarchies/imodel/PredicateBasedHierarchyDefinition.js.map +0 -1
  285. package/lib/esm/hierarchies/imodel/SearchHierarchyDefinition.d.ts +0 -35
  286. package/lib/esm/hierarchies/imodel/SearchHierarchyDefinition.d.ts.map +0 -1
  287. package/lib/esm/hierarchies/imodel/SearchHierarchyDefinition.js.map +0 -1
  288. package/lib/esm/hierarchies/imodel/TreeNodesReader.d.ts.map +0 -1
  289. package/lib/esm/hierarchies/imodel/TreeNodesReader.js.map +0 -1
  290. package/lib/esm/hierarchies/imodel/Utils.d.ts.map +0 -1
  291. package/lib/esm/hierarchies/imodel/Utils.js.map +0 -1
  292. package/lib/esm/hierarchies/imodel/operators/DetermineChildren.d.ts +0 -11
  293. package/lib/esm/hierarchies/imodel/operators/DetermineChildren.d.ts.map +0 -1
  294. package/lib/esm/hierarchies/imodel/operators/DetermineChildren.js.map +0 -1
  295. package/lib/esm/hierarchies/imodel/operators/Grouping.d.ts +0 -26
  296. package/lib/esm/hierarchies/imodel/operators/Grouping.d.ts.map +0 -1
  297. package/lib/esm/hierarchies/imodel/operators/Grouping.js.map +0 -1
  298. package/lib/esm/hierarchies/imodel/operators/HideIfNoChildren.d.ts +0 -11
  299. package/lib/esm/hierarchies/imodel/operators/HideIfNoChildren.d.ts.map +0 -1
  300. package/lib/esm/hierarchies/imodel/operators/HideIfNoChildren.js.map +0 -1
  301. package/lib/esm/hierarchies/imodel/operators/HideNodesInHierarchy.d.ts +0 -11
  302. package/lib/esm/hierarchies/imodel/operators/HideNodesInHierarchy.d.ts.map +0 -1
  303. package/lib/esm/hierarchies/imodel/operators/HideNodesInHierarchy.js.map +0 -1
  304. package/lib/esm/hierarchies/imodel/operators/grouping/AutoExpand.d.ts +0 -4
  305. package/lib/esm/hierarchies/imodel/operators/grouping/AutoExpand.d.ts.map +0 -1
  306. package/lib/esm/hierarchies/imodel/operators/grouping/AutoExpand.js.map +0 -1
  307. package/lib/esm/hierarchies/imodel/operators/grouping/BaseClassGrouping.d.ts +0 -11
  308. package/lib/esm/hierarchies/imodel/operators/grouping/BaseClassGrouping.d.ts.map +0 -1
  309. package/lib/esm/hierarchies/imodel/operators/grouping/BaseClassGrouping.js.map +0 -1
  310. package/lib/esm/hierarchies/imodel/operators/grouping/ClassGrouping.d.ts +0 -7
  311. package/lib/esm/hierarchies/imodel/operators/grouping/ClassGrouping.d.ts.map +0 -1
  312. package/lib/esm/hierarchies/imodel/operators/grouping/ClassGrouping.js.map +0 -1
  313. package/lib/esm/hierarchies/imodel/operators/grouping/GroupHiding.d.ts +0 -4
  314. package/lib/esm/hierarchies/imodel/operators/grouping/GroupHiding.d.ts.map +0 -1
  315. package/lib/esm/hierarchies/imodel/operators/grouping/GroupHiding.js.map +0 -1
  316. package/lib/esm/hierarchies/imodel/operators/grouping/LabelGrouping.d.ts +0 -5
  317. package/lib/esm/hierarchies/imodel/operators/grouping/LabelGrouping.d.ts.map +0 -1
  318. package/lib/esm/hierarchies/imodel/operators/grouping/LabelGrouping.js.map +0 -1
  319. package/lib/esm/hierarchies/imodel/operators/grouping/PropertiesGrouping.d.ts +0 -32
  320. package/lib/esm/hierarchies/imodel/operators/grouping/PropertiesGrouping.d.ts.map +0 -1
  321. package/lib/esm/hierarchies/imodel/operators/grouping/PropertiesGrouping.js.map +0 -1
  322. package/lib/esm/hierarchies/imodel/operators/grouping/Shared.d.ts +0 -5
  323. package/lib/esm/hierarchies/imodel/operators/grouping/Shared.d.ts.map +0 -1
  324. package/lib/esm/hierarchies/imodel/operators/grouping/Shared.js.map +0 -1
  325. package/lib/esm/hierarchies/internal/Common.d.ts +0 -61
  326. package/lib/esm/hierarchies/internal/Common.d.ts.map +0 -1
  327. package/lib/esm/hierarchies/internal/Common.js.map +0 -1
  328. package/lib/esm/hierarchies/internal/DisposePolyfill.d.ts.map +0 -1
  329. package/lib/esm/hierarchies/internal/DisposePolyfill.js.map +0 -1
  330. package/lib/esm/hierarchies/internal/EachValueFrom.d.ts +0 -12
  331. package/lib/esm/hierarchies/internal/EachValueFrom.d.ts.map +0 -1
  332. package/lib/esm/hierarchies/internal/EachValueFrom.js.map +0 -1
  333. package/lib/esm/hierarchies/internal/LoggingUtils.d.ts +0 -12
  334. package/lib/esm/hierarchies/internal/LoggingUtils.d.ts.map +0 -1
  335. package/lib/esm/hierarchies/internal/LoggingUtils.js.map +0 -1
  336. package/lib/esm/hierarchies/internal/RxjsHierarchyDefinition.d.ts +0 -75
  337. package/lib/esm/hierarchies/internal/RxjsHierarchyDefinition.d.ts.map +0 -1
  338. package/lib/esm/hierarchies/internal/RxjsHierarchyDefinition.js.map +0 -1
  339. package/lib/esm/hierarchies/internal/SubscriptionScheduler.d.ts +0 -17
  340. package/lib/esm/hierarchies/internal/SubscriptionScheduler.d.ts.map +0 -1
  341. package/lib/esm/hierarchies/internal/SubscriptionScheduler.js.map +0 -1
  342. package/lib/esm/hierarchies/internal/operators/Partition.d.ts +0 -7
  343. package/lib/esm/hierarchies/internal/operators/Partition.d.ts.map +0 -1
  344. package/lib/esm/hierarchies/internal/operators/Partition.js.map +0 -1
  345. package/lib/esm/hierarchies/internal/operators/ReduceToMergeMap.d.ts +0 -22
  346. package/lib/esm/hierarchies/internal/operators/ReduceToMergeMap.d.ts.map +0 -1
  347. package/lib/esm/hierarchies/internal/operators/ReduceToMergeMap.js.map +0 -1
  348. package/lib/esm/hierarchies/internal/operators/ReleaseMainThread.d.ts +0 -7
  349. package/lib/esm/hierarchies/internal/operators/ReleaseMainThread.d.ts.map +0 -1
  350. package/lib/esm/hierarchies/internal/operators/ReleaseMainThread.js.map +0 -1
  351. package/lib/esm/hierarchies/internal/operators/ShareReplayWithErrors.d.ts +0 -9
  352. package/lib/esm/hierarchies/internal/operators/ShareReplayWithErrors.d.ts.map +0 -1
  353. package/lib/esm/hierarchies/internal/operators/ShareReplayWithErrors.js.map +0 -1
  354. package/lib/esm/hierarchies/internal/operators/Sorting.d.ts +0 -13
  355. package/lib/esm/hierarchies/internal/operators/Sorting.d.ts.map +0 -1
  356. package/lib/esm/hierarchies/internal/operators/Sorting.js.map +0 -1
  357. package/lib/esm/hierarchies/internal/operators/TapOnce.d.ts +0 -4
  358. package/lib/esm/hierarchies/internal/operators/TapOnce.d.ts.map +0 -1
  359. package/lib/esm/hierarchies/internal/operators/TapOnce.js.map +0 -1
  360. package/lib/esm/presentation-hierarchies.d.ts.map +0 -1
  361. package/lib/esm/presentation-hierarchies.js.map +0 -1
  362. /package/lib/{cjs/hierarchies → hierarchies}/HierarchyErrors.d.ts +0 -0
  363. /package/lib/{esm/hierarchies → hierarchies}/HierarchyErrors.js +0 -0
  364. /package/lib/{cjs/hierarchies → hierarchies}/HierarchyMerge.d.ts +0 -0
  365. /package/lib/{esm/hierarchies → hierarchies}/HierarchyMerge.js +0 -0
  366. /package/lib/{cjs/hierarchies → hierarchies}/HierarchyNode.d.ts +0 -0
  367. /package/lib/{esm/hierarchies → hierarchies}/HierarchyNode.js +0 -0
  368. /package/lib/{cjs/hierarchies → hierarchies}/HierarchyNodeIdentifier.d.ts +0 -0
  369. /package/lib/{esm/hierarchies → hierarchies}/HierarchyNodeIdentifier.js +0 -0
  370. /package/lib/{cjs/hierarchies → hierarchies}/HierarchyProvider.d.ts +0 -0
  371. /package/lib/{esm/hierarchies → hierarchies}/HierarchyProvider.js +0 -0
  372. /package/lib/{cjs/hierarchies → hierarchies}/HierarchySearch.d.ts +0 -0
  373. /package/lib/{esm/hierarchies → hierarchies}/HierarchySearch.js +0 -0
  374. /package/lib/{cjs/hierarchies → hierarchies}/Logging.d.ts +0 -0
  375. /package/lib/{esm/hierarchies → hierarchies}/Logging.js +0 -0
  376. /package/lib/{cjs/hierarchies → hierarchies}/imodel/HierarchyCache.d.ts +0 -0
  377. /package/lib/{esm/hierarchies → hierarchies}/imodel/HierarchyCache.js +0 -0
  378. /package/lib/{esm/hierarchies → hierarchies}/imodel/IModelHierarchyDefinition.js +0 -0
  379. /package/lib/{esm/hierarchies → hierarchies}/imodel/IModelHierarchyNode.js +0 -0
  380. /package/lib/{cjs/hierarchies → hierarchies}/imodel/LimitingECSqlQueryExecutor.d.ts +0 -0
  381. /package/lib/{esm/hierarchies → hierarchies}/imodel/PredicateBasedHierarchyDefinition.js +0 -0
  382. /package/lib/{cjs/hierarchies → hierarchies}/imodel/SearchHierarchyDefinition.d.ts +0 -0
  383. /package/lib/{cjs/hierarchies → hierarchies}/imodel/operators/DetermineChildren.d.ts +0 -0
  384. /package/lib/{esm/hierarchies → hierarchies}/imodel/operators/DetermineChildren.js +0 -0
  385. /package/lib/{cjs/hierarchies → hierarchies}/imodel/operators/Grouping.d.ts +0 -0
  386. /package/lib/{esm/hierarchies → hierarchies}/imodel/operators/Grouping.js +0 -0
  387. /package/lib/{cjs/hierarchies → hierarchies}/imodel/operators/HideIfNoChildren.d.ts +0 -0
  388. /package/lib/{esm/hierarchies → hierarchies}/imodel/operators/HideIfNoChildren.js +0 -0
  389. /package/lib/{cjs/hierarchies → hierarchies}/imodel/operators/HideNodesInHierarchy.d.ts +0 -0
  390. /package/lib/{esm/hierarchies → hierarchies}/imodel/operators/HideNodesInHierarchy.js +0 -0
  391. /package/lib/{cjs/hierarchies → hierarchies}/imodel/operators/grouping/AutoExpand.d.ts +0 -0
  392. /package/lib/{esm/hierarchies → hierarchies}/imodel/operators/grouping/AutoExpand.js +0 -0
  393. /package/lib/{cjs/hierarchies → hierarchies}/imodel/operators/grouping/BaseClassGrouping.d.ts +0 -0
  394. /package/lib/{cjs/hierarchies → hierarchies}/imodel/operators/grouping/ClassGrouping.d.ts +0 -0
  395. /package/lib/{cjs/hierarchies → hierarchies}/imodel/operators/grouping/GroupHiding.d.ts +0 -0
  396. /package/lib/{esm/hierarchies → hierarchies}/imodel/operators/grouping/GroupHiding.js +0 -0
  397. /package/lib/{cjs/hierarchies → hierarchies}/imodel/operators/grouping/LabelGrouping.d.ts +0 -0
  398. /package/lib/{esm/hierarchies → hierarchies}/imodel/operators/grouping/LabelGrouping.js +0 -0
  399. /package/lib/{cjs/hierarchies → hierarchies}/imodel/operators/grouping/Shared.d.ts +0 -0
  400. /package/lib/{esm/hierarchies → hierarchies}/imodel/operators/grouping/Shared.js +0 -0
  401. /package/lib/{cjs/hierarchies → hierarchies}/internal/Common.d.ts +0 -0
  402. /package/lib/{esm/hierarchies → hierarchies}/internal/Common.js +0 -0
  403. /package/lib/{esm/hierarchies → hierarchies}/internal/DisposePolyfill.d.ts +0 -0
  404. /package/lib/{esm/hierarchies → hierarchies}/internal/DisposePolyfill.js +0 -0
  405. /package/lib/{cjs/hierarchies → hierarchies}/internal/EachValueFrom.d.ts +0 -0
  406. /package/lib/{esm/hierarchies → hierarchies}/internal/EachValueFrom.js +0 -0
  407. /package/lib/{cjs/hierarchies → hierarchies}/internal/LoggingUtils.d.ts +0 -0
  408. /package/lib/{esm/hierarchies → hierarchies}/internal/LoggingUtils.js +0 -0
  409. /package/lib/{cjs/hierarchies → hierarchies}/internal/RxjsHierarchyDefinition.d.ts +0 -0
  410. /package/lib/{esm/hierarchies → hierarchies}/internal/RxjsHierarchyDefinition.js +0 -0
  411. /package/lib/{cjs/hierarchies → hierarchies}/internal/SubscriptionScheduler.d.ts +0 -0
  412. /package/lib/{esm/hierarchies → hierarchies}/internal/SubscriptionScheduler.js +0 -0
  413. /package/lib/{cjs/hierarchies → hierarchies}/internal/operators/Partition.d.ts +0 -0
  414. /package/lib/{esm/hierarchies → hierarchies}/internal/operators/Partition.js +0 -0
  415. /package/lib/{cjs/hierarchies → hierarchies}/internal/operators/ReduceToMergeMap.d.ts +0 -0
  416. /package/lib/{esm/hierarchies → hierarchies}/internal/operators/ReduceToMergeMap.js +0 -0
  417. /package/lib/{cjs/hierarchies → hierarchies}/internal/operators/ReleaseMainThread.d.ts +0 -0
  418. /package/lib/{esm/hierarchies → hierarchies}/internal/operators/ReleaseMainThread.js +0 -0
  419. /package/lib/{cjs/hierarchies → hierarchies}/internal/operators/ShareReplayWithErrors.d.ts +0 -0
  420. /package/lib/{esm/hierarchies → hierarchies}/internal/operators/ShareReplayWithErrors.js +0 -0
  421. /package/lib/{cjs/hierarchies → hierarchies}/internal/operators/Sorting.d.ts +0 -0
  422. /package/lib/{esm/hierarchies → hierarchies}/internal/operators/Sorting.js +0 -0
  423. /package/lib/{cjs/hierarchies → hierarchies}/internal/operators/TapOnce.d.ts +0 -0
  424. /package/lib/{esm/hierarchies → hierarchies}/internal/operators/TapOnce.js +0 -0
@@ -1,624 +0,0 @@
1
- "use strict";
2
- /*---------------------------------------------------------------------------------------------
3
- * Copyright (c) Bentley Systems, Incorporated. All rights reserved.
4
- * See LICENSE.md in the project root for license terms and full copyright notice.
5
- *--------------------------------------------------------------------------------------------*/
6
- Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.NodeSelectClauseColumnNames = void 0;
8
- exports.createNodesQueryClauseFactory = createNodesQueryClauseFactory;
9
- const core_bentley_1 = require("@itwin/core-bentley");
10
- const core_common_1 = require("@itwin/core-common");
11
- const presentation_shared_1 = require("@itwin/presentation-shared");
12
- /**
13
- * Column names of the SELECT clause created by `NodeSelectClauseFactory`. Order of the names matches the order of columns
14
- * created by the factory.
15
- *
16
- * @public
17
- */
18
- var NodeSelectClauseColumnNames;
19
- (function (NodeSelectClauseColumnNames) {
20
- /** Full class name of the instance the node represents. Type: `string` in format `{schema name}:{class name}`. */
21
- NodeSelectClauseColumnNames["FullClassName"] = "FullClassName";
22
- /** ECInstance ID of the instance the node represents. Type: `Id64String`. */
23
- NodeSelectClauseColumnNames["ECInstanceId"] = "ECInstanceId";
24
- /** Display label. Type: `string`. */
25
- NodeSelectClauseColumnNames["DisplayLabel"] = "DisplayLabel";
26
- /**
27
- * A flag indicating if the node has children. Type: `boolean`. Values:
28
- * - `false` - node never has children.
29
- * - `true` - node always has children.
30
- * - NULL - unknown, needs to be determined by requesting children for the node.
31
- */
32
- NodeSelectClauseColumnNames["HasChildren"] = "HasChildren";
33
- /** A flag indicating that a node should be hidden if it has no children. Type: `boolean`. */
34
- NodeSelectClauseColumnNames["HideIfNoChildren"] = "HideIfNoChildren";
35
- /** A flag indicating that a node should be hidden and its children should be displayed instead. Type: `boolean`. */
36
- NodeSelectClauseColumnNames["HideNodeInHierarchy"] = "HideNodeInHierarchy";
37
- /** A serialized JSON object for providing grouping information. */
38
- NodeSelectClauseColumnNames["Grouping"] = "Grouping";
39
- /** A serialized JSON object for associating a node with additional data. */
40
- NodeSelectClauseColumnNames["ExtendedData"] = "ExtendedData";
41
- /** A flag indicating the node should be auto-expanded when it's loaded. */
42
- NodeSelectClauseColumnNames["AutoExpand"] = "AutoExpand";
43
- /** A flag indicating the node supports child hierarchy level filtering. */
44
- NodeSelectClauseColumnNames["SupportsFiltering"] = "SupportsFiltering";
45
- })(NodeSelectClauseColumnNames || (exports.NodeSelectClauseColumnNames = NodeSelectClauseColumnNames = {}));
46
- /**
47
- * Creates an instance of `NodeSelectQueryFactory`.
48
- * @public
49
- */
50
- function createNodesQueryClauseFactory(props) {
51
- return new NodeSelectQueryFactory(props);
52
- }
53
- /** A factory for creating a nodes' select ECSQL query. */
54
- class NodeSelectQueryFactory {
55
- _imodelAccess;
56
- _instanceLabelSelectClauseFactory;
57
- constructor(props) {
58
- this._imodelAccess = props.imodelAccess;
59
- this._instanceLabelSelectClauseFactory = props.instanceLabelSelectClauseFactory;
60
- }
61
- /** Create a SELECT clause in a format understood by results reader of the library. */
62
- async createSelectClause(props) {
63
- // note: the columns order must match the order in `NodeSelectClauseColumnNames`
64
- return `
65
- ec_ClassName(${props.ecClassId.selector}) AS ${NodeSelectClauseColumnNames.FullClassName},
66
- ${props.ecInstanceId.selector} AS ${NodeSelectClauseColumnNames.ECInstanceId},
67
- ${createECSqlValueSelector(props.nodeLabel)} AS ${NodeSelectClauseColumnNames.DisplayLabel},
68
- CAST(${createECSqlValueSelector(props.hasChildren)} AS BOOLEAN) AS ${NodeSelectClauseColumnNames.HasChildren},
69
- CAST(${createECSqlValueSelector(props.hideIfNoChildren)} AS BOOLEAN) AS ${NodeSelectClauseColumnNames.HideIfNoChildren},
70
- CAST(${createECSqlValueSelector(props.hideNodeInHierarchy)} AS BOOLEAN) AS ${NodeSelectClauseColumnNames.HideNodeInHierarchy},
71
- ${props.grouping ? await createGroupingSelector(props.grouping, this._imodelAccess, this._instanceLabelSelectClauseFactory) : "CAST(NULL AS TEXT)"} AS ${NodeSelectClauseColumnNames.Grouping},
72
- ${props.extendedData
73
- ? `json_object(${Object.entries(props.extendedData)
74
- .map(([key, value]) => `'${key}', ${createECSqlValueSelector(value)}`)
75
- .join(", ")})`
76
- : "CAST(NULL AS TEXT)"} AS ${NodeSelectClauseColumnNames.ExtendedData},
77
- CAST(${createECSqlValueSelector(props.autoExpand)} AS BOOLEAN) AS ${NodeSelectClauseColumnNames.AutoExpand},
78
- CAST(${createECSqlValueSelector(props.supportsFiltering)} AS BOOLEAN) AS ${NodeSelectClauseColumnNames.SupportsFiltering}
79
- `;
80
- }
81
- /**
82
- * Creates the necessary ECSQL snippets to create an instance filter described by the `filter` argument.
83
- * - `from` is set to either the `contentClass.fullName` or one of `filter.propertyClassNames`, depending on which is more specific.
84
- * - `joins` is set to a number of `JOIN` clauses required to join all relationships described by `filter.relatedInstances`.
85
- * - `where` is set to a `WHERE` clause (without the `WHERE` keyword) that filters instances by classes on
86
- * `filter.filterClassNames` and by properties as described by `filter.rules`.
87
- *
88
- * Special cases:
89
- * - If `filter` is `undefined`, `joins` and `where` are set to empty strings and `from` is set to `contentClass.fullName`.
90
- * - If the provided content class doesn't intersect with the property class in provided filter OR referenced schema items (classes/properties)
91
- * don't exist in the iModel, a special result is returned to make sure the resulting query is valid and doesn't return anything.
92
- */
93
- async createFilterClauses(props) {
94
- const { contentClass, filter } = props;
95
- const { from, joins, where } = filter
96
- ? await createInstanceFilterClauses({ imodelAccess: this._imodelAccess, contentClass, filter })
97
- : { from: contentClass.fullName, joins: [], where: [] };
98
- const fromClass = await (0, presentation_shared_1.getClass)(this._imodelAccess, (0, presentation_shared_1.normalizeFullClassName)(from));
99
- const hiddenClasses = await getHiddenClassesTree(fromClass);
100
- const hiddenClassesWhereClause = createWhereClauseForHiddenClasses(hiddenClasses, contentClass.alias);
101
- hiddenClassesWhereClause.hideClause && where.push(hiddenClassesWhereClause.hideClause);
102
- (0, core_bentley_1.assert)(!hiddenClassesWhereClause.showClause, "`showClause` is expected to always be empty here");
103
- return { from, joins: joins.join("\n"), where: where.join(" AND ") };
104
- }
105
- }
106
- /**
107
- * Creates the necessary ECSQL snippets to create an instance filter described by the `filter` argument.
108
- * - `from` is set to either the `contentClass.fullName` or one of `filter.propertyClassNames`, depending on which is more specific.
109
- * - `joins` is set to a number of `JOIN` clauses required to join all relationships described by `filter.relatedInstances`.
110
- * - `where` is set to a `WHERE` clause (without the `WHERE` keyword) that filters instances by classes on
111
- * `filter.filterClassNames` and by properties as described by `filter.rules`.
112
- *
113
- * Special cases:
114
- * - If `filter` is `undefined`, `joins` and `where` are set to empty strings and `from` is set to `contentClass.fullName`.
115
- * - If the provided content class doesn't intersect with the property class in provided filter, a special result
116
- * is returned to make sure the resulting query is valid and doesn't return anything.
117
- */
118
- async function createInstanceFilterClauses(props) {
119
- const { imodelAccess, contentClass, filter } = props;
120
- // In some cases the given filter means we want the query to return nothing - e.g. when filtering by classes that don't intersect
121
- // with the given content class. Return a special result that makes sure the resulting query is valid, but returns no rows.
122
- const DISABLE_QUERY = { from: contentClass.fullName, joins: [], where: ["FALSE"] };
123
- const from = await specializeContentClass({
124
- classHierarchyInspector: {
125
- async classDerivesFrom(derivedClassName, baseClassName) {
126
- try {
127
- return await imodelAccess.classDerivesFrom(derivedClassName, baseClassName);
128
- }
129
- catch (e) {
130
- /* v8 ignore else -- @preserve */
131
- if (isSchemaOrClassNotFoundError(e)) {
132
- // either derived or base class doesn't exist in this iModel
133
- return false;
134
- }
135
- /* v8 ignore next -- @preserve */
136
- throw e;
137
- }
138
- },
139
- },
140
- contentClassName: contentClass.fullName,
141
- filterClassNames: filter.propertyClassNames.map(presentation_shared_1.normalizeFullClassName),
142
- });
143
- if (!from) {
144
- // filter class doesn't intersect with content class
145
- return DISABLE_QUERY;
146
- }
147
- let filteredClassNamesInThisIModel;
148
- if (filter.filteredClassNames && filter.filteredClassNames.length > 0) {
149
- filteredClassNamesInThisIModel = (await Promise.all(filter.filteredClassNames
150
- .map(presentation_shared_1.normalizeFullClassName)
151
- .map(async (fullClassName) => ({
152
- fullClassName,
153
- filteredClass: await tryGetClass(imodelAccess, fullClassName),
154
- }))))
155
- .filter(({ filteredClass }) => !!filteredClass)
156
- .map(({ fullClassName }) => fullClassName);
157
- if (filteredClassNamesInThisIModel.length === 0) {
158
- // we had filter classes, but none of them exist in this iModel
159
- return DISABLE_QUERY;
160
- }
161
- }
162
- let joins;
163
- try {
164
- joins = await Promise.all(filter.relatedInstances.map(async (rel, i) => presentation_shared_1.ECSql.createRelationshipPathJoinClause({
165
- schemaProvider: imodelAccess,
166
- path: assignRelationshipPathAliases(rel.path, i, contentClass.alias, rel.alias),
167
- })));
168
- }
169
- catch (e) {
170
- /* v8 ignore else -- @preserve */
171
- if (isSchemaOrClassNotFoundError(e)) {
172
- // at least one related instance spec uses a class that doesn't exist in this iModel
173
- return DISABLE_QUERY;
174
- }
175
- /* v8 ignore next -- @preserve */
176
- throw e;
177
- }
178
- const classAliasMap = new Map([[contentClass.alias, from]]);
179
- filter.relatedInstances.forEach(({ path, alias }) => path.length > 0 && classAliasMap.set(alias, (0, presentation_shared_1.normalizeFullClassName)(path[path.length - 1].targetClassName)));
180
- let propertiesFilter;
181
- try {
182
- propertiesFilter = await createWhereClause(contentClass.alias, async (alias) => {
183
- const aliasClassName = classAliasMap.get(alias);
184
- return aliasClassName ? (0, presentation_shared_1.getClass)(imodelAccess, aliasClassName) : undefined;
185
- }, filter.rules);
186
- }
187
- catch (e) {
188
- // note: don't need to worry about schemas & classes here, because that's taken care of above, when
189
- // validating property class names & related instance defs
190
- /* v8 ignore else -- @preserve */
191
- if (isPropertyNotFoundError(e)) {
192
- // filter uses a property that doesn't exist in this iModel
193
- return DISABLE_QUERY;
194
- }
195
- /* v8 ignore next -- @preserve */
196
- throw e;
197
- }
198
- const where = new Array();
199
- if (filteredClassNamesInThisIModel) {
200
- where.push(`${presentation_shared_1.ECSql.createRawPropertyValueSelector(contentClass.alias, "ECClassId")} IS (
201
- ${filteredClassNamesInThisIModel
202
- .map(presentation_shared_1.parseFullClassName)
203
- .map(({ schemaName, className }) => `[${schemaName}].[${className}]`)
204
- .join(", ")}
205
- )`);
206
- }
207
- if (propertiesFilter) {
208
- where.push(propertiesFilter);
209
- }
210
- return { from, joins, where };
211
- }
212
- function createECSqlValueSelector(input) {
213
- if (input === undefined) {
214
- return "NULL";
215
- }
216
- if (isSelector(input)) {
217
- return input.selector;
218
- }
219
- return presentation_shared_1.ECSql.createRawPrimitiveValueSelector(input);
220
- }
221
- function isSelector(x) {
222
- return !!x.selector;
223
- }
224
- async function createGroupingSelector(grouping, imodelAccess, instanceLabelSelectClauseFactory) {
225
- const groupingSelectors = new Array();
226
- grouping.byLabel &&
227
- groupingSelectors.push({
228
- key: "byLabel",
229
- selector: typeof grouping.byLabel === "boolean" || isSelector(grouping.byLabel)
230
- ? createECSqlValueSelector(grouping.byLabel)
231
- : serializeJsonObject(createLabelGroupingBaseParamsSelectors(grouping.byLabel)),
232
- });
233
- grouping.byClass &&
234
- groupingSelectors.push({
235
- key: "byClass",
236
- selector: typeof grouping.byClass === "boolean" || isSelector(grouping.byClass)
237
- ? createECSqlValueSelector(grouping.byClass)
238
- : serializeJsonObject(createBaseGroupingParamSelectors(grouping.byClass)),
239
- });
240
- grouping.byBaseClasses &&
241
- groupingSelectors.push({
242
- key: "byBaseClasses",
243
- selector: serializeJsonObject([
244
- {
245
- key: "fullClassNames",
246
- selector: `json_array(${grouping.byBaseClasses.fullClassNames.map((className) => createECSqlValueSelector(className)).join(", ")})`,
247
- },
248
- ...createBaseGroupingParamSelectors(grouping.byBaseClasses),
249
- ]),
250
- });
251
- // TODO: MISSING_COVERAGE
252
- /* v8 ignore else -- @preserve */
253
- if (grouping.byProperties) {
254
- const propertyClass = await (0, presentation_shared_1.getClass)(imodelAccess, grouping.byProperties.propertiesClassName);
255
- groupingSelectors.push({
256
- key: "byProperties",
257
- selector: serializeJsonObject([
258
- {
259
- key: "propertiesClassName",
260
- selector: `${createECSqlValueSelector(grouping.byProperties.propertiesClassName)}`,
261
- },
262
- {
263
- key: "propertyGroups",
264
- selector: `json_array(${(await Promise.all(grouping.byProperties.propertyGroups.map(async (propertyGroup) => serializeJsonObject(await createPropertyGroupSelectors(propertyGroup, propertyClass, instanceLabelSelectClauseFactory))))).join(", ")})`,
265
- },
266
- ...(grouping.byProperties.createGroupForOutOfRangeValues !== undefined
267
- ? [
268
- {
269
- key: "createGroupForOutOfRangeValues",
270
- selector: `CAST(${createECSqlValueSelector(grouping.byProperties.createGroupForOutOfRangeValues)} AS BOOLEAN)`,
271
- },
272
- ]
273
- : []),
274
- ...(grouping.byProperties.createGroupForUnspecifiedValues !== undefined
275
- ? [
276
- {
277
- key: "createGroupForUnspecifiedValues",
278
- selector: `CAST(${createECSqlValueSelector(grouping.byProperties.createGroupForUnspecifiedValues)} AS BOOLEAN)`,
279
- },
280
- ]
281
- : []),
282
- ...createBaseGroupingParamSelectors(grouping.byProperties),
283
- ]),
284
- });
285
- }
286
- return serializeJsonObject(groupingSelectors);
287
- }
288
- function createLabelGroupingBaseParamsSelectors(byLabel) {
289
- const selectors = new Array();
290
- if (byLabel.action !== undefined) {
291
- selectors.push({ key: "action", selector: `${createECSqlValueSelector(byLabel.action)}` });
292
- }
293
- if (byLabel.groupId !== undefined) {
294
- selectors.push({ key: "groupId", selector: createECSqlValueSelector(byLabel.groupId) });
295
- }
296
- if (byLabel.action !== "merge") {
297
- selectors.push(...createBaseGroupingParamSelectors(byLabel));
298
- }
299
- return selectors;
300
- }
301
- async function createPropertyGroupSelectors(propertyGroup, propertyClass, instanceLabelSelectClauseFactory) {
302
- const selectors = new Array();
303
- selectors.push({ key: "propertyName", selector: `${createECSqlValueSelector(propertyGroup.propertyName)}` });
304
- const property = await propertyClass.getProperty(propertyGroup.propertyName);
305
- if (!property) {
306
- throw new Error(`Property "${propertyGroup.propertyName}" not found in ECClass "${propertyClass.fullName}".`);
307
- }
308
- if (property.isNavigation()) {
309
- const relationshipClass = await property.relationshipClass;
310
- const abstractConstraint = property.direction === "Forward"
311
- ? await relationshipClass.target.abstractConstraint
312
- : await relationshipClass.source.abstractConstraint;
313
- // TODO: MISSING_COVERAGE
314
- /* v8 ignore else -- @preserve */
315
- if (!abstractConstraint) {
316
- throw new Error(`Could not determine class name for navigation property with direction "${property.direction}".`);
317
- }
318
- const fullName = abstractConstraint.fullName;
319
- const targetAlias = "target";
320
- selectors.push({
321
- key: "propertyValue",
322
- selector: `(
323
- SELECT ${await instanceLabelSelectClauseFactory.createSelectClause({ className: fullName, classAlias: targetAlias })}
324
- FROM ${fullName} AS ${targetAlias}
325
- WHERE [${targetAlias}].[ECInstanceId] = [${propertyGroup.propertyClassAlias}].[${propertyGroup.propertyName}].[Id]
326
- )`,
327
- });
328
- }
329
- else {
330
- selectors.push({
331
- key: "propertyValue",
332
- selector: `[${propertyGroup.propertyClassAlias}].[${propertyGroup.propertyName}]`,
333
- });
334
- }
335
- if (propertyGroup.ranges) {
336
- selectors.push(createRangeParamSelectors(propertyGroup.ranges));
337
- }
338
- return selectors;
339
- }
340
- function createRangeParamSelectors(ranges) {
341
- return {
342
- key: "ranges",
343
- selector: `json_array(${ranges
344
- .map((range) => serializeJsonObject([
345
- { key: "fromValue", selector: createECSqlValueSelector(range.fromValue) },
346
- { key: "toValue", selector: createECSqlValueSelector(range.toValue) },
347
- ...(range.rangeLabel
348
- ? [{ key: "rangeLabel", selector: `${createECSqlValueSelector(range.rangeLabel)}` }]
349
- : []),
350
- ]))
351
- .join(", ")})`,
352
- };
353
- }
354
- function createBaseGroupingParamSelectors(params) {
355
- const selectors = new Array();
356
- if (params.hideIfNoSiblings !== undefined) {
357
- selectors.push({ key: "hideIfNoSiblings", selector: createECSqlValueSelector(params.hideIfNoSiblings) });
358
- }
359
- if (params.hideIfOneGroupedNode !== undefined) {
360
- selectors.push({ key: "hideIfOneGroupedNode", selector: createECSqlValueSelector(params.hideIfOneGroupedNode) });
361
- }
362
- if (params.autoExpand !== undefined) {
363
- selectors.push({ key: "autoExpand", selector: createECSqlValueSelector(params.autoExpand) });
364
- }
365
- return selectors;
366
- }
367
- function serializeJsonObject(selectors) {
368
- return `json_object(${selectors.map(({ key, selector }) => `'${key}', ${selector}`).join(", ")})`;
369
- }
370
- async function createWhereClause(contentClassAlias, classLoader, rule) {
371
- if (core_common_1.GenericInstanceFilter.isFilterRuleGroup(rule)) {
372
- const clause = (await Promise.all(rule.rules.map(async (r) => createWhereClause(contentClassAlias, classLoader, r))))
373
- .filter((c) => !!c)
374
- .join(` ${getECSqlLogicalOperator(rule.operator)} `);
375
- return clause ? (rule.operator === "or" ? `(${clause})` : clause) : undefined;
376
- }
377
- const sourceAlias = rule.sourceAlias ? rule.sourceAlias : contentClassAlias;
378
- const propertyClass = await classLoader(sourceAlias);
379
- if (!propertyClass) {
380
- throw new Error(`Class with alias "${sourceAlias}" not found.`);
381
- }
382
- const property = await propertyClass.getProperty(rule.propertyName);
383
- if (!property) {
384
- throw new Error(`Property "${rule.propertyName}" not found in ECClass "${propertyClass.fullName}".`);
385
- }
386
- const propertyValueSelector = presentation_shared_1.ECSql.createRawPropertyValueSelector(sourceAlias, property.name);
387
- if (isUnaryRuleOperator(rule.operator)) {
388
- switch (rule.operator) {
389
- case "is-true":
390
- return propertyValueSelector;
391
- case "is-false":
392
- return `NOT ${propertyValueSelector}`;
393
- case "is-null":
394
- return `${propertyValueSelector} IS NULL`;
395
- case "is-not-null":
396
- return `${propertyValueSelector} IS NOT NULL`;
397
- }
398
- }
399
- const ecsqlOperator = getECSqlComparisonOperator(rule.operator);
400
- if (rule.value === undefined) {
401
- throw new Error(`Rule "${rule.propertyName}" ${ecsqlOperator} is missing value.`);
402
- }
403
- const value = rule.value.rawValue;
404
- if (rule.operator === "like" && typeof value === "string") {
405
- const escapedValue = value.replace(/[%_\\]/g, "\\$&");
406
- return `${propertyValueSelector} ${ecsqlOperator} '%${escapedValue}%' ESCAPE '\\'`;
407
- }
408
- if (property.isNavigation()) {
409
- (0, core_bentley_1.assert)(core_common_1.GenericInstanceFilterRuleValue.isInstanceKey(value));
410
- return `${propertyValueSelector}.[Id] ${ecsqlOperator} ${presentation_shared_1.ECSql.createRawPrimitiveValueSelector(value.id)}`;
411
- }
412
- if (property.isEnumeration()) {
413
- (0, core_bentley_1.assert)(!core_common_1.GenericInstanceFilterRuleValue.isInstanceKey(value));
414
- return `${propertyValueSelector} ${ecsqlOperator} ${presentation_shared_1.ECSql.createRawPrimitiveValueSelector(value)}`;
415
- }
416
- if (property.isPrimitive()) {
417
- (0, core_bentley_1.assert)(!core_common_1.GenericInstanceFilterRuleValue.isInstanceKey(value));
418
- switch (property.primitiveType) {
419
- case "Point2d": {
420
- (0, core_bentley_1.assert)(rule.operator === "is-equal" || rule.operator === "is-not-equal");
421
- (0, core_bentley_1.assert)(presentation_shared_1.PrimitiveValue.isPoint2d(value));
422
- const condition = `
423
- ${createFloatingPointEqualityClause(`${propertyValueSelector}.[x]`, "is-equal", value.x)}
424
- AND ${createFloatingPointEqualityClause(`${propertyValueSelector}.[y]`, "is-equal", value.y)}
425
- `;
426
- return rule.operator === "is-equal" ? condition : `NOT (${condition})`;
427
- }
428
- case "Point3d": {
429
- (0, core_bentley_1.assert)(rule.operator === "is-equal" || rule.operator === "is-not-equal");
430
- (0, core_bentley_1.assert)(presentation_shared_1.PrimitiveValue.isPoint3d(value));
431
- const condition = `
432
- ${createFloatingPointEqualityClause(`${propertyValueSelector}.[x]`, "is-equal", value.x)}
433
- AND ${createFloatingPointEqualityClause(`${propertyValueSelector}.[y]`, "is-equal", value.y)}
434
- AND ${createFloatingPointEqualityClause(`${propertyValueSelector}.[z]`, "is-equal", value.z)}
435
- `;
436
- return rule.operator === "is-equal" ? condition : `NOT (${condition})`;
437
- }
438
- case "Double": {
439
- (0, core_bentley_1.assert)(typeof value === "number");
440
- if (rule.operator === "is-equal" || rule.operator === "is-not-equal") {
441
- return `${createFloatingPointEqualityClause(propertyValueSelector, rule.operator, value)}`;
442
- }
443
- return `${propertyValueSelector} ${ecsqlOperator} ${presentation_shared_1.ECSql.createRawPrimitiveValueSelector(value)}`;
444
- }
445
- default: {
446
- return `${propertyValueSelector} ${ecsqlOperator} ${presentation_shared_1.ECSql.createRawPrimitiveValueSelector(value)}`;
447
- }
448
- }
449
- }
450
- throw new Error("Struct and array properties are not supported for filtering");
451
- }
452
- function createFloatingPointEqualityClause(valueSelector, operator, value) {
453
- const [from, to] = getFloatingPointValueRange(value);
454
- return `${valueSelector} ${operator === "is-not-equal" ? "NOT " : ""} BETWEEN ${from} AND ${to}`;
455
- }
456
- function getFloatingPointValueRange(value) {
457
- return [value - Number.EPSILON, value + Number.EPSILON];
458
- }
459
- function getECSqlLogicalOperator(op) {
460
- switch (op) {
461
- case "and":
462
- return "AND";
463
- case "or":
464
- return "OR";
465
- }
466
- }
467
- function isUnaryRuleOperator(op) {
468
- return op === "is-true" || op === "is-false" || op === "is-null" || op === "is-not-null";
469
- }
470
- function getECSqlComparisonOperator(op) {
471
- switch (op) {
472
- case "is-equal":
473
- return `=`;
474
- case "is-not-equal":
475
- return `<>`;
476
- case "greater":
477
- return `>`;
478
- case "greater-or-equal":
479
- return `>=`;
480
- case "less":
481
- return `<`;
482
- case "less-or-equal":
483
- return `<=`;
484
- case "like":
485
- return `LIKE`;
486
- }
487
- }
488
- function assignRelationshipPathAliases(path, pathIndex, sourceAlias, targetAlias) {
489
- function createAlias(fullClassName, index) {
490
- return `rel_${pathIndex}_${fullClassName.replaceAll(/[\.:]/g, "_")}_${index}`;
491
- }
492
- const result = [];
493
- path.forEach((step, i) => {
494
- const sourceClassName = (0, presentation_shared_1.normalizeFullClassName)(step.sourceClassName);
495
- const targetClassName = (0, presentation_shared_1.normalizeFullClassName)(step.targetClassName);
496
- const relationshipName = (0, presentation_shared_1.normalizeFullClassName)(step.relationshipClassName);
497
- result.push({
498
- targetClassName,
499
- relationshipName,
500
- sourceClassName,
501
- relationshipReverse: !step.isForwardRelationship,
502
- sourceAlias: i === 0 ? sourceAlias : result[i - 1].targetAlias,
503
- relationshipAlias: createAlias(relationshipName, i),
504
- targetAlias: i === path.length - 1 ? targetAlias : createAlias(targetClassName, i),
505
- joinType: "inner",
506
- });
507
- });
508
- return result;
509
- }
510
- async function specializeContentClass(props) {
511
- const filterClass = await getSpecializedPropertyClass(props.classHierarchyInspector, props.filterClassNames);
512
- if (!filterClass) {
513
- return props.contentClassName;
514
- }
515
- if (await props.classHierarchyInspector.classDerivesFrom(filterClass, props.contentClassName)) {
516
- return filterClass;
517
- }
518
- if (await props.classHierarchyInspector.classDerivesFrom(props.contentClassName, filterClass)) {
519
- return props.contentClassName;
520
- }
521
- return undefined;
522
- }
523
- async function getSpecializedPropertyClass(classHierarchyInspector, classes) {
524
- if (classes.length === 0) {
525
- return undefined;
526
- }
527
- const [currClassName, ...restClasses] = classes;
528
- let resolvedClassName = currClassName;
529
- for (const propClassName of restClasses) {
530
- if (await classHierarchyInspector.classDerivesFrom(propClassName, resolvedClassName)) {
531
- resolvedClassName = propClassName;
532
- }
533
- }
534
- return resolvedClassName;
535
- }
536
- async function getHiddenClassesTree(selectClass, selectClassAttribute = "show") {
537
- const derivedClasses = await getDirectDerivedClasses(selectClass);
538
- const derivedClassSchemas = derivedClasses.reduce((acc, ecClass) => {
539
- /* v8 ignore else -- @preserve */
540
- if (!acc.set.has(ecClass.schema.name)) {
541
- acc.schemas.push(ecClass.schema);
542
- acc.set.add(ecClass.schema.name);
543
- }
544
- return acc;
545
- }, { set: new Set(), schemas: new Array() }).schemas;
546
- const hiddenSchemas = new Map();
547
- await Promise.all(derivedClassSchemas.map(async (ecSchema) => {
548
- hiddenSchemas.set(ecSchema.name, await getHiddenSchemaAttribute(ecSchema));
549
- }));
550
- const tree = (await Promise.all(derivedClasses.map(async (ecClass) => {
551
- const hiddenClassAttr = await getHiddenClassAttribute(ecClass);
552
- const attr = hiddenClassAttr ?? hiddenSchemas.get(ecClass.schema.name);
553
- if (!attr || attr === selectClassAttribute) {
554
- return getHiddenClassesTree(ecClass, selectClassAttribute);
555
- }
556
- return [{ fullName: ecClass.fullName, state: attr, children: await getHiddenClassesTree(ecClass, attr) }];
557
- }))).flat();
558
- return tree;
559
- }
560
- async function getDirectDerivedClasses(ecClass) {
561
- const allDerived = await ecClass.getDerivedClasses();
562
- return (await Promise.all(allDerived.map(async (c) => ({ derived: c, base: await c.baseClass }))))
563
- .filter(({ base }) => base && (0, presentation_shared_1.compareFullClassNames)(base.fullName, ecClass.fullName) === 0)
564
- .map(({ derived }) => derived);
565
- }
566
- async function getHiddenClassAttribute(ecClass) {
567
- const customAttributes = await ecClass.getCustomAttributes();
568
- const hiddenClassAttribute = customAttributes.get("CoreCustomAttributes.HiddenClass");
569
- return hiddenClassAttribute ? (hiddenClassAttribute.Show ? "show" : "hide") : undefined;
570
- }
571
- async function getHiddenSchemaAttribute(ecSchema) {
572
- const customAttributes = await ecSchema.getCustomAttributes();
573
- const hiddenSchemaAttribute = customAttributes.get("CoreCustomAttributes.HiddenSchema");
574
- return hiddenSchemaAttribute ? (hiddenSchemaAttribute.ShowClasses ? "show" : "hide") : undefined;
575
- }
576
- function createWhereClauseForHiddenClasses(hiddenClasses, selectAlias) {
577
- const res = {};
578
- const show = hiddenClasses.filter(({ state }) => state === "show");
579
- if (show.length > 0) {
580
- let showClause = `[${selectAlias}].[ECClassId] IS (${show
581
- .map(({ fullName }) => (0, presentation_shared_1.parseFullClassName)(fullName))
582
- .map(({ schemaName, className }) => `[${schemaName}].[${className}]`)
583
- .join(", ")})`;
584
- const childClauses = createWhereClauseForHiddenClasses(show.flatMap(({ children }) => children), selectAlias);
585
- if (childClauses.hideClause) {
586
- showClause = `(${showClause} AND ${childClauses.hideClause})`;
587
- }
588
- res.showClause = showClause;
589
- }
590
- const hide = hiddenClasses.filter(({ state }) => state === "hide");
591
- if (hide.length > 0) {
592
- let hideClause = `[${selectAlias}].[ECClassId] IS NOT (${hide
593
- .map(({ fullName }) => (0, presentation_shared_1.parseFullClassName)(fullName))
594
- .map(({ schemaName, className }) => `[${schemaName}].[${className}]`)
595
- .join(", ")})`;
596
- const childClauses = createWhereClauseForHiddenClasses(hide.flatMap(({ children }) => children), selectAlias);
597
- if (childClauses.showClause) {
598
- hideClause = `(${hideClause} OR ${childClauses.showClause})`;
599
- }
600
- res.hideClause = hideClause;
601
- }
602
- return res;
603
- }
604
- async function tryGetClass(schemaProvider, fullClassName) {
605
- try {
606
- return await (0, presentation_shared_1.getClass)(schemaProvider, fullClassName);
607
- }
608
- catch (e) {
609
- /* v8 ignore else -- @preserve */
610
- if (isSchemaOrClassNotFoundError(e)) {
611
- return undefined;
612
- }
613
- /* v8 ignore next -- @preserve */
614
- throw e;
615
- }
616
- }
617
- function isSchemaOrClassNotFoundError(e) {
618
- return (e instanceof Error &&
619
- (!!e.message.match(/^Schema "[\w\d_]+" not found/) || !!e.message.match(/^Class "[\w\d_\.:]+" not found/)));
620
- }
621
- function isPropertyNotFoundError(e) {
622
- return e instanceof Error && !!e.message.match(/^Property "[\w\d]+" not found in ECClass/);
623
- }
624
- //# sourceMappingURL=NodeSelectQueryFactory.js.map