@itwin/core-frontend 4.0.0-dev.24 → 4.0.0-dev.30

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 (470) hide show
  1. package/CHANGELOG.md +43 -36
  2. package/lib/cjs/AccuDraw.js +1 -1
  3. package/lib/cjs/AccuDraw.js.map +1 -1
  4. package/lib/cjs/AccuSnap.js +3 -3
  5. package/lib/cjs/AccuSnap.js.map +1 -1
  6. package/lib/cjs/BriefcaseConnection.js +9 -11
  7. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  8. package/lib/cjs/DisplayStyleState.js +8 -12
  9. package/lib/cjs/DisplayStyleState.js.map +1 -1
  10. package/lib/cjs/DrawingViewState.js +4 -6
  11. package/lib/cjs/DrawingViewState.js.map +1 -1
  12. package/lib/cjs/EnvironmentDecorations.js +2 -3
  13. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  14. package/lib/cjs/FlashSettings.js +3 -4
  15. package/lib/cjs/FlashSettings.js.map +1 -1
  16. package/lib/cjs/GeoServices.js +7 -9
  17. package/lib/cjs/GeoServices.js.map +1 -1
  18. package/lib/cjs/IModelApp.js +19 -21
  19. package/lib/cjs/IModelApp.js.map +1 -1
  20. package/lib/cjs/IModelConnection.js +1 -1
  21. package/lib/cjs/IModelConnection.js.map +1 -1
  22. package/lib/cjs/IpcApp.js +1 -1
  23. package/lib/cjs/IpcApp.js.map +1 -1
  24. package/lib/cjs/LocalhostIpcApp.js +3 -4
  25. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  26. package/lib/cjs/ModelState.js +2 -3
  27. package/lib/cjs/ModelState.js.map +1 -1
  28. package/lib/cjs/NativeApp.js +4 -7
  29. package/lib/cjs/NativeApp.js.map +1 -1
  30. package/lib/cjs/NoRenderApp.js +1 -2
  31. package/lib/cjs/NoRenderApp.js.map +1 -1
  32. package/lib/cjs/PlanarClipMaskState.js +1 -1
  33. package/lib/cjs/PlanarClipMaskState.js.map +1 -1
  34. package/lib/cjs/RealityDataSourceContextShareImpl.js +2 -4
  35. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
  36. package/lib/cjs/SheetViewState.js +15 -23
  37. package/lib/cjs/SheetViewState.js.map +1 -1
  38. package/lib/cjs/Tiles.js +2 -2
  39. package/lib/cjs/Tiles.js.map +1 -1
  40. package/lib/cjs/ViewContext.js +1 -1
  41. package/lib/cjs/ViewContext.js.map +1 -1
  42. package/lib/cjs/ViewCreator2d.js +4 -5
  43. package/lib/cjs/ViewCreator2d.js.map +1 -1
  44. package/lib/cjs/ViewCreator3d.js +5 -5
  45. package/lib/cjs/ViewCreator3d.js.map +1 -1
  46. package/lib/cjs/ViewState.js +17 -24
  47. package/lib/cjs/ViewState.js.map +1 -1
  48. package/lib/cjs/Viewport.js +22 -32
  49. package/lib/cjs/Viewport.js.map +1 -1
  50. package/lib/cjs/extension/ExtensionImpl.js +1 -1
  51. package/lib/cjs/extension/ExtensionImpl.js.map +1 -1
  52. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js +2 -3
  53. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  54. package/lib/cjs/quantity-formatting/QuantityFormatter.js +7 -9
  55. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  56. package/lib/cjs/render/FeatureSymbology.js +1 -2
  57. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  58. package/lib/cjs/render/GraphicBuilder.js +7 -9
  59. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  60. package/lib/cjs/render/MockRender.js +1 -2
  61. package/lib/cjs/render/MockRender.js.map +1 -1
  62. package/lib/cjs/render/ParticleCollectionBuilder.js +2 -3
  63. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  64. package/lib/cjs/render/RealityMeshParams.js +7 -10
  65. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  66. package/lib/cjs/render/RenderPlan.js +1 -1
  67. package/lib/cjs/render/RenderPlan.js.map +1 -1
  68. package/lib/cjs/render/RenderSystem.js +1 -2
  69. package/lib/cjs/render/RenderSystem.js.map +1 -1
  70. package/lib/cjs/render/VisibleFeature.js +2 -4
  71. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  72. package/lib/cjs/render/primitives/AuxChannelTable.js +6 -9
  73. package/lib/cjs/render/primitives/AuxChannelTable.js.map +1 -1
  74. package/lib/cjs/render/primitives/EdgeParams.js +6 -7
  75. package/lib/cjs/render/primitives/EdgeParams.js.map +1 -1
  76. package/lib/cjs/render/primitives/PolylineParams.js +2 -3
  77. package/lib/cjs/render/primitives/PolylineParams.js.map +1 -1
  78. package/lib/cjs/render/primitives/VertexKey.js +1 -1
  79. package/lib/cjs/render/primitives/VertexKey.js.map +1 -1
  80. package/lib/cjs/render/primitives/VertexTable.js +1 -1
  81. package/lib/cjs/render/primitives/VertexTable.js.map +1 -1
  82. package/lib/cjs/render/primitives/VertexTableSplitter.js +6 -8
  83. package/lib/cjs/render/primitives/VertexTableSplitter.js.map +1 -1
  84. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js +9 -11
  85. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  86. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js +3 -5
  87. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  88. package/lib/cjs/render/primitives/mesh/MeshBuilder.js +1 -1
  89. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
  90. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js +2 -3
  91. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  92. package/lib/cjs/render/webgl/BranchState.js +9 -10
  93. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  94. package/lib/cjs/render/webgl/EDL.js +17 -21
  95. package/lib/cjs/render/webgl/EDL.js.map +1 -1
  96. package/lib/cjs/render/webgl/FeatureOverrides.js +2 -2
  97. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  98. package/lib/cjs/render/webgl/Graphic.js +3 -5
  99. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  100. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js +1 -1
  101. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  102. package/lib/cjs/render/webgl/InstancedGeometry.js +2 -3
  103. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  104. package/lib/cjs/render/webgl/Mesh.js +7 -10
  105. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  106. package/lib/cjs/render/webgl/MeshData.js +1 -2
  107. package/lib/cjs/render/webgl/MeshData.js.map +1 -1
  108. package/lib/cjs/render/webgl/PlanarClassifier.js +10 -15
  109. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  110. package/lib/cjs/render/webgl/RealityMesh.js +5 -8
  111. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  112. package/lib/cjs/render/webgl/RealityModelUniforms.js +3 -4
  113. package/lib/cjs/render/webgl/RealityModelUniforms.js.map +1 -1
  114. package/lib/cjs/render/webgl/RenderCommands.js +7 -8
  115. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  116. package/lib/cjs/render/webgl/SceneCompositor.js +7 -9
  117. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  118. package/lib/cjs/render/webgl/ShaderBuilder.js +1 -2
  119. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  120. package/lib/cjs/render/webgl/SolarShadowMap.js +1 -2
  121. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  122. package/lib/cjs/render/webgl/SurfaceGeometry.js +1 -1
  123. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  124. package/lib/cjs/render/webgl/System.js +12 -16
  125. package/lib/cjs/render/webgl/System.js.map +1 -1
  126. package/lib/cjs/render/webgl/Target.js +9 -14
  127. package/lib/cjs/render/webgl/Target.js.map +1 -1
  128. package/lib/cjs/render/webgl/TargetGraphics.js +1 -2
  129. package/lib/cjs/render/webgl/TargetGraphics.js.map +1 -1
  130. package/lib/cjs/render/webgl/Texture.js +1 -2
  131. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  132. package/lib/cjs/render/webgl/ThematicSensors.js +2 -4
  133. package/lib/cjs/render/webgl/ThematicSensors.js.map +1 -1
  134. package/lib/cjs/render/webgl/VisibleTileFeatures.js +1 -2
  135. package/lib/cjs/render/webgl/VisibleTileFeatures.js.map +1 -1
  136. package/lib/cjs/render/webgl/glsl/Animation.js +6 -9
  137. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  138. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +1 -2
  139. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  140. package/lib/cjs/render/webgl/glsl/Instancing.js +4 -5
  141. package/lib/cjs/render/webgl/glsl/Instancing.js.map +1 -1
  142. package/lib/cjs/render/webgl/glsl/RealityMesh.js +2 -4
  143. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  144. package/lib/cjs/render/webgl/glsl/Surface.js +1 -2
  145. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  146. package/lib/cjs/render/webgl/glsl/Thematic.js +1 -2
  147. package/lib/cjs/render/webgl/glsl/Thematic.js.map +1 -1
  148. package/lib/cjs/tile/ClassifierTileTree.js +3 -3
  149. package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
  150. package/lib/cjs/tile/GltfReader.js +61 -75
  151. package/lib/cjs/tile/GltfReader.js.map +1 -1
  152. package/lib/cjs/tile/IModelTile.js +2 -3
  153. package/lib/cjs/tile/IModelTile.js.map +1 -1
  154. package/lib/cjs/tile/IModelTileRequestChannels.js +6 -11
  155. package/lib/cjs/tile/IModelTileRequestChannels.js.map +1 -1
  156. package/lib/cjs/tile/IModelTileTree.js +5 -9
  157. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  158. package/lib/cjs/tile/ImdlReader.js +13 -17
  159. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  160. package/lib/cjs/tile/OrbitGtTileTree.js +2 -2
  161. package/lib/cjs/tile/OrbitGtTileTree.js.map +1 -1
  162. package/lib/cjs/tile/PntsReader.js +4 -5
  163. package/lib/cjs/tile/PntsReader.js.map +1 -1
  164. package/lib/cjs/tile/PrimaryTileTree.js +22 -32
  165. package/lib/cjs/tile/PrimaryTileTree.js.map +1 -1
  166. package/lib/cjs/tile/RealityModelTileTree.js +12 -19
  167. package/lib/cjs/tile/RealityModelTileTree.js.map +1 -1
  168. package/lib/cjs/tile/RealityTile.js +3 -5
  169. package/lib/cjs/tile/RealityTile.js.map +1 -1
  170. package/lib/cjs/tile/RealityTileLoader.js +2 -2
  171. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  172. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js +3 -5
  173. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  174. package/lib/cjs/tile/Tile.js +1 -1
  175. package/lib/cjs/tile/Tile.js.map +1 -1
  176. package/lib/cjs/tile/TileAdmin.js +22 -27
  177. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  178. package/lib/cjs/tile/TileDrawArgs.js +3 -6
  179. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  180. package/lib/cjs/tile/TileRequestChannels.js +1 -1
  181. package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
  182. package/lib/cjs/tile/TileTree.js +2 -3
  183. package/lib/cjs/tile/TileTree.js.map +1 -1
  184. package/lib/cjs/tile/TiledGraphicsProvider.js +1 -1
  185. package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
  186. package/lib/cjs/tile/map/ArcGISTileMap.js +5 -6
  187. package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -1
  188. package/lib/cjs/tile/map/ArcGisUtilities.js +6 -8
  189. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  190. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js +4 -7
  191. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  192. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +6 -8
  193. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  194. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js +1 -2
  195. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  196. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +14 -19
  197. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  198. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +14 -20
  199. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  200. package/lib/cjs/tile/map/MapCartoRectangle.js +1 -1
  201. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  202. package/lib/cjs/tile/map/MapLayerFormatRegistry.js +5 -6
  203. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  204. package/lib/cjs/tile/map/MapLayerImageryFormats.js +11 -14
  205. package/lib/cjs/tile/map/MapLayerImageryFormats.js.map +1 -1
  206. package/lib/cjs/tile/map/MapLayerImageryProvider.js +2 -3
  207. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  208. package/lib/cjs/tile/map/MapLayerSources.js +1 -1
  209. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  210. package/lib/cjs/tile/map/MapTile.js +6 -8
  211. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  212. package/lib/cjs/tile/map/MapTileLoader.js +1 -1
  213. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  214. package/lib/cjs/tile/map/MapTileTree.js +13 -18
  215. package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
  216. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js +6 -7
  217. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  218. package/lib/cjs/tile/map/WmsCapabilities.js +4 -5
  219. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  220. package/lib/cjs/tile/map/WmtsCapabilities.js +17 -25
  221. package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
  222. package/lib/cjs/tools/ClipViewTool.js +1 -1
  223. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  224. package/lib/cjs/tools/MeasureTool.js +2 -4
  225. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  226. package/lib/cjs/tools/PrimitiveTool.js +2 -3
  227. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  228. package/lib/cjs/tools/SelectTool.js +1 -2
  229. package/lib/cjs/tools/SelectTool.js.map +1 -1
  230. package/lib/cjs/tools/Tool.js +2 -3
  231. package/lib/cjs/tools/Tool.js.map +1 -1
  232. package/lib/cjs/tools/ToolAdmin.js +2 -4
  233. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  234. package/lib/cjs/tools/ViewTool.js +3 -3
  235. package/lib/cjs/tools/ViewTool.js.map +1 -1
  236. package/lib/esm/AccuDraw.js +1 -1
  237. package/lib/esm/AccuDraw.js.map +1 -1
  238. package/lib/esm/AccuSnap.js +3 -3
  239. package/lib/esm/AccuSnap.js.map +1 -1
  240. package/lib/esm/BriefcaseConnection.js +9 -11
  241. package/lib/esm/BriefcaseConnection.js.map +1 -1
  242. package/lib/esm/DisplayStyleState.js +8 -12
  243. package/lib/esm/DisplayStyleState.js.map +1 -1
  244. package/lib/esm/DrawingViewState.js +4 -6
  245. package/lib/esm/DrawingViewState.js.map +1 -1
  246. package/lib/esm/EnvironmentDecorations.js +2 -3
  247. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  248. package/lib/esm/FlashSettings.js +3 -4
  249. package/lib/esm/FlashSettings.js.map +1 -1
  250. package/lib/esm/GeoServices.js +7 -9
  251. package/lib/esm/GeoServices.js.map +1 -1
  252. package/lib/esm/IModelApp.js +19 -21
  253. package/lib/esm/IModelApp.js.map +1 -1
  254. package/lib/esm/IModelConnection.js +1 -1
  255. package/lib/esm/IModelConnection.js.map +1 -1
  256. package/lib/esm/IpcApp.js +1 -1
  257. package/lib/esm/IpcApp.js.map +1 -1
  258. package/lib/esm/LocalhostIpcApp.js +3 -4
  259. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  260. package/lib/esm/ModelState.js +2 -3
  261. package/lib/esm/ModelState.js.map +1 -1
  262. package/lib/esm/NativeApp.js +4 -7
  263. package/lib/esm/NativeApp.js.map +1 -1
  264. package/lib/esm/NoRenderApp.js +1 -2
  265. package/lib/esm/NoRenderApp.js.map +1 -1
  266. package/lib/esm/PlanarClipMaskState.js +1 -1
  267. package/lib/esm/PlanarClipMaskState.js.map +1 -1
  268. package/lib/esm/RealityDataSourceContextShareImpl.js +2 -4
  269. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
  270. package/lib/esm/SheetViewState.js +15 -23
  271. package/lib/esm/SheetViewState.js.map +1 -1
  272. package/lib/esm/Tiles.js +2 -2
  273. package/lib/esm/Tiles.js.map +1 -1
  274. package/lib/esm/ViewContext.js +1 -1
  275. package/lib/esm/ViewContext.js.map +1 -1
  276. package/lib/esm/ViewCreator2d.js +4 -5
  277. package/lib/esm/ViewCreator2d.js.map +1 -1
  278. package/lib/esm/ViewCreator3d.js +5 -5
  279. package/lib/esm/ViewCreator3d.js.map +1 -1
  280. package/lib/esm/ViewState.js +17 -24
  281. package/lib/esm/ViewState.js.map +1 -1
  282. package/lib/esm/Viewport.js +22 -32
  283. package/lib/esm/Viewport.js.map +1 -1
  284. package/lib/esm/extension/ExtensionImpl.js +1 -1
  285. package/lib/esm/extension/ExtensionImpl.js.map +1 -1
  286. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js +2 -3
  287. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  288. package/lib/esm/quantity-formatting/QuantityFormatter.js +7 -9
  289. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  290. package/lib/esm/render/FeatureSymbology.js +1 -2
  291. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  292. package/lib/esm/render/GraphicBuilder.js +7 -9
  293. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  294. package/lib/esm/render/MockRender.js +1 -2
  295. package/lib/esm/render/MockRender.js.map +1 -1
  296. package/lib/esm/render/ParticleCollectionBuilder.js +2 -3
  297. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  298. package/lib/esm/render/RealityMeshParams.js +7 -10
  299. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  300. package/lib/esm/render/RenderPlan.js +1 -1
  301. package/lib/esm/render/RenderPlan.js.map +1 -1
  302. package/lib/esm/render/RenderSystem.js +1 -2
  303. package/lib/esm/render/RenderSystem.js.map +1 -1
  304. package/lib/esm/render/VisibleFeature.js +2 -4
  305. package/lib/esm/render/VisibleFeature.js.map +1 -1
  306. package/lib/esm/render/primitives/AuxChannelTable.js +6 -9
  307. package/lib/esm/render/primitives/AuxChannelTable.js.map +1 -1
  308. package/lib/esm/render/primitives/EdgeParams.js +6 -7
  309. package/lib/esm/render/primitives/EdgeParams.js.map +1 -1
  310. package/lib/esm/render/primitives/PolylineParams.js +2 -3
  311. package/lib/esm/render/primitives/PolylineParams.js.map +1 -1
  312. package/lib/esm/render/primitives/VertexKey.js +1 -1
  313. package/lib/esm/render/primitives/VertexKey.js.map +1 -1
  314. package/lib/esm/render/primitives/VertexTable.js +1 -1
  315. package/lib/esm/render/primitives/VertexTable.js.map +1 -1
  316. package/lib/esm/render/primitives/VertexTableSplitter.js +6 -8
  317. package/lib/esm/render/primitives/VertexTableSplitter.js.map +1 -1
  318. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js +9 -11
  319. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  320. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js +3 -5
  321. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  322. package/lib/esm/render/primitives/mesh/MeshBuilder.js +1 -1
  323. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
  324. package/lib/esm/render/primitives/mesh/MeshPrimitives.js +2 -3
  325. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  326. package/lib/esm/render/webgl/BranchState.js +9 -10
  327. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  328. package/lib/esm/render/webgl/EDL.js +17 -21
  329. package/lib/esm/render/webgl/EDL.js.map +1 -1
  330. package/lib/esm/render/webgl/FeatureOverrides.js +2 -2
  331. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  332. package/lib/esm/render/webgl/Graphic.js +3 -5
  333. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  334. package/lib/esm/render/webgl/IndexedEdgeGeometry.js +1 -1
  335. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  336. package/lib/esm/render/webgl/InstancedGeometry.js +2 -3
  337. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  338. package/lib/esm/render/webgl/Mesh.js +7 -10
  339. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  340. package/lib/esm/render/webgl/MeshData.js +1 -2
  341. package/lib/esm/render/webgl/MeshData.js.map +1 -1
  342. package/lib/esm/render/webgl/PlanarClassifier.js +10 -15
  343. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  344. package/lib/esm/render/webgl/RealityMesh.js +5 -8
  345. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  346. package/lib/esm/render/webgl/RealityModelUniforms.js +3 -4
  347. package/lib/esm/render/webgl/RealityModelUniforms.js.map +1 -1
  348. package/lib/esm/render/webgl/RenderCommands.js +7 -8
  349. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  350. package/lib/esm/render/webgl/SceneCompositor.js +7 -9
  351. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  352. package/lib/esm/render/webgl/ShaderBuilder.js +1 -2
  353. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  354. package/lib/esm/render/webgl/SolarShadowMap.js +1 -2
  355. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  356. package/lib/esm/render/webgl/SurfaceGeometry.js +1 -1
  357. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
  358. package/lib/esm/render/webgl/System.js +12 -16
  359. package/lib/esm/render/webgl/System.js.map +1 -1
  360. package/lib/esm/render/webgl/Target.js +9 -14
  361. package/lib/esm/render/webgl/Target.js.map +1 -1
  362. package/lib/esm/render/webgl/TargetGraphics.js +1 -2
  363. package/lib/esm/render/webgl/TargetGraphics.js.map +1 -1
  364. package/lib/esm/render/webgl/Texture.js +1 -2
  365. package/lib/esm/render/webgl/Texture.js.map +1 -1
  366. package/lib/esm/render/webgl/ThematicSensors.js +2 -4
  367. package/lib/esm/render/webgl/ThematicSensors.js.map +1 -1
  368. package/lib/esm/render/webgl/VisibleTileFeatures.js +1 -2
  369. package/lib/esm/render/webgl/VisibleTileFeatures.js.map +1 -1
  370. package/lib/esm/render/webgl/glsl/Animation.js +6 -9
  371. package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
  372. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +1 -2
  373. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  374. package/lib/esm/render/webgl/glsl/Instancing.js +4 -5
  375. package/lib/esm/render/webgl/glsl/Instancing.js.map +1 -1
  376. package/lib/esm/render/webgl/glsl/RealityMesh.js +2 -4
  377. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  378. package/lib/esm/render/webgl/glsl/Surface.js +1 -2
  379. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  380. package/lib/esm/render/webgl/glsl/Thematic.js +1 -2
  381. package/lib/esm/render/webgl/glsl/Thematic.js.map +1 -1
  382. package/lib/esm/tile/ClassifierTileTree.js +3 -3
  383. package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
  384. package/lib/esm/tile/GltfReader.js +61 -75
  385. package/lib/esm/tile/GltfReader.js.map +1 -1
  386. package/lib/esm/tile/IModelTile.js +2 -3
  387. package/lib/esm/tile/IModelTile.js.map +1 -1
  388. package/lib/esm/tile/IModelTileRequestChannels.js +6 -11
  389. package/lib/esm/tile/IModelTileRequestChannels.js.map +1 -1
  390. package/lib/esm/tile/IModelTileTree.js +5 -9
  391. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  392. package/lib/esm/tile/ImdlReader.js +13 -17
  393. package/lib/esm/tile/ImdlReader.js.map +1 -1
  394. package/lib/esm/tile/OrbitGtTileTree.js +2 -2
  395. package/lib/esm/tile/OrbitGtTileTree.js.map +1 -1
  396. package/lib/esm/tile/PntsReader.js +4 -5
  397. package/lib/esm/tile/PntsReader.js.map +1 -1
  398. package/lib/esm/tile/PrimaryTileTree.js +22 -32
  399. package/lib/esm/tile/PrimaryTileTree.js.map +1 -1
  400. package/lib/esm/tile/RealityModelTileTree.js +12 -19
  401. package/lib/esm/tile/RealityModelTileTree.js.map +1 -1
  402. package/lib/esm/tile/RealityTile.js +3 -5
  403. package/lib/esm/tile/RealityTile.js.map +1 -1
  404. package/lib/esm/tile/RealityTileLoader.js +2 -2
  405. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  406. package/lib/esm/tile/ThreeDTileFormatInterpreter.js +3 -5
  407. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  408. package/lib/esm/tile/Tile.js +1 -1
  409. package/lib/esm/tile/Tile.js.map +1 -1
  410. package/lib/esm/tile/TileAdmin.js +22 -27
  411. package/lib/esm/tile/TileAdmin.js.map +1 -1
  412. package/lib/esm/tile/TileDrawArgs.js +3 -6
  413. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  414. package/lib/esm/tile/TileRequestChannels.js +1 -1
  415. package/lib/esm/tile/TileRequestChannels.js.map +1 -1
  416. package/lib/esm/tile/TileTree.js +2 -3
  417. package/lib/esm/tile/TileTree.js.map +1 -1
  418. package/lib/esm/tile/TiledGraphicsProvider.js +1 -1
  419. package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
  420. package/lib/esm/tile/map/ArcGISTileMap.js +5 -6
  421. package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -1
  422. package/lib/esm/tile/map/ArcGisUtilities.js +6 -8
  423. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  424. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js +4 -7
  425. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  426. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +6 -8
  427. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  428. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js +1 -2
  429. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  430. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +14 -19
  431. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  432. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js +14 -20
  433. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  434. package/lib/esm/tile/map/MapCartoRectangle.js +1 -1
  435. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  436. package/lib/esm/tile/map/MapLayerFormatRegistry.js +5 -6
  437. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  438. package/lib/esm/tile/map/MapLayerImageryFormats.js +11 -14
  439. package/lib/esm/tile/map/MapLayerImageryFormats.js.map +1 -1
  440. package/lib/esm/tile/map/MapLayerImageryProvider.js +2 -3
  441. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  442. package/lib/esm/tile/map/MapLayerSources.js +1 -1
  443. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  444. package/lib/esm/tile/map/MapTile.js +6 -8
  445. package/lib/esm/tile/map/MapTile.js.map +1 -1
  446. package/lib/esm/tile/map/MapTileLoader.js +1 -1
  447. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  448. package/lib/esm/tile/map/MapTileTree.js +13 -18
  449. package/lib/esm/tile/map/MapTileTree.js.map +1 -1
  450. package/lib/esm/tile/map/MapTiledGraphicsProvider.js +6 -7
  451. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  452. package/lib/esm/tile/map/WmsCapabilities.js +4 -5
  453. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  454. package/lib/esm/tile/map/WmtsCapabilities.js +17 -25
  455. package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
  456. package/lib/esm/tools/ClipViewTool.js +1 -1
  457. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  458. package/lib/esm/tools/MeasureTool.js +2 -4
  459. package/lib/esm/tools/MeasureTool.js.map +1 -1
  460. package/lib/esm/tools/PrimitiveTool.js +2 -3
  461. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  462. package/lib/esm/tools/SelectTool.js +1 -2
  463. package/lib/esm/tools/SelectTool.js.map +1 -1
  464. package/lib/esm/tools/Tool.js +2 -3
  465. package/lib/esm/tools/Tool.js.map +1 -1
  466. package/lib/esm/tools/ToolAdmin.js +2 -4
  467. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  468. package/lib/esm/tools/ViewTool.js +3 -3
  469. package/lib/esm/tools/ViewTool.js.map +1 -1
  470. package/package.json +18 -18
