@itwin/core-frontend 3.2.0-dev.36 → 3.2.0-dev.37

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 (738) hide show
  1. package/CHANGELOG.md +8 -1
  2. package/lib/cjs/AccuDraw.d.ts +2 -0
  3. package/lib/cjs/AccuDraw.d.ts.map +1 -1
  4. package/lib/cjs/AccuDraw.js +2 -0
  5. package/lib/cjs/AccuDraw.js.map +1 -1
  6. package/lib/cjs/AccuSnap.d.ts +1 -0
  7. package/lib/cjs/AccuSnap.d.ts.map +1 -1
  8. package/lib/cjs/AccuSnap.js +1 -0
  9. package/lib/cjs/AccuSnap.js.map +1 -1
  10. package/lib/cjs/AuxCoordSys.d.ts +12 -2
  11. package/lib/cjs/AuxCoordSys.d.ts.map +1 -1
  12. package/lib/cjs/AuxCoordSys.js +12 -2
  13. package/lib/cjs/AuxCoordSys.js.map +1 -1
  14. package/lib/cjs/BingLocation.d.ts +1 -0
  15. package/lib/cjs/BingLocation.d.ts.map +1 -1
  16. package/lib/cjs/BingLocation.js +1 -0
  17. package/lib/cjs/BingLocation.js.map +1 -1
  18. package/lib/cjs/CategorySelectorState.d.ts +1 -0
  19. package/lib/cjs/CategorySelectorState.d.ts.map +1 -1
  20. package/lib/cjs/CategorySelectorState.js +1 -0
  21. package/lib/cjs/CategorySelectorState.js.map +1 -1
  22. package/lib/cjs/ChangeFlags.d.ts +1 -0
  23. package/lib/cjs/ChangeFlags.d.ts.map +1 -1
  24. package/lib/cjs/ChangeFlags.js +1 -0
  25. package/lib/cjs/ChangeFlags.js.map +1 -1
  26. package/lib/cjs/ContextRealityModelState.d.ts +1 -0
  27. package/lib/cjs/ContextRealityModelState.d.ts.map +1 -1
  28. package/lib/cjs/ContextRealityModelState.js +1 -0
  29. package/lib/cjs/ContextRealityModelState.js.map +1 -1
  30. package/lib/cjs/CoordSystem.d.ts +1 -0
  31. package/lib/cjs/CoordSystem.d.ts.map +1 -1
  32. package/lib/cjs/CoordSystem.js +1 -0
  33. package/lib/cjs/CoordSystem.js.map +1 -1
  34. package/lib/cjs/DisplayStyleState.d.ts +4 -0
  35. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  36. package/lib/cjs/DisplayStyleState.js +3 -0
  37. package/lib/cjs/DisplayStyleState.js.map +1 -1
  38. package/lib/cjs/DrawingViewState.d.ts +1 -0
  39. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  40. package/lib/cjs/DrawingViewState.js +1 -0
  41. package/lib/cjs/DrawingViewState.js.map +1 -1
  42. package/lib/cjs/ElementLocateManager.d.ts +23 -5
  43. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  44. package/lib/cjs/ElementLocateManager.js +19 -4
  45. package/lib/cjs/ElementLocateManager.js.map +1 -1
  46. package/lib/cjs/EmphasizeElements.d.ts +1 -0
  47. package/lib/cjs/EmphasizeElements.d.ts.map +1 -1
  48. package/lib/cjs/EmphasizeElements.js +1 -0
  49. package/lib/cjs/EmphasizeElements.js.map +1 -1
  50. package/lib/cjs/EntityState.d.ts +2 -0
  51. package/lib/cjs/EntityState.d.ts.map +1 -1
  52. package/lib/cjs/EntityState.js +2 -0
  53. package/lib/cjs/EntityState.js.map +1 -1
  54. package/lib/cjs/FeatureOverrideProvider.d.ts +1 -0
  55. package/lib/cjs/FeatureOverrideProvider.d.ts.map +1 -1
  56. package/lib/cjs/FeatureOverrideProvider.js.map +1 -1
  57. package/lib/cjs/FlashSettings.d.ts +3 -0
  58. package/lib/cjs/FlashSettings.d.ts.map +1 -1
  59. package/lib/cjs/FlashSettings.js +2 -0
  60. package/lib/cjs/FlashSettings.js.map +1 -1
  61. package/lib/cjs/FrontendHubAccess.d.ts +4 -1
  62. package/lib/cjs/FrontendHubAccess.d.ts.map +1 -1
  63. package/lib/cjs/FrontendHubAccess.js.map +1 -1
  64. package/lib/cjs/FrontendLoggerCategory.d.ts +1 -0
  65. package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
  66. package/lib/cjs/FrontendLoggerCategory.js +1 -0
  67. package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
  68. package/lib/cjs/FrustumAnimator.d.ts +1 -0
  69. package/lib/cjs/FrustumAnimator.d.ts.map +1 -1
  70. package/lib/cjs/FrustumAnimator.js +1 -0
  71. package/lib/cjs/FrustumAnimator.js.map +1 -1
  72. package/lib/cjs/FuzzySearch.d.ts +1 -0
  73. package/lib/cjs/FuzzySearch.d.ts.map +1 -1
  74. package/lib/cjs/FuzzySearch.js.map +1 -1
  75. package/lib/cjs/GlobeAnimator.d.ts +1 -0
  76. package/lib/cjs/GlobeAnimator.d.ts.map +1 -1
  77. package/lib/cjs/GlobeAnimator.js +1 -0
  78. package/lib/cjs/GlobeAnimator.js.map +1 -1
  79. package/lib/cjs/HitDetail.d.ts +26 -5
  80. package/lib/cjs/HitDetail.d.ts.map +1 -1
  81. package/lib/cjs/HitDetail.js +26 -5
  82. package/lib/cjs/HitDetail.js.map +1 -1
  83. package/lib/cjs/IModelApp.d.ts +7 -0
  84. package/lib/cjs/IModelApp.d.ts.map +1 -1
  85. package/lib/cjs/IModelApp.js +32 -20
  86. package/lib/cjs/IModelApp.js.map +1 -1
  87. package/lib/cjs/IModelConnection.d.ts +1 -0
  88. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  89. package/lib/cjs/IModelConnection.js +1 -0
  90. package/lib/cjs/IModelConnection.js.map +1 -1
  91. package/lib/cjs/ImageUtil.d.ts +11 -0
  92. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  93. package/lib/cjs/ImageUtil.js +11 -0
  94. package/lib/cjs/ImageUtil.js.map +1 -1
  95. package/lib/cjs/IpcApp.d.ts +1 -0
  96. package/lib/cjs/IpcApp.d.ts.map +1 -1
  97. package/lib/cjs/IpcApp.js +1 -0
  98. package/lib/cjs/IpcApp.js.map +1 -1
  99. package/lib/cjs/MarginPercent.d.ts +1 -0
  100. package/lib/cjs/MarginPercent.d.ts.map +1 -1
  101. package/lib/cjs/MarginPercent.js +1 -0
  102. package/lib/cjs/MarginPercent.js.map +1 -1
  103. package/lib/cjs/Marker.d.ts +16 -3
  104. package/lib/cjs/Marker.d.ts.map +1 -1
  105. package/lib/cjs/Marker.js +3 -0
  106. package/lib/cjs/Marker.js.map +1 -1
  107. package/lib/cjs/ModelSelectorState.d.ts +1 -0
  108. package/lib/cjs/ModelSelectorState.d.ts.map +1 -1
  109. package/lib/cjs/ModelSelectorState.js +1 -0
  110. package/lib/cjs/ModelSelectorState.js.map +1 -1
  111. package/lib/cjs/ModelState.d.ts +10 -0
  112. package/lib/cjs/ModelState.d.ts.map +1 -1
  113. package/lib/cjs/ModelState.js +10 -0
  114. package/lib/cjs/ModelState.js.map +1 -1
  115. package/lib/cjs/NotificationManager.d.ts +11 -0
  116. package/lib/cjs/NotificationManager.d.ts.map +1 -1
  117. package/lib/cjs/NotificationManager.js +10 -0
  118. package/lib/cjs/NotificationManager.js.map +1 -1
  119. package/lib/cjs/PerModelCategoryVisibility.d.ts +1 -0
  120. package/lib/cjs/PerModelCategoryVisibility.d.ts.map +1 -1
  121. package/lib/cjs/PerModelCategoryVisibility.js +1 -0
  122. package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
  123. package/lib/cjs/SelectionSet.d.ts +7 -0
  124. package/lib/cjs/SelectionSet.d.ts.map +1 -1
  125. package/lib/cjs/SelectionSet.js +3 -0
  126. package/lib/cjs/SelectionSet.js.map +1 -1
  127. package/lib/cjs/SheetViewState.d.ts +1 -0
  128. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  129. package/lib/cjs/SheetViewState.js +1 -0
  130. package/lib/cjs/SheetViewState.js.map +1 -1
  131. package/lib/cjs/SpatialViewState.d.ts +2 -0
  132. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  133. package/lib/cjs/SpatialViewState.js +2 -0
  134. package/lib/cjs/SpatialViewState.js.map +1 -1
  135. package/lib/cjs/Sprites.d.ts +3 -0
  136. package/lib/cjs/Sprites.d.ts.map +1 -1
  137. package/lib/cjs/Sprites.js +3 -0
  138. package/lib/cjs/Sprites.js.map +1 -1
  139. package/lib/cjs/StandardView.d.ts +1 -0
  140. package/lib/cjs/StandardView.d.ts.map +1 -1
  141. package/lib/cjs/StandardView.js +1 -0
  142. package/lib/cjs/StandardView.js.map +1 -1
  143. package/lib/cjs/TentativePoint.d.ts +4 -1
  144. package/lib/cjs/TentativePoint.d.ts.map +1 -1
  145. package/lib/cjs/TentativePoint.js +4 -1
  146. package/lib/cjs/TentativePoint.js.map +1 -1
  147. package/lib/cjs/Tiles.d.ts +1 -0
  148. package/lib/cjs/Tiles.d.ts.map +1 -1
  149. package/lib/cjs/Tiles.js +1 -0
  150. package/lib/cjs/Tiles.js.map +1 -1
  151. package/lib/cjs/ViewAnimation.d.ts +6 -0
  152. package/lib/cjs/ViewAnimation.d.ts.map +1 -1
  153. package/lib/cjs/ViewAnimation.js.map +1 -1
  154. package/lib/cjs/ViewCreator2d.d.ts +2 -0
  155. package/lib/cjs/ViewCreator2d.d.ts.map +1 -1
  156. package/lib/cjs/ViewCreator2d.js +1 -0
  157. package/lib/cjs/ViewCreator2d.js.map +1 -1
  158. package/lib/cjs/ViewCreator3d.d.ts +2 -0
  159. package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
  160. package/lib/cjs/ViewCreator3d.js +1 -0
  161. package/lib/cjs/ViewCreator3d.js.map +1 -1
  162. package/lib/cjs/ViewGlobalLocation.d.ts +3 -0
  163. package/lib/cjs/ViewGlobalLocation.d.ts.map +1 -1
  164. package/lib/cjs/ViewGlobalLocation.js +1 -0
  165. package/lib/cjs/ViewGlobalLocation.js.map +1 -1
  166. package/lib/cjs/ViewManager.d.ts +3 -0
  167. package/lib/cjs/ViewManager.d.ts.map +1 -1
  168. package/lib/cjs/ViewManager.js +1 -0
  169. package/lib/cjs/ViewManager.js.map +1 -1
  170. package/lib/cjs/ViewPose.d.ts +1 -0
  171. package/lib/cjs/ViewPose.d.ts.map +1 -1
  172. package/lib/cjs/ViewPose.js +1 -0
  173. package/lib/cjs/ViewPose.js.map +1 -1
  174. package/lib/cjs/ViewRect.d.ts +1 -0
  175. package/lib/cjs/ViewRect.d.ts.map +1 -1
  176. package/lib/cjs/ViewRect.js +1 -0
  177. package/lib/cjs/ViewRect.js.map +1 -1
  178. package/lib/cjs/ViewState.d.ts +4 -0
  179. package/lib/cjs/ViewState.d.ts.map +1 -1
  180. package/lib/cjs/ViewState.js +3 -0
  181. package/lib/cjs/ViewState.js.map +1 -1
  182. package/lib/cjs/ViewStatus.d.ts +1 -0
  183. package/lib/cjs/ViewStatus.d.ts.map +1 -1
  184. package/lib/cjs/ViewStatus.js +1 -0
  185. package/lib/cjs/ViewStatus.js.map +1 -1
  186. package/lib/cjs/ViewingSpace.d.ts +1 -0
  187. package/lib/cjs/ViewingSpace.d.ts.map +1 -1
  188. package/lib/cjs/ViewingSpace.js +1 -0
  189. package/lib/cjs/ViewingSpace.js.map +1 -1
  190. package/lib/cjs/core-frontend.d.ts +6 -5
  191. package/lib/cjs/core-frontend.d.ts.map +1 -1
  192. package/lib/cjs/core-frontend.js +7 -5
  193. package/lib/cjs/core-frontend.js.map +1 -1
  194. package/lib/cjs/extension/Extension.d.ts +22 -3
  195. package/lib/cjs/extension/Extension.d.ts.map +1 -1
  196. package/lib/cjs/extension/Extension.js +0 -8
  197. package/lib/cjs/extension/Extension.js.map +1 -1
  198. package/lib/cjs/extension/ExtensionAdmin.d.ts +1 -3
  199. package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -1
  200. package/lib/cjs/extension/ExtensionAdmin.js +1 -4
  201. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  202. package/lib/cjs/extension/ExtensionRuntime.js +231 -59
  203. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  204. package/lib/cjs/render/CanvasDecoration.d.ts +2 -0
  205. package/lib/cjs/render/CanvasDecoration.d.ts.map +1 -1
  206. package/lib/cjs/render/CanvasDecoration.js.map +1 -1
  207. package/lib/cjs/render/Decorations.d.ts +1 -0
  208. package/lib/cjs/render/Decorations.d.ts.map +1 -1
  209. package/lib/cjs/render/Decorations.js +1 -0
  210. package/lib/cjs/render/Decorations.js.map +1 -1
  211. package/lib/cjs/render/FeatureSymbology.d.ts +1 -0
  212. package/lib/cjs/render/FeatureSymbology.d.ts.map +1 -1
  213. package/lib/cjs/render/FeatureSymbology.js +1 -0
  214. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  215. package/lib/cjs/render/GraphicBranch.d.ts +2 -0
  216. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  217. package/lib/cjs/render/GraphicBranch.js +1 -0
  218. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  219. package/lib/cjs/render/GraphicBuilder.d.ts +8 -0
  220. package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
  221. package/lib/cjs/render/GraphicBuilder.js +2 -0
  222. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  223. package/lib/cjs/render/GraphicPrimitive.d.ts +14 -0
  224. package/lib/cjs/render/GraphicPrimitive.d.ts.map +1 -1
  225. package/lib/cjs/render/GraphicPrimitive.js.map +1 -1
  226. package/lib/cjs/render/ParticleCollectionBuilder.d.ts +3 -0
  227. package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
  228. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  229. package/lib/cjs/render/Pixel.d.ts +1 -0
  230. package/lib/cjs/render/Pixel.d.ts.map +1 -1
  231. package/lib/cjs/render/Pixel.js +1 -0
  232. package/lib/cjs/render/Pixel.js.map +1 -1
  233. package/lib/cjs/render/RenderClipVolume.d.ts +1 -0
  234. package/lib/cjs/render/RenderClipVolume.d.ts.map +1 -1
  235. package/lib/cjs/render/RenderClipVolume.js +1 -0
  236. package/lib/cjs/render/RenderClipVolume.js.map +1 -1
  237. package/lib/cjs/render/RenderGraphic.d.ts +3 -0
  238. package/lib/cjs/render/RenderGraphic.d.ts.map +1 -1
  239. package/lib/cjs/render/RenderGraphic.js +2 -0
  240. package/lib/cjs/render/RenderGraphic.js.map +1 -1
  241. package/lib/cjs/render/RenderSystem.d.ts +1 -0
  242. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  243. package/lib/cjs/render/RenderSystem.js +1 -0
  244. package/lib/cjs/render/RenderSystem.js.map +1 -1
  245. package/lib/cjs/render/RenderTexture.d.ts +7 -0
  246. package/lib/cjs/render/RenderTexture.d.ts.map +1 -1
  247. package/lib/cjs/render/RenderTexture.js.map +1 -1
  248. package/lib/cjs/render/Scene.d.ts +1 -0
  249. package/lib/cjs/render/Scene.d.ts.map +1 -1
  250. package/lib/cjs/render/Scene.js +1 -0
  251. package/lib/cjs/render/Scene.js.map +1 -1
  252. package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts +10 -0
  253. package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
  254. package/lib/cjs/render/ScreenSpaceEffectBuilder.js +2 -0
  255. package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
  256. package/lib/cjs/tile/DisclosedTileTreeSet.d.ts +2 -0
  257. package/lib/cjs/tile/DisclosedTileTreeSet.d.ts.map +1 -1
  258. package/lib/cjs/tile/DisclosedTileTreeSet.js +1 -0
  259. package/lib/cjs/tile/DisclosedTileTreeSet.js.map +1 -1
  260. package/lib/cjs/tile/ImdlReader.d.ts +1 -0
  261. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  262. package/lib/cjs/tile/ImdlReader.js +1 -0
  263. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  264. package/lib/cjs/tile/Tile.d.ts +5 -0
  265. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  266. package/lib/cjs/tile/Tile.js +5 -0
  267. package/lib/cjs/tile/Tile.js.map +1 -1
  268. package/lib/cjs/tile/TileAdmin.d.ts +3 -0
  269. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  270. package/lib/cjs/tile/TileAdmin.js +1 -0
  271. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  272. package/lib/cjs/tile/TileContent.d.ts +1 -0
  273. package/lib/cjs/tile/TileContent.d.ts.map +1 -1
  274. package/lib/cjs/tile/TileContent.js.map +1 -1
  275. package/lib/cjs/tile/TileDrawArgs.d.ts +2 -0
  276. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  277. package/lib/cjs/tile/TileDrawArgs.js +1 -0
  278. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  279. package/lib/cjs/tile/TileParams.d.ts +1 -0
  280. package/lib/cjs/tile/TileParams.d.ts.map +1 -1
  281. package/lib/cjs/tile/TileParams.js.map +1 -1
  282. package/lib/cjs/tile/TileRequest.d.ts +1 -0
  283. package/lib/cjs/tile/TileRequest.d.ts.map +1 -1
  284. package/lib/cjs/tile/TileRequest.js +1 -0
  285. package/lib/cjs/tile/TileRequest.js.map +1 -1
  286. package/lib/cjs/tile/TileRequestChannel.d.ts +2 -0
  287. package/lib/cjs/tile/TileRequestChannel.d.ts.map +1 -1
  288. package/lib/cjs/tile/TileRequestChannel.js +2 -0
  289. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  290. package/lib/cjs/tile/TileRequestChannels.d.ts +1 -0
  291. package/lib/cjs/tile/TileRequestChannels.d.ts.map +1 -1
  292. package/lib/cjs/tile/TileRequestChannels.js +1 -0
  293. package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
  294. package/lib/cjs/tile/TileTree.d.ts +2 -0
  295. package/lib/cjs/tile/TileTree.d.ts.map +1 -1
  296. package/lib/cjs/tile/TileTree.js +2 -0
  297. package/lib/cjs/tile/TileTree.js.map +1 -1
  298. package/lib/cjs/tile/TileTreeOwner.d.ts +1 -0
  299. package/lib/cjs/tile/TileTreeOwner.d.ts.map +1 -1
  300. package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
  301. package/lib/cjs/tile/TileTreeParams.d.ts +1 -0
  302. package/lib/cjs/tile/TileTreeParams.d.ts.map +1 -1
  303. package/lib/cjs/tile/TileTreeParams.js.map +1 -1
  304. package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
  305. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  306. package/lib/cjs/tile/TileTreeReference.js +2 -0
  307. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  308. package/lib/cjs/tile/TileTreeSupplier.d.ts +1 -0
  309. package/lib/cjs/tile/TileTreeSupplier.d.ts.map +1 -1
  310. package/lib/cjs/tile/TileTreeSupplier.js.map +1 -1
  311. package/lib/cjs/tile/TileUsageMarker.d.ts +1 -0
  312. package/lib/cjs/tile/TileUsageMarker.d.ts.map +1 -1
  313. package/lib/cjs/tile/TileUsageMarker.js +1 -0
  314. package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
  315. package/lib/cjs/tile/TiledGraphicsProvider.d.ts +1 -0
  316. package/lib/cjs/tile/TiledGraphicsProvider.d.ts.map +1 -1
  317. package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
  318. package/lib/cjs/tile/map/BingElevation.d.ts +1 -0
  319. package/lib/cjs/tile/map/BingElevation.d.ts.map +1 -1
  320. package/lib/cjs/tile/map/BingElevation.js +1 -0
  321. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  322. package/lib/cjs/tools/ClipViewTool.d.ts +5 -3
  323. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  324. package/lib/cjs/tools/ClipViewTool.js +4 -3
  325. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  326. package/lib/cjs/tools/EditManipulator.d.ts +1 -0
  327. package/lib/cjs/tools/EditManipulator.d.ts.map +1 -1
  328. package/lib/cjs/tools/EditManipulator.js +1 -0
  329. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  330. package/lib/cjs/tools/EventController.d.ts +1 -0
  331. package/lib/cjs/tools/EventController.d.ts.map +1 -1
  332. package/lib/cjs/tools/EventController.js +1 -0
  333. package/lib/cjs/tools/EventController.js.map +1 -1
  334. package/lib/cjs/tools/PrimitiveTool.d.ts +1 -0
  335. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  336. package/lib/cjs/tools/PrimitiveTool.js +1 -0
  337. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  338. package/lib/cjs/tools/SelectTool.d.ts +3 -0
  339. package/lib/cjs/tools/SelectTool.d.ts.map +1 -1
  340. package/lib/cjs/tools/SelectTool.js +3 -0
  341. package/lib/cjs/tools/SelectTool.js.map +1 -1
  342. package/lib/cjs/tools/Tool.d.ts +41 -6
  343. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  344. package/lib/cjs/tools/Tool.js +27 -4
  345. package/lib/cjs/tools/Tool.js.map +1 -1
  346. package/lib/cjs/tools/ToolAdmin.d.ts +9 -2
  347. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  348. package/lib/cjs/tools/ToolAdmin.js +9 -2
  349. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  350. package/lib/cjs/tools/ToolAssistance.d.ts +7 -0
  351. package/lib/cjs/tools/ToolAssistance.d.ts.map +1 -1
  352. package/lib/cjs/tools/ToolAssistance.js +3 -0
  353. package/lib/cjs/tools/ToolAssistance.js.map +1 -1
  354. package/lib/cjs/tools/ToolSettings.d.ts +1 -0
  355. package/lib/cjs/tools/ToolSettings.d.ts.map +1 -1
  356. package/lib/cjs/tools/ToolSettings.js +1 -0
  357. package/lib/cjs/tools/ToolSettings.js.map +1 -1
  358. package/lib/cjs/tools/ViewTool.d.ts +2 -0
  359. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  360. package/lib/cjs/tools/ViewTool.js +2 -0
  361. package/lib/cjs/tools/ViewTool.js.map +1 -1
  362. package/lib/esm/AccuDraw.d.ts +2 -0
  363. package/lib/esm/AccuDraw.d.ts.map +1 -1
  364. package/lib/esm/AccuDraw.js +2 -0
  365. package/lib/esm/AccuDraw.js.map +1 -1
  366. package/lib/esm/AccuSnap.d.ts +1 -0
  367. package/lib/esm/AccuSnap.d.ts.map +1 -1
  368. package/lib/esm/AccuSnap.js +1 -0
  369. package/lib/esm/AccuSnap.js.map +1 -1
  370. package/lib/esm/AuxCoordSys.d.ts +12 -2
  371. package/lib/esm/AuxCoordSys.d.ts.map +1 -1
  372. package/lib/esm/AuxCoordSys.js +12 -2
  373. package/lib/esm/AuxCoordSys.js.map +1 -1
  374. package/lib/esm/BingLocation.d.ts +1 -0
  375. package/lib/esm/BingLocation.d.ts.map +1 -1
  376. package/lib/esm/BingLocation.js +1 -0
  377. package/lib/esm/BingLocation.js.map +1 -1
  378. package/lib/esm/CategorySelectorState.d.ts +1 -0
  379. package/lib/esm/CategorySelectorState.d.ts.map +1 -1
  380. package/lib/esm/CategorySelectorState.js +1 -0
  381. package/lib/esm/CategorySelectorState.js.map +1 -1
  382. package/lib/esm/ChangeFlags.d.ts +1 -0
  383. package/lib/esm/ChangeFlags.d.ts.map +1 -1
  384. package/lib/esm/ChangeFlags.js +1 -0
  385. package/lib/esm/ChangeFlags.js.map +1 -1
  386. package/lib/esm/ContextRealityModelState.d.ts +1 -0
  387. package/lib/esm/ContextRealityModelState.d.ts.map +1 -1
  388. package/lib/esm/ContextRealityModelState.js +1 -0
  389. package/lib/esm/ContextRealityModelState.js.map +1 -1
  390. package/lib/esm/CoordSystem.d.ts +1 -0
  391. package/lib/esm/CoordSystem.d.ts.map +1 -1
  392. package/lib/esm/CoordSystem.js +1 -0
  393. package/lib/esm/CoordSystem.js.map +1 -1
  394. package/lib/esm/DisplayStyleState.d.ts +4 -0
  395. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  396. package/lib/esm/DisplayStyleState.js +3 -0
  397. package/lib/esm/DisplayStyleState.js.map +1 -1
  398. package/lib/esm/DrawingViewState.d.ts +1 -0
  399. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  400. package/lib/esm/DrawingViewState.js +1 -0
  401. package/lib/esm/DrawingViewState.js.map +1 -1
  402. package/lib/esm/ElementLocateManager.d.ts +23 -5
  403. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  404. package/lib/esm/ElementLocateManager.js +19 -4
  405. package/lib/esm/ElementLocateManager.js.map +1 -1
  406. package/lib/esm/EmphasizeElements.d.ts +1 -0
  407. package/lib/esm/EmphasizeElements.d.ts.map +1 -1
  408. package/lib/esm/EmphasizeElements.js +1 -0
  409. package/lib/esm/EmphasizeElements.js.map +1 -1
  410. package/lib/esm/EntityState.d.ts +2 -0
  411. package/lib/esm/EntityState.d.ts.map +1 -1
  412. package/lib/esm/EntityState.js +2 -0
  413. package/lib/esm/EntityState.js.map +1 -1
  414. package/lib/esm/FeatureOverrideProvider.d.ts +1 -0
  415. package/lib/esm/FeatureOverrideProvider.d.ts.map +1 -1
  416. package/lib/esm/FeatureOverrideProvider.js.map +1 -1
  417. package/lib/esm/FlashSettings.d.ts +3 -0
  418. package/lib/esm/FlashSettings.d.ts.map +1 -1
  419. package/lib/esm/FlashSettings.js +2 -0
  420. package/lib/esm/FlashSettings.js.map +1 -1
  421. package/lib/esm/FrontendHubAccess.d.ts +4 -1
  422. package/lib/esm/FrontendHubAccess.d.ts.map +1 -1
  423. package/lib/esm/FrontendHubAccess.js.map +1 -1
  424. package/lib/esm/FrontendLoggerCategory.d.ts +1 -0
  425. package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
  426. package/lib/esm/FrontendLoggerCategory.js +1 -0
  427. package/lib/esm/FrontendLoggerCategory.js.map +1 -1
  428. package/lib/esm/FrustumAnimator.d.ts +1 -0
  429. package/lib/esm/FrustumAnimator.d.ts.map +1 -1
  430. package/lib/esm/FrustumAnimator.js +1 -0
  431. package/lib/esm/FrustumAnimator.js.map +1 -1
  432. package/lib/esm/FuzzySearch.d.ts +1 -0
  433. package/lib/esm/FuzzySearch.d.ts.map +1 -1
  434. package/lib/esm/FuzzySearch.js.map +1 -1
  435. package/lib/esm/GlobeAnimator.d.ts +1 -0
  436. package/lib/esm/GlobeAnimator.d.ts.map +1 -1
  437. package/lib/esm/GlobeAnimator.js +1 -0
  438. package/lib/esm/GlobeAnimator.js.map +1 -1
  439. package/lib/esm/HitDetail.d.ts +26 -5
  440. package/lib/esm/HitDetail.d.ts.map +1 -1
  441. package/lib/esm/HitDetail.js +26 -5
  442. package/lib/esm/HitDetail.js.map +1 -1
  443. package/lib/esm/IModelApp.d.ts +7 -0
  444. package/lib/esm/IModelApp.d.ts.map +1 -1
  445. package/lib/esm/IModelApp.js +32 -20
  446. package/lib/esm/IModelApp.js.map +1 -1
  447. package/lib/esm/IModelConnection.d.ts +1 -0
  448. package/lib/esm/IModelConnection.d.ts.map +1 -1
  449. package/lib/esm/IModelConnection.js +1 -0
  450. package/lib/esm/IModelConnection.js.map +1 -1
  451. package/lib/esm/ImageUtil.d.ts +11 -0
  452. package/lib/esm/ImageUtil.d.ts.map +1 -1
  453. package/lib/esm/ImageUtil.js +11 -0
  454. package/lib/esm/ImageUtil.js.map +1 -1
  455. package/lib/esm/IpcApp.d.ts +1 -0
  456. package/lib/esm/IpcApp.d.ts.map +1 -1
  457. package/lib/esm/IpcApp.js +1 -0
  458. package/lib/esm/IpcApp.js.map +1 -1
  459. package/lib/esm/MarginPercent.d.ts +1 -0
  460. package/lib/esm/MarginPercent.d.ts.map +1 -1
  461. package/lib/esm/MarginPercent.js +1 -0
  462. package/lib/esm/MarginPercent.js.map +1 -1
  463. package/lib/esm/Marker.d.ts +16 -3
  464. package/lib/esm/Marker.d.ts.map +1 -1
  465. package/lib/esm/Marker.js +3 -0
  466. package/lib/esm/Marker.js.map +1 -1
  467. package/lib/esm/ModelSelectorState.d.ts +1 -0
  468. package/lib/esm/ModelSelectorState.d.ts.map +1 -1
  469. package/lib/esm/ModelSelectorState.js +1 -0
  470. package/lib/esm/ModelSelectorState.js.map +1 -1
  471. package/lib/esm/ModelState.d.ts +10 -0
  472. package/lib/esm/ModelState.d.ts.map +1 -1
  473. package/lib/esm/ModelState.js +10 -0
  474. package/lib/esm/ModelState.js.map +1 -1
  475. package/lib/esm/NotificationManager.d.ts +11 -0
  476. package/lib/esm/NotificationManager.d.ts.map +1 -1
  477. package/lib/esm/NotificationManager.js +10 -0
  478. package/lib/esm/NotificationManager.js.map +1 -1
  479. package/lib/esm/PerModelCategoryVisibility.d.ts +1 -0
  480. package/lib/esm/PerModelCategoryVisibility.d.ts.map +1 -1
  481. package/lib/esm/PerModelCategoryVisibility.js +1 -0
  482. package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
  483. package/lib/esm/SelectionSet.d.ts +7 -0
  484. package/lib/esm/SelectionSet.d.ts.map +1 -1
  485. package/lib/esm/SelectionSet.js +3 -0
  486. package/lib/esm/SelectionSet.js.map +1 -1
  487. package/lib/esm/SheetViewState.d.ts +1 -0
  488. package/lib/esm/SheetViewState.d.ts.map +1 -1
  489. package/lib/esm/SheetViewState.js +1 -0
  490. package/lib/esm/SheetViewState.js.map +1 -1
  491. package/lib/esm/SpatialViewState.d.ts +2 -0
  492. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  493. package/lib/esm/SpatialViewState.js +2 -0
  494. package/lib/esm/SpatialViewState.js.map +1 -1
  495. package/lib/esm/Sprites.d.ts +3 -0
  496. package/lib/esm/Sprites.d.ts.map +1 -1
  497. package/lib/esm/Sprites.js +3 -0
  498. package/lib/esm/Sprites.js.map +1 -1
  499. package/lib/esm/StandardView.d.ts +1 -0
  500. package/lib/esm/StandardView.d.ts.map +1 -1
  501. package/lib/esm/StandardView.js +1 -0
  502. package/lib/esm/StandardView.js.map +1 -1
  503. package/lib/esm/TentativePoint.d.ts +4 -1
  504. package/lib/esm/TentativePoint.d.ts.map +1 -1
  505. package/lib/esm/TentativePoint.js +4 -1
  506. package/lib/esm/TentativePoint.js.map +1 -1
  507. package/lib/esm/Tiles.d.ts +1 -0
  508. package/lib/esm/Tiles.d.ts.map +1 -1
  509. package/lib/esm/Tiles.js +1 -0
  510. package/lib/esm/Tiles.js.map +1 -1
  511. package/lib/esm/ViewAnimation.d.ts +6 -0
  512. package/lib/esm/ViewAnimation.d.ts.map +1 -1
  513. package/lib/esm/ViewAnimation.js.map +1 -1
  514. package/lib/esm/ViewCreator2d.d.ts +2 -0
  515. package/lib/esm/ViewCreator2d.d.ts.map +1 -1
  516. package/lib/esm/ViewCreator2d.js +1 -0
  517. package/lib/esm/ViewCreator2d.js.map +1 -1
  518. package/lib/esm/ViewCreator3d.d.ts +2 -0
  519. package/lib/esm/ViewCreator3d.d.ts.map +1 -1
  520. package/lib/esm/ViewCreator3d.js +1 -0
  521. package/lib/esm/ViewCreator3d.js.map +1 -1
  522. package/lib/esm/ViewGlobalLocation.d.ts +3 -0
  523. package/lib/esm/ViewGlobalLocation.d.ts.map +1 -1
  524. package/lib/esm/ViewGlobalLocation.js +1 -0
  525. package/lib/esm/ViewGlobalLocation.js.map +1 -1
  526. package/lib/esm/ViewManager.d.ts +3 -0
  527. package/lib/esm/ViewManager.d.ts.map +1 -1
  528. package/lib/esm/ViewManager.js +1 -0
  529. package/lib/esm/ViewManager.js.map +1 -1
  530. package/lib/esm/ViewPose.d.ts +1 -0
  531. package/lib/esm/ViewPose.d.ts.map +1 -1
  532. package/lib/esm/ViewPose.js +1 -0
  533. package/lib/esm/ViewPose.js.map +1 -1
  534. package/lib/esm/ViewRect.d.ts +1 -0
  535. package/lib/esm/ViewRect.d.ts.map +1 -1
  536. package/lib/esm/ViewRect.js +1 -0
  537. package/lib/esm/ViewRect.js.map +1 -1
  538. package/lib/esm/ViewState.d.ts +4 -0
  539. package/lib/esm/ViewState.d.ts.map +1 -1
  540. package/lib/esm/ViewState.js +3 -0
  541. package/lib/esm/ViewState.js.map +1 -1
  542. package/lib/esm/ViewStatus.d.ts +1 -0
  543. package/lib/esm/ViewStatus.d.ts.map +1 -1
  544. package/lib/esm/ViewStatus.js +1 -0
  545. package/lib/esm/ViewStatus.js.map +1 -1
  546. package/lib/esm/ViewingSpace.d.ts +1 -0
  547. package/lib/esm/ViewingSpace.d.ts.map +1 -1
  548. package/lib/esm/ViewingSpace.js +1 -0
  549. package/lib/esm/ViewingSpace.js.map +1 -1
  550. package/lib/esm/core-frontend.d.ts +6 -5
  551. package/lib/esm/core-frontend.d.ts.map +1 -1
  552. package/lib/esm/core-frontend.js +7 -5
  553. package/lib/esm/core-frontend.js.map +1 -1
  554. package/lib/esm/extension/Extension.d.ts +22 -3
  555. package/lib/esm/extension/Extension.d.ts.map +1 -1
  556. package/lib/esm/extension/Extension.js +1 -7
  557. package/lib/esm/extension/Extension.js.map +1 -1
  558. package/lib/esm/extension/ExtensionAdmin.d.ts +1 -3
  559. package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -1
  560. package/lib/esm/extension/ExtensionAdmin.js +1 -4
  561. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  562. package/lib/esm/extension/ExtensionRuntime.js +239 -59
  563. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  564. package/lib/esm/render/CanvasDecoration.d.ts +2 -0
  565. package/lib/esm/render/CanvasDecoration.d.ts.map +1 -1
  566. package/lib/esm/render/CanvasDecoration.js.map +1 -1
  567. package/lib/esm/render/Decorations.d.ts +1 -0
  568. package/lib/esm/render/Decorations.d.ts.map +1 -1
  569. package/lib/esm/render/Decorations.js +1 -0
  570. package/lib/esm/render/Decorations.js.map +1 -1
  571. package/lib/esm/render/FeatureSymbology.d.ts +1 -0
  572. package/lib/esm/render/FeatureSymbology.d.ts.map +1 -1
  573. package/lib/esm/render/FeatureSymbology.js +1 -0
  574. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  575. package/lib/esm/render/GraphicBranch.d.ts +2 -0
  576. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  577. package/lib/esm/render/GraphicBranch.js +1 -0
  578. package/lib/esm/render/GraphicBranch.js.map +1 -1
  579. package/lib/esm/render/GraphicBuilder.d.ts +8 -0
  580. package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
  581. package/lib/esm/render/GraphicBuilder.js +2 -0
  582. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  583. package/lib/esm/render/GraphicPrimitive.d.ts +14 -0
  584. package/lib/esm/render/GraphicPrimitive.d.ts.map +1 -1
  585. package/lib/esm/render/GraphicPrimitive.js.map +1 -1
  586. package/lib/esm/render/ParticleCollectionBuilder.d.ts +3 -0
  587. package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
  588. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  589. package/lib/esm/render/Pixel.d.ts +1 -0
  590. package/lib/esm/render/Pixel.d.ts.map +1 -1
  591. package/lib/esm/render/Pixel.js +1 -0
  592. package/lib/esm/render/Pixel.js.map +1 -1
  593. package/lib/esm/render/RenderClipVolume.d.ts +1 -0
  594. package/lib/esm/render/RenderClipVolume.d.ts.map +1 -1
  595. package/lib/esm/render/RenderClipVolume.js +1 -0
  596. package/lib/esm/render/RenderClipVolume.js.map +1 -1
  597. package/lib/esm/render/RenderGraphic.d.ts +3 -0
  598. package/lib/esm/render/RenderGraphic.d.ts.map +1 -1
  599. package/lib/esm/render/RenderGraphic.js +2 -0
  600. package/lib/esm/render/RenderGraphic.js.map +1 -1
  601. package/lib/esm/render/RenderSystem.d.ts +1 -0
  602. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  603. package/lib/esm/render/RenderSystem.js +1 -0
  604. package/lib/esm/render/RenderSystem.js.map +1 -1
  605. package/lib/esm/render/RenderTexture.d.ts +7 -0
  606. package/lib/esm/render/RenderTexture.d.ts.map +1 -1
  607. package/lib/esm/render/RenderTexture.js.map +1 -1
  608. package/lib/esm/render/Scene.d.ts +1 -0
  609. package/lib/esm/render/Scene.d.ts.map +1 -1
  610. package/lib/esm/render/Scene.js +1 -0
  611. package/lib/esm/render/Scene.js.map +1 -1
  612. package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts +10 -0
  613. package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
  614. package/lib/esm/render/ScreenSpaceEffectBuilder.js +2 -0
  615. package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
  616. package/lib/esm/tile/DisclosedTileTreeSet.d.ts +2 -0
  617. package/lib/esm/tile/DisclosedTileTreeSet.d.ts.map +1 -1
  618. package/lib/esm/tile/DisclosedTileTreeSet.js +1 -0
  619. package/lib/esm/tile/DisclosedTileTreeSet.js.map +1 -1
  620. package/lib/esm/tile/ImdlReader.d.ts +1 -0
  621. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  622. package/lib/esm/tile/ImdlReader.js +1 -0
  623. package/lib/esm/tile/ImdlReader.js.map +1 -1
  624. package/lib/esm/tile/Tile.d.ts +5 -0
  625. package/lib/esm/tile/Tile.d.ts.map +1 -1
  626. package/lib/esm/tile/Tile.js +5 -0
  627. package/lib/esm/tile/Tile.js.map +1 -1
  628. package/lib/esm/tile/TileAdmin.d.ts +3 -0
  629. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  630. package/lib/esm/tile/TileAdmin.js +1 -0
  631. package/lib/esm/tile/TileAdmin.js.map +1 -1
  632. package/lib/esm/tile/TileContent.d.ts +1 -0
  633. package/lib/esm/tile/TileContent.d.ts.map +1 -1
  634. package/lib/esm/tile/TileContent.js.map +1 -1
  635. package/lib/esm/tile/TileDrawArgs.d.ts +2 -0
  636. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  637. package/lib/esm/tile/TileDrawArgs.js +1 -0
  638. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  639. package/lib/esm/tile/TileParams.d.ts +1 -0
  640. package/lib/esm/tile/TileParams.d.ts.map +1 -1
  641. package/lib/esm/tile/TileParams.js.map +1 -1
  642. package/lib/esm/tile/TileRequest.d.ts +1 -0
  643. package/lib/esm/tile/TileRequest.d.ts.map +1 -1
  644. package/lib/esm/tile/TileRequest.js +1 -0
  645. package/lib/esm/tile/TileRequest.js.map +1 -1
  646. package/lib/esm/tile/TileRequestChannel.d.ts +2 -0
  647. package/lib/esm/tile/TileRequestChannel.d.ts.map +1 -1
  648. package/lib/esm/tile/TileRequestChannel.js +2 -0
  649. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  650. package/lib/esm/tile/TileRequestChannels.d.ts +1 -0
  651. package/lib/esm/tile/TileRequestChannels.d.ts.map +1 -1
  652. package/lib/esm/tile/TileRequestChannels.js +1 -0
  653. package/lib/esm/tile/TileRequestChannels.js.map +1 -1
  654. package/lib/esm/tile/TileTree.d.ts +2 -0
  655. package/lib/esm/tile/TileTree.d.ts.map +1 -1
  656. package/lib/esm/tile/TileTree.js +2 -0
  657. package/lib/esm/tile/TileTree.js.map +1 -1
  658. package/lib/esm/tile/TileTreeOwner.d.ts +1 -0
  659. package/lib/esm/tile/TileTreeOwner.d.ts.map +1 -1
  660. package/lib/esm/tile/TileTreeOwner.js.map +1 -1
  661. package/lib/esm/tile/TileTreeParams.d.ts +1 -0
  662. package/lib/esm/tile/TileTreeParams.d.ts.map +1 -1
  663. package/lib/esm/tile/TileTreeParams.js.map +1 -1
  664. package/lib/esm/tile/TileTreeReference.d.ts +2 -0
  665. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  666. package/lib/esm/tile/TileTreeReference.js +2 -0
  667. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  668. package/lib/esm/tile/TileTreeSupplier.d.ts +1 -0
  669. package/lib/esm/tile/TileTreeSupplier.d.ts.map +1 -1
  670. package/lib/esm/tile/TileTreeSupplier.js.map +1 -1
  671. package/lib/esm/tile/TileUsageMarker.d.ts +1 -0
  672. package/lib/esm/tile/TileUsageMarker.d.ts.map +1 -1
  673. package/lib/esm/tile/TileUsageMarker.js +1 -0
  674. package/lib/esm/tile/TileUsageMarker.js.map +1 -1
  675. package/lib/esm/tile/TiledGraphicsProvider.d.ts +1 -0
  676. package/lib/esm/tile/TiledGraphicsProvider.d.ts.map +1 -1
  677. package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
  678. package/lib/esm/tile/map/BingElevation.d.ts +1 -0
  679. package/lib/esm/tile/map/BingElevation.d.ts.map +1 -1
  680. package/lib/esm/tile/map/BingElevation.js +1 -0
  681. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  682. package/lib/esm/tools/ClipViewTool.d.ts +5 -3
  683. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  684. package/lib/esm/tools/ClipViewTool.js +4 -3
  685. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  686. package/lib/esm/tools/EditManipulator.d.ts +1 -0
  687. package/lib/esm/tools/EditManipulator.d.ts.map +1 -1
  688. package/lib/esm/tools/EditManipulator.js +1 -0
  689. package/lib/esm/tools/EditManipulator.js.map +1 -1
  690. package/lib/esm/tools/EventController.d.ts +1 -0
  691. package/lib/esm/tools/EventController.d.ts.map +1 -1
  692. package/lib/esm/tools/EventController.js +1 -0
  693. package/lib/esm/tools/EventController.js.map +1 -1
  694. package/lib/esm/tools/PrimitiveTool.d.ts +1 -0
  695. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  696. package/lib/esm/tools/PrimitiveTool.js +1 -0
  697. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  698. package/lib/esm/tools/SelectTool.d.ts +3 -0
  699. package/lib/esm/tools/SelectTool.d.ts.map +1 -1
  700. package/lib/esm/tools/SelectTool.js +3 -0
  701. package/lib/esm/tools/SelectTool.js.map +1 -1
  702. package/lib/esm/tools/Tool.d.ts +41 -6
  703. package/lib/esm/tools/Tool.d.ts.map +1 -1
  704. package/lib/esm/tools/Tool.js +27 -4
  705. package/lib/esm/tools/Tool.js.map +1 -1
  706. package/lib/esm/tools/ToolAdmin.d.ts +9 -2
  707. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  708. package/lib/esm/tools/ToolAdmin.js +9 -2
  709. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  710. package/lib/esm/tools/ToolAssistance.d.ts +7 -0
  711. package/lib/esm/tools/ToolAssistance.d.ts.map +1 -1
  712. package/lib/esm/tools/ToolAssistance.js +3 -0
  713. package/lib/esm/tools/ToolAssistance.js.map +1 -1
  714. package/lib/esm/tools/ToolSettings.d.ts +1 -0
  715. package/lib/esm/tools/ToolSettings.d.ts.map +1 -1
  716. package/lib/esm/tools/ToolSettings.js +1 -0
  717. package/lib/esm/tools/ToolSettings.js.map +1 -1
  718. package/lib/esm/tools/ViewTool.d.ts +2 -0
  719. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  720. package/lib/esm/tools/ViewTool.js +2 -0
  721. package/lib/esm/tools/ViewTool.js.map +1 -1
  722. package/package.json +32 -21
  723. package/lib/cjs/extension/ExtensionLoader.d.ts +0 -26
  724. package/lib/cjs/extension/ExtensionLoader.d.ts.map +0 -1
  725. package/lib/cjs/extension/ExtensionLoader.js +0 -10
  726. package/lib/cjs/extension/ExtensionLoader.js.map +0 -1
  727. package/lib/cjs/extension/extensions.d.ts +0 -19
  728. package/lib/cjs/extension/extensions.d.ts.map +0 -1
  729. package/lib/cjs/extension/extensions.js +0 -36
  730. package/lib/cjs/extension/extensions.js.map +0 -1
  731. package/lib/esm/extension/ExtensionLoader.d.ts +0 -26
  732. package/lib/esm/extension/ExtensionLoader.d.ts.map +0 -1
  733. package/lib/esm/extension/ExtensionLoader.js +0 -9
  734. package/lib/esm/extension/ExtensionLoader.js.map +0 -1
  735. package/lib/esm/extension/extensions.d.ts +0 -19
  736. package/lib/esm/extension/extensions.d.ts.map +0 -1
  737. package/lib/esm/extension/extensions.js +0 -24
  738. package/lib/esm/extension/extensions.js.map +0 -1
