@itwin/core-frontend 3.2.0-dev.9 → 3.3.0-dev.2

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 (1218) hide show
  1. package/CHANGELOG.md +55 -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/BriefcaseConnection.d.ts +35 -1
  26. package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
  27. package/lib/cjs/BriefcaseConnection.js +52 -1
  28. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  29. package/lib/cjs/CategorySelectorState.d.ts +1 -0
  30. package/lib/cjs/CategorySelectorState.d.ts.map +1 -1
  31. package/lib/cjs/CategorySelectorState.js +1 -0
  32. package/lib/cjs/CategorySelectorState.js.map +1 -1
  33. package/lib/cjs/ChangeFlags.d.ts +1 -0
  34. package/lib/cjs/ChangeFlags.d.ts.map +1 -1
  35. package/lib/cjs/ChangeFlags.js +1 -0
  36. package/lib/cjs/ChangeFlags.js.map +1 -1
  37. package/lib/cjs/ContextRealityModelState.d.ts +1 -0
  38. package/lib/cjs/ContextRealityModelState.d.ts.map +1 -1
  39. package/lib/cjs/ContextRealityModelState.js +1 -0
  40. package/lib/cjs/ContextRealityModelState.js.map +1 -1
  41. package/lib/cjs/CoordSystem.d.ts +1 -0
  42. package/lib/cjs/CoordSystem.d.ts.map +1 -1
  43. package/lib/cjs/CoordSystem.js +1 -0
  44. package/lib/cjs/CoordSystem.js.map +1 -1
  45. package/lib/cjs/DisplayStyleState.d.ts +4 -0
  46. package/lib/cjs/DisplayStyleState.d.ts.map +1 -1
  47. package/lib/cjs/DisplayStyleState.js +9 -4
  48. package/lib/cjs/DisplayStyleState.js.map +1 -1
  49. package/lib/cjs/DrawingViewState.d.ts +5 -2
  50. package/lib/cjs/DrawingViewState.d.ts.map +1 -1
  51. package/lib/cjs/DrawingViewState.js +34 -3
  52. package/lib/cjs/DrawingViewState.js.map +1 -1
  53. package/lib/cjs/ElementLocateManager.d.ts +23 -5
  54. package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
  55. package/lib/cjs/ElementLocateManager.js +19 -4
  56. package/lib/cjs/ElementLocateManager.js.map +1 -1
  57. package/lib/cjs/EmphasizeElements.d.ts +1 -0
  58. package/lib/cjs/EmphasizeElements.d.ts.map +1 -1
  59. package/lib/cjs/EmphasizeElements.js +1 -0
  60. package/lib/cjs/EmphasizeElements.js.map +1 -1
  61. package/lib/cjs/EntityState.d.ts +2 -0
  62. package/lib/cjs/EntityState.d.ts.map +1 -1
  63. package/lib/cjs/EntityState.js +2 -0
  64. package/lib/cjs/EntityState.js.map +1 -1
  65. package/lib/cjs/FeatureOverrideProvider.d.ts +1 -0
  66. package/lib/cjs/FeatureOverrideProvider.d.ts.map +1 -1
  67. package/lib/cjs/FeatureOverrideProvider.js.map +1 -1
  68. package/lib/cjs/FlashSettings.d.ts +3 -0
  69. package/lib/cjs/FlashSettings.d.ts.map +1 -1
  70. package/lib/cjs/FlashSettings.js +2 -0
  71. package/lib/cjs/FlashSettings.js.map +1 -1
  72. package/lib/cjs/FrontendHubAccess.d.ts +4 -1
  73. package/lib/cjs/FrontendHubAccess.d.ts.map +1 -1
  74. package/lib/cjs/FrontendHubAccess.js.map +1 -1
  75. package/lib/cjs/FrontendLoggerCategory.d.ts +6 -1
  76. package/lib/cjs/FrontendLoggerCategory.d.ts.map +1 -1
  77. package/lib/cjs/FrontendLoggerCategory.js +5 -0
  78. package/lib/cjs/FrontendLoggerCategory.js.map +1 -1
  79. package/lib/cjs/FrustumAnimator.d.ts +2 -0
  80. package/lib/cjs/FrustumAnimator.d.ts.map +1 -1
  81. package/lib/cjs/FrustumAnimator.js +2 -0
  82. package/lib/cjs/FrustumAnimator.js.map +1 -1
  83. package/lib/cjs/FuzzySearch.d.ts +1 -0
  84. package/lib/cjs/FuzzySearch.d.ts.map +1 -1
  85. package/lib/cjs/FuzzySearch.js.map +1 -1
  86. package/lib/cjs/GlobeAnimator.d.ts +1 -0
  87. package/lib/cjs/GlobeAnimator.d.ts.map +1 -1
  88. package/lib/cjs/GlobeAnimator.js +1 -0
  89. package/lib/cjs/GlobeAnimator.js.map +1 -1
  90. package/lib/cjs/HitDetail.d.ts +26 -5
  91. package/lib/cjs/HitDetail.d.ts.map +1 -1
  92. package/lib/cjs/HitDetail.js +26 -5
  93. package/lib/cjs/HitDetail.js.map +1 -1
  94. package/lib/cjs/IModelApp.d.ts +9 -0
  95. package/lib/cjs/IModelApp.d.ts.map +1 -1
  96. package/lib/cjs/IModelApp.js +38 -23
  97. package/lib/cjs/IModelApp.js.map +1 -1
  98. package/lib/cjs/IModelConnection.d.ts +11 -2
  99. package/lib/cjs/IModelConnection.d.ts.map +1 -1
  100. package/lib/cjs/IModelConnection.js +23 -2
  101. package/lib/cjs/IModelConnection.js.map +1 -1
  102. package/lib/cjs/ImageUtil.d.ts +15 -2
  103. package/lib/cjs/ImageUtil.d.ts.map +1 -1
  104. package/lib/cjs/ImageUtil.js +19 -4
  105. package/lib/cjs/ImageUtil.js.map +1 -1
  106. package/lib/cjs/IpcApp.d.ts +1 -0
  107. package/lib/cjs/IpcApp.d.ts.map +1 -1
  108. package/lib/cjs/IpcApp.js +1 -0
  109. package/lib/cjs/IpcApp.js.map +1 -1
  110. package/lib/cjs/MarginPercent.d.ts +1 -0
  111. package/lib/cjs/MarginPercent.d.ts.map +1 -1
  112. package/lib/cjs/MarginPercent.js +1 -0
  113. package/lib/cjs/MarginPercent.js.map +1 -1
  114. package/lib/cjs/Marker.d.ts +16 -3
  115. package/lib/cjs/Marker.d.ts.map +1 -1
  116. package/lib/cjs/Marker.js +3 -0
  117. package/lib/cjs/Marker.js.map +1 -1
  118. package/lib/cjs/ModelSelectorState.d.ts +1 -0
  119. package/lib/cjs/ModelSelectorState.d.ts.map +1 -1
  120. package/lib/cjs/ModelSelectorState.js +1 -0
  121. package/lib/cjs/ModelSelectorState.js.map +1 -1
  122. package/lib/cjs/ModelState.d.ts +10 -0
  123. package/lib/cjs/ModelState.d.ts.map +1 -1
  124. package/lib/cjs/ModelState.js +10 -0
  125. package/lib/cjs/ModelState.js.map +1 -1
  126. package/lib/cjs/NotificationManager.d.ts +11 -0
  127. package/lib/cjs/NotificationManager.d.ts.map +1 -1
  128. package/lib/cjs/NotificationManager.js +10 -0
  129. package/lib/cjs/NotificationManager.js.map +1 -1
  130. package/lib/cjs/PerModelCategoryVisibility.d.ts +1 -0
  131. package/lib/cjs/PerModelCategoryVisibility.d.ts.map +1 -1
  132. package/lib/cjs/PerModelCategoryVisibility.js +1 -0
  133. package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
  134. package/lib/cjs/SelectionSet.d.ts +7 -0
  135. package/lib/cjs/SelectionSet.d.ts.map +1 -1
  136. package/lib/cjs/SelectionSet.js +3 -0
  137. package/lib/cjs/SelectionSet.js.map +1 -1
  138. package/lib/cjs/SheetViewState.d.ts +6 -5
  139. package/lib/cjs/SheetViewState.d.ts.map +1 -1
  140. package/lib/cjs/SheetViewState.js +58 -6
  141. package/lib/cjs/SheetViewState.js.map +1 -1
  142. package/lib/cjs/SpatialViewState.d.ts +7 -2
  143. package/lib/cjs/SpatialViewState.d.ts.map +1 -1
  144. package/lib/cjs/SpatialViewState.js +17 -3
  145. package/lib/cjs/SpatialViewState.js.map +1 -1
  146. package/lib/cjs/Sprites.d.ts +3 -0
  147. package/lib/cjs/Sprites.d.ts.map +1 -1
  148. package/lib/cjs/Sprites.js +3 -0
  149. package/lib/cjs/Sprites.js.map +1 -1
  150. package/lib/cjs/StandardView.d.ts +1 -0
  151. package/lib/cjs/StandardView.d.ts.map +1 -1
  152. package/lib/cjs/StandardView.js +1 -0
  153. package/lib/cjs/StandardView.js.map +1 -1
  154. package/lib/cjs/SubCategoriesCache.d.ts +14 -7
  155. package/lib/cjs/SubCategoriesCache.d.ts.map +1 -1
  156. package/lib/cjs/SubCategoriesCache.js +36 -8
  157. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  158. package/lib/cjs/TentativePoint.d.ts +4 -1
  159. package/lib/cjs/TentativePoint.d.ts.map +1 -1
  160. package/lib/cjs/TentativePoint.js +4 -1
  161. package/lib/cjs/TentativePoint.js.map +1 -1
  162. package/lib/cjs/Tiles.d.ts +1 -0
  163. package/lib/cjs/Tiles.d.ts.map +1 -1
  164. package/lib/cjs/Tiles.js +1 -0
  165. package/lib/cjs/Tiles.js.map +1 -1
  166. package/lib/cjs/ViewAnimation.d.ts +6 -0
  167. package/lib/cjs/ViewAnimation.d.ts.map +1 -1
  168. package/lib/cjs/ViewAnimation.js.map +1 -1
  169. package/lib/cjs/ViewCreator2d.d.ts +2 -0
  170. package/lib/cjs/ViewCreator2d.d.ts.map +1 -1
  171. package/lib/cjs/ViewCreator2d.js +1 -0
  172. package/lib/cjs/ViewCreator2d.js.map +1 -1
  173. package/lib/cjs/ViewCreator3d.d.ts +2 -8
  174. package/lib/cjs/ViewCreator3d.d.ts.map +1 -1
  175. package/lib/cjs/ViewCreator3d.js +12 -38
  176. package/lib/cjs/ViewCreator3d.js.map +1 -1
  177. package/lib/cjs/ViewGlobalLocation.d.ts +3 -0
  178. package/lib/cjs/ViewGlobalLocation.d.ts.map +1 -1
  179. package/lib/cjs/ViewGlobalLocation.js +1 -0
  180. package/lib/cjs/ViewGlobalLocation.js.map +1 -1
  181. package/lib/cjs/ViewManager.d.ts +3 -0
  182. package/lib/cjs/ViewManager.d.ts.map +1 -1
  183. package/lib/cjs/ViewManager.js +2 -0
  184. package/lib/cjs/ViewManager.js.map +1 -1
  185. package/lib/cjs/ViewPose.d.ts +1 -0
  186. package/lib/cjs/ViewPose.d.ts.map +1 -1
  187. package/lib/cjs/ViewPose.js +1 -0
  188. package/lib/cjs/ViewPose.js.map +1 -1
  189. package/lib/cjs/ViewRect.d.ts +1 -0
  190. package/lib/cjs/ViewRect.d.ts.map +1 -1
  191. package/lib/cjs/ViewRect.js +1 -0
  192. package/lib/cjs/ViewRect.js.map +1 -1
  193. package/lib/cjs/ViewState.d.ts +17 -2
  194. package/lib/cjs/ViewState.d.ts.map +1 -1
  195. package/lib/cjs/ViewState.js +40 -9
  196. package/lib/cjs/ViewState.js.map +1 -1
  197. package/lib/cjs/ViewStatus.d.ts +1 -0
  198. package/lib/cjs/ViewStatus.d.ts.map +1 -1
  199. package/lib/cjs/ViewStatus.js +1 -0
  200. package/lib/cjs/ViewStatus.js.map +1 -1
  201. package/lib/cjs/ViewingSpace.d.ts +1 -0
  202. package/lib/cjs/ViewingSpace.d.ts.map +1 -1
  203. package/lib/cjs/ViewingSpace.js +1 -0
  204. package/lib/cjs/ViewingSpace.js.map +1 -1
  205. package/lib/cjs/Viewport.d.ts +6 -2
  206. package/lib/cjs/Viewport.d.ts.map +1 -1
  207. package/lib/cjs/Viewport.js +12 -4
  208. package/lib/cjs/Viewport.js.map +1 -1
  209. package/lib/cjs/ViewportSync.d.ts +119 -0
  210. package/lib/cjs/ViewportSync.d.ts.map +1 -0
  211. package/lib/cjs/ViewportSync.js +187 -0
  212. package/lib/cjs/ViewportSync.js.map +1 -0
  213. package/lib/cjs/core-frontend.d.ts +10 -6
  214. package/lib/cjs/core-frontend.d.ts.map +1 -1
  215. package/lib/cjs/core-frontend.js +11 -6
  216. package/lib/cjs/core-frontend.js.map +1 -1
  217. package/lib/cjs/extension/Extension.d.ts +24 -15
  218. package/lib/cjs/extension/Extension.d.ts.map +1 -1
  219. package/lib/cjs/extension/Extension.js +0 -8
  220. package/lib/cjs/extension/Extension.js.map +1 -1
  221. package/lib/cjs/extension/ExtensionAdmin.d.ts +21 -44
  222. package/lib/cjs/extension/ExtensionAdmin.d.ts.map +1 -1
  223. package/lib/cjs/extension/ExtensionAdmin.js +55 -64
  224. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  225. package/lib/cjs/extension/ExtensionRuntime.js +231 -59
  226. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  227. package/lib/cjs/extension/providers/ExtensionLoadScript.d.ts +10 -0
  228. package/lib/cjs/extension/providers/ExtensionLoadScript.d.ts.map +1 -0
  229. package/lib/cjs/extension/providers/ExtensionLoadScript.js +55 -0
  230. package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -0
  231. package/lib/cjs/extension/providers/ExtensionServiceClient.d.ts +52 -0
  232. package/lib/cjs/extension/providers/ExtensionServiceClient.d.ts.map +1 -0
  233. package/lib/cjs/extension/providers/ExtensionServiceClient.js +131 -0
  234. package/lib/cjs/extension/providers/ExtensionServiceClient.js.map +1 -0
  235. package/lib/cjs/extension/providers/LocalExtensionProvider.d.ts +26 -0
  236. package/lib/cjs/extension/providers/LocalExtensionProvider.d.ts.map +1 -0
  237. package/lib/cjs/extension/providers/LocalExtensionProvider.js +24 -0
  238. package/lib/cjs/extension/providers/LocalExtensionProvider.js.map +1 -0
  239. package/lib/cjs/extension/providers/RemoteExtensionProvider.d.ts +36 -0
  240. package/lib/cjs/extension/providers/RemoteExtensionProvider.d.ts.map +1 -0
  241. package/lib/cjs/extension/providers/RemoteExtensionProvider.js +53 -0
  242. package/lib/cjs/extension/providers/RemoteExtensionProvider.js.map +1 -0
  243. package/lib/cjs/extension/providers/ServiceExtensionProvider.d.ts +37 -0
  244. package/lib/cjs/extension/providers/ServiceExtensionProvider.d.ts.map +1 -0
  245. package/lib/cjs/extension/providers/ServiceExtensionProvider.js +84 -0
  246. package/lib/cjs/extension/providers/ServiceExtensionProvider.js.map +1 -0
  247. package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  248. package/lib/cjs/quantity-formatting/QuantityFormatter.js +2 -1
  249. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  250. package/lib/cjs/render/CanvasDecoration.d.ts +2 -0
  251. package/lib/cjs/render/CanvasDecoration.d.ts.map +1 -1
  252. package/lib/cjs/render/CanvasDecoration.js.map +1 -1
  253. package/lib/cjs/render/Decorations.d.ts +1 -0
  254. package/lib/cjs/render/Decorations.d.ts.map +1 -1
  255. package/lib/cjs/render/Decorations.js +1 -0
  256. package/lib/cjs/render/Decorations.js.map +1 -1
  257. package/lib/cjs/render/FeatureSymbology.d.ts +1 -0
  258. package/lib/cjs/render/FeatureSymbology.d.ts.map +1 -1
  259. package/lib/cjs/render/FeatureSymbology.js +1 -0
  260. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  261. package/lib/cjs/render/GraphicBranch.d.ts +2 -0
  262. package/lib/cjs/render/GraphicBranch.d.ts.map +1 -1
  263. package/lib/cjs/render/GraphicBranch.js +1 -0
  264. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  265. package/lib/cjs/render/GraphicBuilder.d.ts +33 -2
  266. package/lib/cjs/render/GraphicBuilder.d.ts.map +1 -1
  267. package/lib/cjs/render/GraphicBuilder.js +26 -0
  268. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  269. package/lib/cjs/render/GraphicPrimitive.d.ts +14 -0
  270. package/lib/cjs/render/GraphicPrimitive.d.ts.map +1 -1
  271. package/lib/cjs/render/GraphicPrimitive.js.map +1 -1
  272. package/lib/cjs/render/ParticleCollectionBuilder.d.ts +3 -0
  273. package/lib/cjs/render/ParticleCollectionBuilder.d.ts.map +1 -1
  274. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  275. package/lib/cjs/render/Pixel.d.ts +1 -0
  276. package/lib/cjs/render/Pixel.d.ts.map +1 -1
  277. package/lib/cjs/render/Pixel.js +1 -0
  278. package/lib/cjs/render/Pixel.js.map +1 -1
  279. package/lib/cjs/render/RenderClipVolume.d.ts +1 -0
  280. package/lib/cjs/render/RenderClipVolume.d.ts.map +1 -1
  281. package/lib/cjs/render/RenderClipVolume.js +1 -0
  282. package/lib/cjs/render/RenderClipVolume.js.map +1 -1
  283. package/lib/cjs/render/RenderGraphic.d.ts +3 -0
  284. package/lib/cjs/render/RenderGraphic.d.ts.map +1 -1
  285. package/lib/cjs/render/RenderGraphic.js +2 -0
  286. package/lib/cjs/render/RenderGraphic.js.map +1 -1
  287. package/lib/cjs/render/RenderSystem.d.ts +4 -3
  288. package/lib/cjs/render/RenderSystem.d.ts.map +1 -1
  289. package/lib/cjs/render/RenderSystem.js +4 -3
  290. package/lib/cjs/render/RenderSystem.js.map +1 -1
  291. package/lib/cjs/render/RenderTexture.d.ts +7 -0
  292. package/lib/cjs/render/RenderTexture.d.ts.map +1 -1
  293. package/lib/cjs/render/RenderTexture.js.map +1 -1
  294. package/lib/cjs/render/Scene.d.ts +1 -0
  295. package/lib/cjs/render/Scene.d.ts.map +1 -1
  296. package/lib/cjs/render/Scene.js +1 -0
  297. package/lib/cjs/render/Scene.js.map +1 -1
  298. package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts +10 -0
  299. package/lib/cjs/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
  300. package/lib/cjs/render/ScreenSpaceEffectBuilder.js +2 -0
  301. package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
  302. package/lib/cjs/render/primitives/VertexKey.d.ts +4 -2
  303. package/lib/cjs/render/primitives/VertexKey.d.ts.map +1 -1
  304. package/lib/cjs/render/primitives/VertexKey.js +23 -12
  305. package/lib/cjs/render/primitives/VertexKey.js.map +1 -1
  306. package/lib/cjs/render/primitives/VertexTable.d.ts +1 -1
  307. package/lib/cjs/render/primitives/VertexTable.js +30 -2
  308. package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
  309. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts +12 -4
  310. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  311. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +20 -15
  312. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  313. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts +2 -1
  314. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  315. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +6 -1
  316. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  317. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts +14 -12
  318. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.d.ts.map +1 -1
  319. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js +26 -25
  320. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  321. package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts +8 -8
  322. package/lib/cjs/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  323. package/lib/cjs/render/primitives/mesh/MeshBuilder.js +15 -15
  324. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
  325. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts +11 -6
  326. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
  327. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js +12 -15
  328. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  329. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts +1 -1
  330. package/lib/cjs/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  331. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +6 -2
  332. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  333. package/lib/cjs/render/webgl/AttributeMap.js +1 -1
  334. package/lib/cjs/render/webgl/CachedGeometry.d.ts +7 -1
  335. package/lib/cjs/render/webgl/CachedGeometry.d.ts.map +1 -1
  336. package/lib/cjs/render/webgl/CachedGeometry.js +20 -10
  337. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  338. package/lib/cjs/render/webgl/DrawCommand.d.ts.map +1 -1
  339. package/lib/cjs/render/webgl/DrawCommand.js +2 -1
  340. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  341. package/lib/cjs/render/webgl/InstancedGeometry.d.ts +1 -0
  342. package/lib/cjs/render/webgl/InstancedGeometry.d.ts.map +1 -1
  343. package/lib/cjs/render/webgl/InstancedGeometry.js +1 -0
  344. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  345. package/lib/cjs/render/webgl/RealityMesh.d.ts +14 -11
  346. package/lib/cjs/render/webgl/RealityMesh.d.ts.map +1 -1
  347. package/lib/cjs/render/webgl/RealityMesh.js +26 -17
  348. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  349. package/lib/cjs/render/webgl/SceneCompositor.d.ts +2 -0
  350. package/lib/cjs/render/webgl/SceneCompositor.d.ts.map +1 -1
  351. package/lib/cjs/render/webgl/SceneCompositor.js +219 -52
  352. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  353. package/lib/cjs/render/webgl/ShaderBuilder.d.ts +5 -4
  354. package/lib/cjs/render/webgl/ShaderBuilder.d.ts.map +1 -1
  355. package/lib/cjs/render/webgl/ShaderBuilder.js +7 -6
  356. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  357. package/lib/cjs/render/webgl/System.d.ts +4 -4
  358. package/lib/cjs/render/webgl/System.d.ts.map +1 -1
  359. package/lib/cjs/render/webgl/System.js +6 -6
  360. package/lib/cjs/render/webgl/System.js.map +1 -1
  361. package/lib/cjs/render/webgl/Target.d.ts +6 -1
  362. package/lib/cjs/render/webgl/Target.d.ts.map +1 -1
  363. package/lib/cjs/render/webgl/Target.js +64 -13
  364. package/lib/cjs/render/webgl/Target.js.map +1 -1
  365. package/lib/cjs/render/webgl/Technique.d.ts +4 -2
  366. package/lib/cjs/render/webgl/Technique.d.ts.map +1 -1
  367. package/lib/cjs/render/webgl/Technique.js +166 -135
  368. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  369. package/lib/cjs/render/webgl/TechniqueFlags.d.ts +7 -3
  370. package/lib/cjs/render/webgl/TechniqueFlags.d.ts.map +1 -1
  371. package/lib/cjs/render/webgl/TechniqueFlags.js +17 -4
  372. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  373. package/lib/cjs/render/webgl/TechniqueId.d.ts +8 -7
  374. package/lib/cjs/render/webgl/TechniqueId.d.ts.map +1 -1
  375. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  376. package/lib/cjs/render/webgl/glsl/Animation.d.ts.map +1 -1
  377. package/lib/cjs/render/webgl/glsl/Animation.js +2 -0
  378. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  379. package/lib/cjs/render/webgl/glsl/Blur.d.ts +2 -1
  380. package/lib/cjs/render/webgl/glsl/Blur.d.ts.map +1 -1
  381. package/lib/cjs/render/webgl/glsl/Blur.js +38 -6
  382. package/lib/cjs/render/webgl/glsl/Blur.js.map +1 -1
  383. package/lib/cjs/render/webgl/glsl/Color.d.ts.map +1 -1
  384. package/lib/cjs/render/webgl/glsl/Color.js +8 -7
  385. package/lib/cjs/render/webgl/glsl/Color.js.map +1 -1
  386. package/lib/cjs/render/webgl/glsl/CopyStencil.js +1 -1
  387. package/lib/cjs/render/webgl/glsl/Decode.d.ts +2 -1
  388. package/lib/cjs/render/webgl/glsl/Decode.d.ts.map +1 -1
  389. package/lib/cjs/render/webgl/glsl/Decode.js +16 -2
  390. package/lib/cjs/render/webgl/glsl/Decode.js.map +1 -1
  391. package/lib/cjs/render/webgl/glsl/Edge.d.ts +2 -2
  392. package/lib/cjs/render/webgl/glsl/Edge.d.ts.map +1 -1
  393. package/lib/cjs/render/webgl/glsl/Edge.js +6 -19
  394. package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
  395. package/lib/cjs/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  396. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +0 -2
  397. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  398. package/lib/cjs/render/webgl/glsl/PointString.d.ts +3 -3
  399. package/lib/cjs/render/webgl/glsl/PointString.d.ts.map +1 -1
  400. package/lib/cjs/render/webgl/glsl/PointString.js +6 -6
  401. package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
  402. package/lib/cjs/render/webgl/glsl/Polyline.d.ts +3 -3
  403. package/lib/cjs/render/webgl/glsl/Polyline.d.ts.map +1 -1
  404. package/lib/cjs/render/webgl/glsl/Polyline.js +6 -21
  405. package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
  406. package/lib/cjs/render/webgl/glsl/Surface.d.ts +2 -2
  407. package/lib/cjs/render/webgl/glsl/Surface.d.ts.map +1 -1
  408. package/lib/cjs/render/webgl/glsl/Surface.js +50 -34
  409. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  410. package/lib/cjs/render/webgl/glsl/Vertex.d.ts +3 -3
  411. package/lib/cjs/render/webgl/glsl/Vertex.d.ts.map +1 -1
  412. package/lib/cjs/render/webgl/glsl/Vertex.js +143 -57
  413. package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
  414. package/lib/cjs/tile/ClassifierTileTree.d.ts.map +1 -1
  415. package/lib/cjs/tile/ClassifierTileTree.js +3 -4
  416. package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
  417. package/lib/cjs/tile/DisclosedTileTreeSet.d.ts +2 -0
  418. package/lib/cjs/tile/DisclosedTileTreeSet.d.ts.map +1 -1
  419. package/lib/cjs/tile/DisclosedTileTreeSet.js +1 -0
  420. package/lib/cjs/tile/DisclosedTileTreeSet.js.map +1 -1
  421. package/lib/cjs/tile/DynamicIModelTile.js +4 -2
  422. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  423. package/lib/cjs/tile/GltfReader.d.ts +19 -9
  424. package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
  425. package/lib/cjs/tile/GltfReader.js +24 -7
  426. package/lib/cjs/tile/GltfReader.js.map +1 -1
  427. package/lib/cjs/tile/IModelTile.js +1 -1
  428. package/lib/cjs/tile/IModelTile.js.map +1 -1
  429. package/lib/cjs/tile/IModelTileRequestChannels.d.ts +3 -3
  430. package/lib/cjs/tile/IModelTileRequestChannels.d.ts.map +1 -1
  431. package/lib/cjs/tile/IModelTileRequestChannels.js +7 -11
  432. package/lib/cjs/tile/IModelTileRequestChannels.js.map +1 -1
  433. package/lib/cjs/tile/IModelTileTree.d.ts +3 -3
  434. package/lib/cjs/tile/IModelTileTree.d.ts.map +1 -1
  435. package/lib/cjs/tile/IModelTileTree.js +1 -1
  436. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  437. package/lib/cjs/tile/ImdlReader.d.ts +2 -0
  438. package/lib/cjs/tile/ImdlReader.d.ts.map +1 -1
  439. package/lib/cjs/tile/ImdlReader.js +2 -0
  440. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  441. package/lib/cjs/tile/OPCFormatInterpreter.d.ts.map +1 -1
  442. package/lib/cjs/tile/OPCFormatInterpreter.js +1 -2
  443. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
  444. package/lib/cjs/tile/PrimaryTileTree.d.ts.map +1 -1
  445. package/lib/cjs/tile/PrimaryTileTree.js +4 -4
  446. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  447. package/lib/cjs/tile/RealityTileLoader.d.ts +1 -1
  448. package/lib/cjs/tile/RealityTileLoader.d.ts.map +1 -1
  449. package/lib/cjs/tile/RealityTileLoader.js +34 -6
  450. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  451. package/lib/cjs/tile/Tile.d.ts +5 -0
  452. package/lib/cjs/tile/Tile.d.ts.map +1 -1
  453. package/lib/cjs/tile/Tile.js +5 -0
  454. package/lib/cjs/tile/Tile.js.map +1 -1
  455. package/lib/cjs/tile/TileAdmin.d.ts +18 -1
  456. package/lib/cjs/tile/TileAdmin.d.ts.map +1 -1
  457. package/lib/cjs/tile/TileAdmin.js +26 -19
  458. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  459. package/lib/cjs/tile/TileContent.d.ts +1 -0
  460. package/lib/cjs/tile/TileContent.d.ts.map +1 -1
  461. package/lib/cjs/tile/TileContent.js.map +1 -1
  462. package/lib/cjs/tile/TileDrawArgs.d.ts +2 -0
  463. package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
  464. package/lib/cjs/tile/TileDrawArgs.js +1 -0
  465. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  466. package/lib/cjs/tile/TileParams.d.ts +1 -0
  467. package/lib/cjs/tile/TileParams.d.ts.map +1 -1
  468. package/lib/cjs/tile/TileParams.js.map +1 -1
  469. package/lib/cjs/tile/TileRequest.d.ts +1 -0
  470. package/lib/cjs/tile/TileRequest.d.ts.map +1 -1
  471. package/lib/cjs/tile/TileRequest.js +1 -0
  472. package/lib/cjs/tile/TileRequest.js.map +1 -1
  473. package/lib/cjs/tile/TileRequestChannel.d.ts +2 -0
  474. package/lib/cjs/tile/TileRequestChannel.d.ts.map +1 -1
  475. package/lib/cjs/tile/TileRequestChannel.js +2 -0
  476. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  477. package/lib/cjs/tile/TileRequestChannels.d.ts +1 -4
  478. package/lib/cjs/tile/TileRequestChannels.d.ts.map +1 -1
  479. package/lib/cjs/tile/TileRequestChannels.js +2 -6
  480. package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
  481. package/lib/cjs/tile/TileTree.d.ts +2 -0
  482. package/lib/cjs/tile/TileTree.d.ts.map +1 -1
  483. package/lib/cjs/tile/TileTree.js +2 -0
  484. package/lib/cjs/tile/TileTree.js.map +1 -1
  485. package/lib/cjs/tile/TileTreeOwner.d.ts +1 -0
  486. package/lib/cjs/tile/TileTreeOwner.d.ts.map +1 -1
  487. package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
  488. package/lib/cjs/tile/TileTreeParams.d.ts +1 -0
  489. package/lib/cjs/tile/TileTreeParams.d.ts.map +1 -1
  490. package/lib/cjs/tile/TileTreeParams.js.map +1 -1
  491. package/lib/cjs/tile/TileTreeReference.d.ts +2 -0
  492. package/lib/cjs/tile/TileTreeReference.d.ts.map +1 -1
  493. package/lib/cjs/tile/TileTreeReference.js +2 -0
  494. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  495. package/lib/cjs/tile/TileTreeSupplier.d.ts +1 -0
  496. package/lib/cjs/tile/TileTreeSupplier.d.ts.map +1 -1
  497. package/lib/cjs/tile/TileTreeSupplier.js.map +1 -1
  498. package/lib/cjs/tile/TileUsageMarker.d.ts +1 -0
  499. package/lib/cjs/tile/TileUsageMarker.d.ts.map +1 -1
  500. package/lib/cjs/tile/TileUsageMarker.js +1 -0
  501. package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
  502. package/lib/cjs/tile/TiledGraphicsProvider.d.ts +1 -0
  503. package/lib/cjs/tile/TiledGraphicsProvider.d.ts.map +1 -1
  504. package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
  505. package/lib/cjs/tile/internal.d.ts +0 -2
  506. package/lib/cjs/tile/internal.d.ts.map +1 -1
  507. package/lib/cjs/tile/internal.js +0 -2
  508. package/lib/cjs/tile/internal.js.map +1 -1
  509. package/lib/cjs/tile/map/ArcGisUtilities.d.ts +2 -1
  510. package/lib/cjs/tile/map/ArcGisUtilities.d.ts.map +1 -1
  511. package/lib/cjs/tile/map/ArcGisUtilities.js +31 -20
  512. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  513. package/lib/cjs/tile/map/BingElevation.d.ts +1 -0
  514. package/lib/cjs/tile/map/BingElevation.d.ts.map +1 -1
  515. package/lib/cjs/tile/map/BingElevation.js +1 -0
  516. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  517. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -1
  518. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  519. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +50 -27
  520. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  521. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +0 -1
  522. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  523. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +12 -10
  524. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  525. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts +20 -9
  526. package/lib/cjs/tile/map/MapLayerAuthentication.d.ts.map +1 -1
  527. package/lib/cjs/tile/map/MapLayerAuthentication.js +0 -8
  528. package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -1
  529. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts +24 -6
  530. package/lib/cjs/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  531. package/lib/cjs/tile/map/MapLayerFormatRegistry.js +28 -7
  532. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  533. package/lib/cjs/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  534. package/lib/cjs/tile/map/MapLayerImageryFormats.js +1 -3
  535. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  536. package/lib/cjs/tile/map/MapLayerSources.d.ts +1 -1
  537. package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
  538. package/lib/cjs/tile/map/MapLayerSources.js +1 -1
  539. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  540. package/lib/cjs/tile/map/MapTile.js +2 -2
  541. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  542. package/lib/cjs/tile/map/MapTileLoader.js +1 -1
  543. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  544. package/lib/cjs/tile/map/MapTileTree.js +2 -2
  545. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  546. package/lib/cjs/tile/map/WmsCapabilities.d.ts +3 -2
  547. package/lib/cjs/tile/map/WmsCapabilities.d.ts.map +1 -1
  548. package/lib/cjs/tile/map/WmsCapabilities.js +11 -10
  549. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  550. package/lib/cjs/tools/ClipViewTool.d.ts +5 -3
  551. package/lib/cjs/tools/ClipViewTool.d.ts.map +1 -1
  552. package/lib/cjs/tools/ClipViewTool.js +4 -3
  553. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  554. package/lib/cjs/tools/EditManipulator.d.ts +1 -0
  555. package/lib/cjs/tools/EditManipulator.d.ts.map +1 -1
  556. package/lib/cjs/tools/EditManipulator.js +1 -0
  557. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  558. package/lib/cjs/tools/EventController.d.ts +1 -0
  559. package/lib/cjs/tools/EventController.d.ts.map +1 -1
  560. package/lib/cjs/tools/EventController.js +1 -0
  561. package/lib/cjs/tools/EventController.js.map +1 -1
  562. package/lib/cjs/tools/PrimitiveTool.d.ts +4 -0
  563. package/lib/cjs/tools/PrimitiveTool.d.ts.map +1 -1
  564. package/lib/cjs/tools/PrimitiveTool.js +7 -0
  565. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  566. package/lib/cjs/tools/SelectTool.d.ts +3 -0
  567. package/lib/cjs/tools/SelectTool.d.ts.map +1 -1
  568. package/lib/cjs/tools/SelectTool.js +3 -0
  569. package/lib/cjs/tools/SelectTool.js.map +1 -1
  570. package/lib/cjs/tools/Tool.d.ts +41 -6
  571. package/lib/cjs/tools/Tool.d.ts.map +1 -1
  572. package/lib/cjs/tools/Tool.js +27 -4
  573. package/lib/cjs/tools/Tool.js.map +1 -1
  574. package/lib/cjs/tools/ToolAdmin.d.ts +16 -22
  575. package/lib/cjs/tools/ToolAdmin.d.ts.map +1 -1
  576. package/lib/cjs/tools/ToolAdmin.js +47 -8
  577. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  578. package/lib/cjs/tools/ToolAssistance.d.ts +7 -0
  579. package/lib/cjs/tools/ToolAssistance.d.ts.map +1 -1
  580. package/lib/cjs/tools/ToolAssistance.js +3 -0
  581. package/lib/cjs/tools/ToolAssistance.js.map +1 -1
  582. package/lib/cjs/tools/ToolSettings.d.ts +3 -0
  583. package/lib/cjs/tools/ToolSettings.d.ts.map +1 -1
  584. package/lib/cjs/tools/ToolSettings.js +3 -0
  585. package/lib/cjs/tools/ToolSettings.js.map +1 -1
  586. package/lib/cjs/tools/ViewTool.d.ts +3 -1
  587. package/lib/cjs/tools/ViewTool.d.ts.map +1 -1
  588. package/lib/cjs/tools/ViewTool.js +9 -5
  589. package/lib/cjs/tools/ViewTool.js.map +1 -1
  590. package/lib/esm/AccuDraw.d.ts +2 -0
  591. package/lib/esm/AccuDraw.d.ts.map +1 -1
  592. package/lib/esm/AccuDraw.js +2 -0
  593. package/lib/esm/AccuDraw.js.map +1 -1
  594. package/lib/esm/AccuSnap.d.ts +1 -0
  595. package/lib/esm/AccuSnap.d.ts.map +1 -1
  596. package/lib/esm/AccuSnap.js +1 -0
  597. package/lib/esm/AccuSnap.js.map +1 -1
  598. package/lib/esm/ApproximateTerrainHeights.d.ts.map +1 -1
  599. package/lib/esm/ApproximateTerrainHeights.js +4 -2
  600. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  601. package/lib/esm/ApproximateTerrainHeightsProps.d.ts +1 -1
  602. package/lib/esm/ApproximateTerrainHeightsProps.d.ts.map +1 -1
  603. package/lib/esm/ApproximateTerrainHeightsProps.js +1 -1
  604. package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -1
  605. package/lib/esm/AuxCoordSys.d.ts +12 -2
  606. package/lib/esm/AuxCoordSys.d.ts.map +1 -1
  607. package/lib/esm/AuxCoordSys.js +12 -2
  608. package/lib/esm/AuxCoordSys.js.map +1 -1
  609. package/lib/esm/BingLocation.d.ts +1 -0
  610. package/lib/esm/BingLocation.d.ts.map +1 -1
  611. package/lib/esm/BingLocation.js +1 -0
  612. package/lib/esm/BingLocation.js.map +1 -1
  613. package/lib/esm/BriefcaseConnection.d.ts +35 -1
  614. package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
  615. package/lib/esm/BriefcaseConnection.js +50 -0
  616. package/lib/esm/BriefcaseConnection.js.map +1 -1
  617. package/lib/esm/CategorySelectorState.d.ts +1 -0
  618. package/lib/esm/CategorySelectorState.d.ts.map +1 -1
  619. package/lib/esm/CategorySelectorState.js +1 -0
  620. package/lib/esm/CategorySelectorState.js.map +1 -1
  621. package/lib/esm/ChangeFlags.d.ts +1 -0
  622. package/lib/esm/ChangeFlags.d.ts.map +1 -1
  623. package/lib/esm/ChangeFlags.js +1 -0
  624. package/lib/esm/ChangeFlags.js.map +1 -1
  625. package/lib/esm/ContextRealityModelState.d.ts +1 -0
  626. package/lib/esm/ContextRealityModelState.d.ts.map +1 -1
  627. package/lib/esm/ContextRealityModelState.js +1 -0
  628. package/lib/esm/ContextRealityModelState.js.map +1 -1
  629. package/lib/esm/CoordSystem.d.ts +1 -0
  630. package/lib/esm/CoordSystem.d.ts.map +1 -1
  631. package/lib/esm/CoordSystem.js +1 -0
  632. package/lib/esm/CoordSystem.js.map +1 -1
  633. package/lib/esm/DisplayStyleState.d.ts +4 -0
  634. package/lib/esm/DisplayStyleState.d.ts.map +1 -1
  635. package/lib/esm/DisplayStyleState.js +9 -4
  636. package/lib/esm/DisplayStyleState.js.map +1 -1
  637. package/lib/esm/DrawingViewState.d.ts +5 -2
  638. package/lib/esm/DrawingViewState.d.ts.map +1 -1
  639. package/lib/esm/DrawingViewState.js +34 -3
  640. package/lib/esm/DrawingViewState.js.map +1 -1
  641. package/lib/esm/ElementLocateManager.d.ts +23 -5
  642. package/lib/esm/ElementLocateManager.d.ts.map +1 -1
  643. package/lib/esm/ElementLocateManager.js +19 -4
  644. package/lib/esm/ElementLocateManager.js.map +1 -1
  645. package/lib/esm/EmphasizeElements.d.ts +1 -0
  646. package/lib/esm/EmphasizeElements.d.ts.map +1 -1
  647. package/lib/esm/EmphasizeElements.js +1 -0
  648. package/lib/esm/EmphasizeElements.js.map +1 -1
  649. package/lib/esm/EntityState.d.ts +2 -0
  650. package/lib/esm/EntityState.d.ts.map +1 -1
  651. package/lib/esm/EntityState.js +2 -0
  652. package/lib/esm/EntityState.js.map +1 -1
  653. package/lib/esm/FeatureOverrideProvider.d.ts +1 -0
  654. package/lib/esm/FeatureOverrideProvider.d.ts.map +1 -1
  655. package/lib/esm/FeatureOverrideProvider.js.map +1 -1
  656. package/lib/esm/FlashSettings.d.ts +3 -0
  657. package/lib/esm/FlashSettings.d.ts.map +1 -1
  658. package/lib/esm/FlashSettings.js +2 -0
  659. package/lib/esm/FlashSettings.js.map +1 -1
  660. package/lib/esm/FrontendHubAccess.d.ts +4 -1
  661. package/lib/esm/FrontendHubAccess.d.ts.map +1 -1
  662. package/lib/esm/FrontendHubAccess.js.map +1 -1
  663. package/lib/esm/FrontendLoggerCategory.d.ts +6 -1
  664. package/lib/esm/FrontendLoggerCategory.d.ts.map +1 -1
  665. package/lib/esm/FrontendLoggerCategory.js +5 -0
  666. package/lib/esm/FrontendLoggerCategory.js.map +1 -1
  667. package/lib/esm/FrustumAnimator.d.ts +2 -0
  668. package/lib/esm/FrustumAnimator.d.ts.map +1 -1
  669. package/lib/esm/FrustumAnimator.js +2 -0
  670. package/lib/esm/FrustumAnimator.js.map +1 -1
  671. package/lib/esm/FuzzySearch.d.ts +1 -0
  672. package/lib/esm/FuzzySearch.d.ts.map +1 -1
  673. package/lib/esm/FuzzySearch.js.map +1 -1
  674. package/lib/esm/GlobeAnimator.d.ts +1 -0
  675. package/lib/esm/GlobeAnimator.d.ts.map +1 -1
  676. package/lib/esm/GlobeAnimator.js +1 -0
  677. package/lib/esm/GlobeAnimator.js.map +1 -1
  678. package/lib/esm/HitDetail.d.ts +26 -5
  679. package/lib/esm/HitDetail.d.ts.map +1 -1
  680. package/lib/esm/HitDetail.js +26 -5
  681. package/lib/esm/HitDetail.js.map +1 -1
  682. package/lib/esm/IModelApp.d.ts +9 -0
  683. package/lib/esm/IModelApp.d.ts.map +1 -1
  684. package/lib/esm/IModelApp.js +37 -22
  685. package/lib/esm/IModelApp.js.map +1 -1
  686. package/lib/esm/IModelConnection.d.ts +11 -2
  687. package/lib/esm/IModelConnection.d.ts.map +1 -1
  688. package/lib/esm/IModelConnection.js +23 -2
  689. package/lib/esm/IModelConnection.js.map +1 -1
  690. package/lib/esm/ImageUtil.d.ts +15 -2
  691. package/lib/esm/ImageUtil.d.ts.map +1 -1
  692. package/lib/esm/ImageUtil.js +19 -4
  693. package/lib/esm/ImageUtil.js.map +1 -1
  694. package/lib/esm/IpcApp.d.ts +1 -0
  695. package/lib/esm/IpcApp.d.ts.map +1 -1
  696. package/lib/esm/IpcApp.js +1 -0
  697. package/lib/esm/IpcApp.js.map +1 -1
  698. package/lib/esm/MarginPercent.d.ts +1 -0
  699. package/lib/esm/MarginPercent.d.ts.map +1 -1
  700. package/lib/esm/MarginPercent.js +1 -0
  701. package/lib/esm/MarginPercent.js.map +1 -1
  702. package/lib/esm/Marker.d.ts +16 -3
  703. package/lib/esm/Marker.d.ts.map +1 -1
  704. package/lib/esm/Marker.js +3 -0
  705. package/lib/esm/Marker.js.map +1 -1
  706. package/lib/esm/ModelSelectorState.d.ts +1 -0
  707. package/lib/esm/ModelSelectorState.d.ts.map +1 -1
  708. package/lib/esm/ModelSelectorState.js +1 -0
  709. package/lib/esm/ModelSelectorState.js.map +1 -1
  710. package/lib/esm/ModelState.d.ts +10 -0
  711. package/lib/esm/ModelState.d.ts.map +1 -1
  712. package/lib/esm/ModelState.js +10 -0
  713. package/lib/esm/ModelState.js.map +1 -1
  714. package/lib/esm/NotificationManager.d.ts +11 -0
  715. package/lib/esm/NotificationManager.d.ts.map +1 -1
  716. package/lib/esm/NotificationManager.js +10 -0
  717. package/lib/esm/NotificationManager.js.map +1 -1
  718. package/lib/esm/PerModelCategoryVisibility.d.ts +1 -0
  719. package/lib/esm/PerModelCategoryVisibility.d.ts.map +1 -1
  720. package/lib/esm/PerModelCategoryVisibility.js +1 -0
  721. package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
  722. package/lib/esm/SelectionSet.d.ts +7 -0
  723. package/lib/esm/SelectionSet.d.ts.map +1 -1
  724. package/lib/esm/SelectionSet.js +3 -0
  725. package/lib/esm/SelectionSet.js.map +1 -1
  726. package/lib/esm/SheetViewState.d.ts +6 -5
  727. package/lib/esm/SheetViewState.d.ts.map +1 -1
  728. package/lib/esm/SheetViewState.js +59 -7
  729. package/lib/esm/SheetViewState.js.map +1 -1
  730. package/lib/esm/SpatialViewState.d.ts +7 -2
  731. package/lib/esm/SpatialViewState.d.ts.map +1 -1
  732. package/lib/esm/SpatialViewState.js +18 -4
  733. package/lib/esm/SpatialViewState.js.map +1 -1
  734. package/lib/esm/Sprites.d.ts +3 -0
  735. package/lib/esm/Sprites.d.ts.map +1 -1
  736. package/lib/esm/Sprites.js +3 -0
  737. package/lib/esm/Sprites.js.map +1 -1
  738. package/lib/esm/StandardView.d.ts +1 -0
  739. package/lib/esm/StandardView.d.ts.map +1 -1
  740. package/lib/esm/StandardView.js +1 -0
  741. package/lib/esm/StandardView.js.map +1 -1
  742. package/lib/esm/SubCategoriesCache.d.ts +14 -7
  743. package/lib/esm/SubCategoriesCache.d.ts.map +1 -1
  744. package/lib/esm/SubCategoriesCache.js +37 -9
  745. package/lib/esm/SubCategoriesCache.js.map +1 -1
  746. package/lib/esm/TentativePoint.d.ts +4 -1
  747. package/lib/esm/TentativePoint.d.ts.map +1 -1
  748. package/lib/esm/TentativePoint.js +4 -1
  749. package/lib/esm/TentativePoint.js.map +1 -1
  750. package/lib/esm/Tiles.d.ts +1 -0
  751. package/lib/esm/Tiles.d.ts.map +1 -1
  752. package/lib/esm/Tiles.js +1 -0
  753. package/lib/esm/Tiles.js.map +1 -1
  754. package/lib/esm/ViewAnimation.d.ts +6 -0
  755. package/lib/esm/ViewAnimation.d.ts.map +1 -1
  756. package/lib/esm/ViewAnimation.js.map +1 -1
  757. package/lib/esm/ViewCreator2d.d.ts +2 -0
  758. package/lib/esm/ViewCreator2d.d.ts.map +1 -1
  759. package/lib/esm/ViewCreator2d.js +1 -0
  760. package/lib/esm/ViewCreator2d.js.map +1 -1
  761. package/lib/esm/ViewCreator3d.d.ts +2 -8
  762. package/lib/esm/ViewCreator3d.d.ts.map +1 -1
  763. package/lib/esm/ViewCreator3d.js +12 -38
  764. package/lib/esm/ViewCreator3d.js.map +1 -1
  765. package/lib/esm/ViewGlobalLocation.d.ts +3 -0
  766. package/lib/esm/ViewGlobalLocation.d.ts.map +1 -1
  767. package/lib/esm/ViewGlobalLocation.js +1 -0
  768. package/lib/esm/ViewGlobalLocation.js.map +1 -1
  769. package/lib/esm/ViewManager.d.ts +3 -0
  770. package/lib/esm/ViewManager.d.ts.map +1 -1
  771. package/lib/esm/ViewManager.js +2 -0
  772. package/lib/esm/ViewManager.js.map +1 -1
  773. package/lib/esm/ViewPose.d.ts +1 -0
  774. package/lib/esm/ViewPose.d.ts.map +1 -1
  775. package/lib/esm/ViewPose.js +1 -0
  776. package/lib/esm/ViewPose.js.map +1 -1
  777. package/lib/esm/ViewRect.d.ts +1 -0
  778. package/lib/esm/ViewRect.d.ts.map +1 -1
  779. package/lib/esm/ViewRect.js +1 -0
  780. package/lib/esm/ViewRect.js.map +1 -1
  781. package/lib/esm/ViewState.d.ts +17 -2
  782. package/lib/esm/ViewState.d.ts.map +1 -1
  783. package/lib/esm/ViewState.js +41 -10
  784. package/lib/esm/ViewState.js.map +1 -1
  785. package/lib/esm/ViewStatus.d.ts +1 -0
  786. package/lib/esm/ViewStatus.d.ts.map +1 -1
  787. package/lib/esm/ViewStatus.js +1 -0
  788. package/lib/esm/ViewStatus.js.map +1 -1
  789. package/lib/esm/ViewingSpace.d.ts +1 -0
  790. package/lib/esm/ViewingSpace.d.ts.map +1 -1
  791. package/lib/esm/ViewingSpace.js +1 -0
  792. package/lib/esm/ViewingSpace.js.map +1 -1
  793. package/lib/esm/Viewport.d.ts +6 -2
  794. package/lib/esm/Viewport.d.ts.map +1 -1
  795. package/lib/esm/Viewport.js +12 -4
  796. package/lib/esm/Viewport.js.map +1 -1
  797. package/lib/esm/ViewportSync.d.ts +119 -0
  798. package/lib/esm/ViewportSync.d.ts.map +1 -0
  799. package/lib/esm/ViewportSync.js +177 -0
  800. package/lib/esm/ViewportSync.js.map +1 -0
  801. package/lib/esm/core-frontend.d.ts +10 -6
  802. package/lib/esm/core-frontend.d.ts.map +1 -1
  803. package/lib/esm/core-frontend.js +11 -6
  804. package/lib/esm/core-frontend.js.map +1 -1
  805. package/lib/esm/extension/Extension.d.ts +24 -15
  806. package/lib/esm/extension/Extension.d.ts.map +1 -1
  807. package/lib/esm/extension/Extension.js +1 -7
  808. package/lib/esm/extension/Extension.js.map +1 -1
  809. package/lib/esm/extension/ExtensionAdmin.d.ts +21 -44
  810. package/lib/esm/extension/ExtensionAdmin.d.ts.map +1 -1
  811. package/lib/esm/extension/ExtensionAdmin.js +55 -64
  812. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  813. package/lib/esm/extension/ExtensionRuntime.js +239 -59
  814. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  815. package/lib/esm/extension/providers/ExtensionLoadScript.d.ts +10 -0
  816. package/lib/esm/extension/providers/ExtensionLoadScript.d.ts.map +1 -0
  817. package/lib/esm/extension/providers/ExtensionLoadScript.js +51 -0
  818. package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -0
  819. package/lib/esm/extension/providers/ExtensionServiceClient.d.ts +52 -0
  820. package/lib/esm/extension/providers/ExtensionServiceClient.d.ts.map +1 -0
  821. package/lib/esm/extension/providers/ExtensionServiceClient.js +127 -0
  822. package/lib/esm/extension/providers/ExtensionServiceClient.js.map +1 -0
  823. package/lib/esm/extension/providers/LocalExtensionProvider.d.ts +26 -0
  824. package/lib/esm/extension/providers/LocalExtensionProvider.d.ts.map +1 -0
  825. package/lib/esm/extension/providers/LocalExtensionProvider.js +20 -0
  826. package/lib/esm/extension/providers/LocalExtensionProvider.js.map +1 -0
  827. package/lib/esm/extension/providers/RemoteExtensionProvider.d.ts +36 -0
  828. package/lib/esm/extension/providers/RemoteExtensionProvider.d.ts.map +1 -0
  829. package/lib/esm/extension/providers/RemoteExtensionProvider.js +49 -0
  830. package/lib/esm/extension/providers/RemoteExtensionProvider.js.map +1 -0
  831. package/lib/esm/extension/providers/ServiceExtensionProvider.d.ts +37 -0
  832. package/lib/esm/extension/providers/ServiceExtensionProvider.d.ts.map +1 -0
  833. package/lib/esm/extension/providers/ServiceExtensionProvider.js +80 -0
  834. package/lib/esm/extension/providers/ServiceExtensionProvider.js.map +1 -0
  835. package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
  836. package/lib/esm/quantity-formatting/QuantityFormatter.js +3 -2
  837. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  838. package/lib/esm/render/CanvasDecoration.d.ts +2 -0
  839. package/lib/esm/render/CanvasDecoration.d.ts.map +1 -1
  840. package/lib/esm/render/CanvasDecoration.js.map +1 -1
  841. package/lib/esm/render/Decorations.d.ts +1 -0
  842. package/lib/esm/render/Decorations.d.ts.map +1 -1
  843. package/lib/esm/render/Decorations.js +1 -0
  844. package/lib/esm/render/Decorations.js.map +1 -1
  845. package/lib/esm/render/FeatureSymbology.d.ts +1 -0
  846. package/lib/esm/render/FeatureSymbology.d.ts.map +1 -1
  847. package/lib/esm/render/FeatureSymbology.js +1 -0
  848. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  849. package/lib/esm/render/GraphicBranch.d.ts +2 -0
  850. package/lib/esm/render/GraphicBranch.d.ts.map +1 -1
  851. package/lib/esm/render/GraphicBranch.js +1 -0
  852. package/lib/esm/render/GraphicBranch.js.map +1 -1
  853. package/lib/esm/render/GraphicBuilder.d.ts +33 -2
  854. package/lib/esm/render/GraphicBuilder.d.ts.map +1 -1
  855. package/lib/esm/render/GraphicBuilder.js +27 -1
  856. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  857. package/lib/esm/render/GraphicPrimitive.d.ts +14 -0
  858. package/lib/esm/render/GraphicPrimitive.d.ts.map +1 -1
  859. package/lib/esm/render/GraphicPrimitive.js.map +1 -1
  860. package/lib/esm/render/ParticleCollectionBuilder.d.ts +3 -0
  861. package/lib/esm/render/ParticleCollectionBuilder.d.ts.map +1 -1
  862. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  863. package/lib/esm/render/Pixel.d.ts +1 -0
  864. package/lib/esm/render/Pixel.d.ts.map +1 -1
  865. package/lib/esm/render/Pixel.js +1 -0
  866. package/lib/esm/render/Pixel.js.map +1 -1
  867. package/lib/esm/render/RenderClipVolume.d.ts +1 -0
  868. package/lib/esm/render/RenderClipVolume.d.ts.map +1 -1
  869. package/lib/esm/render/RenderClipVolume.js +1 -0
  870. package/lib/esm/render/RenderClipVolume.js.map +1 -1
  871. package/lib/esm/render/RenderGraphic.d.ts +3 -0
  872. package/lib/esm/render/RenderGraphic.d.ts.map +1 -1
  873. package/lib/esm/render/RenderGraphic.js +2 -0
  874. package/lib/esm/render/RenderGraphic.js.map +1 -1
  875. package/lib/esm/render/RenderSystem.d.ts +4 -3
  876. package/lib/esm/render/RenderSystem.d.ts.map +1 -1
  877. package/lib/esm/render/RenderSystem.js +4 -3
  878. package/lib/esm/render/RenderSystem.js.map +1 -1
  879. package/lib/esm/render/RenderTexture.d.ts +7 -0
  880. package/lib/esm/render/RenderTexture.d.ts.map +1 -1
  881. package/lib/esm/render/RenderTexture.js.map +1 -1
  882. package/lib/esm/render/Scene.d.ts +1 -0
  883. package/lib/esm/render/Scene.d.ts.map +1 -1
  884. package/lib/esm/render/Scene.js +1 -0
  885. package/lib/esm/render/Scene.js.map +1 -1
  886. package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts +10 -0
  887. package/lib/esm/render/ScreenSpaceEffectBuilder.d.ts.map +1 -1
  888. package/lib/esm/render/ScreenSpaceEffectBuilder.js +2 -0
  889. package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
  890. package/lib/esm/render/primitives/VertexKey.d.ts +4 -2
  891. package/lib/esm/render/primitives/VertexKey.d.ts.map +1 -1
  892. package/lib/esm/render/primitives/VertexKey.js +24 -13
  893. package/lib/esm/render/primitives/VertexKey.js.map +1 -1
  894. package/lib/esm/render/primitives/VertexTable.d.ts +1 -1
  895. package/lib/esm/render/primitives/VertexTable.js +30 -2
  896. package/lib/esm/render/primitives/VertexTable.js.map +1 -1
  897. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts +12 -4
  898. package/lib/esm/render/primitives/geometry/GeometryAccumulator.d.ts.map +1 -1
  899. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +20 -15
  900. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  901. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts +2 -1
  902. package/lib/esm/render/primitives/geometry/GeometryListBuilder.d.ts.map +1 -1
  903. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +7 -2
  904. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  905. package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts +14 -12
  906. package/lib/esm/render/primitives/geometry/GeometryPrimitives.d.ts.map +1 -1
  907. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js +26 -25
  908. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  909. package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts +8 -8
  910. package/lib/esm/render/primitives/mesh/MeshBuilder.d.ts.map +1 -1
  911. package/lib/esm/render/primitives/mesh/MeshBuilder.js +15 -15
  912. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
  913. package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts +11 -6
  914. package/lib/esm/render/primitives/mesh/MeshBuilderMap.d.ts.map +1 -1
  915. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js +13 -16
  916. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  917. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts +1 -1
  918. package/lib/esm/render/primitives/mesh/MeshPrimitives.d.ts.map +1 -1
  919. package/lib/esm/render/primitives/mesh/MeshPrimitives.js +6 -2
  920. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  921. package/lib/esm/render/webgl/AttributeMap.js +1 -1
  922. package/lib/esm/render/webgl/CachedGeometry.d.ts +7 -1
  923. package/lib/esm/render/webgl/CachedGeometry.d.ts.map +1 -1
  924. package/lib/esm/render/webgl/CachedGeometry.js +19 -9
  925. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  926. package/lib/esm/render/webgl/DrawCommand.d.ts.map +1 -1
  927. package/lib/esm/render/webgl/DrawCommand.js +2 -1
  928. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  929. package/lib/esm/render/webgl/InstancedGeometry.d.ts +1 -0
  930. package/lib/esm/render/webgl/InstancedGeometry.d.ts.map +1 -1
  931. package/lib/esm/render/webgl/InstancedGeometry.js +1 -0
  932. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  933. package/lib/esm/render/webgl/RealityMesh.d.ts +14 -11
  934. package/lib/esm/render/webgl/RealityMesh.d.ts.map +1 -1
  935. package/lib/esm/render/webgl/RealityMesh.js +27 -18
  936. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  937. package/lib/esm/render/webgl/SceneCompositor.d.ts +2 -0
  938. package/lib/esm/render/webgl/SceneCompositor.d.ts.map +1 -1
  939. package/lib/esm/render/webgl/SceneCompositor.js +220 -53
  940. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  941. package/lib/esm/render/webgl/ShaderBuilder.d.ts +5 -4
  942. package/lib/esm/render/webgl/ShaderBuilder.d.ts.map +1 -1
  943. package/lib/esm/render/webgl/ShaderBuilder.js +7 -6
  944. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  945. package/lib/esm/render/webgl/System.d.ts +4 -4
  946. package/lib/esm/render/webgl/System.d.ts.map +1 -1
  947. package/lib/esm/render/webgl/System.js +6 -6
  948. package/lib/esm/render/webgl/System.js.map +1 -1
  949. package/lib/esm/render/webgl/Target.d.ts +6 -1
  950. package/lib/esm/render/webgl/Target.d.ts.map +1 -1
  951. package/lib/esm/render/webgl/Target.js +64 -13
  952. package/lib/esm/render/webgl/Target.js.map +1 -1
  953. package/lib/esm/render/webgl/Technique.d.ts +4 -2
  954. package/lib/esm/render/webgl/Technique.d.ts.map +1 -1
  955. package/lib/esm/render/webgl/Technique.js +166 -135
  956. package/lib/esm/render/webgl/Technique.js.map +1 -1
  957. package/lib/esm/render/webgl/TechniqueFlags.d.ts +7 -3
  958. package/lib/esm/render/webgl/TechniqueFlags.d.ts.map +1 -1
  959. package/lib/esm/render/webgl/TechniqueFlags.js +17 -4
  960. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  961. package/lib/esm/render/webgl/TechniqueId.d.ts +8 -7
  962. package/lib/esm/render/webgl/TechniqueId.d.ts.map +1 -1
  963. package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
  964. package/lib/esm/render/webgl/glsl/Animation.d.ts.map +1 -1
  965. package/lib/esm/render/webgl/glsl/Animation.js +2 -0
  966. package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
  967. package/lib/esm/render/webgl/glsl/Blur.d.ts +2 -1
  968. package/lib/esm/render/webgl/glsl/Blur.d.ts.map +1 -1
  969. package/lib/esm/render/webgl/glsl/Blur.js +38 -6
  970. package/lib/esm/render/webgl/glsl/Blur.js.map +1 -1
  971. package/lib/esm/render/webgl/glsl/Color.d.ts.map +1 -1
  972. package/lib/esm/render/webgl/glsl/Color.js +8 -7
  973. package/lib/esm/render/webgl/glsl/Color.js.map +1 -1
  974. package/lib/esm/render/webgl/glsl/CopyStencil.js +1 -1
  975. package/lib/esm/render/webgl/glsl/Decode.d.ts +2 -1
  976. package/lib/esm/render/webgl/glsl/Decode.d.ts.map +1 -1
  977. package/lib/esm/render/webgl/glsl/Decode.js +15 -1
  978. package/lib/esm/render/webgl/glsl/Decode.js.map +1 -1
  979. package/lib/esm/render/webgl/glsl/Edge.d.ts +2 -2
  980. package/lib/esm/render/webgl/glsl/Edge.d.ts.map +1 -1
  981. package/lib/esm/render/webgl/glsl/Edge.js +7 -20
  982. package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
  983. package/lib/esm/render/webgl/glsl/FeatureSymbology.d.ts.map +1 -1
  984. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +1 -3
  985. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  986. package/lib/esm/render/webgl/glsl/PointString.d.ts +3 -3
  987. package/lib/esm/render/webgl/glsl/PointString.d.ts.map +1 -1
  988. package/lib/esm/render/webgl/glsl/PointString.js +6 -6
  989. package/lib/esm/render/webgl/glsl/PointString.js.map +1 -1
  990. package/lib/esm/render/webgl/glsl/Polyline.d.ts +3 -3
  991. package/lib/esm/render/webgl/glsl/Polyline.d.ts.map +1 -1
  992. package/lib/esm/render/webgl/glsl/Polyline.js +7 -22
  993. package/lib/esm/render/webgl/glsl/Polyline.js.map +1 -1
  994. package/lib/esm/render/webgl/glsl/Surface.d.ts +2 -2
  995. package/lib/esm/render/webgl/glsl/Surface.d.ts.map +1 -1
  996. package/lib/esm/render/webgl/glsl/Surface.js +51 -35
  997. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  998. package/lib/esm/render/webgl/glsl/Vertex.d.ts +3 -3
  999. package/lib/esm/render/webgl/glsl/Vertex.d.ts.map +1 -1
  1000. package/lib/esm/render/webgl/glsl/Vertex.js +142 -56
  1001. package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
  1002. package/lib/esm/tile/ClassifierTileTree.d.ts.map +1 -1
  1003. package/lib/esm/tile/ClassifierTileTree.js +3 -4
  1004. package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
  1005. package/lib/esm/tile/DisclosedTileTreeSet.d.ts +2 -0
  1006. package/lib/esm/tile/DisclosedTileTreeSet.d.ts.map +1 -1
  1007. package/lib/esm/tile/DisclosedTileTreeSet.js +1 -0
  1008. package/lib/esm/tile/DisclosedTileTreeSet.js.map +1 -1
  1009. package/lib/esm/tile/DynamicIModelTile.js +4 -2
  1010. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  1011. package/lib/esm/tile/GltfReader.d.ts +19 -9
  1012. package/lib/esm/tile/GltfReader.d.ts.map +1 -1
  1013. package/lib/esm/tile/GltfReader.js +23 -6
  1014. package/lib/esm/tile/GltfReader.js.map +1 -1
  1015. package/lib/esm/tile/IModelTile.js +1 -1
  1016. package/lib/esm/tile/IModelTile.js.map +1 -1
  1017. package/lib/esm/tile/IModelTileRequestChannels.d.ts +3 -3
  1018. package/lib/esm/tile/IModelTileRequestChannels.d.ts.map +1 -1
  1019. package/lib/esm/tile/IModelTileRequestChannels.js +7 -11
  1020. package/lib/esm/tile/IModelTileRequestChannels.js.map +1 -1
  1021. package/lib/esm/tile/IModelTileTree.d.ts +3 -3
  1022. package/lib/esm/tile/IModelTileTree.d.ts.map +1 -1
  1023. package/lib/esm/tile/IModelTileTree.js +1 -1
  1024. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  1025. package/lib/esm/tile/ImdlReader.d.ts +2 -0
  1026. package/lib/esm/tile/ImdlReader.d.ts.map +1 -1
  1027. package/lib/esm/tile/ImdlReader.js +2 -0
  1028. package/lib/esm/tile/ImdlReader.js.map +1 -1
  1029. package/lib/esm/tile/OPCFormatInterpreter.d.ts.map +1 -1
  1030. package/lib/esm/tile/OPCFormatInterpreter.js +2 -3
  1031. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
  1032. package/lib/esm/tile/PrimaryTileTree.d.ts.map +1 -1
  1033. package/lib/esm/tile/PrimaryTileTree.js +5 -5
  1034. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  1035. package/lib/esm/tile/RealityTileLoader.d.ts +1 -1
  1036. package/lib/esm/tile/RealityTileLoader.d.ts.map +1 -1
  1037. package/lib/esm/tile/RealityTileLoader.js +36 -8
  1038. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  1039. package/lib/esm/tile/Tile.d.ts +5 -0
  1040. package/lib/esm/tile/Tile.d.ts.map +1 -1
  1041. package/lib/esm/tile/Tile.js +5 -0
  1042. package/lib/esm/tile/Tile.js.map +1 -1
  1043. package/lib/esm/tile/TileAdmin.d.ts +18 -1
  1044. package/lib/esm/tile/TileAdmin.d.ts.map +1 -1
  1045. package/lib/esm/tile/TileAdmin.js +27 -20
  1046. package/lib/esm/tile/TileAdmin.js.map +1 -1
  1047. package/lib/esm/tile/TileContent.d.ts +1 -0
  1048. package/lib/esm/tile/TileContent.d.ts.map +1 -1
  1049. package/lib/esm/tile/TileContent.js.map +1 -1
  1050. package/lib/esm/tile/TileDrawArgs.d.ts +2 -0
  1051. package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
  1052. package/lib/esm/tile/TileDrawArgs.js +1 -0
  1053. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  1054. package/lib/esm/tile/TileParams.d.ts +1 -0
  1055. package/lib/esm/tile/TileParams.d.ts.map +1 -1
  1056. package/lib/esm/tile/TileParams.js.map +1 -1
  1057. package/lib/esm/tile/TileRequest.d.ts +1 -0
  1058. package/lib/esm/tile/TileRequest.d.ts.map +1 -1
  1059. package/lib/esm/tile/TileRequest.js +1 -0
  1060. package/lib/esm/tile/TileRequest.js.map +1 -1
  1061. package/lib/esm/tile/TileRequestChannel.d.ts +2 -0
  1062. package/lib/esm/tile/TileRequestChannel.d.ts.map +1 -1
  1063. package/lib/esm/tile/TileRequestChannel.js +2 -0
  1064. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  1065. package/lib/esm/tile/TileRequestChannels.d.ts +1 -4
  1066. package/lib/esm/tile/TileRequestChannels.d.ts.map +1 -1
  1067. package/lib/esm/tile/TileRequestChannels.js +2 -6
  1068. package/lib/esm/tile/TileRequestChannels.js.map +1 -1
  1069. package/lib/esm/tile/TileTree.d.ts +2 -0
  1070. package/lib/esm/tile/TileTree.d.ts.map +1 -1
  1071. package/lib/esm/tile/TileTree.js +2 -0
  1072. package/lib/esm/tile/TileTree.js.map +1 -1
  1073. package/lib/esm/tile/TileTreeOwner.d.ts +1 -0
  1074. package/lib/esm/tile/TileTreeOwner.d.ts.map +1 -1
  1075. package/lib/esm/tile/TileTreeOwner.js.map +1 -1
  1076. package/lib/esm/tile/TileTreeParams.d.ts +1 -0
  1077. package/lib/esm/tile/TileTreeParams.d.ts.map +1 -1
  1078. package/lib/esm/tile/TileTreeParams.js.map +1 -1
  1079. package/lib/esm/tile/TileTreeReference.d.ts +2 -0
  1080. package/lib/esm/tile/TileTreeReference.d.ts.map +1 -1
  1081. package/lib/esm/tile/TileTreeReference.js +2 -0
  1082. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  1083. package/lib/esm/tile/TileTreeSupplier.d.ts +1 -0
  1084. package/lib/esm/tile/TileTreeSupplier.d.ts.map +1 -1
  1085. package/lib/esm/tile/TileTreeSupplier.js.map +1 -1
  1086. package/lib/esm/tile/TileUsageMarker.d.ts +1 -0
  1087. package/lib/esm/tile/TileUsageMarker.d.ts.map +1 -1
  1088. package/lib/esm/tile/TileUsageMarker.js +1 -0
  1089. package/lib/esm/tile/TileUsageMarker.js.map +1 -1
  1090. package/lib/esm/tile/TiledGraphicsProvider.d.ts +1 -0
  1091. package/lib/esm/tile/TiledGraphicsProvider.d.ts.map +1 -1
  1092. package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
  1093. package/lib/esm/tile/internal.d.ts +0 -2
  1094. package/lib/esm/tile/internal.d.ts.map +1 -1
  1095. package/lib/esm/tile/internal.js +0 -2
  1096. package/lib/esm/tile/internal.js.map +1 -1
  1097. package/lib/esm/tile/map/ArcGisUtilities.d.ts +2 -1
  1098. package/lib/esm/tile/map/ArcGisUtilities.d.ts.map +1 -1
  1099. package/lib/esm/tile/map/ArcGisUtilities.js +32 -21
  1100. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  1101. package/lib/esm/tile/map/BingElevation.d.ts +1 -0
  1102. package/lib/esm/tile/map/BingElevation.d.ts.map +1 -1
  1103. package/lib/esm/tile/map/BingElevation.js +1 -0
  1104. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  1105. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts +2 -1
  1106. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
  1107. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +51 -28
  1108. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  1109. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts +0 -1
  1110. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.d.ts.map +1 -1
  1111. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +12 -10
  1112. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  1113. package/lib/esm/tile/map/MapLayerAuthentication.d.ts +20 -9
  1114. package/lib/esm/tile/map/MapLayerAuthentication.d.ts.map +1 -1
  1115. package/lib/esm/tile/map/MapLayerAuthentication.js +1 -7
  1116. package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -1
  1117. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts +24 -6
  1118. package/lib/esm/tile/map/MapLayerFormatRegistry.d.ts.map +1 -1
  1119. package/lib/esm/tile/map/MapLayerFormatRegistry.js +28 -7
  1120. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  1121. package/lib/esm/tile/map/MapLayerImageryFormats.d.ts.map +1 -1
  1122. package/lib/esm/tile/map/MapLayerImageryFormats.js +2 -4
  1123. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  1124. package/lib/esm/tile/map/MapLayerSources.d.ts +1 -1
  1125. package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
  1126. package/lib/esm/tile/map/MapLayerSources.js +1 -1
  1127. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  1128. package/lib/esm/tile/map/MapTile.js +2 -2
  1129. package/lib/esm/tile/map/MapTile.js.map +1 -1
  1130. package/lib/esm/tile/map/MapTileLoader.js +1 -1
  1131. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  1132. package/lib/esm/tile/map/MapTileTree.js +2 -2
  1133. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  1134. package/lib/esm/tile/map/WmsCapabilities.d.ts +3 -2
  1135. package/lib/esm/tile/map/WmsCapabilities.d.ts.map +1 -1
  1136. package/lib/esm/tile/map/WmsCapabilities.js +11 -10
  1137. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  1138. package/lib/esm/tools/ClipViewTool.d.ts +5 -3
  1139. package/lib/esm/tools/ClipViewTool.d.ts.map +1 -1
  1140. package/lib/esm/tools/ClipViewTool.js +4 -3
  1141. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  1142. package/lib/esm/tools/EditManipulator.d.ts +1 -0
  1143. package/lib/esm/tools/EditManipulator.d.ts.map +1 -1
  1144. package/lib/esm/tools/EditManipulator.js +1 -0
  1145. package/lib/esm/tools/EditManipulator.js.map +1 -1
  1146. package/lib/esm/tools/EventController.d.ts +1 -0
  1147. package/lib/esm/tools/EventController.d.ts.map +1 -1
  1148. package/lib/esm/tools/EventController.js +1 -0
  1149. package/lib/esm/tools/EventController.js.map +1 -1
  1150. package/lib/esm/tools/PrimitiveTool.d.ts +4 -0
  1151. package/lib/esm/tools/PrimitiveTool.d.ts.map +1 -1
  1152. package/lib/esm/tools/PrimitiveTool.js +7 -0
  1153. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  1154. package/lib/esm/tools/SelectTool.d.ts +3 -0
  1155. package/lib/esm/tools/SelectTool.d.ts.map +1 -1
  1156. package/lib/esm/tools/SelectTool.js +3 -0
  1157. package/lib/esm/tools/SelectTool.js.map +1 -1
  1158. package/lib/esm/tools/Tool.d.ts +41 -6
  1159. package/lib/esm/tools/Tool.d.ts.map +1 -1
  1160. package/lib/esm/tools/Tool.js +27 -4
  1161. package/lib/esm/tools/Tool.js.map +1 -1
  1162. package/lib/esm/tools/ToolAdmin.d.ts +16 -22
  1163. package/lib/esm/tools/ToolAdmin.d.ts.map +1 -1
  1164. package/lib/esm/tools/ToolAdmin.js +48 -9
  1165. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  1166. package/lib/esm/tools/ToolAssistance.d.ts +7 -0
  1167. package/lib/esm/tools/ToolAssistance.d.ts.map +1 -1
  1168. package/lib/esm/tools/ToolAssistance.js +3 -0
  1169. package/lib/esm/tools/ToolAssistance.js.map +1 -1
  1170. package/lib/esm/tools/ToolSettings.d.ts +3 -0
  1171. package/lib/esm/tools/ToolSettings.d.ts.map +1 -1
  1172. package/lib/esm/tools/ToolSettings.js +3 -0
  1173. package/lib/esm/tools/ToolSettings.js.map +1 -1
  1174. package/lib/esm/tools/ViewTool.d.ts +3 -1
  1175. package/lib/esm/tools/ViewTool.d.ts.map +1 -1
  1176. package/lib/esm/tools/ViewTool.js +9 -5
  1177. package/lib/esm/tools/ViewTool.js.map +1 -1
  1178. package/package.json +34 -25
  1179. package/lib/cjs/TwoWayViewportSync.d.ts +0 -51
  1180. package/lib/cjs/TwoWayViewportSync.d.ts.map +0 -1
  1181. package/lib/cjs/TwoWayViewportSync.js +0 -87
  1182. package/lib/cjs/TwoWayViewportSync.js.map +0 -1
  1183. package/lib/cjs/extension/ExtensionLoader.d.ts +0 -26
  1184. package/lib/cjs/extension/ExtensionLoader.d.ts.map +0 -1
  1185. package/lib/cjs/extension/ExtensionLoader.js +0 -10
  1186. package/lib/cjs/extension/ExtensionLoader.js.map +0 -1
  1187. package/lib/cjs/extension/extensions.d.ts +0 -19
  1188. package/lib/cjs/extension/extensions.d.ts.map +0 -1
  1189. package/lib/cjs/extension/extensions.js +0 -36
  1190. package/lib/cjs/extension/extensions.js.map +0 -1
  1191. package/lib/cjs/tile/map/ArcGisTokenGenerator.d.ts +0 -35
  1192. package/lib/cjs/tile/map/ArcGisTokenGenerator.d.ts.map +0 -1
  1193. package/lib/cjs/tile/map/ArcGisTokenGenerator.js +0 -116
  1194. package/lib/cjs/tile/map/ArcGisTokenGenerator.js.map +0 -1
  1195. package/lib/cjs/tile/map/ArcGisTokenManager.d.ts +0 -13
  1196. package/lib/cjs/tile/map/ArcGisTokenManager.d.ts.map +0 -1
  1197. package/lib/cjs/tile/map/ArcGisTokenManager.js +0 -39
  1198. package/lib/cjs/tile/map/ArcGisTokenManager.js.map +0 -1
  1199. package/lib/esm/TwoWayViewportSync.d.ts +0 -51
  1200. package/lib/esm/TwoWayViewportSync.d.ts.map +0 -1
  1201. package/lib/esm/TwoWayViewportSync.js +0 -82
  1202. package/lib/esm/TwoWayViewportSync.js.map +0 -1
  1203. package/lib/esm/extension/ExtensionLoader.d.ts +0 -26
  1204. package/lib/esm/extension/ExtensionLoader.d.ts.map +0 -1
  1205. package/lib/esm/extension/ExtensionLoader.js +0 -9
  1206. package/lib/esm/extension/ExtensionLoader.js.map +0 -1
  1207. package/lib/esm/extension/extensions.d.ts +0 -19
  1208. package/lib/esm/extension/extensions.d.ts.map +0 -1
  1209. package/lib/esm/extension/extensions.js +0 -24
  1210. package/lib/esm/extension/extensions.js.map +0 -1
  1211. package/lib/esm/tile/map/ArcGisTokenGenerator.d.ts +0 -35
  1212. package/lib/esm/tile/map/ArcGisTokenGenerator.d.ts.map +0 -1
  1213. package/lib/esm/tile/map/ArcGisTokenGenerator.js +0 -112
  1214. package/lib/esm/tile/map/ArcGisTokenGenerator.js.map +0 -1
  1215. package/lib/esm/tile/map/ArcGisTokenManager.d.ts +0 -13
  1216. package/lib/esm/tile/map/ArcGisTokenManager.d.ts.map +0 -1
  1217. package/lib/esm/tile/map/ArcGisTokenManager.js +0 -35
  1218. package/lib/esm/tile/map/ArcGisTokenManager.js.map +0 -1
