@itwin/core-frontend 3.2.0-dev.34 → 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 (760) 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/ApproximateTerrainHeights.d.ts.map +1 -1
  11. package/lib/cjs/ApproximateTerrainHeights.js +4 -2
  12. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  13. package/lib/cjs/ApproximateTerrainHeightsProps.d.ts +1 -1
  14. package/lib/cjs/ApproximateTerrainHeightsProps.d.ts.map +1 -1
  15. package/lib/cjs/ApproximateTerrainHeightsProps.js +2 -2
  16. package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -1
  17. package/lib/cjs/AuxCoordSys.d.ts +12 -2
  18. package/lib/cjs/AuxCoordSys.d.ts.map +1 -1
  19. package/lib/cjs/AuxCoordSys.js +12 -2
  20. package/lib/cjs/AuxCoordSys.js.map +1 -1
  21. package/lib/cjs/BingLocation.d.ts +1 -0
  22. package/lib/cjs/BingLocation.d.ts.map +1 -1
  23. package/lib/cjs/BingLocation.js +1 -0
  24. package/lib/cjs/BingLocation.js.map +1 -1
  25. package/lib/cjs/CategorySelectorState.d.ts +1 -0
  26. package/lib/cjs/CategorySelectorState.d.ts.map +1 -1
  27. package/lib/cjs/CategorySelectorState.js +1 -0
  28. package/lib/cjs/CategorySelectorState.js.map +1 -1
  29. package/lib/cjs/ChangeFlags.d.ts +1 -0
  30. package/lib/cjs/ChangeFlags.d.ts.map +1 -1
  31. package/lib/cjs/ChangeFlags.js +1 -0
  32. package/lib/cjs/ChangeFlags.js.map +1 -1
  33. package/lib/cjs/ContextRealityModelState.d.ts +1 -0
  34. package/lib/cjs/ContextRealityModelState.d.ts.map +1 -1
  35. package/lib/cjs/ContextRealityModelState.js +1 -0
  36. package/lib/cjs/ContextRealityModelState.js.map +1 -1
  37. package/lib/cjs/CoordSystem.d.ts +1 -0
  38. package/lib/cjs/CoordSystem.d.ts.map +1 -1
  39. package/lib/cjs/CoordSystem.js +1 -0
  40. package/lib/cjs/CoordSystem.js.map +1 -1
  41. package/lib/cjs/DisplayStyleState.d.ts +4 -0
  42. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  43. package/lib/cjs/DisplayStyleState.js +3 -0
  44. package/lib/cjs/DisplayStyleState.js.map +1 -1
  45. package/lib/cjs/DrawingViewState.d.ts +1 -0
  46. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  47. package/lib/cjs/DrawingViewState.js +1 -0
  48. package/lib/cjs/DrawingViewState.js.map +1 -1
  49. package/lib/cjs/ElementLocateManager.d.ts +23 -5
  50. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  51. package/lib/cjs/ElementLocateManager.js +19 -4
  52. package/lib/cjs/ElementLocateManager.js.map +1 -1
  53. package/lib/cjs/EmphasizeElements.d.ts +1 -0
  54. package/lib/cjs/EmphasizeElements.d.ts.map +1 -1
  55. package/lib/cjs/EmphasizeElements.js +1 -0
  56. package/lib/cjs/EmphasizeElements.js.map +1 -1
  57. package/lib/cjs/EntityState.d.ts +2 -0
  58. package/lib/cjs/EntityState.d.ts.map +1 -1
  59. package/lib/cjs/EntityState.js +2 -0
  60. package/lib/cjs/EntityState.js.map +1 -1
  61. package/lib/cjs/FeatureOverrideProvider.d.ts +1 -0
  62. package/lib/cjs/FeatureOverrideProvider.d.ts.map +1 -1
  63. package/lib/cjs/FeatureOverrideProvider.js.map +1 -1
  64. package/lib/cjs/FlashSettings.d.ts +3 -0
  65. package/lib/cjs/FlashSettings.d.ts.map +1 -1
  66. package/lib/cjs/FlashSettings.js +2 -0
  67. package/lib/cjs/FlashSettings.js.map +1 -1
  68. package/lib/cjs/FrontendHubAccess.d.ts +4 -1
  69. package/lib/cjs/FrontendHubAccess.d.ts.map +1 -1
  70. package/lib/cjs/FrontendHubAccess.js.map +1 -1
  71. package/lib/cjs/FrontendLoggerCategory.d.ts +1 -0
  72. package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
  73. package/lib/cjs/FrontendLoggerCategory.js +1 -0
  74. package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
  75. package/lib/cjs/FrustumAnimator.d.ts +1 -0
  76. package/lib/cjs/FrustumAnimator.d.ts.map +1 -1
  77. package/lib/cjs/FrustumAnimator.js +1 -0
  78. package/lib/cjs/FrustumAnimator.js.map +1 -1
  79. package/lib/cjs/FuzzySearch.d.ts +1 -0
  80. package/lib/cjs/FuzzySearch.d.ts.map +1 -1
  81. package/lib/cjs/FuzzySearch.js.map +1 -1
  82. package/lib/cjs/GlobeAnimator.d.ts +1 -0
  83. package/lib/cjs/GlobeAnimator.d.ts.map +1 -1
  84. package/lib/cjs/GlobeAnimator.js +1 -0
  85. package/lib/cjs/GlobeAnimator.js.map +1 -1
  86. package/lib/cjs/HitDetail.d.ts +26 -5
  87. package/lib/cjs/HitDetail.d.ts.map +1 -1
  88. package/lib/cjs/HitDetail.js +26 -5
  89. package/lib/cjs/HitDetail.js.map +1 -1
  90. package/lib/cjs/IModelApp.d.ts +7 -0
  91. package/lib/cjs/IModelApp.d.ts.map +1 -1
  92. package/lib/cjs/IModelApp.js +32 -20
  93. package/lib/cjs/IModelApp.js.map +1 -1
  94. package/lib/cjs/IModelConnection.d.ts +1 -0
  95. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  96. package/lib/cjs/IModelConnection.js +1 -0
  97. package/lib/cjs/IModelConnection.js.map +1 -1
  98. package/lib/cjs/ImageUtil.d.ts +11 -0
  99. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  100. package/lib/cjs/ImageUtil.js +11 -0
  101. package/lib/cjs/ImageUtil.js.map +1 -1
  102. package/lib/cjs/IpcApp.d.ts +1 -0
  103. package/lib/cjs/IpcApp.d.ts.map +1 -1
  104. package/lib/cjs/IpcApp.js +1 -0
  105. package/lib/cjs/IpcApp.js.map +1 -1
  106. package/lib/cjs/MarginPercent.d.ts +1 -0
  107. package/lib/cjs/MarginPercent.d.ts.map +1 -1
  108. package/lib/cjs/MarginPercent.js +1 -0
  109. package/lib/cjs/MarginPercent.js.map +1 -1
  110. package/lib/cjs/Marker.d.ts +16 -3
  111. package/lib/cjs/Marker.d.ts.map +1 -1
  112. package/lib/cjs/Marker.js +3 -0
  113. package/lib/cjs/Marker.js.map +1 -1
  114. package/lib/cjs/ModelSelectorState.d.ts +1 -0
  115. package/lib/cjs/ModelSelectorState.d.ts.map +1 -1
  116. package/lib/cjs/ModelSelectorState.js +1 -0
  117. package/lib/cjs/ModelSelectorState.js.map +1 -1
  118. package/lib/cjs/ModelState.d.ts +10 -0
  119. package/lib/cjs/ModelState.d.ts.map +1 -1
  120. package/lib/cjs/ModelState.js +10 -0
  121. package/lib/cjs/ModelState.js.map +1 -1
  122. package/lib/cjs/NotificationManager.d.ts +11 -0
  123. package/lib/cjs/NotificationManager.d.ts.map +1 -1
  124. package/lib/cjs/NotificationManager.js +10 -0
  125. package/lib/cjs/NotificationManager.js.map +1 -1
  126. package/lib/cjs/PerModelCategoryVisibility.d.ts +1 -0
  127. package/lib/cjs/PerModelCategoryVisibility.d.ts.map +1 -1
  128. package/lib/cjs/PerModelCategoryVisibility.js +1 -0
  129. package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
  130. package/lib/cjs/SelectionSet.d.ts +7 -0
  131. package/lib/cjs/SelectionSet.d.ts.map +1 -1
  132. package/lib/cjs/SelectionSet.js +3 -0
  133. package/lib/cjs/SelectionSet.js.map +1 -1
  134. package/lib/cjs/SheetViewState.d.ts +1 -0
  135. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  136. package/lib/cjs/SheetViewState.js +1 -0
  137. package/lib/cjs/SheetViewState.js.map +1 -1
  138. package/lib/cjs/SpatialViewState.d.ts +2 -0
  139. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  140. package/lib/cjs/SpatialViewState.js +2 -0
  141. package/lib/cjs/SpatialViewState.js.map +1 -1
  142. package/lib/cjs/Sprites.d.ts +3 -0
  143. package/lib/cjs/Sprites.d.ts.map +1 -1
  144. package/lib/cjs/Sprites.js +3 -0
  145. package/lib/cjs/Sprites.js.map +1 -1
  146. package/lib/cjs/StandardView.d.ts +1 -0
  147. package/lib/cjs/StandardView.d.ts.map +1 -1
  148. package/lib/cjs/StandardView.js +1 -0
  149. package/lib/cjs/StandardView.js.map +1 -1
  150. package/lib/cjs/TentativePoint.d.ts +4 -1
  151. package/lib/cjs/TentativePoint.d.ts.map +1 -1
  152. package/lib/cjs/TentativePoint.js +4 -1
  153. package/lib/cjs/TentativePoint.js.map +1 -1
  154. package/lib/cjs/Tiles.d.ts +1 -0
  155. package/lib/cjs/Tiles.d.ts.map +1 -1
  156. package/lib/cjs/Tiles.js +1 -0
  157. package/lib/cjs/Tiles.js.map +1 -1
  158. package/lib/cjs/ViewAnimation.d.ts +6 -0
  159. package/lib/cjs/ViewAnimation.d.ts.map +1 -1
  160. package/lib/cjs/ViewAnimation.js.map +1 -1
  161. package/lib/cjs/ViewCreator2d.d.ts +2 -0
  162. package/lib/cjs/ViewCreator2d.d.ts.map +1 -1
  163. package/lib/cjs/ViewCreator2d.js +1 -0
  164. package/lib/cjs/ViewCreator2d.js.map +1 -1
  165. package/lib/cjs/ViewCreator3d.d.ts +2 -0
  166. package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
  167. package/lib/cjs/ViewCreator3d.js +1 -0
  168. package/lib/cjs/ViewCreator3d.js.map +1 -1
  169. package/lib/cjs/ViewGlobalLocation.d.ts +3 -0
  170. package/lib/cjs/ViewGlobalLocation.d.ts.map +1 -1
  171. package/lib/cjs/ViewGlobalLocation.js +1 -0
  172. package/lib/cjs/ViewGlobalLocation.js.map +1 -1
  173. package/lib/cjs/ViewManager.d.ts +3 -0
  174. package/lib/cjs/ViewManager.d.ts.map +1 -1
  175. package/lib/cjs/ViewManager.js +1 -0
  176. package/lib/cjs/ViewManager.js.map +1 -1
  177. package/lib/cjs/ViewPose.d.ts +1 -0
  178. package/lib/cjs/ViewPose.d.ts.map +1 -1
  179. package/lib/cjs/ViewPose.js +1 -0
  180. package/lib/cjs/ViewPose.js.map +1 -1
  181. package/lib/cjs/ViewRect.d.ts +1 -0
  182. package/lib/cjs/ViewRect.d.ts.map +1 -1
  183. package/lib/cjs/ViewRect.js +1 -0
  184. package/lib/cjs/ViewRect.js.map +1 -1
  185. package/lib/cjs/ViewState.d.ts +4 -0
  186. package/lib/cjs/ViewState.d.ts.map +1 -1
  187. package/lib/cjs/ViewState.js +3 -0
  188. package/lib/cjs/ViewState.js.map +1 -1
  189. package/lib/cjs/ViewStatus.d.ts +1 -0
  190. package/lib/cjs/ViewStatus.d.ts.map +1 -1
  191. package/lib/cjs/ViewStatus.js +1 -0
  192. package/lib/cjs/ViewStatus.js.map +1 -1
  193. package/lib/cjs/ViewingSpace.d.ts +1 -0
  194. package/lib/cjs/ViewingSpace.d.ts.map +1 -1
  195. package/lib/cjs/ViewingSpace.js +1 -0
  196. package/lib/cjs/ViewingSpace.js.map +1 -1
  197. package/lib/cjs/core-frontend.d.ts +6 -5
  198. package/lib/cjs/core-frontend.d.ts.map +1 -1
  199. package/lib/cjs/core-frontend.js +7 -5
  200. package/lib/cjs/core-frontend.js.map +1 -1
  201. package/lib/cjs/extension/Extension.d.ts +22 -3
  202. package/lib/cjs/extension/Extension.d.ts.map +1 -1
  203. package/lib/cjs/extension/Extension.js +0 -8
  204. package/lib/cjs/extension/Extension.js.map +1 -1
  205. package/lib/cjs/extension/ExtensionAdmin.d.ts +1 -3
  206. package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -1
  207. package/lib/cjs/extension/ExtensionAdmin.js +1 -4
  208. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  209. package/lib/cjs/extension/ExtensionRuntime.js +231 -59
  210. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  211. package/lib/cjs/render/CanvasDecoration.d.ts +2 -0
  212. package/lib/cjs/render/CanvasDecoration.d.ts.map +1 -1
  213. package/lib/cjs/render/CanvasDecoration.js.map +1 -1
  214. package/lib/cjs/render/Decorations.d.ts +1 -0
  215. package/lib/cjs/render/Decorations.d.ts.map +1 -1
  216. package/lib/cjs/render/Decorations.js +1 -0
  217. package/lib/cjs/render/Decorations.js.map +1 -1
  218. package/lib/cjs/render/FeatureSymbology.d.ts +1 -0
  219. package/lib/cjs/render/FeatureSymbology.d.ts.map +1 -1
  220. package/lib/cjs/render/FeatureSymbology.js +1 -0
  221. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  222. package/lib/cjs/render/GraphicBranch.d.ts +2 -0
  223. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  224. package/lib/cjs/render/GraphicBranch.js +1 -0
  225. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  226. package/lib/cjs/render/GraphicBuilder.d.ts +8 -0
  227. package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
  228. package/lib/cjs/render/GraphicBuilder.js +2 -0
  229. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  230. package/lib/cjs/render/GraphicPrimitive.d.ts +14 -0
  231. package/lib/cjs/render/GraphicPrimitive.d.ts.map +1 -1
  232. package/lib/cjs/render/GraphicPrimitive.js.map +1 -1
  233. package/lib/cjs/render/ParticleCollectionBuilder.d.ts +3 -0
  234. package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
  235. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  236. package/lib/cjs/render/Pixel.d.ts +1 -0
  237. package/lib/cjs/render/Pixel.d.ts.map +1 -1
  238. package/lib/cjs/render/Pixel.js +1 -0
  239. package/lib/cjs/render/Pixel.js.map +1 -1
  240. package/lib/cjs/render/RenderClipVolume.d.ts +1 -0
  241. package/lib/cjs/render/RenderClipVolume.d.ts.map +1 -1
  242. package/lib/cjs/render/RenderClipVolume.js +1 -0
  243. package/lib/cjs/render/RenderClipVolume.js.map +1 -1
  244. package/lib/cjs/render/RenderGraphic.d.ts +3 -0
  245. package/lib/cjs/render/RenderGraphic.d.ts.map +1 -1
  246. package/lib/cjs/render/RenderGraphic.js +2 -0
  247. package/lib/cjs/render/RenderGraphic.js.map +1 -1
  248. package/lib/cjs/render/RenderSystem.d.ts +1 -0
  249. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  250. package/lib/cjs/render/RenderSystem.js +1 -0
  251. package/lib/cjs/render/RenderSystem.js.map +1 -1
  252. package/lib/cjs/render/RenderTexture.d.ts +7 -0
  253. package/lib/cjs/render/RenderTexture.d.ts.map +1 -1
  254. package/lib/cjs/render/RenderTexture.js.map +1 -1
  255. package/lib/cjs/render/Scene.d.ts +1 -0
  256. package/lib/cjs/render/Scene.d.ts.map +1 -1
  257. package/lib/cjs/render/Scene.js +1 -0
  258. package/lib/cjs/render/Scene.js.map +1 -1
  259. package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts +10 -0
  260. package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
  261. package/lib/cjs/render/ScreenSpaceEffectBuilder.js +2 -0
  262. package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
  263. package/lib/cjs/render/webgl/System.d.ts +1 -1
  264. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  265. package/lib/cjs/render/webgl/Target.js +4 -1
  266. package/lib/cjs/render/webgl/Target.js.map +1 -1
  267. package/lib/cjs/tile/DisclosedTileTreeSet.d.ts +2 -0
  268. package/lib/cjs/tile/DisclosedTileTreeSet.d.ts.map +1 -1
  269. package/lib/cjs/tile/DisclosedTileTreeSet.js +1 -0
  270. package/lib/cjs/tile/DisclosedTileTreeSet.js.map +1 -1
  271. package/lib/cjs/tile/ImdlReader.d.ts +1 -0
  272. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  273. package/lib/cjs/tile/ImdlReader.js +1 -0
  274. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  275. package/lib/cjs/tile/Tile.d.ts +5 -0
  276. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  277. package/lib/cjs/tile/Tile.js +5 -0
  278. package/lib/cjs/tile/Tile.js.map +1 -1
  279. package/lib/cjs/tile/TileAdmin.d.ts +3 -0
  280. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  281. package/lib/cjs/tile/TileAdmin.js +1 -0
  282. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  283. package/lib/cjs/tile/TileContent.d.ts +1 -0
  284. package/lib/cjs/tile/TileContent.d.ts.map +1 -1
  285. package/lib/cjs/tile/TileContent.js.map +1 -1
  286. package/lib/cjs/tile/TileDrawArgs.d.ts +2 -0
  287. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  288. package/lib/cjs/tile/TileDrawArgs.js +1 -0
  289. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  290. package/lib/cjs/tile/TileParams.d.ts +1 -0
  291. package/lib/cjs/tile/TileParams.d.ts.map +1 -1
  292. package/lib/cjs/tile/TileParams.js.map +1 -1
  293. package/lib/cjs/tile/TileRequest.d.ts +1 -0
  294. package/lib/cjs/tile/TileRequest.d.ts.map +1 -1
  295. package/lib/cjs/tile/TileRequest.js +1 -0
  296. package/lib/cjs/tile/TileRequest.js.map +1 -1
  297. package/lib/cjs/tile/TileRequestChannel.d.ts +2 -0
  298. package/lib/cjs/tile/TileRequestChannel.d.ts.map +1 -1
  299. package/lib/cjs/tile/TileRequestChannel.js +2 -0
  300. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  301. package/lib/cjs/tile/TileRequestChannels.d.ts +1 -0
  302. package/lib/cjs/tile/TileRequestChannels.d.ts.map +1 -1
  303. package/lib/cjs/tile/TileRequestChannels.js +1 -0
  304. package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
  305. package/lib/cjs/tile/TileTree.d.ts +2 -0
  306. package/lib/cjs/tile/TileTree.d.ts.map +1 -1
  307. package/lib/cjs/tile/TileTree.js +2 -0
  308. package/lib/cjs/tile/TileTree.js.map +1 -1
  309. package/lib/cjs/tile/TileTreeOwner.d.ts +1 -0
  310. package/lib/cjs/tile/TileTreeOwner.d.ts.map +1 -1
  311. package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
  312. package/lib/cjs/tile/TileTreeParams.d.ts +1 -0
  313. package/lib/cjs/tile/TileTreeParams.d.ts.map +1 -1
  314. package/lib/cjs/tile/TileTreeParams.js.map +1 -1
  315. package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
  316. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  317. package/lib/cjs/tile/TileTreeReference.js +2 -0
  318. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  319. package/lib/cjs/tile/TileTreeSupplier.d.ts +1 -0
  320. package/lib/cjs/tile/TileTreeSupplier.d.ts.map +1 -1
  321. package/lib/cjs/tile/TileTreeSupplier.js.map +1 -1
  322. package/lib/cjs/tile/TileUsageMarker.d.ts +1 -0
  323. package/lib/cjs/tile/TileUsageMarker.d.ts.map +1 -1
  324. package/lib/cjs/tile/TileUsageMarker.js +1 -0
  325. package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
  326. package/lib/cjs/tile/TiledGraphicsProvider.d.ts +1 -0
  327. package/lib/cjs/tile/TiledGraphicsProvider.d.ts.map +1 -1
  328. package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
  329. package/lib/cjs/tile/map/BingElevation.d.ts +1 -0
  330. package/lib/cjs/tile/map/BingElevation.d.ts.map +1 -1
  331. package/lib/cjs/tile/map/BingElevation.js +1 -0
  332. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  333. package/lib/cjs/tools/ClipViewTool.d.ts +5 -3
  334. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  335. package/lib/cjs/tools/ClipViewTool.js +4 -3
  336. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  337. package/lib/cjs/tools/EditManipulator.d.ts +1 -0
  338. package/lib/cjs/tools/EditManipulator.d.ts.map +1 -1
  339. package/lib/cjs/tools/EditManipulator.js +1 -0
  340. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  341. package/lib/cjs/tools/EventController.d.ts +1 -0
  342. package/lib/cjs/tools/EventController.d.ts.map +1 -1
  343. package/lib/cjs/tools/EventController.js +1 -0
  344. package/lib/cjs/tools/EventController.js.map +1 -1
  345. package/lib/cjs/tools/PrimitiveTool.d.ts +1 -0
  346. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  347. package/lib/cjs/tools/PrimitiveTool.js +1 -0
  348. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  349. package/lib/cjs/tools/SelectTool.d.ts +3 -0
  350. package/lib/cjs/tools/SelectTool.d.ts.map +1 -1
  351. package/lib/cjs/tools/SelectTool.js +3 -0
  352. package/lib/cjs/tools/SelectTool.js.map +1 -1
  353. package/lib/cjs/tools/Tool.d.ts +41 -6
  354. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  355. package/lib/cjs/tools/Tool.js +27 -4
  356. package/lib/cjs/tools/Tool.js.map +1 -1
  357. package/lib/cjs/tools/ToolAdmin.d.ts +9 -2
  358. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  359. package/lib/cjs/tools/ToolAdmin.js +9 -2
  360. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  361. package/lib/cjs/tools/ToolAssistance.d.ts +7 -0
  362. package/lib/cjs/tools/ToolAssistance.d.ts.map +1 -1
  363. package/lib/cjs/tools/ToolAssistance.js +3 -0
  364. package/lib/cjs/tools/ToolAssistance.js.map +1 -1
  365. package/lib/cjs/tools/ToolSettings.d.ts +1 -0
  366. package/lib/cjs/tools/ToolSettings.d.ts.map +1 -1
  367. package/lib/cjs/tools/ToolSettings.js +1 -0
  368. package/lib/cjs/tools/ToolSettings.js.map +1 -1
  369. package/lib/cjs/tools/ViewTool.d.ts +2 -0
  370. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  371. package/lib/cjs/tools/ViewTool.js +2 -0
  372. package/lib/cjs/tools/ViewTool.js.map +1 -1
  373. package/lib/esm/AccuDraw.d.ts +2 -0
  374. package/lib/esm/AccuDraw.d.ts.map +1 -1
  375. package/lib/esm/AccuDraw.js +2 -0
  376. package/lib/esm/AccuDraw.js.map +1 -1
  377. package/lib/esm/AccuSnap.d.ts +1 -0
  378. package/lib/esm/AccuSnap.d.ts.map +1 -1
  379. package/lib/esm/AccuSnap.js +1 -0
  380. package/lib/esm/AccuSnap.js.map +1 -1
  381. package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
  382. package/lib/esm/ApproximateTerrainHeights.js +4 -2
  383. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  384. package/lib/esm/ApproximateTerrainHeightsProps.d.ts +1 -1
  385. package/lib/esm/ApproximateTerrainHeightsProps.d.ts.map +1 -1
  386. package/lib/esm/ApproximateTerrainHeightsProps.js +1 -1
  387. package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -1
  388. package/lib/esm/AuxCoordSys.d.ts +12 -2
  389. package/lib/esm/AuxCoordSys.d.ts.map +1 -1
  390. package/lib/esm/AuxCoordSys.js +12 -2
  391. package/lib/esm/AuxCoordSys.js.map +1 -1
  392. package/lib/esm/BingLocation.d.ts +1 -0
  393. package/lib/esm/BingLocation.d.ts.map +1 -1
  394. package/lib/esm/BingLocation.js +1 -0
  395. package/lib/esm/BingLocation.js.map +1 -1
  396. package/lib/esm/CategorySelectorState.d.ts +1 -0
  397. package/lib/esm/CategorySelectorState.d.ts.map +1 -1
  398. package/lib/esm/CategorySelectorState.js +1 -0
  399. package/lib/esm/CategorySelectorState.js.map +1 -1
  400. package/lib/esm/ChangeFlags.d.ts +1 -0
  401. package/lib/esm/ChangeFlags.d.ts.map +1 -1
  402. package/lib/esm/ChangeFlags.js +1 -0
  403. package/lib/esm/ChangeFlags.js.map +1 -1
  404. package/lib/esm/ContextRealityModelState.d.ts +1 -0
  405. package/lib/esm/ContextRealityModelState.d.ts.map +1 -1
  406. package/lib/esm/ContextRealityModelState.js +1 -0
  407. package/lib/esm/ContextRealityModelState.js.map +1 -1
  408. package/lib/esm/CoordSystem.d.ts +1 -0
  409. package/lib/esm/CoordSystem.d.ts.map +1 -1
  410. package/lib/esm/CoordSystem.js +1 -0
  411. package/lib/esm/CoordSystem.js.map +1 -1
  412. package/lib/esm/DisplayStyleState.d.ts +4 -0
  413. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  414. package/lib/esm/DisplayStyleState.js +3 -0
  415. package/lib/esm/DisplayStyleState.js.map +1 -1
  416. package/lib/esm/DrawingViewState.d.ts +1 -0
  417. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  418. package/lib/esm/DrawingViewState.js +1 -0
  419. package/lib/esm/DrawingViewState.js.map +1 -1
  420. package/lib/esm/ElementLocateManager.d.ts +23 -5
  421. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  422. package/lib/esm/ElementLocateManager.js +19 -4
  423. package/lib/esm/ElementLocateManager.js.map +1 -1
  424. package/lib/esm/EmphasizeElements.d.ts +1 -0
  425. package/lib/esm/EmphasizeElements.d.ts.map +1 -1
  426. package/lib/esm/EmphasizeElements.js +1 -0
  427. package/lib/esm/EmphasizeElements.js.map +1 -1
  428. package/lib/esm/EntityState.d.ts +2 -0
  429. package/lib/esm/EntityState.d.ts.map +1 -1
  430. package/lib/esm/EntityState.js +2 -0
  431. package/lib/esm/EntityState.js.map +1 -1
  432. package/lib/esm/FeatureOverrideProvider.d.ts +1 -0
  433. package/lib/esm/FeatureOverrideProvider.d.ts.map +1 -1
  434. package/lib/esm/FeatureOverrideProvider.js.map +1 -1
  435. package/lib/esm/FlashSettings.d.ts +3 -0
  436. package/lib/esm/FlashSettings.d.ts.map +1 -1
  437. package/lib/esm/FlashSettings.js +2 -0
  438. package/lib/esm/FlashSettings.js.map +1 -1
  439. package/lib/esm/FrontendHubAccess.d.ts +4 -1
  440. package/lib/esm/FrontendHubAccess.d.ts.map +1 -1
  441. package/lib/esm/FrontendHubAccess.js.map +1 -1
  442. package/lib/esm/FrontendLoggerCategory.d.ts +1 -0
  443. package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
  444. package/lib/esm/FrontendLoggerCategory.js +1 -0
  445. package/lib/esm/FrontendLoggerCategory.js.map +1 -1
  446. package/lib/esm/FrustumAnimator.d.ts +1 -0
  447. package/lib/esm/FrustumAnimator.d.ts.map +1 -1
  448. package/lib/esm/FrustumAnimator.js +1 -0
  449. package/lib/esm/FrustumAnimator.js.map +1 -1
  450. package/lib/esm/FuzzySearch.d.ts +1 -0
  451. package/lib/esm/FuzzySearch.d.ts.map +1 -1
  452. package/lib/esm/FuzzySearch.js.map +1 -1
  453. package/lib/esm/GlobeAnimator.d.ts +1 -0
  454. package/lib/esm/GlobeAnimator.d.ts.map +1 -1
  455. package/lib/esm/GlobeAnimator.js +1 -0
  456. package/lib/esm/GlobeAnimator.js.map +1 -1
  457. package/lib/esm/HitDetail.d.ts +26 -5
  458. package/lib/esm/HitDetail.d.ts.map +1 -1
  459. package/lib/esm/HitDetail.js +26 -5
  460. package/lib/esm/HitDetail.js.map +1 -1
  461. package/lib/esm/IModelApp.d.ts +7 -0
  462. package/lib/esm/IModelApp.d.ts.map +1 -1
  463. package/lib/esm/IModelApp.js +32 -20
  464. package/lib/esm/IModelApp.js.map +1 -1
  465. package/lib/esm/IModelConnection.d.ts +1 -0
  466. package/lib/esm/IModelConnection.d.ts.map +1 -1
  467. package/lib/esm/IModelConnection.js +1 -0
  468. package/lib/esm/IModelConnection.js.map +1 -1
  469. package/lib/esm/ImageUtil.d.ts +11 -0
  470. package/lib/esm/ImageUtil.d.ts.map +1 -1
  471. package/lib/esm/ImageUtil.js +11 -0
  472. package/lib/esm/ImageUtil.js.map +1 -1
  473. package/lib/esm/IpcApp.d.ts +1 -0
  474. package/lib/esm/IpcApp.d.ts.map +1 -1
  475. package/lib/esm/IpcApp.js +1 -0
  476. package/lib/esm/IpcApp.js.map +1 -1
  477. package/lib/esm/MarginPercent.d.ts +1 -0
  478. package/lib/esm/MarginPercent.d.ts.map +1 -1
  479. package/lib/esm/MarginPercent.js +1 -0
  480. package/lib/esm/MarginPercent.js.map +1 -1
  481. package/lib/esm/Marker.d.ts +16 -3
  482. package/lib/esm/Marker.d.ts.map +1 -1
  483. package/lib/esm/Marker.js +3 -0
  484. package/lib/esm/Marker.js.map +1 -1
  485. package/lib/esm/ModelSelectorState.d.ts +1 -0
  486. package/lib/esm/ModelSelectorState.d.ts.map +1 -1
  487. package/lib/esm/ModelSelectorState.js +1 -0
  488. package/lib/esm/ModelSelectorState.js.map +1 -1
  489. package/lib/esm/ModelState.d.ts +10 -0
  490. package/lib/esm/ModelState.d.ts.map +1 -1
  491. package/lib/esm/ModelState.js +10 -0
  492. package/lib/esm/ModelState.js.map +1 -1
  493. package/lib/esm/NotificationManager.d.ts +11 -0
  494. package/lib/esm/NotificationManager.d.ts.map +1 -1
  495. package/lib/esm/NotificationManager.js +10 -0
  496. package/lib/esm/NotificationManager.js.map +1 -1
  497. package/lib/esm/PerModelCategoryVisibility.d.ts +1 -0
  498. package/lib/esm/PerModelCategoryVisibility.d.ts.map +1 -1
  499. package/lib/esm/PerModelCategoryVisibility.js +1 -0
  500. package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
  501. package/lib/esm/SelectionSet.d.ts +7 -0
  502. package/lib/esm/SelectionSet.d.ts.map +1 -1
  503. package/lib/esm/SelectionSet.js +3 -0
  504. package/lib/esm/SelectionSet.js.map +1 -1
  505. package/lib/esm/SheetViewState.d.ts +1 -0
  506. package/lib/esm/SheetViewState.d.ts.map +1 -1
  507. package/lib/esm/SheetViewState.js +1 -0
  508. package/lib/esm/SheetViewState.js.map +1 -1
  509. package/lib/esm/SpatialViewState.d.ts +2 -0
  510. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  511. package/lib/esm/SpatialViewState.js +2 -0
  512. package/lib/esm/SpatialViewState.js.map +1 -1
  513. package/lib/esm/Sprites.d.ts +3 -0
  514. package/lib/esm/Sprites.d.ts.map +1 -1
  515. package/lib/esm/Sprites.js +3 -0
  516. package/lib/esm/Sprites.js.map +1 -1
  517. package/lib/esm/StandardView.d.ts +1 -0
  518. package/lib/esm/StandardView.d.ts.map +1 -1
  519. package/lib/esm/StandardView.js +1 -0
  520. package/lib/esm/StandardView.js.map +1 -1
  521. package/lib/esm/TentativePoint.d.ts +4 -1
  522. package/lib/esm/TentativePoint.d.ts.map +1 -1
  523. package/lib/esm/TentativePoint.js +4 -1
  524. package/lib/esm/TentativePoint.js.map +1 -1
  525. package/lib/esm/Tiles.d.ts +1 -0
  526. package/lib/esm/Tiles.d.ts.map +1 -1
  527. package/lib/esm/Tiles.js +1 -0
  528. package/lib/esm/Tiles.js.map +1 -1
  529. package/lib/esm/ViewAnimation.d.ts +6 -0
  530. package/lib/esm/ViewAnimation.d.ts.map +1 -1
  531. package/lib/esm/ViewAnimation.js.map +1 -1
  532. package/lib/esm/ViewCreator2d.d.ts +2 -0
  533. package/lib/esm/ViewCreator2d.d.ts.map +1 -1
  534. package/lib/esm/ViewCreator2d.js +1 -0
  535. package/lib/esm/ViewCreator2d.js.map +1 -1
  536. package/lib/esm/ViewCreator3d.d.ts +2 -0
  537. package/lib/esm/ViewCreator3d.d.ts.map +1 -1
  538. package/lib/esm/ViewCreator3d.js +1 -0
  539. package/lib/esm/ViewCreator3d.js.map +1 -1
  540. package/lib/esm/ViewGlobalLocation.d.ts +3 -0
  541. package/lib/esm/ViewGlobalLocation.d.ts.map +1 -1
  542. package/lib/esm/ViewGlobalLocation.js +1 -0
  543. package/lib/esm/ViewGlobalLocation.js.map +1 -1
  544. package/lib/esm/ViewManager.d.ts +3 -0
  545. package/lib/esm/ViewManager.d.ts.map +1 -1
  546. package/lib/esm/ViewManager.js +1 -0
  547. package/lib/esm/ViewManager.js.map +1 -1
  548. package/lib/esm/ViewPose.d.ts +1 -0
  549. package/lib/esm/ViewPose.d.ts.map +1 -1
  550. package/lib/esm/ViewPose.js +1 -0
  551. package/lib/esm/ViewPose.js.map +1 -1
  552. package/lib/esm/ViewRect.d.ts +1 -0
  553. package/lib/esm/ViewRect.d.ts.map +1 -1
  554. package/lib/esm/ViewRect.js +1 -0
  555. package/lib/esm/ViewRect.js.map +1 -1
  556. package/lib/esm/ViewState.d.ts +4 -0
  557. package/lib/esm/ViewState.d.ts.map +1 -1
  558. package/lib/esm/ViewState.js +3 -0
  559. package/lib/esm/ViewState.js.map +1 -1
  560. package/lib/esm/ViewStatus.d.ts +1 -0
  561. package/lib/esm/ViewStatus.d.ts.map +1 -1
  562. package/lib/esm/ViewStatus.js +1 -0
  563. package/lib/esm/ViewStatus.js.map +1 -1
  564. package/lib/esm/ViewingSpace.d.ts +1 -0
  565. package/lib/esm/ViewingSpace.d.ts.map +1 -1
  566. package/lib/esm/ViewingSpace.js +1 -0
  567. package/lib/esm/ViewingSpace.js.map +1 -1
  568. package/lib/esm/core-frontend.d.ts +6 -5
  569. package/lib/esm/core-frontend.d.ts.map +1 -1
  570. package/lib/esm/core-frontend.js +7 -5
  571. package/lib/esm/core-frontend.js.map +1 -1
  572. package/lib/esm/extension/Extension.d.ts +22 -3
  573. package/lib/esm/extension/Extension.d.ts.map +1 -1
  574. package/lib/esm/extension/Extension.js +1 -7
  575. package/lib/esm/extension/Extension.js.map +1 -1
  576. package/lib/esm/extension/ExtensionAdmin.d.ts +1 -3
  577. package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -1
  578. package/lib/esm/extension/ExtensionAdmin.js +1 -4
  579. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  580. package/lib/esm/extension/ExtensionRuntime.js +239 -59
  581. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  582. package/lib/esm/render/CanvasDecoration.d.ts +2 -0
  583. package/lib/esm/render/CanvasDecoration.d.ts.map +1 -1
  584. package/lib/esm/render/CanvasDecoration.js.map +1 -1
  585. package/lib/esm/render/Decorations.d.ts +1 -0
  586. package/lib/esm/render/Decorations.d.ts.map +1 -1
  587. package/lib/esm/render/Decorations.js +1 -0
  588. package/lib/esm/render/Decorations.js.map +1 -1
  589. package/lib/esm/render/FeatureSymbology.d.ts +1 -0
  590. package/lib/esm/render/FeatureSymbology.d.ts.map +1 -1
  591. package/lib/esm/render/FeatureSymbology.js +1 -0
  592. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  593. package/lib/esm/render/GraphicBranch.d.ts +2 -0
  594. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  595. package/lib/esm/render/GraphicBranch.js +1 -0
  596. package/lib/esm/render/GraphicBranch.js.map +1 -1
  597. package/lib/esm/render/GraphicBuilder.d.ts +8 -0
  598. package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
  599. package/lib/esm/render/GraphicBuilder.js +2 -0
  600. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  601. package/lib/esm/render/GraphicPrimitive.d.ts +14 -0
  602. package/lib/esm/render/GraphicPrimitive.d.ts.map +1 -1
  603. package/lib/esm/render/GraphicPrimitive.js.map +1 -1
  604. package/lib/esm/render/ParticleCollectionBuilder.d.ts +3 -0
  605. package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
  606. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  607. package/lib/esm/render/Pixel.d.ts +1 -0
  608. package/lib/esm/render/Pixel.d.ts.map +1 -1
  609. package/lib/esm/render/Pixel.js +1 -0
  610. package/lib/esm/render/Pixel.js.map +1 -1
  611. package/lib/esm/render/RenderClipVolume.d.ts +1 -0
  612. package/lib/esm/render/RenderClipVolume.d.ts.map +1 -1
  613. package/lib/esm/render/RenderClipVolume.js +1 -0
  614. package/lib/esm/render/RenderClipVolume.js.map +1 -1
  615. package/lib/esm/render/RenderGraphic.d.ts +3 -0
  616. package/lib/esm/render/RenderGraphic.d.ts.map +1 -1
  617. package/lib/esm/render/RenderGraphic.js +2 -0
  618. package/lib/esm/render/RenderGraphic.js.map +1 -1
  619. package/lib/esm/render/RenderSystem.d.ts +1 -0
  620. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  621. package/lib/esm/render/RenderSystem.js +1 -0
  622. package/lib/esm/render/RenderSystem.js.map +1 -1
  623. package/lib/esm/render/RenderTexture.d.ts +7 -0
  624. package/lib/esm/render/RenderTexture.d.ts.map +1 -1
  625. package/lib/esm/render/RenderTexture.js.map +1 -1
  626. package/lib/esm/render/Scene.d.ts +1 -0
  627. package/lib/esm/render/Scene.d.ts.map +1 -1
  628. package/lib/esm/render/Scene.js +1 -0
  629. package/lib/esm/render/Scene.js.map +1 -1
  630. package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts +10 -0
  631. package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
  632. package/lib/esm/render/ScreenSpaceEffectBuilder.js +2 -0
  633. package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
  634. package/lib/esm/render/webgl/System.d.ts +1 -1
  635. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  636. package/lib/esm/render/webgl/Target.js +4 -1
  637. package/lib/esm/render/webgl/Target.js.map +1 -1
  638. package/lib/esm/tile/DisclosedTileTreeSet.d.ts +2 -0
  639. package/lib/esm/tile/DisclosedTileTreeSet.d.ts.map +1 -1
  640. package/lib/esm/tile/DisclosedTileTreeSet.js +1 -0
  641. package/lib/esm/tile/DisclosedTileTreeSet.js.map +1 -1
  642. package/lib/esm/tile/ImdlReader.d.ts +1 -0
  643. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  644. package/lib/esm/tile/ImdlReader.js +1 -0
  645. package/lib/esm/tile/ImdlReader.js.map +1 -1
  646. package/lib/esm/tile/Tile.d.ts +5 -0
  647. package/lib/esm/tile/Tile.d.ts.map +1 -1
  648. package/lib/esm/tile/Tile.js +5 -0
  649. package/lib/esm/tile/Tile.js.map +1 -1
  650. package/lib/esm/tile/TileAdmin.d.ts +3 -0
  651. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  652. package/lib/esm/tile/TileAdmin.js +1 -0
  653. package/lib/esm/tile/TileAdmin.js.map +1 -1
  654. package/lib/esm/tile/TileContent.d.ts +1 -0
  655. package/lib/esm/tile/TileContent.d.ts.map +1 -1
  656. package/lib/esm/tile/TileContent.js.map +1 -1
  657. package/lib/esm/tile/TileDrawArgs.d.ts +2 -0
  658. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  659. package/lib/esm/tile/TileDrawArgs.js +1 -0
  660. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  661. package/lib/esm/tile/TileParams.d.ts +1 -0
  662. package/lib/esm/tile/TileParams.d.ts.map +1 -1
  663. package/lib/esm/tile/TileParams.js.map +1 -1
  664. package/lib/esm/tile/TileRequest.d.ts +1 -0
  665. package/lib/esm/tile/TileRequest.d.ts.map +1 -1
  666. package/lib/esm/tile/TileRequest.js +1 -0
  667. package/lib/esm/tile/TileRequest.js.map +1 -1
  668. package/lib/esm/tile/TileRequestChannel.d.ts +2 -0
  669. package/lib/esm/tile/TileRequestChannel.d.ts.map +1 -1
  670. package/lib/esm/tile/TileRequestChannel.js +2 -0
  671. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  672. package/lib/esm/tile/TileRequestChannels.d.ts +1 -0
  673. package/lib/esm/tile/TileRequestChannels.d.ts.map +1 -1
  674. package/lib/esm/tile/TileRequestChannels.js +1 -0
  675. package/lib/esm/tile/TileRequestChannels.js.map +1 -1
  676. package/lib/esm/tile/TileTree.d.ts +2 -0
  677. package/lib/esm/tile/TileTree.d.ts.map +1 -1
  678. package/lib/esm/tile/TileTree.js +2 -0
  679. package/lib/esm/tile/TileTree.js.map +1 -1
  680. package/lib/esm/tile/TileTreeOwner.d.ts +1 -0
  681. package/lib/esm/tile/TileTreeOwner.d.ts.map +1 -1
  682. package/lib/esm/tile/TileTreeOwner.js.map +1 -1
  683. package/lib/esm/tile/TileTreeParams.d.ts +1 -0
  684. package/lib/esm/tile/TileTreeParams.d.ts.map +1 -1
  685. package/lib/esm/tile/TileTreeParams.js.map +1 -1
  686. package/lib/esm/tile/TileTreeReference.d.ts +2 -0
  687. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  688. package/lib/esm/tile/TileTreeReference.js +2 -0
  689. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  690. package/lib/esm/tile/TileTreeSupplier.d.ts +1 -0
  691. package/lib/esm/tile/TileTreeSupplier.d.ts.map +1 -1
  692. package/lib/esm/tile/TileTreeSupplier.js.map +1 -1
  693. package/lib/esm/tile/TileUsageMarker.d.ts +1 -0
  694. package/lib/esm/tile/TileUsageMarker.d.ts.map +1 -1
  695. package/lib/esm/tile/TileUsageMarker.js +1 -0
  696. package/lib/esm/tile/TileUsageMarker.js.map +1 -1
  697. package/lib/esm/tile/TiledGraphicsProvider.d.ts +1 -0
  698. package/lib/esm/tile/TiledGraphicsProvider.d.ts.map +1 -1
  699. package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
  700. package/lib/esm/tile/map/BingElevation.d.ts +1 -0
  701. package/lib/esm/tile/map/BingElevation.d.ts.map +1 -1
  702. package/lib/esm/tile/map/BingElevation.js +1 -0
  703. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  704. package/lib/esm/tools/ClipViewTool.d.ts +5 -3
  705. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  706. package/lib/esm/tools/ClipViewTool.js +4 -3
  707. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  708. package/lib/esm/tools/EditManipulator.d.ts +1 -0
  709. package/lib/esm/tools/EditManipulator.d.ts.map +1 -1
  710. package/lib/esm/tools/EditManipulator.js +1 -0
  711. package/lib/esm/tools/EditManipulator.js.map +1 -1
  712. package/lib/esm/tools/EventController.d.ts +1 -0
  713. package/lib/esm/tools/EventController.d.ts.map +1 -1
  714. package/lib/esm/tools/EventController.js +1 -0
  715. package/lib/esm/tools/EventController.js.map +1 -1
  716. package/lib/esm/tools/PrimitiveTool.d.ts +1 -0
  717. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  718. package/lib/esm/tools/PrimitiveTool.js +1 -0
  719. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  720. package/lib/esm/tools/SelectTool.d.ts +3 -0
  721. package/lib/esm/tools/SelectTool.d.ts.map +1 -1
  722. package/lib/esm/tools/SelectTool.js +3 -0
  723. package/lib/esm/tools/SelectTool.js.map +1 -1
  724. package/lib/esm/tools/Tool.d.ts +41 -6
  725. package/lib/esm/tools/Tool.d.ts.map +1 -1
  726. package/lib/esm/tools/Tool.js +27 -4
  727. package/lib/esm/tools/Tool.js.map +1 -1
  728. package/lib/esm/tools/ToolAdmin.d.ts +9 -2
  729. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  730. package/lib/esm/tools/ToolAdmin.js +9 -2
  731. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  732. package/lib/esm/tools/ToolAssistance.d.ts +7 -0
  733. package/lib/esm/tools/ToolAssistance.d.ts.map +1 -1
  734. package/lib/esm/tools/ToolAssistance.js +3 -0
  735. package/lib/esm/tools/ToolAssistance.js.map +1 -1
  736. package/lib/esm/tools/ToolSettings.d.ts +1 -0
  737. package/lib/esm/tools/ToolSettings.d.ts.map +1 -1
  738. package/lib/esm/tools/ToolSettings.js +1 -0
  739. package/lib/esm/tools/ToolSettings.js.map +1 -1
  740. package/lib/esm/tools/ViewTool.d.ts +2 -0
  741. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  742. package/lib/esm/tools/ViewTool.js +2 -0
  743. package/lib/esm/tools/ViewTool.js.map +1 -1
  744. package/package.json +32 -21
  745. package/lib/cjs/extension/ExtensionLoader.d.ts +0 -26
  746. package/lib/cjs/extension/ExtensionLoader.d.ts.map +0 -1
  747. package/lib/cjs/extension/ExtensionLoader.js +0 -10
  748. package/lib/cjs/extension/ExtensionLoader.js.map +0 -1
  749. package/lib/cjs/extension/extensions.d.ts +0 -19
  750. package/lib/cjs/extension/extensions.d.ts.map +0 -1
  751. package/lib/cjs/extension/extensions.js +0 -36
  752. package/lib/cjs/extension/extensions.js.map +0 -1
  753. package/lib/esm/extension/ExtensionLoader.d.ts +0 -26
  754. package/lib/esm/extension/ExtensionLoader.d.ts.map +0 -1
  755. package/lib/esm/extension/ExtensionLoader.js +0 -9
  756. package/lib/esm/extension/ExtensionLoader.js.map +0 -1
  757. package/lib/esm/extension/extensions.d.ts +0 -19
  758. package/lib/esm/extension/extensions.d.ts.map +0 -1
  759. package/lib/esm/extension/extensions.js +0 -24
  760. package/lib/esm/extension/extensions.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"SelectTool.js","sourceRoot":"","sources":["../../../src/tools/SelectTool.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 SelectionSet\r\n */\r\n\r\nimport { Id64, Id64Arg } from \"@itwin/core-bentley\";\r\nimport { Point2d, Point3d, Range2d } from \"@itwin/core-geometry\";\r\nimport { ColorDef } from \"@itwin/core-common\";\r\nimport {\r\n ButtonGroupEditorParams, DialogItem, DialogItemValue, DialogPropertySyncItem, PropertyDescription, PropertyEditorParamTypes,\r\n SuppressLabelEditorParams,\r\n} from \"@itwin/appui-abstract\";\r\nimport { LocateFilterStatus, LocateResponse } from \"../ElementLocateManager\";\r\nimport { HitDetail } from \"../HitDetail\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { Pixel } from \"../render/Pixel\";\r\nimport { DecorateContext } from \"../ViewContext\";\r\nimport { ViewRect } from \"../ViewRect\";\r\nimport { PrimitiveTool } from \"./PrimitiveTool\";\r\nimport { BeButton, BeButtonEvent, BeModifierKeys, BeTouchEvent, CoordinateLockOverrides, CoreTools, EventHandled, InputSource } from \"./Tool\";\r\nimport { ManipulatorToolEvent } from \"./ToolAdmin\";\r\nimport { ToolAssistance, ToolAssistanceImage, ToolAssistanceInputMethod, ToolAssistanceInstruction, ToolAssistanceSection } from \"./ToolAssistance\";\r\n\r\n// cSpell:ignore buttongroup\r\n\r\n/** The method for choosing elements with the [[SelectionTool]]\r\n * @public\r\n */\r\nexport enum SelectionMethod {\r\n /** Identify element(s) by picking for drag selection (inside/overlap for drag box selection determined by point direction and shift key) */\r\n Pick,\r\n /** Identify elements by overlap with crossing line */\r\n Line,\r\n /** Identify elements by box selection (inside/overlap for box selection determined by point direction and shift key) */\r\n Box,\r\n}\r\n\r\n/** The mode for choosing elements with the [[SelectionTool]]\r\n * @public\r\n */\r\nexport enum SelectionMode {\r\n /** Identified elements replace the current selection set (use control key to add or remove) */\r\n Replace,\r\n /** Identified elements are added to the current selection set */\r\n Add,\r\n /** Identified elements are removed from the current selection set */\r\n Remove,\r\n}\r\n\r\n/** The processing method to use to update the current selection.\r\n * @public\r\n */\r\nexport enum SelectionProcessing {\r\n /** Add element to selection. */\r\n AddElementToSelection,\r\n /** Remove element from selection. */\r\n RemoveElementFromSelection,\r\n /** If element is in selection remove it, else add it. */\r\n InvertElementInSelection,\r\n /** Replace current selection with element. */\r\n ReplaceSelectionWithElement,\r\n}\r\n\r\n/** Tool for picking a set of elements of interest, selected by the user.\r\n * @public\r\n */\r\nexport class SelectionTool extends PrimitiveTool {\r\n public static override hidden = false;\r\n public static override toolId = \"Select\";\r\n public static override iconSpec = \"icon-cursor\";\r\n protected _isSelectByPoints = false;\r\n protected _isSuspended = false;\r\n protected readonly _points: Point3d[] = [];\r\n private _selectionMethodValue: DialogItemValue = { value: SelectionMethod.Pick };\r\n private _selectionModeValue: DialogItemValue = { value: SelectionMode.Replace };\r\n\r\n public override requireWriteableTarget(): boolean { return false; }\r\n public override autoLockTarget(): void { } // NOTE: For selecting elements we only care about iModel, so don't lock target model automatically.\r\n\r\n protected wantSelectionClearOnMiss(_ev: BeButtonEvent): boolean { return SelectionMode.Replace === this.selectionMode; }\r\n protected wantEditManipulators(): boolean { return SelectionMethod.Pick === this.selectionMethod; }\r\n protected wantPickableDecorations(): boolean { return this.wantEditManipulators(); } // Allow pickable decorations selection to be independent of manipulators...\r\n protected wantToolSettings(): boolean { return true; }\r\n\r\n public get selectionMethod(): SelectionMethod { return this._selectionMethodValue.value as SelectionMethod; }\r\n public set selectionMethod(method: SelectionMethod) { this._selectionMethodValue.value = method; }\r\n public get selectionMode(): SelectionMode { return this._selectionModeValue.value as SelectionMode; }\r\n public set selectionMode(mode: SelectionMode) { this._selectionModeValue.value = mode; }\r\n\r\n private static methodsMessage(str: string) { return CoreTools.translate(`ElementSet.SelectionMethods.${str}`); }\r\n private static _methodsName = \"selectionMethods\";\r\n /* The property descriptions used to generate ToolSettings UI. */\r\n private static _getMethodsDescription(): PropertyDescription {\r\n return {\r\n name: SelectionTool._methodsName,\r\n displayLabel: \"\",\r\n typename: \"enum\",\r\n editor: {\r\n name: \"enum-buttongroup\",\r\n params: [{\r\n type: PropertyEditorParamTypes.ButtonGroupData,\r\n buttons: [\r\n { iconSpec: \"icon-select-single\" },\r\n { iconSpec: \"icon-select-line\" },\r\n { iconSpec: \"icon-select-box\" },\r\n ],\r\n } as ButtonGroupEditorParams, {\r\n type: PropertyEditorParamTypes.SuppressEditorLabel,\r\n suppressLabelPlaceholder: true,\r\n } as SuppressLabelEditorParams,\r\n ],\r\n },\r\n enum: {\r\n choices: [\r\n { label: SelectionTool.methodsMessage(\"Pick\"), value: SelectionMethod.Pick },\r\n { label: SelectionTool.methodsMessage(\"Line\"), value: SelectionMethod.Line },\r\n { label: SelectionTool.methodsMessage(\"Box\"), value: SelectionMethod.Box },\r\n ],\r\n },\r\n };\r\n }\r\n\r\n private static modesMessage(str: string) { return CoreTools.translate(`ElementSet.SelectionModes.${str}`); }\r\n private static _modesName = \"selectionModes\";\r\n /* The property descriptions used to generate ToolSettings UI. */\r\n private static _getModesDescription(): PropertyDescription {\r\n return {\r\n name: SelectionTool._modesName,\r\n displayLabel: \"\",\r\n typename: \"enum\",\r\n editor: {\r\n name: \"enum-buttongroup\",\r\n params: [{\r\n type: PropertyEditorParamTypes.ButtonGroupData,\r\n buttons: [\r\n { iconSpec: \"icon-replace\" },\r\n { iconSpec: \"icon-select-plus\" },\r\n {\r\n iconSpec: \"icon-select-minus\",\r\n isEnabledFunction: () => { const tool = IModelApp.toolAdmin.activeTool; return tool instanceof PrimitiveTool ? tool.iModel.selectionSet.isActive : false; },\r\n },\r\n ],\r\n } as ButtonGroupEditorParams, {\r\n type: PropertyEditorParamTypes.SuppressEditorLabel,\r\n suppressLabelPlaceholder: true,\r\n } as SuppressLabelEditorParams,\r\n ],\r\n },\r\n enum: {\r\n choices: [\r\n { label: SelectionTool.modesMessage(\"Replace\"), value: SelectionMode.Replace },\r\n { label: SelectionTool.modesMessage(\"Add\"), value: SelectionMode.Add },\r\n { label: SelectionTool.modesMessage(\"Remove\"), value: SelectionMode.Remove },\r\n ],\r\n },\r\n };\r\n }\r\n\r\n protected showPrompt(mode: SelectionMode, method: SelectionMethod): void {\r\n let mainMsg = \"ElementSet.Prompts.\";\r\n switch (method) {\r\n case SelectionMethod.Pick:\r\n mainMsg += \"IdentifyElement\";\r\n break;\r\n case SelectionMethod.Line:\r\n mainMsg += (0 === this._points.length ? \"StartPoint\" : \"EndPoint\");\r\n break;\r\n case SelectionMethod.Box:\r\n mainMsg += (0 === this._points.length ? \"StartCorner\" : \"OppositeCorner\");\r\n break;\r\n }\r\n\r\n const mainInstruction = ToolAssistance.createInstruction(this.iconSpec, CoreTools.translate(mainMsg));\r\n const sections: ToolAssistanceSection[] = [];\r\n\r\n switch (method) {\r\n case SelectionMethod.Pick:\r\n const mousePickInstructions: ToolAssistanceInstruction[] = [];\r\n mousePickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.AcceptElement\"), false, ToolAssistanceInputMethod.Mouse));\r\n mousePickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClickDrag, CoreTools.translate(\"ElementSet.Inputs.BoxCorners\"), false, ToolAssistanceInputMethod.Mouse));\r\n mousePickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.RightClickDrag, CoreTools.translate(\"ElementSet.Inputs.CrossingLine\"), false, ToolAssistanceInputMethod.Mouse));\r\n mousePickInstructions.push(ToolAssistance.createModifierKeyInstruction(ToolAssistance.shiftKey, ToolAssistanceImage.LeftClickDrag, CoreTools.translate(\"ElementSet.Inputs.OverlapSelection\"), false, ToolAssistanceInputMethod.Mouse));\r\n if (SelectionMode.Replace === mode) {\r\n mousePickInstructions.push(ToolAssistance.createKeyboardInstruction(ToolAssistance.ctrlKeyboardInfo, CoreTools.translate(\"ElementSet.Inputs.InvertSelection\"), false, ToolAssistanceInputMethod.Mouse));\r\n mousePickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.CursorClick, CoreTools.translate(\"ElementSet.Inputs.ClearSelection\"), false, ToolAssistanceInputMethod.Mouse));\r\n }\r\n sections.push(ToolAssistance.createSection(mousePickInstructions, ToolAssistance.inputsLabel));\r\n\r\n const touchPickInstructions: ToolAssistanceInstruction[] = [];\r\n if (!ToolAssistance.createTouchCursorInstructions(touchPickInstructions))\r\n touchPickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchTap, CoreTools.translate(\"ElementSet.Inputs.AcceptElement\"), false, ToolAssistanceInputMethod.Touch));\r\n sections.push(ToolAssistance.createSection(touchPickInstructions, ToolAssistance.inputsLabel));\r\n break;\r\n case SelectionMethod.Line:\r\n const mouseLineInstructions: ToolAssistanceInstruction[] = [];\r\n mouseLineInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.AcceptPoint\"), false, ToolAssistanceInputMethod.Mouse));\r\n if (SelectionMode.Replace === mode)\r\n mouseLineInstructions.push(ToolAssistance.createModifierKeyInstruction(ToolAssistance.ctrlKey, ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.InvertSelection\"), false, ToolAssistanceInputMethod.Mouse));\r\n sections.push(ToolAssistance.createSection(mouseLineInstructions, ToolAssistance.inputsLabel));\r\n\r\n const touchLineInstructions: ToolAssistanceInstruction[] = [];\r\n touchLineInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchDrag, CoreTools.translate(\"ElementSet.Inputs.AcceptPoint\"), false, ToolAssistanceInputMethod.Touch));\r\n sections.push(ToolAssistance.createSection(touchLineInstructions, ToolAssistance.inputsLabel));\r\n break;\r\n case SelectionMethod.Box:\r\n const mouseBoxInstructions: ToolAssistanceInstruction[] = [];\r\n mouseBoxInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.AcceptPoint\"), false, ToolAssistanceInputMethod.Mouse));\r\n mouseBoxInstructions.push(ToolAssistance.createModifierKeyInstruction(ToolAssistance.shiftKey, ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.OverlapSelection\"), false, ToolAssistanceInputMethod.Mouse));\r\n if (SelectionMode.Replace === mode)\r\n mouseBoxInstructions.push(ToolAssistance.createModifierKeyInstruction(ToolAssistance.ctrlKey, ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.InvertSelection\"), false, ToolAssistanceInputMethod.Mouse));\r\n sections.push(ToolAssistance.createSection(mouseBoxInstructions, ToolAssistance.inputsLabel));\r\n\r\n const touchBoxInstructions: ToolAssistanceInstruction[] = [];\r\n touchBoxInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchDrag, CoreTools.translate(\"ElementSet.Inputs.AcceptPoint\"), false, ToolAssistanceInputMethod.Touch));\r\n sections.push(ToolAssistance.createSection(touchBoxInstructions, ToolAssistance.inputsLabel));\r\n break;\r\n }\r\n\r\n const instructions = ToolAssistance.createInstructions(mainInstruction, sections);\r\n IModelApp.notifications.setToolAssistance(instructions);\r\n }\r\n\r\n protected initSelectTool(): void {\r\n const method = this.selectionMethod;\r\n const mode = this.selectionMode;\r\n const enableLocate = SelectionMethod.Pick === method;\r\n\r\n this._isSelectByPoints = false;\r\n this._points.length = 0;\r\n\r\n this.initLocateElements(enableLocate, false, enableLocate ? \"default\" : IModelApp.viewManager.crossHairCursor, CoordinateLockOverrides.All);\r\n IModelApp.locateManager.options.allowDecorations = true; // Always locate to display tool tip even if we reject for adding to selection set...\r\n this.showPrompt(mode, method);\r\n }\r\n\r\n protected processMiss(_ev: BeButtonEvent): boolean {\r\n if (!this.iModel.selectionSet.isActive)\r\n return false;\r\n this.iModel.selectionSet.emptyAll();\r\n return true;\r\n }\r\n\r\n public updateSelection(elementId: Id64Arg, process: SelectionProcessing): boolean {\r\n let returnValue = false;\r\n switch (process) {\r\n case SelectionProcessing.AddElementToSelection:\r\n returnValue = this.iModel.selectionSet.add(elementId);\r\n break;\r\n case SelectionProcessing.RemoveElementFromSelection:\r\n returnValue = this.iModel.selectionSet.remove(elementId);\r\n break;\r\n case SelectionProcessing.InvertElementInSelection: // (if element is in selection remove it else add it.)\r\n returnValue = this.iModel.selectionSet.invert(elementId);\r\n break;\r\n case SelectionProcessing.ReplaceSelectionWithElement:\r\n this.iModel.selectionSet.replace(elementId);\r\n returnValue = true;\r\n break;\r\n default:\r\n return false;\r\n }\r\n // always force UI to sync display of options since the select option of Remove should only be enabled if the selection set has elements.\r\n if (returnValue)\r\n this.syncSelectionMode();\r\n return returnValue;\r\n }\r\n\r\n public async processSelection(elementId: Id64Arg, process: SelectionProcessing): Promise<boolean> { return this.updateSelection(elementId, process); }\r\n\r\n protected useOverlapSelection(ev: BeButtonEvent): boolean {\r\n if (undefined === ev.viewport)\r\n return false;\r\n const pt1 = ev.viewport.worldToView(this._points[0]);\r\n const pt2 = ev.viewport.worldToView(ev.point);\r\n const overlapMode = (pt1.x > pt2.x);\r\n return (ev.isShiftKey ? !overlapMode : overlapMode); // Shift inverts inside/overlap selection...\r\n }\r\n\r\n private selectByPointsDecorate(context: DecorateContext): void {\r\n if (!this._isSelectByPoints)\r\n return;\r\n\r\n const ev = new BeButtonEvent();\r\n IModelApp.toolAdmin.fillEventFromCursorLocation(ev);\r\n if (undefined === ev.viewport)\r\n return;\r\n\r\n const vp = context.viewport;\r\n const bestContrastIsBlack = (ColorDef.black === vp.getContrastToBackgroundColor());\r\n const crossingLine = (SelectionMethod.Line === this.selectionMethod || (SelectionMethod.Pick === this.selectionMethod && BeButton.Reset === ev.button));\r\n const overlapSelection = (crossingLine || this.useOverlapSelection(ev));\r\n\r\n const position = vp.worldToView(this._points[0]); position.x = Math.floor(position.x) + 0.5; position.y = Math.floor(position.y) + 0.5;\r\n const position2 = vp.worldToView(ev.point); position2.x = Math.floor(position2.x) + 0.5; position2.y = Math.floor(position2.y) + 0.5;\r\n const offset = position2.minus(position);\r\n\r\n const drawDecoration = (ctx: CanvasRenderingContext2D) => {\r\n ctx.strokeStyle = bestContrastIsBlack ? \"black\" : \"white\";\r\n ctx.lineWidth = 1;\r\n if (overlapSelection) ctx.setLineDash([5, 5]);\r\n if (crossingLine) {\r\n ctx.beginPath();\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(offset.x, offset.y);\r\n ctx.stroke();\r\n } else {\r\n ctx.strokeRect(0, 0, offset.x, offset.y);\r\n ctx.fillStyle = bestContrastIsBlack ? \"rgba(0,0,0,.06)\" : \"rgba(255,255,255,.06)\";\r\n ctx.fillRect(0, 0, offset.x, offset.y);\r\n }\r\n };\r\n context.addCanvasDecoration({ position, drawDecoration });\r\n }\r\n\r\n protected selectByPointsProcess(origin: Point3d, corner: Point3d, ev: BeButtonEvent, method: SelectionMethod, overlap: boolean) {\r\n const vp = ev.viewport;\r\n if (!vp)\r\n return;\r\n\r\n const pts: Point2d[] = [];\r\n pts[0] = new Point2d(Math.floor(origin.x + 0.5), Math.floor(origin.y + 0.5));\r\n pts[1] = new Point2d(Math.floor(corner.x + 0.5), Math.floor(corner.y + 0.5));\r\n const range = Range2d.createArray(pts);\r\n\r\n const rect = new ViewRect();\r\n rect.initFromRange(range);\r\n const allowTransients = this.wantPickableDecorations();\r\n\r\n vp.readPixels(rect, Pixel.Selector.Feature, (pixels) => {\r\n if (undefined === pixels)\r\n return;\r\n\r\n const sRange = Range2d.createNull();\r\n sRange.extendPoint(Point2d.create(vp.cssPixelsToDevicePixels(range.low.x), vp.cssPixelsToDevicePixels(range.low.y)));\r\n sRange.extendPoint(Point2d.create(vp.cssPixelsToDevicePixels(range.high.x), vp.cssPixelsToDevicePixels(range.high.y)));\r\n\r\n pts[0].x = vp.cssPixelsToDevicePixels(pts[0].x);\r\n pts[0].y = vp.cssPixelsToDevicePixels(pts[0].y);\r\n\r\n pts[1].x = vp.cssPixelsToDevicePixels(pts[1].x);\r\n pts[1].y = vp.cssPixelsToDevicePixels(pts[1].y);\r\n\r\n let contents = new Set<string>();\r\n const testPoint = Point2d.createZero();\r\n\r\n const getPixelElementId = (pixel: Pixel.Data) => {\r\n if (undefined === pixel.elementId || Id64.isInvalid(pixel.elementId))\r\n return undefined; // no geometry at this location...\r\n\r\n if (!allowTransients && Id64.isTransient(pixel.elementId))\r\n return undefined; // tool didn't request pickable decorations...\r\n\r\n if (!vp.isPixelSelectable(pixel))\r\n return undefined; // reality model, terrain, etc - not selectable\r\n\r\n return pixel.elementId;\r\n };\r\n\r\n if (SelectionMethod.Box === method) {\r\n const outline = overlap ? undefined : new Set<string>();\r\n const offset = sRange.clone();\r\n offset.expandInPlace(-2);\r\n for (testPoint.x = sRange.low.x; testPoint.x <= sRange.high.x; ++testPoint.x) {\r\n for (testPoint.y = sRange.low.y; testPoint.y <= sRange.high.y; ++testPoint.y) {\r\n const pixel = pixels.getPixel(testPoint.x, testPoint.y);\r\n const elementId = getPixelElementId(pixel);\r\n if (undefined === elementId)\r\n continue;\r\n\r\n if (undefined !== outline && !offset.containsPoint(testPoint))\r\n outline.add(elementId.toString());\r\n else\r\n contents.add(elementId.toString());\r\n }\r\n }\r\n if (undefined !== outline && 0 !== outline.size) {\r\n const inside = new Set<string>();\r\n contents.forEach((id) => { if (!outline.has(id)) inside.add(id); });\r\n contents = inside;\r\n }\r\n } else {\r\n const closePoint = Point2d.createZero();\r\n for (testPoint.x = sRange.low.x; testPoint.x <= sRange.high.x; ++testPoint.x) {\r\n for (testPoint.y = sRange.low.y; testPoint.y <= sRange.high.y; ++testPoint.y) {\r\n const pixel = pixels.getPixel(testPoint.x, testPoint.y);\r\n const elementId = getPixelElementId(pixel);\r\n if (undefined === elementId)\r\n continue;\r\n\r\n const fraction = testPoint.fractionOfProjectionToLine(pts[0], pts[1], 0.0);\r\n pts[0].interpolate(fraction, pts[1], closePoint);\r\n if (closePoint.distance(testPoint) < 1.5)\r\n contents.add(elementId.toString());\r\n }\r\n }\r\n }\r\n\r\n if (0 === contents.size) {\r\n if (!ev.isControlKey && this.wantSelectionClearOnMiss(ev) && this.processMiss(ev))\r\n this.syncSelectionMode();\r\n return;\r\n }\r\n\r\n switch (this.selectionMode) {\r\n case SelectionMode.Replace:\r\n if (!ev.isControlKey)\r\n this.processSelection(contents, SelectionProcessing.ReplaceSelectionWithElement); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n else\r\n this.processSelection(contents, SelectionProcessing.InvertElementInSelection); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n break;\r\n case SelectionMode.Add:\r\n this.processSelection(contents, SelectionProcessing.AddElementToSelection); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n break;\r\n case SelectionMode.Remove:\r\n this.processSelection(contents, SelectionProcessing.RemoveElementFromSelection); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n break;\r\n }\r\n }, true);\r\n }\r\n\r\n protected selectByPointsStart(ev: BeButtonEvent): boolean {\r\n if (BeButton.Data !== ev.button && BeButton.Reset !== ev.button)\r\n return false;\r\n this._points.length = 0;\r\n this._points.push(ev.point.clone());\r\n this._isSelectByPoints = true;\r\n IModelApp.accuSnap.enableLocate(false);\r\n IModelApp.toolAdmin.setLocateCircleOn(false);\r\n this.showPrompt(this.selectionMode, this.selectionMethod);\r\n return true;\r\n }\r\n\r\n protected selectByPointsEnd(ev: BeButtonEvent): boolean {\r\n if (!this._isSelectByPoints)\r\n return false;\r\n\r\n const vp = ev.viewport;\r\n if (vp === undefined) {\r\n this.initSelectTool();\r\n return false;\r\n }\r\n\r\n const origin = vp.worldToView(this._points[0]);\r\n const corner = vp.worldToView(ev.point);\r\n if (SelectionMethod.Line === this.selectionMethod || (SelectionMethod.Pick === this.selectionMethod && BeButton.Reset === ev.button))\r\n this.selectByPointsProcess(origin, corner, ev, SelectionMethod.Line, true);\r\n else\r\n this.selectByPointsProcess(origin, corner, ev, SelectionMethod.Box, this.useOverlapSelection(ev));\r\n\r\n this.initSelectTool();\r\n vp.invalidateDecorations();\r\n return true;\r\n }\r\n\r\n public override async onMouseMotion(ev: BeButtonEvent): Promise<void> {\r\n if (undefined !== ev.viewport && this._isSelectByPoints)\r\n ev.viewport.invalidateDecorations();\r\n }\r\n\r\n public async selectDecoration(ev: BeButtonEvent, currHit?: HitDetail): Promise<EventHandled> {\r\n if (undefined === currHit)\r\n currHit = await IModelApp.locateManager.doLocate(new LocateResponse(), true, ev.point, ev.viewport, ev.inputSource);\r\n\r\n if (undefined !== currHit)\r\n return (currHit.isElementHit ? IModelApp.viewManager.overrideElementButtonEvent(currHit, ev) : IModelApp.viewManager.onDecorationButtonEvent(currHit, ev));\r\n\r\n return EventHandled.No;\r\n }\r\n\r\n public override async onMouseStartDrag(ev: BeButtonEvent): Promise<EventHandled> {\r\n IModelApp.accuSnap.clear(); // Need to test hit at start drag location, not current AccuSnap...\r\n if (EventHandled.Yes === await this.selectDecoration(ev))\r\n return EventHandled.Yes;\r\n if (InputSource.Touch === ev.inputSource && SelectionMethod.Pick === this.selectionMethod)\r\n return EventHandled.No; // Require method change for line/box selection...allow IdleTool to handle touch move...\r\n return this.selectByPointsStart(ev) ? EventHandled.Yes : EventHandled.No;\r\n }\r\n\r\n public override async onMouseEndDrag(ev: BeButtonEvent): Promise<EventHandled> {\r\n return this.selectByPointsEnd(ev) ? EventHandled.Yes : EventHandled.No;\r\n }\r\n\r\n public override async onDataButtonUp(ev: BeButtonEvent): Promise<EventHandled> {\r\n if (undefined === ev.viewport)\r\n return EventHandled.No;\r\n\r\n if (this.selectByPointsEnd(ev))\r\n return EventHandled.Yes;\r\n\r\n if (SelectionMethod.Pick !== this.selectionMethod) {\r\n if (!ev.isControlKey && this.wantSelectionClearOnMiss(ev) && this.processMiss(ev))\r\n this.syncSelectionMode();\r\n if (InputSource.Touch !== ev.inputSource)\r\n this.selectByPointsStart(ev); // Require touch move and not tap to start crossing line/box selection...\r\n return EventHandled.Yes;\r\n }\r\n\r\n const hit = await IModelApp.locateManager.doLocate(new LocateResponse(), true, ev.point, ev.viewport, ev.inputSource);\r\n if (hit !== undefined && !hit.isModelHit && !hit.isMapHit) { // model hit = terrain, reality models, background maps, etc - not selectable\r\n if (EventHandled.Yes === await this.selectDecoration(ev, hit))\r\n return EventHandled.Yes;\r\n\r\n switch (this.selectionMode) {\r\n case SelectionMode.Replace:\r\n await this.processSelection(hit.sourceId, ev.isControlKey ? SelectionProcessing.InvertElementInSelection : SelectionProcessing.ReplaceSelectionWithElement);\r\n break;\r\n\r\n case SelectionMode.Add:\r\n await this.processSelection(hit.sourceId, SelectionProcessing.AddElementToSelection);\r\n break;\r\n\r\n case SelectionMode.Remove:\r\n await this.processSelection(hit.sourceId, SelectionProcessing.RemoveElementFromSelection);\r\n break;\r\n }\r\n return EventHandled.Yes;\r\n }\r\n\r\n if (!ev.isControlKey && this.wantSelectionClearOnMiss(ev) && this.processMiss(ev))\r\n this.syncSelectionMode();\r\n\r\n return EventHandled.Yes;\r\n }\r\n\r\n public override async onResetButtonUp(ev: BeButtonEvent): Promise<EventHandled> {\r\n if (this._isSelectByPoints) {\r\n if (undefined !== ev.viewport)\r\n ev.viewport.invalidateDecorations();\r\n this.initSelectTool();\r\n return EventHandled.Yes;\r\n }\r\n\r\n // Check for overlapping hits...\r\n const lastHit = SelectionMode.Remove === this.selectionMode ? undefined : IModelApp.locateManager.currHit;\r\n if (lastHit && this.iModel.selectionSet.has(lastHit.sourceId)) {\r\n const autoHit = IModelApp.accuSnap.currHit;\r\n\r\n // Play nice w/auto-locate, only remove previous hit if not currently auto-locating or over previous hit\r\n if (undefined === autoHit || autoHit.isSameHit(lastHit)) {\r\n const response = new LocateResponse();\r\n let nextHit;\r\n do {\r\n nextHit = await IModelApp.locateManager.doLocate(response, false, ev.point, ev.viewport, ev.inputSource);\r\n } while (undefined !== nextHit && (nextHit.isModelHit || nextHit.isMapHit)); // Ignore reality models, terrain, maps, etc.\r\n\r\n // remove element(s) previously selected if in replace mode, or if we have a next element in add mode\r\n if (SelectionMode.Replace === this.selectionMode || undefined !== nextHit)\r\n await this.processSelection(lastHit.sourceId, SelectionProcessing.RemoveElementFromSelection);\r\n\r\n // add element(s) located via reset button\r\n if (undefined !== nextHit)\r\n await this.processSelection(nextHit.sourceId, SelectionProcessing.AddElementToSelection);\r\n\r\n return EventHandled.Yes;\r\n }\r\n }\r\n\r\n if (EventHandled.Yes === await this.selectDecoration(ev, IModelApp.accuSnap.currHit))\r\n return EventHandled.Yes;\r\n\r\n await IModelApp.accuSnap.resetButton();\r\n return EventHandled.Yes;\r\n }\r\n\r\n public override async onSuspend() {\r\n this._isSuspended = true;\r\n if (this.wantEditManipulators())\r\n IModelApp.toolAdmin.manipulatorToolEvent.raiseEvent(this, ManipulatorToolEvent.Suspend);\r\n }\r\n\r\n public override async onUnsuspend() {\r\n this._isSuspended = false;\r\n if (this.wantEditManipulators())\r\n IModelApp.toolAdmin.manipulatorToolEvent.raiseEvent(this, ManipulatorToolEvent.Unsuspend);\r\n\r\n this.showPrompt(this.selectionMode, this.selectionMethod);\r\n }\r\n\r\n public override async onTouchMoveStart(ev: BeTouchEvent, startEv: BeTouchEvent): Promise<EventHandled> {\r\n if (startEv.isSingleTouch && !this._isSelectByPoints)\r\n await IModelApp.toolAdmin.convertTouchMoveStartToButtonDownAndMotion(startEv, ev);\r\n return (this._isSuspended || this._isSelectByPoints) ? EventHandled.Yes : EventHandled.No;\r\n }\r\n\r\n public override async onTouchMove(ev: BeTouchEvent): Promise<void> { if (this._isSelectByPoints) return IModelApp.toolAdmin.convertTouchMoveToMotion(ev); }\r\n public override async onTouchComplete(ev: BeTouchEvent): Promise<void> { if (this._isSelectByPoints) return IModelApp.toolAdmin.convertTouchEndToButtonUp(ev); }\r\n public override async onTouchCancel(ev: BeTouchEvent): Promise<void> { if (this._isSelectByPoints) return IModelApp.toolAdmin.convertTouchEndToButtonUp(ev, BeButton.Reset); }\r\n\r\n public override decorate(context: DecorateContext): void { this.selectByPointsDecorate(context); }\r\n\r\n public override async onModifierKeyTransition(_wentDown: boolean, modifier: BeModifierKeys, _event: KeyboardEvent): Promise<EventHandled> {\r\n return (modifier === BeModifierKeys.Shift && this._isSelectByPoints) ? EventHandled.Yes : EventHandled.No;\r\n }\r\n\r\n public override async filterHit(hit: HitDetail, out?: LocateResponse): Promise<LocateFilterStatus> {\r\n if (!this.wantPickableDecorations() && !hit.isElementHit)\r\n return LocateFilterStatus.Reject;\r\n\r\n const mode = this.selectionMode;\r\n if (SelectionMode.Replace === mode)\r\n return LocateFilterStatus.Accept;\r\n\r\n const isSelected = this.iModel.selectionSet.has(hit.sourceId);\r\n const status = ((SelectionMode.Add === mode ? !isSelected : isSelected) ? LocateFilterStatus.Accept : LocateFilterStatus.Reject);\r\n if (out && LocateFilterStatus.Reject === status)\r\n out.explanation = CoreTools.translate(`ElementSet.Error.${isSelected ? \"AlreadySelected\" : \"NotSelected\"}`);\r\n return status;\r\n }\r\n\r\n public async onRestartTool(): Promise<void> { return this.exitTool(); }\r\n\r\n public override async onCleanup() {\r\n if (this.wantEditManipulators())\r\n IModelApp.toolAdmin.manipulatorToolEvent.raiseEvent(this, ManipulatorToolEvent.Stop);\r\n }\r\n\r\n public override async onPostInstall() {\r\n await super.onPostInstall();\r\n if (!this.targetView)\r\n return;\r\n if (this.wantEditManipulators())\r\n IModelApp.toolAdmin.manipulatorToolEvent.raiseEvent(this, ManipulatorToolEvent.Start);\r\n this.initSelectTool();\r\n }\r\n\r\n public static async startTool(): Promise<boolean> { return new SelectionTool().run(); }\r\n\r\n private syncSelectionMode(): void {\r\n if (SelectionMode.Remove === this.selectionMode && !this.iModel.selectionSet.isActive) {\r\n // No selection active resetting selection mode since there is nothing to Remove\r\n this.selectionMode = SelectionMode.Replace;\r\n this.initSelectTool();\r\n }\r\n if (this.wantToolSettings()) {\r\n const syncMode: DialogPropertySyncItem = { value: this._selectionModeValue, propertyName: SelectionTool._modesName };\r\n IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, syncMode);\r\n this.syncToolSettingsProperties([syncMode]);\r\n }\r\n }\r\n\r\n /** Used to supply DefaultToolSettingProvider with a list of properties to use to generate ToolSettings. If undefined then no ToolSettings will be displayed\r\n * @beta\r\n */\r\n public override supplyToolSettingsProperties(): DialogItem[] | undefined {\r\n if (!this.wantToolSettings())\r\n return undefined;\r\n\r\n // load latest values from session\r\n IModelApp.toolAdmin.toolSettingsState.getInitialToolSettingValues(this.toolId, [SelectionTool._modesName])?.forEach((value) => {\r\n if (value.propertyName === SelectionTool._modesName)\r\n this._selectionModeValue = value.value;\r\n });\r\n\r\n // Make sure a mode of SelectionMode.Remove is valid\r\n if (SelectionMode.Remove === this.selectionMode && !this.iModel.selectionSet.isActive) {\r\n this.selectionMode = SelectionMode.Replace;\r\n IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: SelectionTool._modesName, value: this._selectionModeValue });\r\n }\r\n\r\n const toolSettings = new Array<DialogItem>();\r\n // generate 3 columns - label will be placed in column 0 and button group editors in columns 1 and 2.\r\n toolSettings.push({ value: this._selectionMethodValue, property: SelectionTool._getMethodsDescription(), editorPosition: { rowPriority: 0, columnIndex: 1 } });\r\n toolSettings.push({ value: this._selectionModeValue, property: SelectionTool._getModesDescription(), editorPosition: { rowPriority: 0, columnIndex: 2 } });\r\n return toolSettings;\r\n }\r\n\r\n /** Used to send changes from UI back to Tool\r\n * @beta\r\n */\r\n public override async applyToolSettingPropertyChange(updatedValue: DialogPropertySyncItem): Promise<boolean> {\r\n let changed = false;\r\n if (updatedValue.propertyName === SelectionTool._methodsName) {\r\n const saveWantManipulators = this.wantEditManipulators();\r\n this._selectionMethodValue = updatedValue.value;\r\n if (this._selectionMethodValue) {\r\n const currWantManipulators = this.wantEditManipulators();\r\n if (saveWantManipulators !== currWantManipulators)\r\n IModelApp.toolAdmin.manipulatorToolEvent.raiseEvent(this, currWantManipulators ? ManipulatorToolEvent.Start : ManipulatorToolEvent.Stop);\r\n changed = true;\r\n }\r\n }\r\n if (updatedValue.propertyName === SelectionTool._modesName) {\r\n this._selectionModeValue = updatedValue.value;\r\n if (this._selectionModeValue) {\r\n if (this.wantToolSettings())\r\n IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: SelectionTool._modesName, value: this._selectionModeValue });\r\n changed = true;\r\n }\r\n }\r\n if (changed)\r\n this.initSelectTool();\r\n return true; // return true if change is valid\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"SelectTool.js","sourceRoot":"","sources":["../../../src/tools/SelectTool.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 SelectionSet\r\n */\r\n\r\nimport { Id64, Id64Arg } from \"@itwin/core-bentley\";\r\nimport { Point2d, Point3d, Range2d } from \"@itwin/core-geometry\";\r\nimport { ColorDef } from \"@itwin/core-common\";\r\nimport {\r\n ButtonGroupEditorParams, DialogItem, DialogItemValue, DialogPropertySyncItem, PropertyDescription, PropertyEditorParamTypes,\r\n SuppressLabelEditorParams,\r\n} from \"@itwin/appui-abstract\";\r\nimport { LocateFilterStatus, LocateResponse } from \"../ElementLocateManager\";\r\nimport { HitDetail } from \"../HitDetail\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { Pixel } from \"../render/Pixel\";\r\nimport { DecorateContext } from \"../ViewContext\";\r\nimport { ViewRect } from \"../ViewRect\";\r\nimport { PrimitiveTool } from \"./PrimitiveTool\";\r\nimport { BeButton, BeButtonEvent, BeModifierKeys, BeTouchEvent, CoordinateLockOverrides, CoreTools, EventHandled, InputSource } from \"./Tool\";\r\nimport { ManipulatorToolEvent } from \"./ToolAdmin\";\r\nimport { ToolAssistance, ToolAssistanceImage, ToolAssistanceInputMethod, ToolAssistanceInstruction, ToolAssistanceSection } from \"./ToolAssistance\";\r\n\r\n// cSpell:ignore buttongroup\r\n\r\n/** The method for choosing elements with the [[SelectionTool]]\r\n * @public\r\n * @extensions\r\n */\r\nexport enum SelectionMethod {\r\n /** Identify element(s) by picking for drag selection (inside/overlap for drag box selection determined by point direction and shift key) */\r\n Pick,\r\n /** Identify elements by overlap with crossing line */\r\n Line,\r\n /** Identify elements by box selection (inside/overlap for box selection determined by point direction and shift key) */\r\n Box,\r\n}\r\n\r\n/** The mode for choosing elements with the [[SelectionTool]]\r\n * @public\r\n * @extensions\r\n */\r\nexport enum SelectionMode {\r\n /** Identified elements replace the current selection set (use control key to add or remove) */\r\n Replace,\r\n /** Identified elements are added to the current selection set */\r\n Add,\r\n /** Identified elements are removed from the current selection set */\r\n Remove,\r\n}\r\n\r\n/** The processing method to use to update the current selection.\r\n * @public\r\n * @extensions\r\n */\r\nexport enum SelectionProcessing {\r\n /** Add element to selection. */\r\n AddElementToSelection,\r\n /** Remove element from selection. */\r\n RemoveElementFromSelection,\r\n /** If element is in selection remove it, else add it. */\r\n InvertElementInSelection,\r\n /** Replace current selection with element. */\r\n ReplaceSelectionWithElement,\r\n}\r\n\r\n/** Tool for picking a set of elements of interest, selected by the user.\r\n * @public\r\n */\r\nexport class SelectionTool extends PrimitiveTool {\r\n public static override hidden = false;\r\n public static override toolId = \"Select\";\r\n public static override iconSpec = \"icon-cursor\";\r\n protected _isSelectByPoints = false;\r\n protected _isSuspended = false;\r\n protected readonly _points: Point3d[] = [];\r\n private _selectionMethodValue: DialogItemValue = { value: SelectionMethod.Pick };\r\n private _selectionModeValue: DialogItemValue = { value: SelectionMode.Replace };\r\n\r\n public override requireWriteableTarget(): boolean { return false; }\r\n public override autoLockTarget(): void { } // NOTE: For selecting elements we only care about iModel, so don't lock target model automatically.\r\n\r\n protected wantSelectionClearOnMiss(_ev: BeButtonEvent): boolean { return SelectionMode.Replace === this.selectionMode; }\r\n protected wantEditManipulators(): boolean { return SelectionMethod.Pick === this.selectionMethod; }\r\n protected wantPickableDecorations(): boolean { return this.wantEditManipulators(); } // Allow pickable decorations selection to be independent of manipulators...\r\n protected wantToolSettings(): boolean { return true; }\r\n\r\n public get selectionMethod(): SelectionMethod { return this._selectionMethodValue.value as SelectionMethod; }\r\n public set selectionMethod(method: SelectionMethod) { this._selectionMethodValue.value = method; }\r\n public get selectionMode(): SelectionMode { return this._selectionModeValue.value as SelectionMode; }\r\n public set selectionMode(mode: SelectionMode) { this._selectionModeValue.value = mode; }\r\n\r\n private static methodsMessage(str: string) { return CoreTools.translate(`ElementSet.SelectionMethods.${str}`); }\r\n private static _methodsName = \"selectionMethods\";\r\n /* The property descriptions used to generate ToolSettings UI. */\r\n private static _getMethodsDescription(): PropertyDescription {\r\n return {\r\n name: SelectionTool._methodsName,\r\n displayLabel: \"\",\r\n typename: \"enum\",\r\n editor: {\r\n name: \"enum-buttongroup\",\r\n params: [{\r\n type: PropertyEditorParamTypes.ButtonGroupData,\r\n buttons: [\r\n { iconSpec: \"icon-select-single\" },\r\n { iconSpec: \"icon-select-line\" },\r\n { iconSpec: \"icon-select-box\" },\r\n ],\r\n } as ButtonGroupEditorParams, {\r\n type: PropertyEditorParamTypes.SuppressEditorLabel,\r\n suppressLabelPlaceholder: true,\r\n } as SuppressLabelEditorParams,\r\n ],\r\n },\r\n enum: {\r\n choices: [\r\n { label: SelectionTool.methodsMessage(\"Pick\"), value: SelectionMethod.Pick },\r\n { label: SelectionTool.methodsMessage(\"Line\"), value: SelectionMethod.Line },\r\n { label: SelectionTool.methodsMessage(\"Box\"), value: SelectionMethod.Box },\r\n ],\r\n },\r\n };\r\n }\r\n\r\n private static modesMessage(str: string) { return CoreTools.translate(`ElementSet.SelectionModes.${str}`); }\r\n private static _modesName = \"selectionModes\";\r\n /* The property descriptions used to generate ToolSettings UI. */\r\n private static _getModesDescription(): PropertyDescription {\r\n return {\r\n name: SelectionTool._modesName,\r\n displayLabel: \"\",\r\n typename: \"enum\",\r\n editor: {\r\n name: \"enum-buttongroup\",\r\n params: [{\r\n type: PropertyEditorParamTypes.ButtonGroupData,\r\n buttons: [\r\n { iconSpec: \"icon-replace\" },\r\n { iconSpec: \"icon-select-plus\" },\r\n {\r\n iconSpec: \"icon-select-minus\",\r\n isEnabledFunction: () => { const tool = IModelApp.toolAdmin.activeTool; return tool instanceof PrimitiveTool ? tool.iModel.selectionSet.isActive : false; },\r\n },\r\n ],\r\n } as ButtonGroupEditorParams, {\r\n type: PropertyEditorParamTypes.SuppressEditorLabel,\r\n suppressLabelPlaceholder: true,\r\n } as SuppressLabelEditorParams,\r\n ],\r\n },\r\n enum: {\r\n choices: [\r\n { label: SelectionTool.modesMessage(\"Replace\"), value: SelectionMode.Replace },\r\n { label: SelectionTool.modesMessage(\"Add\"), value: SelectionMode.Add },\r\n { label: SelectionTool.modesMessage(\"Remove\"), value: SelectionMode.Remove },\r\n ],\r\n },\r\n };\r\n }\r\n\r\n protected showPrompt(mode: SelectionMode, method: SelectionMethod): void {\r\n let mainMsg = \"ElementSet.Prompts.\";\r\n switch (method) {\r\n case SelectionMethod.Pick:\r\n mainMsg += \"IdentifyElement\";\r\n break;\r\n case SelectionMethod.Line:\r\n mainMsg += (0 === this._points.length ? \"StartPoint\" : \"EndPoint\");\r\n break;\r\n case SelectionMethod.Box:\r\n mainMsg += (0 === this._points.length ? \"StartCorner\" : \"OppositeCorner\");\r\n break;\r\n }\r\n\r\n const mainInstruction = ToolAssistance.createInstruction(this.iconSpec, CoreTools.translate(mainMsg));\r\n const sections: ToolAssistanceSection[] = [];\r\n\r\n switch (method) {\r\n case SelectionMethod.Pick:\r\n const mousePickInstructions: ToolAssistanceInstruction[] = [];\r\n mousePickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.AcceptElement\"), false, ToolAssistanceInputMethod.Mouse));\r\n mousePickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClickDrag, CoreTools.translate(\"ElementSet.Inputs.BoxCorners\"), false, ToolAssistanceInputMethod.Mouse));\r\n mousePickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.RightClickDrag, CoreTools.translate(\"ElementSet.Inputs.CrossingLine\"), false, ToolAssistanceInputMethod.Mouse));\r\n mousePickInstructions.push(ToolAssistance.createModifierKeyInstruction(ToolAssistance.shiftKey, ToolAssistanceImage.LeftClickDrag, CoreTools.translate(\"ElementSet.Inputs.OverlapSelection\"), false, ToolAssistanceInputMethod.Mouse));\r\n if (SelectionMode.Replace === mode) {\r\n mousePickInstructions.push(ToolAssistance.createKeyboardInstruction(ToolAssistance.ctrlKeyboardInfo, CoreTools.translate(\"ElementSet.Inputs.InvertSelection\"), false, ToolAssistanceInputMethod.Mouse));\r\n mousePickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.CursorClick, CoreTools.translate(\"ElementSet.Inputs.ClearSelection\"), false, ToolAssistanceInputMethod.Mouse));\r\n }\r\n sections.push(ToolAssistance.createSection(mousePickInstructions, ToolAssistance.inputsLabel));\r\n\r\n const touchPickInstructions: ToolAssistanceInstruction[] = [];\r\n if (!ToolAssistance.createTouchCursorInstructions(touchPickInstructions))\r\n touchPickInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchTap, CoreTools.translate(\"ElementSet.Inputs.AcceptElement\"), false, ToolAssistanceInputMethod.Touch));\r\n sections.push(ToolAssistance.createSection(touchPickInstructions, ToolAssistance.inputsLabel));\r\n break;\r\n case SelectionMethod.Line:\r\n const mouseLineInstructions: ToolAssistanceInstruction[] = [];\r\n mouseLineInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.AcceptPoint\"), false, ToolAssistanceInputMethod.Mouse));\r\n if (SelectionMode.Replace === mode)\r\n mouseLineInstructions.push(ToolAssistance.createModifierKeyInstruction(ToolAssistance.ctrlKey, ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.InvertSelection\"), false, ToolAssistanceInputMethod.Mouse));\r\n sections.push(ToolAssistance.createSection(mouseLineInstructions, ToolAssistance.inputsLabel));\r\n\r\n const touchLineInstructions: ToolAssistanceInstruction[] = [];\r\n touchLineInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchDrag, CoreTools.translate(\"ElementSet.Inputs.AcceptPoint\"), false, ToolAssistanceInputMethod.Touch));\r\n sections.push(ToolAssistance.createSection(touchLineInstructions, ToolAssistance.inputsLabel));\r\n break;\r\n case SelectionMethod.Box:\r\n const mouseBoxInstructions: ToolAssistanceInstruction[] = [];\r\n mouseBoxInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.AcceptPoint\"), false, ToolAssistanceInputMethod.Mouse));\r\n mouseBoxInstructions.push(ToolAssistance.createModifierKeyInstruction(ToolAssistance.shiftKey, ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.OverlapSelection\"), false, ToolAssistanceInputMethod.Mouse));\r\n if (SelectionMode.Replace === mode)\r\n mouseBoxInstructions.push(ToolAssistance.createModifierKeyInstruction(ToolAssistance.ctrlKey, ToolAssistanceImage.LeftClick, CoreTools.translate(\"ElementSet.Inputs.InvertSelection\"), false, ToolAssistanceInputMethod.Mouse));\r\n sections.push(ToolAssistance.createSection(mouseBoxInstructions, ToolAssistance.inputsLabel));\r\n\r\n const touchBoxInstructions: ToolAssistanceInstruction[] = [];\r\n touchBoxInstructions.push(ToolAssistance.createInstruction(ToolAssistanceImage.OneTouchDrag, CoreTools.translate(\"ElementSet.Inputs.AcceptPoint\"), false, ToolAssistanceInputMethod.Touch));\r\n sections.push(ToolAssistance.createSection(touchBoxInstructions, ToolAssistance.inputsLabel));\r\n break;\r\n }\r\n\r\n const instructions = ToolAssistance.createInstructions(mainInstruction, sections);\r\n IModelApp.notifications.setToolAssistance(instructions);\r\n }\r\n\r\n protected initSelectTool(): void {\r\n const method = this.selectionMethod;\r\n const mode = this.selectionMode;\r\n const enableLocate = SelectionMethod.Pick === method;\r\n\r\n this._isSelectByPoints = false;\r\n this._points.length = 0;\r\n\r\n this.initLocateElements(enableLocate, false, enableLocate ? \"default\" : IModelApp.viewManager.crossHairCursor, CoordinateLockOverrides.All);\r\n IModelApp.locateManager.options.allowDecorations = true; // Always locate to display tool tip even if we reject for adding to selection set...\r\n this.showPrompt(mode, method);\r\n }\r\n\r\n protected processMiss(_ev: BeButtonEvent): boolean {\r\n if (!this.iModel.selectionSet.isActive)\r\n return false;\r\n this.iModel.selectionSet.emptyAll();\r\n return true;\r\n }\r\n\r\n public updateSelection(elementId: Id64Arg, process: SelectionProcessing): boolean {\r\n let returnValue = false;\r\n switch (process) {\r\n case SelectionProcessing.AddElementToSelection:\r\n returnValue = this.iModel.selectionSet.add(elementId);\r\n break;\r\n case SelectionProcessing.RemoveElementFromSelection:\r\n returnValue = this.iModel.selectionSet.remove(elementId);\r\n break;\r\n case SelectionProcessing.InvertElementInSelection: // (if element is in selection remove it else add it.)\r\n returnValue = this.iModel.selectionSet.invert(elementId);\r\n break;\r\n case SelectionProcessing.ReplaceSelectionWithElement:\r\n this.iModel.selectionSet.replace(elementId);\r\n returnValue = true;\r\n break;\r\n default:\r\n return false;\r\n }\r\n // always force UI to sync display of options since the select option of Remove should only be enabled if the selection set has elements.\r\n if (returnValue)\r\n this.syncSelectionMode();\r\n return returnValue;\r\n }\r\n\r\n public async processSelection(elementId: Id64Arg, process: SelectionProcessing): Promise<boolean> { return this.updateSelection(elementId, process); }\r\n\r\n protected useOverlapSelection(ev: BeButtonEvent): boolean {\r\n if (undefined === ev.viewport)\r\n return false;\r\n const pt1 = ev.viewport.worldToView(this._points[0]);\r\n const pt2 = ev.viewport.worldToView(ev.point);\r\n const overlapMode = (pt1.x > pt2.x);\r\n return (ev.isShiftKey ? !overlapMode : overlapMode); // Shift inverts inside/overlap selection...\r\n }\r\n\r\n private selectByPointsDecorate(context: DecorateContext): void {\r\n if (!this._isSelectByPoints)\r\n return;\r\n\r\n const ev = new BeButtonEvent();\r\n IModelApp.toolAdmin.fillEventFromCursorLocation(ev);\r\n if (undefined === ev.viewport)\r\n return;\r\n\r\n const vp = context.viewport;\r\n const bestContrastIsBlack = (ColorDef.black === vp.getContrastToBackgroundColor());\r\n const crossingLine = (SelectionMethod.Line === this.selectionMethod || (SelectionMethod.Pick === this.selectionMethod && BeButton.Reset === ev.button));\r\n const overlapSelection = (crossingLine || this.useOverlapSelection(ev));\r\n\r\n const position = vp.worldToView(this._points[0]); position.x = Math.floor(position.x) + 0.5; position.y = Math.floor(position.y) + 0.5;\r\n const position2 = vp.worldToView(ev.point); position2.x = Math.floor(position2.x) + 0.5; position2.y = Math.floor(position2.y) + 0.5;\r\n const offset = position2.minus(position);\r\n\r\n const drawDecoration = (ctx: CanvasRenderingContext2D) => {\r\n ctx.strokeStyle = bestContrastIsBlack ? \"black\" : \"white\";\r\n ctx.lineWidth = 1;\r\n if (overlapSelection) ctx.setLineDash([5, 5]);\r\n if (crossingLine) {\r\n ctx.beginPath();\r\n ctx.moveTo(0, 0);\r\n ctx.lineTo(offset.x, offset.y);\r\n ctx.stroke();\r\n } else {\r\n ctx.strokeRect(0, 0, offset.x, offset.y);\r\n ctx.fillStyle = bestContrastIsBlack ? \"rgba(0,0,0,.06)\" : \"rgba(255,255,255,.06)\";\r\n ctx.fillRect(0, 0, offset.x, offset.y);\r\n }\r\n };\r\n context.addCanvasDecoration({ position, drawDecoration });\r\n }\r\n\r\n protected selectByPointsProcess(origin: Point3d, corner: Point3d, ev: BeButtonEvent, method: SelectionMethod, overlap: boolean) {\r\n const vp = ev.viewport;\r\n if (!vp)\r\n return;\r\n\r\n const pts: Point2d[] = [];\r\n pts[0] = new Point2d(Math.floor(origin.x + 0.5), Math.floor(origin.y + 0.5));\r\n pts[1] = new Point2d(Math.floor(corner.x + 0.5), Math.floor(corner.y + 0.5));\r\n const range = Range2d.createArray(pts);\r\n\r\n const rect = new ViewRect();\r\n rect.initFromRange(range);\r\n const allowTransients = this.wantPickableDecorations();\r\n\r\n vp.readPixels(rect, Pixel.Selector.Feature, (pixels) => {\r\n if (undefined === pixels)\r\n return;\r\n\r\n const sRange = Range2d.createNull();\r\n sRange.extendPoint(Point2d.create(vp.cssPixelsToDevicePixels(range.low.x), vp.cssPixelsToDevicePixels(range.low.y)));\r\n sRange.extendPoint(Point2d.create(vp.cssPixelsToDevicePixels(range.high.x), vp.cssPixelsToDevicePixels(range.high.y)));\r\n\r\n pts[0].x = vp.cssPixelsToDevicePixels(pts[0].x);\r\n pts[0].y = vp.cssPixelsToDevicePixels(pts[0].y);\r\n\r\n pts[1].x = vp.cssPixelsToDevicePixels(pts[1].x);\r\n pts[1].y = vp.cssPixelsToDevicePixels(pts[1].y);\r\n\r\n let contents = new Set<string>();\r\n const testPoint = Point2d.createZero();\r\n\r\n const getPixelElementId = (pixel: Pixel.Data) => {\r\n if (undefined === pixel.elementId || Id64.isInvalid(pixel.elementId))\r\n return undefined; // no geometry at this location...\r\n\r\n if (!allowTransients && Id64.isTransient(pixel.elementId))\r\n return undefined; // tool didn't request pickable decorations...\r\n\r\n if (!vp.isPixelSelectable(pixel))\r\n return undefined; // reality model, terrain, etc - not selectable\r\n\r\n return pixel.elementId;\r\n };\r\n\r\n if (SelectionMethod.Box === method) {\r\n const outline = overlap ? undefined : new Set<string>();\r\n const offset = sRange.clone();\r\n offset.expandInPlace(-2);\r\n for (testPoint.x = sRange.low.x; testPoint.x <= sRange.high.x; ++testPoint.x) {\r\n for (testPoint.y = sRange.low.y; testPoint.y <= sRange.high.y; ++testPoint.y) {\r\n const pixel = pixels.getPixel(testPoint.x, testPoint.y);\r\n const elementId = getPixelElementId(pixel);\r\n if (undefined === elementId)\r\n continue;\r\n\r\n if (undefined !== outline && !offset.containsPoint(testPoint))\r\n outline.add(elementId.toString());\r\n else\r\n contents.add(elementId.toString());\r\n }\r\n }\r\n if (undefined !== outline && 0 !== outline.size) {\r\n const inside = new Set<string>();\r\n contents.forEach((id) => { if (!outline.has(id)) inside.add(id); });\r\n contents = inside;\r\n }\r\n } else {\r\n const closePoint = Point2d.createZero();\r\n for (testPoint.x = sRange.low.x; testPoint.x <= sRange.high.x; ++testPoint.x) {\r\n for (testPoint.y = sRange.low.y; testPoint.y <= sRange.high.y; ++testPoint.y) {\r\n const pixel = pixels.getPixel(testPoint.x, testPoint.y);\r\n const elementId = getPixelElementId(pixel);\r\n if (undefined === elementId)\r\n continue;\r\n\r\n const fraction = testPoint.fractionOfProjectionToLine(pts[0], pts[1], 0.0);\r\n pts[0].interpolate(fraction, pts[1], closePoint);\r\n if (closePoint.distance(testPoint) < 1.5)\r\n contents.add(elementId.toString());\r\n }\r\n }\r\n }\r\n\r\n if (0 === contents.size) {\r\n if (!ev.isControlKey && this.wantSelectionClearOnMiss(ev) && this.processMiss(ev))\r\n this.syncSelectionMode();\r\n return;\r\n }\r\n\r\n switch (this.selectionMode) {\r\n case SelectionMode.Replace:\r\n if (!ev.isControlKey)\r\n this.processSelection(contents, SelectionProcessing.ReplaceSelectionWithElement); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n else\r\n this.processSelection(contents, SelectionProcessing.InvertElementInSelection); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n break;\r\n case SelectionMode.Add:\r\n this.processSelection(contents, SelectionProcessing.AddElementToSelection); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n break;\r\n case SelectionMode.Remove:\r\n this.processSelection(contents, SelectionProcessing.RemoveElementFromSelection); // eslint-disable-line @typescript-eslint/no-floating-promises\r\n break;\r\n }\r\n }, true);\r\n }\r\n\r\n protected selectByPointsStart(ev: BeButtonEvent): boolean {\r\n if (BeButton.Data !== ev.button && BeButton.Reset !== ev.button)\r\n return false;\r\n this._points.length = 0;\r\n this._points.push(ev.point.clone());\r\n this._isSelectByPoints = true;\r\n IModelApp.accuSnap.enableLocate(false);\r\n IModelApp.toolAdmin.setLocateCircleOn(false);\r\n this.showPrompt(this.selectionMode, this.selectionMethod);\r\n return true;\r\n }\r\n\r\n protected selectByPointsEnd(ev: BeButtonEvent): boolean {\r\n if (!this._isSelectByPoints)\r\n return false;\r\n\r\n const vp = ev.viewport;\r\n if (vp === undefined) {\r\n this.initSelectTool();\r\n return false;\r\n }\r\n\r\n const origin = vp.worldToView(this._points[0]);\r\n const corner = vp.worldToView(ev.point);\r\n if (SelectionMethod.Line === this.selectionMethod || (SelectionMethod.Pick === this.selectionMethod && BeButton.Reset === ev.button))\r\n this.selectByPointsProcess(origin, corner, ev, SelectionMethod.Line, true);\r\n else\r\n this.selectByPointsProcess(origin, corner, ev, SelectionMethod.Box, this.useOverlapSelection(ev));\r\n\r\n this.initSelectTool();\r\n vp.invalidateDecorations();\r\n return true;\r\n }\r\n\r\n public override async onMouseMotion(ev: BeButtonEvent): Promise<void> {\r\n if (undefined !== ev.viewport && this._isSelectByPoints)\r\n ev.viewport.invalidateDecorations();\r\n }\r\n\r\n public async selectDecoration(ev: BeButtonEvent, currHit?: HitDetail): Promise<EventHandled> {\r\n if (undefined === currHit)\r\n currHit = await IModelApp.locateManager.doLocate(new LocateResponse(), true, ev.point, ev.viewport, ev.inputSource);\r\n\r\n if (undefined !== currHit)\r\n return (currHit.isElementHit ? IModelApp.viewManager.overrideElementButtonEvent(currHit, ev) : IModelApp.viewManager.onDecorationButtonEvent(currHit, ev));\r\n\r\n return EventHandled.No;\r\n }\r\n\r\n public override async onMouseStartDrag(ev: BeButtonEvent): Promise<EventHandled> {\r\n IModelApp.accuSnap.clear(); // Need to test hit at start drag location, not current AccuSnap...\r\n if (EventHandled.Yes === await this.selectDecoration(ev))\r\n return EventHandled.Yes;\r\n if (InputSource.Touch === ev.inputSource && SelectionMethod.Pick === this.selectionMethod)\r\n return EventHandled.No; // Require method change for line/box selection...allow IdleTool to handle touch move...\r\n return this.selectByPointsStart(ev) ? EventHandled.Yes : EventHandled.No;\r\n }\r\n\r\n public override async onMouseEndDrag(ev: BeButtonEvent): Promise<EventHandled> {\r\n return this.selectByPointsEnd(ev) ? EventHandled.Yes : EventHandled.No;\r\n }\r\n\r\n public override async onDataButtonUp(ev: BeButtonEvent): Promise<EventHandled> {\r\n if (undefined === ev.viewport)\r\n return EventHandled.No;\r\n\r\n if (this.selectByPointsEnd(ev))\r\n return EventHandled.Yes;\r\n\r\n if (SelectionMethod.Pick !== this.selectionMethod) {\r\n if (!ev.isControlKey && this.wantSelectionClearOnMiss(ev) && this.processMiss(ev))\r\n this.syncSelectionMode();\r\n if (InputSource.Touch !== ev.inputSource)\r\n this.selectByPointsStart(ev); // Require touch move and not tap to start crossing line/box selection...\r\n return EventHandled.Yes;\r\n }\r\n\r\n const hit = await IModelApp.locateManager.doLocate(new LocateResponse(), true, ev.point, ev.viewport, ev.inputSource);\r\n if (hit !== undefined && !hit.isModelHit && !hit.isMapHit) { // model hit = terrain, reality models, background maps, etc - not selectable\r\n if (EventHandled.Yes === await this.selectDecoration(ev, hit))\r\n return EventHandled.Yes;\r\n\r\n switch (this.selectionMode) {\r\n case SelectionMode.Replace:\r\n await this.processSelection(hit.sourceId, ev.isControlKey ? SelectionProcessing.InvertElementInSelection : SelectionProcessing.ReplaceSelectionWithElement);\r\n break;\r\n\r\n case SelectionMode.Add:\r\n await this.processSelection(hit.sourceId, SelectionProcessing.AddElementToSelection);\r\n break;\r\n\r\n case SelectionMode.Remove:\r\n await this.processSelection(hit.sourceId, SelectionProcessing.RemoveElementFromSelection);\r\n break;\r\n }\r\n return EventHandled.Yes;\r\n }\r\n\r\n if (!ev.isControlKey && this.wantSelectionClearOnMiss(ev) && this.processMiss(ev))\r\n this.syncSelectionMode();\r\n\r\n return EventHandled.Yes;\r\n }\r\n\r\n public override async onResetButtonUp(ev: BeButtonEvent): Promise<EventHandled> {\r\n if (this._isSelectByPoints) {\r\n if (undefined !== ev.viewport)\r\n ev.viewport.invalidateDecorations();\r\n this.initSelectTool();\r\n return EventHandled.Yes;\r\n }\r\n\r\n // Check for overlapping hits...\r\n const lastHit = SelectionMode.Remove === this.selectionMode ? undefined : IModelApp.locateManager.currHit;\r\n if (lastHit && this.iModel.selectionSet.has(lastHit.sourceId)) {\r\n const autoHit = IModelApp.accuSnap.currHit;\r\n\r\n // Play nice w/auto-locate, only remove previous hit if not currently auto-locating or over previous hit\r\n if (undefined === autoHit || autoHit.isSameHit(lastHit)) {\r\n const response = new LocateResponse();\r\n let nextHit;\r\n do {\r\n nextHit = await IModelApp.locateManager.doLocate(response, false, ev.point, ev.viewport, ev.inputSource);\r\n } while (undefined !== nextHit && (nextHit.isModelHit || nextHit.isMapHit)); // Ignore reality models, terrain, maps, etc.\r\n\r\n // remove element(s) previously selected if in replace mode, or if we have a next element in add mode\r\n if (SelectionMode.Replace === this.selectionMode || undefined !== nextHit)\r\n await this.processSelection(lastHit.sourceId, SelectionProcessing.RemoveElementFromSelection);\r\n\r\n // add element(s) located via reset button\r\n if (undefined !== nextHit)\r\n await this.processSelection(nextHit.sourceId, SelectionProcessing.AddElementToSelection);\r\n\r\n return EventHandled.Yes;\r\n }\r\n }\r\n\r\n if (EventHandled.Yes === await this.selectDecoration(ev, IModelApp.accuSnap.currHit))\r\n return EventHandled.Yes;\r\n\r\n await IModelApp.accuSnap.resetButton();\r\n return EventHandled.Yes;\r\n }\r\n\r\n public override async onSuspend() {\r\n this._isSuspended = true;\r\n if (this.wantEditManipulators())\r\n IModelApp.toolAdmin.manipulatorToolEvent.raiseEvent(this, ManipulatorToolEvent.Suspend);\r\n }\r\n\r\n public override async onUnsuspend() {\r\n this._isSuspended = false;\r\n if (this.wantEditManipulators())\r\n IModelApp.toolAdmin.manipulatorToolEvent.raiseEvent(this, ManipulatorToolEvent.Unsuspend);\r\n\r\n this.showPrompt(this.selectionMode, this.selectionMethod);\r\n }\r\n\r\n public override async onTouchMoveStart(ev: BeTouchEvent, startEv: BeTouchEvent): Promise<EventHandled> {\r\n if (startEv.isSingleTouch && !this._isSelectByPoints)\r\n await IModelApp.toolAdmin.convertTouchMoveStartToButtonDownAndMotion(startEv, ev);\r\n return (this._isSuspended || this._isSelectByPoints) ? EventHandled.Yes : EventHandled.No;\r\n }\r\n\r\n public override async onTouchMove(ev: BeTouchEvent): Promise<void> { if (this._isSelectByPoints) return IModelApp.toolAdmin.convertTouchMoveToMotion(ev); }\r\n public override async onTouchComplete(ev: BeTouchEvent): Promise<void> { if (this._isSelectByPoints) return IModelApp.toolAdmin.convertTouchEndToButtonUp(ev); }\r\n public override async onTouchCancel(ev: BeTouchEvent): Promise<void> { if (this._isSelectByPoints) return IModelApp.toolAdmin.convertTouchEndToButtonUp(ev, BeButton.Reset); }\r\n\r\n public override decorate(context: DecorateContext): void { this.selectByPointsDecorate(context); }\r\n\r\n public override async onModifierKeyTransition(_wentDown: boolean, modifier: BeModifierKeys, _event: KeyboardEvent): Promise<EventHandled> {\r\n return (modifier === BeModifierKeys.Shift && this._isSelectByPoints) ? EventHandled.Yes : EventHandled.No;\r\n }\r\n\r\n public override async filterHit(hit: HitDetail, out?: LocateResponse): Promise<LocateFilterStatus> {\r\n if (!this.wantPickableDecorations() && !hit.isElementHit)\r\n return LocateFilterStatus.Reject;\r\n\r\n const mode = this.selectionMode;\r\n if (SelectionMode.Replace === mode)\r\n return LocateFilterStatus.Accept;\r\n\r\n const isSelected = this.iModel.selectionSet.has(hit.sourceId);\r\n const status = ((SelectionMode.Add === mode ? !isSelected : isSelected) ? LocateFilterStatus.Accept : LocateFilterStatus.Reject);\r\n if (out && LocateFilterStatus.Reject === status)\r\n out.explanation = CoreTools.translate(`ElementSet.Error.${isSelected ? \"AlreadySelected\" : \"NotSelected\"}`);\r\n return status;\r\n }\r\n\r\n public async onRestartTool(): Promise<void> { return this.exitTool(); }\r\n\r\n public override async onCleanup() {\r\n if (this.wantEditManipulators())\r\n IModelApp.toolAdmin.manipulatorToolEvent.raiseEvent(this, ManipulatorToolEvent.Stop);\r\n }\r\n\r\n public override async onPostInstall() {\r\n await super.onPostInstall();\r\n if (!this.targetView)\r\n return;\r\n if (this.wantEditManipulators())\r\n IModelApp.toolAdmin.manipulatorToolEvent.raiseEvent(this, ManipulatorToolEvent.Start);\r\n this.initSelectTool();\r\n }\r\n\r\n public static async startTool(): Promise<boolean> { return new SelectionTool().run(); }\r\n\r\n private syncSelectionMode(): void {\r\n if (SelectionMode.Remove === this.selectionMode && !this.iModel.selectionSet.isActive) {\r\n // No selection active resetting selection mode since there is nothing to Remove\r\n this.selectionMode = SelectionMode.Replace;\r\n this.initSelectTool();\r\n }\r\n if (this.wantToolSettings()) {\r\n const syncMode: DialogPropertySyncItem = { value: this._selectionModeValue, propertyName: SelectionTool._modesName };\r\n IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, syncMode);\r\n this.syncToolSettingsProperties([syncMode]);\r\n }\r\n }\r\n\r\n /** Used to supply DefaultToolSettingProvider with a list of properties to use to generate ToolSettings. If undefined then no ToolSettings will be displayed\r\n * @beta\r\n */\r\n public override supplyToolSettingsProperties(): DialogItem[] | undefined {\r\n if (!this.wantToolSettings())\r\n return undefined;\r\n\r\n // load latest values from session\r\n IModelApp.toolAdmin.toolSettingsState.getInitialToolSettingValues(this.toolId, [SelectionTool._modesName])?.forEach((value) => {\r\n if (value.propertyName === SelectionTool._modesName)\r\n this._selectionModeValue = value.value;\r\n });\r\n\r\n // Make sure a mode of SelectionMode.Remove is valid\r\n if (SelectionMode.Remove === this.selectionMode && !this.iModel.selectionSet.isActive) {\r\n this.selectionMode = SelectionMode.Replace;\r\n IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: SelectionTool._modesName, value: this._selectionModeValue });\r\n }\r\n\r\n const toolSettings = new Array<DialogItem>();\r\n // generate 3 columns - label will be placed in column 0 and button group editors in columns 1 and 2.\r\n toolSettings.push({ value: this._selectionMethodValue, property: SelectionTool._getMethodsDescription(), editorPosition: { rowPriority: 0, columnIndex: 1 } });\r\n toolSettings.push({ value: this._selectionModeValue, property: SelectionTool._getModesDescription(), editorPosition: { rowPriority: 0, columnIndex: 2 } });\r\n return toolSettings;\r\n }\r\n\r\n /** Used to send changes from UI back to Tool\r\n * @beta\r\n */\r\n public override async applyToolSettingPropertyChange(updatedValue: DialogPropertySyncItem): Promise<boolean> {\r\n let changed = false;\r\n if (updatedValue.propertyName === SelectionTool._methodsName) {\r\n const saveWantManipulators = this.wantEditManipulators();\r\n this._selectionMethodValue = updatedValue.value;\r\n if (this._selectionMethodValue) {\r\n const currWantManipulators = this.wantEditManipulators();\r\n if (saveWantManipulators !== currWantManipulators)\r\n IModelApp.toolAdmin.manipulatorToolEvent.raiseEvent(this, currWantManipulators ? ManipulatorToolEvent.Start : ManipulatorToolEvent.Stop);\r\n changed = true;\r\n }\r\n }\r\n if (updatedValue.propertyName === SelectionTool._modesName) {\r\n this._selectionModeValue = updatedValue.value;\r\n if (this._selectionModeValue) {\r\n if (this.wantToolSettings())\r\n IModelApp.toolAdmin.toolSettingsState.saveToolSettingProperty(this.toolId, { propertyName: SelectionTool._modesName, value: this._selectionModeValue });\r\n changed = true;\r\n }\r\n }\r\n if (changed)\r\n this.initSelectTool();\r\n return true; // return true if change is valid\r\n }\r\n}\r\n"]}