@@ -11,7 +11,10 @@ import { LinePixels } from "@itwin/core-common";
11
11
  import { IModelApp } from "./IModelApp";
12
12
  import { GraphicType } from "./render/GraphicBuilder";
13
13
  import { IconSprites } from "./Sprites";
14
- /** @public */
14
+ /**
15
+ * @public
16
+ * @extensions
17
+ */
15
18
  export var SnapMode;
16
19
  (function (SnapMode) {
17
20
  SnapMode[SnapMode["Nearest"] = 1] = "Nearest";
@@ -22,7 +25,10 @@ export var SnapMode;
22
25
  SnapMode[SnapMode["Bisector"] = 32] = "Bisector";
23
26
  SnapMode[SnapMode["Intersection"] = 64] = "Intersection";
24
27
  })(SnapMode || (SnapMode = {}));
25
- /** @public */
28
+ /**
29
+ * @public
30
+ * @extensions
31
+ */
26
32
  export var SnapHeat;
27
33
  (function (SnapHeat) {
28
34
  SnapHeat[SnapHeat["None"] = 0] = "None";
@@ -31,6 +37,7 @@ export var SnapHeat;
31
37
  })(SnapHeat || (SnapHeat = {}));
32
38
  /** The procedure that generated this Hit.
33
39
  * @public
40
+ * @extensions
34
41
  */