@@ -12,6 +12,7 @@ import { IModelApp } from "./IModelApp";
12
12
  // cSpell:words messagebox
13
13
  /** Describes the type and behavior of a [[NotifyMessageDetails]].
14
14
  * @public
15
+ * @extensions
15
16
  */
16
17
  export var OutputMessageType;
17
18
  (function (OutputMessageType) {
@@ -28,6 +29,7 @@ export var OutputMessageType;
28
29
  })(OutputMessageType || (OutputMessageType = {}));
29
30
  /** Classifies a [[NotifyMessageDetails]] by its level of importance.
30
31
  * @public
32
+ * @extensions
31
33
  */
32
34
  export var OutputMessagePriority;
33
35
  (function (OutputMessagePriority) {
@@ -41,6 +43,7 @@ export var OutputMessagePriority;
41
43
  })(OutputMessagePriority || (OutputMessagePriority = {}));
42
44
  /** Describes the alert behavior of a [[NotifyMessageDetails]].
43
45
  * @public
46
+ * @extensions
44
47
  */
45
48
  export var OutputMessageAlert;
46
49
  (function (OutputMessageAlert) {
@@ -50,6 +53,7 @@ export var OutputMessageAlert;
50
53
  })(OutputMessageAlert || (OutputMessageAlert = {}));