@@ -9,17 +9,29 @@ import { FuzzySearchResults } from "../FuzzySearch";
9
9
  import { HitDetail } from "../HitDetail";
10
10
  import { DecorateContext, DynamicsContext } from "../ViewContext";
11
11
  import { ScreenViewport } from "../Viewport";
12
- /** @public */
12
+ /**
13
+ * @public
14
+ * @extensions
15
+ */
13
16
  export declare type ToolType = typeof Tool;
14
- /** @public */
17
+ /**
18
+ * @public
19
+ * @extensions
20
+ */
15
21
  export declare type ToolList = ToolType[];
16
- /** @public */
22
+ /**
23
+ * @public
24
+ * @extensions
25
+ */
17
26
  export declare enum BeButton {
18
27
  Data = 0,
19
28
  Reset = 1,
20
29
  Middle = 2
21
30
  }
22
- /** @public */
31
+ /**
32
+ * @public
33
+ * @extensions
34
+ */
23
35
  export declare enum CoordinateLockOverrides {
24
36
  None = 0,
25
37
  ACS = 2,
@@ -28,6 +40,7 @@ export declare enum CoordinateLockOverrides {
28
40
  }
29
41
  /** The *source* that generated an event.
30
42
  * @public
43
+ * @extensions
31
44
  */
32
45
  export declare enum InputSource {
33
46
  /** Source not defined */
@@ -39,6 +52,7 @@ export declare enum InputSource {
39
52
  }
40
53
  /** The *source* that generated a coordinate.
41
54
  * @public
55
+ * @extensions
42
56
  */
43
57
  export declare enum CoordSource {
44
58
  /** Event was created by an action from the user */
@@ -52,6 +66,7 @@ export declare enum CoordSource {
52
66
  }
53
67
  /** Numeric mask for a set of modifier keys (control, shift, and alt).
54
68
  * @public
69
+ * @extensions
55
70
  */
56
71
  export declare enum BeModifierKeys {
57
72
  None = 0,
@@ -59,7 +74,10 @@ export declare enum BeModifierKeys {
59
74
  Shift = 2,
60
75
  Alt = 4
61
76
  }
62
- /** @public */
77
+ /**
78
+ * @public
79
+ * @extensions
80
+ */
63
81
  export declare class BeButtonState {
64
82
  private readonly _downUorPt;
65
83
  private readonly _downRawPt;
@@ -76,6 +94,7 @@ export declare class BeButtonState {
76
94
  }
77
95
  /** Properties for constructing a BeButtonEvent
78
96
  * @public
97
+ * @extensions
79
98
  */
80
99
  export interface BeButtonEventProps {
81
100
  /** The point for this event, in world coordinates.
@@ -106,6 +125,7 @@ export interface BeButtonEventProps {
106
125
  }
107
126
  /** Object sent to Tools that holds information about button/touch/wheel events.
108
127
  * @public
128
+ * @extensions
109
129
  */
110
130
  export declare class BeButtonEvent implements BeButtonEventProps {
111
131
  private readonly _point;
@@ -168,12 +188,14 @@ export declare class BeButtonEvent implements BeButtonEventProps {
168
188
  }
169
189
  /** Properties for initializing a BeTouchEvent
170
190
  * @public
191
+ * @extensions
171
192
  */
172
193
  export interface BeTouchEventProps extends BeButtonEventProps {
173
194
  touchEvent: TouchEvent;
174
195
  }
175
196
  /** A ButtonEvent generated by touch input.
176
197
  * @public
198
+ * @extensions
177
199
  */
178
200
  export declare class BeTouchEvent extends BeButtonEvent implements BeTouchEventProps {
179
201
  tapCount: number;
@@ -192,6 +214,7 @@ export declare class BeTouchEvent extends BeButtonEvent implements BeTouchEventP
192
214
  }
193
215
  /** Properties for constructing a BeWheelEvent
194
216
  * @public
217
+ * @extensions
195
218
  */
196
219
  export interface BeWheelEventProps extends BeButtonEventProps {
197
220
  wheelDelta?: number;
@@ -200,6 +223,7 @@ export interface BeWheelEventProps extends BeButtonEventProps {
200
223
  /** A BeButtonEvent generated by movement of a mouse wheel.
201
224
  * @note wheel events include mouse location.
202
225
  * @public
226
+ * @extensions
203
227
  */
204
228
  export declare class BeWheelEvent extends BeButtonEvent implements BeWheelEventProps {
205
229
  wheelDelta: number;
@@ -212,6 +236,7 @@ export declare class BeWheelEvent extends BeButtonEvent implements BeWheelEventP
212
236
  * @see [[InteractiveTool]] for a base Tool class to handle user input events from a Viewport.
213
237
  * @see [Tools]($docs/learning/frontend/tools.md)
214
238
  * @public
239
+ * @extensions
215
240
  */
216
241
  export declare class Tool {
217
242
  /** If true, this Tool will not appear in the list from [[ToolRegistry.getToolList]]. This should be overridden in subclasses to hide them. */
@@ -299,7 +324,10 @@ export declare class Tool {
299
324
  */
300
325
  parseAndRun(..._args: string[]): Promise<boolean>;
301
326
  }
302
- /** @public */
327
+ /**
328
+ * @public
329
+ * @extensions
330
+ */
303
331
  export declare enum EventHandled {
304
332
  No = 0,
305
333
  Yes = 1
@@ -307,6 +335,7 @@ export declare enum EventHandled {
307
335
  /** A Tool that may be installed, via [[ToolAdmin]], to handle user input. The ToolAdmin manages the currently installed ViewingTool, PrimitiveTool,
308
336
  * InputCollector, and IdleTool. Each must derive from this class and there may only be one of each type installed at a time.
309
337
  * @public
338
+ * @extensions
310
339
  */
311
340
  export declare abstract class InteractiveTool extends Tool {
312
341
  /** Used to avoid sending tools up events for which they did not receive the down event. */
@@ -524,6 +553,7 @@ export declare abstract class InteractiveTool extends Tool {
524
553
  * (ex. get a distance by snapping to 2 points) without affecting the state of the active primitive tool.
525
554
  * An InputCollector will suspend the active PrimitiveTool and can be suspended by a ViewTool.
526
555
  * @public
556
+ * @extensions
527
557
  */
528
558
  export declare abstract class InputCollector extends InteractiveTool {
529
559
  run(..._args: any[]): Promise<boolean>;
@@ -532,6 +562,7 @@ export declare abstract class InputCollector extends InteractiveTool {
532
562
  }
533
563
  /** The result type of [[ToolRegistry.parseAndRun]].
534
564
  * @public
565
+ * @extensions
535
566
  */
536
567
  export declare enum ParseAndRunResult {
537
568
  /** The tool's `parseAndRun` method was invoked and returned `true`. */
@@ -547,6 +578,7 @@ export declare enum ParseAndRunResult {
547
578
  }
548
579
  /** Possible errors resulting from [[ToolRegistry.parseKeyin]].
549
580
  * @public
581
+ * @extensions
550
582
  */
551
583
  export declare enum KeyinParseError {
552
584
  /** No registered tool matching the keyin was found. */
@@ -556,6 +588,7 @@ export declare enum KeyinParseError {
556
588
  }
557
589
  /** Possible errors form [[ToolRegistry.parseKeyin]].
558
590
  * @public
591
+ * @extensions
559
592
  */
560
593
  export interface ParseKeyinError {
561
594
  /** Union discriminator for [[ParseKeyinResult]]. */
@@ -565,6 +598,7 @@ export interface ParseKeyinError {
565
598
  }
566
599
  /** Successful result from [[ToolRegistry.parseKeyin]].
567
600
  * @public
601
+ * @extensions
568
602
  */
569
603
  export interface ParsedKeyin {
570
604
  /** Union discriminator for [[ParseKeyinResult]]. */
@@ -576,6 +610,7 @@ export interface ParsedKeyin {
576
610
  }
577
611
  /** The result type of [[ToolRegistry.parseKeyin]].
578
612
  * @public
613
+ * @extensions
579
614
  */
580
615
  export declare type ParseKeyinResult = ParsedKeyin | ParseKeyinError;
581
616
  /** The ToolRegistry holds a mapping between toolIds and their corresponding [[Tool]] class. This provides the mechanism to
@@ -1 +1 @@
1
- {"version":3,"file":"Tool.d.ts","sourceRoot":"","sources":["../../../src/tools/Tool.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAE5G,OAAO,EAAE,mBAAmB,EAAe,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAc,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAe,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAEzC,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,cAAc;AACd,oBAAY,QAAQ,GAAG,OAAO,IAAI,CAAC;AAEnC,cAAc;AACd,oBAAY,QAAQ,GAAG,QAAQ,EAAE,CAAC;AAElC,cAAc;AACd,oBAAY,QAAQ;IAAG,IAAI,IAAI;IAAE,KAAK,IAAI;IAAE,MAAM,IAAI;CAAE;AAExD,cAAc;AACd,oBAAY,uBAAuB;IACjC,IAAI,IAAI;IACR,GAAG,IAAS;IACZ,IAAI,IAAS;IACb,GAAG,QAAS;CACb;AAED;;GAEG;AACH,oBAAY,WAAW;IACrB,yBAAyB;IACzB,OAAO,IAAI;IACX,4CAA4C;IAC5C,KAAK,IAAI;IACT,0BAA0B;IAC1B,KAAK,IAAI;CACV;AAED;;GAEG;AACH,oBAAY,WAAW;IACrB,mDAAmD;IACnD,IAAI,IAAI;IACR,6DAA6D;IAC7D,SAAS,IAAI;IACb,6CAA6C;IAC7C,cAAc,IAAI;IAClB,kDAAkD;IAClD,QAAQ,IAAI;CACb;AAED;;GAEG;AACH,oBAAY,cAAc;IAAG,IAAI,IAAI;IAAE,OAAO,IAAS;IAAE,KAAK,IAAS;IAAE,GAAG,IAAS;CAAE;AAEvF,cAAc;AACd,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IACrD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IAC9C,QAAQ,EAAE,MAAM,CAAK;IACrB,MAAM,EAAE,OAAO,CAAS;IACxB,aAAa,EAAE,OAAO,CAAS;IAC/B,UAAU,EAAE,OAAO,CAAS;IAC5B,WAAW,EAAE,WAAW,CAAuB;IAEtD,IAAW,SAAS,IACK,OAAO,CADkB;IAClD,IAAW,SAAS,CAAC,EAAE,EAAE,OAAO,EAAkC;IAClE,IAAW,SAAS,IACK,OAAO,CADkB;IAClD,IAAW,SAAS,CAAC,EAAE,EAAE,OAAO,EAAkC;IAE3D,IAAI,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW;CASxJ;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,yFAAyF;IACzF,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,sGAAsG;IACtG,UAAU,CAAC,EAAE,WAAW,CAAC;IACzB,YAAY,CAAC,EAAE,cAAc,CAAC;IAC9B,uCAAuC;IACvC,MAAM,CAAC,EAAE,QAAQ,CAAC;IAClB,yGAAyG;IACzG,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,mFAAmF;IACnF,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,4FAA4F;IAC5F,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,qFAAqF;IACrF,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;GAEG;AACH,qBAAa,aAAc,YAAW,kBAAkB;IACtD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA0B;IACpD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0B;IACrD,OAAO,CAAC,SAAS,CAAC,CAAQ;IAC1B,+GAA+G;IACxG,QAAQ,CAAC,EAAE,cAAc,CAAC;IACjC,sGAAsG;IAC/F,UAAU,cAAoB;IACrC,6EAA6E;IACtE,YAAY,iBAAuB;IAC1C,yGAAyG;IAClG,MAAM,UAAS;IACtB,mFAAmF;IAC5E,aAAa,UAAS;IAC7B,4FAA4F;IACrF,UAAU,UAAS;IAC1B,gDAAgD;IACzC,MAAM,WAAiB;IAC9B,qFAAqF;IAC9E,WAAW,cAAuB;gBAEtB,KAAK,CAAC,EAAE,kBAAkB;IAE7C;;OAEG;IACH,IAAW,OAAO,IAAI,OAAO,CAAwC;IACrE;;OAEG;IACH,IAAW,KAAK,IACK,OAAO,CADc;IAC1C,IAAW,KAAK,CAAC,EAAE,EAAE,OAAO,EAA8B;IAC1D,yEAAyE;IACzE,IAAW,QAAQ,IACK,OAAO,CADiB;IAChD,IAAW,QAAQ,CAAC,EAAE,EAAE,OAAO,EAAiC;IAChE;;OAEG;IACH,IAAW,SAAS,IACK,OAAO,CADkB;IAClD,IAAW,SAAS,CAAC,EAAE,EAAE,OAAO,EAAkC;IAClE;;OAEG;IACH,IAAW,QAAQ,IAAI,KAAK,GAAG,SAAS,CAA2B;IACnE,IAAW,QAAQ,CAAC,GAAG,EAAE,KAAK,GAAG,SAAS,EAA2B;IAErE,0FAA0F;IACnF,UAAU;IAEjB,mDAAmD;IAC5C,IAAI,CAAC,KAAK,EAAE,kBAAkB;IAcrC,qDAAqD;IACrD,IAAW,YAAY,YAAiE;IACxF,mDAAmD;IACnD,IAAW,UAAU,YAA+D;IACpF,iDAAiD;IACjD,IAAW,QAAQ,YAA6D;IAEhF,yEAAyE;IAClE,OAAO,CAAC,GAAG,EAAE,aAAa,GAAG,IAAI;IAcxC,yCAAyC;IAClC,KAAK,IAAI,IAAI;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,UAAU,EAAE,UAAU,CAAC;CACxB;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,aAAc,YAAW,iBAAiB;IACnE,QAAQ,EAAE,MAAM,CAAK;IACrB,UAAU,EAAE,UAAU,CAAC;IAC9B,IAAW,UAAU,IAAI,MAAM,CAAiD;IAChF,IAAW,aAAa,IAAI,OAAO,CAAkC;IACrE,IAAW,gBAAgB,IAAI,OAAO,CAAkC;IACxE,IAAW,WAAW,IAAI,OAAO,CAAyD;IAC1F,IAAW,WAAW,IAAI,OAAO,CAAyD;IAC1F,IAAW,cAAc,IAAI,OAAO,CAAyD;gBAC1E,KAAK,EAAE,iBAAiB;IAK3B,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI;WAMlC,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,cAAc,GAAG,OAAO;WAI3D,oBAAoB,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,cAAc,GAAG,OAAO,GAAG,SAAS;WAuB9E,aAAa,CAAC,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS;CAQ5E;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,kBAAkB;IAC3D,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AACD;;;GAGG;AACH,qBAAa,YAAa,SAAQ,aAAc,YAAW,iBAAiB;IACnE,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;gBACD,KAAK,CAAC,EAAE,iBAAiB;IAK5B,OAAO,CAAC,GAAG,EAAE,YAAY,GAAG,IAAI;CAMjD;AAED;;;;;GAKG;AACH,qBAAa,IAAI;IACf,8IAA8I;IAC9I,OAAc,MAAM,UAAS;IAC7B,8FAA8F;IAC9F,OAAc,MAAM,SAAM;IAC1B;;OAEG;IACH,OAAc,QAAQ,SAAM;IAC5B,oGAAoG;IACpG,OAAc,SAAS,EAAE,MAAM,CAAC;IAEhC,gBAAgB;IAChB,IAAW,IAAI,gBAA2C;gBAEvC,GAAG,KAAK,EAAE,GAAG,EAAE;IAElC;;;OAGG;IACH,WAAkB,OAAO,IAAI,MAAM,CAAc;IAEjD;;;OAGG;IACH,WAAkB,OAAO,IAAI,MAAM,GAAG,SAAS,CAAc;IAE7D;;;OAGG;WACW,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM;IAIzC,OAAO,CAAC,MAAM,CAAC,eAAe;IAM9B;;;OAGG;IACH,WAAkB,KAAK,IAAI,MAAM,CAGhC;IAED;;;OAGG;IACH,WAAkB,YAAY,IAAI,MAAM,CAIvC;IAED;;;;OAIG;IACH,WAAkB,OAAO,IAAI,MAAM,CAGlC;IAED;;;;OAIG;IACH,WAAkB,WAAW,IAAI,MAAM,CAGtC;IAED;;;OAGG;IACH,IAAW,MAAM,IAAI,MAAM,CAA6B;IAExD;;OAEG;IACH,IAAW,KAAK,IAAI,MAAM,CAA4B;IAEtD;;OAEG;IACH,IAAW,OAAO,IAAI,MAAM,CAA8B;IAE1D;;OAEG;IACH,IAAW,WAAW,IAAI,MAAM,CAAkC;IAElE;;OAEG;IACH,IAAW,QAAQ,IAAI,MAAM,CAA+B;IAE5D;;;OAGG;IACU,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAEnD;;;;;OAKG;IACU,WAAW,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;CAG/D;AAED,cAAc;AACd,oBAAY,YAAY;IAAG,EAAE,IAAI;IAAE,GAAG,IAAI;CAAE;AAE5C;;;GAGG;AACH,8BAAsB,eAAgB,SAAQ,IAAI;IAEhD,2FAA2F;IACpF,iBAAiB,UAAS;IAEjC,0HAA0H;IAC7G,SAAS,IAAI,OAAO,CAAC,OAAO,CAAC;IAE1C,qEAAqE;IACxD,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;aAE3B,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAEzC,mDAAmD;IACtC,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAE5C,0FAA0F;IAC7E,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAEvC;;OAEG;IACU,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAEvC;;OAEG;IACU,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC;IAEzC,2EAA2E;IACpE,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAE9C;;OAEG;IACI,qBAAqB,CAAC,IAAI,EAAE,SAAS,GAAG,mBAAmB,GAAG,SAAS;IAE9E;;;OAGG;IACI,QAAQ,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAEhD;;;;OAIG;IACI,iBAAiB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAEzD;;;OAGG;IACU,iBAAiB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IACzE;;OAEG;IACU,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAEvE;;OAEG;IACU,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IACxE;;OAEG;IACU,cAAc,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAEtE;;OAEG;IACU,kBAAkB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAE1E;;OAEG;IACU,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAExE,wCAAwC;IAC3B,aAAa,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAE7D;;OAEG;IACU,gBAAgB,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IACxE;;;OAGG;IACU,cAAc,CAAC,EAAE,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAErE;;OAEG;IACU,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAEnE;;;;;OAKG;IACU,uBAAuB,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAEjI;;;;;OAKG;IACU,eAAe,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;IAEjG,wFAAwF;IAC3E,YAAY,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC3D,6FAA6F;IAChF,UAAU,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IACzD,4MAA4M;IAC/L,eAAe,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC9D,oHAAoH;IACvG,aAAa,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAC5D,yDAAyD;IAC5C,WAAW,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAE1D;;;;OAIG;IACU,gBAAgB,CAAC,GAAG,EAAE,YAAY,EAAE,QAAQ,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAE/F;;;;OAIG;IACU,UAAU,CAAC,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IAE1D,oBAAoB,CAAC,GAAG,EAAE,cAAc,EAAE,qBAAqB,EAAE,OAAO,GAAG,OAAO;IAClF,eAAe,CAAC,GAAG,EAAE,aAAa,EAAE,cAAc,EAAE,OAAO,GAAG,OAAO;IAE5E;;;;OAIG;IACI,yBAAyB,CAAC,SAAS,EAAE,cAAc,GAAG,SAAS,EAAE,QAAQ,EAAE,cAAc,GAAG,SAAS,GAAG,IAAI;IAEnH;;;;;OAKG;IACU,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,GAAG,MAAM,CAAC;IAEvE,wGAAwG;IACxG,IAAW,aAAa,IAAI,OAAO,CAAgE;IAEnG,yEAAyE;IAClE,qBAAqB,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI;IAErD,yDAAyD;IACzD,IAAW,iBAAiB,IAAI,OAAO,CAAiD;IAExF,kMAAkM;IAC3L,aAAa,IAAI,IAAI;IAE5B,uCAAuC;IAChC,WAAW,IAAI,IAAI;IAE1B,wDAAwD;IACjD,cAAc,CAAC,GAAG,EAAE,aAAa,EAAE,QAAQ,EAAE,eAAe,GAAG,IAAI;IAE1E;;OAEG;IACU,SAAS,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAE3F;;;;;;;;OAQG;IACI,iBAAiB,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,uBAAuB,GAAG,IAAI;IA6BpI;;;OAGG;IACI,kBAAkB,CAAC,YAAY,GAAE,OAAc,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,uBAAuB,GAAG,IAAI;IAK5I,gBAAgB;IAChB,SAAS,CAAC,qBAAqB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC;IAEnE,gBAAgB;IAChB,SAAS,CAAC,+BAA+B,CAAC,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,OAAO;IASjF,gBAAgB;IAChB,SAAS,CAAC,4BAA4B,CAAC,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,eAAe,GAAG,OAAO;IAS1G,gBAAgB;IAChB,SAAS,CAAC,4BAA4B,CAAC,QAAQ,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI;IAOjG,gBAAgB;IAChB,SAAS,CAAC,4BAA4B,CAAC,YAAY,EAAE,MAAM,GAAG,cAAc,CAAC,GAAG,CAAC;IAQjF;;;OAGG;IACH,SAAS,CAAC,4BAA4B,CAAC,SAAS,EAAE,cAAc,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,GAAG,CAAC,GAAG,SAAS;IAIvG;;;;OAIG;IACH,SAAS,CAAC,8BAA8B,CAAC,QAAQ,EAAE,sBAAsB,GAAG,OAAO;IAanF;;;OAGG;IACH,SAAS,CAAC,mCAAmC,CAAC,UAAU,EAAE,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,IAAI;IAYtF;;;OAGG;IACI,4BAA4B,IAAI,UAAU,EAAE,GAAG,SAAS;IAE/D;;;OAGG;IACU,8BAA8B,CAAC,aAAa,EAAE,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC;IAEpG;;;OAGG;IACI,0BAA0B,CAAC,QAAQ,EAAE,sBAAsB,EAAE;IAIpE;;;OAGG;IACI,4BAA4B;IAInC;;;;OAIG;IACU,eAAe,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CACvE;AAED;;;;GAIG;AACH,8BAAsB,cAAe,SAAQ,eAAe;IACpC,GAAG,CAAC,GAAG,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAW/C,QAAQ;IAGC,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,OAAO,CAAC,YAAY,CAAC;CAIjF;AAED;;GAEG;AACH,oBAAY,iBAAiB;IAC3B,uEAAuE;IACvE,OAAO,IAAA;IACP,8DAA8D;IAC9D,YAAY,IAAA;IACZ,8HAA8H;IAC9H,gBAAgB,IAAA;IAChB,wDAAwD;IACxD,WAAW,IAAA;IACX,8FAA8F;IAC9F,gBAAgB,IAAA;CACjB;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,uDAAuD;IACvD,YAAY,IAAiC;IAC7C,8FAA8F;IAC9F,gBAAgB,IAAqC;CACtD;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,oDAAoD;IACpD,EAAE,EAAE,KAAK,CAAC;IACV,uDAAuD;IACvD,KAAK,EAAE,eAAe,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,oDAAoD;IACpD,EAAE,EAAE,IAAI,CAAC;IACT,2DAA2D;IAC3D,IAAI,EAAE,QAAQ,CAAC;IACf,iEAAiE;IACjE,IAAI,EAAE,MAAM,EAAE,CAAC;CAChB;AAED;;GAEG;AACH,oBAAY,gBAAgB,GAAG,WAAW,GAAG,eAAe,CAAC;AAE7D;;;GAGG;AACH,qBAAa,YAAY;IACvB,SAAgB,KAAK,2BAA+B;IACpD,OAAO,CAAC,UAAU,CAAC,CAAW;IAEvB,QAAQ;IAIf;;;OAGG;IACI,UAAU,CAAC,MAAM,EAAE,MAAM;IAKhC;;;;OAIG;IACI,QAAQ,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,EAAE,MAAM;IAcvD;;;OAGG;IACI,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,SAAS,CAAC,EAAE,MAAM;IASxD,+BAA+B;IACxB,IAAI,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;IAIjD;;;;;OAKG;IACI,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,GAAG,SAAS;IAK/D;;;;;OAKG;IACU,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAKlE;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAmEhB;;;;;;;;;;;;;OAaG;IACI,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB;IA0ClD,uEAAuE;IAChE,WAAW,IAAI,QAAQ;IAQ9B;;;;;;OAMG;IACU,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAkBnE;;;;;OAKG;IACI,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC;IAItE;;;;;;OAMG;IACI,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,SAAS;CAI3D;AAED,gBAAgB;AAChB,qBAAa,SAAS;IACpB,OAAc,SAAS,SAAe;IACtC,OAAc,KAAK,SAAsB;WAC3B,SAAS,CAAC,MAAM,EAAE,MAAM;WACxB,iBAAiB,CAAC,GAAG,EAAE,MAAM;CAC5C"}
1
+ {"version":3,"file":"Tool.d.ts","sourceRoot":"","sources":["../../../src/tools/Tool.ts"],"names":[],"mappings":"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"}