35
42
  export var HitSource;
36
43
  (function (HitSource) {
@@ -47,6 +54,7 @@ export var HitSource;
47
54
  /** What was being tested to generate this hit. This is not the element or
48
55
  * GeometricPrimitive that generated the Hit, it is an indication of whether it is an edge or interior hit.
49
56
  * @public
57
+ * @extensions
50
58
  */
51
59
  export var HitGeomType;
52
60
  (function (HitGeomType) {
@@ -59,6 +67,7 @@ export var HitGeomType;
59
67
  })(HitGeomType || (HitGeomType = {}));
60
68
  /** Classification of GeometricPrimitive that generated the Hit.
61
69
  * @public
70
+ * @extensions
62
71
  */
63
72
  export var HitParentGeomType;
64
73
  (function (HitParentGeomType) {
@@ -69,7 +78,10 @@ export var HitParentGeomType;
69
78
  HitParentGeomType[HitParentGeomType["Mesh"] = 4] = "Mesh";
70
79
  HitParentGeomType[HitParentGeomType["Text"] = 5] = "Text";
71
80
  })(HitParentGeomType || (HitParentGeomType = {}));
72
- /** @public */
81
+ /**
82
+ * @public
83
+ * @extensions
84
+ */
73
85
  export var HitPriority;
74
86
  (function (HitPriority) {
75
87
  HitPriority[HitPriority["WireEdge"] = 0] = "WireEdge";
@@ -80,7 +92,10 @@ export var HitPriority;
80
92
  HitPriority[HitPriority["NonPlanarSurface"] = 5] = "NonPlanarSurface";
81
93
  HitPriority[HitPriority["Unknown"] = 6] = "Unknown";
82
94
  })(HitPriority || (HitPriority = {}));
83
- /** @public */
95
+ /**
96
+ * @public
97
+ * @extensions
98
+ */
84
99
  export var HitDetailType;
85
100
  (function (HitDetailType) {
86
101
  HitDetailType[HitDetailType["Hit"] = 1] = "Hit";
@@ -90,6 +105,7 @@ export var HitDetailType;
90
105
  /** A HitDetail stores the result when locating geometry displayed in a view.
91
106
  * It holds an approximate location on an element (or decoration) from a *pick*.
92
107
  * @public
108
+ * @extensions
93
109
  */
94
110
  export class HitDetail {
95
111
  /** Create a new HitDetail from the inputs to and results of a locate operation.
@@ -171,6 +187,7 @@ export class HitDetail {
171
187
  /** A SnapDetail is generated from the result of a snap request. In addition to the HitDetail about the reason the element was *picked*,
172
188
  * it holds the *exact* point on the element from the snapping logic, plus additional information that varies with the type of element and snap mode.
173
189
  * @public
190
+ * @extensions
174
191
  */
175
192
  export class SnapDetail extends HitDetail {
176
193
  /** Constructor for SnapDetail.
@@ -292,7 +309,10 @@ export class SnapDetail extends HitDetail {
292
309
  return "";
293
310
  }
294
311
  }
295
- /** @public */
312
+ /**
313
+ * @public
314
+ * @extensions
315
+ */
296
316
  export class IntersectDetail extends SnapDetail {
297
317
  constructor(from, heat = SnapHeat.None, snapPoint, otherPrimitive, otherId) {
298
318
  super(from, SnapMode.Intersection, heat, snapPoint);
@@ -324,6 +344,7 @@ export class IntersectDetail extends SnapDetail {
324
344
  /** The result of a "locate" is a sorted list of objects that satisfied the search criteria (a HitList). Earlier hits in the list
325
345
  * are somehow *better* than those later on.
326
346
  * @public
347
+ * @extensions
327
348
  */
328
349
  export class HitList {
329
350
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"HitDetail.js","sourceRoot":"","sources":["../../src/HitDetail.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module LocatingElements\r\n */\r\nimport { Id64 } from \"@itwin/core-bentley\";\r\nimport { Arc3d, CurvePrimitive, LineSegment3d, LineString3d, Path, Point3d, Transform, Vector3d, XYZProps } from \"@itwin/core-geometry\";\r\nimport { GeometryClass, LinePixels } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\nimport { GraphicType } from \"./render/GraphicBuilder\";\r\nimport { IconSprites, Sprite } from \"./Sprites\";\r\nimport { DecorateContext } from \"./ViewContext\";\r\nimport { ScreenViewport } from \"./Viewport\";\r\n\r\n/** @public */\r\nexport enum SnapMode {\r\n Nearest = 1,\r\n NearestKeypoint = 1 << 1,\r\n MidPoint = 1 << 2,\r\n Center = 1 << 3,\r\n Origin = 1 << 4,\r\n Bisector = 1 << 5,\r\n Intersection = 1 << 6,\r\n}\r\n\r\n/** @public */\r\nexport enum SnapHeat {\r\n None = 0,\r\n NotInRange = 1, // \"of interest\", but out of range\r\n InRange = 2,\r\n}\r\n\r\n/** The procedure that generated this Hit.\r\n * @public\r\n */\r\nexport enum HitSource {\r\n None = 0,\r\n FromUser = 1,\r\n MotionLocate = 2,\r\n AccuSnap = 3,\r\n TentativeSnap = 4,\r\n DataPoint = 5,\r\n Application = 6,\r\n EditAction = 7,\r\n EditActionSS = 8,\r\n}\r\n\r\n/** What was being tested to generate this hit. This is not the element or\r\n * GeometricPrimitive that generated the Hit, it is an indication of whether it is an edge or interior hit.\r\n * @public\r\n */\r\nexport enum HitGeomType {\r\n None = 0,\r\n Point = 1,\r\n Segment = 2,\r\n Curve = 3,\r\n Arc = 4,\r\n Surface = 5,\r\n}\r\n\r\n/** Classification of GeometricPrimitive that generated the Hit.\r\n * @public\r\n */\r\nexport enum HitParentGeomType {\r\n None = 0,\r\n Wire = 1,\r\n Sheet = 2,\r\n Solid = 3,\r\n Mesh = 4,\r\n Text = 5,\r\n}\r\n\r\n/** @public */\r\nexport enum HitPriority {\r\n WireEdge = 0,\r\n PlanarEdge = 1,\r\n NonPlanarEdge = 2,\r\n SilhouetteEdge = 3,\r\n PlanarSurface = 4,\r\n NonPlanarSurface = 5,\r\n Unknown = 6,\r\n}\r\n\r\n/** @public */\r\nexport enum HitDetailType {\r\n Hit = 1,\r\n Snap = 2,\r\n Intersection = 3,\r\n}\r\n\r\n/** A HitDetail stores the result when locating geometry displayed in a view.\r\n * It holds an approximate location on an element (or decoration) from a *pick*.\r\n * @public\r\n */\r\nexport class HitDetail {\r\n private readonly _iModel?: IModelConnection;\r\n /** @internal chiefly for debugging. */\r\n public readonly tileId?: string;\r\n /** @alpha */\r\n public readonly isClassifier: boolean;\r\n\r\n /** Create a new HitDetail from the inputs to and results of a locate operation.\r\n * @param testPoint The world coordinate space point that was used as the locate point.\r\n * @param viewport The view the locate operation was performed in.\r\n * @param hitSource The procedure that requested the locate operation.\r\n * @param hitPoint The approximate world coordinate location on the geometry identified by this HitDetail.\r\n * @param sourceId The source of the geometry, either a persistent element id or pickable decoration id.\r\n * @param priority The hit geometry priority/classification.\r\n * @param distXY The xy distance to hit in view coordinates.\r\n * @param distFraction The near plane distance fraction to hit.\r\n * @param subCategoryId The SubCategory for a persistent element hit.\r\n * @param geometryClass The GeometryClass for a persistent element hit.\r\n * @param iModel The IModelConnection from which the hit originated. This should almost always be left undefined, unless the hit is known to have originated from an iModel other than the one associated with the viewport.\r\n * @param modelId Optionally the Id of the [[ModelState]] from which the hit originated.\r\n * @param tileId Optionally the Id of the Tile from which the hit originated.\r\n * @param isClassifier Optionally whether the hit originated from a reality model classification.\r\n */\r\n public constructor(public readonly testPoint: Point3d, public readonly viewport: ScreenViewport, public readonly hitSource: HitSource,\r\n public readonly hitPoint: Point3d, public readonly sourceId: string, public readonly priority: HitPriority, public readonly distXY: number, public readonly distFraction: number,\r\n public readonly subCategoryId?: string, public readonly geometryClass?: GeometryClass, public readonly modelId?: string, iModel?: IModelConnection, tileId?: string, isClassifier?: boolean) {\r\n this._iModel = iModel;\r\n this.tileId = tileId;\r\n this.isClassifier = undefined !== isClassifier ? isClassifier : false;\r\n }\r\n\r\n /** Get the type of HitDetail.\r\n * @returns HitDetailType.Hit if this is a HitDetail, HitDetailType.Snap if it is a SnapDetail\r\n */\r\n public getHitType(): HitDetailType { return HitDetailType.Hit; }\r\n\r\n /** Get the *hit point* for this HitDetail. Returns the approximate point on the element that caused the hit when not a SnapDetail or IntersectDetail.\r\n * For a snap that is *hot*, the *exact* point on the Element for the snap mode is returned, otherwise the close point on the hit geometry is returned.\r\n */\r\n public getPoint(): Point3d { return this.hitPoint; }\r\n\r\n /** Determine if this HitPoint is from the same source as another HitDetail. */\r\n public isSameHit(otherHit?: HitDetail): boolean { return (undefined !== otherHit && this.sourceId === otherHit.sourceId && this.iModel === otherHit.iModel); }\r\n /** Return whether sourceId is for a persistent element and not a pickable decoration. */\r\n public get isElementHit(): boolean { return !Id64.isInvalid(this.sourceId) && !Id64.isTransient(this.sourceId); }\r\n // return whether the sourceId is for a model (reality models etc.)\r\n public get isModelHit(): boolean {\r\n return this.modelId === this.sourceId;\r\n }\r\n // return whether the hit point is from map.\r\n public get isMapHit(): boolean { return undefined !== this.viewport.mapLayerFromHit(this); }\r\n\r\n /** Create a deep copy of this HitDetail */\r\n public clone(): HitDetail {\r\n const val = new HitDetail(this.testPoint, this.viewport, this.hitSource, this.hitPoint, this.sourceId, this.priority, this.distXY, this.distFraction, this.subCategoryId, this.geometryClass, this.modelId, this._iModel, this.tileId, this.isClassifier);\r\n return val;\r\n }\r\n\r\n /** Draw this HitDetail as a Decoration. Causes the picked element to *flash* */\r\n public draw(_context: DecorateContext) {\r\n this.viewport.flashedId = this.sourceId;\r\n }\r\n\r\n /** Get the tooltip content for this HitDetail. */\r\n public async getToolTip(): Promise<HTMLElement | string> {\r\n let toolTipPromise = this.isElementHit ? IModelApp.viewManager.overrideElementToolTip(this) : IModelApp.viewManager.getDecorationToolTip(this);\r\n for (const toolTipProvider of IModelApp.viewManager.toolTipProviders)\r\n toolTipPromise = toolTipProvider.augmentToolTip(this, toolTipPromise);\r\n return toolTipPromise;\r\n }\r\n\r\n /** The IModelConnection from which the hit originated. In some cases this may not be the same as the iModel associated with the Viewport -\r\n * for example, if a [[TiledGraphicsProvider]] is used to display graphics from a different iModel in the viewport.\r\n * This HitDetail's element, subcategory, and model Ids are defined in the context of this IModelConnection.\r\n */\r\n public get iModel(): IModelConnection { return undefined !== this._iModel ? this._iModel : this.viewport.iModel; }\r\n\r\n /** Returns true if this hit originated from an [[IModelConnection]] other than the one associated with the [[Viewport]].\r\n * @see [[iModel]].\r\n */\r\n public get isExternalIModelHit(): boolean { return this.iModel !== this.viewport.iModel; }\r\n}\r\n\r\n/** A SnapDetail is generated from the result of a snap request. In addition to the HitDetail about the reason the element was *picked*,\r\n * it holds the *exact* point on the element from the snapping logic, plus additional information that varies with the type of element and snap mode.\r\n * @public\r\n */\r\nexport class SnapDetail extends HitDetail {\r\n /** A sprite to show the user the type of snap performed */\r\n public sprite?: Sprite;\r\n /** HitPoint adjusted by snap */\r\n public readonly snapPoint: Point3d;\r\n /** AccuSnap/AccuDraw can adjust the point after the snap. */\r\n public readonly adjustedPoint: Point3d;\r\n /** Curve primitive for snap. */\r\n public primitive?: CurvePrimitive;\r\n /** Surface normal at snapPoint */\r\n public normal?: Vector3d;\r\n /** The HitGeomType of this SnapDetail */\r\n public geomType?: HitGeomType;\r\n /** The HitGeomType of this SnapDetail */\r\n public parentGeomType?: HitParentGeomType;\r\n\r\n /** Constructor for SnapDetail.\r\n * @param from The HitDetail that created this snap\r\n * @param snapMode The SnapMode used to create this SnapDetail\r\n * @param heat The SnapHeat of this SnapDetail\r\n * @param snapPoint The snapped point in the element\r\n */\r\n public constructor(from: HitDetail, public snapMode: SnapMode = SnapMode.Nearest, public heat: SnapHeat = SnapHeat.None, snapPoint?: XYZProps) {\r\n super(from.testPoint, from.viewport, from.hitSource, from.hitPoint, from.sourceId, from.priority, from.distXY, from.distFraction, from.subCategoryId, from.geometryClass, from.modelId, from.iModel, from.tileId, from.isClassifier);\r\n this.snapPoint = Point3d.fromJSON(snapPoint ? snapPoint : from.hitPoint);\r\n this.adjustedPoint = this.snapPoint.clone();\r\n this.sprite = IconSprites.getSpriteFromUrl(SnapDetail.getSnapSpriteUrl(snapMode));\r\n }\r\n\r\n /** Returns `HitDetailType.Snap` */\r\n public override getHitType(): HitDetailType { return HitDetailType.Snap; }\r\n /** Get the snap point if this SnapDetail is *hot*, the pick point otherwise. */\r\n public override getPoint(): Point3d { return this.isHot ? this.snapPoint : super.getPoint(); }\r\n /** Return true if the pick point was closer than the snap aperture from the generated snap point. */\r\n public get isHot(): boolean { return this.heat !== SnapHeat.None; }\r\n /** Determine whether the [[adjustedPoint]] is different than the [[snapPoint]]. This happens, for example, when points are adjusted for grids, acs plane snap, and AccuDraw. */\r\n public get isPointAdjusted(): boolean { return !this.adjustedPoint.isExactEqual(this.snapPoint); }\r\n /** Change the snap point. */\r\n public setSnapPoint(point: Point3d, heat: SnapHeat) { this.snapPoint.setFrom(point); this.adjustedPoint.setFrom(point); this.heat = heat; }\r\n\r\n /** Set curve primitive and HitGeometryType for this SnapDetail. */\r\n public setCurvePrimitive(primitive?: CurvePrimitive, localToWorld?: Transform, geomType?: HitGeomType): void {\r\n this.primitive = primitive;\r\n this.geomType = undefined;\r\n\r\n // Only HitGeomType.Point and HitGeomType.Surface are valid without a curve primitive.\r\n if (undefined === this.primitive) {\r\n if (HitGeomType.Point === geomType || HitGeomType.Surface === geomType)\r\n this.geomType = geomType;\r\n return;\r\n }\r\n\r\n if (undefined !== localToWorld)\r\n this.primitive.tryTransformInPlace(localToWorld);\r\n\r\n if (this.primitive instanceof Arc3d)\r\n this.geomType = HitGeomType.Arc;\r\n else if (this.primitive instanceof LineSegment3d)\r\n this.geomType = HitGeomType.Segment;\r\n else if (this.primitive instanceof LineString3d)\r\n this.geomType = HitGeomType.Segment;\r\n else\r\n this.geomType = HitGeomType.Curve;\r\n\r\n // Set curve primitive geometry type override...\r\n // - HitGeomType.Point with arc/ellipse denotes center.\r\n // - HitGeomType.Surface with any curve primitive denotes an interior hit.\r\n if (undefined !== geomType && HitGeomType.None !== geomType)\r\n this.geomType = geomType;\r\n }\r\n\r\n /** Make a copy of this SnapDetail. */\r\n public override clone(): SnapDetail {\r\n const val = new SnapDetail(this, this.snapMode, this.heat, this.snapPoint);\r\n val.sprite = this.sprite;\r\n val.geomType = this.geomType;\r\n val.parentGeomType = this.parentGeomType;\r\n val.adjustedPoint.setFrom(this.adjustedPoint);\r\n if (undefined !== this.primitive)\r\n val.primitive = this.primitive.clone();\r\n if (undefined !== this.normal)\r\n val.normal = this.normal.clone();\r\n return val;\r\n }\r\n\r\n public getCurvePrimitive(singleSegment: boolean = true): CurvePrimitive | undefined {\r\n if (!singleSegment || undefined === this.primitive)\r\n return this.primitive;\r\n\r\n if (this.primitive instanceof LineString3d) {\r\n const ls = this.primitive;\r\n if (ls.points.length > 2) {\r\n const loc = ls.closestPoint(this.snapPoint, false);\r\n const nSegments = ls.points.length - 1;\r\n const uSegRange = (1.0 / nSegments);\r\n let segmentNo = Math.floor(loc.fraction / uSegRange);\r\n if (segmentNo >= nSegments)\r\n segmentNo = nSegments - 1;\r\n return LineSegment3d.create(ls.points[segmentNo], ls.points[segmentNo + 1]);\r\n }\r\n }\r\n\r\n return this.primitive;\r\n }\r\n\r\n public override draw(context: DecorateContext) {\r\n if (undefined !== this.primitive) {\r\n let singleSegment = false;\r\n switch (this.snapMode) {\r\n case SnapMode.Center:\r\n case SnapMode.Origin:\r\n case SnapMode.Bisector:\r\n break; // Snap point for these is computed using entire linestring, not just the hit segment...\r\n\r\n default: {\r\n singleSegment = true;\r\n break;\r\n }\r\n }\r\n\r\n const builder = context.createGraphicBuilder(GraphicType.WorldOverlay);\r\n const outline = context.viewport.hilite.color.adjustedForContrast(context.viewport.view.backgroundColor, 50);\r\n const centerLine = context.viewport.hilite.color.adjustedForContrast(outline, 175);\r\n const path = Path.create(this.getCurvePrimitive(singleSegment)!);\r\n\r\n builder.setSymbology(outline, outline, 6);\r\n builder.addPath(path);\r\n\r\n builder.setSymbology(centerLine, centerLine, 2);\r\n builder.addPath(path);\r\n\r\n context.addDecorationFromBuilder(builder);\r\n return;\r\n }\r\n super.draw(context);\r\n }\r\n\r\n private static getSnapSpriteUrl(snapType: SnapMode): string {\r\n switch (snapType) {\r\n case SnapMode.Nearest: return `${IModelApp.publicPath}sprites/SnapPointOn.png`;\r\n case SnapMode.NearestKeypoint: return `${IModelApp.publicPath}sprites/SnapKeypoint.png`;\r\n case SnapMode.MidPoint: return `${IModelApp.publicPath}sprites/SnapMidpoint.png`;\r\n case SnapMode.Center: return `${IModelApp.publicPath}sprites/SnapCenter.png`;\r\n case SnapMode.Origin: return `${IModelApp.publicPath}sprites/SnapOrigin.png`;\r\n case SnapMode.Bisector: return `${IModelApp.publicPath}sprites/SnapBisector.png`;\r\n case SnapMode.Intersection: return `${IModelApp.publicPath}sprites/SnapIntersection.png`;\r\n }\r\n return \"\";\r\n }\r\n}\r\n\r\n/** @public */\r\nexport class IntersectDetail extends SnapDetail {\r\n public constructor(from: SnapDetail, heat: SnapHeat = SnapHeat.None, snapPoint: XYZProps, public readonly otherPrimitive: CurvePrimitive, public readonly otherId: string) {\r\n super(from, SnapMode.Intersection, heat, snapPoint);\r\n this.primitive = from.primitive;\r\n this.normal = from.normal; // Preserve normal from primary snap location for AccuDraw smart rotation...\r\n }\r\n\r\n public override draw(context: DecorateContext) {\r\n if (undefined !== this.primitive && undefined !== this.otherPrimitive) {\r\n const builder = context.createGraphicBuilder(GraphicType.WorldOverlay);\r\n const outline = context.viewport.hilite.color.adjustedForContrast(context.viewport.view.backgroundColor, 50);\r\n const centerLine = context.viewport.hilite.color.adjustedForContrast(outline, 175);\r\n const path1 = Path.create(this.primitive);\r\n const path2 = Path.create(this.otherPrimitive);\r\n\r\n builder.setSymbology(outline, outline, 6);\r\n builder.addPath(path1);\r\n builder.addPath(path2);\r\n\r\n builder.setSymbology(centerLine, centerLine, 2);\r\n builder.addPath(path1);\r\n builder.setSymbology(centerLine, centerLine, 2, LinePixels.Code2);\r\n builder.addPath(path2);\r\n\r\n context.addDecorationFromBuilder(builder);\r\n return;\r\n }\r\n super.draw(context);\r\n }\r\n}\r\n\r\n/** The result of a \"locate\" is a sorted list of objects that satisfied the search criteria (a HitList). Earlier hits in the list\r\n * are somehow *better* than those later on.\r\n * @public\r\n */\r\nexport class HitList<T extends HitDetail> {\r\n public hits: T[] = [];\r\n public currHit = -1;\r\n public get length(): number { return this.hits.length; }\r\n public empty(): void { this.hits.length = 0; this.currHit = -1; }\r\n public resetCurrentHit(): void { this.currHit = -1; }\r\n\r\n /** Get a hit from a particular index into a HitList\r\n * return the requested hit from the HitList or undefined\r\n */\r\n public getHit(hitNum: number): T | undefined {\r\n if (hitNum < 0) hitNum = this.length - 1;\r\n return (hitNum >= this.length) ? undefined : this.hits[hitNum];\r\n }\r\n\r\n /** When setting one or more indices to undefined you must call dropNulls afterwards */\r\n public setHit(i: number, p: T | undefined): void {\r\n if (i < 0 || i >= this.length)\r\n return;\r\n this.hits[i] = p!;\r\n }\r\n\r\n public dropNulls(): void {\r\n const hits = this.hits;\r\n this.hits = [];\r\n for (const hit of hits)\r\n this.hits.push(hit);\r\n }\r\n\r\n public getNextHit(): T | undefined { this.currHit++; return this.getCurrentHit(); }\r\n public getCurrentHit(): T | undefined { return -1 === this.currHit ? undefined : this.getHit(this.currHit); }\r\n\r\n public setCurrentHit(hit: T): void {\r\n this.resetCurrentHit();\r\n for (let thisHit; undefined !== (thisHit = this.getNextHit());) {\r\n if (thisHit === hit)\r\n return;\r\n }\r\n }\r\n\r\n /** remove the current hit from the list. */\r\n public removeCurrentHit() { this.removeHit(this.currHit); }\r\n\r\n /** remove a hit in the list. */\r\n public removeHit(hitNum: number) {\r\n if (hitNum < 0) // Support -1 == END\r\n hitNum = this.length - 1;\r\n\r\n if (hitNum <= this.currHit)\r\n this.currHit = -1;\r\n\r\n if (hitNum >= this.length) // Locate calls GetNextHit, which increments currHit, until it goes beyond the end of size of the array.\r\n return; // Then Reset call RemoteCurrentHit, which passes in currHit. When it is out of range, we do nothing.\r\n\r\n this.hits.splice(hitNum, 1);\r\n }\r\n\r\n /** search through list and remove any hits that contain a specified element id. */\r\n public removeHitsFrom(sourceId: string): boolean {\r\n let removedOne = false;\r\n\r\n // walk backwards through list so we don't have to worry about what happens on remove\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n const thisHit = this.hits[i];\r\n if (thisHit && sourceId === thisHit.sourceId) {\r\n removedOne = true;\r\n this.removeHit(i);\r\n }\r\n }\r\n return removedOne;\r\n }\r\n\r\n private getPriorityZOverride(priority: HitPriority): number {\r\n switch (priority) {\r\n case HitPriority.WireEdge:\r\n case HitPriority.PlanarEdge:\r\n case HitPriority.NonPlanarEdge:\r\n return 0;\r\n case HitPriority.SilhouetteEdge:\r\n return 1;\r\n case HitPriority.PlanarSurface:\r\n case HitPriority.NonPlanarSurface:\r\n return 2;\r\n default:\r\n return 3;\r\n }\r\n }\r\n\r\n /** compare two hits for insertion into list. */\r\n public compare(hit1: HitDetail | undefined, hit2: HitDetail | undefined): -1 | 1 | 0 {\r\n if (!hit1 || !hit2)\r\n return 0;\r\n\r\n const zOverride1 = this.getPriorityZOverride(hit1.priority);\r\n const zOverride2 = this.getPriorityZOverride(hit2.priority);\r\n\r\n // Prefer edges over surfaces, this is more important than z because we know the edge isn't obscured...\r\n if (zOverride1 < zOverride2) return -1;\r\n if (zOverride1 > zOverride2) return 1;\r\n\r\n // Compare xy distance from pick point, prefer hits closer to center...\r\n if (hit1.distXY < hit2.distXY) return -1;\r\n if (hit1.distXY > hit2.distXY) return 1;\r\n\r\n // Compare distance fraction, prefer hits closer to eye...\r\n if (hit1.distFraction > hit2.distFraction) return -1;\r\n if (hit1.distFraction < hit2.distFraction) return 1;\r\n\r\n // Compare geometry class, prefer path/region hits over surface hits when all else is equal...\r\n if (hit1.priority < hit2.priority) return -1;\r\n if (hit1.priority > hit2.priority) return 1;\r\n\r\n return 0;\r\n }\r\n\r\n /** Add a new hit to the list. Hits are sorted according to their priority and distance. */\r\n public addHit(newHit: T): number {\r\n if (0 === this.hits.length) {\r\n this.hits.push(newHit);\r\n return 0;\r\n }\r\n let index = 0;\r\n for (; index < this.hits.length; ++index) {\r\n const oldHit = this.hits[index];\r\n const comparison = this.compare(newHit, oldHit);\r\n if (comparison < 0)\r\n break;\r\n }\r\n\r\n this.hits.splice(index, 0, newHit);\r\n return index;\r\n }\r\n\r\n /** Insert a new hit into the list at the supplied index. */\r\n public insertHit(i: number, hit: T): void {\r\n if (i < 0 || i >= this.length)\r\n this.hits.push(hit);\r\n else\r\n this.hits.splice(i, 0, hit);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"HitDetail.js","sourceRoot":"","sources":["../../src/HitDetail.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAC3C,OAAO,EAAE,KAAK,EAAkB,aAAa,EAAE,YAAY,EAAE,IAAI,EAAE,OAAO,EAAiC,MAAM,sBAAsB,CAAC;AACxI,OAAO,EAAiB,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAU,MAAM,WAAW,CAAC;AAIhD;;;GAGG;AACH,MAAM,CAAN,IAAY,QAQX;AARD,WAAY,QAAQ;IAClB,6CAAW,CAAA;IACX,6DAAwB,CAAA;IACxB,+CAAiB,CAAA;IACjB,2CAAe,CAAA;IACf,4CAAe,CAAA;IACf,gDAAiB,CAAA;IACjB,wDAAqB,CAAA;AACvB,CAAC,EARW,QAAQ,KAAR,QAAQ,QAQnB;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,QAIX;AAJD,WAAY,QAAQ;IAClB,uCAAQ,CAAA;IACR,mDAAc,CAAA;IACd,6CAAW,CAAA;AACb,CAAC,EAJW,QAAQ,KAAR,QAAQ,QAInB;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,SAUX;AAVD,WAAY,SAAS;IACnB,yCAAQ,CAAA;IACR,iDAAY,CAAA;IACZ,yDAAgB,CAAA;IAChB,iDAAY,CAAA;IACZ,2DAAiB,CAAA;IACjB,mDAAa,CAAA;IACb,uDAAe,CAAA;IACf,qDAAc,CAAA;IACd,yDAAgB,CAAA;AAClB,CAAC,EAVW,SAAS,KAAT,SAAS,QAUpB;AAED;;;;GAIG;AACH,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,6CAAQ,CAAA;IACR,+CAAS,CAAA;IACT,mDAAW,CAAA;IACX,+CAAS,CAAA;IACT,2CAAO,CAAA;IACP,mDAAW,CAAA;AACb,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,iBAOX;AAPD,WAAY,iBAAiB;IAC3B,yDAAQ,CAAA;IACR,yDAAQ,CAAA;IACR,2DAAS,CAAA;IACT,2DAAS,CAAA;IACT,yDAAQ,CAAA;IACR,yDAAQ,CAAA;AACV,CAAC,EAPW,iBAAiB,KAAjB,iBAAiB,QAO5B;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,WAQX;AARD,WAAY,WAAW;IACrB,qDAAY,CAAA;IACZ,yDAAc,CAAA;IACd,+DAAiB,CAAA;IACjB,iEAAkB,CAAA;IAClB,+DAAiB,CAAA;IACjB,qEAAoB,CAAA;IACpB,mDAAW,CAAA;AACb,CAAC,EARW,WAAW,KAAX,WAAW,QAQtB;AAED;;;GAGG;AACH,MAAM,CAAN,IAAY,aAIX;AAJD,WAAY,aAAa;IACvB,+CAAO,CAAA;IACP,iDAAQ,CAAA;IACR,iEAAgB,CAAA;AAClB,CAAC,EAJW,aAAa,KAAb,aAAa,QAIxB;AAED;;;;GAIG;AACH,MAAM,OAAO,SAAS;IAOpB;;;;;;;;;;;;;;;OAeG;IACH,YAAmC,SAAkB,EAAkB,QAAwB,EAAkB,SAAoB,EACnH,QAAiB,EAAkB,QAAgB,EAAkB,QAAqB,EAAkB,MAAc,EAAkB,YAAoB,EAChK,aAAsB,EAAkB,aAA6B,EAAkB,OAAgB,EAAE,MAAyB,EAAE,MAAe,EAAE,YAAsB;QAF1J,cAAS,GAAT,SAAS,CAAS;QAAkB,aAAQ,GAAR,QAAQ,CAAgB;QAAkB,cAAS,GAAT,SAAS,CAAW;QACnH,aAAQ,GAAR,QAAQ,CAAS;QAAkB,aAAQ,GAAR,QAAQ,CAAQ;QAAkB,aAAQ,GAAR,QAAQ,CAAa;QAAkB,WAAM,GAAN,MAAM,CAAQ;QAAkB,iBAAY,GAAZ,YAAY,CAAQ;QAChK,kBAAa,GAAb,aAAa,CAAS;QAAkB,kBAAa,GAAb,aAAa,CAAgB;QAAkB,YAAO,GAAP,OAAO,CAAS;QACvH,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,SAAS,KAAK,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC;IACxE,CAAC;IAED;;OAEG;IACI,UAAU,KAAoB,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;IAEhE;;OAEG;IACI,QAAQ,KAAc,OAAO,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IAEpD,+EAA+E;IACxE,SAAS,CAAC,QAAoB,IAAa,OAAO,CAAC,SAAS,KAAK,QAAQ,IAAI,IAAI,CAAC,QAAQ,KAAK,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC9J,yFAAyF;IACzF,IAAW,YAAY,KAAc,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;IACjH,mEAAmE;IACnE,IAAW,UAAU;QACnB,OAAO,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,QAAQ,CAAC;IACxC,CAAC;IACD,4CAA4C;IAC5C,IAAW,QAAQ,KAAc,OAAO,SAAS,KAAK,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAE5F,2CAA2C;IACpC,KAAK;QACV,MAAM,GAAG,GAAG,IAAI,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1P,OAAO,GAAG,CAAC;IACb,CAAC;IAED,gFAAgF;IACzE,IAAI,CAAC,QAAyB;QACnC,IAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;IAC1C,CAAC;IAED,kDAAkD;IAC3C,KAAK,CAAC,UAAU;QACrB,IAAI,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,sBAAsB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,WAAW,CAAC,oBAAoB,CAAC,IAAI,CAAC,CAAC;QAC/I,KAAK,MAAM,eAAe,IAAI,SAAS,CAAC,WAAW,CAAC,gBAAgB;YAClE,cAAc,GAAG,eAAe,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;QACxE,OAAO,cAAc,CAAC;IACxB,CAAC;IAED;;;OAGG;IACH,IAAW,MAAM,KAAuB,OAAO,SAAS,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAElH;;OAEG;IACH,IAAW,mBAAmB,KAAc,OAAO,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;CAC3F;AAED;;;;GAIG;AACH,MAAM,OAAO,UAAW,SAAQ,SAAS;IAgBvC;;;;;OAKG;IACH,YAAmB,IAAe,EAAS,WAAqB,QAAQ,CAAC,OAAO,EAAS,OAAiB,QAAQ,CAAC,IAAI,EAAE,SAAoB;QAC3I,KAAK,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAD5L,aAAQ,GAAR,QAAQ,CAA6B;QAAS,SAAI,GAAJ,IAAI,CAA0B;QAErH,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzE,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,WAAW,CAAC,gBAAgB,CAAC,UAAU,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpF,CAAC;IAED,mCAAmC;IACnB,UAAU,KAAoB,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,gFAAgF;IAChE,QAAQ,KAAc,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC9F,qGAAqG;IACrG,IAAW,KAAK,KAAc,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACnE,gLAAgL;IAChL,IAAW,eAAe,KAAc,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;IAClG,6BAA6B;IACtB,YAAY,CAAC,KAAc,EAAE,IAAc,IAAI,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC;IAE3I,mEAAmE;IAC5D,iBAAiB,CAAC,SAA0B,EAAE,YAAwB,EAAE,QAAsB;QACnG,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC;QAE1B,sFAAsF;QACtF,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;YAChC,IAAI,WAAW,CAAC,KAAK,KAAK,QAAQ,IAAI,WAAW,CAAC,OAAO,KAAK,QAAQ;gBACpE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;YAC3B,OAAO;SACR;QAED,IAAI,SAAS,KAAK,YAAY;YAC5B,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC,YAAY,CAAC,CAAC;QAEnD,IAAI,IAAI,CAAC,SAAS,YAAY,KAAK;YACjC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,GAAG,CAAC;aAC7B,IAAI,IAAI,CAAC,SAAS,YAAY,aAAa;YAC9C,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC;aACjC,IAAI,IAAI,CAAC,SAAS,YAAY,YAAY;YAC7C,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC;;YAEpC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,KAAK,CAAC;QAEpC,gDAAgD;QAChD,wDAAwD;QACxD,2EAA2E;QAC3E,IAAI,SAAS,KAAK,QAAQ,IAAI,WAAW,CAAC,IAAI,KAAK,QAAQ;YACzD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,CAAC;IAED,sCAAsC;IACtB,KAAK;QACnB,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3E,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC;QACzB,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC7B,GAAG,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACzC,GAAG,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9C,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS;YAC9B,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QACzC,IAAI,SAAS,KAAK,IAAI,CAAC,MAAM;YAC3B,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACnC,OAAO,GAAG,CAAC;IACb,CAAC;IAEM,iBAAiB,CAAC,gBAAyB,IAAI;QACpD,IAAI,CAAC,aAAa,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS;YAChD,OAAO,IAAI,CAAC,SAAS,CAAC;QAExB,IAAI,IAAI,CAAC,SAAS,YAAY,YAAY,EAAE;YAC1C,MAAM,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC;YAC1B,IAAI,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;gBACxB,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;gBACnD,MAAM,SAAS,GAAG,EAAE,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;gBACvC,MAAM,SAAS,GAAG,CAAC,GAAG,GAAG,SAAS,CAAC,CAAC;gBACpC,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAC;gBACrD,IAAI,SAAS,IAAI,SAAS;oBACxB,SAAS,GAAG,SAAS,GAAG,CAAC,CAAC;gBAC5B,OAAO,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC,CAAC;aAC7E;SACF;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;IACxB,CAAC;IAEe,IAAI,CAAC,OAAwB;QAC3C,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,EAAE;YAChC,IAAI,aAAa,GAAG,KAAK,CAAC;YAC1B,QAAQ,IAAI,CAAC,QAAQ,EAAE;gBACrB,KAAK,QAAQ,CAAC,MAAM,CAAC;gBACrB,KAAK,QAAQ,CAAC,MAAM,CAAC;gBACrB,KAAK,QAAQ,CAAC,QAAQ;oBACpB,MAAM,CAAC,wFAAwF;gBAEjG,OAAO,CAAC,CAAC;oBACP,aAAa,GAAG,IAAI,CAAC;oBACrB,MAAM;iBACP;aACF;YAED,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YAC7G,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACnF,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAE,CAAC,CAAC;YAEjE,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEtB,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YAEtB,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;YAC1C,OAAO;SACR;QACD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;IAEO,MAAM,CAAC,gBAAgB,CAAC,QAAkB;QAChD,QAAQ,QAAQ,EAAE;YAChB,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,yBAAyB,CAAC;YAC/E,KAAK,QAAQ,CAAC,eAAe,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,0BAA0B,CAAC;YACxF,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,0BAA0B,CAAC;YACjF,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,wBAAwB,CAAC;YAC7E,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,wBAAwB,CAAC;YAC7E,KAAK,QAAQ,CAAC,QAAQ,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,0BAA0B,CAAC;YACjF,KAAK,QAAQ,CAAC,YAAY,CAAC,CAAC,OAAO,GAAG,SAAS,CAAC,UAAU,8BAA8B,CAAC;SAC1F;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAED;;;GAGG;AACH,MAAM,OAAO,eAAgB,SAAQ,UAAU;IAC7C,YAAmB,IAAgB,EAAE,OAAiB,QAAQ,CAAC,IAAI,EAAE,SAAmB,EAAkB,cAA8B,EAAkB,OAAe;QACvK,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,YAAY,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;QADoD,mBAAc,GAAd,cAAc,CAAgB;QAAkB,YAAO,GAAP,OAAO,CAAQ;QAEvK,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,4EAA4E;IACzG,CAAC;IAEe,IAAI,CAAC,OAAwB;QAC3C,IAAI,SAAS,KAAK,IAAI,CAAC,SAAS,IAAI,SAAS,KAAK,IAAI,CAAC,cAAc,EAAE;YACrE,MAAM,OAAO,GAAG,OAAO,CAAC,oBAAoB,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACvE,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;YAC7G,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;YACnF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;YAE/C,OAAO,CAAC,YAAY,CAAC,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;YAC1C,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACvB,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEvB,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;YAChD,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACvB,OAAO,CAAC,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,CAAC,EAAE,UAAU,CAAC,KAAK,CAAC,CAAC;YAClE,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YAEvB,OAAO,CAAC,wBAAwB,CAAC,OAAO,CAAC,CAAC;YAC1C,OAAO;SACR;QACD,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,OAAO,OAAO;IAApB;QACS,SAAI,GAAQ,EAAE,CAAC;QACf,YAAO,GAAG,CAAC,CAAC,CAAC;IA0ItB,CAAC;IAzIC,IAAW,MAAM,KAAa,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IACjD,KAAK,KAAW,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,eAAe,KAAW,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAErD;;OAEG;IACI,MAAM,CAAC,MAAc;QAC1B,IAAI,MAAM,GAAG,CAAC;YAAE,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QACzC,OAAO,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACjE,CAAC;IAED,uFAAuF;IAChF,MAAM,CAAC,CAAS,EAAE,CAAgB;QACvC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;YAC3B,OAAO;QACT,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAE,CAAC;IACpB,CAAC;IAEM,SAAS;QACd,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,EAAE,CAAC;QACf,KAAK,MAAM,GAAG,IAAI,IAAI;YACpB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC;IAEM,UAAU,KAAoB,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,OAAO,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC,CAAC;IAC5E,aAAa,KAAoB,OAAO,CAAC,CAAC,KAAK,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAEtG,aAAa,CAAC,GAAM;QACzB,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,KAAK,IAAI,OAAO,EAAE,SAAS,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,GAAG;YAC9D,IAAI,OAAO,KAAK,GAAG;gBACjB,OAAO;SACV;IACH,CAAC;IAED,4CAA4C;IACrC,gBAAgB,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAE3D,gCAAgC;IACzB,SAAS,CAAC,MAAc;QAC7B,IAAI,MAAM,GAAG,CAAC,EAAoB,oBAAoB;YACpD,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;QAE3B,IAAI,MAAM,IAAI,IAAI,CAAC,OAAO;YACxB,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC;QAEpB,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,EAAS,wGAAwG;YACxI,OAAO,CAAyB,qGAAqG;QAEvI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IAC9B,CAAC;IAED,mFAAmF;IAC5E,cAAc,CAAC,QAAgB;QACpC,IAAI,UAAU,GAAG,KAAK,CAAC;QAEvB,qFAAqF;QACrF,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;YACzC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC7B,IAAI,OAAO,IAAI,QAAQ,KAAK,OAAO,CAAC,QAAQ,EAAE;gBAC5C,UAAU,GAAG,IAAI,CAAC;gBAClB,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;aACnB;SACF;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAEO,oBAAoB,CAAC,QAAqB;QAChD,QAAQ,QAAQ,EAAE;YAChB,KAAK,WAAW,CAAC,QAAQ,CAAC;YAC1B,KAAK,WAAW,CAAC,UAAU,CAAC;YAC5B,KAAK,WAAW,CAAC,aAAa;gBAC5B,OAAO,CAAC,CAAC;YACX,KAAK,WAAW,CAAC,cAAc;gBAC7B,OAAO,CAAC,CAAC;YACX,KAAK,WAAW,CAAC,aAAa,CAAC;YAC/B,KAAK,WAAW,CAAC,gBAAgB;gBAC/B,OAAO,CAAC,CAAC;YACX;gBACE,OAAO,CAAC,CAAC;SACZ;IACH,CAAC;IAED,gDAAgD;IACzC,OAAO,CAAC,IAA2B,EAAE,IAA2B;QACrE,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;YAChB,OAAO,CAAC,CAAC;QAEX,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC5D,MAAM,UAAU,GAAG,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAE5D,uGAAuG;QACvG,IAAI,UAAU,GAAG,UAAU;YAAE,OAAO,CAAC,CAAC,CAAC;QACvC,IAAI,UAAU,GAAG,UAAU;YAAE,OAAO,CAAC,CAAC;QAEtC,uEAAuE;QACvE,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM;YAAE,OAAO,CAAC,CAAC;QAExC,0DAA0D;QAC1D,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;YAAE,OAAO,CAAC,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY;YAAE,OAAO,CAAC,CAAC;QAEpD,8FAA8F;QAC9F,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,CAAC,CAAC;QAC7C,IAAI,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ;YAAE,OAAO,CAAC,CAAC;QAE5C,OAAO,CAAC,CAAC;IACX,CAAC;IAED,2FAA2F;IACpF,MAAM,CAAC,MAAS;QACrB,IAAI,CAAC,KAAK,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YAC1B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACvB,OAAO,CAAC,CAAC;SACV;QACD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,OAAO,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE;YACxC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YAChC,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAChD,IAAI,UAAU,GAAG,CAAC;gBAChB,MAAM;SACT;QAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,CAAC;QACnC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4DAA4D;IACrD,SAAS,CAAC,CAAS,EAAE,GAAM;QAChC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM;YAC3B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;;YAEpB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAC;IAChC,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module LocatingElements\r\n */\r\nimport { Id64 } from \"@itwin/core-bentley\";\r\nimport { Arc3d, CurvePrimitive, LineSegment3d, LineString3d, Path, Point3d, Transform, Vector3d, XYZProps } from \"@itwin/core-geometry\";\r\nimport { GeometryClass, LinePixels } from \"@itwin/core-common\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\nimport { GraphicType } from \"./render/GraphicBuilder\";\r\nimport { IconSprites, Sprite } from \"./Sprites\";\r\nimport { DecorateContext } from \"./ViewContext\";\r\nimport { ScreenViewport } from \"./Viewport\";\r\n\r\n/**\r\n * @public\r\n * @extensions\r\n */\r\nexport enum SnapMode {\r\n Nearest = 1,\r\n NearestKeypoint = 1 << 1,\r\n MidPoint = 1 << 2,\r\n Center = 1 << 3,\r\n Origin = 1 << 4,\r\n Bisector = 1 << 5,\r\n Intersection = 1 << 6,\r\n}\r\n\r\n/**\r\n * @public\r\n * @extensions\r\n */\r\nexport enum SnapHeat {\r\n None = 0,\r\n NotInRange = 1, // \"of interest\", but out of range\r\n InRange = 2,\r\n}\r\n\r\n/** The procedure that generated this Hit.\r\n * @public\r\n * @extensions\r\n */\r\nexport enum HitSource {\r\n None = 0,\r\n FromUser = 1,\r\n MotionLocate = 2,\r\n AccuSnap = 3,\r\n TentativeSnap = 4,\r\n DataPoint = 5,\r\n Application = 6,\r\n EditAction = 7,\r\n EditActionSS = 8,\r\n}\r\n\r\n/** What was being tested to generate this hit. This is not the element or\r\n * GeometricPrimitive that generated the Hit, it is an indication of whether it is an edge or interior hit.\r\n * @public\r\n * @extensions\r\n */\r\nexport enum HitGeomType {\r\n None = 0,\r\n Point = 1,\r\n Segment = 2,\r\n Curve = 3,\r\n Arc = 4,\r\n Surface = 5,\r\n}\r\n\r\n/** Classification of GeometricPrimitive that generated the Hit.\r\n * @public\r\n * @extensions\r\n */\r\nexport enum HitParentGeomType {\r\n None = 0,\r\n Wire = 1,\r\n Sheet = 2,\r\n Solid = 3,\r\n Mesh = 4,\r\n Text = 5,\r\n}\r\n\r\n/**\r\n * @public\r\n * @extensions\r\n */\r\nexport enum HitPriority {\r\n WireEdge = 0,\r\n PlanarEdge = 1,\r\n NonPlanarEdge = 2,\r\n SilhouetteEdge = 3,\r\n PlanarSurface = 4,\r\n NonPlanarSurface = 5,\r\n Unknown = 6,\r\n}\r\n\r\n/**\r\n * @public\r\n * @extensions\r\n */\r\nexport enum HitDetailType {\r\n Hit = 1,\r\n Snap = 2,\r\n Intersection = 3,\r\n}\r\n\r\n/** A HitDetail stores the result when locating geometry displayed in a view.\r\n * It holds an approximate location on an element (or decoration) from a *pick*.\r\n * @public\r\n * @extensions\r\n */\r\nexport class HitDetail {\r\n private readonly _iModel?: IModelConnection;\r\n /** @internal chiefly for debugging. */\r\n public readonly tileId?: string;\r\n /** @alpha */\r\n public readonly isClassifier: boolean;\r\n\r\n /** Create a new HitDetail from the inputs to and results of a locate operation.\r\n * @param testPoint The world coordinate space point that was used as the locate point.\r\n * @param viewport The view the locate operation was performed in.\r\n * @param hitSource The procedure that requested the locate operation.\r\n * @param hitPoint The approximate world coordinate location on the geometry identified by this HitDetail.\r\n * @param sourceId The source of the geometry, either a persistent element id or pickable decoration id.\r\n * @param priority The hit geometry priority/classification.\r\n * @param distXY The xy distance to hit in view coordinates.\r\n * @param distFraction The near plane distance fraction to hit.\r\n * @param subCategoryId The SubCategory for a persistent element hit.\r\n * @param geometryClass The GeometryClass for a persistent element hit.\r\n * @param iModel The IModelConnection from which the hit originated. This should almost always be left undefined, unless the hit is known to have originated from an iModel other than the one associated with the viewport.\r\n * @param modelId Optionally the Id of the [[ModelState]] from which the hit originated.\r\n * @param tileId Optionally the Id of the Tile from which the hit originated.\r\n * @param isClassifier Optionally whether the hit originated from a reality model classification.\r\n */\r\n public constructor(public readonly testPoint: Point3d, public readonly viewport: ScreenViewport, public readonly hitSource: HitSource,\r\n public readonly hitPoint: Point3d, public readonly sourceId: string, public readonly priority: HitPriority, public readonly distXY: number, public readonly distFraction: number,\r\n public readonly subCategoryId?: string, public readonly geometryClass?: GeometryClass, public readonly modelId?: string, iModel?: IModelConnection, tileId?: string, isClassifier?: boolean) {\r\n this._iModel = iModel;\r\n this.tileId = tileId;\r\n this.isClassifier = undefined !== isClassifier ? isClassifier : false;\r\n }\r\n\r\n /** Get the type of HitDetail.\r\n * @returns HitDetailType.Hit if this is a HitDetail, HitDetailType.Snap if it is a SnapDetail\r\n */\r\n public getHitType(): HitDetailType { return HitDetailType.Hit; }\r\n\r\n /** Get the *hit point* for this HitDetail. Returns the approximate point on the element that caused the hit when not a SnapDetail or IntersectDetail.\r\n * For a snap that is *hot*, the *exact* point on the Element for the snap mode is returned, otherwise the close point on the hit geometry is returned.\r\n */\r\n public getPoint(): Point3d { return this.hitPoint; }\r\n\r\n /** Determine if this HitPoint is from the same source as another HitDetail. */\r\n public isSameHit(otherHit?: HitDetail): boolean { return (undefined !== otherHit && this.sourceId === otherHit.sourceId && this.iModel === otherHit.iModel); }\r\n /** Return whether sourceId is for a persistent element and not a pickable decoration. */\r\n public get isElementHit(): boolean { return !Id64.isInvalid(this.sourceId) && !Id64.isTransient(this.sourceId); }\r\n // return whether the sourceId is for a model (reality models etc.)\r\n public get isModelHit(): boolean {\r\n return this.modelId === this.sourceId;\r\n }\r\n // return whether the hit point is from map.\r\n public get isMapHit(): boolean { return undefined !== this.viewport.mapLayerFromHit(this); }\r\n\r\n /** Create a deep copy of this HitDetail */\r\n public clone(): HitDetail {\r\n const val = new HitDetail(this.testPoint, this.viewport, this.hitSource, this.hitPoint, this.sourceId, this.priority, this.distXY, this.distFraction, this.subCategoryId, this.geometryClass, this.modelId, this._iModel, this.tileId, this.isClassifier);\r\n return val;\r\n }\r\n\r\n /** Draw this HitDetail as a Decoration. Causes the picked element to *flash* */\r\n public draw(_context: DecorateContext) {\r\n this.viewport.flashedId = this.sourceId;\r\n }\r\n\r\n /** Get the tooltip content for this HitDetail. */\r\n public async getToolTip(): Promise<HTMLElement | string> {\r\n let toolTipPromise = this.isElementHit ? IModelApp.viewManager.overrideElementToolTip(this) : IModelApp.viewManager.getDecorationToolTip(this);\r\n for (const toolTipProvider of IModelApp.viewManager.toolTipProviders)\r\n toolTipPromise = toolTipProvider.augmentToolTip(this, toolTipPromise);\r\n return toolTipPromise;\r\n }\r\n\r\n /** The IModelConnection from which the hit originated. In some cases this may not be the same as the iModel associated with the Viewport -\r\n * for example, if a [[TiledGraphicsProvider]] is used to display graphics from a different iModel in the viewport.\r\n * This HitDetail's element, subcategory, and model Ids are defined in the context of this IModelConnection.\r\n */\r\n public get iModel(): IModelConnection { return undefined !== this._iModel ? this._iModel : this.viewport.iModel; }\r\n\r\n /** Returns true if this hit originated from an [[IModelConnection]] other than the one associated with the [[Viewport]].\r\n * @see [[iModel]].\r\n */\r\n public get isExternalIModelHit(): boolean { return this.iModel !== this.viewport.iModel; }\r\n}\r\n\r\n/** A SnapDetail is generated from the result of a snap request. In addition to the HitDetail about the reason the element was *picked*,\r\n * it holds the *exact* point on the element from the snapping logic, plus additional information that varies with the type of element and snap mode.\r\n * @public\r\n * @extensions\r\n */\r\nexport class SnapDetail extends HitDetail {\r\n /** A sprite to show the user the type of snap performed */\r\n public sprite?: Sprite;\r\n /** HitPoint adjusted by snap */\r\n public readonly snapPoint: Point3d;\r\n /** AccuSnap/AccuDraw can adjust the point after the snap. */\r\n public readonly adjustedPoint: Point3d;\r\n /** Curve primitive for snap. */\r\n public primitive?: CurvePrimitive;\r\n /** Surface normal at snapPoint */\r\n public normal?: Vector3d;\r\n /** The HitGeomType of this SnapDetail */\r\n public geomType?: HitGeomType;\r\n /** The HitGeomType of this SnapDetail */\r\n public parentGeomType?: HitParentGeomType;\r\n\r\n /** Constructor for SnapDetail.\r\n * @param from The HitDetail that created this snap\r\n * @param snapMode The SnapMode used to create this SnapDetail\r\n * @param heat The SnapHeat of this SnapDetail\r\n * @param snapPoint The snapped point in the element\r\n */\r\n public constructor(from: HitDetail, public snapMode: SnapMode = SnapMode.Nearest, public heat: SnapHeat = SnapHeat.None, snapPoint?: XYZProps) {\r\n super(from.testPoint, from.viewport, from.hitSource, from.hitPoint, from.sourceId, from.priority, from.distXY, from.distFraction, from.subCategoryId, from.geometryClass, from.modelId, from.iModel, from.tileId, from.isClassifier);\r\n this.snapPoint = Point3d.fromJSON(snapPoint ? snapPoint : from.hitPoint);\r\n this.adjustedPoint = this.snapPoint.clone();\r\n this.sprite = IconSprites.getSpriteFromUrl(SnapDetail.getSnapSpriteUrl(snapMode));\r\n }\r\n\r\n /** Returns `HitDetailType.Snap` */\r\n public override getHitType(): HitDetailType { return HitDetailType.Snap; }\r\n /** Get the snap point if this SnapDetail is *hot*, the pick point otherwise. */\r\n public override getPoint(): Point3d { return this.isHot ? this.snapPoint : super.getPoint(); }\r\n /** Return true if the pick point was closer than the snap aperture from the generated snap point. */\r\n public get isHot(): boolean { return this.heat !== SnapHeat.None; }\r\n /** Determine whether the [[adjustedPoint]] is different than the [[snapPoint]]. This happens, for example, when points are adjusted for grids, acs plane snap, and AccuDraw. */\r\n public get isPointAdjusted(): boolean { return !this.adjustedPoint.isExactEqual(this.snapPoint); }\r\n /** Change the snap point. */\r\n public setSnapPoint(point: Point3d, heat: SnapHeat) { this.snapPoint.setFrom(point); this.adjustedPoint.setFrom(point); this.heat = heat; }\r\n\r\n /** Set curve primitive and HitGeometryType for this SnapDetail. */\r\n public setCurvePrimitive(primitive?: CurvePrimitive, localToWorld?: Transform, geomType?: HitGeomType): void {\r\n this.primitive = primitive;\r\n this.geomType = undefined;\r\n\r\n // Only HitGeomType.Point and HitGeomType.Surface are valid without a curve primitive.\r\n if (undefined === this.primitive) {\r\n if (HitGeomType.Point === geomType || HitGeomType.Surface === geomType)\r\n this.geomType = geomType;\r\n return;\r\n }\r\n\r\n if (undefined !== localToWorld)\r\n this.primitive.tryTransformInPlace(localToWorld);\r\n\r\n if (this.primitive instanceof Arc3d)\r\n this.geomType = HitGeomType.Arc;\r\n else if (this.primitive instanceof LineSegment3d)\r\n this.geomType = HitGeomType.Segment;\r\n else if (this.primitive instanceof LineString3d)\r\n this.geomType = HitGeomType.Segment;\r\n else\r\n this.geomType = HitGeomType.Curve;\r\n\r\n // Set curve primitive geometry type override...\r\n // - HitGeomType.Point with arc/ellipse denotes center.\r\n // - HitGeomType.Surface with any curve primitive denotes an interior hit.\r\n if (undefined !== geomType && HitGeomType.None !== geomType)\r\n this.geomType = geomType;\r\n }\r\n\r\n /** Make a copy of this SnapDetail. */\r\n public override clone(): SnapDetail {\r\n const val = new SnapDetail(this, this.snapMode, this.heat, this.snapPoint);\r\n val.sprite = this.sprite;\r\n val.geomType = this.geomType;\r\n val.parentGeomType = this.parentGeomType;\r\n val.adjustedPoint.setFrom(this.adjustedPoint);\r\n if (undefined !== this.primitive)\r\n val.primitive = this.primitive.clone();\r\n if (undefined !== this.normal)\r\n val.normal = this.normal.clone();\r\n return val;\r\n }\r\n\r\n public getCurvePrimitive(singleSegment: boolean = true): CurvePrimitive | undefined {\r\n if (!singleSegment || undefined === this.primitive)\r\n return this.primitive;\r\n\r\n if (this.primitive instanceof LineString3d) {\r\n const ls = this.primitive;\r\n if (ls.points.length > 2) {\r\n const loc = ls.closestPoint(this.snapPoint, false);\r\n const nSegments = ls.points.length - 1;\r\n const uSegRange = (1.0 / nSegments);\r\n let segmentNo = Math.floor(loc.fraction / uSegRange);\r\n if (segmentNo >= nSegments)\r\n segmentNo = nSegments - 1;\r\n return LineSegment3d.create(ls.points[segmentNo], ls.points[segmentNo + 1]);\r\n }\r\n }\r\n\r\n return this.primitive;\r\n }\r\n\r\n public override draw(context: DecorateContext) {\r\n if (undefined !== this.primitive) {\r\n let singleSegment = false;\r\n switch (this.snapMode) {\r\n case SnapMode.Center:\r\n case SnapMode.Origin:\r\n case SnapMode.Bisector:\r\n break; // Snap point for these is computed using entire linestring, not just the hit segment...\r\n\r\n default: {\r\n singleSegment = true;\r\n break;\r\n }\r\n }\r\n\r\n const builder = context.createGraphicBuilder(GraphicType.WorldOverlay);\r\n const outline = context.viewport.hilite.color.adjustedForContrast(context.viewport.view.backgroundColor, 50);\r\n const centerLine = context.viewport.hilite.color.adjustedForContrast(outline, 175);\r\n const path = Path.create(this.getCurvePrimitive(singleSegment)!);\r\n\r\n builder.setSymbology(outline, outline, 6);\r\n builder.addPath(path);\r\n\r\n builder.setSymbology(centerLine, centerLine, 2);\r\n builder.addPath(path);\r\n\r\n context.addDecorationFromBuilder(builder);\r\n return;\r\n }\r\n super.draw(context);\r\n }\r\n\r\n private static getSnapSpriteUrl(snapType: SnapMode): string {\r\n switch (snapType) {\r\n case SnapMode.Nearest: return `${IModelApp.publicPath}sprites/SnapPointOn.png`;\r\n case SnapMode.NearestKeypoint: return `${IModelApp.publicPath}sprites/SnapKeypoint.png`;\r\n case SnapMode.MidPoint: return `${IModelApp.publicPath}sprites/SnapMidpoint.png`;\r\n case SnapMode.Center: return `${IModelApp.publicPath}sprites/SnapCenter.png`;\r\n case SnapMode.Origin: return `${IModelApp.publicPath}sprites/SnapOrigin.png`;\r\n case SnapMode.Bisector: return `${IModelApp.publicPath}sprites/SnapBisector.png`;\r\n case SnapMode.Intersection: return `${IModelApp.publicPath}sprites/SnapIntersection.png`;\r\n }\r\n return \"\";\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n * @extensions\r\n */\r\nexport class IntersectDetail extends SnapDetail {\r\n public constructor(from: SnapDetail, heat: SnapHeat = SnapHeat.None, snapPoint: XYZProps, public readonly otherPrimitive: CurvePrimitive, public readonly otherId: string) {\r\n super(from, SnapMode.Intersection, heat, snapPoint);\r\n this.primitive = from.primitive;\r\n this.normal = from.normal; // Preserve normal from primary snap location for AccuDraw smart rotation...\r\n }\r\n\r\n public override draw(context: DecorateContext) {\r\n if (undefined !== this.primitive && undefined !== this.otherPrimitive) {\r\n const builder = context.createGraphicBuilder(GraphicType.WorldOverlay);\r\n const outline = context.viewport.hilite.color.adjustedForContrast(context.viewport.view.backgroundColor, 50);\r\n const centerLine = context.viewport.hilite.color.adjustedForContrast(outline, 175);\r\n const path1 = Path.create(this.primitive);\r\n const path2 = Path.create(this.otherPrimitive);\r\n\r\n builder.setSymbology(outline, outline, 6);\r\n builder.addPath(path1);\r\n builder.addPath(path2);\r\n\r\n builder.setSymbology(centerLine, centerLine, 2);\r\n builder.addPath(path1);\r\n builder.setSymbology(centerLine, centerLine, 2, LinePixels.Code2);\r\n builder.addPath(path2);\r\n\r\n context.addDecorationFromBuilder(builder);\r\n return;\r\n }\r\n super.draw(context);\r\n }\r\n}\r\n\r\n/** The result of a \"locate\" is a sorted list of objects that satisfied the search criteria (a HitList). Earlier hits in the list\r\n * are somehow *better* than those later on.\r\n * @public\r\n * @extensions\r\n */\r\nexport class HitList<T extends HitDetail> {\r\n public hits: T[] = [];\r\n public currHit = -1;\r\n public get length(): number { return this.hits.length; }\r\n public empty(): void { this.hits.length = 0; this.currHit = -1; }\r\n public resetCurrentHit(): void { this.currHit = -1; }\r\n\r\n /** Get a hit from a particular index into a HitList\r\n * return the requested hit from the HitList or undefined\r\n */\r\n public getHit(hitNum: number): T | undefined {\r\n if (hitNum < 0) hitNum = this.length - 1;\r\n return (hitNum >= this.length) ? undefined : this.hits[hitNum];\r\n }\r\n\r\n /** When setting one or more indices to undefined you must call dropNulls afterwards */\r\n public setHit(i: number, p: T | undefined): void {\r\n if (i < 0 || i >= this.length)\r\n return;\r\n this.hits[i] = p!;\r\n }\r\n\r\n public dropNulls(): void {\r\n const hits = this.hits;\r\n this.hits = [];\r\n for (const hit of hits)\r\n this.hits.push(hit);\r\n }\r\n\r\n public getNextHit(): T | undefined { this.currHit++; return this.getCurrentHit(); }\r\n public getCurrentHit(): T | undefined { return -1 === this.currHit ? undefined : this.getHit(this.currHit); }\r\n\r\n public setCurrentHit(hit: T): void {\r\n this.resetCurrentHit();\r\n for (let thisHit; undefined !== (thisHit = this.getNextHit());) {\r\n if (thisHit === hit)\r\n return;\r\n }\r\n }\r\n\r\n /** remove the current hit from the list. */\r\n public removeCurrentHit() { this.removeHit(this.currHit); }\r\n\r\n /** remove a hit in the list. */\r\n public removeHit(hitNum: number) {\r\n if (hitNum < 0) // Support -1 == END\r\n hitNum = this.length - 1;\r\n\r\n if (hitNum <= this.currHit)\r\n this.currHit = -1;\r\n\r\n if (hitNum >= this.length) // Locate calls GetNextHit, which increments currHit, until it goes beyond the end of size of the array.\r\n return; // Then Reset call RemoteCurrentHit, which passes in currHit. When it is out of range, we do nothing.\r\n\r\n this.hits.splice(hitNum, 1);\r\n }\r\n\r\n /** search through list and remove any hits that contain a specified element id. */\r\n public removeHitsFrom(sourceId: string): boolean {\r\n let removedOne = false;\r\n\r\n // walk backwards through list so we don't have to worry about what happens on remove\r\n for (let i = this.length - 1; i >= 0; i--) {\r\n const thisHit = this.hits[i];\r\n if (thisHit && sourceId === thisHit.sourceId) {\r\n removedOne = true;\r\n this.removeHit(i);\r\n }\r\n }\r\n return removedOne;\r\n }\r\n\r\n private getPriorityZOverride(priority: HitPriority): number {\r\n switch (priority) {\r\n case HitPriority.WireEdge:\r\n case HitPriority.PlanarEdge:\r\n case HitPriority.NonPlanarEdge:\r\n return 0;\r\n case HitPriority.SilhouetteEdge:\r\n return 1;\r\n case HitPriority.PlanarSurface:\r\n case HitPriority.NonPlanarSurface:\r\n return 2;\r\n default:\r\n return 3;\r\n }\r\n }\r\n\r\n /** compare two hits for insertion into list. */\r\n public compare(hit1: HitDetail | undefined, hit2: HitDetail | undefined): -1 | 1 | 0 {\r\n if (!hit1 || !hit2)\r\n return 0;\r\n\r\n const zOverride1 = this.getPriorityZOverride(hit1.priority);\r\n const zOverride2 = this.getPriorityZOverride(hit2.priority);\r\n\r\n // Prefer edges over surfaces, this is more important than z because we know the edge isn't obscured...\r\n if (zOverride1 < zOverride2) return -1;\r\n if (zOverride1 > zOverride2) return 1;\r\n\r\n // Compare xy distance from pick point, prefer hits closer to center...\r\n if (hit1.distXY < hit2.distXY) return -1;\r\n if (hit1.distXY > hit2.distXY) return 1;\r\n\r\n // Compare distance fraction, prefer hits closer to eye...\r\n if (hit1.distFraction > hit2.distFraction) return -1;\r\n if (hit1.distFraction < hit2.distFraction) return 1;\r\n\r\n // Compare geometry class, prefer path/region hits over surface hits when all else is equal...\r\n if (hit1.priority < hit2.priority) return -1;\r\n if (hit1.priority > hit2.priority) return 1;\r\n\r\n return 0;\r\n }\r\n\r\n /** Add a new hit to the list. Hits are sorted according to their priority and distance. */\r\n public addHit(newHit: T): number {\r\n if (0 === this.hits.length) {\r\n this.hits.push(newHit);\r\n return 0;\r\n }\r\n let index = 0;\r\n for (; index < this.hits.length; ++index) {\r\n const oldHit = this.hits[index];\r\n const comparison = this.compare(newHit, oldHit);\r\n if (comparison < 0)\r\n break;\r\n }\r\n\r\n this.hits.splice(index, 0, newHit);\r\n return index;\r\n }\r\n\r\n /** Insert a new hit into the list at the supplied index. */\r\n public insertHit(i: number, hit: T): void {\r\n if (i < 0 || i >= this.length)\r\n this.hits.push(hit);\r\n else\r\n this.hits.splice(i, 0, hit);\r\n }\r\n}\r\n"]}
@@ -25,6 +25,7 @@ import { UserPreferencesAccess } from "./UserPreferences";
25
25
  import { ViewManager } from "./ViewManager";
26
26
  /** Options that can be supplied with [[IModelAppOptions]] to customize frontend security.
27
27
  * @public
28
+ * @extensions
28
29
  */
29
30
  export interface FrontendSecurityOptions {
30
31
  /** Configures protection from Cross Site Request Forgery attacks. */
@@ -339,5 +340,11 @@ export declare class IModelApp {
339
340
  * @beta
340
341
  */
341
342
  static translateStatus(status: number): string;
343
+ /**
344
+ * Creates an instance of the ExtensionAdmin
345
+ * and registers an event to execute after startup is complete
346
+ * @returns an instance of ExtensionAdmin
347
+ */
348
+ private static _createExtensionAdmin;
342
349
  }
343
350
  //# sourceMappingURL=IModelApp.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IModelApp.d.ts","sourceRoot":"","sources":["../../src/IModelApp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IModelApp.d.ts","sourceRoot":"","sources":["../../src/IModelApp.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  /** @packageDocumentation
6
6
  * @module IModelApp
7
7
  */
8
+ var _a;
8
9
  /** @public */
9
10
  // eslint-disable-next-line @typescript-eslint/no-var-requires
10
11
  export const ITWINJS_CORE_VERSION = require("../../package.json").version; // require resolves from the lib/{cjs,esm} dir
@@ -159,23 +160,23 @@ export class IModelApp {
159
160
  * @param opts The options for configuring IModelApp
160
161
  */
161
162
  static async startup(opts) {
162
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
163
+ var _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
163
164
  if (this._initialized)
164
165
  return; // we're already initialized, do nothing.
165
166
  this._initialized = true;
166
167
  opts = opts !== null && opts !== void 0 ? opts : {};
167
- this._securityOptions = (_a = opts.security) !== null && _a !== void 0 ? _a : {};
168
+ this._securityOptions = (_b = opts.security) !== null && _b !== void 0 ? _b : {};
168
169
  if (process.env.NODE_ENV === "development") {
169
170
  // Make IModelApp globally accessible for debugging purposes. We'll remove it on shutdown.
170
171
  window.iModelAppForDebugger = this;
171
172
  }
172
- this.sessionId = (_b = opts.sessionId) !== null && _b !== void 0 ? _b : Guid.createValue();
173
- this._applicationId = (_c = opts.applicationId) !== null && _c !== void 0 ? _c : "2686"; // Default to product id of iTwin.js
174
- this._applicationVersion = (_d = opts.applicationVersion) !== null && _d !== void 0 ? _d : "1.0.0";
173
+ this.sessionId = (_c = opts.sessionId) !== null && _c !== void 0 ? _c : Guid.createValue();
174
+ this._applicationId = (_d = opts.applicationId) !== null && _d !== void 0 ? _d : "2686"; // Default to product id of iTwin.js
175
+ this._applicationVersion = (_e = opts.applicationVersion) !== null && _e !== void 0 ? _e : "1.0.0";
175
176
  this.authorizationClient = opts.authorizationClient;
176
177
  this._hubAccess = opts.hubAccess;
177
178
  this._setupRpcRequestContext();
178
- this._localization = (_e = opts.localization) !== null && _e !== void 0 ? _e : new ITwinLocalization();
179
+ this._localization = (_f = opts.localization) !== null && _f !== void 0 ? _f : new ITwinLocalization();
179
180
  const toolsNs = "CoreTools";
180
181
  await this.localization.initialize(["iModelJs", toolsNs]);
181
182
  [
@@ -201,19 +202,19 @@ export class IModelApp {
201
202
  this._renderSystem = (opts.renderSys instanceof RenderSystem) ? opts.renderSys : this.createRenderSys(opts.renderSys);
202
203
  if (opts.userPreferences)
203
204
  this._userPreferences = opts.userPreferences;
204
- this._viewManager = (_f = opts.viewManager) !== null && _f !== void 0 ? _f : new ViewManager();
205
+ this._viewManager = (_g = opts.viewManager) !== null && _g !== void 0 ? _g : new ViewManager();
205
206
  this._tileAdmin = await TileAdmin.create(opts.tileAdmin);
206
- this._notifications = (_g = opts.notifications) !== null && _g !== void 0 ? _g : new NotificationManager();
207
- this._toolAdmin = (_h = opts.toolAdmin) !== null && _h !== void 0 ? _h : new ToolAdmin();
208
- this._accuDraw = (_j = opts.accuDraw) !== null && _j !== void 0 ? _j : new AccuDraw();
209
- this._accuSnap = (_k = opts.accuSnap) !== null && _k !== void 0 ? _k : new AccuSnap();
210
- this._locateManager = (_l = opts.locateManager) !== null && _l !== void 0 ? _l : new ElementLocateManager();
211
- this._tentativePoint = (_m = opts.tentativePoint) !== null && _m !== void 0 ? _m : new TentativePoint();
212
- this._quantityFormatter = (_o = opts.quantityFormatter) !== null && _o !== void 0 ? _o : new QuantityFormatter();
213
- this._uiAdmin = (_p = opts.uiAdmin) !== null && _p !== void 0 ? _p : new UiAdmin();
207
+ this._notifications = (_h = opts.notifications) !== null && _h !== void 0 ? _h : new NotificationManager();
208
+ this._toolAdmin = (_j = opts.toolAdmin) !== null && _j !== void 0 ? _j : new ToolAdmin();
209
+ this._accuDraw = (_k = opts.accuDraw) !== null && _k !== void 0 ? _k : new AccuDraw();
210
+ this._accuSnap = (_l = opts.accuSnap) !== null && _l !== void 0 ? _l : new AccuSnap();
211
+ this._locateManager = (_m = opts.locateManager) !== null && _m !== void 0 ? _m : new ElementLocateManager();
212
+ this._tentativePoint = (_o = opts.tentativePoint) !== null && _o !== void 0 ? _o : new TentativePoint();
213
+ this._quantityFormatter = (_p = opts.quantityFormatter) !== null && _p !== void 0 ? _p : new QuantityFormatter();
214
+ this._uiAdmin = (_q = opts.uiAdmin) !== null && _q !== void 0 ? _q : new UiAdmin();
214
215
  this._mapLayerFormatRegistry = new MapLayerFormatRegistry(opts.mapLayerOptions);
215
216
  this._realityDataAccess = opts.realityDataAccess;
216
- this._publicPath = (_q = opts.publicPath) !== null && _q !== void 0 ? _q : "";
217
+ this._publicPath = (_r = opts.publicPath) !== null && _r !== void 0 ? _r : "";
217
218
  [
218
219
  this.renderSystem,
219
220
  this.viewManager,
@@ -323,9 +324,9 @@ export class IModelApp {
323
324
  * returned by this method may change over time throughout the course of a session.
324
325
  */
325
326
  static async getAccessToken() {
326
- var _a, _b;
327
+ var _b, _c;
327
328
  try {
328
- return (_b = (await ((_a = this.authorizationClient) === null || _a === void 0 ? void 0 : _a.getAccessToken()))) !== null && _b !== void 0 ? _b : "";
329
+ return (_c = (await ((_b = this.authorizationClient) === null || _b === void 0 ? void 0 : _b.getAccessToken()))) !== null && _c !== void 0 ? _c : "";
329
330
  }
330
331
  catch (e) {
331
332
  return "";
@@ -462,7 +463,7 @@ export class IModelApp {
462
463
  */
463
464
  static formatElementToolTip(msg) {
464
465
  let out = "";
465
- msg.forEach((line) => { var _a; return out += `${(_a = IModelApp.localization) === null || _a === void 0 ? void 0 : _a.getLocalizedKeys(line)}<br>`; });
466
+ msg.forEach((line) => { var _b; return out += `${(_b = IModelApp.localization) === null || _b === void 0 ? void 0 : _b.getLocalizedKeys(line)}<br>`; });
466
467
  const div = document.createElement("div");
467
468
  div.innerHTML = out;
468
469
  return div;
@@ -488,7 +489,18 @@ export class IModelApp {
488
489
  }
489
490
  return this.localization.getLocalizedString(`iModelJs:${key.scope}.${key.val}`, key);
490
491
  }
492
+ /**
493
+ * Creates an instance of the ExtensionAdmin
494
+ * and registers an event to execute after startup is complete
495
+ * @returns an instance of ExtensionAdmin
496
+ */
497
+ static _createExtensionAdmin() {
498
+ const extensionAdmin = new ExtensionAdmin();
499
+ IModelApp.onAfterStartup.addListener(extensionAdmin.onStartup);
500
+ return extensionAdmin;
501
+ }
491
502
  }
503
+ _a = IModelApp;
492
504
  IModelApp._initialized = false;
493
505
  IModelApp._wantEventLoop = false;
494
506
  IModelApp._animationRequested = false;
@@ -506,7 +518,7 @@ IModelApp.tools = new ToolRegistry();
506
518
  */
507
519
  IModelApp.telemetry = new TelemetryManager();
508
520
  /** @alpha */
509
- IModelApp.extensionAdmin = new ExtensionAdmin();
521
+ IModelApp.extensionAdmin = _a._createExtensionAdmin();
510
522
  /** Map of classFullName to EntityState class */
511
523
  IModelApp._entityClasses = new Map();
512
524
  //# sourceMappingURL=IModelApp.js.map