51
54
  /** Reason for ending the activity message via endActivityMessage
52
55
  * @public
56
+ * @extensions
53
57
  */
54
58
  export var ActivityMessageEndReason;
55
59
  (function (ActivityMessageEndReason) {
@@ -58,6 +62,7 @@ export var ActivityMessageEndReason;
58
62
  })(ActivityMessageEndReason || (ActivityMessageEndReason = {}));
59
63
  /** Describes the set of buttons displayed in a message box opened using [[NotificationManager.openMessageBox]].
60
64
  * @public
65
+ * @extensions
61
66
  */
62
67
  export var MessageBoxType;
63
68
  (function (MessageBoxType) {
@@ -70,6 +75,7 @@ export var MessageBoxType;
70
75
  })(MessageBoxType || (MessageBoxType = {}));
71
76
  /** Describes the icon displayed in a messagebox opened using [[NotificationManager.openMessageBox]].
72
77
  * @public
78
+ * @extensions
73
79
  */
74
80
  export var MessageBoxIconType;
75
81
  (function (MessageBoxIconType) {
@@ -82,6 +88,7 @@ export var MessageBoxIconType;
82
88
  })(MessageBoxIconType || (MessageBoxIconType = {}));
83
89
  /** Describes the possible return values produced when the user clicks a button in a messagebox opened using [[NotificationManager.openMessageBox]].
84
90
  * @public
91
+ * @extensions
85
92
  */