@@ -32,7 +32,7 @@ export class ExtensionImpl {
32
32
  try {
33
33
  IModelApp.tools.register(tool);
34
34
  UiItemsManager.register(new ToolProvider(tool)); // eslint-disable-line deprecation/deprecation
35
- onRegistered === null || onRegistered === void 0 ? void 0 : onRegistered();
35
+ onRegistered?.();
36
36
  }
37
37
  catch (e) {
38
38
  console.log(`Error registering tool: ${e}`); // eslint-disable-line
@@ -1 +1 @@
1
- {"version":3,"file":"ExtensionImpl.js","sourceRoot":"","sources":["../../../src/extension/ExtensionImpl.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAqB,UAAU,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAE/J,aAAa;AACb,MAAM,OAAO,YAAY;IAMvB,YAAmB,IAAc;QAJzB,YAAO,GAAG,EAAE,CAAC;QAKnB,IAAI,CAAC,EAAE,GAAG,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;IACrC,CAAC;IAEM,yBAAyB,CAAC,QAAgB,EAAE,UAAkB,EAAE,YAA0B,EAAE,kBAAsC;QACvI,MAAM,WAAW,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;YACvH,MAAM,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,KAAK,UAAU,CAAC,OAAO,IAAI,YAAY,KAAK,YAAY,CAAC,mBAAmB,IAAI,kBAAkB,KAAK,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,8CAA8C;IAC1N,CAAC;CACF;AAED,aAAa;AACb,MAAM,OAAO,aAAa;IACxB,YAAoB,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAI,CAAC;IAE7B,KAAK,CAAC,YAAY,CAAC,IAAc,EAAE,YAAwB;QAChE,IAAI;YACF,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/B,cAAc,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,8CAA8C;YAC/F,YAAY,aAAZ,YAAY,uBAAZ,YAAY,EAAI,CAAC;SAClB;QAAC,OAAO,CAAM,EAAE;YACf,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB;SACpE;IACH,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Extensions\r\n */\r\n\r\nimport { ToolType } from \"../tools/Tool\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { CommonToolbarItem, StageUsage, ToolbarItemUtilities, ToolbarOrientation, ToolbarUsage, UiItemsManager, UiItemsProvider } from \"@itwin/appui-abstract\";\r\n\r\n/** @alpha */\r\nexport class ToolProvider implements UiItemsProvider { // eslint-disable-line deprecation/deprecation\r\n public readonly id;\r\n private _toolId = \"\";\r\n private _toolIcon;\r\n private _toolLabel;\r\n\r\n public constructor(tool: ToolType) {\r\n this.id = `ToolProvider:${tool.toolId}`;\r\n this._toolId = tool.toolId;\r\n this._toolIcon = tool.iconSpec;\r\n this._toolLabel = tool.description;\r\n }\r\n\r\n public provideToolbarButtonItems(_stageId: string, stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation): CommonToolbarItem[] { // eslint-disable-line deprecation/deprecation\r\n const toolbarItem = ToolbarItemUtilities.createActionButton(this._toolId, 0, this._toolIcon, this._toolLabel, async () => {\r\n await IModelApp.tools.run(this._toolId);\r\n });\r\n\r\n return stageUsage === StageUsage.General && toolbarUsage === ToolbarUsage.ContentManipulation && toolbarOrientation === ToolbarOrientation.Vertical ? [toolbarItem] : []; // eslint-disable-line deprecation/deprecation\r\n }\r\n}\r\n\r\n/** @alpha */\r\nexport class ExtensionImpl {\r\n constructor(private _id: string) { }\r\n\r\n public async registerTool(tool: ToolType, onRegistered?: () => any): Promise<void> {\r\n try {\r\n IModelApp.tools.register(tool);\r\n UiItemsManager.register(new ToolProvider(tool)); // eslint-disable-line deprecation/deprecation\r\n onRegistered?.();\r\n } catch (e: any) {\r\n console.log(`Error registering tool: ${e}`); // eslint-disable-line\r\n }\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ExtensionImpl.js","sourceRoot":"","sources":["../../../src/extension/ExtensionImpl.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAGH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAqB,UAAU,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,YAAY,EAAE,cAAc,EAAmB,MAAM,uBAAuB,CAAC;AAE/J,aAAa;AACb,MAAM,OAAO,YAAY;IAMvB,YAAmB,IAAc;QAJzB,YAAO,GAAG,EAAE,CAAC;QAKnB,IAAI,CAAC,EAAE,GAAG,gBAAgB,IAAI,CAAC,MAAM,EAAE,CAAC;QACxC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;QAC3B,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;IACrC,CAAC;IAEM,yBAAyB,CAAC,QAAgB,EAAE,UAAkB,EAAE,YAA0B,EAAE,kBAAsC;QACvI,MAAM,WAAW,GAAG,oBAAoB,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;YACvH,MAAM,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;QAEH,OAAO,UAAU,KAAK,UAAU,CAAC,OAAO,IAAI,YAAY,KAAK,YAAY,CAAC,mBAAmB,IAAI,kBAAkB,KAAK,kBAAkB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,8CAA8C;IAC1N,CAAC;CACF;AAED,aAAa;AACb,MAAM,OAAO,aAAa;IACxB,YAAoB,GAAW;QAAX,QAAG,GAAH,GAAG,CAAQ;IAAI,CAAC;IAE7B,KAAK,CAAC,YAAY,CAAC,IAAc,EAAE,YAAwB;QAChE,IAAI;YACF,SAAS,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC/B,cAAc,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,8CAA8C;YAC/F,YAAY,EAAE,EAAE,CAAC;SAClB;QAAC,OAAO,CAAM,EAAE;YACf,OAAO,CAAC,GAAG,CAAC,2BAA2B,CAAC,EAAE,CAAC,CAAC,CAAC,sBAAsB;SACpE;IACH,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module Extensions\r\n */\r\n\r\nimport { ToolType } from \"../tools/Tool\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { CommonToolbarItem, StageUsage, ToolbarItemUtilities, ToolbarOrientation, ToolbarUsage, UiItemsManager, UiItemsProvider } from \"@itwin/appui-abstract\";\r\n\r\n/** @alpha */\r\nexport class ToolProvider implements UiItemsProvider { // eslint-disable-line deprecation/deprecation\r\n public readonly id;\r\n private _toolId = \"\";\r\n private _toolIcon;\r\n private _toolLabel;\r\n\r\n public constructor(tool: ToolType) {\r\n this.id = `ToolProvider:${tool.toolId}`;\r\n this._toolId = tool.toolId;\r\n this._toolIcon = tool.iconSpec;\r\n this._toolLabel = tool.description;\r\n }\r\n\r\n public provideToolbarButtonItems(_stageId: string, stageUsage: string, toolbarUsage: ToolbarUsage, toolbarOrientation: ToolbarOrientation): CommonToolbarItem[] { // eslint-disable-line deprecation/deprecation\r\n const toolbarItem = ToolbarItemUtilities.createActionButton(this._toolId, 0, this._toolIcon, this._toolLabel, async () => {\r\n await IModelApp.tools.run(this._toolId);\r\n });\r\n\r\n return stageUsage === StageUsage.General && toolbarUsage === ToolbarUsage.ContentManipulation && toolbarOrientation === ToolbarOrientation.Vertical ? [toolbarItem] : []; // eslint-disable-line deprecation/deprecation\r\n }\r\n}\r\n\r\n/** @alpha */\r\nexport class ExtensionImpl {\r\n constructor(private _id: string) { }\r\n\r\n public async registerTool(tool: ToolType, onRegistered?: () => any): Promise<void> {\r\n try {\r\n IModelApp.tools.register(tool);\r\n UiItemsManager.register(new ToolProvider(tool)); // eslint-disable-line deprecation/deprecation\r\n onRegistered?.();\r\n } catch (e: any) {\r\n console.log(`Error registering tool: ${e}`); // eslint-disable-line\r\n }\r\n }\r\n}\r\n"]}
@@ -66,9 +66,8 @@ export class BaseUnitFormattingSettingsProvider {
66
66
  await this.applyQuantityFormattingSettingsForIModel(imodel);
67
67
  };
68
68
  this.handleViewportChanged = async (args) => {
69
- var _a, _b, _c, _d, _e;
70
- if (((_a = args.current) === null || _a === void 0 ? void 0 : _a.iModel) && (((_c = (_b = args.current) === null || _b === void 0 ? void 0 : _b.iModel) === null || _c === void 0 ? void 0 : _c.iModelId) !== ((_d = this.imodelConnection) === null || _d === void 0 ? void 0 : _d.iModelId))) {
71
- await this.applyQuantityFormattingSettingsForIModel((_e = args.current) === null || _e === void 0 ? void 0 : _e.iModel);
69
+ if (args.current?.iModel && (args.current?.iModel?.iModelId !== this.imodelConnection?.iModelId)) {
70
+ await this.applyQuantityFormattingSettingsForIModel(args.current?.iModel);
72
71
  }
73
72
  };
74
73
  this.handleIModelClose = async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"BaseUnitFormattingSettingsProvider.js","sourceRoot":"","sources":["../../../src/quantity-formatting/BaseUnitFormattingSettingsProvider.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 QuantityFormatting\r\n */\r\n\r\nimport { FormatProps, UnitSystemKey } from \"@itwin/core-quantity\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { SelectedViewportChangedArgs } from \"../ViewManager\";\r\nimport {\r\n FormattingUnitSystemChangedArgs, OverrideFormatEntry, QuantityFormatOverridesChangedArgs, QuantityFormatter,\r\n QuantityTypeKey, UnitFormattingSettingsProvider,\r\n} from \"./QuantityFormatter\";\r\n\r\n/** This abstract class reacts to changes in the \"active\" iModel and updates the [[QuantityFormatter]] overrides and active\r\n * presentation unit system based on stored preferences. In addition, monitors the [[QuantityFormatter]] for changes to format overrides and the active\r\n * unit system and stores these changes. The \"active\" iModel is determined by listening to the `IModelApp.viewManager.onSelectedViewportChanged` event\r\n * and gets the iModel from the selected viewport.\r\n * @beta\r\n */\r\nexport abstract class BaseUnitFormattingSettingsProvider implements UnitFormattingSettingsProvider {\r\n protected _imodelConnection: IModelConnection | undefined;\r\n\r\n /**\r\n * @param maintainOverridesPerIModel If maintainOverridesPerIModel is true the base class will set up listeners\r\n * to monitor \"active\" iModel changes so the overrides for the QuantityFormatter properly match the overrides set\r\n * up by the user. If false then the overrides are maintained only per user.\r\n * @beta\r\n */\r\n constructor(private _quantityFormatter: QuantityFormatter, private _maintainOverridesPerIModel?: boolean) {\r\n if (this._maintainOverridesPerIModel) {\r\n IModelApp.viewManager.onSelectedViewportChanged.addListener(this.handleViewportChanged);\r\n IModelConnection.onOpen.addListener(this.handleIModelOpen);\r\n IModelConnection.onClose.addListener(this.handleIModelClose);\r\n }\r\n }\r\n\r\n public get maintainOverridesPerIModel(): boolean {\r\n return !!this._maintainOverridesPerIModel;\r\n }\r\n\r\n public storeFormatOverrides = async ({typeKey, overrideEntry, unitSystem}: QuantityFormatOverridesChangedArgs) => {\r\n if (undefined === overrideEntry) {\r\n // remove all overrides for quantity type\r\n if (undefined === unitSystem) {\r\n await this.remove (typeKey);\r\n return;\r\n }else {\r\n // remove only system specific overrides for quantity type\r\n const storedJson = await this.retrieve (typeKey);\r\n if (storedJson) {\r\n delete storedJson[unitSystem];\r\n if (Object.keys(storedJson).length) {\r\n await this.store (typeKey, storedJson);\r\n } else {\r\n await this.remove (typeKey);\r\n }\r\n }\r\n }\r\n } else {\r\n // setting a new override or set of overrides\r\n const storedJson = await this.retrieve (typeKey);\r\n const updatedFormat = {...storedJson, ...overrideEntry};\r\n await this.store (typeKey, updatedFormat);\r\n }\r\n };\r\n\r\n /** save UnitSystem for active iModel */\r\n public storeUnitSystemSetting = async ({system}: FormattingUnitSystemChangedArgs) => {\r\n await this.storeUnitSystemKey(system);\r\n };\r\n\r\n public async loadOverrides(imodel?: IModelConnection): Promise<void> {\r\n await this.applyQuantityFormattingSettingsForIModel(imodel);\r\n }\r\n\r\n protected applyQuantityFormattingSettingsForIModel = async (imodel?: IModelConnection) => {\r\n if (this._maintainOverridesPerIModel)\r\n this._imodelConnection = imodel;\r\n const overrideFormatProps = await this.buildQuantityFormatOverridesMap();\r\n const unitSystemKey = await this.retrieveUnitSystem (this._quantityFormatter.activeUnitSystem);\r\n await this._quantityFormatter.reinitializeFormatAndParsingsMaps(overrideFormatProps, unitSystemKey, true, true);\r\n };\r\n\r\n private handleIModelOpen = async (imodel: IModelConnection) => {\r\n await this.applyQuantityFormattingSettingsForIModel (imodel);\r\n };\r\n\r\n private handleViewportChanged = async (args: SelectedViewportChangedArgs) => {\r\n if(args.current?.iModel && (args.current?.iModel?.iModelId !== this.imodelConnection?.iModelId)) {\r\n await this.applyQuantityFormattingSettingsForIModel (args.current?.iModel);\r\n }\r\n };\r\n\r\n private handleIModelClose = async () => {\r\n this._imodelConnection = undefined;\r\n };\r\n\r\n protected get imodelConnection() {\r\n return this._imodelConnection;\r\n }\r\n\r\n /** function to convert from serialized JSON format for Quantity Type overrides to build a map compatible with QuantityManager */\r\n protected async buildQuantityFormatOverridesMap() {\r\n const overrideFormatProps = new Map<UnitSystemKey, Map<QuantityTypeKey, FormatProps>>();\r\n\r\n // use map and await all returned promises - overrides are stored by QuantityType\r\n for await (const quantityTypeKey of [...this._quantityFormatter.quantityTypesRegistry.keys()]) {\r\n const quantityTypeDef = this._quantityFormatter.quantityTypesRegistry.get(quantityTypeKey);\r\n if (quantityTypeDef) {\r\n const typeKey = quantityTypeDef.key;\r\n const overrideEntry = await this.retrieve (typeKey);\r\n if (overrideEntry) {\r\n // extract overrides and insert into appropriate override map entry\r\n Object.keys(overrideEntry).forEach ((systemKey) => {\r\n const unitSystemKey = systemKey as UnitSystemKey;\r\n const props = overrideEntry[unitSystemKey];\r\n if (props) {\r\n if (overrideFormatProps.has(unitSystemKey)) {\r\n overrideFormatProps.get(unitSystemKey)!.set(typeKey, props);\r\n } else {\r\n const newMap = new Map<string, FormatProps>();\r\n newMap.set(typeKey, props);\r\n overrideFormatProps.set(unitSystemKey, newMap);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n return overrideFormatProps;\r\n }\r\n\r\n /** Serializes JSON object containing format overrides for a specific quantity type. */\r\n abstract store(quantityTypeKey: QuantityTypeKey, overrideProps: OverrideFormatEntry): Promise<boolean>;\r\n\r\n /** Retrieves serialized JSON object containing format overrides for a specific quantity type. */\r\n abstract retrieve(quantityTypeKey: QuantityTypeKey): Promise<OverrideFormatEntry|undefined>;\r\n\r\n /** Removes the override formats for a specific quantity type. */\r\n abstract remove(quantityTypeKey: QuantityTypeKey): Promise<boolean>;\r\n\r\n /** Retrieves the active unit system typically based on the \"active\" iModelConnection. */\r\n abstract retrieveUnitSystem(defaultKey: UnitSystemKey): Promise<UnitSystemKey>;\r\n\r\n /** Store the active unit system typically for the \"active\" iModelConnection. */\r\n abstract storeUnitSystemKey(unitSystemKey: UnitSystemKey): Promise<boolean>;\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"BaseUnitFormattingSettingsProvider.js","sourceRoot":"","sources":["../../../src/quantity-formatting/BaseUnitFormattingSettingsProvider.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 QuantityFormatting\r\n */\r\n\r\nimport { FormatProps, UnitSystemKey } from \"@itwin/core-quantity\";\r\nimport { IModelApp } from \"../IModelApp\";\r\nimport { IModelConnection } from \"../IModelConnection\";\r\nimport { SelectedViewportChangedArgs } from \"../ViewManager\";\r\nimport {\r\n FormattingUnitSystemChangedArgs, OverrideFormatEntry, QuantityFormatOverridesChangedArgs, QuantityFormatter,\r\n QuantityTypeKey, UnitFormattingSettingsProvider,\r\n} from \"./QuantityFormatter\";\r\n\r\n/** This abstract class reacts to changes in the \"active\" iModel and updates the [[QuantityFormatter]] overrides and active\r\n * presentation unit system based on stored preferences. In addition, monitors the [[QuantityFormatter]] for changes to format overrides and the active\r\n * unit system and stores these changes. The \"active\" iModel is determined by listening to the `IModelApp.viewManager.onSelectedViewportChanged` event\r\n * and gets the iModel from the selected viewport.\r\n * @beta\r\n */\r\nexport abstract class BaseUnitFormattingSettingsProvider implements UnitFormattingSettingsProvider {\r\n protected _imodelConnection: IModelConnection | undefined;\r\n\r\n /**\r\n * @param maintainOverridesPerIModel If maintainOverridesPerIModel is true the base class will set up listeners\r\n * to monitor \"active\" iModel changes so the overrides for the QuantityFormatter properly match the overrides set\r\n * up by the user. If false then the overrides are maintained only per user.\r\n * @beta\r\n */\r\n constructor(private _quantityFormatter: QuantityFormatter, private _maintainOverridesPerIModel?: boolean) {\r\n if (this._maintainOverridesPerIModel) {\r\n IModelApp.viewManager.onSelectedViewportChanged.addListener(this.handleViewportChanged);\r\n IModelConnection.onOpen.addListener(this.handleIModelOpen);\r\n IModelConnection.onClose.addListener(this.handleIModelClose);\r\n }\r\n }\r\n\r\n public get maintainOverridesPerIModel(): boolean {\r\n return !!this._maintainOverridesPerIModel;\r\n }\r\n\r\n public storeFormatOverrides = async ({typeKey, overrideEntry, unitSystem}: QuantityFormatOverridesChangedArgs) => {\r\n if (undefined === overrideEntry) {\r\n // remove all overrides for quantity type\r\n if (undefined === unitSystem) {\r\n await this.remove (typeKey);\r\n return;\r\n }else {\r\n // remove only system specific overrides for quantity type\r\n const storedJson = await this.retrieve (typeKey);\r\n if (storedJson) {\r\n delete storedJson[unitSystem];\r\n if (Object.keys(storedJson).length) {\r\n await this.store (typeKey, storedJson);\r\n } else {\r\n await this.remove (typeKey);\r\n }\r\n }\r\n }\r\n } else {\r\n // setting a new override or set of overrides\r\n const storedJson = await this.retrieve (typeKey);\r\n const updatedFormat = {...storedJson, ...overrideEntry};\r\n await this.store (typeKey, updatedFormat);\r\n }\r\n };\r\n\r\n /** save UnitSystem for active iModel */\r\n public storeUnitSystemSetting = async ({system}: FormattingUnitSystemChangedArgs) => {\r\n await this.storeUnitSystemKey(system);\r\n };\r\n\r\n public async loadOverrides(imodel?: IModelConnection): Promise<void> {\r\n await this.applyQuantityFormattingSettingsForIModel(imodel);\r\n }\r\n\r\n protected applyQuantityFormattingSettingsForIModel = async (imodel?: IModelConnection) => {\r\n if (this._maintainOverridesPerIModel)\r\n this._imodelConnection = imodel;\r\n const overrideFormatProps = await this.buildQuantityFormatOverridesMap();\r\n const unitSystemKey = await this.retrieveUnitSystem (this._quantityFormatter.activeUnitSystem);\r\n await this._quantityFormatter.reinitializeFormatAndParsingsMaps(overrideFormatProps, unitSystemKey, true, true);\r\n };\r\n\r\n private handleIModelOpen = async (imodel: IModelConnection) => {\r\n await this.applyQuantityFormattingSettingsForIModel (imodel);\r\n };\r\n\r\n private handleViewportChanged = async (args: SelectedViewportChangedArgs) => {\r\n if(args.current?.iModel && (args.current?.iModel?.iModelId !== this.imodelConnection?.iModelId)) {\r\n await this.applyQuantityFormattingSettingsForIModel (args.current?.iModel);\r\n }\r\n };\r\n\r\n private handleIModelClose = async () => {\r\n this._imodelConnection = undefined;\r\n };\r\n\r\n protected get imodelConnection() {\r\n return this._imodelConnection;\r\n }\r\n\r\n /** function to convert from serialized JSON format for Quantity Type overrides to build a map compatible with QuantityManager */\r\n protected async buildQuantityFormatOverridesMap() {\r\n const overrideFormatProps = new Map<UnitSystemKey, Map<QuantityTypeKey, FormatProps>>();\r\n\r\n // use map and await all returned promises - overrides are stored by QuantityType\r\n for await (const quantityTypeKey of [...this._quantityFormatter.quantityTypesRegistry.keys()]) {\r\n const quantityTypeDef = this._quantityFormatter.quantityTypesRegistry.get(quantityTypeKey);\r\n if (quantityTypeDef) {\r\n const typeKey = quantityTypeDef.key;\r\n const overrideEntry = await this.retrieve (typeKey);\r\n if (overrideEntry) {\r\n // extract overrides and insert into appropriate override map entry\r\n Object.keys(overrideEntry).forEach ((systemKey) => {\r\n const unitSystemKey = systemKey as UnitSystemKey;\r\n const props = overrideEntry[unitSystemKey];\r\n if (props) {\r\n if (overrideFormatProps.has(unitSystemKey)) {\r\n overrideFormatProps.get(unitSystemKey)!.set(typeKey, props);\r\n } else {\r\n const newMap = new Map<string, FormatProps>();\r\n newMap.set(typeKey, props);\r\n overrideFormatProps.set(unitSystemKey, newMap);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n }\r\n return overrideFormatProps;\r\n }\r\n\r\n /** Serializes JSON object containing format overrides for a specific quantity type. */\r\n abstract store(quantityTypeKey: QuantityTypeKey, overrideProps: OverrideFormatEntry): Promise<boolean>;\r\n\r\n /** Retrieves serialized JSON object containing format overrides for a specific quantity type. */\r\n abstract retrieve(quantityTypeKey: QuantityTypeKey): Promise<OverrideFormatEntry|undefined>;\r\n\r\n /** Removes the override formats for a specific quantity type. */\r\n abstract remove(quantityTypeKey: QuantityTypeKey): Promise<boolean>;\r\n\r\n /** Retrieves the active unit system typically based on the \"active\" iModelConnection. */\r\n abstract retrieveUnitSystem(defaultKey: UnitSystemKey): Promise<UnitSystemKey>;\r\n\r\n /** Store the active unit system typically for the \"active\" iModelConnection. */\r\n abstract storeUnitSystemKey(unitSystemKey: UnitSystemKey): Promise<boolean>;\r\n}\r\n\r\n"]}
@@ -49,7 +49,7 @@ export class AlternateUnitLabelsRegistry {
49
49
  }
50
50
  }
51
51
  addAlternateLabels(key, ...labels) {
52
- [...labels].forEach((value) => { var _a; return (_a = this._alternateLabelRegistry.get(key)) === null || _a === void 0 ? void 0 : _a.add(value); });
52
+ [...labels].forEach((value) => this._alternateLabelRegistry.get(key)?.add(value));
53
53
  }
54
54
  getAlternateUnitLabels(unit) {
55
55
  const key = unit.name;
@@ -87,18 +87,16 @@ class StandardQuantityTypeDefinition {
87
87
  }
88
88
  get key() { return this._key; }
89
89
  get label() {
90
- var _a;
91
90
  if (!this._label) {
92
91
  this._label = IModelApp.localization.getLocalizedString(this._labelKey);
93
92
  }
94
- return (_a = this._label) !== null && _a !== void 0 ? _a : "";
93
+ return this._label ?? "";
95
94
  }
96
95
  get description() {
97
- var _a;
98
96
  if (!this._description) {
99
97
  this._description = IModelApp.localization.getLocalizedString(this._descriptionKey);
100
98
  }
101
- return (_a = this._description) !== null && _a !== void 0 ? _a : this.label;
99
+ return this._description ?? this.label;
102
100
  }
103
101
  /** Get a default format to show quantity in persistence unit with precision or 6 decimal places. */
104
102
  getDefaultFormatPropsBySystem(requestedSystem) {
@@ -184,7 +182,7 @@ export class QuantityFormatter {
184
182
  await provider.loadOverrides(undefined);
185
183
  }
186
184
  getOverrideFormatPropsByQuantityType(quantityTypeKey, unitSystem) {
187
- const requestedUnitSystem = unitSystem !== null && unitSystem !== void 0 ? unitSystem : this.activeUnitSystem;
185
+ const requestedUnitSystem = unitSystem ?? this.activeUnitSystem;
188
186
  const overrideMap = this._overrideFormatPropsByUnitSystem.get(requestedUnitSystem);
189
187
  if (!overrideMap)
190
188
  return undefined;
@@ -485,7 +483,7 @@ export class QuantityFormatter {
485
483
  */
486
484
  async getFormatterSpecByQuantityTypeAndSystem(type, system) {
487
485
  const quantityKey = this.getQuantityTypeKey(type);
488
- const requestedSystem = system !== null && system !== void 0 ? system : this.activeUnitSystem;
486
+ const requestedSystem = system ?? this.activeUnitSystem;
489
487
  if (requestedSystem === this.activeUnitSystem) {
490
488
  const formatterSpec = this._activeFormatSpecsByType.get(quantityKey);
491
489
  if (formatterSpec)
@@ -516,7 +514,7 @@ export class QuantityFormatter {
516
514
  /** Asynchronous Call to get a ParserSpec for a QuantityType. If the UnitSystemKey is not specified the active Unit System is used. **/
517
515
  async getParserSpecByQuantityTypeAndSystem(type, system) {
518
516
  const quantityKey = this.getQuantityTypeKey(type);
519
- const requestedSystem = system !== null && system !== void 0 ? system : this.activeUnitSystem;
517
+ const requestedSystem = system ?? this.activeUnitSystem;
520
518
  if (requestedSystem === this.activeUnitSystem) {
521
519
  const parserSpec = this._activeParserSpecsByType.get(quantityKey);
522
520
  if (parserSpec)
@@ -607,7 +605,7 @@ export class QuantityFormatter {
607
605
  getFormatPropsByQuantityType(quantityType, requestedSystem, ignoreOverrides) {
608
606
  const quantityEntry = this.quantityTypesRegistry.get(this.getQuantityTypeKey(quantityType));
609
607
  if (quantityEntry)
610
- return this.getFormatPropsByQuantityTypeEntryAndSystem(quantityEntry, requestedSystem !== null && requestedSystem !== void 0 ? requestedSystem : this.activeUnitSystem, ignoreOverrides);
608
+ return this.getFormatPropsByQuantityTypeEntryAndSystem(quantityEntry, requestedSystem ?? this.activeUnitSystem, ignoreOverrides);
611
609
  return undefined;
612
610
  }
613
611
  // keep following to maintain existing API of implementing UnitsProvider