86
93
  export var MessageBoxValue;
87
94
  (function (MessageBoxValue) {
@@ -100,6 +107,7 @@ export var MessageBoxValue;
100
107
  })(MessageBoxValue || (MessageBoxValue = {}));
101
108
  /** Describes a message to be displayed to the user.
102
109
  * @public
110
+ * @extensions
103
111
  */
104
112
  export class NotifyMessageDetails {
105
113
  /** Constructor
@@ -139,6 +147,7 @@ export class NotifyMessageDetails {
139
147
  }
140
148
  /** Specifies the details of an activity message to be displayed to the user.
141
149
  * @public
150
+ * @extensions
142
151
  */
143
152
  export class ActivityMessageDetails {
144
153
  /**
@@ -163,6 +172,7 @@ export class ActivityMessageDetails {
163
172
  * Implementations of the NotificationManager may present the information in different ways. For example, in
164
173
  * non-interactive sessions, these messages may be saved to a log file or simply discarded.
165
174
  * @public
175
+ * @extensions
166
176
  */
167
177
  export class NotificationManager {
168
178
  constructor() {
@@ -1 +1 @@
1
- {"version":3,"file":"NotificationManager.js","sourceRoot":"","sources":["../../src/NotificationManager.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 Notifications\r\n */\r\nimport { BeDuration } from \"@itwin/core-bentley\";\r\nimport { Point2d, XAndY } from \"@itwin/core-geometry\";\r\nimport { DisplayMessageType, MessagePresenter, MessageSeverity, RelativePosition } from \"@itwin/appui-abstract\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { ToolAssistanceInstructions } from \"./tools/ToolAssistance\";\r\n\r\n// cSpell:words messagebox\r\n\r\n/** Describes the type and behavior of a [[NotifyMessageDetails]].\r\n * @public\r\n */\r\nexport enum OutputMessageType {\r\n /** Temporary message box displays at the top or bottom of the screen then disappears automatically. */\r\n Toast = 0,\r\n /** Message box displays near the cursor over a Viewport and is closed by calling `closePointerMessage`. */\r\n Pointer = 1,\r\n /** Message box displays at the top or bottom of the screen and contains a Close button. */\r\n Sticky = 2,\r\n /** Message box displays near an input field and contains a Close button. */\r\n InputField = 3,\r\n /** Modal message box. */\r\n Alert = 4,\r\n}\r\n\r\n/** Classifies a [[NotifyMessageDetails]] by its level of importance.\r\n * @public\r\n */\r\nexport enum OutputMessagePriority {\r\n None = 0,\r\n Success = 1,\r\n Error = 10,\r\n Warning = 11,\r\n Info = 12,\r\n Debug = 13,\r\n Fatal = 17,\r\n}\r\n\r\n/** Describes the alert behavior of a [[NotifyMessageDetails]].\r\n * @public\r\n */\r\nexport enum OutputMessageAlert {\r\n None = 0,\r\n Dialog = 1,\r\n Balloon = 2,\r\n}\r\n\r\n/** Reason for ending the activity message via endActivityMessage\r\n * @public\r\n */\r\nexport enum ActivityMessageEndReason {\r\n Completed = 0,\r\n Cancelled = 1,\r\n}\r\n\r\n/** Describes the set of buttons displayed in a message box opened using [[NotificationManager.openMessageBox]].\r\n * @public\r\n */\r\nexport enum MessageBoxType {\r\n OkCancel,\r\n Ok,\r\n LargeOk,\r\n MediumAlert,\r\n YesNoCancel,\r\n YesNo,\r\n}\r\n\r\n/** Describes the icon displayed in a messagebox opened using [[NotificationManager.openMessageBox]].\r\n * @public\r\n */\r\nexport enum MessageBoxIconType {\r\n NoSymbol = 0, // Means Don't draw Symbol\r\n Information = 1, // Lower Case i\r\n Question = 2, // Question Mark\r\n Warning = 3, // Exclamation Point\r\n Critical = 4, // Stop Sign\r\n Success = 5, // check mark\r\n}\r\n\r\n/** Describes the possible return values produced when the user clicks a button in a messagebox opened using [[NotificationManager.openMessageBox]].\r\n * @public\r\n */\r\nexport enum MessageBoxValue {\r\n Apply = 1,\r\n Reset = 2,\r\n Ok = 3,\r\n Cancel = 4,\r\n Default = 5,\r\n Yes = 6,\r\n No = 7,\r\n Retry = 8,\r\n Stop = 9,\r\n Help = 10,\r\n YesToAll = 11,\r\n NoToAll = 12,\r\n}\r\n\r\n/** Describes the behavior of a tooltip created using [[NotificationManager.openToolTip]].\r\n * @public\r\n */\r\nexport interface ToolTipOptions {\r\n duration?: BeDuration;\r\n placement?: string;\r\n}\r\n\r\n/** Describes a message to be displayed to the user.\r\n * @public\r\n */\r\nexport class NotifyMessageDetails {\r\n public displayTime = BeDuration.fromSeconds(5);\r\n public viewport?: HTMLElement;\r\n public inputField?: HTMLElement;\r\n public displayPoint?: Point2d;\r\n public relativePosition = RelativePosition.TopRight;\r\n\r\n /** Constructor\r\n * @param priority The priority this message should be accorded by the NotificationManager.\r\n * @param briefMessage A short message that conveys the simplest explanation of the issue.\r\n * @param detailedMessage An optional comprehensive message that explains the issue in detail and potentially offers a solution.\r\n * @param msgType The type of message. Defaults to Toast.\r\n * @param openAlert Whether an alert box should be displayed or not, and if so what kind.\r\n */\r\n public constructor(public priority: OutputMessagePriority, public briefMessage: HTMLElement | string,\r\n public detailedMessage?: HTMLElement | string, public msgType = OutputMessageType.Toast, public openAlert = OutputMessageAlert.None) { }\r\n\r\n /** Set OutputMessageType.Pointer message details.\r\n * @param viewport Viewport over which to display the Pointer type message.\r\n * @param displayPoint Point at which to display the Pointer type message.\r\n * @param relativePosition Position relative to displayPoint at which to display the Pointer type message.\r\n */\r\n public setPointerTypeDetails(viewport: HTMLElement, displayPoint: XAndY, relativePosition = RelativePosition.TopRight) {\r\n this.viewport = viewport;\r\n this.displayPoint = Point2d.fromJSON(displayPoint);\r\n this.relativePosition = relativePosition;\r\n this.msgType = OutputMessageType.Pointer;\r\n }\r\n\r\n /** Set OutputMessageType.InputField message details.\r\n * @param inputField Input field to which the message pertains. The message will be shown just below this input field element.\r\n */\r\n public setInputFieldTypeDetails(inputField: HTMLElement) {\r\n this.inputField = inputField;\r\n this.msgType = OutputMessageType.InputField;\r\n }\r\n}\r\n\r\n/** Specifies the details of an activity message to be displayed to the user.\r\n * @public\r\n */\r\nexport class ActivityMessageDetails {\r\n public wasCancelled = false;\r\n\r\n /**\r\n * @param showProgressBar Indicates whether to show the progress bar in the activity message dialog.\r\n * @param showPercentInMessage Indicates whether to show the percentage complete in the activity message text.\r\n * @param supportsCancellation Indicates whether to show the Cancel button, giving the user the ability to cancel the operation.\r\n * @param showDialogInitially Indicates whether to show the activity message dialog initially. User can click status bar to open it.\r\n */\r\n public constructor(public showProgressBar: boolean, public showPercentInMessage: boolean, public supportsCancellation: boolean, public showDialogInitially: boolean = true) { }\r\n\r\n /** Called from NotificationAdmin when the user cancels the activity. */\r\n public onActivityCancelled() { this.wasCancelled = true; }\r\n\r\n /** Called from NotificationAdmin when the activity completes successfully. */\r\n public onActivityCompleted() { this.wasCancelled = false; }\r\n}\r\n\r\n/** The NotificationManager controls the interaction with the user for prompts, error messages, and alert dialogs.\r\n * Implementations of the NotificationManager may present the information in different ways. For example, in\r\n * non-interactive sessions, these messages may be saved to a log file or simply discarded.\r\n * @public\r\n */\r\nexport class NotificationManager implements MessagePresenter {\r\n public readonly toolTipLocation = new Point2d();\r\n\r\n /** Output a prompt, given a localization key.\r\n * @param key The key of the localized string with the prompt message.\r\n */\r\n public outputPromptByKey(key: string) { this.outputPrompt(IModelApp.localization.getLocalizedString(key)); }\r\n\r\n /** Output a localized prompt to the user. A 'prompt' indicates an action the user should take to proceed.\r\n * @param _prompt The localized string with the prompt message.\r\n */\r\n public outputPrompt(_prompt: string) { }\r\n\r\n /** Output a message and/or alert to the user. */\r\n public outputMessage(_message: NotifyMessageDetails) { }\r\n\r\n /** Output a MessageBox and wait for response from the user.\r\n * @param _mbType The MessageBox type.\r\n * @param _message The message to display.\r\n * @param _icon The MessageBox icon type.\r\n * @return the response from the user.\r\n */\r\n public async openMessageBox(_mbType: MessageBoxType, _message: HTMLElement | string, _icon: MessageBoxIconType): Promise<MessageBoxValue> { return MessageBoxValue.Ok; }\r\n\r\n /**\r\n * Set up for activity messages.\r\n * @param _details The activity message details.\r\n * @return true if the message was displayed, false if an invalid priority is specified.\r\n */\r\n public setupActivityMessage(_details: ActivityMessageDetails) { return true; }\r\n\r\n /**\r\n * Output an activity message to the user.\r\n * @param _messageText The message text.\r\n * @param _percentComplete The percentage of completion.\r\n * @return true if the message was displayed, false if the message could not be displayed.\r\n */\r\n public outputActivityMessage(_messageText: HTMLElement | string, _percentComplete: number) { return true; }\r\n\r\n /**\r\n * End an activity message.\r\n * @param _reason The reason for the end of the Activity Message.\r\n * @return true if the message was ended successfully, false if the activityMessage could not be ended.\r\n */\r\n public endActivityMessage(_reason: ActivityMessageEndReason) { return true; }\r\n\r\n /** Return true if _showTooltip has an implementation and will display a tooltip. */\r\n public get isToolTipSupported(): boolean { return false; }\r\n\r\n /** Return true if the tooltip is currently open. */\r\n public get isToolTipOpen(): boolean { return false; }\r\n\r\n /** Implement to display a tooltip message at the specified location. */\r\n protected _showToolTip(_htmlElement: HTMLElement, _message: HTMLElement | string, _location?: XAndY, _options?: ToolTipOptions): void { }\r\n\r\n /** Show a tooltip window. Saves tooltip location for AccuSnap to test if cursor has moved far enough away to close tooltip.\r\n * @param htmlElement The HTMLElement that anchors the toolTip.\r\n * @param message What to display inside the ToolTip. May be a string or an HTMLElement.\r\n * @param location An optional location, relative to the origin of _htmlElement, for the ToolTip. If undefined, center of `htmlElement`\r\n * @param options Options that supply additional information about how the ToolTip should function.\r\n * @note If message is an HTMLElement, the notification manager will display the HTMLElement verbatim. This can represent a security\r\n * risk if any part the element is created from user input. Applications should be careful to *sanitize* any such input before\r\n * creating an HTMLElement to pass to this method.\r\n */\r\n public openToolTip(htmlElement: HTMLElement, message: HTMLElement | string, location?: XAndY, options?: ToolTipOptions): void {\r\n this.toolTipLocation.setFrom(location);\r\n this._showToolTip(htmlElement, message, location, options);\r\n }\r\n\r\n /** Clear the tooltip if it is currently open. */\r\n public clearToolTip(): void { }\r\n\r\n /** Update message position created with [[OutputMessageType.Pointer]].\r\n * @param displayPoint Point at which to display the Pointer type message.\r\n * @param relativePosition Position relative to displayPoint at which to display the Pointer type message.\r\n */\r\n public updatePointerMessage(_displayPoint: XAndY, _relativePosition = RelativePosition.TopRight): void { }\r\n\r\n /** Close message created with [[OutputMessageType.Pointer]]. */\r\n public closePointerMessage(): void { }\r\n\r\n /** Close message created with [[OutputMessageType.InputField]]. */\r\n public closeInputFieldMessage(): void { }\r\n\r\n /** Setup tool assistance instructions for a tool. The instructions include the main instruction, which includes the current prompt.\r\n * @param instructions The tool assistance instructions.\r\n */\r\n public setToolAssistance(instructions: ToolAssistanceInstructions | undefined) {\r\n this.outputPrompt(instructions ? instructions.mainInstruction.text : \"\");\r\n }\r\n\r\n /**\r\n * Displays a notification message.\r\n * @param severity The severity of the message.\r\n * @param briefMessage A short message that conveys the simplest explanation of the issue.\r\n * @param detailedMessage An optional comprehensive message that explains the issue in detail and potentially offers a solution.\r\n * @param messageType The type of message. Defaults to Toast.\r\n */\r\n public displayMessage(severity: MessageSeverity, briefMessage: HTMLElement | string, detailedMessage?: HTMLElement | string, messageType?: DisplayMessageType): void {\r\n const details = new NotifyMessageDetails(this.convertSeverityToPriority(severity), briefMessage, detailedMessage, this.convertMessageType(messageType));\r\n this.outputMessage(details);\r\n }\r\n\r\n /**\r\n * Displays an input field notification message.\r\n * @param inputField Input field to which the message pertains. The message will be shown just below this input field element.\r\n * @param severity The severity of the message.\r\n * @param briefMessage A short message that conveys the simplest explanation of the issue.\r\n * @param detailedMessage An optional comprehensive message that explains the issue in detail and potentially offers a solution.\r\n */\r\n public displayInputFieldMessage(inputField: HTMLElement, severity: MessageSeverity, briefMessage: HTMLElement | string, detailedMessage?: HTMLElement | string): void {\r\n const details = new NotifyMessageDetails(this.convertSeverityToPriority(severity), briefMessage, detailedMessage);\r\n details.setInputFieldTypeDetails(inputField);\r\n this.outputMessage(details);\r\n }\r\n\r\n private convertSeverityToPriority(severity: MessageSeverity): OutputMessagePriority {\r\n switch (severity) {\r\n case MessageSeverity.Information:\r\n return OutputMessagePriority.Info;\r\n case MessageSeverity.Warning:\r\n return OutputMessagePriority.Warning;\r\n case MessageSeverity.Error:\r\n return OutputMessagePriority.Error;\r\n case MessageSeverity.Fatal:\r\n return OutputMessagePriority.Fatal;\r\n case MessageSeverity.None:\r\n default:\r\n return OutputMessagePriority.None;\r\n }\r\n }\r\n\r\n private convertMessageType(inMessageType?: DisplayMessageType): OutputMessageType | undefined {\r\n switch (inMessageType) {\r\n case DisplayMessageType.Alert:\r\n return OutputMessageType.Alert;\r\n case DisplayMessageType.InputField:\r\n return OutputMessageType.InputField;\r\n case DisplayMessageType.Sticky:\r\n return OutputMessageType.Sticky;\r\n case DisplayMessageType.Toast:\r\n return OutputMessageType.Toast;\r\n default:\r\n return undefined;\r\n }\r\n }\r\n\r\n}\r\n"]}
1
+ {"version":3,"file":"NotificationManager.js","sourceRoot":"","sources":["../../src/NotificationManager.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 Notifications\r\n */\r\nimport { BeDuration } from \"@itwin/core-bentley\";\r\nimport { Point2d, XAndY } from \"@itwin/core-geometry\";\r\nimport { DisplayMessageType, MessagePresenter, MessageSeverity, RelativePosition } from \"@itwin/appui-abstract\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { ToolAssistanceInstructions } from \"./tools/ToolAssistance\";\r\n\r\n// cSpell:words messagebox\r\n\r\n/** Describes the type and behavior of a [[NotifyMessageDetails]].\r\n * @public\r\n * @extensions\r\n */\r\nexport enum OutputMessageType {\r\n /** Temporary message box displays at the top or bottom of the screen then disappears automatically. */\r\n Toast = 0,\r\n /** Message box displays near the cursor over a Viewport and is closed by calling `closePointerMessage`. */\r\n Pointer = 1,\r\n /** Message box displays at the top or bottom of the screen and contains a Close button. */\r\n Sticky = 2,\r\n /** Message box displays near an input field and contains a Close button. */\r\n InputField = 3,\r\n /** Modal message box. */\r\n Alert = 4,\r\n}\r\n\r\n/** Classifies a [[NotifyMessageDetails]] by its level of importance.\r\n * @public\r\n * @extensions\r\n */\r\nexport enum OutputMessagePriority {\r\n None = 0,\r\n Success = 1,\r\n Error = 10,\r\n Warning = 11,\r\n Info = 12,\r\n Debug = 13,\r\n Fatal = 17,\r\n}\r\n\r\n/** Describes the alert behavior of a [[NotifyMessageDetails]].\r\n * @public\r\n * @extensions\r\n */\r\nexport enum OutputMessageAlert {\r\n None = 0,\r\n Dialog = 1,\r\n Balloon = 2,\r\n}\r\n\r\n/** Reason for ending the activity message via endActivityMessage\r\n * @public\r\n * @extensions\r\n */\r\nexport enum ActivityMessageEndReason {\r\n Completed = 0,\r\n Cancelled = 1,\r\n}\r\n\r\n/** Describes the set of buttons displayed in a message box opened using [[NotificationManager.openMessageBox]].\r\n * @public\r\n * @extensions\r\n */\r\nexport enum MessageBoxType {\r\n OkCancel,\r\n Ok,\r\n LargeOk,\r\n MediumAlert,\r\n YesNoCancel,\r\n YesNo,\r\n}\r\n\r\n/** Describes the icon displayed in a messagebox opened using [[NotificationManager.openMessageBox]].\r\n * @public\r\n * @extensions\r\n */\r\nexport enum MessageBoxIconType {\r\n NoSymbol = 0, // Means Don't draw Symbol\r\n Information = 1, // Lower Case i\r\n Question = 2, // Question Mark\r\n Warning = 3, // Exclamation Point\r\n Critical = 4, // Stop Sign\r\n Success = 5, // check mark\r\n}\r\n\r\n/** Describes the possible return values produced when the user clicks a button in a messagebox opened using [[NotificationManager.openMessageBox]].\r\n * @public\r\n * @extensions\r\n */\r\nexport enum MessageBoxValue {\r\n Apply = 1,\r\n Reset = 2,\r\n Ok = 3,\r\n Cancel = 4,\r\n Default = 5,\r\n Yes = 6,\r\n No = 7,\r\n Retry = 8,\r\n Stop = 9,\r\n Help = 10,\r\n YesToAll = 11,\r\n NoToAll = 12,\r\n}\r\n\r\n/** Describes the behavior of a tooltip created using [[NotificationManager.openToolTip]].\r\n * @public\r\n * @extensions\r\n */\r\nexport interface ToolTipOptions {\r\n duration?: BeDuration;\r\n placement?: string;\r\n}\r\n\r\n/** Describes a message to be displayed to the user.\r\n * @public\r\n * @extensions\r\n */\r\nexport class NotifyMessageDetails {\r\n public displayTime = BeDuration.fromSeconds(5);\r\n public viewport?: HTMLElement;\r\n public inputField?: HTMLElement;\r\n public displayPoint?: Point2d;\r\n public relativePosition = RelativePosition.TopRight;\r\n\r\n /** Constructor\r\n * @param priority The priority this message should be accorded by the NotificationManager.\r\n * @param briefMessage A short message that conveys the simplest explanation of the issue.\r\n * @param detailedMessage An optional comprehensive message that explains the issue in detail and potentially offers a solution.\r\n * @param msgType The type of message. Defaults to Toast.\r\n * @param openAlert Whether an alert box should be displayed or not, and if so what kind.\r\n */\r\n public constructor(public priority: OutputMessagePriority, public briefMessage: HTMLElement | string,\r\n public detailedMessage?: HTMLElement | string, public msgType = OutputMessageType.Toast, public openAlert = OutputMessageAlert.None) { }\r\n\r\n /** Set OutputMessageType.Pointer message details.\r\n * @param viewport Viewport over which to display the Pointer type message.\r\n * @param displayPoint Point at which to display the Pointer type message.\r\n * @param relativePosition Position relative to displayPoint at which to display the Pointer type message.\r\n */\r\n public setPointerTypeDetails(viewport: HTMLElement, displayPoint: XAndY, relativePosition = RelativePosition.TopRight) {\r\n this.viewport = viewport;\r\n this.displayPoint = Point2d.fromJSON(displayPoint);\r\n this.relativePosition = relativePosition;\r\n this.msgType = OutputMessageType.Pointer;\r\n }\r\n\r\n /** Set OutputMessageType.InputField message details.\r\n * @param inputField Input field to which the message pertains. The message will be shown just below this input field element.\r\n */\r\n public setInputFieldTypeDetails(inputField: HTMLElement) {\r\n this.inputField = inputField;\r\n this.msgType = OutputMessageType.InputField;\r\n }\r\n}\r\n\r\n/** Specifies the details of an activity message to be displayed to the user.\r\n * @public\r\n * @extensions\r\n */\r\nexport class ActivityMessageDetails {\r\n public wasCancelled = false;\r\n\r\n /**\r\n * @param showProgressBar Indicates whether to show the progress bar in the activity message dialog.\r\n * @param showPercentInMessage Indicates whether to show the percentage complete in the activity message text.\r\n * @param supportsCancellation Indicates whether to show the Cancel button, giving the user the ability to cancel the operation.\r\n * @param showDialogInitially Indicates whether to show the activity message dialog initially. User can click status bar to open it.\r\n */\r\n public constructor(public showProgressBar: boolean, public showPercentInMessage: boolean, public supportsCancellation: boolean, public showDialogInitially: boolean = true) { }\r\n\r\n /** Called from NotificationAdmin when the user cancels the activity. */\r\n public onActivityCancelled() { this.wasCancelled = true; }\r\n\r\n /** Called from NotificationAdmin when the activity completes successfully. */\r\n public onActivityCompleted() { this.wasCancelled = false; }\r\n}\r\n\r\n/** The NotificationManager controls the interaction with the user for prompts, error messages, and alert dialogs.\r\n * Implementations of the NotificationManager may present the information in different ways. For example, in\r\n * non-interactive sessions, these messages may be saved to a log file or simply discarded.\r\n * @public\r\n * @extensions\r\n */\r\nexport class NotificationManager implements MessagePresenter {\r\n public readonly toolTipLocation = new Point2d();\r\n\r\n /** Output a prompt, given a localization key.\r\n * @param key The key of the localized string with the prompt message.\r\n */\r\n public outputPromptByKey(key: string) { this.outputPrompt(IModelApp.localization.getLocalizedString(key)); }\r\n\r\n /** Output a localized prompt to the user. A 'prompt' indicates an action the user should take to proceed.\r\n * @param _prompt The localized string with the prompt message.\r\n */\r\n public outputPrompt(_prompt: string) { }\r\n\r\n /** Output a message and/or alert to the user. */\r\n public outputMessage(_message: NotifyMessageDetails) { }\r\n\r\n /** Output a MessageBox and wait for response from the user.\r\n * @param _mbType The MessageBox type.\r\n * @param _message The message to display.\r\n * @param _icon The MessageBox icon type.\r\n * @return the response from the user.\r\n */\r\n public async openMessageBox(_mbType: MessageBoxType, _message: HTMLElement | string, _icon: MessageBoxIconType): Promise<MessageBoxValue> { return MessageBoxValue.Ok; }\r\n\r\n /**\r\n * Set up for activity messages.\r\n * @param _details The activity message details.\r\n * @return true if the message was displayed, false if an invalid priority is specified.\r\n */\r\n public setupActivityMessage(_details: ActivityMessageDetails) { return true; }\r\n\r\n /**\r\n * Output an activity message to the user.\r\n * @param _messageText The message text.\r\n * @param _percentComplete The percentage of completion.\r\n * @return true if the message was displayed, false if the message could not be displayed.\r\n */\r\n public outputActivityMessage(_messageText: HTMLElement | string, _percentComplete: number) { return true; }\r\n\r\n /**\r\n * End an activity message.\r\n * @param _reason The reason for the end of the Activity Message.\r\n * @return true if the message was ended successfully, false if the activityMessage could not be ended.\r\n */\r\n public endActivityMessage(_reason: ActivityMessageEndReason) { return true; }\r\n\r\n /** Return true if _showTooltip has an implementation and will display a tooltip. */\r\n public get isToolTipSupported(): boolean { return false; }\r\n\r\n /** Return true if the tooltip is currently open. */\r\n public get isToolTipOpen(): boolean { return false; }\r\n\r\n /** Implement to display a tooltip message at the specified location. */\r\n protected _showToolTip(_htmlElement: HTMLElement, _message: HTMLElement | string, _location?: XAndY, _options?: ToolTipOptions): void { }\r\n\r\n /** Show a tooltip window. Saves tooltip location for AccuSnap to test if cursor has moved far enough away to close tooltip.\r\n * @param htmlElement The HTMLElement that anchors the toolTip.\r\n * @param message What to display inside the ToolTip. May be a string or an HTMLElement.\r\n * @param location An optional location, relative to the origin of _htmlElement, for the ToolTip. If undefined, center of `htmlElement`\r\n * @param options Options that supply additional information about how the ToolTip should function.\r\n * @note If message is an HTMLElement, the notification manager will display the HTMLElement verbatim. This can represent a security\r\n * risk if any part the element is created from user input. Applications should be careful to *sanitize* any such input before\r\n * creating an HTMLElement to pass to this method.\r\n */\r\n public openToolTip(htmlElement: HTMLElement, message: HTMLElement | string, location?: XAndY, options?: ToolTipOptions): void {\r\n this.toolTipLocation.setFrom(location);\r\n this._showToolTip(htmlElement, message, location, options);\r\n }\r\n\r\n /** Clear the tooltip if it is currently open. */\r\n public clearToolTip(): void { }\r\n\r\n /** Update message position created with [[OutputMessageType.Pointer]].\r\n * @param displayPoint Point at which to display the Pointer type message.\r\n * @param relativePosition Position relative to displayPoint at which to display the Pointer type message.\r\n */\r\n public updatePointerMessage(_displayPoint: XAndY, _relativePosition = RelativePosition.TopRight): void { }\r\n\r\n /** Close message created with [[OutputMessageType.Pointer]]. */\r\n public closePointerMessage(): void { }\r\n\r\n /** Close message created with [[OutputMessageType.InputField]]. */\r\n public closeInputFieldMessage(): void { }\r\n\r\n /** Setup tool assistance instructions for a tool. The instructions include the main instruction, which includes the current prompt.\r\n * @param instructions The tool assistance instructions.\r\n */\r\n public setToolAssistance(instructions: ToolAssistanceInstructions | undefined) {\r\n this.outputPrompt(instructions ? instructions.mainInstruction.text : \"\");\r\n }\r\n\r\n /**\r\n * Displays a notification message.\r\n * @param severity The severity of the message.\r\n * @param briefMessage A short message that conveys the simplest explanation of the issue.\r\n * @param detailedMessage An optional comprehensive message that explains the issue in detail and potentially offers a solution.\r\n * @param messageType The type of message. Defaults to Toast.\r\n */\r\n public displayMessage(severity: MessageSeverity, briefMessage: HTMLElement | string, detailedMessage?: HTMLElement | string, messageType?: DisplayMessageType): void {\r\n const details = new NotifyMessageDetails(this.convertSeverityToPriority(severity), briefMessage, detailedMessage, this.convertMessageType(messageType));\r\n this.outputMessage(details);\r\n }\r\n\r\n /**\r\n * Displays an input field notification message.\r\n * @param inputField Input field to which the message pertains. The message will be shown just below this input field element.\r\n * @param severity The severity of the message.\r\n * @param briefMessage A short message that conveys the simplest explanation of the issue.\r\n * @param detailedMessage An optional comprehensive message that explains the issue in detail and potentially offers a solution.\r\n */\r\n public displayInputFieldMessage(inputField: HTMLElement, severity: MessageSeverity, briefMessage: HTMLElement | string, detailedMessage?: HTMLElement | string): void {\r\n const details = new NotifyMessageDetails(this.convertSeverityToPriority(severity), briefMessage, detailedMessage);\r\n details.setInputFieldTypeDetails(inputField);\r\n this.outputMessage(details);\r\n }\r\n\r\n private convertSeverityToPriority(severity: MessageSeverity): OutputMessagePriority {\r\n switch (severity) {\r\n case MessageSeverity.Information:\r\n return OutputMessagePriority.Info;\r\n case MessageSeverity.Warning:\r\n return OutputMessagePriority.Warning;\r\n case MessageSeverity.Error:\r\n return OutputMessagePriority.Error;\r\n case MessageSeverity.Fatal:\r\n return OutputMessagePriority.Fatal;\r\n case MessageSeverity.None:\r\n default:\r\n return OutputMessagePriority.None;\r\n }\r\n }\r\n\r\n private convertMessageType(inMessageType?: DisplayMessageType): OutputMessageType | undefined {\r\n switch (inMessageType) {\r\n case DisplayMessageType.Alert:\r\n return OutputMessageType.Alert;\r\n case DisplayMessageType.InputField:\r\n return OutputMessageType.InputField;\r\n case DisplayMessageType.Sticky:\r\n return OutputMessageType.Sticky;\r\n case DisplayMessageType.Toast:\r\n return OutputMessageType.Toast;\r\n default:\r\n return undefined;\r\n }\r\n }\r\n\r\n}\r\n"]}
@@ -11,6 +11,7 @@ import { Viewport } from "./Viewport";
11
11
  * will be visible, regardless of any [SubCategoryOverride]($common)s applied by the view's [[DisplayStyleState]].
12
12
  * @see [[Viewport.perModelCategoryVisibility]] to define the per-model category visibility for a viewport.
13
13
  * @public
14
+ * @extensions
14
15
  */
15
16
  export declare namespace PerModelCategoryVisibility {
16
17
  /** Describes whether and how a category's visibility is overridden. */
@@ -1 +1 @@
1
- {"version":3,"file":"PerModelCategoryVisibility.d.ts","sourceRoot":"","sources":["../../src/PerModelCategoryVisibility.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAkB,IAAI,EAAE,OAAO,EAAE,UAAU,EAAe,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;;;;GAOG;AACH,yBAAiB,0BAA0B,CAAC;IAC1C,uEAAuE;IACvE,KAAY,QAAQ;QAClB,wIAAwI;QACxI,IAAI,IAAA;QACJ,gDAAgD;QAChD,IAAI,IAAA;QACJ,kDAAkD;QAClD,IAAI,IAAA;KACL;IAED,uFAAuF;IACvF,UAAiB,aAAa;QAC5B,2EAA2E;QAC3E,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;QAC7B,gFAAgF;QAChF,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;QAChC,mEAAmE;QACnE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;KAC3B;IAED;;OAEG;IACH,UAAiB,SAAS;QACxB,uFAAuF;QACvF,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,QAAQ,CAAC;QACnE,mFAAmF;QACnF,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;QAC/E,oGAAoG;QACpG,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;QACzC,wDAAwD;QACxD,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,QAAQ,CAAC,aAAa,CAAC,CAAC;QACjD,mFAAmF;QACnF,YAAY,CAAC,EAAE,EAAE,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;KAC1F;IAED,SAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,0BAA0B,CAAC,SAAS,CAExF;CACF"}
1
+ {"version":3,"file":"PerModelCategoryVisibility.d.ts","sourceRoot":"","sources":["../../src/PerModelCategoryVisibility.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAkB,IAAI,EAAE,OAAO,EAAE,UAAU,EAAe,MAAM,qBAAqB,CAAC;AAC7F,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC;;;;;;;;GAQG;AACH,yBAAiB,0BAA0B,CAAC;IAC1C,uEAAuE;IACvE,KAAY,QAAQ;QAClB,wIAAwI;QACxI,IAAI,IAAA;QACJ,gDAAgD;QAChD,IAAI,IAAA;QACJ,kDAAkD;QAClD,IAAI,IAAA;KACL;IAED,uFAAuF;IACvF,UAAiB,aAAa;QAC5B,2EAA2E;QAC3E,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC;QAC7B,gFAAgF;QAChF,QAAQ,CAAC,UAAU,EAAE,UAAU,CAAC;QAChC,mEAAmE;QACnE,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;KAC3B;IAED;;OAEG;IACH,UAAiB,SAAS;QACxB,uFAAuF;QACvF,WAAW,CAAC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,QAAQ,CAAC;QACnE,mFAAmF;QACnF,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;QAC/E,oGAAoG;QACpG,cAAc,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;QACzC,wDAAwD;QACxD,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,MAAM,QAAQ,CAAC,aAAa,CAAC,CAAC;QACjD,mFAAmF;QACnF,YAAY,CAAC,EAAE,EAAE,gBAAgB,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC;KAC1F;IAED,SAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,0BAA0B,CAAC,SAAS,CAExF;CACF"}
@@ -13,6 +13,7 @@ import { compareStrings, Id64, SortedArray } from "@itwin/core-bentley";
13
13
  * will be visible, regardless of any [SubCategoryOverride]($common)s applied by the view's [[DisplayStyleState]].
14
14
  * @see [[Viewport.perModelCategoryVisibility]] to define the per-model category visibility for a viewport.
15
15
  * @public
16
+ * @extensions
16
17
  */
17
18
  export var PerModelCategoryVisibility;
18
19
  (function (PerModelCategoryVisibility) {
@@ -1 +1 @@
1
- {"version":3,"file":"PerModelCategoryVisibility.js","sourceRoot":"","sources":["../../src/PerModelCategoryVisibility.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 Views\r\n */\r\n\r\nimport { compareStrings, Id64, Id64Arg, Id64String, SortedArray } from \"@itwin/core-bentley\";\r\nimport { FeatureSymbology } from \"./render/FeatureSymbology\";\r\nimport { Viewport } from \"./Viewport\";\r\n\r\n/** Per-model category visibility permits the visibility of categories within a [[Viewport]] displaying a [[SpatialViewState]] to be overridden in\r\n * the context of individual [[GeometricModelState]]s.\r\n * If a category's visibility is overridden for a given model, then elements belonging to that category within that model will be displayed or hidden regardless of the category's inclusion in the Viewport's [[CategorySelectorState]].\r\n * The override affects geometry on all subcategories belonging to the overridden category. That is, if the category is overridden to be visible, then geometry on all subcategories of the category\r\n * will be visible, regardless of any [SubCategoryOverride]($common)s applied by the view's [[DisplayStyleState]].\r\n * @see [[Viewport.perModelCategoryVisibility]] to define the per-model category visibility for a viewport.\r\n * @public\r\n */\r\nexport namespace PerModelCategoryVisibility {\r\n /** Describes whether and how a category's visibility is overridden. */\r\n export enum Override {\r\n /** The category's visibility is not overridden; its visibility is wholly controlled by the [[Viewport]]'s [[CategorySelectorState]]. */\r\n None,\r\n /** The category is overridden to be visible. */\r\n Show,\r\n /** The category is overridden to be invisible. */\r\n Hide,\r\n }\r\n\r\n /** Describes one visibility override in a [[PerModelCategoryVisibility.Overrides]]. */\r\n export interface OverrideEntry {\r\n /** The Id of the [[GeometricModelState]] in which the override applies. */\r\n readonly modelId: Id64String;\r\n /** The Id of the [SpatialCategory]($backend) whose visibility is overridden. */\r\n readonly categoryId: Id64String;\r\n /** Whether the category is visible in the context of the model. */\r\n readonly visible: boolean;\r\n }\r\n\r\n /** Describes a set of per-model category visibility overrides. Changes to these overrides invoke the [[Viewport.onViewedCategoriesPerModelChanged]] event.\r\n * @see [[Viewport.perModelCategoryVisibility]].\r\n */\r\n export interface Overrides {\r\n /** Returns the override state of the specified category within the specified model. */\r\n getOverride(modelId: Id64String, categoryId: Id64String): Override;\r\n /** Changes the override state of one or more categories for one or more models. */\r\n setOverride(modelIds: Id64Arg, categoryIds: Id64Arg, override: Override): void;\r\n /** Removes all overrides for the specified models, or for all models if `modelIds` is undefined. */\r\n clearOverrides(modelIds?: Id64Arg): void;\r\n /** An iterator over all of the visibility overrides. */\r\n [Symbol.iterator]: () => Iterator<OverrideEntry>;\r\n /** Populate the symbology overrides based on the per-model category visibility. */\r\n addOverrides(fs: FeatureSymbology.Overrides, ovrs: Id64.Uint32Map<Id64.Uint32Set>): void;\r\n }\r\n\r\n export function createOverrides(viewport: Viewport): PerModelCategoryVisibility.Overrides {\r\n return new PerModelCategoryVisibilityOverrides(viewport);\r\n }\r\n}\r\n\r\nclass PerModelCategoryVisibilityOverride {\r\n public modelId: Id64String;\r\n public categoryId: Id64String;\r\n public visible: boolean;\r\n\r\n public constructor(modelId: Id64String, categoryId: Id64String, visible: boolean) {\r\n this.modelId = modelId;\r\n this.categoryId = categoryId;\r\n this.visible = visible;\r\n }\r\n\r\n public reset(modelId: Id64String, categoryId: Id64String, visible: boolean): void {\r\n this.modelId = modelId;\r\n this.categoryId = categoryId;\r\n this.visible = visible;\r\n }\r\n}\r\n\r\nfunction compareCategoryOverrides(lhs: PerModelCategoryVisibilityOverride, rhs: PerModelCategoryVisibilityOverride): number {\r\n const cmp = compareStrings(lhs.modelId, rhs.modelId);\r\n return 0 === cmp ? compareStrings(lhs.categoryId, rhs.categoryId) : cmp;\r\n}\r\n\r\n/** The Viewport-specific implementation of PerModelCategoryVisibility.Overrides. */\r\nclass PerModelCategoryVisibilityOverrides extends SortedArray<PerModelCategoryVisibilityOverride> implements PerModelCategoryVisibility.Overrides {\r\n private readonly _scratch = new PerModelCategoryVisibilityOverride(\"0\", \"0\", false);\r\n private readonly _vp: Viewport;\r\n\r\n public constructor(vp: Viewport) {\r\n super(compareCategoryOverrides);\r\n this._vp = vp;\r\n }\r\n\r\n public getOverride(modelId: Id64String, categoryId: Id64String): PerModelCategoryVisibility.Override {\r\n this._scratch.reset(modelId, categoryId, false);\r\n const ovr = this.findEqual(this._scratch);\r\n if (undefined !== ovr)\r\n return ovr.visible ? PerModelCategoryVisibility.Override.Show : PerModelCategoryVisibility.Override.Hide;\r\n else\r\n return PerModelCategoryVisibility.Override.None;\r\n }\r\n\r\n public setOverride(modelIds: Id64Arg, categoryIds: Id64Arg, override: PerModelCategoryVisibility.Override): void {\r\n const ovr = this._scratch;\r\n let changed = false;\r\n for (const modelId of Id64.iterable(modelIds)) {\r\n for (const categoryId of Id64.iterable(categoryIds)) {\r\n ovr.reset(modelId, categoryId, false);\r\n const index = this.indexOf(ovr);\r\n if (-1 === index) {\r\n if (PerModelCategoryVisibility.Override.None !== override) {\r\n this.insert(new PerModelCategoryVisibilityOverride(modelId, categoryId, PerModelCategoryVisibility.Override.Show === override));\r\n changed = true;\r\n }\r\n } else {\r\n if (PerModelCategoryVisibility.Override.None === override) {\r\n this._array.splice(index, 1);\r\n changed = true;\r\n } else if (this._array[index].visible !== (PerModelCategoryVisibility.Override.Show === override)) {\r\n this._array[index].visible = (PerModelCategoryVisibility.Override.Show === override);\r\n changed = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (changed) {\r\n this._vp.setViewedCategoriesPerModelChanged();\r\n\r\n if (PerModelCategoryVisibility.Override.None !== override) {\r\n // Ensure subcategories loaded.\r\n this._vp.subcategories.push(this._vp.iModel.subcategories, categoryIds, () => this._vp.setViewedCategoriesPerModelChanged());\r\n }\r\n }\r\n }\r\n\r\n public clearOverrides(modelIds?: Id64Arg): void {\r\n if (undefined === modelIds) {\r\n if (0 < this.length) {\r\n this.clear();\r\n this._vp.setViewedCategoriesPerModelChanged();\r\n }\r\n\r\n return;\r\n }\r\n\r\n for (let i = 0; i < this.length;) {\r\n const ovr = this._array[i];\r\n let removed = false;\r\n for (const modelId of Id64.iterable(modelIds)) {\r\n if (modelId === ovr.modelId) {\r\n this._array.splice(i, 1);\r\n this._vp.setViewedCategoriesPerModelChanged();\r\n removed = true;\r\n break;\r\n }\r\n }\r\n\r\n if (!removed)\r\n ++i;\r\n }\r\n }\r\n\r\n public addOverrides(fs: FeatureSymbology.Overrides, ovrs: Id64.Uint32Map<Id64.Uint32Set>): void {\r\n const cache = this._vp.iModel.subcategories;\r\n\r\n for (const ovr of this._array) {\r\n const subcats = cache.getSubCategories(ovr.categoryId);\r\n if (undefined === subcats)\r\n continue;\r\n\r\n // It's pointless to override for models which aren't displayed...except if we do this, and then someone enables that model,\r\n // we would need to regenerate our symbology overrides in response. Preferably people wouldn't bother overriding models that\r\n // they don't want us to draw...\r\n /* if (!this._vp.view.viewsModel(ovr.modelId))\r\n continue; */\r\n\r\n // ###TODO: Avoid recomputing upper and lower portions of modelId if modelId repeated.\r\n // (Array is sorted first by modelId).\r\n // Also avoid computing if no effective overrides.\r\n const modelLo = Id64.getLowerUint32(ovr.modelId);\r\n const modelHi = Id64.getUpperUint32(ovr.modelId);\r\n\r\n for (const subcat of subcats) {\r\n const subcatLo = Id64.getLowerUint32(subcat);\r\n const subcatHi = Id64.getUpperUint32(subcat);\r\n const vis = fs.isSubCategoryVisible(subcatLo, subcatHi);\r\n if (vis !== ovr.visible) {\r\n // Only care if visibility differs from that defined for entire view\r\n let entry = ovrs.get(modelLo, modelHi);\r\n if (undefined === entry) {\r\n entry = new Id64.Uint32Set();\r\n ovrs.set(modelLo, modelHi, entry);\r\n }\r\n\r\n entry.add(subcatLo, subcatHi);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"PerModelCategoryVisibility.js","sourceRoot":"","sources":["../../src/PerModelCategoryVisibility.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 Views\r\n */\r\n\r\nimport { compareStrings, Id64, Id64Arg, Id64String, SortedArray } from \"@itwin/core-bentley\";\r\nimport { FeatureSymbology } from \"./render/FeatureSymbology\";\r\nimport { Viewport } from \"./Viewport\";\r\n\r\n/** Per-model category visibility permits the visibility of categories within a [[Viewport]] displaying a [[SpatialViewState]] to be overridden in\r\n * the context of individual [[GeometricModelState]]s.\r\n * If a category's visibility is overridden for a given model, then elements belonging to that category within that model will be displayed or hidden regardless of the category's inclusion in the Viewport's [[CategorySelectorState]].\r\n * The override affects geometry on all subcategories belonging to the overridden category. That is, if the category is overridden to be visible, then geometry on all subcategories of the category\r\n * will be visible, regardless of any [SubCategoryOverride]($common)s applied by the view's [[DisplayStyleState]].\r\n * @see [[Viewport.perModelCategoryVisibility]] to define the per-model category visibility for a viewport.\r\n * @public\r\n * @extensions\r\n */\r\nexport namespace PerModelCategoryVisibility {\r\n /** Describes whether and how a category's visibility is overridden. */\r\n export enum Override {\r\n /** The category's visibility is not overridden; its visibility is wholly controlled by the [[Viewport]]'s [[CategorySelectorState]]. */\r\n None,\r\n /** The category is overridden to be visible. */\r\n Show,\r\n /** The category is overridden to be invisible. */\r\n Hide,\r\n }\r\n\r\n /** Describes one visibility override in a [[PerModelCategoryVisibility.Overrides]]. */\r\n export interface OverrideEntry {\r\n /** The Id of the [[GeometricModelState]] in which the override applies. */\r\n readonly modelId: Id64String;\r\n /** The Id of the [SpatialCategory]($backend) whose visibility is overridden. */\r\n readonly categoryId: Id64String;\r\n /** Whether the category is visible in the context of the model. */\r\n readonly visible: boolean;\r\n }\r\n\r\n /** Describes a set of per-model category visibility overrides. Changes to these overrides invoke the [[Viewport.onViewedCategoriesPerModelChanged]] event.\r\n * @see [[Viewport.perModelCategoryVisibility]].\r\n */\r\n export interface Overrides {\r\n /** Returns the override state of the specified category within the specified model. */\r\n getOverride(modelId: Id64String, categoryId: Id64String): Override;\r\n /** Changes the override state of one or more categories for one or more models. */\r\n setOverride(modelIds: Id64Arg, categoryIds: Id64Arg, override: Override): void;\r\n /** Removes all overrides for the specified models, or for all models if `modelIds` is undefined. */\r\n clearOverrides(modelIds?: Id64Arg): void;\r\n /** An iterator over all of the visibility overrides. */\r\n [Symbol.iterator]: () => Iterator<OverrideEntry>;\r\n /** Populate the symbology overrides based on the per-model category visibility. */\r\n addOverrides(fs: FeatureSymbology.Overrides, ovrs: Id64.Uint32Map<Id64.Uint32Set>): void;\r\n }\r\n\r\n export function createOverrides(viewport: Viewport): PerModelCategoryVisibility.Overrides {\r\n return new PerModelCategoryVisibilityOverrides(viewport);\r\n }\r\n}\r\n\r\nclass PerModelCategoryVisibilityOverride {\r\n public modelId: Id64String;\r\n public categoryId: Id64String;\r\n public visible: boolean;\r\n\r\n public constructor(modelId: Id64String, categoryId: Id64String, visible: boolean) {\r\n this.modelId = modelId;\r\n this.categoryId = categoryId;\r\n this.visible = visible;\r\n }\r\n\r\n public reset(modelId: Id64String, categoryId: Id64String, visible: boolean): void {\r\n this.modelId = modelId;\r\n this.categoryId = categoryId;\r\n this.visible = visible;\r\n }\r\n}\r\n\r\nfunction compareCategoryOverrides(lhs: PerModelCategoryVisibilityOverride, rhs: PerModelCategoryVisibilityOverride): number {\r\n const cmp = compareStrings(lhs.modelId, rhs.modelId);\r\n return 0 === cmp ? compareStrings(lhs.categoryId, rhs.categoryId) : cmp;\r\n}\r\n\r\n/** The Viewport-specific implementation of PerModelCategoryVisibility.Overrides. */\r\nclass PerModelCategoryVisibilityOverrides extends SortedArray<PerModelCategoryVisibilityOverride> implements PerModelCategoryVisibility.Overrides {\r\n private readonly _scratch = new PerModelCategoryVisibilityOverride(\"0\", \"0\", false);\r\n private readonly _vp: Viewport;\r\n\r\n public constructor(vp: Viewport) {\r\n super(compareCategoryOverrides);\r\n this._vp = vp;\r\n }\r\n\r\n public getOverride(modelId: Id64String, categoryId: Id64String): PerModelCategoryVisibility.Override {\r\n this._scratch.reset(modelId, categoryId, false);\r\n const ovr = this.findEqual(this._scratch);\r\n if (undefined !== ovr)\r\n return ovr.visible ? PerModelCategoryVisibility.Override.Show : PerModelCategoryVisibility.Override.Hide;\r\n else\r\n return PerModelCategoryVisibility.Override.None;\r\n }\r\n\r\n public setOverride(modelIds: Id64Arg, categoryIds: Id64Arg, override: PerModelCategoryVisibility.Override): void {\r\n const ovr = this._scratch;\r\n let changed = false;\r\n for (const modelId of Id64.iterable(modelIds)) {\r\n for (const categoryId of Id64.iterable(categoryIds)) {\r\n ovr.reset(modelId, categoryId, false);\r\n const index = this.indexOf(ovr);\r\n if (-1 === index) {\r\n if (PerModelCategoryVisibility.Override.None !== override) {\r\n this.insert(new PerModelCategoryVisibilityOverride(modelId, categoryId, PerModelCategoryVisibility.Override.Show === override));\r\n changed = true;\r\n }\r\n } else {\r\n if (PerModelCategoryVisibility.Override.None === override) {\r\n this._array.splice(index, 1);\r\n changed = true;\r\n } else if (this._array[index].visible !== (PerModelCategoryVisibility.Override.Show === override)) {\r\n this._array[index].visible = (PerModelCategoryVisibility.Override.Show === override);\r\n changed = true;\r\n }\r\n }\r\n }\r\n }\r\n\r\n if (changed) {\r\n this._vp.setViewedCategoriesPerModelChanged();\r\n\r\n if (PerModelCategoryVisibility.Override.None !== override) {\r\n // Ensure subcategories loaded.\r\n this._vp.subcategories.push(this._vp.iModel.subcategories, categoryIds, () => this._vp.setViewedCategoriesPerModelChanged());\r\n }\r\n }\r\n }\r\n\r\n public clearOverrides(modelIds?: Id64Arg): void {\r\n if (undefined === modelIds) {\r\n if (0 < this.length) {\r\n this.clear();\r\n this._vp.setViewedCategoriesPerModelChanged();\r\n }\r\n\r\n return;\r\n }\r\n\r\n for (let i = 0; i < this.length;) {\r\n const ovr = this._array[i];\r\n let removed = false;\r\n for (const modelId of Id64.iterable(modelIds)) {\r\n if (modelId === ovr.modelId) {\r\n this._array.splice(i, 1);\r\n this._vp.setViewedCategoriesPerModelChanged();\r\n removed = true;\r\n break;\r\n }\r\n }\r\n\r\n if (!removed)\r\n ++i;\r\n }\r\n }\r\n\r\n public addOverrides(fs: FeatureSymbology.Overrides, ovrs: Id64.Uint32Map<Id64.Uint32Set>): void {\r\n const cache = this._vp.iModel.subcategories;\r\n\r\n for (const ovr of this._array) {\r\n const subcats = cache.getSubCategories(ovr.categoryId);\r\n if (undefined === subcats)\r\n continue;\r\n\r\n // It's pointless to override for models which aren't displayed...except if we do this, and then someone enables that model,\r\n // we would need to regenerate our symbology overrides in response. Preferably people wouldn't bother overriding models that\r\n // they don't want us to draw...\r\n /* if (!this._vp.view.viewsModel(ovr.modelId))\r\n continue; */\r\n\r\n // ###TODO: Avoid recomputing upper and lower portions of modelId if modelId repeated.\r\n // (Array is sorted first by modelId).\r\n // Also avoid computing if no effective overrides.\r\n const modelLo = Id64.getLowerUint32(ovr.modelId);\r\n const modelHi = Id64.getUpperUint32(ovr.modelId);\r\n\r\n for (const subcat of subcats) {\r\n const subcatLo = Id64.getLowerUint32(subcat);\r\n const subcatHi = Id64.getUpperUint32(subcat);\r\n const vis = fs.isSubCategoryVisible(subcatLo, subcatHi);\r\n if (vis !== ovr.visible) {\r\n // Only care if visibility differs from that defined for entire view\r\n let entry = ovrs.get(modelLo, modelHi);\r\n if (undefined === entry) {\r\n entry = new Id64.Uint32Set();\r\n ovrs.set(modelLo, modelHi, entry);\r\n }\r\n\r\n entry.add(subcatLo, subcatHi);\r\n }\r\n }\r\n }\r\n }\r\n}\r\n"]}
@@ -5,6 +5,7 @@ import { BeEvent, Id64, Id64Arg, Id64String } from "@itwin/core-bentley";
5
5
  import { IModelConnection } from "./IModelConnection";
6
6
  /** Identifies the type of changes made to the [[SelectionSet]] to produce a [[SelectionSetEvent]].
7
7
  * @public
8
+ * @extensions
8
9
  */
9
10
  export declare enum SelectionSetEventType {
10
11
  /** Elements have been added to the set. */
@@ -18,6 +19,7 @@ export declare enum SelectionSetEventType {
18
19
  }
19
20
  /** Passed to [[SelectionSet.onChanged]] event listeners when elements are added to the selection set.
20
21
  * @public
22
+ * @extensions
21
23
  */
22
24
  export interface SelectAddEvent {
23
25
  type: SelectionSetEventType.Add;
@@ -28,6 +30,7 @@ export interface SelectAddEvent {
28
30
  }
29
31
  /** Passed to [[SelectionSet.onChanged]] event listeners when elements are removed from the selection set.
30
32
  * @public
33
+ * @extensions
31
34
  */
32
35
  export interface SelectRemoveEvent {
33
36
  /** The type of operation that produced this event. */
@@ -39,6 +42,7 @@ export interface SelectRemoveEvent {
39
42
  }
40
43
  /** Passed to [[SelectionSet.onChanged]] event listeners when elements are simultaneously added to and removed from the selection set.
41
44
  * @public
45
+ * @extensions
42
46
  */
43
47
  export interface SelectReplaceEvent {
44
48
  type: SelectionSetEventType.Replace;
@@ -61,6 +65,7 @@ export interface SelectReplaceEvent {
61
65
  * }
62
66
  * ```
63
67
  * @public
68
+ * @extensions
64
69
  */
65
70
  export declare type SelectionSetEvent = SelectAddEvent | SelectRemoveEvent | SelectReplaceEvent;
66
71
  /** A set of *hilited* elements for an [[IModelConnection]], by element id.
@@ -73,6 +78,7 @@ export declare type SelectionSetEvent = SelectAddEvent | SelectRemoveEvent | Sel
73
78
  * @see [[IModelConnection.hilited]] for the HiliteSet associated with an iModel.
74
79
  * @see [Hilite.Settings]($common) for customization of the hilite effect.
75
80
  * @public
81
+ * @extensions
76
82
  */
77
83
  export declare class HiliteSet {
78
84
  iModel: IModelConnection;
@@ -114,6 +120,7 @@ export declare class HiliteSet {
114
120
  * Selected elements are displayed with a customizable hilite effect within a [[Viewport]].
115
121
  * @see [Hilite.Settings]($common) for customization of the hilite effect.
116
122
  * @public
123
+ * @extensions
117
124
  */
118
125
  export declare class SelectionSet {
119
126
  iModel: IModelConnection;
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionSet.d.ts","sourceRoot":"","sources":["../../src/SelectionSet.ts"],"names":[],"mappings":"AAIA;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;GAEG;AACH,oBAAY,qBAAqB;IAC/B,2CAA2C;IAC3C,GAAG,IAAA;IACH,+CAA+C;IAC/C,MAAM,IAAA;IACN,6EAA6E;IAC7E,OAAO,IAAA;IACP,yDAAyD;IACzD,KAAK,IAAA;CACN;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,qBAAqB,CAAC,GAAG,CAAC;IAChC,gDAAgD;IAChD,KAAK,EAAE,OAAO,CAAC;IACf,iCAAiC;IACjC,GAAG,EAAE,YAAY,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,sDAAsD;IACtD,IAAI,EAAE,qBAAqB,CAAC,MAAM,GAAG,qBAAqB,CAAC,KAAK,CAAC;IACjE,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,GAAG,EAAE,YAAY,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,qBAAqB,CAAC,OAAO,CAAC;IACpC,wCAAwC;IACxC,KAAK,EAAE,OAAO,CAAC;IACf,4CAA4C;IAC5C,OAAO,EAAE,OAAO,CAAC;IACjB,iCAAiC;IACjC,GAAG,EAAE,YAAY,CAAC;CACnB;AAED;;;;;;;;;;;;GAYG;AACH,oBAAY,iBAAiB,GAAG,cAAc,GAAG,iBAAiB,GAAG,kBAAkB,CAAC;AA0FxF;;;;;;;;;;GAUG;AACH,qBAAa,SAAS;IAmBM,MAAM,EAAE,gBAAgB;IAlBlD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAoB;IAE9C;;OAEG;IACH,SAAgB,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC;IAC9C;;OAEG;IACH,SAAgB,MAAM,EAAE,IAAI,CAAC,SAAS,CAAC;IACvC,mCAAmC;IACnC,IAAW,QAAQ,IAAI,IAAI,CAAC,SAAS,CAA2B;IAEhE;;;;OAIG;gBACuB,MAAM,EAAE,gBAAgB,EAAE,oBAAoB,UAAO;IAM/E;;;;OAIG;IACH,IAAW,wBAAwB,IAAI,OAAO,CAAoD;IAClG,IAAW,wBAAwB,CAAC,IAAI,EAAE,OAAO,EAAqD;IAEtG,gDAAgD;IACzC,KAAK;IAMZ,0CAA0C;IAC1C,IAAW,OAAO,IAAI,OAAO,CAAuF;IAEpH;;;OAGG;IACI,SAAS,CAAC,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,GAAG,IAAI;CAUrD;AAED;;;;GAIG;AACH,qBAAa,YAAY;IAWG,MAAM,EAAE,gBAAgB;IAVlD,OAAO,CAAC,SAAS,CAAqB;IAEtC;;OAEG;IACH,IAAW,QAAQ,IAAI,GAAG,CAAC,MAAM,CAAC,CAA2B;IAE7D,2EAA2E;IAC3E,SAAgB,SAAS,eAAoB,iBAAiB,KAAK,IAAI,EAAI;gBAEjD,MAAM,EAAE,gBAAgB;IAElD,OAAO,CAAC,gBAAgB;IAKxB,uDAAuD;IACvD,IAAW,IAAI,WAAiC;IAEhD,qDAAqD;IACrD,IAAW,QAAQ,YAA8B;IAEjD;;OAEG;IACI,GAAG,CAAC,MAAM,CAAC,EAAE,MAAM;IAE1B;;OAEG;IACI,UAAU,CAAC,MAAM,CAAC,EAAE,UAAU,GAAG,OAAO;IAE/C;;OAEG;IACI,QAAQ,IAAI,IAAI;IASvB;;;;OAIG;IACI,GAAG,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;IAIlC,OAAO,CAAC,IAAI;IAYZ;;;;OAIG;IACI,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;IAIrC,OAAO,CAAC,OAAO;IAYf;;;OAGG;IACI,YAAY,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO;IAc7D,2DAA2D;IACpD,MAAM,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO;IAarC,0DAA0D;IACnD,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI;CAiBpC"}
1
+ {"version":3,"file":"SelectionSet.d.ts","sourceRoot":"","sources":["../../src/SelectionSet.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,7 @@ import { BeEvent, Id64 } from "@itwin/core-bentley";
9
9
  import { IModelApp } from "./IModelApp";
10
10
  /** Identifies the type of changes made to the [[SelectionSet]] to produce a [[SelectionSetEvent]].
11
11
  * @public
12
+ * @extensions
12
13
  */
13
14
  export var SelectionSetEventType;
14
15
  (function (SelectionSetEventType) {
@@ -103,6 +104,7 @@ class HilitedElementIds extends HilitedIds {
103
104
  * @see [[IModelConnection.hilited]] for the HiliteSet associated with an iModel.
104
105
  * @see [Hilite.Settings]($common) for customization of the hilite effect.
105
106
  * @public
107
+ * @extensions
106
108
  */
107
109
  export class HiliteSet {
108
110
  /** Construct a HiliteSet
@@ -151,6 +153,7 @@ export class HiliteSet {
151
153
  * Selected elements are displayed with a customizable hilite effect within a [[Viewport]].
152
154
  * @see [Hilite.Settings]($common) for customization of the hilite effect.
153
155
  * @public
156
+ * @extensions
154
157
  */
155
158
  export class SelectionSet {
156
159
  constructor(iModel) {
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionSet.js","sourceRoot":"","sources":["../../src/SelectionSet.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\nimport { BeEvent, Id64, Id64Arg, Id64String } from \"@itwin/core-bentley\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\n\r\n/** Identifies the type of changes made to the [[SelectionSet]] to produce a [[SelectionSetEvent]].\r\n * @public\r\n */\r\nexport enum SelectionSetEventType {\r\n /** Elements have been added to the set. */\r\n Add,\r\n /** Elements have been removed from the set. */\r\n Remove,\r\n /** Some elements have been added to the set and others have been removed. */\r\n Replace,\r\n /** All elements are about to be removed from the set. */\r\n Clear,\r\n}\r\n\r\n/** Passed to [[SelectionSet.onChanged]] event listeners when elements are added to the selection set.\r\n * @public\r\n */\r\nexport interface SelectAddEvent {\r\n type: SelectionSetEventType.Add;\r\n /** The Ids of the elements added to the set. */\r\n added: Id64Arg;\r\n /** The affected SelectionSet. */\r\n set: SelectionSet;\r\n}\r\n\r\n/** Passed to [[SelectionSet.onChanged]] event listeners when elements are removed from the selection set.\r\n * @public\r\n */\r\nexport interface SelectRemoveEvent {\r\n /** The type of operation that produced this event. */\r\n type: SelectionSetEventType.Remove | SelectionSetEventType.Clear;\r\n /** The element Ids removed from the set. */\r\n removed: Id64Arg;\r\n /** The affected SelectionSet. */\r\n set: SelectionSet;\r\n}\r\n\r\n/** Passed to [[SelectionSet.onChanged]] event listeners when elements are simultaneously added to and removed from the selection set.\r\n * @public\r\n */\r\nexport interface SelectReplaceEvent {\r\n type: SelectionSetEventType.Replace;\r\n /** The element Ids added to the set. */\r\n added: Id64Arg;\r\n /** The element Ids removed from the set. */\r\n removed: Id64Arg;\r\n /** The affected SelectionSet. */\r\n set: SelectionSet;\r\n}\r\n\r\n/** Payload sent to [[SelectionSet.onChanged]] event listeners to describe how the contents of the set have changed.\r\n * The `type` property of the event serves as a type assertion. For example, the following code will output the added and/or removed Ids:\r\n * ```ts\r\n * processSelectionSetEvent(ev: SelectionSetEvent): void {\r\n * if (SelectionSetEventType.Add === ev.type || SelectionSetEventType.Replace === ev.type)\r\n * console.log(\"Added \" + ev.added.size + \" elements\");\r\n *\r\n * if (SelectionSetEventType.Add !== ev.type)\r\n * console.log(\"Removed \" + ev.removed.size + \" elements\");\r\n * }\r\n * ```\r\n * @public\r\n */\r\nexport type SelectionSetEvent = SelectAddEvent | SelectRemoveEvent | SelectReplaceEvent;\r\n\r\n/** Tracks a set of hilited entities. When the set changes, notifies ViewManager so that symbology overrides can be updated in active Viewports.\r\n * @internal\r\n */\r\nclass HilitedIds extends Id64.Uint32Set {\r\n protected _iModel: IModelConnection;\r\n protected _changing = false;\r\n\r\n public constructor(iModel: IModelConnection) {\r\n super();\r\n this._iModel = iModel;\r\n }\r\n\r\n public override add(low: number, high: number) {\r\n super.add(low, high);\r\n this.onChanged();\r\n }\r\n\r\n public override delete(low: number, high: number) {\r\n super.delete(low, high);\r\n this.onChanged();\r\n }\r\n\r\n public override clear() {\r\n super.clear();\r\n this.onChanged();\r\n }\r\n\r\n public override addIds(ids: Id64Arg) {\r\n this.change(() => super.addIds(ids));\r\n }\r\n\r\n public override deleteIds(ids: Id64Arg) {\r\n this.change(() => super.deleteIds(ids));\r\n }\r\n\r\n protected onChanged() {\r\n if (!this._changing)\r\n IModelApp.viewManager.onSelectionSetChanged(this._iModel);\r\n }\r\n\r\n protected change(func: () => void) {\r\n const changing = this._changing;\r\n this._changing = false;\r\n func();\r\n this._changing = changing;\r\n this.onChanged();\r\n }\r\n}\r\n\r\n/** Keeps the set of hilited elements in sync with the selection set.\r\n * @internal\r\n */\r\nclass HilitedElementIds extends HilitedIds {\r\n private _removeListener?: () => void;\r\n\r\n public constructor(iModel: IModelConnection, syncWithSelectionSet = true) {\r\n super(iModel);\r\n this.wantSyncWithSelectionSet = syncWithSelectionSet;\r\n }\r\n\r\n public get wantSyncWithSelectionSet(): boolean { return undefined !== this._removeListener; }\r\n public set wantSyncWithSelectionSet(want: boolean) {\r\n if (want === this.wantSyncWithSelectionSet)\r\n return;\r\n\r\n if (want) {\r\n const set = this._iModel.selectionSet;\r\n this._removeListener = set.onChanged.addListener((ev) => this.change(() => this.processSelectionSetEvent(ev)));\r\n this.processSelectionSetEvent({\r\n set,\r\n type: SelectionSetEventType.Add,\r\n added: set.elements,\r\n });\r\n } else {\r\n this._removeListener!();\r\n this._removeListener = undefined;\r\n }\r\n }\r\n\r\n private processSelectionSetEvent(ev: SelectionSetEvent): void {\r\n if (SelectionSetEventType.Add !== ev.type)\r\n this.deleteIds(ev.removed);\r\n\r\n if (ev.type === SelectionSetEventType.Add || ev.type === SelectionSetEventType.Replace)\r\n this.addIds(ev.added);\r\n }\r\n}\r\n\r\n/** A set of *hilited* elements for an [[IModelConnection]], by element id.\r\n * Hilited elements are displayed with a customizable hilite effect within a [[Viewport]].\r\n * The set exposes 3 types of elements in 3 separate collections: geometric elements, subcategories, and geometric models.\r\n * @note Typically, elements are hilited by virtue of their presence in the IModelConnection's [[SelectionSet]]. The HiliteSet allows additional\r\n * elements to be displayed with the hilite effect without adding them to the [[SelectionSet]]. If you add elements to the HiliteSet directly, you\r\n * are also responsible for removing them as appropriate.\r\n * @note Support for subcategories and geometric models in the HiliteSet is currently `beta`.\r\n * @see [[IModelConnection.hilited]] for the HiliteSet associated with an iModel.\r\n * @see [Hilite.Settings]($common) for customization of the hilite effect.\r\n * @public\r\n */\r\nexport class HiliteSet {\r\n private readonly _elements: HilitedElementIds;\r\n\r\n /** The set of hilited subcategories.\r\n * @beta\r\n */\r\n public readonly subcategories: Id64.Uint32Set;\r\n /** The set of hilited [[GeometricModelState]]s.\r\n * @beta\r\n */\r\n public readonly models: Id64.Uint32Set;\r\n /** The set of hilited elements. */\r\n public get elements(): Id64.Uint32Set { return this._elements; }\r\n\r\n /** Construct a HiliteSet\r\n * @param iModel The iModel containing the entities to be hilited.\r\n * @param syncWithSelectionSet If true, the contents of the `elements` set will be synchronized with those in the `iModel`'s [[SelectionSet]].\r\n * @internal\r\n */\r\n public constructor(public iModel: IModelConnection, syncWithSelectionSet = true) {\r\n this._elements = new HilitedElementIds(iModel, syncWithSelectionSet);\r\n this.subcategories = new HilitedIds(iModel);\r\n this.models = new HilitedIds(iModel);\r\n }\r\n\r\n /** Control whether the hilited elements will be synchronized with the contents of the [[SelectionSet]].\r\n * By default they are synchronized. Applications that override this take responsibility for managing the set of hilited entities.\r\n * When turning synchronization off, the contents of the HiliteSet will remain unchanged.\r\n * When turning synchronization on, the current contents of the HiliteSet will be preserved, and the contents of the selection set will be added to them.\r\n */\r\n public get wantSyncWithSelectionSet(): boolean { return this._elements.wantSyncWithSelectionSet; }\r\n public set wantSyncWithSelectionSet(want: boolean) { this._elements.wantSyncWithSelectionSet = want; }\r\n\r\n /** Remove all elements from the hilited set. */\r\n public clear() {\r\n this.elements.clear();\r\n this.subcategories.clear();\r\n this.models.clear();\r\n }\r\n\r\n /** Returns true if nothing is hilited. */\r\n public get isEmpty(): boolean { return this.elements.isEmpty && this.subcategories.isEmpty && this.models.isEmpty; }\r\n\r\n /** Toggle the hilited state of one or more elements.\r\n * @param arg the ID(s) of the elements whose state is to be toggled.\r\n * @param onOff True to add the elements to the hilited set, false to remove them.\r\n */\r\n public setHilite(arg: Id64Arg, onOff: boolean): void {\r\n for (const id of Id64.iterable(arg)) {\r\n if (onOff)\r\n this.elements.addId(id);\r\n else\r\n this.elements.deleteId(id);\r\n }\r\n\r\n IModelApp.viewManager.onSelectionSetChanged(this.iModel);\r\n }\r\n}\r\n\r\n/** A set of *currently selected* elements for an IModelConnection.\r\n * Selected elements are displayed with a customizable hilite effect within a [[Viewport]].\r\n * @see [Hilite.Settings]($common) for customization of the hilite effect.\r\n * @public\r\n */\r\nexport class SelectionSet {\r\n private _elements = new Set<string>();\r\n\r\n /** The IDs of the selected elements.\r\n * @note Do not modify this set directly. Instead, use methods like [[SelectionSet.add]].\r\n */\r\n public get elements(): Set<string> { return this._elements; }\r\n\r\n /** Called whenever elements are added or removed from this SelectionSet */\r\n public readonly onChanged = new BeEvent<(ev: SelectionSetEvent) => void>();\r\n\r\n public constructor(public iModel: IModelConnection) { }\r\n\r\n private sendChangedEvent(ev: SelectionSetEvent) {\r\n IModelApp.viewManager.onSelectionSetChanged(this.iModel);\r\n this.onChanged.raiseEvent(ev);\r\n }\r\n\r\n /** Get the number of entries in this selection set. */\r\n public get size() { return this.elements.size; }\r\n\r\n /** Check whether there are any selected elements. */\r\n public get isActive() { return this.size !== 0; }\r\n\r\n /** Return true if elemId is in this SelectionSet.\r\n * @see [[isSelected]]\r\n */\r\n public has(elemId?: string) { return !!elemId && this.elements.has(elemId); }\r\n\r\n /** Query whether an Id is in the selection set.\r\n * @see [[has]]\r\n */\r\n public isSelected(elemId?: Id64String): boolean { return !!elemId && this.elements.has(elemId); }\r\n\r\n /** Clear current selection set.\r\n * @note raises the [[onChanged]] event with [[SelectionSetEventType.Clear]].\r\n */\r\n public emptyAll(): void {\r\n if (!this.isActive)\r\n return;\r\n\r\n const removed = this._elements;\r\n this._elements = new Set<string>();\r\n this.sendChangedEvent({ set: this, type: SelectionSetEventType.Clear, removed });\r\n }\r\n\r\n /**\r\n * Add one or more Ids to the current selection set.\r\n * @param elem The set of Ids to add.\r\n * @returns true if any elements were added.\r\n */\r\n public add(elem: Id64Arg): boolean {\r\n return this._add(elem);\r\n }\r\n\r\n private _add(elem: Id64Arg, sendEvent = true): boolean {\r\n const oldSize = this.elements.size;\r\n for (const id of Id64.iterable(elem))\r\n this.elements.add(id);\r\n\r\n const changed = oldSize !== this.elements.size;\r\n if (sendEvent && changed)\r\n this.sendChangedEvent({ type: SelectionSetEventType.Add, set: this, added: elem });\r\n\r\n return changed;\r\n }\r\n\r\n /**\r\n * Remove one or more Ids from the current selection set.\r\n * @param elem The set of Ids to remove.\r\n * @returns true if any elements were removed.\r\n */\r\n public remove(elem: Id64Arg): boolean {\r\n return this._remove(elem);\r\n }\r\n\r\n private _remove(elem: Id64Arg, sendEvent = true): boolean {\r\n const oldSize = this.elements.size;\r\n for (const id of Id64.iterable(elem))\r\n this.elements.delete(id);\r\n\r\n const changed = oldSize !== this.elements.size;\r\n if (sendEvent && changed)\r\n this.sendChangedEvent({ type: SelectionSetEventType.Remove, set: this, removed: elem });\r\n\r\n return changed;\r\n }\r\n\r\n /**\r\n * Add one set of Ids, and remove another set of Ids. Any Ids that are in both sets are removed.\r\n * @returns True if any Ids were either added or removed.\r\n */\r\n public addAndRemove(adds: Id64Arg, removes: Id64Arg): boolean {\r\n const added = this._add(adds, false);\r\n const removed = this._remove(removes, false);\r\n\r\n if (added && removed)\r\n this.sendChangedEvent({ type: SelectionSetEventType.Replace, set: this, added: adds, removed: removes });\r\n else if (added)\r\n this.sendChangedEvent({ type: SelectionSetEventType.Add, set: this, added: adds });\r\n else if (removed)\r\n this.sendChangedEvent({ type: SelectionSetEventType.Remove, set: this, removed: removes });\r\n\r\n return (added || removed);\r\n }\r\n\r\n /** Invert the state of a set of Ids in the SelectionSet */\r\n public invert(elem: Id64Arg): boolean {\r\n const elementsToAdd = new Set<string>();\r\n const elementsToRemove = new Set<string>();\r\n for (const id of Id64.iterable(elem)) {\r\n if (this.elements.has(id))\r\n elementsToRemove.add(id);\r\n else\r\n elementsToAdd.add(id);\r\n }\r\n\r\n return this.addAndRemove(elementsToAdd, elementsToRemove);\r\n }\r\n\r\n /** Change selection set to be the supplied set of Ids. */\r\n public replace(elem: Id64Arg): void {\r\n if (areEqual(this.elements, elem))\r\n return;\r\n\r\n const removed = this._elements;\r\n this._elements = new Set<string>();\r\n this._add(elem, false);\r\n\r\n if (0 < removed.size) {\r\n for (const id of Id64.iterable(elem)) {\r\n if (removed.has(id))\r\n removed.delete(id);\r\n }\r\n }\r\n\r\n this.sendChangedEvent({ type: SelectionSetEventType.Replace, set: this, added: elem, removed });\r\n }\r\n}\r\n\r\nfunction areEqual(lhs: Set<string>, rhs: Id64Arg): boolean {\r\n // Size is unreliable if input can contain duplicates...\r\n if (Array.isArray(rhs))\r\n rhs = Id64.toIdSet(rhs);\r\n\r\n if (lhs.size !== Id64.sizeOf(rhs))\r\n return false;\r\n\r\n for (const id of Id64.iterable(rhs))\r\n if (!lhs.has(id))\r\n return false;\r\n\r\n return true;\r\n}\r\n"]}
1
+ {"version":3,"file":"SelectionSet.js","sourceRoot":"","sources":["../../src/SelectionSet.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,IAAI,EAAuB,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC;;;GAGG;AACH,MAAM,CAAN,IAAY,qBASX;AATD,WAAY,qBAAqB;IAC/B,2CAA2C;IAC3C,+DAAG,CAAA;IACH,+CAA+C;IAC/C,qEAAM,CAAA;IACN,6EAA6E;IAC7E,uEAAO,CAAA;IACP,yDAAyD;IACzD,mEAAK,CAAA;AACP,CAAC,EATW,qBAAqB,KAArB,qBAAqB,QAShC;AAyDD;;GAEG;AACH,MAAM,UAAW,SAAQ,IAAI,CAAC,SAAS;IAIrC,YAAmB,MAAwB;QACzC,KAAK,EAAE,CAAC;QAHA,cAAS,GAAG,KAAK,CAAC;QAI1B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;IACxB,CAAC;IAEe,GAAG,CAAC,GAAW,EAAE,IAAY;QAC3C,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACrB,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEe,MAAM,CAAC,GAAW,EAAE,IAAY;QAC9C,KAAK,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QACxB,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEe,KAAK;QACnB,KAAK,CAAC,KAAK,EAAE,CAAC;QACd,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;IAEe,MAAM,CAAC,GAAY;QACjC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;IACvC,CAAC;IAEe,SAAS,CAAC,GAAY;QACpC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC;IAC1C,CAAC;IAES,SAAS;QACjB,IAAI,CAAC,IAAI,CAAC,SAAS;YACjB,SAAS,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9D,CAAC;IAES,MAAM,CAAC,IAAgB;QAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC;QAChC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;QACvB,IAAI,EAAE,CAAC;QACP,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;QAC1B,IAAI,CAAC,SAAS,EAAE,CAAC;IACnB,CAAC;CACF;AAED;;GAEG;AACH,MAAM,iBAAkB,SAAQ,UAAU;IAGxC,YAAmB,MAAwB,EAAE,oBAAoB,GAAG,IAAI;QACtE,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,wBAAwB,GAAG,oBAAoB,CAAC;IACvD,CAAC;IAED,IAAW,wBAAwB,KAAc,OAAO,SAAS,KAAK,IAAI,CAAC,eAAe,CAAC,CAAC,CAAC;IAC7F,IAAW,wBAAwB,CAAC,IAAa;QAC/C,IAAI,IAAI,KAAK,IAAI,CAAC,wBAAwB;YACxC,OAAO;QAET,IAAI,IAAI,EAAE;YACR,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;YACtC,IAAI,CAAC,eAAe,GAAG,GAAG,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,wBAAwB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC/G,IAAI,CAAC,wBAAwB,CAAC;gBAC5B,GAAG;gBACH,IAAI,EAAE,qBAAqB,CAAC,GAAG;gBAC/B,KAAK,EAAE,GAAG,CAAC,QAAQ;aACpB,CAAC,CAAC;SACJ;aAAM;YACL,IAAI,CAAC,eAAgB,EAAE,CAAC;YACxB,IAAI,CAAC,eAAe,GAAG,SAAS,CAAC;SAClC;IACH,CAAC;IAEO,wBAAwB,CAAC,EAAqB;QACpD,IAAI,qBAAqB,CAAC,GAAG,KAAK,EAAE,CAAC,IAAI;YACvC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAE7B,IAAI,EAAE,CAAC,IAAI,KAAK,qBAAqB,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,KAAK,qBAAqB,CAAC,OAAO;YACpF,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;IAC1B,CAAC;CACF;AAED;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,SAAS;IAcpB;;;;OAIG;IACH,YAA0B,MAAwB,EAAE,oBAAoB,GAAG,IAAI;QAArD,WAAM,GAAN,MAAM,CAAkB;QAChD,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAiB,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;QACrE,IAAI,CAAC,aAAa,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;QAC5C,IAAI,CAAC,MAAM,GAAG,IAAI,UAAU,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAZD,mCAAmC;IACnC,IAAW,QAAQ,KAAqB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAahE;;;;OAIG;IACH,IAAW,wBAAwB,KAAc,OAAO,IAAI,CAAC,SAAS,CAAC,wBAAwB,CAAC,CAAC,CAAC;IAClG,IAAW,wBAAwB,CAAC,IAAa,IAAI,IAAI,CAAC,SAAS,CAAC,wBAAwB,GAAG,IAAI,CAAC,CAAC,CAAC;IAEtG,gDAAgD;IACzC,KAAK;QACV,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QAC3B,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IACtB,CAAC;IAED,0CAA0C;IAC1C,IAAW,OAAO,KAAc,OAAO,IAAI,CAAC,QAAQ,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,CAAC,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;IAEpH;;;OAGG;IACI,SAAS,CAAC,GAAY,EAAE,KAAc;QAC3C,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;YACnC,IAAI,KAAK;gBACP,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;;gBAExB,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;SAC9B;QAED,SAAS,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC3D,CAAC;CACF;AAED;;;;;GAKG;AACH,MAAM,OAAO,YAAY;IAWvB,YAA0B,MAAwB;QAAxB,WAAM,GAAN,MAAM,CAAkB;QAV1C,cAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QAOtC,2EAA2E;QAC3D,cAAS,GAAG,IAAI,OAAO,EAAmC,CAAC;IAErB,CAAC;IARvD;;OAEG;IACH,IAAW,QAAQ,KAAkB,OAAO,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC;IAOrD,gBAAgB,CAAC,EAAqB;QAC5C,SAAS,CAAC,WAAW,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACzD,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;IAChC,CAAC;IAED,uDAAuD;IACvD,IAAW,IAAI,KAAK,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAEhD,qDAAqD;IACrD,IAAW,QAAQ,KAAK,OAAO,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC;IAEjD;;OAEG;IACI,GAAG,CAAC,MAAe,IAAI,OAAO,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAE7E;;OAEG;IACI,UAAU,CAAC,MAAmB,IAAa,OAAO,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAEjG;;OAEG;IACI,QAAQ;QACb,IAAI,CAAC,IAAI,CAAC,QAAQ;YAChB,OAAO;QAET,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,qBAAqB,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;IACnF,CAAC;IAED;;;;OAIG;IACI,GAAG,CAAC,IAAa;QACtB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAEO,IAAI,CAAC,IAAa,EAAE,SAAS,GAAG,IAAI;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;QAExB,MAAM,OAAO,GAAG,OAAO,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/C,IAAI,SAAS,IAAI,OAAO;YACtB,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QAErF,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,IAAa;QACzB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC5B,CAAC;IAEO,OAAO,CAAC,IAAa,EAAE,SAAS,GAAG,IAAI;QAC7C,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QACnC,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAE3B,MAAM,OAAO,GAAG,OAAO,KAAK,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAC/C,IAAI,SAAS,IAAI,OAAO;YACtB,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAE1F,OAAO,OAAO,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,YAAY,CAAC,IAAa,EAAE,OAAgB;QACjD,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACrC,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE7C,IAAI,KAAK,IAAI,OAAO;YAClB,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,qBAAqB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;aACtG,IAAI,KAAK;YACZ,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,qBAAqB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;aAChF,IAAI,OAAO;YACd,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,qBAAqB,CAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC,CAAC;QAE7F,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,2DAA2D;IACpD,MAAM,CAAC,IAAa;QACzB,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;QACxC,MAAM,gBAAgB,GAAG,IAAI,GAAG,EAAU,CAAC;QAC3C,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACpC,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;gBACvB,gBAAgB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;;gBAEzB,aAAa,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;SACzB;QAED,OAAO,IAAI,CAAC,YAAY,CAAC,aAAa,EAAE,gBAAgB,CAAC,CAAC;IAC5D,CAAC;IAED,0DAA0D;IACnD,OAAO,CAAC,IAAa;QAC1B,IAAI,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC;YAC/B,OAAO;QAET,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,IAAI,CAAC,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAEvB,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE;YACpB,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;gBACpC,IAAI,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;oBACjB,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;aACtB;SACF;QAED,IAAI,CAAC,gBAAgB,CAAC,EAAE,IAAI,EAAE,qBAAqB,CAAC,OAAO,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC;IAClG,CAAC;CACF;AAED,SAAS,QAAQ,CAAC,GAAgB,EAAE,GAAY;IAC9C,wDAAwD;IACxD,IAAI,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QACpB,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAE1B,IAAI,GAAG,CAAC,IAAI,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QAC/B,OAAO,KAAK,CAAC;IAEf,KAAK,MAAM,EAAE,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;QACjC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,KAAK,CAAC;IAEjB,OAAO,IAAI,CAAC;AACd,CAAC","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\nimport { BeEvent, Id64, Id64Arg, Id64String } from \"@itwin/core-bentley\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\n\r\n/** Identifies the type of changes made to the [[SelectionSet]] to produce a [[SelectionSetEvent]].\r\n * @public\r\n * @extensions\r\n */\r\nexport enum SelectionSetEventType {\r\n /** Elements have been added to the set. */\r\n Add,\r\n /** Elements have been removed from the set. */\r\n Remove,\r\n /** Some elements have been added to the set and others have been removed. */\r\n Replace,\r\n /** All elements are about to be removed from the set. */\r\n Clear,\r\n}\r\n\r\n/** Passed to [[SelectionSet.onChanged]] event listeners when elements are added to the selection set.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface SelectAddEvent {\r\n type: SelectionSetEventType.Add;\r\n /** The Ids of the elements added to the set. */\r\n added: Id64Arg;\r\n /** The affected SelectionSet. */\r\n set: SelectionSet;\r\n}\r\n\r\n/** Passed to [[SelectionSet.onChanged]] event listeners when elements are removed from the selection set.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface SelectRemoveEvent {\r\n /** The type of operation that produced this event. */\r\n type: SelectionSetEventType.Remove | SelectionSetEventType.Clear;\r\n /** The element Ids removed from the set. */\r\n removed: Id64Arg;\r\n /** The affected SelectionSet. */\r\n set: SelectionSet;\r\n}\r\n\r\n/** Passed to [[SelectionSet.onChanged]] event listeners when elements are simultaneously added to and removed from the selection set.\r\n * @public\r\n * @extensions\r\n */\r\nexport interface SelectReplaceEvent {\r\n type: SelectionSetEventType.Replace;\r\n /** The element Ids added to the set. */\r\n added: Id64Arg;\r\n /** The element Ids removed from the set. */\r\n removed: Id64Arg;\r\n /** The affected SelectionSet. */\r\n set: SelectionSet;\r\n}\r\n\r\n/** Payload sent to [[SelectionSet.onChanged]] event listeners to describe how the contents of the set have changed.\r\n * The `type` property of the event serves as a type assertion. For example, the following code will output the added and/or removed Ids:\r\n * ```ts\r\n * processSelectionSetEvent(ev: SelectionSetEvent): void {\r\n * if (SelectionSetEventType.Add === ev.type || SelectionSetEventType.Replace === ev.type)\r\n * console.log(\"Added \" + ev.added.size + \" elements\");\r\n *\r\n * if (SelectionSetEventType.Add !== ev.type)\r\n * console.log(\"Removed \" + ev.removed.size + \" elements\");\r\n * }\r\n * ```\r\n * @public\r\n * @extensions\r\n */\r\nexport type SelectionSetEvent = SelectAddEvent | SelectRemoveEvent | SelectReplaceEvent;\r\n\r\n/** Tracks a set of hilited entities. When the set changes, notifies ViewManager so that symbology overrides can be updated in active Viewports.\r\n * @internal\r\n */\r\nclass HilitedIds extends Id64.Uint32Set {\r\n protected _iModel: IModelConnection;\r\n protected _changing = false;\r\n\r\n public constructor(iModel: IModelConnection) {\r\n super();\r\n this._iModel = iModel;\r\n }\r\n\r\n public override add(low: number, high: number) {\r\n super.add(low, high);\r\n this.onChanged();\r\n }\r\n\r\n public override delete(low: number, high: number) {\r\n super.delete(low, high);\r\n this.onChanged();\r\n }\r\n\r\n public override clear() {\r\n super.clear();\r\n this.onChanged();\r\n }\r\n\r\n public override addIds(ids: Id64Arg) {\r\n this.change(() => super.addIds(ids));\r\n }\r\n\r\n public override deleteIds(ids: Id64Arg) {\r\n this.change(() => super.deleteIds(ids));\r\n }\r\n\r\n protected onChanged() {\r\n if (!this._changing)\r\n IModelApp.viewManager.onSelectionSetChanged(this._iModel);\r\n }\r\n\r\n protected change(func: () => void) {\r\n const changing = this._changing;\r\n this._changing = false;\r\n func();\r\n this._changing = changing;\r\n this.onChanged();\r\n }\r\n}\r\n\r\n/** Keeps the set of hilited elements in sync with the selection set.\r\n * @internal\r\n */\r\nclass HilitedElementIds extends HilitedIds {\r\n private _removeListener?: () => void;\r\n\r\n public constructor(iModel: IModelConnection, syncWithSelectionSet = true) {\r\n super(iModel);\r\n this.wantSyncWithSelectionSet = syncWithSelectionSet;\r\n }\r\n\r\n public get wantSyncWithSelectionSet(): boolean { return undefined !== this._removeListener; }\r\n public set wantSyncWithSelectionSet(want: boolean) {\r\n if (want === this.wantSyncWithSelectionSet)\r\n return;\r\n\r\n if (want) {\r\n const set = this._iModel.selectionSet;\r\n this._removeListener = set.onChanged.addListener((ev) => this.change(() => this.processSelectionSetEvent(ev)));\r\n this.processSelectionSetEvent({\r\n set,\r\n type: SelectionSetEventType.Add,\r\n added: set.elements,\r\n });\r\n } else {\r\n this._removeListener!();\r\n this._removeListener = undefined;\r\n }\r\n }\r\n\r\n private processSelectionSetEvent(ev: SelectionSetEvent): void {\r\n if (SelectionSetEventType.Add !== ev.type)\r\n this.deleteIds(ev.removed);\r\n\r\n if (ev.type === SelectionSetEventType.Add || ev.type === SelectionSetEventType.Replace)\r\n this.addIds(ev.added);\r\n }\r\n}\r\n\r\n/** A set of *hilited* elements for an [[IModelConnection]], by element id.\r\n * Hilited elements are displayed with a customizable hilite effect within a [[Viewport]].\r\n * The set exposes 3 types of elements in 3 separate collections: geometric elements, subcategories, and geometric models.\r\n * @note Typically, elements are hilited by virtue of their presence in the IModelConnection's [[SelectionSet]]. The HiliteSet allows additional\r\n * elements to be displayed with the hilite effect without adding them to the [[SelectionSet]]. If you add elements to the HiliteSet directly, you\r\n * are also responsible for removing them as appropriate.\r\n * @note Support for subcategories and geometric models in the HiliteSet is currently `beta`.\r\n * @see [[IModelConnection.hilited]] for the HiliteSet associated with an iModel.\r\n * @see [Hilite.Settings]($common) for customization of the hilite effect.\r\n * @public\r\n * @extensions\r\n */\r\nexport class HiliteSet {\r\n private readonly _elements: HilitedElementIds;\r\n\r\n /** The set of hilited subcategories.\r\n * @beta\r\n */\r\n public readonly subcategories: Id64.Uint32Set;\r\n /** The set of hilited [[GeometricModelState]]s.\r\n * @beta\r\n */\r\n public readonly models: Id64.Uint32Set;\r\n /** The set of hilited elements. */\r\n public get elements(): Id64.Uint32Set { return this._elements; }\r\n\r\n /** Construct a HiliteSet\r\n * @param iModel The iModel containing the entities to be hilited.\r\n * @param syncWithSelectionSet If true, the contents of the `elements` set will be synchronized with those in the `iModel`'s [[SelectionSet]].\r\n * @internal\r\n */\r\n public constructor(public iModel: IModelConnection, syncWithSelectionSet = true) {\r\n this._elements = new HilitedElementIds(iModel, syncWithSelectionSet);\r\n this.subcategories = new HilitedIds(iModel);\r\n this.models = new HilitedIds(iModel);\r\n }\r\n\r\n /** Control whether the hilited elements will be synchronized with the contents of the [[SelectionSet]].\r\n * By default they are synchronized. Applications that override this take responsibility for managing the set of hilited entities.\r\n * When turning synchronization off, the contents of the HiliteSet will remain unchanged.\r\n * When turning synchronization on, the current contents of the HiliteSet will be preserved, and the contents of the selection set will be added to them.\r\n */\r\n public get wantSyncWithSelectionSet(): boolean { return this._elements.wantSyncWithSelectionSet; }\r\n public set wantSyncWithSelectionSet(want: boolean) { this._elements.wantSyncWithSelectionSet = want; }\r\n\r\n /** Remove all elements from the hilited set. */\r\n public clear() {\r\n this.elements.clear();\r\n this.subcategories.clear();\r\n this.models.clear();\r\n }\r\n\r\n /** Returns true if nothing is hilited. */\r\n public get isEmpty(): boolean { return this.elements.isEmpty && this.subcategories.isEmpty && this.models.isEmpty; }\r\n\r\n /** Toggle the hilited state of one or more elements.\r\n * @param arg the ID(s) of the elements whose state is to be toggled.\r\n * @param onOff True to add the elements to the hilited set, false to remove them.\r\n */\r\n public setHilite(arg: Id64Arg, onOff: boolean): void {\r\n for (const id of Id64.iterable(arg)) {\r\n if (onOff)\r\n this.elements.addId(id);\r\n else\r\n this.elements.deleteId(id);\r\n }\r\n\r\n IModelApp.viewManager.onSelectionSetChanged(this.iModel);\r\n }\r\n}\r\n\r\n/** A set of *currently selected* elements for an IModelConnection.\r\n * Selected elements are displayed with a customizable hilite effect within a [[Viewport]].\r\n * @see [Hilite.Settings]($common) for customization of the hilite effect.\r\n * @public\r\n * @extensions\r\n */\r\nexport class SelectionSet {\r\n private _elements = new Set<string>();\r\n\r\n /** The IDs of the selected elements.\r\n * @note Do not modify this set directly. Instead, use methods like [[SelectionSet.add]].\r\n */\r\n public get elements(): Set<string> { return this._elements; }\r\n\r\n /** Called whenever elements are added or removed from this SelectionSet */\r\n public readonly onChanged = new BeEvent<(ev: SelectionSetEvent) => void>();\r\n\r\n public constructor(public iModel: IModelConnection) { }\r\n\r\n private sendChangedEvent(ev: SelectionSetEvent) {\r\n IModelApp.viewManager.onSelectionSetChanged(this.iModel);\r\n this.onChanged.raiseEvent(ev);\r\n }\r\n\r\n /** Get the number of entries in this selection set. */\r\n public get size() { return this.elements.size; }\r\n\r\n /** Check whether there are any selected elements. */\r\n public get isActive() { return this.size !== 0; }\r\n\r\n /** Return true if elemId is in this SelectionSet.\r\n * @see [[isSelected]]\r\n */\r\n public has(elemId?: string) { return !!elemId && this.elements.has(elemId); }\r\n\r\n /** Query whether an Id is in the selection set.\r\n * @see [[has]]\r\n */\r\n public isSelected(elemId?: Id64String): boolean { return !!elemId && this.elements.has(elemId); }\r\n\r\n /** Clear current selection set.\r\n * @note raises the [[onChanged]] event with [[SelectionSetEventType.Clear]].\r\n */\r\n public emptyAll(): void {\r\n if (!this.isActive)\r\n return;\r\n\r\n const removed = this._elements;\r\n this._elements = new Set<string>();\r\n this.sendChangedEvent({ set: this, type: SelectionSetEventType.Clear, removed });\r\n }\r\n\r\n /**\r\n * Add one or more Ids to the current selection set.\r\n * @param elem The set of Ids to add.\r\n * @returns true if any elements were added.\r\n */\r\n public add(elem: Id64Arg): boolean {\r\n return this._add(elem);\r\n }\r\n\r\n private _add(elem: Id64Arg, sendEvent = true): boolean {\r\n const oldSize = this.elements.size;\r\n for (const id of Id64.iterable(elem))\r\n this.elements.add(id);\r\n\r\n const changed = oldSize !== this.elements.size;\r\n if (sendEvent && changed)\r\n this.sendChangedEvent({ type: SelectionSetEventType.Add, set: this, added: elem });\r\n\r\n return changed;\r\n }\r\n\r\n /**\r\n * Remove one or more Ids from the current selection set.\r\n * @param elem The set of Ids to remove.\r\n * @returns true if any elements were removed.\r\n */\r\n public remove(elem: Id64Arg): boolean {\r\n return this._remove(elem);\r\n }\r\n\r\n private _remove(elem: Id64Arg, sendEvent = true): boolean {\r\n const oldSize = this.elements.size;\r\n for (const id of Id64.iterable(elem))\r\n this.elements.delete(id);\r\n\r\n const changed = oldSize !== this.elements.size;\r\n if (sendEvent && changed)\r\n this.sendChangedEvent({ type: SelectionSetEventType.Remove, set: this, removed: elem });\r\n\r\n return changed;\r\n }\r\n\r\n /**\r\n * Add one set of Ids, and remove another set of Ids. Any Ids that are in both sets are removed.\r\n * @returns True if any Ids were either added or removed.\r\n */\r\n public addAndRemove(adds: Id64Arg, removes: Id64Arg): boolean {\r\n const added = this._add(adds, false);\r\n const removed = this._remove(removes, false);\r\n\r\n if (added && removed)\r\n this.sendChangedEvent({ type: SelectionSetEventType.Replace, set: this, added: adds, removed: removes });\r\n else if (added)\r\n this.sendChangedEvent({ type: SelectionSetEventType.Add, set: this, added: adds });\r\n else if (removed)\r\n this.sendChangedEvent({ type: SelectionSetEventType.Remove, set: this, removed: removes });\r\n\r\n return (added || removed);\r\n }\r\n\r\n /** Invert the state of a set of Ids in the SelectionSet */\r\n public invert(elem: Id64Arg): boolean {\r\n const elementsToAdd = new Set<string>();\r\n const elementsToRemove = new Set<string>();\r\n for (const id of Id64.iterable(elem)) {\r\n if (this.elements.has(id))\r\n elementsToRemove.add(id);\r\n else\r\n elementsToAdd.add(id);\r\n }\r\n\r\n return this.addAndRemove(elementsToAdd, elementsToRemove);\r\n }\r\n\r\n /** Change selection set to be the supplied set of Ids. */\r\n public replace(elem: Id64Arg): void {\r\n if (areEqual(this.elements, elem))\r\n return;\r\n\r\n const removed = this._elements;\r\n this._elements = new Set<string>();\r\n this._add(elem, false);\r\n\r\n if (0 < removed.size) {\r\n for (const id of Id64.iterable(elem)) {\r\n if (removed.has(id))\r\n removed.delete(id);\r\n }\r\n }\r\n\r\n this.sendChangedEvent({ type: SelectionSetEventType.Replace, set: this, added: elem, removed });\r\n }\r\n}\r\n\r\nfunction areEqual(lhs: Set<string>, rhs: Id64Arg): boolean {\r\n // Size is unreliable if input can contain duplicates...\r\n if (Array.isArray(rhs))\r\n rhs = Id64.toIdSet(rhs);\r\n\r\n if (lhs.size !== Id64.sizeOf(rhs))\r\n return false;\r\n\r\n for (const id of Id64.iterable(rhs))\r\n if (!lhs.has(id))\r\n return false;\r\n\r\n return true;\r\n}\r\n"]}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import { Id64Array, Id64String } from "@itwin/core-bentley";
5
5
  import { Point2d, Point3d, Range3d } from "@itwin/core-geometry";
6
- import { AxisAlignedBox3d, SheetProps, ViewAttachmentProps, ViewDefinition2dProps, ViewStateProps } from "@itwin/core-common";
6
+ import { AxisAlignedBox3d, HydrateViewStateRequestProps, HydrateViewStateResponseProps, SheetProps, ViewAttachmentProps, ViewDefinition2dProps, ViewStateProps } from "@itwin/core-common";
7
7
  import { CategorySelectorState } from "./CategorySelectorState";
8
8
  import { DisplayStyle2dState } from "./DisplayStyleState";
9
9
  import { IModelConnection } from "./IModelConnection";
@@ -15,6 +15,7 @@ import { DrawingViewState } from "./DrawingViewState";
15
15
  import { DisclosedTileTreeSet } from "./tile/internal";
16
16
  /** A view of a [SheetModel]($backend).
17
17
  * @public
18
+ * @extensions
18
19
  */
19
20
  export declare class SheetViewState extends ViewState2d {
20
21
  /** The width and height of the sheet in world coordinates. */
@@ -51,10 +52,10 @@ export declare class SheetViewState extends ViewState2d {
51
52
  };
52
53
  /** @internal */
53
54
  getViewedExtents(): AxisAlignedBox3d;
54
- /** Load the size and attachment for this sheet, as well as any other 2d view state characteristics.
55
- * @internal override
56
- */
57
- load(): Promise<void>;
55
+ /** @internal */
56
+ protected preload(hydrateRequest: HydrateViewStateRequestProps): void;
57
+ /** @internal */
58
+ protected postload(hydrateResponse: HydrateViewStateResponseProps): Promise<void>;
58
59
  /** @internal */
59
60
  createScene(context: SceneContext): void;
60
61
  /** @internal */
@@ -1 +1 @@
1
- {"version":3,"file":"SheetViewState.d.ts","sourceRoot":"","sources":["../../src/SheetViewState.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SheetViewState.d.ts","sourceRoot":"","sources":["../../src/SheetViewState.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@
5
5
  /** @packageDocumentation
6
6
  * @module Views
7
7
  */
8
- import { assert, dispose } from "@itwin/core-bentley";
8
+ import { assert, CompressedId64Set, dispose } from "@itwin/core-bentley";
9
9
  import { Angle, ClipShape, ClipVector, Constant, Matrix3d, Point2d, Point3d, PolyfaceBuilder, Range2d, Range3d, StrokeOptions, Transform } from "@itwin/core-geometry";
10
10
  import { ColorDef, Feature, FeatureTable, Frustum, Gradient, GraphicParams, PackedFeatureTable, Placement2d, TextureTransparency, } from "@itwin/core-common";
11
11
  import { CategorySelectorState } from "./CategorySelectorState";
@@ -124,6 +124,52 @@ class ViewAttachmentsInfo {
124
124
  // No reason to clone the array.
125
125
  return new ViewAttachmentsInfo(this._attachments);
126
126
  }
127
+ preload(options) {
128
+ if (this.isLoaded)
129
+ return;
130
+ options.sheetViewAttachmentIds = CompressedId64Set.sortAndCompress(this._ids);
131
+ options.viewStateLoadProps = {
132
+ displayStyle: {
133
+ omitScheduleScriptElementIds: true,
134
+ compressExcludedElementIds: true,
135
+ },
136
+ };
137
+ }
138
+ async postload(options, iModel) {
139
+ if (options.sheetViewViews === undefined)
140
+ return;
141
+ if (options.sheetViewAttachmentProps === undefined)
142
+ return;
143
+ const viewStateProps = options.sheetViewViews; // This is viewstateProps, need to turn this into ViewState
144
+ const promises = [];
145
+ for (const viewProps of viewStateProps) {
146
+ const loadView = async () => {
147
+ try {
148
+ if (viewProps === undefined)
149
+ return undefined;
150
+ const view = await iModel.views.convertViewStatePropsToViewState(viewProps);
151
+ return view;
152
+ }
153
+ catch {
154
+ return undefined;
155
+ }
156
+ };
157
+ promises.push(loadView());
158
+ }
159
+ const views = await Promise.all(promises);
160
+ const attachmentProps = options.sheetViewAttachmentProps;
161
+ assert(views.length === attachmentProps.length);
162
+ const attachments = [];
163
+ for (let i = 0; i < views.length; i++) {
164
+ const view = views[i];
165
+ if (view && !(view instanceof SheetViewState)) {
166
+ const props = attachmentProps[i];
167
+ props.attachedView = view;
168
+ attachments.push(props);
169
+ }
170
+ }
171
+ this._attachments = attachments;
172
+ }
127
173
  async load(iModel) {
128
174
  if (this.isLoaded)
129
175
  return;
@@ -207,6 +253,7 @@ class ViewAttachments {
207
253
  }
208
254
  /** A view of a [SheetModel]($backend).
209
255
  * @public
256
+ * @extensions
210
257
  */
211
258
  export class SheetViewState extends ViewState2d {
212
259
  constructor(props, iModel, categories, displayStyle, sheetProps, attachments) {
@@ -299,12 +346,17 @@ export class SheetViewState extends ViewState2d {
299
346
  getViewedExtents() {
300
347
  return this._viewedExtents;
301
348
  }
302
- /** Load the size and attachment for this sheet, as well as any other 2d view state characteristics.
303
- * @internal override
304
- */
305
- async load() {
306
- await super.load();
307
- await this._attachmentsInfo.load(this.iModel);
349
+ /** @internal */
350
+ preload(hydrateRequest) {
351
+ super.preload(hydrateRequest);
352
+ this._attachmentsInfo.preload(hydrateRequest);
353
+ }
354
+ /** @internal */
355
+ async postload(hydrateResponse) {
356
+ const promises = [];
357
+ promises.push(super.postload(hydrateResponse));
358
+ promises.push(this._attachmentsInfo.postload(hydrateResponse, this.iModel));
359
+ await Promise.all(promises);
308
360
  }
309
361
  /** @internal */
310
362
  createScene(context) {