@itwin/core-frontend 4.1.0-dev.35 → 4.1.0-dev.40

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 (851) hide show
  1. package/lib/cjs/AccuDraw.js.map +1 -1
  2. package/lib/cjs/AccuSnap.js.map +1 -1
  3. package/lib/cjs/ApproximateTerrainHeights.js.map +1 -1
  4. package/lib/cjs/ApproximateTerrainHeightsProps.js.map +1 -1
  5. package/lib/cjs/AuxCoordSys.js.map +1 -1
  6. package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
  7. package/lib/cjs/BingLocation.js.map +1 -1
  8. package/lib/cjs/BriefcaseConnection.js.map +1 -1
  9. package/lib/cjs/BriefcaseTxns.js.map +1 -1
  10. package/lib/cjs/CategorySelectorState.js.map +1 -1
  11. package/lib/cjs/ChangeFlags.js.map +1 -1
  12. package/lib/cjs/CheckpointConnection.js.map +1 -1
  13. package/lib/cjs/CoordSystem.js.map +1 -1
  14. package/lib/cjs/DecorationsCache.js.map +1 -1
  15. package/lib/cjs/DevTools.js.map +1 -1
  16. package/lib/cjs/DisplayStyleState.js.map +1 -1
  17. package/lib/cjs/DrawingViewState.js +5 -5
  18. package/lib/cjs/DrawingViewState.js.map +1 -1
  19. package/lib/cjs/ElementLocateManager.js.map +1 -1
  20. package/lib/cjs/EmphasizeElements.js.map +1 -1
  21. package/lib/cjs/EntityState.js.map +1 -1
  22. package/lib/cjs/EnvironmentDecorations.js.map +1 -1
  23. package/lib/cjs/FeatureOverrideProvider.js.map +1 -1
  24. package/lib/cjs/FlashSettings.js.map +1 -1
  25. package/lib/cjs/FrontendHubAccess.js.map +1 -1
  26. package/lib/cjs/Frustum2d.js.map +1 -1
  27. package/lib/cjs/FrustumAnimator.js.map +1 -1
  28. package/lib/cjs/FuzzySearch.js.map +1 -1
  29. package/lib/cjs/GeoServices.js.map +1 -1
  30. package/lib/cjs/GlobeAnimator.js.map +1 -1
  31. package/lib/cjs/GraphicalEditingScope.js.map +1 -1
  32. package/lib/cjs/HitDetail.js.map +1 -1
  33. package/lib/cjs/IModelApp.js.map +1 -1
  34. package/lib/cjs/IModelConnection.js +23 -23
  35. package/lib/cjs/IModelConnection.js.map +1 -1
  36. package/lib/cjs/IModelRoutingContext.js.map +1 -1
  37. package/lib/cjs/IModeljs-css.js +133 -133
  38. package/lib/cjs/IModeljs-css.js.map +1 -1
  39. package/lib/cjs/IpcApp.js.map +1 -1
  40. package/lib/cjs/LinePlaneIntersect.js.map +1 -1
  41. package/lib/cjs/LocalhostIpcApp.js.map +1 -1
  42. package/lib/cjs/MarginPercent.js.map +1 -1
  43. package/lib/cjs/Marker.js.map +1 -1
  44. package/lib/cjs/ModelSelectorState.js.map +1 -1
  45. package/lib/cjs/NativeApp.js.map +1 -1
  46. package/lib/cjs/NativeAppLogger.js.map +1 -1
  47. package/lib/cjs/NoRenderApp.js.map +1 -1
  48. package/lib/cjs/NotificationManager.js.map +1 -1
  49. package/lib/cjs/PerModelCategoryVisibility.js.map +1 -1
  50. package/lib/cjs/PlanarClipMaskState.js.map +1 -1
  51. package/lib/cjs/RealityDataSource.js.map +1 -1
  52. package/lib/cjs/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  53. package/lib/cjs/RealityDataSourceContextShareImpl.js.map +1 -1
  54. package/lib/cjs/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  55. package/lib/cjs/SelectionSet.js.map +1 -1
  56. package/lib/cjs/SheetViewState.js.map +1 -1
  57. package/lib/cjs/SpatialViewState.js.map +1 -1
  58. package/lib/cjs/Sprites.js.map +1 -1
  59. package/lib/cjs/StandardView.js.map +1 -1
  60. package/lib/cjs/SubCategoriesCache.js.map +1 -1
  61. package/lib/cjs/TentativePoint.js.map +1 -1
  62. package/lib/cjs/Tiles.js.map +1 -1
  63. package/lib/cjs/UserPreferences.js.map +1 -1
  64. package/lib/cjs/ViewAnimation.js.map +1 -1
  65. package/lib/cjs/ViewContext.js.map +1 -1
  66. package/lib/cjs/ViewCreator2d.js.map +1 -1
  67. package/lib/cjs/ViewCreator3d.js.map +1 -1
  68. package/lib/cjs/ViewGlobalLocation.js.map +1 -1
  69. package/lib/cjs/ViewManager.js.map +1 -1
  70. package/lib/cjs/ViewPose.js.map +1 -1
  71. package/lib/cjs/ViewState.js.map +1 -1
  72. package/lib/cjs/ViewStatus.js.map +1 -1
  73. package/lib/cjs/ViewingSpace.js.map +1 -1
  74. package/lib/cjs/Viewport.js.map +1 -1
  75. package/lib/cjs/ViewportSync.js.map +1 -1
  76. package/lib/cjs/common/FrontendLoggerCategory.js.map +1 -1
  77. package/lib/cjs/common/ImageUtil.js.map +1 -1
  78. package/lib/cjs/common/ViewRect.js.map +1 -1
  79. package/lib/cjs/common/WorkerProxy.js.map +1 -1
  80. package/lib/cjs/common/gltf/GltfModel.js.map +1 -1
  81. package/lib/cjs/common/gltf/GltfParser.js.map +1 -1
  82. package/lib/cjs/common/gltf/GltfSchema.js.map +1 -1
  83. package/lib/cjs/common/imdl/CompactEdges.js.map +1 -1
  84. package/lib/cjs/common/imdl/ImdlModel.js.map +1 -1
  85. package/lib/cjs/common/imdl/ImdlSchema.js.map +1 -1
  86. package/lib/cjs/common/imdl/ParseImdlDocument.js.map +1 -1
  87. package/lib/cjs/common/render/AnimationNodeId.js.map +1 -1
  88. package/lib/cjs/common/render/MaterialParams.js.map +1 -1
  89. package/lib/cjs/common/render/TextureParams.js.map +1 -1
  90. package/lib/cjs/common/render/primitives/AuxChannelTable.js.map +1 -1
  91. package/lib/cjs/common/render/primitives/DisplayParams.js.map +1 -1
  92. package/lib/cjs/common/render/primitives/EdgeParams.js.map +1 -1
  93. package/lib/cjs/common/render/primitives/MeshParams.js.map +1 -1
  94. package/lib/cjs/common/render/primitives/MeshPrimitive.js.map +1 -1
  95. package/lib/cjs/common/render/primitives/PointStringParams.js.map +1 -1
  96. package/lib/cjs/common/render/primitives/PolylineParams.js.map +1 -1
  97. package/lib/cjs/common/render/primitives/SurfaceParams.js.map +1 -1
  98. package/lib/cjs/common/render/primitives/VertexIndices.js.map +1 -1
  99. package/lib/cjs/common/render/primitives/VertexTable.js.map +1 -1
  100. package/lib/cjs/common/render/primitives/VertexTableSplitter.js.map +1 -1
  101. package/lib/cjs/core-frontend.js.map +1 -1
  102. package/lib/cjs/extension/Extension.js.map +1 -1
  103. package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
  104. package/lib/cjs/extension/ExtensionHost.js.map +1 -1
  105. package/lib/cjs/extension/ExtensionRuntime.js.map +1 -1
  106. package/lib/cjs/extension/providers/ExtensionLoadScript.js.map +1 -1
  107. package/lib/cjs/extension/providers/LocalExtensionProvider.js.map +1 -1
  108. package/lib/cjs/extension/providers/RemoteExtensionProvider.js.map +1 -1
  109. package/lib/cjs/properties/AngleDescription.js.map +1 -1
  110. package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
  111. package/lib/cjs/properties/LengthDescription.js.map +1 -1
  112. package/lib/cjs/public/scripts/checkbrowser.js +24 -24
  113. package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  114. package/lib/cjs/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  115. package/lib/cjs/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
  116. package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
  117. package/lib/cjs/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
  118. package/lib/cjs/quantity-formatting/UnitsData.js.map +1 -1
  119. package/lib/cjs/render/CanvasDecoration.js.map +1 -1
  120. package/lib/cjs/render/CreateRenderMaterialArgs.js.map +1 -1
  121. package/lib/cjs/render/CreateTextureArgs.js.map +1 -1
  122. package/lib/cjs/render/Decorations.js.map +1 -1
  123. package/lib/cjs/render/FeatureSymbology.js.map +1 -1
  124. package/lib/cjs/render/FrameStats.js.map +1 -1
  125. package/lib/cjs/render/GraphicBranch.js.map +1 -1
  126. package/lib/cjs/render/GraphicBuilder.js.map +1 -1
  127. package/lib/cjs/render/GraphicPrimitive.js.map +1 -1
  128. package/lib/cjs/render/InstancedGraphicParams.js.map +1 -1
  129. package/lib/cjs/render/MockRender.js.map +1 -1
  130. package/lib/cjs/render/ParticleCollectionBuilder.js.map +1 -1
  131. package/lib/cjs/render/Pixel.js.map +1 -1
  132. package/lib/cjs/render/RealityMeshGraphicParams.js.map +1 -1
  133. package/lib/cjs/render/RealityMeshParams.js.map +1 -1
  134. package/lib/cjs/render/RenderClipVolume.js.map +1 -1
  135. package/lib/cjs/render/RenderGraphic.js.map +1 -1
  136. package/lib/cjs/render/RenderMemory.js.map +1 -1
  137. package/lib/cjs/render/RenderPlan.js.map +1 -1
  138. package/lib/cjs/render/RenderPlanarClassifier.js.map +1 -1
  139. package/lib/cjs/render/RenderSystem.js.map +1 -1
  140. package/lib/cjs/render/RenderTarget.js.map +1 -1
  141. package/lib/cjs/render/Scene.js.map +1 -1
  142. package/lib/cjs/render/ScreenSpaceEffectBuilder.js.map +1 -1
  143. package/lib/cjs/render/UpsampleRealityMeshParams.js.map +1 -1
  144. package/lib/cjs/render/VisibleFeature.js.map +1 -1
  145. package/lib/cjs/render/primitives/ColorMap.js.map +1 -1
  146. package/lib/cjs/render/primitives/EdgeParams.js.map +1 -1
  147. package/lib/cjs/render/primitives/PointCloudPrimitive.js.map +1 -1
  148. package/lib/cjs/render/primitives/PointStringParams.js.map +1 -1
  149. package/lib/cjs/render/primitives/Polyface.js.map +1 -1
  150. package/lib/cjs/render/primitives/PolylineParams.js.map +1 -1
  151. package/lib/cjs/render/primitives/Primitives.js.map +1 -1
  152. package/lib/cjs/render/primitives/Strokes.js.map +1 -1
  153. package/lib/cjs/render/primitives/VertexKey.js.map +1 -1
  154. package/lib/cjs/render/primitives/VertexTableBuilder.js.map +1 -1
  155. package/lib/cjs/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  156. package/lib/cjs/render/primitives/geometry/GeometryList.js.map +1 -1
  157. package/lib/cjs/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  158. package/lib/cjs/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  159. package/lib/cjs/render/primitives/mesh/MeshBuilder.js.map +1 -1
  160. package/lib/cjs/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  161. package/lib/cjs/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  162. package/lib/cjs/render/webgl/AtmosphereUniforms.js.map +1 -1
  163. package/lib/cjs/render/webgl/AttributeBuffers.js.map +1 -1
  164. package/lib/cjs/render/webgl/AttributeMap.js.map +1 -1
  165. package/lib/cjs/render/webgl/BackgroundMapDrape.js.map +1 -1
  166. package/lib/cjs/render/webgl/BatchState.js.map +1 -1
  167. package/lib/cjs/render/webgl/BatchUniforms.js.map +1 -1
  168. package/lib/cjs/render/webgl/BranchStack.js.map +1 -1
  169. package/lib/cjs/render/webgl/BranchState.js.map +1 -1
  170. package/lib/cjs/render/webgl/BranchUniforms.js.map +1 -1
  171. package/lib/cjs/render/webgl/CachedGeometry.js.map +1 -1
  172. package/lib/cjs/render/webgl/ClipStack.js.map +1 -1
  173. package/lib/cjs/render/webgl/ClipVolume.js.map +1 -1
  174. package/lib/cjs/render/webgl/ClippingProgram.js.map +1 -1
  175. package/lib/cjs/render/webgl/ColorInfo.js.map +1 -1
  176. package/lib/cjs/render/webgl/Diagnostics.js.map +1 -1
  177. package/lib/cjs/render/webgl/Disposable.js.map +1 -1
  178. package/lib/cjs/render/webgl/DrawCommand.js.map +1 -1
  179. package/lib/cjs/render/webgl/EDL.js.map +1 -1
  180. package/lib/cjs/render/webgl/EdgeGeometry.js.map +1 -1
  181. package/lib/cjs/render/webgl/EdgeSettings.js.map +1 -1
  182. package/lib/cjs/render/webgl/FeatureOverrides.js.map +1 -1
  183. package/lib/cjs/render/webgl/FloatRGBA.js.map +1 -1
  184. package/lib/cjs/render/webgl/FrameBuffer.js.map +1 -1
  185. package/lib/cjs/render/webgl/FrustumUniforms.js.map +1 -1
  186. package/lib/cjs/render/webgl/GL.js.map +1 -1
  187. package/lib/cjs/render/webgl/GLTimer.js.map +1 -1
  188. package/lib/cjs/render/webgl/Graphic.js.map +1 -1
  189. package/lib/cjs/render/webgl/HiliteUniforms.js.map +1 -1
  190. package/lib/cjs/render/webgl/IModelFrameLifecycle.js.map +1 -1
  191. package/lib/cjs/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  192. package/lib/cjs/render/webgl/InstancedGeometry.js.map +1 -1
  193. package/lib/cjs/render/webgl/Layer.js.map +1 -1
  194. package/lib/cjs/render/webgl/LayerCommands.js.map +1 -1
  195. package/lib/cjs/render/webgl/LightingUniforms.js.map +1 -1
  196. package/lib/cjs/render/webgl/LineCode.js.map +1 -1
  197. package/lib/cjs/render/webgl/Material.js.map +1 -1
  198. package/lib/cjs/render/webgl/Matrix.js.map +1 -1
  199. package/lib/cjs/render/webgl/Mesh.js.map +1 -1
  200. package/lib/cjs/render/webgl/MeshData.js.map +1 -1
  201. package/lib/cjs/render/webgl/MeshGeometry.js.map +1 -1
  202. package/lib/cjs/render/webgl/PerformanceMetrics.js.map +1 -1
  203. package/lib/cjs/render/webgl/PlanarClassifier.js.map +1 -1
  204. package/lib/cjs/render/webgl/PlanarGrid.js.map +1 -1
  205. package/lib/cjs/render/webgl/PlanarTextureProjection.js.map +1 -1
  206. package/lib/cjs/render/webgl/PointCloud.js.map +1 -1
  207. package/lib/cjs/render/webgl/PointString.js.map +1 -1
  208. package/lib/cjs/render/webgl/Polyline.js.map +1 -1
  209. package/lib/cjs/render/webgl/Primitive.js.map +1 -1
  210. package/lib/cjs/render/webgl/RealityMesh.js.map +1 -1
  211. package/lib/cjs/render/webgl/RealityModelUniforms.js.map +1 -1
  212. package/lib/cjs/render/webgl/RenderBuffer.js.map +1 -1
  213. package/lib/cjs/render/webgl/RenderCommands.js.map +1 -1
  214. package/lib/cjs/render/webgl/RenderFlags.js.map +1 -1
  215. package/lib/cjs/render/webgl/RenderState.js.map +1 -1
  216. package/lib/cjs/render/webgl/SceneCompositor.js.map +1 -1
  217. package/lib/cjs/render/webgl/ScratchDrawParams.js.map +1 -1
  218. package/lib/cjs/render/webgl/ScreenSpaceEffect.js.map +1 -1
  219. package/lib/cjs/render/webgl/ShaderBuilder.js.map +1 -1
  220. package/lib/cjs/render/webgl/ShaderProgram.js.map +1 -1
  221. package/lib/cjs/render/webgl/ShadowUniforms.js.map +1 -1
  222. package/lib/cjs/render/webgl/SolarShadowMap.js.map +1 -1
  223. package/lib/cjs/render/webgl/StyleUniforms.js.map +1 -1
  224. package/lib/cjs/render/webgl/SurfaceGeometry.js.map +1 -1
  225. package/lib/cjs/render/webgl/Sync.js.map +1 -1
  226. package/lib/cjs/render/webgl/System.js.map +1 -1
  227. package/lib/cjs/render/webgl/Target.js.map +1 -1
  228. package/lib/cjs/render/webgl/TargetGraphics.js.map +1 -1
  229. package/lib/cjs/render/webgl/TargetUniforms.js.map +1 -1
  230. package/lib/cjs/render/webgl/Technique.js.map +1 -1
  231. package/lib/cjs/render/webgl/TechniqueFlags.js.map +1 -1
  232. package/lib/cjs/render/webgl/TechniqueId.js.map +1 -1
  233. package/lib/cjs/render/webgl/Texture.js.map +1 -1
  234. package/lib/cjs/render/webgl/TextureDrape.js.map +1 -1
  235. package/lib/cjs/render/webgl/ThematicSensors.js.map +1 -1
  236. package/lib/cjs/render/webgl/ThematicUniforms.js.map +1 -1
  237. package/lib/cjs/render/webgl/UniformHandle.js.map +1 -1
  238. package/lib/cjs/render/webgl/VertexLUT.js.map +1 -1
  239. package/lib/cjs/render/webgl/ViewRectUniforms.js.map +1 -1
  240. package/lib/cjs/render/webgl/VisibleTileFeatures.js.map +1 -1
  241. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js +154 -154
  242. package/lib/cjs/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  243. package/lib/cjs/render/webgl/glsl/Animation.js +83 -83
  244. package/lib/cjs/render/webgl/glsl/Animation.js.map +1 -1
  245. package/lib/cjs/render/webgl/glsl/Atmosphere.js +266 -266
  246. package/lib/cjs/render/webgl/glsl/Atmosphere.js.map +1 -1
  247. package/lib/cjs/render/webgl/glsl/Blur.js +37 -37
  248. package/lib/cjs/render/webgl/glsl/Blur.js.map +1 -1
  249. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js +4 -4
  250. package/lib/cjs/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  251. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js +3 -3
  252. package/lib/cjs/render/webgl/glsl/ClearTranslucent.js.map +1 -1
  253. package/lib/cjs/render/webgl/glsl/Clipping.js +60 -60
  254. package/lib/cjs/render/webgl/glsl/Clipping.js.map +1 -1
  255. package/lib/cjs/render/webgl/glsl/Color.js +12 -12
  256. package/lib/cjs/render/webgl/glsl/Color.js.map +1 -1
  257. package/lib/cjs/render/webgl/glsl/Combine3Textures.js +7 -7
  258. package/lib/cjs/render/webgl/glsl/Combine3Textures.js.map +1 -1
  259. package/lib/cjs/render/webgl/glsl/CombineTextures.js +5 -5
  260. package/lib/cjs/render/webgl/glsl/CombineTextures.js.map +1 -1
  261. package/lib/cjs/render/webgl/glsl/Common.js +16 -16
  262. package/lib/cjs/render/webgl/glsl/Common.js.map +1 -1
  263. package/lib/cjs/render/webgl/glsl/Composite.js +71 -71
  264. package/lib/cjs/render/webgl/glsl/Composite.js.map +1 -1
  265. package/lib/cjs/render/webgl/glsl/CopyColor.js +6 -6
  266. package/lib/cjs/render/webgl/glsl/CopyColor.js.map +1 -1
  267. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js +3 -3
  268. package/lib/cjs/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
  269. package/lib/cjs/render/webgl/glsl/CopyStencil.js +4 -4
  270. package/lib/cjs/render/webgl/glsl/CopyStencil.js.map +1 -1
  271. package/lib/cjs/render/webgl/glsl/Decode.js +65 -65
  272. package/lib/cjs/render/webgl/glsl/Decode.js.map +1 -1
  273. package/lib/cjs/render/webgl/glsl/EDL.js +103 -103
  274. package/lib/cjs/render/webgl/glsl/EDL.js.map +1 -1
  275. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js +25 -25
  276. package/lib/cjs/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  277. package/lib/cjs/render/webgl/glsl/Edge.js +146 -146
  278. package/lib/cjs/render/webgl/glsl/Edge.js.map +1 -1
  279. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js +232 -232
  280. package/lib/cjs/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  281. package/lib/cjs/render/webgl/glsl/Fragment.js +41 -41
  282. package/lib/cjs/render/webgl/glsl/Fragment.js.map +1 -1
  283. package/lib/cjs/render/webgl/glsl/Instancing.js +21 -21
  284. package/lib/cjs/render/webgl/glsl/Instancing.js.map +1 -1
  285. package/lib/cjs/render/webgl/glsl/Lighting.js +92 -92
  286. package/lib/cjs/render/webgl/glsl/Lighting.js.map +1 -1
  287. package/lib/cjs/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
  288. package/lib/cjs/render/webgl/glsl/LookupTable.js +19 -19
  289. package/lib/cjs/render/webgl/glsl/LookupTable.js.map +1 -1
  290. package/lib/cjs/render/webgl/glsl/Monochrome.js +13 -13
  291. package/lib/cjs/render/webgl/glsl/Monochrome.js.map +1 -1
  292. package/lib/cjs/render/webgl/glsl/PlanarClassification.js +188 -188
  293. package/lib/cjs/render/webgl/glsl/PlanarClassification.js.map +1 -1
  294. package/lib/cjs/render/webgl/glsl/PlanarGrid.js +22 -22
  295. package/lib/cjs/render/webgl/glsl/PlanarGrid.js.map +1 -1
  296. package/lib/cjs/render/webgl/glsl/PointCloud.js +28 -28
  297. package/lib/cjs/render/webgl/glsl/PointCloud.js.map +1 -1
  298. package/lib/cjs/render/webgl/glsl/PointString.js +9 -9
  299. package/lib/cjs/render/webgl/glsl/PointString.js.map +1 -1
  300. package/lib/cjs/render/webgl/glsl/Polyline.js +213 -213
  301. package/lib/cjs/render/webgl/glsl/Polyline.js.map +1 -1
  302. package/lib/cjs/render/webgl/glsl/RealityMesh.js +83 -83
  303. package/lib/cjs/render/webgl/glsl/RealityMesh.js.map +1 -1
  304. package/lib/cjs/render/webgl/glsl/RenderPass.js.map +1 -1
  305. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js +9 -9
  306. package/lib/cjs/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  307. package/lib/cjs/render/webgl/glsl/SkyBox.js.map +1 -1
  308. package/lib/cjs/render/webgl/glsl/SkySphere.js +49 -49
  309. package/lib/cjs/render/webgl/glsl/SkySphere.js.map +1 -1
  310. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js +51 -51
  311. package/lib/cjs/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  312. package/lib/cjs/render/webgl/glsl/Surface.js +239 -239
  313. package/lib/cjs/render/webgl/glsl/Surface.js.map +1 -1
  314. package/lib/cjs/render/webgl/glsl/Thematic.js +134 -134
  315. package/lib/cjs/render/webgl/glsl/Thematic.js.map +1 -1
  316. package/lib/cjs/render/webgl/glsl/Translucency.js +19 -19
  317. package/lib/cjs/render/webgl/glsl/Translucency.js.map +1 -1
  318. package/lib/cjs/render/webgl/glsl/Vertex.js +73 -73
  319. package/lib/cjs/render/webgl/glsl/Vertex.js.map +1 -1
  320. package/lib/cjs/render/webgl/glsl/Viewport.js +38 -38
  321. package/lib/cjs/render/webgl/glsl/Viewport.js.map +1 -1
  322. package/lib/cjs/render/webgl/glsl/ViewportQuad.js.map +1 -1
  323. package/lib/cjs/render/webgl/glsl/Wiremesh.js +10 -10
  324. package/lib/cjs/render/webgl/glsl/Wiremesh.js.map +1 -1
  325. package/lib/cjs/render-primitives.js.map +1 -1
  326. package/lib/cjs/request/Request.js.map +1 -1
  327. package/lib/cjs/tile/B3dmReader.js.map +1 -1
  328. package/lib/cjs/tile/BatchedTileIdMap.js.map +1 -1
  329. package/lib/cjs/tile/CesiumAssetProvider.js.map +1 -1
  330. package/lib/cjs/tile/ClassifierTileTree.js.map +1 -1
  331. package/lib/cjs/tile/ContextShareProvider.js.map +1 -1
  332. package/lib/cjs/tile/DisclosedTileTreeSet.js.map +1 -1
  333. package/lib/cjs/tile/DynamicIModelTile.js.map +1 -1
  334. package/lib/cjs/tile/GltfReader.js.map +1 -1
  335. package/lib/cjs/tile/GraphicsCollector.js.map +1 -1
  336. package/lib/cjs/tile/I3dmReader.js.map +1 -1
  337. package/lib/cjs/tile/IModelTile.js.map +1 -1
  338. package/lib/cjs/tile/IModelTileRequestChannels.js.map +1 -1
  339. package/lib/cjs/tile/IModelTileTree.js.map +1 -1
  340. package/lib/cjs/tile/ImdlDecoder.js.map +1 -1
  341. package/lib/cjs/tile/ImdlGraphicsCreator.js.map +1 -1
  342. package/lib/cjs/tile/ImdlParser.js.map +1 -1
  343. package/lib/cjs/tile/ImdlReader.js.map +1 -1
  344. package/lib/cjs/tile/LRUTileList.js.map +1 -1
  345. package/lib/cjs/tile/OPCFormatInterpreter.js.map +1 -1
  346. package/lib/cjs/tile/PntsReader.js.map +1 -1
  347. package/lib/cjs/tile/RealityTile.js.map +1 -1
  348. package/lib/cjs/tile/RealityTileDrawArgs.js.map +1 -1
  349. package/lib/cjs/tile/RealityTileLoader.js.map +1 -1
  350. package/lib/cjs/tile/RealityTileTree.js +1 -1
  351. package/lib/cjs/tile/RealityTileTree.js.map +1 -1
  352. package/lib/cjs/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  353. package/lib/cjs/tile/Tile.js.map +1 -1
  354. package/lib/cjs/tile/TileAdmin.js.map +1 -1
  355. package/lib/cjs/tile/TileContent.js.map +1 -1
  356. package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
  357. package/lib/cjs/tile/TileGeometryCollector.js.map +1 -1
  358. package/lib/cjs/tile/TileParams.js.map +1 -1
  359. package/lib/cjs/tile/TileRequest.js.map +1 -1
  360. package/lib/cjs/tile/TileRequestChannel.js.map +1 -1
  361. package/lib/cjs/tile/TileRequestChannels.js.map +1 -1
  362. package/lib/cjs/tile/TileStorage.js.map +1 -1
  363. package/lib/cjs/tile/TileTree.js.map +1 -1
  364. package/lib/cjs/tile/TileTreeOwner.js.map +1 -1
  365. package/lib/cjs/tile/TileTreeParams.js.map +1 -1
  366. package/lib/cjs/tile/TileTreeReference.js.map +1 -1
  367. package/lib/cjs/tile/TileTreeSupplier.js.map +1 -1
  368. package/lib/cjs/tile/TileUsageMarker.js.map +1 -1
  369. package/lib/cjs/tile/TileUser.js.map +1 -1
  370. package/lib/cjs/tile/TileUserSet.js.map +1 -1
  371. package/lib/cjs/tile/TiledGraphicsProvider.js.map +1 -1
  372. package/lib/cjs/tile/ViewFlagOverrides.js.map +1 -1
  373. package/lib/cjs/tile/internal.js.map +1 -1
  374. package/lib/cjs/tile/map/ArcGISTileMap.js.map +1 -1
  375. package/lib/cjs/tile/map/ArcGisUtilities.js.map +1 -1
  376. package/lib/cjs/tile/map/BingElevation.js.map +1 -1
  377. package/lib/cjs/tile/map/CesiumTerrainProvider.js.map +1 -1
  378. package/lib/cjs/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  379. package/lib/cjs/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  380. package/lib/cjs/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  381. package/lib/cjs/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  382. package/lib/cjs/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  383. package/lib/cjs/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  384. package/lib/cjs/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  385. package/lib/cjs/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  386. package/lib/cjs/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  387. package/lib/cjs/tile/map/MapCartoRectangle.js.map +1 -1
  388. package/lib/cjs/tile/map/MapFeatureInfo.js.map +1 -1
  389. package/lib/cjs/tile/map/MapLayerAuthentication.js.map +1 -1
  390. package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
  391. package/lib/cjs/tile/map/MapLayerImageryProvider.js +2 -2
  392. package/lib/cjs/tile/map/MapLayerImageryProvider.js.map +1 -1
  393. package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
  394. package/lib/cjs/tile/map/MapLayerTileTreeReference.js.map +1 -1
  395. package/lib/cjs/tile/map/MapTile.js.map +1 -1
  396. package/lib/cjs/tile/map/MapTileAvailability.js.map +1 -1
  397. package/lib/cjs/tile/map/MapTileLoader.js.map +1 -1
  398. package/lib/cjs/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  399. package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
  400. package/lib/cjs/tile/map/QuadId.js.map +1 -1
  401. package/lib/cjs/tile/map/TerrainMeshProvider.js.map +1 -1
  402. package/lib/cjs/tile/map/TerrainProvider.js.map +1 -1
  403. package/lib/cjs/tile/map/WmsCapabilities.js.map +1 -1
  404. package/lib/cjs/tile/map/WmsUtilities.js.map +1 -1
  405. package/lib/cjs/tile/map/WmtsCapabilities.js.map +1 -1
  406. package/lib/cjs/tools/AccuDrawTool.js.map +1 -1
  407. package/lib/cjs/tools/ClipViewTool.js.map +1 -1
  408. package/lib/cjs/tools/EditManipulator.js.map +1 -1
  409. package/lib/cjs/tools/ElementSetTool.js.map +1 -1
  410. package/lib/cjs/tools/EventController.js.map +1 -1
  411. package/lib/cjs/tools/IdleTool.js.map +1 -1
  412. package/lib/cjs/tools/MeasureTool.js.map +1 -1
  413. package/lib/cjs/tools/PrimitiveTool.js.map +1 -1
  414. package/lib/cjs/tools/SelectTool.js.map +1 -1
  415. package/lib/cjs/tools/ToolAdmin.js.map +1 -1
  416. package/lib/cjs/tools/ToolAssistance.js.map +1 -1
  417. package/lib/cjs/tools/ToolSettings.js.map +1 -1
  418. package/lib/cjs/tools/ViewTool.js.map +1 -1
  419. package/lib/cjs/webgl.js.map +1 -1
  420. package/lib/cjs/workers/ImdlParser/Worker.js.map +1 -1
  421. package/lib/cjs/workers/ImdlParser/webpack.config.js +40 -40
  422. package/lib/cjs/workers/RegisterWorker.js.map +1 -1
  423. package/lib/esm/AccuDraw.js.map +1 -1
  424. package/lib/esm/AccuSnap.js.map +1 -1
  425. package/lib/esm/ApproximateTerrainHeights.js.map +1 -1
  426. package/lib/esm/ApproximateTerrainHeightsProps.js.map +1 -1
  427. package/lib/esm/AuxCoordSys.js.map +1 -1
  428. package/lib/esm/BackgroundMapGeometry.js.map +1 -1
  429. package/lib/esm/BingLocation.js.map +1 -1
  430. package/lib/esm/BriefcaseConnection.js.map +1 -1
  431. package/lib/esm/BriefcaseTxns.js.map +1 -1
  432. package/lib/esm/CategorySelectorState.js.map +1 -1
  433. package/lib/esm/ChangeFlags.js.map +1 -1
  434. package/lib/esm/CheckpointConnection.js.map +1 -1
  435. package/lib/esm/CoordSystem.js.map +1 -1
  436. package/lib/esm/DecorationsCache.js.map +1 -1
  437. package/lib/esm/DevTools.js.map +1 -1
  438. package/lib/esm/DisplayStyleState.js.map +1 -1
  439. package/lib/esm/DrawingViewState.js +5 -5
  440. package/lib/esm/DrawingViewState.js.map +1 -1
  441. package/lib/esm/ElementLocateManager.js.map +1 -1
  442. package/lib/esm/EmphasizeElements.js.map +1 -1
  443. package/lib/esm/EntityState.js.map +1 -1
  444. package/lib/esm/EnvironmentDecorations.js.map +1 -1
  445. package/lib/esm/FeatureOverrideProvider.js.map +1 -1
  446. package/lib/esm/FlashSettings.js.map +1 -1
  447. package/lib/esm/FrontendHubAccess.js.map +1 -1
  448. package/lib/esm/Frustum2d.js.map +1 -1
  449. package/lib/esm/FrustumAnimator.js.map +1 -1
  450. package/lib/esm/FuzzySearch.js.map +1 -1
  451. package/lib/esm/GeoServices.js.map +1 -1
  452. package/lib/esm/GlobeAnimator.js.map +1 -1
  453. package/lib/esm/GraphicalEditingScope.js.map +1 -1
  454. package/lib/esm/HitDetail.js.map +1 -1
  455. package/lib/esm/IModelApp.js.map +1 -1
  456. package/lib/esm/IModelConnection.js +23 -23
  457. package/lib/esm/IModelConnection.js.map +1 -1
  458. package/lib/esm/IModelRoutingContext.js.map +1 -1
  459. package/lib/esm/IModeljs-css.js +133 -133
  460. package/lib/esm/IModeljs-css.js.map +1 -1
  461. package/lib/esm/IpcApp.js.map +1 -1
  462. package/lib/esm/LinePlaneIntersect.js.map +1 -1
  463. package/lib/esm/LocalhostIpcApp.js.map +1 -1
  464. package/lib/esm/MarginPercent.js.map +1 -1
  465. package/lib/esm/Marker.js.map +1 -1
  466. package/lib/esm/ModelSelectorState.js.map +1 -1
  467. package/lib/esm/NativeApp.js.map +1 -1
  468. package/lib/esm/NativeAppLogger.js.map +1 -1
  469. package/lib/esm/NoRenderApp.js.map +1 -1
  470. package/lib/esm/NotificationManager.js.map +1 -1
  471. package/lib/esm/PerModelCategoryVisibility.js.map +1 -1
  472. package/lib/esm/PlanarClipMaskState.js.map +1 -1
  473. package/lib/esm/RealityDataSource.js.map +1 -1
  474. package/lib/esm/RealityDataSourceCesiumIonAssetImpl.js.map +1 -1
  475. package/lib/esm/RealityDataSourceContextShareImpl.js.map +1 -1
  476. package/lib/esm/RealityDataSourceTilesetUrlImpl.js.map +1 -1
  477. package/lib/esm/SelectionSet.js.map +1 -1
  478. package/lib/esm/SheetViewState.js.map +1 -1
  479. package/lib/esm/SpatialViewState.js.map +1 -1
  480. package/lib/esm/Sprites.js.map +1 -1
  481. package/lib/esm/StandardView.js.map +1 -1
  482. package/lib/esm/SubCategoriesCache.js.map +1 -1
  483. package/lib/esm/TentativePoint.js.map +1 -1
  484. package/lib/esm/Tiles.js.map +1 -1
  485. package/lib/esm/UserPreferences.js.map +1 -1
  486. package/lib/esm/ViewAnimation.js.map +1 -1
  487. package/lib/esm/ViewContext.js.map +1 -1
  488. package/lib/esm/ViewCreator2d.js.map +1 -1
  489. package/lib/esm/ViewCreator3d.js.map +1 -1
  490. package/lib/esm/ViewGlobalLocation.js.map +1 -1
  491. package/lib/esm/ViewManager.js.map +1 -1
  492. package/lib/esm/ViewPose.js.map +1 -1
  493. package/lib/esm/ViewState.js.map +1 -1
  494. package/lib/esm/ViewStatus.js.map +1 -1
  495. package/lib/esm/ViewingSpace.js.map +1 -1
  496. package/lib/esm/Viewport.js.map +1 -1
  497. package/lib/esm/ViewportSync.js.map +1 -1
  498. package/lib/esm/common/FrontendLoggerCategory.js.map +1 -1
  499. package/lib/esm/common/ImageUtil.js.map +1 -1
  500. package/lib/esm/common/ViewRect.js.map +1 -1
  501. package/lib/esm/common/WorkerProxy.js.map +1 -1
  502. package/lib/esm/common/gltf/GltfModel.js.map +1 -1
  503. package/lib/esm/common/gltf/GltfParser.js.map +1 -1
  504. package/lib/esm/common/gltf/GltfSchema.js.map +1 -1
  505. package/lib/esm/common/imdl/CompactEdges.js.map +1 -1
  506. package/lib/esm/common/imdl/ImdlModel.js.map +1 -1
  507. package/lib/esm/common/imdl/ImdlSchema.js.map +1 -1
  508. package/lib/esm/common/imdl/ParseImdlDocument.js.map +1 -1
  509. package/lib/esm/common/render/AnimationNodeId.js.map +1 -1
  510. package/lib/esm/common/render/MaterialParams.js.map +1 -1
  511. package/lib/esm/common/render/TextureParams.js.map +1 -1
  512. package/lib/esm/common/render/primitives/AuxChannelTable.js.map +1 -1
  513. package/lib/esm/common/render/primitives/DisplayParams.js.map +1 -1
  514. package/lib/esm/common/render/primitives/EdgeParams.js.map +1 -1
  515. package/lib/esm/common/render/primitives/MeshParams.js.map +1 -1
  516. package/lib/esm/common/render/primitives/MeshPrimitive.js.map +1 -1
  517. package/lib/esm/common/render/primitives/PointStringParams.js.map +1 -1
  518. package/lib/esm/common/render/primitives/PolylineParams.js.map +1 -1
  519. package/lib/esm/common/render/primitives/SurfaceParams.js.map +1 -1
  520. package/lib/esm/common/render/primitives/VertexIndices.js.map +1 -1
  521. package/lib/esm/common/render/primitives/VertexTable.js.map +1 -1
  522. package/lib/esm/common/render/primitives/VertexTableSplitter.js.map +1 -1
  523. package/lib/esm/core-frontend.js.map +1 -1
  524. package/lib/esm/extension/Extension.js.map +1 -1
  525. package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
  526. package/lib/esm/extension/ExtensionHost.js.map +1 -1
  527. package/lib/esm/extension/ExtensionRuntime.js.map +1 -1
  528. package/lib/esm/extension/providers/ExtensionLoadScript.js.map +1 -1
  529. package/lib/esm/extension/providers/LocalExtensionProvider.js.map +1 -1
  530. package/lib/esm/extension/providers/RemoteExtensionProvider.js.map +1 -1
  531. package/lib/esm/properties/AngleDescription.js.map +1 -1
  532. package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
  533. package/lib/esm/properties/LengthDescription.js.map +1 -1
  534. package/lib/esm/public/scripts/checkbrowser.js +24 -24
  535. package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
  536. package/lib/esm/quantity-formatting/BasicUnitsProvider.js.map +1 -1
  537. package/lib/esm/quantity-formatting/LocalUnitFormatProvider.js.map +1 -1
  538. package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
  539. package/lib/esm/quantity-formatting/QuantityTypesEditorSpecs.js.map +1 -1
  540. package/lib/esm/quantity-formatting/UnitsData.js.map +1 -1
  541. package/lib/esm/render/CanvasDecoration.js.map +1 -1
  542. package/lib/esm/render/CreateRenderMaterialArgs.js.map +1 -1
  543. package/lib/esm/render/CreateTextureArgs.js.map +1 -1
  544. package/lib/esm/render/Decorations.js.map +1 -1
  545. package/lib/esm/render/FeatureSymbology.js.map +1 -1
  546. package/lib/esm/render/FrameStats.js.map +1 -1
  547. package/lib/esm/render/GraphicBranch.js.map +1 -1
  548. package/lib/esm/render/GraphicBuilder.js.map +1 -1
  549. package/lib/esm/render/GraphicPrimitive.js.map +1 -1
  550. package/lib/esm/render/InstancedGraphicParams.js.map +1 -1
  551. package/lib/esm/render/MockRender.js.map +1 -1
  552. package/lib/esm/render/ParticleCollectionBuilder.js.map +1 -1
  553. package/lib/esm/render/Pixel.js.map +1 -1
  554. package/lib/esm/render/RealityMeshGraphicParams.js.map +1 -1
  555. package/lib/esm/render/RealityMeshParams.js.map +1 -1
  556. package/lib/esm/render/RenderClipVolume.js.map +1 -1
  557. package/lib/esm/render/RenderGraphic.js.map +1 -1
  558. package/lib/esm/render/RenderMemory.js.map +1 -1
  559. package/lib/esm/render/RenderPlan.js.map +1 -1
  560. package/lib/esm/render/RenderPlanarClassifier.js.map +1 -1
  561. package/lib/esm/render/RenderSystem.js.map +1 -1
  562. package/lib/esm/render/RenderTarget.js.map +1 -1
  563. package/lib/esm/render/Scene.js.map +1 -1
  564. package/lib/esm/render/ScreenSpaceEffectBuilder.js.map +1 -1
  565. package/lib/esm/render/UpsampleRealityMeshParams.js.map +1 -1
  566. package/lib/esm/render/VisibleFeature.js.map +1 -1
  567. package/lib/esm/render/primitives/ColorMap.js.map +1 -1
  568. package/lib/esm/render/primitives/EdgeParams.js.map +1 -1
  569. package/lib/esm/render/primitives/PointCloudPrimitive.js.map +1 -1
  570. package/lib/esm/render/primitives/PointStringParams.js.map +1 -1
  571. package/lib/esm/render/primitives/Polyface.js.map +1 -1
  572. package/lib/esm/render/primitives/PolylineParams.js.map +1 -1
  573. package/lib/esm/render/primitives/Primitives.js.map +1 -1
  574. package/lib/esm/render/primitives/Strokes.js.map +1 -1
  575. package/lib/esm/render/primitives/VertexKey.js.map +1 -1
  576. package/lib/esm/render/primitives/VertexTableBuilder.js.map +1 -1
  577. package/lib/esm/render/primitives/geometry/GeometryAccumulator.js.map +1 -1
  578. package/lib/esm/render/primitives/geometry/GeometryList.js.map +1 -1
  579. package/lib/esm/render/primitives/geometry/GeometryListBuilder.js.map +1 -1
  580. package/lib/esm/render/primitives/geometry/GeometryPrimitives.js.map +1 -1
  581. package/lib/esm/render/primitives/mesh/MeshBuilder.js.map +1 -1
  582. package/lib/esm/render/primitives/mesh/MeshBuilderMap.js.map +1 -1
  583. package/lib/esm/render/primitives/mesh/MeshPrimitives.js.map +1 -1
  584. package/lib/esm/render/webgl/AtmosphereUniforms.js.map +1 -1
  585. package/lib/esm/render/webgl/AttributeBuffers.js.map +1 -1
  586. package/lib/esm/render/webgl/AttributeMap.js.map +1 -1
  587. package/lib/esm/render/webgl/BackgroundMapDrape.js.map +1 -1
  588. package/lib/esm/render/webgl/BatchState.js.map +1 -1
  589. package/lib/esm/render/webgl/BatchUniforms.js.map +1 -1
  590. package/lib/esm/render/webgl/BranchStack.js.map +1 -1
  591. package/lib/esm/render/webgl/BranchState.js.map +1 -1
  592. package/lib/esm/render/webgl/BranchUniforms.js.map +1 -1
  593. package/lib/esm/render/webgl/CachedGeometry.js.map +1 -1
  594. package/lib/esm/render/webgl/ClipStack.js.map +1 -1
  595. package/lib/esm/render/webgl/ClipVolume.js.map +1 -1
  596. package/lib/esm/render/webgl/ClippingProgram.js.map +1 -1
  597. package/lib/esm/render/webgl/ColorInfo.js.map +1 -1
  598. package/lib/esm/render/webgl/Diagnostics.js.map +1 -1
  599. package/lib/esm/render/webgl/Disposable.js.map +1 -1
  600. package/lib/esm/render/webgl/DrawCommand.js.map +1 -1
  601. package/lib/esm/render/webgl/EDL.js.map +1 -1
  602. package/lib/esm/render/webgl/EdgeGeometry.js.map +1 -1
  603. package/lib/esm/render/webgl/EdgeSettings.js.map +1 -1
  604. package/lib/esm/render/webgl/FeatureOverrides.js.map +1 -1
  605. package/lib/esm/render/webgl/FloatRGBA.js.map +1 -1
  606. package/lib/esm/render/webgl/FrameBuffer.js.map +1 -1
  607. package/lib/esm/render/webgl/FrustumUniforms.js.map +1 -1
  608. package/lib/esm/render/webgl/GL.js.map +1 -1
  609. package/lib/esm/render/webgl/GLTimer.js.map +1 -1
  610. package/lib/esm/render/webgl/Graphic.js.map +1 -1
  611. package/lib/esm/render/webgl/HiliteUniforms.js.map +1 -1
  612. package/lib/esm/render/webgl/IModelFrameLifecycle.js.map +1 -1
  613. package/lib/esm/render/webgl/IndexedEdgeGeometry.js.map +1 -1
  614. package/lib/esm/render/webgl/InstancedGeometry.js.map +1 -1
  615. package/lib/esm/render/webgl/Layer.js.map +1 -1
  616. package/lib/esm/render/webgl/LayerCommands.js.map +1 -1
  617. package/lib/esm/render/webgl/LightingUniforms.js.map +1 -1
  618. package/lib/esm/render/webgl/LineCode.js.map +1 -1
  619. package/lib/esm/render/webgl/Material.js.map +1 -1
  620. package/lib/esm/render/webgl/Matrix.js.map +1 -1
  621. package/lib/esm/render/webgl/Mesh.js.map +1 -1
  622. package/lib/esm/render/webgl/MeshData.js.map +1 -1
  623. package/lib/esm/render/webgl/MeshGeometry.js.map +1 -1
  624. package/lib/esm/render/webgl/PerformanceMetrics.js.map +1 -1
  625. package/lib/esm/render/webgl/PlanarClassifier.js.map +1 -1
  626. package/lib/esm/render/webgl/PlanarGrid.js.map +1 -1
  627. package/lib/esm/render/webgl/PlanarTextureProjection.js.map +1 -1
  628. package/lib/esm/render/webgl/PointCloud.js.map +1 -1
  629. package/lib/esm/render/webgl/PointString.js.map +1 -1
  630. package/lib/esm/render/webgl/Polyline.js.map +1 -1
  631. package/lib/esm/render/webgl/Primitive.js.map +1 -1
  632. package/lib/esm/render/webgl/RealityMesh.js.map +1 -1
  633. package/lib/esm/render/webgl/RealityModelUniforms.js.map +1 -1
  634. package/lib/esm/render/webgl/RenderBuffer.js.map +1 -1
  635. package/lib/esm/render/webgl/RenderCommands.js.map +1 -1
  636. package/lib/esm/render/webgl/RenderFlags.js.map +1 -1
  637. package/lib/esm/render/webgl/RenderState.js.map +1 -1
  638. package/lib/esm/render/webgl/SceneCompositor.js.map +1 -1
  639. package/lib/esm/render/webgl/ScratchDrawParams.js.map +1 -1
  640. package/lib/esm/render/webgl/ScreenSpaceEffect.js.map +1 -1
  641. package/lib/esm/render/webgl/ShaderBuilder.js.map +1 -1
  642. package/lib/esm/render/webgl/ShaderProgram.js.map +1 -1
  643. package/lib/esm/render/webgl/ShadowUniforms.js.map +1 -1
  644. package/lib/esm/render/webgl/SolarShadowMap.js.map +1 -1
  645. package/lib/esm/render/webgl/StyleUniforms.js.map +1 -1
  646. package/lib/esm/render/webgl/SurfaceGeometry.js.map +1 -1
  647. package/lib/esm/render/webgl/Sync.js.map +1 -1
  648. package/lib/esm/render/webgl/System.js.map +1 -1
  649. package/lib/esm/render/webgl/Target.js.map +1 -1
  650. package/lib/esm/render/webgl/TargetGraphics.js.map +1 -1
  651. package/lib/esm/render/webgl/TargetUniforms.js.map +1 -1
  652. package/lib/esm/render/webgl/Technique.js.map +1 -1
  653. package/lib/esm/render/webgl/TechniqueFlags.js.map +1 -1
  654. package/lib/esm/render/webgl/TechniqueId.js.map +1 -1
  655. package/lib/esm/render/webgl/Texture.js.map +1 -1
  656. package/lib/esm/render/webgl/TextureDrape.js.map +1 -1
  657. package/lib/esm/render/webgl/ThematicSensors.js.map +1 -1
  658. package/lib/esm/render/webgl/ThematicUniforms.js.map +1 -1
  659. package/lib/esm/render/webgl/UniformHandle.js.map +1 -1
  660. package/lib/esm/render/webgl/VertexLUT.js.map +1 -1
  661. package/lib/esm/render/webgl/ViewRectUniforms.js.map +1 -1
  662. package/lib/esm/render/webgl/VisibleTileFeatures.js.map +1 -1
  663. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js +154 -154
  664. package/lib/esm/render/webgl/glsl/AmbientOcclusion.js.map +1 -1
  665. package/lib/esm/render/webgl/glsl/Animation.js +83 -83
  666. package/lib/esm/render/webgl/glsl/Animation.js.map +1 -1
  667. package/lib/esm/render/webgl/glsl/Atmosphere.js +266 -266
  668. package/lib/esm/render/webgl/glsl/Atmosphere.js.map +1 -1
  669. package/lib/esm/render/webgl/glsl/Blur.js +37 -37
  670. package/lib/esm/render/webgl/glsl/Blur.js.map +1 -1
  671. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js +4 -4
  672. package/lib/esm/render/webgl/glsl/ClearPickAndColor.js.map +1 -1
  673. package/lib/esm/render/webgl/glsl/ClearTranslucent.js +3 -3
  674. package/lib/esm/render/webgl/glsl/ClearTranslucent.js.map +1 -1
  675. package/lib/esm/render/webgl/glsl/Clipping.js +60 -60
  676. package/lib/esm/render/webgl/glsl/Clipping.js.map +1 -1
  677. package/lib/esm/render/webgl/glsl/Color.js +12 -12
  678. package/lib/esm/render/webgl/glsl/Color.js.map +1 -1
  679. package/lib/esm/render/webgl/glsl/Combine3Textures.js +7 -7
  680. package/lib/esm/render/webgl/glsl/Combine3Textures.js.map +1 -1
  681. package/lib/esm/render/webgl/glsl/CombineTextures.js +5 -5
  682. package/lib/esm/render/webgl/glsl/CombineTextures.js.map +1 -1
  683. package/lib/esm/render/webgl/glsl/Common.js +16 -16
  684. package/lib/esm/render/webgl/glsl/Common.js.map +1 -1
  685. package/lib/esm/render/webgl/glsl/Composite.js +71 -71
  686. package/lib/esm/render/webgl/glsl/Composite.js.map +1 -1
  687. package/lib/esm/render/webgl/glsl/CopyColor.js +6 -6
  688. package/lib/esm/render/webgl/glsl/CopyColor.js.map +1 -1
  689. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js +3 -3
  690. package/lib/esm/render/webgl/glsl/CopyPickBuffers.js.map +1 -1
  691. package/lib/esm/render/webgl/glsl/CopyStencil.js +4 -4
  692. package/lib/esm/render/webgl/glsl/CopyStencil.js.map +1 -1
  693. package/lib/esm/render/webgl/glsl/Decode.js +65 -65
  694. package/lib/esm/render/webgl/glsl/Decode.js.map +1 -1
  695. package/lib/esm/render/webgl/glsl/EDL.js +103 -103
  696. package/lib/esm/render/webgl/glsl/EDL.js.map +1 -1
  697. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js +25 -25
  698. package/lib/esm/render/webgl/glsl/EVSMFromDepth.js.map +1 -1
  699. package/lib/esm/render/webgl/glsl/Edge.js +146 -146
  700. package/lib/esm/render/webgl/glsl/Edge.js.map +1 -1
  701. package/lib/esm/render/webgl/glsl/FeatureSymbology.js +232 -232
  702. package/lib/esm/render/webgl/glsl/FeatureSymbology.js.map +1 -1
  703. package/lib/esm/render/webgl/glsl/Fragment.js +41 -41
  704. package/lib/esm/render/webgl/glsl/Fragment.js.map +1 -1
  705. package/lib/esm/render/webgl/glsl/Instancing.js +21 -21
  706. package/lib/esm/render/webgl/glsl/Instancing.js.map +1 -1
  707. package/lib/esm/render/webgl/glsl/Lighting.js +92 -92
  708. package/lib/esm/render/webgl/glsl/Lighting.js.map +1 -1
  709. package/lib/esm/render/webgl/glsl/LogarithmicDepthBuffer.js.map +1 -1
  710. package/lib/esm/render/webgl/glsl/LookupTable.js +19 -19
  711. package/lib/esm/render/webgl/glsl/LookupTable.js.map +1 -1
  712. package/lib/esm/render/webgl/glsl/Monochrome.js +13 -13
  713. package/lib/esm/render/webgl/glsl/Monochrome.js.map +1 -1
  714. package/lib/esm/render/webgl/glsl/PlanarClassification.js +188 -188
  715. package/lib/esm/render/webgl/glsl/PlanarClassification.js.map +1 -1
  716. package/lib/esm/render/webgl/glsl/PlanarGrid.js +22 -22
  717. package/lib/esm/render/webgl/glsl/PlanarGrid.js.map +1 -1
  718. package/lib/esm/render/webgl/glsl/PointCloud.js +28 -28
  719. package/lib/esm/render/webgl/glsl/PointCloud.js.map +1 -1
  720. package/lib/esm/render/webgl/glsl/PointString.js +9 -9
  721. package/lib/esm/render/webgl/glsl/PointString.js.map +1 -1
  722. package/lib/esm/render/webgl/glsl/Polyline.js +213 -213
  723. package/lib/esm/render/webgl/glsl/Polyline.js.map +1 -1
  724. package/lib/esm/render/webgl/glsl/RealityMesh.js +83 -83
  725. package/lib/esm/render/webgl/glsl/RealityMesh.js.map +1 -1
  726. package/lib/esm/render/webgl/glsl/RenderPass.js.map +1 -1
  727. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js +9 -9
  728. package/lib/esm/render/webgl/glsl/ScreenSpaceEffect.js.map +1 -1
  729. package/lib/esm/render/webgl/glsl/SkyBox.js.map +1 -1
  730. package/lib/esm/render/webgl/glsl/SkySphere.js +49 -49
  731. package/lib/esm/render/webgl/glsl/SkySphere.js.map +1 -1
  732. package/lib/esm/render/webgl/glsl/SolarShadowMapping.js +51 -51
  733. package/lib/esm/render/webgl/glsl/SolarShadowMapping.js.map +1 -1
  734. package/lib/esm/render/webgl/glsl/Surface.js +239 -239
  735. package/lib/esm/render/webgl/glsl/Surface.js.map +1 -1
  736. package/lib/esm/render/webgl/glsl/Thematic.js +134 -134
  737. package/lib/esm/render/webgl/glsl/Thematic.js.map +1 -1
  738. package/lib/esm/render/webgl/glsl/Translucency.js +19 -19
  739. package/lib/esm/render/webgl/glsl/Translucency.js.map +1 -1
  740. package/lib/esm/render/webgl/glsl/Vertex.js +73 -73
  741. package/lib/esm/render/webgl/glsl/Vertex.js.map +1 -1
  742. package/lib/esm/render/webgl/glsl/Viewport.js +38 -38
  743. package/lib/esm/render/webgl/glsl/Viewport.js.map +1 -1
  744. package/lib/esm/render/webgl/glsl/ViewportQuad.js.map +1 -1
  745. package/lib/esm/render/webgl/glsl/Wiremesh.js +10 -10
  746. package/lib/esm/render/webgl/glsl/Wiremesh.js.map +1 -1
  747. package/lib/esm/render-primitives.js.map +1 -1
  748. package/lib/esm/request/Request.js.map +1 -1
  749. package/lib/esm/tile/B3dmReader.js.map +1 -1
  750. package/lib/esm/tile/BatchedTileIdMap.js.map +1 -1
  751. package/lib/esm/tile/CesiumAssetProvider.js.map +1 -1
  752. package/lib/esm/tile/ClassifierTileTree.js.map +1 -1
  753. package/lib/esm/tile/ContextShareProvider.js.map +1 -1
  754. package/lib/esm/tile/DisclosedTileTreeSet.js.map +1 -1
  755. package/lib/esm/tile/DynamicIModelTile.js.map +1 -1
  756. package/lib/esm/tile/GltfReader.js.map +1 -1
  757. package/lib/esm/tile/GraphicsCollector.js.map +1 -1
  758. package/lib/esm/tile/I3dmReader.js.map +1 -1
  759. package/lib/esm/tile/IModelTile.js.map +1 -1
  760. package/lib/esm/tile/IModelTileRequestChannels.js.map +1 -1
  761. package/lib/esm/tile/IModelTileTree.js.map +1 -1
  762. package/lib/esm/tile/ImdlDecoder.js.map +1 -1
  763. package/lib/esm/tile/ImdlGraphicsCreator.js.map +1 -1
  764. package/lib/esm/tile/ImdlParser.js.map +1 -1
  765. package/lib/esm/tile/ImdlReader.js.map +1 -1
  766. package/lib/esm/tile/LRUTileList.js.map +1 -1
  767. package/lib/esm/tile/OPCFormatInterpreter.js.map +1 -1
  768. package/lib/esm/tile/PntsReader.js.map +1 -1
  769. package/lib/esm/tile/RealityTile.js.map +1 -1
  770. package/lib/esm/tile/RealityTileDrawArgs.js.map +1 -1
  771. package/lib/esm/tile/RealityTileLoader.js.map +1 -1
  772. package/lib/esm/tile/RealityTileTree.js +1 -1
  773. package/lib/esm/tile/RealityTileTree.js.map +1 -1
  774. package/lib/esm/tile/ThreeDTileFormatInterpreter.js.map +1 -1
  775. package/lib/esm/tile/Tile.js.map +1 -1
  776. package/lib/esm/tile/TileAdmin.js.map +1 -1
  777. package/lib/esm/tile/TileContent.js.map +1 -1
  778. package/lib/esm/tile/TileDrawArgs.js.map +1 -1
  779. package/lib/esm/tile/TileGeometryCollector.js.map +1 -1
  780. package/lib/esm/tile/TileParams.js.map +1 -1
  781. package/lib/esm/tile/TileRequest.js.map +1 -1
  782. package/lib/esm/tile/TileRequestChannel.js.map +1 -1
  783. package/lib/esm/tile/TileRequestChannels.js.map +1 -1
  784. package/lib/esm/tile/TileStorage.js.map +1 -1
  785. package/lib/esm/tile/TileTree.js.map +1 -1
  786. package/lib/esm/tile/TileTreeOwner.js.map +1 -1
  787. package/lib/esm/tile/TileTreeParams.js.map +1 -1
  788. package/lib/esm/tile/TileTreeReference.js.map +1 -1
  789. package/lib/esm/tile/TileTreeSupplier.js.map +1 -1
  790. package/lib/esm/tile/TileUsageMarker.js.map +1 -1
  791. package/lib/esm/tile/TileUser.js.map +1 -1
  792. package/lib/esm/tile/TileUserSet.js.map +1 -1
  793. package/lib/esm/tile/TiledGraphicsProvider.js.map +1 -1
  794. package/lib/esm/tile/ViewFlagOverrides.js.map +1 -1
  795. package/lib/esm/tile/internal.js.map +1 -1
  796. package/lib/esm/tile/map/ArcGISTileMap.js.map +1 -1
  797. package/lib/esm/tile/map/ArcGisUtilities.js.map +1 -1
  798. package/lib/esm/tile/map/BingElevation.js.map +1 -1
  799. package/lib/esm/tile/map/CesiumTerrainProvider.js.map +1 -1
  800. package/lib/esm/tile/map/EllipsoidTerrainProvider.js.map +1 -1
  801. package/lib/esm/tile/map/ImageryProviders/ArcGISImageryProvider.js.map +1 -1
  802. package/lib/esm/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
  803. package/lib/esm/tile/map/ImageryProviders/AzureMapsLayerImageryProvider.js.map +1 -1
  804. package/lib/esm/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
  805. package/lib/esm/tile/map/ImageryProviders/MapBoxLayerImageryProvider.js.map +1 -1
  806. package/lib/esm/tile/map/ImageryProviders/TileUrlImageryProvider.js.map +1 -1
  807. package/lib/esm/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
  808. package/lib/esm/tile/map/ImageryProviders/WmtsMapLayerImageryProvider.js.map +1 -1
  809. package/lib/esm/tile/map/MapCartoRectangle.js.map +1 -1
  810. package/lib/esm/tile/map/MapFeatureInfo.js.map +1 -1
  811. package/lib/esm/tile/map/MapLayerAuthentication.js.map +1 -1
  812. package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
  813. package/lib/esm/tile/map/MapLayerImageryProvider.js +2 -2
  814. package/lib/esm/tile/map/MapLayerImageryProvider.js.map +1 -1
  815. package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
  816. package/lib/esm/tile/map/MapLayerTileTreeReference.js.map +1 -1
  817. package/lib/esm/tile/map/MapTile.js.map +1 -1
  818. package/lib/esm/tile/map/MapTileAvailability.js.map +1 -1
  819. package/lib/esm/tile/map/MapTileLoader.js.map +1 -1
  820. package/lib/esm/tile/map/MapTiledGraphicsProvider.js.map +1 -1
  821. package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
  822. package/lib/esm/tile/map/QuadId.js.map +1 -1
  823. package/lib/esm/tile/map/TerrainMeshProvider.js.map +1 -1
  824. package/lib/esm/tile/map/TerrainProvider.js.map +1 -1
  825. package/lib/esm/tile/map/WmsCapabilities.js.map +1 -1
  826. package/lib/esm/tile/map/WmsUtilities.js.map +1 -1
  827. package/lib/esm/tile/map/WmtsCapabilities.js.map +1 -1
  828. package/lib/esm/tools/AccuDrawTool.js.map +1 -1
  829. package/lib/esm/tools/ClipViewTool.js.map +1 -1
  830. package/lib/esm/tools/EditManipulator.js.map +1 -1
  831. package/lib/esm/tools/ElementSetTool.js.map +1 -1
  832. package/lib/esm/tools/EventController.js.map +1 -1
  833. package/lib/esm/tools/IdleTool.js.map +1 -1
  834. package/lib/esm/tools/MeasureTool.js.map +1 -1
  835. package/lib/esm/tools/PrimitiveTool.js.map +1 -1
  836. package/lib/esm/tools/SelectTool.js.map +1 -1
  837. package/lib/esm/tools/ToolAdmin.js.map +1 -1
  838. package/lib/esm/tools/ToolAssistance.js.map +1 -1
  839. package/lib/esm/tools/ToolSettings.js.map +1 -1
  840. package/lib/esm/tools/ViewTool.js.map +1 -1
  841. package/lib/esm/webgl.js.map +1 -1
  842. package/lib/esm/workers/ImdlParser/Worker.js.map +1 -1
  843. package/lib/esm/workers/ImdlParser/webpack.config.js +40 -40
  844. package/lib/esm/workers/RegisterWorker.js.map +1 -1
  845. package/lib/public/assets/MapLayerSources.json +25 -25
  846. package/lib/public/images/cesium-ion.svg +92 -92
  847. package/lib/public/images/imodeljs-icon.svg +2 -2
  848. package/lib/public/locales/en/CoreTools.json +477 -477
  849. package/lib/public/locales/en/iModelJs.json +170 -170
  850. package/lib/public/scripts/checkbrowser.js +24 -24
  851. package/package.json +23 -22
@@ -1 +1 @@
1
- {"version":3,"file":"ModelSelectorState.js","sourceRoot":"","sources":["../../src/ModelSelectorState.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 { Id64, Id64Arg, Id64String, ObservableSet } from \"@itwin/core-bentley\";\r\nimport { ModelSelectorProps } from \"@itwin/core-common\";\r\nimport { ElementState } from \"./EntityState\";\r\nimport { IModelConnection } from \"./IModelConnection\";\r\n\r\n/** The state of a [ModelSelector]($backend). It holds a set of ids of GeometricModels for a [[SpatialViewState]].\r\n * It defines the set of [[ModelState]]s drawn within the view as a set of IDs.\r\n * @public\r\n * @extensions\r\n */\r\nexport class ModelSelectorState extends ElementState {\r\n public static override get className() { return \"ModelSelector\"; }\r\n\r\n private readonly _models = new ObservableSet<string>();\r\n\r\n /** The set of ModelIds of this ModelSelectorState */\r\n public get models(): Set<string> {\r\n return this._models;\r\n }\r\n\r\n public set models(models: Set<string>) {\r\n this.models.clear();\r\n for (const model of models)\r\n this.models.add(model);\r\n }\r\n\r\n /** @internal */\r\n public get observableModels(): ObservableSet<string> {\r\n return this._models;\r\n }\r\n\r\n constructor(props: ModelSelectorProps, iModel: IModelConnection) {\r\n super(props, iModel);\r\n if (props.models)\r\n props.models.forEach((model) => this.models.add(model));\r\n }\r\n\r\n /** The name of this ModelSelector */\r\n public get name(): string { return this.code.value; }\r\n\r\n public override toJSON(): ModelSelectorProps {\r\n const val: any = super.toJSON();\r\n val.models = [];\r\n this.models.forEach((model) => val.models.push(model));\r\n return val;\r\n }\r\n\r\n /** Determine if this model selector is logically equivalent to the specified model selector. Two model selectors are logically equivalent is\r\n * they have the same name and Id and contain the same set of models.\r\n * @param other The model selector to which to compare.\r\n * @returns true if the model selectors are logically equivalent.\r\n * @public\r\n */\r\n public equalState(other: ModelSelectorState): boolean {\r\n if (this.models.size !== other.models.size || this.id !== other.id || this.name !== other.name)\r\n return false;\r\n\r\n for (const model of this.models)\r\n if (!other.models.has(model))\r\n return false;\r\n\r\n return true;\r\n }\r\n\r\n /** Add one or more models to this ModelSelectorState */\r\n public addModels(arg: Id64Arg): void {\r\n for (const id of Id64.iterable(arg))\r\n this.models.add(id);\r\n }\r\n\r\n /** Drop one or more models from this ModelSelectorState */\r\n public dropModels(arg: Id64Arg): void {\r\n for (const id of Id64.iterable(arg))\r\n this.models.delete(id);\r\n }\r\n\r\n /** Determine whether this ModelSelectorState includes the specified modelId value */\r\n public has(id: string): boolean { return this.models.has(id); }\r\n\r\n /** Determine whether this ModelSelectorState includes the specified modelId */\r\n public containsModel(modelId: Id64String): boolean { return this.has(modelId.toString()); }\r\n\r\n /** Make sure all models referenced by this ModelSelectorState are loaded. */\r\n public async load(): Promise<void> {\r\n return this.iModel.models.load(this.models);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"ModelSelectorState.js","sourceRoot":"","sources":["../../src/ModelSelectorState.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Views\n */\n\nimport { Id64, Id64Arg, Id64String, ObservableSet } from \"@itwin/core-bentley\";\nimport { ModelSelectorProps } from \"@itwin/core-common\";\nimport { ElementState } from \"./EntityState\";\nimport { IModelConnection } from \"./IModelConnection\";\n\n/** The state of a [ModelSelector]($backend). It holds a set of ids of GeometricModels for a [[SpatialViewState]].\n * It defines the set of [[ModelState]]s drawn within the view as a set of IDs.\n * @public\n * @extensions\n */\nexport class ModelSelectorState extends ElementState {\n public static override get className() { return \"ModelSelector\"; }\n\n private readonly _models = new ObservableSet<string>();\n\n /** The set of ModelIds of this ModelSelectorState */\n public get models(): Set<string> {\n return this._models;\n }\n\n public set models(models: Set<string>) {\n this.models.clear();\n for (const model of models)\n this.models.add(model);\n }\n\n /** @internal */\n public get observableModels(): ObservableSet<string> {\n return this._models;\n }\n\n constructor(props: ModelSelectorProps, iModel: IModelConnection) {\n super(props, iModel);\n if (props.models)\n props.models.forEach((model) => this.models.add(model));\n }\n\n /** The name of this ModelSelector */\n public get name(): string { return this.code.value; }\n\n public override toJSON(): ModelSelectorProps {\n const val: any = super.toJSON();\n val.models = [];\n this.models.forEach((model) => val.models.push(model));\n return val;\n }\n\n /** Determine if this model selector is logically equivalent to the specified model selector. Two model selectors are logically equivalent is\n * they have the same name and Id and contain the same set of models.\n * @param other The model selector to which to compare.\n * @returns true if the model selectors are logically equivalent.\n * @public\n */\n public equalState(other: ModelSelectorState): boolean {\n if (this.models.size !== other.models.size || this.id !== other.id || this.name !== other.name)\n return false;\n\n for (const model of this.models)\n if (!other.models.has(model))\n return false;\n\n return true;\n }\n\n /** Add one or more models to this ModelSelectorState */\n public addModels(arg: Id64Arg): void {\n for (const id of Id64.iterable(arg))\n this.models.add(id);\n }\n\n /** Drop one or more models from this ModelSelectorState */\n public dropModels(arg: Id64Arg): void {\n for (const id of Id64.iterable(arg))\n this.models.delete(id);\n }\n\n /** Determine whether this ModelSelectorState includes the specified modelId value */\n public has(id: string): boolean { return this.models.has(id); }\n\n /** Determine whether this ModelSelectorState includes the specified modelId */\n public containsModel(modelId: Id64String): boolean { return this.has(modelId.toString()); }\n\n /** Make sure all models referenced by this ModelSelectorState are loaded. */\n public async load(): Promise<void> {\n return this.iModel.models.load(this.models);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"NativeApp.js","sourceRoot":"","sources":["../../src/NativeApp.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 NativeApp\r\n */\r\n\r\nimport { AsyncMethodsOf, BeEvent, GuidString, Logger, PromiseReturnType } from \"@itwin/core-bentley\";\r\nimport {\r\n BriefcaseDownloader, BriefcaseProps, IModelVersion, InternetConnectivityStatus, IpcSocketFrontend, LocalBriefcaseProps,\r\n NativeAppFunctions, nativeAppIpcStrings, NativeAppNotifications, OverriddenBy,\r\n RemoveFunction, RequestNewBriefcaseProps, StorageValue, SyncMode,\r\n} from \"@itwin/core-common\";\r\nimport { ProgressCallback } from \"./request/Request\";\r\nimport { FrontendLoggerCategory } from \"./common/FrontendLoggerCategory\";\r\nimport { IpcApp, IpcAppOptions, NotificationHandler } from \"./IpcApp\";\r\nimport { NativeAppLogger } from \"./NativeAppLogger\";\r\nimport { OnDownloadProgress } from \"./BriefcaseConnection\";\r\n\r\n/** Properties for specifying the BriefcaseId for downloading. May either specify a BriefcaseId directly (preferable) or, for\r\n * backwards compatibility, a [SyncMode]($common). If [SyncMode.PullAndPush]($common) is supplied, a new briefcaseId will be acquired.\r\n * @public\r\n */\r\nexport type DownloadBriefcaseId =\r\n { syncMode?: SyncMode, briefcaseId?: never } |\r\n { briefcaseId: number, syncMode?: never };\r\n\r\n/**\r\n* Options to download a briefcase\r\n* @public\r\n*/\r\nexport type DownloadBriefcaseOptions = DownloadBriefcaseId & {\r\n /** the full path for the briefcase file */\r\n fileName?: string;\r\n /** Function called regularly to report progress of download. */\r\n progressCallback?: OnDownloadProgress;\r\n /** interval for calling progress function, in milliseconds */\r\n progressInterval?: number;\r\n};\r\n\r\n/** NativeApp notifications from backend */\r\nclass NativeAppNotifyHandler extends NotificationHandler implements NativeAppNotifications {\r\n public get channelName() { return nativeAppIpcStrings.notifyChannel; }\r\n public notifyInternetConnectivityChanged(status: InternetConnectivityStatus) {\r\n Logger.logInfo(FrontendLoggerCategory.NativeApp, \"Internet connectivity changed\");\r\n NativeApp.onInternetConnectivityChanged.raiseEvent(status);\r\n }\r\n}\r\n\r\n/**\r\n * Options for [[NativeApp.startup]]\r\n * @public\r\n */\r\nexport interface NativeAppOpts extends IpcAppOptions {\r\n nativeApp?: {};\r\n}\r\n\r\n/**\r\n * The frontend of a native application\r\n * @see [Native Applications]($docs/learning/NativeApps.md)\r\n * @public\r\n */\r\nexport class NativeApp {\r\n private static _removeAppNotify?: RemoveFunction;\r\n\r\n /** @deprecated in 3.x. use nativeAppIpc */\r\n public static async callNativeHost<T extends AsyncMethodsOf<NativeAppFunctions>>(methodName: T, ...args: Parameters<NativeAppFunctions[T]>) {\r\n return IpcApp.callIpcChannel(nativeAppIpcStrings.channelName, methodName, ...args) as PromiseReturnType<NativeAppFunctions[T]>;\r\n }\r\n /** A Proxy to call one of the [NativeAppFunctions]($common) functions via IPC. */\r\n public static nativeAppIpc = IpcApp.makeIpcProxy<NativeAppFunctions>(nativeAppIpcStrings.channelName);\r\n\r\n private static _storages = new Map<string, Storage>();\r\n private static _onOnline = async () => {\r\n await NativeApp.setConnectivity(OverriddenBy.Browser, InternetConnectivityStatus.Online);\r\n };\r\n private static _onOffline = async () => {\r\n await NativeApp.setConnectivity(OverriddenBy.Browser, InternetConnectivityStatus.Offline);\r\n };\r\n private static async setConnectivity(by: OverriddenBy, status: InternetConnectivityStatus) {\r\n await this.nativeAppIpc.overrideInternetConnectivity(by, status);\r\n }\r\n private static hookBrowserConnectivityEvents() {\r\n if (typeof window === \"object\" && window.ononline && window.onoffline) {\r\n window.addEventListener(\"online\", this._onOnline);\r\n window.addEventListener(\"offline\", this._onOffline);\r\n }\r\n }\r\n private static unhookBrowserConnectivityEvents() {\r\n if (typeof window === \"object\" && window.ononline && window.onoffline) {\r\n window.removeEventListener(\"online\", this._onOnline);\r\n window.removeEventListener(\"offline\", this._onOffline);\r\n }\r\n }\r\n /** event called when internet connectivity changes, if known */\r\n public static onInternetConnectivityChanged = new BeEvent<(status: InternetConnectivityStatus) => void>();\r\n\r\n /** determine whether the app currently has internet connectivity, if known */\r\n public static async checkInternetConnectivity(): Promise<InternetConnectivityStatus> {\r\n return this.nativeAppIpc.checkInternetConnectivity();\r\n }\r\n /** @internal */\r\n public static async overrideInternetConnectivity(status: InternetConnectivityStatus): Promise<void> {\r\n return this.nativeAppIpc.overrideInternetConnectivity(OverriddenBy.User, status);\r\n }\r\n private static _isValid = false;\r\n public static get isValid(): boolean { return this._isValid; }\r\n\r\n /**\r\n * This is called by either ElectronApp.startup or MobileApp.startup - it should not be called directly\r\n * @internal\r\n */\r\n public static async startup(ipc: IpcSocketFrontend, opts?: NativeAppOpts) {\r\n await IpcApp.startup(ipc, opts);\r\n if (this._isValid)\r\n return;\r\n this._isValid = true;\r\n\r\n this._removeAppNotify = NativeAppNotifyHandler.register(); // receives notifications from backend\r\n NativeApp.hookBrowserConnectivityEvents();\r\n\r\n // initialize current online state.\r\n if (window.navigator.onLine) {\r\n await this.setConnectivity(OverriddenBy.Browser, window.navigator.onLine ? InternetConnectivityStatus.Online : InternetConnectivityStatus.Offline);\r\n }\r\n }\r\n\r\n /** @internal */\r\n public static async shutdown() {\r\n this._removeAppNotify?.();\r\n NativeApp.unhookBrowserConnectivityEvents();\r\n await NativeAppLogger.flush();\r\n await IpcApp.shutdown();\r\n this._isValid = false;\r\n }\r\n\r\n public static async requestDownloadBriefcase(iTwinId: string, iModelId: string, downloadOptions: DownloadBriefcaseOptions,\r\n asOf?: IModelVersion): Promise<BriefcaseDownloader>;\r\n\r\n /**\r\n * @deprecated in 3.6. `progress` argument is now deprecated, use [[DownloadBriefcaseOptions.progressCallback]] instead.\r\n */\r\n public static async requestDownloadBriefcase(iTwinId: string, iModelId: string, downloadOptions: DownloadBriefcaseOptions,\r\n // eslint-disable-next-line @typescript-eslint/unified-signatures, deprecation/deprecation\r\n asOf?: IModelVersion, progress?: ProgressCallback): Promise<BriefcaseDownloader>;\r\n\r\n public static async requestDownloadBriefcase(\r\n iTwinId: string,\r\n iModelId: string,\r\n downloadOptions: DownloadBriefcaseOptions,\r\n asOf: IModelVersion = IModelVersion.latest(),\r\n progress?: ProgressCallback, // eslint-disable-line deprecation/deprecation\r\n ): Promise<BriefcaseDownloader> {\r\n const shouldReportProgress = !!progress || !!downloadOptions.progressCallback;\r\n\r\n let stopProgressEvents = () => { };\r\n if (shouldReportProgress) {\r\n const handleProgress = (_evt: Event, data: { loaded: number, total: number }) => {\r\n progress?.(data);\r\n downloadOptions.progressCallback?.(data);\r\n };\r\n\r\n stopProgressEvents = IpcApp.addListener(`nativeApp.progress-${iModelId}`, handleProgress);\r\n }\r\n\r\n const briefcaseId = (undefined !== downloadOptions.briefcaseId) ? downloadOptions.briefcaseId :\r\n (downloadOptions.syncMode === SyncMode.PullOnly ? 0 : await this.nativeAppIpc.acquireNewBriefcaseId(iModelId));\r\n\r\n const fileName = downloadOptions.fileName ?? await this.getBriefcaseFileName({ briefcaseId, iModelId });\r\n const requestProps: RequestNewBriefcaseProps = { iModelId, briefcaseId, iTwinId, asOf: asOf.toJSON(), fileName };\r\n\r\n const doDownload = async (): Promise<void> => {\r\n try {\r\n await this.nativeAppIpc.downloadBriefcase(requestProps, shouldReportProgress, downloadOptions.progressInterval);\r\n } finally {\r\n stopProgressEvents();\r\n }\r\n };\r\n\r\n const requestCancel = async (): Promise<boolean> => {\r\n const status = await this.nativeAppIpc.requestCancelDownloadBriefcase(fileName);\r\n if (status)\r\n stopProgressEvents();\r\n return status;\r\n };\r\n\r\n return { briefcaseId, fileName, downloadPromise: doDownload(), requestCancel };\r\n }\r\n\r\n /** Get the full path filename for a briefcase within the briefcase cache */\r\n public static async getBriefcaseFileName(props: BriefcaseProps): Promise<string> {\r\n return this.nativeAppIpc.getBriefcaseFileName(props);\r\n }\r\n\r\n /** Delete an existing briefcase\r\n * @param fileName the briefcase fileName\r\n */\r\n public static async deleteBriefcase(fileName: string): Promise<void> {\r\n await this.nativeAppIpc.deleteBriefcaseFiles(fileName);\r\n }\r\n\r\n /** Get a list of all briefcase files held in the local briefcase cache directory */\r\n public static async getCachedBriefcases(iModelId?: GuidString): Promise<LocalBriefcaseProps[]> {\r\n return this.nativeAppIpc.getCachedBriefcases(iModelId);\r\n }\r\n\r\n /**\r\n * Open a [[Storage]]. Creates a new Storage with that name if it does not already exist.\r\n * @param name Should be a local filename without an extension.\r\n * @returns a Promise for the [[Storage]].\r\n */\r\n public static async openStorage(name: string): Promise<Storage> {\r\n if (this._storages.has(name))\r\n return this._storages.get(name)!;\r\n\r\n const storage = new Storage(await this.nativeAppIpc.storageMgrOpen(name));\r\n this._storages.set(storage.id, storage);\r\n return storage;\r\n }\r\n\r\n /**\r\n * Close a Storage and optionally delete it.\r\n * @param storage normally not call directly instead use Storage.close()\r\n * @param deleteStorage if true, delete the storage from disk after closing it.\r\n */\r\n public static async closeStorage(storage: Storage, deleteStorage: boolean = false): Promise<void> {\r\n if (!this._storages.has(storage.id))\r\n throw new Error(`Storage [Id=${storage.id}] not open`);\r\n\r\n await this.nativeAppIpc.storageMgrClose(storage.id, deleteStorage);\r\n this._storages.delete(storage.id);\r\n }\r\n\r\n /** Get the list of existing Storages on the local disk. */\r\n public static async getStorageNames(): Promise<string[]> {\r\n return NativeApp.nativeAppIpc.storageMgrNames();\r\n }\r\n}\r\n\r\n/**\r\n * A local disk-based cache for key value pairs for NativeApps.\r\n * @note This should be used only for local caching, since its not guaranteed to exist permanently.\r\n * @public\r\n */\r\nexport class Storage {\r\n constructor(public readonly id: string) { }\r\n\r\n /** get the type of a value for a key, or undefined if not present. */\r\n public async getValueType(key: string): Promise<\"number\" | \"string\" | \"boolean\" | \"Uint8Array\" | \"null\" | undefined> {\r\n return NativeApp.nativeAppIpc.storageGetValueType(this.id, key);\r\n }\r\n\r\n /** Get the value for a key */\r\n public async getData(key: string): Promise<StorageValue> {\r\n return NativeApp.nativeAppIpc.storageGet(this.id, key);\r\n }\r\n\r\n /** Set value for a key */\r\n public async setData(key: string, value: StorageValue): Promise<void> {\r\n return NativeApp.nativeAppIpc.storageSet(this.id, key, value);\r\n }\r\n\r\n /**\r\n * Return an array of all keys in this Storage.\r\n * @note This can be expensive, depending on the number of keys present.\r\n */\r\n public async getKeys(): Promise<string[]> {\r\n return NativeApp.nativeAppIpc.storageKeys(this.id);\r\n }\r\n\r\n /** Remove a key and its data. */\r\n public async removeData(key: string): Promise<void> {\r\n return NativeApp.nativeAppIpc.storageRemove(this.id, key);\r\n }\r\n\r\n /** Remove all keys and their data. */\r\n public async removeAll(): Promise<void> {\r\n return NativeApp.nativeAppIpc.storageRemoveAll(this.id);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"NativeApp.js","sourceRoot":"","sources":["../../src/NativeApp.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module NativeApp\n */\n\nimport { AsyncMethodsOf, BeEvent, GuidString, Logger, PromiseReturnType } from \"@itwin/core-bentley\";\nimport {\n BriefcaseDownloader, BriefcaseProps, IModelVersion, InternetConnectivityStatus, IpcSocketFrontend, LocalBriefcaseProps,\n NativeAppFunctions, nativeAppIpcStrings, NativeAppNotifications, OverriddenBy,\n RemoveFunction, RequestNewBriefcaseProps, StorageValue, SyncMode,\n} from \"@itwin/core-common\";\nimport { ProgressCallback } from \"./request/Request\";\nimport { FrontendLoggerCategory } from \"./common/FrontendLoggerCategory\";\nimport { IpcApp, IpcAppOptions, NotificationHandler } from \"./IpcApp\";\nimport { NativeAppLogger } from \"./NativeAppLogger\";\nimport { OnDownloadProgress } from \"./BriefcaseConnection\";\n\n/** Properties for specifying the BriefcaseId for downloading. May either specify a BriefcaseId directly (preferable) or, for\n * backwards compatibility, a [SyncMode]($common). If [SyncMode.PullAndPush]($common) is supplied, a new briefcaseId will be acquired.\n * @public\n */\nexport type DownloadBriefcaseId =\n { syncMode?: SyncMode, briefcaseId?: never } |\n { briefcaseId: number, syncMode?: never };\n\n/**\n* Options to download a briefcase\n* @public\n*/\nexport type DownloadBriefcaseOptions = DownloadBriefcaseId & {\n /** the full path for the briefcase file */\n fileName?: string;\n /** Function called regularly to report progress of download. */\n progressCallback?: OnDownloadProgress;\n /** interval for calling progress function, in milliseconds */\n progressInterval?: number;\n};\n\n/** NativeApp notifications from backend */\nclass NativeAppNotifyHandler extends NotificationHandler implements NativeAppNotifications {\n public get channelName() { return nativeAppIpcStrings.notifyChannel; }\n public notifyInternetConnectivityChanged(status: InternetConnectivityStatus) {\n Logger.logInfo(FrontendLoggerCategory.NativeApp, \"Internet connectivity changed\");\n NativeApp.onInternetConnectivityChanged.raiseEvent(status);\n }\n}\n\n/**\n * Options for [[NativeApp.startup]]\n * @public\n */\nexport interface NativeAppOpts extends IpcAppOptions {\n nativeApp?: {};\n}\n\n/**\n * The frontend of a native application\n * @see [Native Applications]($docs/learning/NativeApps.md)\n * @public\n */\nexport class NativeApp {\n private static _removeAppNotify?: RemoveFunction;\n\n /** @deprecated in 3.x. use nativeAppIpc */\n public static async callNativeHost<T extends AsyncMethodsOf<NativeAppFunctions>>(methodName: T, ...args: Parameters<NativeAppFunctions[T]>) {\n return IpcApp.callIpcChannel(nativeAppIpcStrings.channelName, methodName, ...args) as PromiseReturnType<NativeAppFunctions[T]>;\n }\n /** A Proxy to call one of the [NativeAppFunctions]($common) functions via IPC. */\n public static nativeAppIpc = IpcApp.makeIpcProxy<NativeAppFunctions>(nativeAppIpcStrings.channelName);\n\n private static _storages = new Map<string, Storage>();\n private static _onOnline = async () => {\n await NativeApp.setConnectivity(OverriddenBy.Browser, InternetConnectivityStatus.Online);\n };\n private static _onOffline = async () => {\n await NativeApp.setConnectivity(OverriddenBy.Browser, InternetConnectivityStatus.Offline);\n };\n private static async setConnectivity(by: OverriddenBy, status: InternetConnectivityStatus) {\n await this.nativeAppIpc.overrideInternetConnectivity(by, status);\n }\n private static hookBrowserConnectivityEvents() {\n if (typeof window === \"object\" && window.ononline && window.onoffline) {\n window.addEventListener(\"online\", this._onOnline);\n window.addEventListener(\"offline\", this._onOffline);\n }\n }\n private static unhookBrowserConnectivityEvents() {\n if (typeof window === \"object\" && window.ononline && window.onoffline) {\n window.removeEventListener(\"online\", this._onOnline);\n window.removeEventListener(\"offline\", this._onOffline);\n }\n }\n /** event called when internet connectivity changes, if known */\n public static onInternetConnectivityChanged = new BeEvent<(status: InternetConnectivityStatus) => void>();\n\n /** determine whether the app currently has internet connectivity, if known */\n public static async checkInternetConnectivity(): Promise<InternetConnectivityStatus> {\n return this.nativeAppIpc.checkInternetConnectivity();\n }\n /** @internal */\n public static async overrideInternetConnectivity(status: InternetConnectivityStatus): Promise<void> {\n return this.nativeAppIpc.overrideInternetConnectivity(OverriddenBy.User, status);\n }\n private static _isValid = false;\n public static get isValid(): boolean { return this._isValid; }\n\n /**\n * This is called by either ElectronApp.startup or MobileApp.startup - it should not be called directly\n * @internal\n */\n public static async startup(ipc: IpcSocketFrontend, opts?: NativeAppOpts) {\n await IpcApp.startup(ipc, opts);\n if (this._isValid)\n return;\n this._isValid = true;\n\n this._removeAppNotify = NativeAppNotifyHandler.register(); // receives notifications from backend\n NativeApp.hookBrowserConnectivityEvents();\n\n // initialize current online state.\n if (window.navigator.onLine) {\n await this.setConnectivity(OverriddenBy.Browser, window.navigator.onLine ? InternetConnectivityStatus.Online : InternetConnectivityStatus.Offline);\n }\n }\n\n /** @internal */\n public static async shutdown() {\n this._removeAppNotify?.();\n NativeApp.unhookBrowserConnectivityEvents();\n await NativeAppLogger.flush();\n await IpcApp.shutdown();\n this._isValid = false;\n }\n\n public static async requestDownloadBriefcase(iTwinId: string, iModelId: string, downloadOptions: DownloadBriefcaseOptions,\n asOf?: IModelVersion): Promise<BriefcaseDownloader>;\n\n /**\n * @deprecated in 3.6. `progress` argument is now deprecated, use [[DownloadBriefcaseOptions.progressCallback]] instead.\n */\n public static async requestDownloadBriefcase(iTwinId: string, iModelId: string, downloadOptions: DownloadBriefcaseOptions,\n // eslint-disable-next-line @typescript-eslint/unified-signatures, deprecation/deprecation\n asOf?: IModelVersion, progress?: ProgressCallback): Promise<BriefcaseDownloader>;\n\n public static async requestDownloadBriefcase(\n iTwinId: string,\n iModelId: string,\n downloadOptions: DownloadBriefcaseOptions,\n asOf: IModelVersion = IModelVersion.latest(),\n progress?: ProgressCallback, // eslint-disable-line deprecation/deprecation\n ): Promise<BriefcaseDownloader> {\n const shouldReportProgress = !!progress || !!downloadOptions.progressCallback;\n\n let stopProgressEvents = () => { };\n if (shouldReportProgress) {\n const handleProgress = (_evt: Event, data: { loaded: number, total: number }) => {\n progress?.(data);\n downloadOptions.progressCallback?.(data);\n };\n\n stopProgressEvents = IpcApp.addListener(`nativeApp.progress-${iModelId}`, handleProgress);\n }\n\n const briefcaseId = (undefined !== downloadOptions.briefcaseId) ? downloadOptions.briefcaseId :\n (downloadOptions.syncMode === SyncMode.PullOnly ? 0 : await this.nativeAppIpc.acquireNewBriefcaseId(iModelId));\n\n const fileName = downloadOptions.fileName ?? await this.getBriefcaseFileName({ briefcaseId, iModelId });\n const requestProps: RequestNewBriefcaseProps = { iModelId, briefcaseId, iTwinId, asOf: asOf.toJSON(), fileName };\n\n const doDownload = async (): Promise<void> => {\n try {\n await this.nativeAppIpc.downloadBriefcase(requestProps, shouldReportProgress, downloadOptions.progressInterval);\n } finally {\n stopProgressEvents();\n }\n };\n\n const requestCancel = async (): Promise<boolean> => {\n const status = await this.nativeAppIpc.requestCancelDownloadBriefcase(fileName);\n if (status)\n stopProgressEvents();\n return status;\n };\n\n return { briefcaseId, fileName, downloadPromise: doDownload(), requestCancel };\n }\n\n /** Get the full path filename for a briefcase within the briefcase cache */\n public static async getBriefcaseFileName(props: BriefcaseProps): Promise<string> {\n return this.nativeAppIpc.getBriefcaseFileName(props);\n }\n\n /** Delete an existing briefcase\n * @param fileName the briefcase fileName\n */\n public static async deleteBriefcase(fileName: string): Promise<void> {\n await this.nativeAppIpc.deleteBriefcaseFiles(fileName);\n }\n\n /** Get a list of all briefcase files held in the local briefcase cache directory */\n public static async getCachedBriefcases(iModelId?: GuidString): Promise<LocalBriefcaseProps[]> {\n return this.nativeAppIpc.getCachedBriefcases(iModelId);\n }\n\n /**\n * Open a [[Storage]]. Creates a new Storage with that name if it does not already exist.\n * @param name Should be a local filename without an extension.\n * @returns a Promise for the [[Storage]].\n */\n public static async openStorage(name: string): Promise<Storage> {\n if (this._storages.has(name))\n return this._storages.get(name)!;\n\n const storage = new Storage(await this.nativeAppIpc.storageMgrOpen(name));\n this._storages.set(storage.id, storage);\n return storage;\n }\n\n /**\n * Close a Storage and optionally delete it.\n * @param storage normally not call directly instead use Storage.close()\n * @param deleteStorage if true, delete the storage from disk after closing it.\n */\n public static async closeStorage(storage: Storage, deleteStorage: boolean = false): Promise<void> {\n if (!this._storages.has(storage.id))\n throw new Error(`Storage [Id=${storage.id}] not open`);\n\n await this.nativeAppIpc.storageMgrClose(storage.id, deleteStorage);\n this._storages.delete(storage.id);\n }\n\n /** Get the list of existing Storages on the local disk. */\n public static async getStorageNames(): Promise<string[]> {\n return NativeApp.nativeAppIpc.storageMgrNames();\n }\n}\n\n/**\n * A local disk-based cache for key value pairs for NativeApps.\n * @note This should be used only for local caching, since its not guaranteed to exist permanently.\n * @public\n */\nexport class Storage {\n constructor(public readonly id: string) { }\n\n /** get the type of a value for a key, or undefined if not present. */\n public async getValueType(key: string): Promise<\"number\" | \"string\" | \"boolean\" | \"Uint8Array\" | \"null\" | undefined> {\n return NativeApp.nativeAppIpc.storageGetValueType(this.id, key);\n }\n\n /** Get the value for a key */\n public async getData(key: string): Promise<StorageValue> {\n return NativeApp.nativeAppIpc.storageGet(this.id, key);\n }\n\n /** Set value for a key */\n public async setData(key: string, value: StorageValue): Promise<void> {\n return NativeApp.nativeAppIpc.storageSet(this.id, key, value);\n }\n\n /**\n * Return an array of all keys in this Storage.\n * @note This can be expensive, depending on the number of keys present.\n */\n public async getKeys(): Promise<string[]> {\n return NativeApp.nativeAppIpc.storageKeys(this.id);\n }\n\n /** Remove a key and its data. */\n public async removeData(key: string): Promise<void> {\n return NativeApp.nativeAppIpc.storageRemove(this.id, key);\n }\n\n /** Remove all keys and their data. */\n public async removeAll(): Promise<void> {\n return NativeApp.nativeAppIpc.storageRemoveAll(this.id);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"NativeAppLogger.js","sourceRoot":"","sources":["../../src/NativeAppLogger.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 NativeApp\r\n */\r\n\r\nimport { BentleyError, Logger, LoggingMetaData, LogLevel } from \"@itwin/core-bentley\";\r\nimport { IpcApp } from \"./IpcApp\";\r\n\r\n/**\r\n * Describe log message\r\n * @internal\r\n */\r\ninterface LogMessage {\r\n timestamp: number;\r\n level: LogLevel;\r\n category: string;\r\n message: string;\r\n metaData: any;\r\n}\r\n/**\r\n * NativeAppLogger send log message from frontend to backend. It works on native app only.\r\n * @internal\r\n */\r\nexport class NativeAppLogger {\r\n private static _messages: LogMessage[] = [];\r\n private static _onFlushed: Promise<void> | undefined;\r\n private static flushToBackend() {\r\n if (!this._onFlushed && this._messages.length > 0) {\r\n this._onFlushed = new Promise<void>(() => this._onFlushed = undefined);\r\n const messages = this._messages;\r\n this._messages = [];\r\n setTimeout(async () => this.flushBucket(messages));\r\n }\r\n }\r\n\r\n private static async flushBucket(messages: LogMessage[]): Promise<void> {\r\n try {\r\n while (messages.length > 0) {\r\n const msg: LogMessage = messages.shift()!;\r\n await IpcApp.appFunctionIpc.log(msg.timestamp, msg.level, msg.category, msg.message, { ...msg.metaData });\r\n }\r\n } finally {\r\n // Put back unsent messages.\r\n this._messages.unshift(...messages);\r\n if (this._messages.length > 0) {\r\n this.flushToBackend();\r\n } else {\r\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\r\n Promise.resolve(this._onFlushed);\r\n }\r\n }\r\n }\r\n\r\n private static log(level: LogLevel, category: string, message: string, metaData: LoggingMetaData) {\r\n this._messages.push({ timestamp: Date.now(), level, category, message, metaData: BentleyError.getMetaData(metaData) });\r\n this.flushToBackend();\r\n }\r\n\r\n public static logError(category: string, message: string, metaData: LoggingMetaData) {\r\n this.log(LogLevel.Error, category, message, metaData);\r\n }\r\n\r\n public static logInfo(category: string, message: string, metaData: LoggingMetaData) {\r\n this.log(LogLevel.Info, category, message, metaData);\r\n }\r\n\r\n public static logTrace(category: string, message: string, metaData: LoggingMetaData) {\r\n this.log(LogLevel.Trace, category, message, metaData);\r\n }\r\n\r\n public static logWarning(category: string, message: string, metaData: LoggingMetaData) {\r\n this.log(LogLevel.Warning, category, message, metaData);\r\n }\r\n\r\n public static async flush(): Promise<void> {\r\n this.flushToBackend();\r\n if (this._onFlushed) {\r\n return this._onFlushed;\r\n }\r\n }\r\n\r\n public static initialize() {\r\n const errCb = (category: string, message: string, metaData: LoggingMetaData) => this.logError(category, message, metaData);\r\n const warnCb = (category: string, message: string, metaData: LoggingMetaData) => this.logWarning(category, message, metaData);\r\n const infoCb = (category: string, message: string, metaData: LoggingMetaData) => this.logInfo(category, message, metaData);\r\n const traceCb = (category: string, message: string, metaData: LoggingMetaData) => this.logTrace(category, message, metaData);\r\n\r\n Logger.initialize(errCb, warnCb, infoCb, traceCb);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"NativeAppLogger.js","sourceRoot":"","sources":["../../src/NativeAppLogger.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module NativeApp\n */\n\nimport { BentleyError, Logger, LoggingMetaData, LogLevel } from \"@itwin/core-bentley\";\nimport { IpcApp } from \"./IpcApp\";\n\n/**\n * Describe log message\n * @internal\n */\ninterface LogMessage {\n timestamp: number;\n level: LogLevel;\n category: string;\n message: string;\n metaData: any;\n}\n/**\n * NativeAppLogger send log message from frontend to backend. It works on native app only.\n * @internal\n */\nexport class NativeAppLogger {\n private static _messages: LogMessage[] = [];\n private static _onFlushed: Promise<void> | undefined;\n private static flushToBackend() {\n if (!this._onFlushed && this._messages.length > 0) {\n this._onFlushed = new Promise<void>(() => this._onFlushed = undefined);\n const messages = this._messages;\n this._messages = [];\n setTimeout(async () => this.flushBucket(messages));\n }\n }\n\n private static async flushBucket(messages: LogMessage[]): Promise<void> {\n try {\n while (messages.length > 0) {\n const msg: LogMessage = messages.shift()!;\n await IpcApp.appFunctionIpc.log(msg.timestamp, msg.level, msg.category, msg.message, { ...msg.metaData });\n }\n } finally {\n // Put back unsent messages.\n this._messages.unshift(...messages);\n if (this._messages.length > 0) {\n this.flushToBackend();\n } else {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n Promise.resolve(this._onFlushed);\n }\n }\n }\n\n private static log(level: LogLevel, category: string, message: string, metaData: LoggingMetaData) {\n this._messages.push({ timestamp: Date.now(), level, category, message, metaData: BentleyError.getMetaData(metaData) });\n this.flushToBackend();\n }\n\n public static logError(category: string, message: string, metaData: LoggingMetaData) {\n this.log(LogLevel.Error, category, message, metaData);\n }\n\n public static logInfo(category: string, message: string, metaData: LoggingMetaData) {\n this.log(LogLevel.Info, category, message, metaData);\n }\n\n public static logTrace(category: string, message: string, metaData: LoggingMetaData) {\n this.log(LogLevel.Trace, category, message, metaData);\n }\n\n public static logWarning(category: string, message: string, metaData: LoggingMetaData) {\n this.log(LogLevel.Warning, category, message, metaData);\n }\n\n public static async flush(): Promise<void> {\n this.flushToBackend();\n if (this._onFlushed) {\n return this._onFlushed;\n }\n }\n\n public static initialize() {\n const errCb = (category: string, message: string, metaData: LoggingMetaData) => this.logError(category, message, metaData);\n const warnCb = (category: string, message: string, metaData: LoggingMetaData) => this.logWarning(category, message, metaData);\n const infoCb = (category: string, message: string, metaData: LoggingMetaData) => this.logInfo(category, message, metaData);\n const traceCb = (category: string, message: string, metaData: LoggingMetaData) => this.logTrace(category, message, metaData);\n\n Logger.initialize(errCb, warnCb, infoCb, traceCb);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"NoRenderApp.js","sourceRoot":"","sources":["../../src/NoRenderApp.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAoB,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,OAAO,UAAW,SAAQ,YAAY;IAC1C,IAAW,gBAAgB,KAAa,OAAO,CAAC,CAAC,CAAC,CAAC;IACnD,IAAW,gBAAgB,CAAC,SAAiB,IAAI,CAAC;IAClD,IAAW,YAAY,KAAK,OAAO,SAAgB,CAAC,CAAC,CAAC;IACtD,IAAW,QAAQ,KAAe,OAAO,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC1D,IAAW,yBAAyB,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IACjE,IAAoB,iBAAiB,KAAwC,OAAO,SAAS,CAAC,CAAC,CAAC;IAChG,IAAoB,iBAAiB,CAAC,SAA4C,IAAI,CAAC;IAChF,SAAS,KAAW,CAAC;IACZ,KAAK,KAAW,CAAC;IAC1B,WAAW,KAAW,CAAC;IACvB,cAAc,KAAW,CAAC;IAC1B,iBAAiB,KAAW,CAAC;IAC7B,gBAAgB,KAAW,CAAC;IAC5B,SAAS,CAAC,mBAA4B,IAAU,CAAC;IACxC,wBAAwB,KAAW,CAAC;IACpC,YAAY,KAAW,CAAC;IACxB,UAAU,KAAW,CAAC;IAC/B,WAAW,KAAW,CAAC;IACd,SAAS,KAAW,CAAC;IACrB,OAAO,KAAW,CAAC;IAC5B,cAAc,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IAC3C,UAAU,KAAW,CAAC;IAC7B,IAAW,kBAAkB,KAAuB,OAAO,EAAE,CAAC,CAAC,CAAC;IAChE,IAAW,kBAAkB,CAAC,QAA0B,IAAI,CAAC;CAC9D;AAED;;;;GAIG;AACH,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAChD,IAAW,OAAO,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IACxC,UAAU,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IACvC,YAAY,KAAK,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC;IAC3C,qBAAqB,KAAK,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC;IACpD,aAAa,KAAK,OAAO,SAAgB,CAAC,CAAC,CAAC;IAC5C,iBAAiB,KAAK,OAAO,SAAgB,CAAC,CAAC,CAAC;IAChD,mBAAmB,KAAK,OAAO,SAAgB,CAAC,CAAC,CAAC;IAClD,WAAW,KAAK,OAAO,SAAgB,CAAC,CAAC,CAAC;IAC1C,OAAO,KAAK,CAAC;IACpB,gBAAuB,KAAK,EAAE,CAAC,CAAC,CAAC;IACjB,mBAAmB,KAAK,OAAO,SAAS,CAAC,CAAC,CAAC;CAC5D;AAED;;;;;GAKG;AACH,MAAM,OAAO,WAAW;IACtB;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAuB;QACjD,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACjE,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\r\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\r\n* See LICENSE.md in the project root for license terms and full copyright notice.\r\n*--------------------------------------------------------------------------------------------*/\r\n/** @packageDocumentation\r\n * @module IModelApp\r\n */\r\n\r\nimport { EmptyLocalization } from \"@itwin/core-common\";\r\nimport { IModelApp, IModelAppOptions } from \"./IModelApp\";\r\nimport { AnimationBranchStates } from \"./render/GraphicBranch\";\r\nimport { RenderSystem } from \"./render/RenderSystem\";\r\nimport { RenderTarget } from \"./render/RenderTarget\";\r\nimport { ViewRect } from \"./common/ViewRect\";\r\n\r\n/**\r\n * A RenderTarget for applications that must run in environments where WebGL is not present.\r\n * This is typically used in tests.\r\n * @internal\r\n */\r\nexport class NullTarget extends RenderTarget {\r\n public get analysisFraction(): number { return 0; }\r\n public set analysisFraction(_fraction: number) { }\r\n public get renderSystem() { return undefined as any; }\r\n public get viewRect(): ViewRect { return new ViewRect(); }\r\n public get wantInvertBlackBackground(): boolean { return false; }\r\n public override get animationBranches(): AnimationBranchStates | undefined { return undefined; }\r\n public override set animationBranches(_branches: AnimationBranchStates | undefined) { }\r\n public onDestroy(): void { }\r\n public override reset(): void { }\r\n public changeScene(): void { }\r\n public changeDynamics(): void { }\r\n public changeDecorations(): void { }\r\n public changeRenderPlan(): void { }\r\n public drawFrame(_sceneMilSecElapsed?: number): void { }\r\n public override overrideFeatureSymbology(): void { }\r\n public override setHiliteSet(): void { }\r\n public override setFlashed(): void { }\r\n public setViewRect(): void { }\r\n public override onResized(): void { }\r\n public override dispose(): void { }\r\n public updateViewRect(): boolean { return false; }\r\n public readPixels(): void { }\r\n public get screenSpaceEffects(): Iterable<string> { return []; }\r\n public set screenSpaceEffects(_effects: Iterable<string>) { }\r\n}\r\n\r\n/**\r\n * A RenderSystem for applications that must run in environments where WebGL is not present.\r\n * This is typically used in tests.\r\n * @internal\r\n */\r\nexport class NullRenderSystem extends RenderSystem {\r\n public get isValid(): boolean { return false; }\r\n public doIdleWork(): boolean { return false; }\r\n public createTarget() { return new NullTarget(); }\r\n public createOffscreenTarget() { return new NullTarget(); }\r\n public createGraphic() { return undefined as any; }\r\n public createGraphicList() { return undefined as any; }\r\n public createGraphicBranch() { return undefined as any; }\r\n public createBatch() { return undefined as any; }\r\n public dispose() { }\r\n public constructor() { super(); }\r\n public override createRenderGraphic() { return undefined; }\r\n}\r\n\r\n/** A utility class intended for applications (primarily test-runners) that run in environments that lack support for WebGL.\r\n * It installs a [[RenderSystem]] that produces no graphics.\r\n * Use [[NoRenderApp.startup]] instead of [[IModelApp.startup]] to initialize your application frontend.\r\n * You may then use the [[IModelApp]] API as normal.\r\n * @public\r\n */\r\nexport class NoRenderApp {\r\n /** Initializes [[IModelApp]] with a [[RenderSystem]] that produces no graphics.\r\n * Use this in place of [[IModelApp.startup]], then proceed to use [[IModelApp]]'s API as normal.\r\n */\r\n public static async startup(opts?: IModelAppOptions): Promise<void> {\r\n opts = opts ? opts : {};\r\n opts.renderSys = new NullRenderSystem();\r\n opts.noRender = true;\r\n opts.localization = opts.localization ?? new EmptyLocalization();\r\n await IModelApp.startup(opts);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"NoRenderApp.js","sourceRoot":"","sources":["../../src/NoRenderApp.ts"],"names":[],"mappings":"AAAA;;;+FAG+F;AAC/F;;GAEG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAoB,MAAM,aAAa,CAAC;AAE1D,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAE7C;;;;GAIG;AACH,MAAM,OAAO,UAAW,SAAQ,YAAY;IAC1C,IAAW,gBAAgB,KAAa,OAAO,CAAC,CAAC,CAAC,CAAC;IACnD,IAAW,gBAAgB,CAAC,SAAiB,IAAI,CAAC;IAClD,IAAW,YAAY,KAAK,OAAO,SAAgB,CAAC,CAAC,CAAC;IACtD,IAAW,QAAQ,KAAe,OAAO,IAAI,QAAQ,EAAE,CAAC,CAAC,CAAC;IAC1D,IAAW,yBAAyB,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IACjE,IAAoB,iBAAiB,KAAwC,OAAO,SAAS,CAAC,CAAC,CAAC;IAChG,IAAoB,iBAAiB,CAAC,SAA4C,IAAI,CAAC;IAChF,SAAS,KAAW,CAAC;IACZ,KAAK,KAAW,CAAC;IAC1B,WAAW,KAAW,CAAC;IACvB,cAAc,KAAW,CAAC;IAC1B,iBAAiB,KAAW,CAAC;IAC7B,gBAAgB,KAAW,CAAC;IAC5B,SAAS,CAAC,mBAA4B,IAAU,CAAC;IACxC,wBAAwB,KAAW,CAAC;IACpC,YAAY,KAAW,CAAC;IACxB,UAAU,KAAW,CAAC;IAC/B,WAAW,KAAW,CAAC;IACd,SAAS,KAAW,CAAC;IACrB,OAAO,KAAW,CAAC;IAC5B,cAAc,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IAC3C,UAAU,KAAW,CAAC;IAC7B,IAAW,kBAAkB,KAAuB,OAAO,EAAE,CAAC,CAAC,CAAC;IAChE,IAAW,kBAAkB,CAAC,QAA0B,IAAI,CAAC;CAC9D;AAED;;;;GAIG;AACH,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IAChD,IAAW,OAAO,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IACxC,UAAU,KAAc,OAAO,KAAK,CAAC,CAAC,CAAC;IACvC,YAAY,KAAK,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC;IAC3C,qBAAqB,KAAK,OAAO,IAAI,UAAU,EAAE,CAAC,CAAC,CAAC;IACpD,aAAa,KAAK,OAAO,SAAgB,CAAC,CAAC,CAAC;IAC5C,iBAAiB,KAAK,OAAO,SAAgB,CAAC,CAAC,CAAC;IAChD,mBAAmB,KAAK,OAAO,SAAgB,CAAC,CAAC,CAAC;IAClD,WAAW,KAAK,OAAO,SAAgB,CAAC,CAAC,CAAC;IAC1C,OAAO,KAAK,CAAC;IACpB,gBAAuB,KAAK,EAAE,CAAC,CAAC,CAAC;IACjB,mBAAmB,KAAK,OAAO,SAAS,CAAC,CAAC,CAAC;CAC5D;AAED;;;;;GAKG;AACH,MAAM,OAAO,WAAW;IACtB;;OAEG;IACI,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAuB;QACjD,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,EAAE,CAAC;QACxC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,IAAI,IAAI,iBAAiB,EAAE,CAAC;QACjE,MAAM,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;CACF","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module IModelApp\n */\n\nimport { EmptyLocalization } from \"@itwin/core-common\";\nimport { IModelApp, IModelAppOptions } from \"./IModelApp\";\nimport { AnimationBranchStates } from \"./render/GraphicBranch\";\nimport { RenderSystem } from \"./render/RenderSystem\";\nimport { RenderTarget } from \"./render/RenderTarget\";\nimport { ViewRect } from \"./common/ViewRect\";\n\n/**\n * A RenderTarget for applications that must run in environments where WebGL is not present.\n * This is typically used in tests.\n * @internal\n */\nexport class NullTarget extends RenderTarget {\n public get analysisFraction(): number { return 0; }\n public set analysisFraction(_fraction: number) { }\n public get renderSystem() { return undefined as any; }\n public get viewRect(): ViewRect { return new ViewRect(); }\n public get wantInvertBlackBackground(): boolean { return false; }\n public override get animationBranches(): AnimationBranchStates | undefined { return undefined; }\n public override set animationBranches(_branches: AnimationBranchStates | undefined) { }\n public onDestroy(): void { }\n public override reset(): void { }\n public changeScene(): void { }\n public changeDynamics(): void { }\n public changeDecorations(): void { }\n public changeRenderPlan(): void { }\n public drawFrame(_sceneMilSecElapsed?: number): void { }\n public override overrideFeatureSymbology(): void { }\n public override setHiliteSet(): void { }\n public override setFlashed(): void { }\n public setViewRect(): void { }\n public override onResized(): void { }\n public override dispose(): void { }\n public updateViewRect(): boolean { return false; }\n public readPixels(): void { }\n public get screenSpaceEffects(): Iterable<string> { return []; }\n public set screenSpaceEffects(_effects: Iterable<string>) { }\n}\n\n/**\n * A RenderSystem for applications that must run in environments where WebGL is not present.\n * This is typically used in tests.\n * @internal\n */\nexport class NullRenderSystem extends RenderSystem {\n public get isValid(): boolean { return false; }\n public doIdleWork(): boolean { return false; }\n public createTarget() { return new NullTarget(); }\n public createOffscreenTarget() { return new NullTarget(); }\n public createGraphic() { return undefined as any; }\n public createGraphicList() { return undefined as any; }\n public createGraphicBranch() { return undefined as any; }\n public createBatch() { return undefined as any; }\n public dispose() { }\n public constructor() { super(); }\n public override createRenderGraphic() { return undefined; }\n}\n\n/** A utility class intended for applications (primarily test-runners) that run in environments that lack support for WebGL.\n * It installs a [[RenderSystem]] that produces no graphics.\n * Use [[NoRenderApp.startup]] instead of [[IModelApp.startup]] to initialize your application frontend.\n * You may then use the [[IModelApp]] API as normal.\n * @public\n */\nexport class NoRenderApp {\n /** Initializes [[IModelApp]] with a [[RenderSystem]] that produces no graphics.\n * Use this in place of [[IModelApp.startup]], then proceed to use [[IModelApp]]'s API as normal.\n */\n public static async startup(opts?: IModelAppOptions): Promise<void> {\n opts = opts ? opts : {};\n opts.renderSys = new NullRenderSystem();\n opts.noRender = true;\n opts.localization = opts.localization ?? new EmptyLocalization();\n await IModelApp.startup(opts);\n }\n}\n"]}
@@ -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 * @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"]}
1
+ {"version":3,"file":"NotificationManager.js","sourceRoot":"","sources":["../../src/NotificationManager.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Notifications\n */\nimport { BeDuration } from \"@itwin/core-bentley\";\nimport { Point2d, XAndY } from \"@itwin/core-geometry\";\nimport { DisplayMessageType, MessagePresenter, MessageSeverity, RelativePosition } from \"@itwin/appui-abstract\";\nimport { IModelApp } from \"./IModelApp\";\nimport { ToolAssistanceInstructions } from \"./tools/ToolAssistance\";\n\n// cSpell:words messagebox\n\n/** Describes the type and behavior of a [[NotifyMessageDetails]].\n * @public\n * @extensions\n */\nexport enum OutputMessageType {\n /** Temporary message box displays at the top or bottom of the screen then disappears automatically. */\n Toast = 0,\n /** Message box displays near the cursor over a Viewport and is closed by calling `closePointerMessage`. */\n Pointer = 1,\n /** Message box displays at the top or bottom of the screen and contains a Close button. */\n Sticky = 2,\n /** Message box displays near an input field and contains a Close button. */\n InputField = 3,\n /** Modal message box. */\n Alert = 4,\n}\n\n/** Classifies a [[NotifyMessageDetails]] by its level of importance.\n * @public\n * @extensions\n */\nexport enum OutputMessagePriority {\n None = 0,\n Success = 1,\n Error = 10,\n Warning = 11,\n Info = 12,\n Debug = 13,\n Fatal = 17,\n}\n\n/** Describes the alert behavior of a [[NotifyMessageDetails]].\n * @public\n * @extensions\n */\nexport enum OutputMessageAlert {\n None = 0,\n Dialog = 1,\n Balloon = 2,\n}\n\n/** Reason for ending the activity message via endActivityMessage\n * @public\n * @extensions\n */\nexport enum ActivityMessageEndReason {\n Completed = 0,\n Cancelled = 1,\n}\n\n/** Describes the set of buttons displayed in a message box opened using [[NotificationManager.openMessageBox]].\n * @public\n * @extensions\n */\nexport enum MessageBoxType {\n OkCancel,\n Ok,\n LargeOk,\n MediumAlert,\n YesNoCancel,\n YesNo,\n}\n\n/** Describes the icon displayed in a messagebox opened using [[NotificationManager.openMessageBox]].\n * @public\n * @extensions\n */\nexport enum MessageBoxIconType {\n NoSymbol = 0, // Means Don't draw Symbol\n Information = 1, // Lower Case i\n Question = 2, // Question Mark\n Warning = 3, // Exclamation Point\n Critical = 4, // Stop Sign\n Success = 5, // check mark\n}\n\n/** Describes the possible return values produced when the user clicks a button in a messagebox opened using [[NotificationManager.openMessageBox]].\n * @public\n * @extensions\n */\nexport enum MessageBoxValue {\n Apply = 1,\n Reset = 2,\n Ok = 3,\n Cancel = 4,\n Default = 5,\n Yes = 6,\n No = 7,\n Retry = 8,\n Stop = 9,\n Help = 10,\n YesToAll = 11,\n NoToAll = 12,\n}\n\n/** Describes the behavior of a tooltip created using [[NotificationManager.openToolTip]].\n * @public\n * @extensions\n */\nexport interface ToolTipOptions {\n duration?: BeDuration;\n placement?: string;\n}\n\n/** Describes a message to be displayed to the user.\n * @public\n * @extensions\n */\nexport class NotifyMessageDetails {\n public displayTime = BeDuration.fromSeconds(5);\n public viewport?: HTMLElement;\n public inputField?: HTMLElement;\n public displayPoint?: Point2d;\n public relativePosition = RelativePosition.TopRight;\n\n /** Constructor\n * @param priority The priority this message should be accorded by the NotificationManager.\n * @param briefMessage A short message that conveys the simplest explanation of the issue.\n * @param detailedMessage An optional comprehensive message that explains the issue in detail and potentially offers a solution.\n * @param msgType The type of message. Defaults to Toast.\n * @param openAlert Whether an alert box should be displayed or not, and if so what kind.\n */\n public constructor(public priority: OutputMessagePriority, public briefMessage: HTMLElement | string,\n public detailedMessage?: HTMLElement | string, public msgType = OutputMessageType.Toast, public openAlert = OutputMessageAlert.None) { }\n\n /** Set OutputMessageType.Pointer message details.\n * @param viewport Viewport over which to display the Pointer type message.\n * @param displayPoint Point at which to display the Pointer type message.\n * @param relativePosition Position relative to displayPoint at which to display the Pointer type message.\n */\n public setPointerTypeDetails(viewport: HTMLElement, displayPoint: XAndY, relativePosition = RelativePosition.TopRight) {\n this.viewport = viewport;\n this.displayPoint = Point2d.fromJSON(displayPoint);\n this.relativePosition = relativePosition;\n this.msgType = OutputMessageType.Pointer;\n }\n\n /** Set OutputMessageType.InputField message details.\n * @param inputField Input field to which the message pertains. The message will be shown just below this input field element.\n */\n public setInputFieldTypeDetails(inputField: HTMLElement) {\n this.inputField = inputField;\n this.msgType = OutputMessageType.InputField;\n }\n}\n\n/** Specifies the details of an activity message to be displayed to the user.\n * @public\n * @extensions\n */\nexport class ActivityMessageDetails {\n public wasCancelled = false;\n\n /**\n * @param showProgressBar Indicates whether to show the progress bar in the activity message dialog.\n * @param showPercentInMessage Indicates whether to show the percentage complete in the activity message text.\n * @param supportsCancellation Indicates whether to show the Cancel button, giving the user the ability to cancel the operation.\n * @param showDialogInitially Indicates whether to show the activity message dialog initially. User can click status bar to open it.\n */\n public constructor(public showProgressBar: boolean, public showPercentInMessage: boolean, public supportsCancellation: boolean, public showDialogInitially: boolean = true) { }\n\n /** Called from NotificationAdmin when the user cancels the activity. */\n public onActivityCancelled() { this.wasCancelled = true; }\n\n /** Called from NotificationAdmin when the activity completes successfully. */\n public onActivityCompleted() { this.wasCancelled = false; }\n}\n\n/** The NotificationManager controls the interaction with the user for prompts, error messages, and alert dialogs.\n * Implementations of the NotificationManager may present the information in different ways. For example, in\n * non-interactive sessions, these messages may be saved to a log file or simply discarded.\n * @public\n * @extensions\n */\nexport class NotificationManager implements MessagePresenter {\n public readonly toolTipLocation = new Point2d();\n\n /** Output a prompt, given a localization key.\n * @param key The key of the localized string with the prompt message.\n */\n public outputPromptByKey(key: string) { this.outputPrompt(IModelApp.localization.getLocalizedString(key)); }\n\n /** Output a localized prompt to the user. A 'prompt' indicates an action the user should take to proceed.\n * @param _prompt The localized string with the prompt message.\n */\n public outputPrompt(_prompt: string) { }\n\n /** Output a message and/or alert to the user. */\n public outputMessage(_message: NotifyMessageDetails) { }\n\n /** Output a MessageBox and wait for response from the user.\n * @param _mbType The MessageBox type.\n * @param _message The message to display.\n * @param _icon The MessageBox icon type.\n * @return the response from the user.\n */\n public async openMessageBox(_mbType: MessageBoxType, _message: HTMLElement | string, _icon: MessageBoxIconType): Promise<MessageBoxValue> { return MessageBoxValue.Ok; }\n\n /**\n * Set up for activity messages.\n * @param _details The activity message details.\n * @return true if the message was displayed, false if an invalid priority is specified.\n */\n public setupActivityMessage(_details: ActivityMessageDetails) { return true; }\n\n /**\n * Output an activity message to the user.\n * @param _messageText The message text.\n * @param _percentComplete The percentage of completion.\n * @return true if the message was displayed, false if the message could not be displayed.\n */\n public outputActivityMessage(_messageText: HTMLElement | string, _percentComplete: number) { return true; }\n\n /**\n * End an activity message.\n * @param _reason The reason for the end of the Activity Message.\n * @return true if the message was ended successfully, false if the activityMessage could not be ended.\n */\n public endActivityMessage(_reason: ActivityMessageEndReason) { return true; }\n\n /** Return true if _showTooltip has an implementation and will display a tooltip. */\n public get isToolTipSupported(): boolean { return false; }\n\n /** Return true if the tooltip is currently open. */\n public get isToolTipOpen(): boolean { return false; }\n\n /** Implement to display a tooltip message at the specified location. */\n protected _showToolTip(_htmlElement: HTMLElement, _message: HTMLElement | string, _location?: XAndY, _options?: ToolTipOptions): void { }\n\n /** Show a tooltip window. Saves tooltip location for AccuSnap to test if cursor has moved far enough away to close tooltip.\n * @param htmlElement The HTMLElement that anchors the toolTip.\n * @param message What to display inside the ToolTip. May be a string or an HTMLElement.\n * @param location An optional location, relative to the origin of _htmlElement, for the ToolTip. If undefined, center of `htmlElement`\n * @param options Options that supply additional information about how the ToolTip should function.\n * @note If message is an HTMLElement, the notification manager will display the HTMLElement verbatim. This can represent a security\n * risk if any part the element is created from user input. Applications should be careful to *sanitize* any such input before\n * creating an HTMLElement to pass to this method.\n */\n public openToolTip(htmlElement: HTMLElement, message: HTMLElement | string, location?: XAndY, options?: ToolTipOptions): void {\n this.toolTipLocation.setFrom(location);\n this._showToolTip(htmlElement, message, location, options);\n }\n\n /** Clear the tooltip if it is currently open. */\n public clearToolTip(): void { }\n\n /** Update message position created with [[OutputMessageType.Pointer]].\n * @param displayPoint Point at which to display the Pointer type message.\n * @param relativePosition Position relative to displayPoint at which to display the Pointer type message.\n */\n public updatePointerMessage(_displayPoint: XAndY, _relativePosition = RelativePosition.TopRight): void { }\n\n /** Close message created with [[OutputMessageType.Pointer]]. */\n public closePointerMessage(): void { }\n\n /** Close message created with [[OutputMessageType.InputField]]. */\n public closeInputFieldMessage(): void { }\n\n /** Setup tool assistance instructions for a tool. The instructions include the main instruction, which includes the current prompt.\n * @param instructions The tool assistance instructions.\n */\n public setToolAssistance(instructions: ToolAssistanceInstructions | undefined) {\n this.outputPrompt(instructions ? instructions.mainInstruction.text : \"\");\n }\n\n /**\n * Displays a notification message.\n * @param severity The severity of the message.\n * @param briefMessage A short message that conveys the simplest explanation of the issue.\n * @param detailedMessage An optional comprehensive message that explains the issue in detail and potentially offers a solution.\n * @param messageType The type of message. Defaults to Toast.\n */\n public displayMessage(severity: MessageSeverity, briefMessage: HTMLElement | string, detailedMessage?: HTMLElement | string, messageType?: DisplayMessageType): void {\n const details = new NotifyMessageDetails(this.convertSeverityToPriority(severity), briefMessage, detailedMessage, this.convertMessageType(messageType));\n this.outputMessage(details);\n }\n\n /**\n * Displays an input field notification message.\n * @param inputField Input field to which the message pertains. The message will be shown just below this input field element.\n * @param severity The severity of the message.\n * @param briefMessage A short message that conveys the simplest explanation of the issue.\n * @param detailedMessage An optional comprehensive message that explains the issue in detail and potentially offers a solution.\n */\n public displayInputFieldMessage(inputField: HTMLElement, severity: MessageSeverity, briefMessage: HTMLElement | string, detailedMessage?: HTMLElement | string): void {\n const details = new NotifyMessageDetails(this.convertSeverityToPriority(severity), briefMessage, detailedMessage);\n details.setInputFieldTypeDetails(inputField);\n this.outputMessage(details);\n }\n\n private convertSeverityToPriority(severity: MessageSeverity): OutputMessagePriority {\n switch (severity) {\n case MessageSeverity.Information:\n return OutputMessagePriority.Info;\n case MessageSeverity.Warning:\n return OutputMessagePriority.Warning;\n case MessageSeverity.Error:\n return OutputMessagePriority.Error;\n case MessageSeverity.Fatal:\n return OutputMessagePriority.Fatal;\n case MessageSeverity.None:\n default:\n return OutputMessagePriority.None;\n }\n }\n\n private convertMessageType(inMessageType?: DisplayMessageType): OutputMessageType | undefined {\n switch (inMessageType) {\n case DisplayMessageType.Alert:\n return OutputMessageType.Alert;\n case DisplayMessageType.InputField:\n return OutputMessageType.InputField;\n case DisplayMessageType.Sticky:\n return OutputMessageType.Sticky;\n case DisplayMessageType.Toast:\n return OutputMessageType.Toast;\n default:\n return undefined;\n }\n }\n\n}\n"]}
@@ -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 { IModelConnection } from \"./IModelConnection\";\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 /** Changes multiple overrides, given an array of overrides *\r\n * @beta\r\n */\r\n setOverrides(perModelCategoryVisibility: Props[], iModel?: IModelConnection): Promise<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 /** Describes a set of [[PerModelCategoryVisibility.Overrides]].\r\n * @see [[PerModelCategoryVisibility.Overrides.setOverrides]].\r\n * @beta\r\n */\r\n export interface Props {\r\n /** The id of the model to which the overrides apply. */\r\n modelId: string;\r\n /** The ids of the categories whose visibility are to be overridden within the context of the model. */\r\n categoryIds: Iterable<Id64String>;\r\n /** The visibility to be applied to the specified categories. */\r\n visOverride: PerModelCategoryVisibility.Override;\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 /**\r\n * set the overrides for multiple perModelCategoryVisibility props, loading categoryIds from the iModel if necessary.\r\n * @see [[PerModelCategoryVisibility]]\r\n * @param perModelCategoryVisibility array of model category visibility overrides @see [[PerModelCategoryVisibility.Props]]\r\n * @param iModel Optional param iModel. If no iModel is provided, then the iModel associated with the viewport (used to construct this class) is used.\r\n * This optional iModel param is useful for apps which may show multiple iModels at once. Passing in an iModel ensures that the subcategories cache for the provided iModel\r\n * is populated as opposed to the iModel associated with the viewport which may or may not be an empty iModel.\r\n * @returns a promise that resolves once the overrides have been applied.\r\n */\r\n public async setOverrides(perModelCategoryVisibility: PerModelCategoryVisibility.Props[], iModel?: IModelConnection): Promise<void> {\r\n let anyChanged = false;\r\n const catIdsToLoad: string[] = [];\r\n const iModelToUse = iModel ? iModel : this._vp.iModel;\r\n for (const override of perModelCategoryVisibility) {\r\n const modelId = override.modelId;\r\n // The caller may pass a single categoryId as a string, if we don't convert this to an array we will iterate\r\n // over each individual character of that string, which is not the desired behavior.\r\n const categoryIds = typeof override.categoryIds === \"string\" ? [override.categoryIds] : override.categoryIds;\r\n const visOverride = override.visOverride;\r\n for (const categoryId of categoryIds) {\r\n if (this.findAndUpdateOverrideInArray(modelId, categoryId, visOverride)) {\r\n anyChanged = true;\r\n if (PerModelCategoryVisibility.Override.None !== visOverride) {\r\n catIdsToLoad.push(categoryId);\r\n }\r\n }\r\n }\r\n }\r\n if (anyChanged) {\r\n this._vp.setViewedCategoriesPerModelChanged();\r\n if (catIdsToLoad.length !== 0) {\r\n this._vp.subcategories.push(iModelToUse.subcategories, catIdsToLoad, () => this._vp.setViewedCategoriesPerModelChanged());\r\n }\r\n }\r\n return;\r\n }\r\n\r\n /** Find and update the override in the array of overrides. If override not found, adds it to the array.\r\n * If the array was changed, returns true. */\r\n private findAndUpdateOverrideInArray(modelId: Id64String, categoryId: Id64String, override: PerModelCategoryVisibility.Override): boolean {\r\n const ovr = this._scratch;\r\n ovr.reset(modelId, categoryId, false);\r\n let changed = 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 return changed;\r\n }\r\n\r\n public setOverride(modelIds: Id64Arg, categoryIds: Id64Arg, override: PerModelCategoryVisibility.Override): void {\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 if (this.findAndUpdateOverrideInArray(modelId, categoryId, override))\r\n changed = true;\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":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Views\n */\n\nimport { compareStrings, Id64, Id64Arg, Id64String, SortedArray } from \"@itwin/core-bentley\";\nimport { IModelConnection } from \"./IModelConnection\";\nimport { FeatureSymbology } from \"./render/FeatureSymbology\";\nimport { Viewport } from \"./Viewport\";\n\n/** Per-model category visibility permits the visibility of categories within a [[Viewport]] displaying a [[SpatialViewState]] to be overridden in\n * the context of individual [[GeometricModelState]]s.\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]].\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\n * will be visible, regardless of any [SubCategoryOverride]($common)s applied by the view's [[DisplayStyleState]].\n * @see [[Viewport.perModelCategoryVisibility]] to define the per-model category visibility for a viewport.\n * @public\n * @extensions\n */\nexport namespace PerModelCategoryVisibility {\n /** Describes whether and how a category's visibility is overridden. */\n export enum Override {\n /** The category's visibility is not overridden; its visibility is wholly controlled by the [[Viewport]]'s [[CategorySelectorState]]. */\n None,\n /** The category is overridden to be visible. */\n Show,\n /** The category is overridden to be invisible. */\n Hide,\n }\n\n /** Describes one visibility override in a [[PerModelCategoryVisibility.Overrides]]. */\n export interface OverrideEntry {\n /** The Id of the [[GeometricModelState]] in which the override applies. */\n readonly modelId: Id64String;\n /** The Id of the [SpatialCategory]($backend) whose visibility is overridden. */\n readonly categoryId: Id64String;\n /** Whether the category is visible in the context of the model. */\n readonly visible: boolean;\n }\n\n /** Describes a set of per-model category visibility overrides. Changes to these overrides invoke the [[Viewport.onViewedCategoriesPerModelChanged]] event.\n * @see [[Viewport.perModelCategoryVisibility]].\n */\n export interface Overrides {\n /** Returns the override state of the specified category within the specified model. */\n getOverride(modelId: Id64String, categoryId: Id64String): Override;\n /** Changes the override state of one or more categories for one or more models. */\n setOverride(modelIds: Id64Arg, categoryIds: Id64Arg, override: Override): void;\n /** Changes multiple overrides, given an array of overrides *\n * @beta\n */\n setOverrides(perModelCategoryVisibility: Props[], iModel?: IModelConnection): Promise<void>;\n /** Removes all overrides for the specified models, or for all models if `modelIds` is undefined. */\n clearOverrides(modelIds?: Id64Arg): void;\n /** An iterator over all of the visibility overrides. */\n [Symbol.iterator]: () => Iterator<OverrideEntry>;\n /** Populate the symbology overrides based on the per-model category visibility. */\n addOverrides(fs: FeatureSymbology.Overrides, ovrs: Id64.Uint32Map<Id64.Uint32Set>): void;\n }\n\n /** Describes a set of [[PerModelCategoryVisibility.Overrides]].\n * @see [[PerModelCategoryVisibility.Overrides.setOverrides]].\n * @beta\n */\n export interface Props {\n /** The id of the model to which the overrides apply. */\n modelId: string;\n /** The ids of the categories whose visibility are to be overridden within the context of the model. */\n categoryIds: Iterable<Id64String>;\n /** The visibility to be applied to the specified categories. */\n visOverride: PerModelCategoryVisibility.Override;\n }\n\n export function createOverrides(viewport: Viewport): PerModelCategoryVisibility.Overrides {\n return new PerModelCategoryVisibilityOverrides(viewport);\n }\n}\n\nclass PerModelCategoryVisibilityOverride {\n public modelId: Id64String;\n public categoryId: Id64String;\n public visible: boolean;\n\n public constructor(modelId: Id64String, categoryId: Id64String, visible: boolean) {\n this.modelId = modelId;\n this.categoryId = categoryId;\n this.visible = visible;\n }\n\n public reset(modelId: Id64String, categoryId: Id64String, visible: boolean): void {\n this.modelId = modelId;\n this.categoryId = categoryId;\n this.visible = visible;\n }\n}\n\nfunction compareCategoryOverrides(lhs: PerModelCategoryVisibilityOverride, rhs: PerModelCategoryVisibilityOverride): number {\n const cmp = compareStrings(lhs.modelId, rhs.modelId);\n return 0 === cmp ? compareStrings(lhs.categoryId, rhs.categoryId) : cmp;\n}\n\n/** The Viewport-specific implementation of PerModelCategoryVisibility.Overrides. */\nclass PerModelCategoryVisibilityOverrides extends SortedArray<PerModelCategoryVisibilityOverride> implements PerModelCategoryVisibility.Overrides {\n private readonly _scratch = new PerModelCategoryVisibilityOverride(\"0\", \"0\", false);\n private readonly _vp: Viewport;\n\n public constructor(vp: Viewport) {\n super(compareCategoryOverrides);\n this._vp = vp;\n }\n\n public getOverride(modelId: Id64String, categoryId: Id64String): PerModelCategoryVisibility.Override {\n this._scratch.reset(modelId, categoryId, false);\n const ovr = this.findEqual(this._scratch);\n if (undefined !== ovr)\n return ovr.visible ? PerModelCategoryVisibility.Override.Show : PerModelCategoryVisibility.Override.Hide;\n else\n return PerModelCategoryVisibility.Override.None;\n }\n\n /**\n * set the overrides for multiple perModelCategoryVisibility props, loading categoryIds from the iModel if necessary.\n * @see [[PerModelCategoryVisibility]]\n * @param perModelCategoryVisibility array of model category visibility overrides @see [[PerModelCategoryVisibility.Props]]\n * @param iModel Optional param iModel. If no iModel is provided, then the iModel associated with the viewport (used to construct this class) is used.\n * This optional iModel param is useful for apps which may show multiple iModels at once. Passing in an iModel ensures that the subcategories cache for the provided iModel\n * is populated as opposed to the iModel associated with the viewport which may or may not be an empty iModel.\n * @returns a promise that resolves once the overrides have been applied.\n */\n public async setOverrides(perModelCategoryVisibility: PerModelCategoryVisibility.Props[], iModel?: IModelConnection): Promise<void> {\n let anyChanged = false;\n const catIdsToLoad: string[] = [];\n const iModelToUse = iModel ? iModel : this._vp.iModel;\n for (const override of perModelCategoryVisibility) {\n const modelId = override.modelId;\n // The caller may pass a single categoryId as a string, if we don't convert this to an array we will iterate\n // over each individual character of that string, which is not the desired behavior.\n const categoryIds = typeof override.categoryIds === \"string\" ? [override.categoryIds] : override.categoryIds;\n const visOverride = override.visOverride;\n for (const categoryId of categoryIds) {\n if (this.findAndUpdateOverrideInArray(modelId, categoryId, visOverride)) {\n anyChanged = true;\n if (PerModelCategoryVisibility.Override.None !== visOverride) {\n catIdsToLoad.push(categoryId);\n }\n }\n }\n }\n if (anyChanged) {\n this._vp.setViewedCategoriesPerModelChanged();\n if (catIdsToLoad.length !== 0) {\n this._vp.subcategories.push(iModelToUse.subcategories, catIdsToLoad, () => this._vp.setViewedCategoriesPerModelChanged());\n }\n }\n return;\n }\n\n /** Find and update the override in the array of overrides. If override not found, adds it to the array.\n * If the array was changed, returns true. */\n private findAndUpdateOverrideInArray(modelId: Id64String, categoryId: Id64String, override: PerModelCategoryVisibility.Override): boolean {\n const ovr = this._scratch;\n ovr.reset(modelId, categoryId, false);\n let changed = false;\n const index = this.indexOf(ovr);\n if (-1 === index) {\n if (PerModelCategoryVisibility.Override.None !== override) {\n this.insert(new PerModelCategoryVisibilityOverride(modelId, categoryId, PerModelCategoryVisibility.Override.Show === override));\n changed = true;\n }\n } else {\n if (PerModelCategoryVisibility.Override.None === override) {\n this._array.splice(index, 1);\n changed = true;\n } else if (this._array[index].visible !== (PerModelCategoryVisibility.Override.Show === override)) {\n this._array[index].visible = (PerModelCategoryVisibility.Override.Show === override);\n changed = true;\n }\n }\n return changed;\n }\n\n public setOverride(modelIds: Id64Arg, categoryIds: Id64Arg, override: PerModelCategoryVisibility.Override): void {\n let changed = false;\n for (const modelId of Id64.iterable(modelIds)) {\n for (const categoryId of Id64.iterable(categoryIds)) {\n if (this.findAndUpdateOverrideInArray(modelId, categoryId, override))\n changed = true;\n }\n }\n\n if (changed) {\n this._vp.setViewedCategoriesPerModelChanged();\n\n if (PerModelCategoryVisibility.Override.None !== override) {\n // Ensure subcategories loaded.\n this._vp.subcategories.push(this._vp.iModel.subcategories, categoryIds, () => this._vp.setViewedCategoriesPerModelChanged());\n }\n }\n }\n\n public clearOverrides(modelIds?: Id64Arg): void {\n if (undefined === modelIds) {\n if (0 < this.length) {\n this.clear();\n this._vp.setViewedCategoriesPerModelChanged();\n }\n\n return;\n }\n\n for (let i = 0; i < this.length;) {\n const ovr = this._array[i];\n let removed = false;\n for (const modelId of Id64.iterable(modelIds)) {\n if (modelId === ovr.modelId) {\n this._array.splice(i, 1);\n this._vp.setViewedCategoriesPerModelChanged();\n removed = true;\n break;\n }\n }\n\n if (!removed)\n ++i;\n }\n }\n\n public addOverrides(fs: FeatureSymbology.Overrides, ovrs: Id64.Uint32Map<Id64.Uint32Set>): void {\n const cache = this._vp.iModel.subcategories;\n\n for (const ovr of this._array) {\n const subcats = cache.getSubCategories(ovr.categoryId);\n if (undefined === subcats)\n continue;\n\n // It's pointless to override for models which aren't displayed...except if we do this, and then someone enables that model,\n // we would need to regenerate our symbology overrides in response. Preferably people wouldn't bother overriding models that\n // they don't want us to draw...\n /* if (!this._vp.view.viewsModel(ovr.modelId))\n continue; */\n\n // ###TODO: Avoid recomputing upper and lower portions of modelId if modelId repeated.\n // (Array is sorted first by modelId).\n // Also avoid computing if no effective overrides.\n const modelLo = Id64.getLowerUint32(ovr.modelId);\n const modelHi = Id64.getUpperUint32(ovr.modelId);\n\n for (const subcat of subcats) {\n const subcatLo = Id64.getLowerUint32(subcat);\n const subcatHi = Id64.getUpperUint32(subcat);\n const vis = fs.isSubCategoryVisible(subcatLo, subcatHi);\n if (vis !== ovr.visible) {\n // Only care if visibility differs from that defined for entire view\n let entry = ovrs.get(modelLo, modelHi);\n if (undefined === entry) {\n entry = new Id64.Uint32Set();\n ovrs.set(modelLo, modelHi, entry);\n }\n\n entry.add(subcatLo, subcatHi);\n }\n }\n }\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"PlanarClipMaskState.js","sourceRoot":"","sources":["../../src/PlanarClipMaskState.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 { assert, Id64String } from \"@itwin/core-bentley\";\r\nimport { PlanarClipMaskMode, PlanarClipMaskPriority, PlanarClipMaskProps, PlanarClipMaskSettings } from \"@itwin/core-common\";\r\nimport { FeatureSymbology } from \"./render/FeatureSymbology\";\r\nimport { createMaskTreeReference, DisclosedTileTreeSet, TileTreeReference } from \"./tile/internal\";\r\nimport { ViewState3d } from \"./ViewState\";\r\n\r\n/** The State of Planar Clip Mask applied to a reality model or background map.\r\n * Handles loading models and their associated tiles for models that are used by masks but may not be otherwise loaded or displayed.\r\n * @beta\r\n */\r\nexport class PlanarClipMaskState {\r\n public readonly settings: PlanarClipMaskSettings;\r\n private _tileTreeRefs?: TileTreeReference[];\r\n private _allLoaded = false;\r\n\r\n private constructor(settings: PlanarClipMaskSettings) {\r\n this.settings = settings;\r\n }\r\n\r\n public static create(settings: PlanarClipMaskSettings): PlanarClipMaskState {\r\n return new PlanarClipMaskState(settings);\r\n }\r\n\r\n public static fromJSON(props: PlanarClipMaskProps): PlanarClipMaskState {\r\n return this.create(PlanarClipMaskSettings.fromJSON(props));\r\n }\r\n\r\n public discloseTileTrees(trees: DisclosedTileTreeSet): void {\r\n if (this._tileTreeRefs)\r\n this._tileTreeRefs.forEach((treeRef) => treeRef.discloseTileTrees(trees));\r\n }\r\n\r\n public getTileTrees(view: ViewState3d, classifiedModelId: Id64String): TileTreeReference[] | undefined {\r\n if (this.settings.mode === PlanarClipMaskMode.Priority) {\r\n const viewTrees = new Array<TileTreeReference>();\r\n const thisPriority = this.settings.priority === undefined ? PlanarClipMaskPriority.RealityModel : this.settings.priority;\r\n view.forEachTileTreeRef((ref) => {\r\n const tree = ref.treeOwner.load();\r\n if (tree && tree.modelId !== classifiedModelId && ref.planarclipMaskPriority > thisPriority)\r\n viewTrees.push(ref);\r\n });\r\n\r\n return viewTrees;\r\n }\r\n\r\n if (!this._tileTreeRefs) {\r\n this._tileTreeRefs = new Array<TileTreeReference>();\r\n if (this.settings.modelIds) {\r\n for (const modelId of this.settings.modelIds) {\r\n const model = view.iModel.models.getLoaded(modelId);\r\n assert(model !== undefined); // Models should be loaded by RealityModelTileTree\r\n if (model?.asGeometricModel)\r\n this._tileTreeRefs.push(createMaskTreeReference(view, model.asGeometricModel));\r\n }\r\n }\r\n }\r\n\r\n if (!this._allLoaded)\r\n this._allLoaded = this._tileTreeRefs.every((treeRef) => treeRef.treeOwner.load() !== undefined);\r\n\r\n return this._allLoaded ? this._tileTreeRefs : undefined;\r\n }\r\n\r\n public getPlanarClipMaskSymbologyOverrides(): FeatureSymbology.Overrides | undefined {\r\n if (!this.settings.subCategoryOrElementIds)\r\n return undefined;\r\n\r\n switch (this.settings.mode) {\r\n case PlanarClipMaskMode.IncludeElements: {\r\n const overrides = new FeatureSymbology.Overrides();\r\n overrides.setAlwaysDrawnSet(this.settings.subCategoryOrElementIds, true);\r\n return overrides;\r\n }\r\n case PlanarClipMaskMode.ExcludeElements: {\r\n const overrides = new FeatureSymbology.Overrides();\r\n\r\n overrides.ignoreSubCategory = true;\r\n overrides.setNeverDrawnSet(this.settings.subCategoryOrElementIds);\r\n\r\n return overrides;\r\n }\r\n case PlanarClipMaskMode.IncludeSubCategories: {\r\n const overrides = new FeatureSymbology.Overrides();\r\n for (const subCategoryId of this.settings.subCategoryOrElementIds)\r\n overrides.setVisibleSubCategory(subCategoryId);\r\n\r\n return overrides;\r\n }\r\n }\r\n\r\n return undefined;\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"PlanarClipMaskState.js","sourceRoot":"","sources":["../../src/PlanarClipMaskState.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Views\n */\n\nimport { assert, Id64String } from \"@itwin/core-bentley\";\nimport { PlanarClipMaskMode, PlanarClipMaskPriority, PlanarClipMaskProps, PlanarClipMaskSettings } from \"@itwin/core-common\";\nimport { FeatureSymbology } from \"./render/FeatureSymbology\";\nimport { createMaskTreeReference, DisclosedTileTreeSet, TileTreeReference } from \"./tile/internal\";\nimport { ViewState3d } from \"./ViewState\";\n\n/** The State of Planar Clip Mask applied to a reality model or background map.\n * Handles loading models and their associated tiles for models that are used by masks but may not be otherwise loaded or displayed.\n * @beta\n */\nexport class PlanarClipMaskState {\n public readonly settings: PlanarClipMaskSettings;\n private _tileTreeRefs?: TileTreeReference[];\n private _allLoaded = false;\n\n private constructor(settings: PlanarClipMaskSettings) {\n this.settings = settings;\n }\n\n public static create(settings: PlanarClipMaskSettings): PlanarClipMaskState {\n return new PlanarClipMaskState(settings);\n }\n\n public static fromJSON(props: PlanarClipMaskProps): PlanarClipMaskState {\n return this.create(PlanarClipMaskSettings.fromJSON(props));\n }\n\n public discloseTileTrees(trees: DisclosedTileTreeSet): void {\n if (this._tileTreeRefs)\n this._tileTreeRefs.forEach((treeRef) => treeRef.discloseTileTrees(trees));\n }\n\n public getTileTrees(view: ViewState3d, classifiedModelId: Id64String): TileTreeReference[] | undefined {\n if (this.settings.mode === PlanarClipMaskMode.Priority) {\n const viewTrees = new Array<TileTreeReference>();\n const thisPriority = this.settings.priority === undefined ? PlanarClipMaskPriority.RealityModel : this.settings.priority;\n view.forEachTileTreeRef((ref) => {\n const tree = ref.treeOwner.load();\n if (tree && tree.modelId !== classifiedModelId && ref.planarclipMaskPriority > thisPriority)\n viewTrees.push(ref);\n });\n\n return viewTrees;\n }\n\n if (!this._tileTreeRefs) {\n this._tileTreeRefs = new Array<TileTreeReference>();\n if (this.settings.modelIds) {\n for (const modelId of this.settings.modelIds) {\n const model = view.iModel.models.getLoaded(modelId);\n assert(model !== undefined); // Models should be loaded by RealityModelTileTree\n if (model?.asGeometricModel)\n this._tileTreeRefs.push(createMaskTreeReference(view, model.asGeometricModel));\n }\n }\n }\n\n if (!this._allLoaded)\n this._allLoaded = this._tileTreeRefs.every((treeRef) => treeRef.treeOwner.load() !== undefined);\n\n return this._allLoaded ? this._tileTreeRefs : undefined;\n }\n\n public getPlanarClipMaskSymbologyOverrides(): FeatureSymbology.Overrides | undefined {\n if (!this.settings.subCategoryOrElementIds)\n return undefined;\n\n switch (this.settings.mode) {\n case PlanarClipMaskMode.IncludeElements: {\n const overrides = new FeatureSymbology.Overrides();\n overrides.setAlwaysDrawnSet(this.settings.subCategoryOrElementIds, true);\n return overrides;\n }\n case PlanarClipMaskMode.ExcludeElements: {\n const overrides = new FeatureSymbology.Overrides();\n\n overrides.ignoreSubCategory = true;\n overrides.setNeverDrawnSet(this.settings.subCategoryOrElementIds);\n\n return overrides;\n }\n case PlanarClipMaskMode.IncludeSubCategories: {\n const overrides = new FeatureSymbology.Overrides();\n for (const subCategoryId of this.settings.subCategoryOrElementIds)\n overrides.setVisibleSubCategory(subCategoryId);\n\n return overrides;\n }\n }\n\n return undefined;\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RealityDataSource.js","sourceRoot":"","sources":["../../src/RealityDataSource.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 Tiles\r\n */\r\nimport { BentleyError, GuidString, Logger, LoggingMetaData, RealityDataStatus } from \"@itwin/core-bentley\";\r\nimport { Cartographic, EcefLocation, OrbitGtBlobProps, RealityData, RealityDataFormat, RealityDataProvider, RealityDataSourceKey } from \"@itwin/core-common\";\r\nimport { FrontendLoggerCategory } from \"./common/FrontendLoggerCategory\";\r\nimport { CesiumIonAssetProvider, ContextShareProvider, getCesiumAssetUrl } from \"./tile/internal\";\r\nimport { RealityDataSourceTilesetUrlImpl } from \"./RealityDataSourceTilesetUrlImpl\";\r\nimport { RealityDataSourceContextShareImpl } from \"./RealityDataSourceContextShareImpl\";\r\nimport { RealityDataSourceCesiumIonAssetImpl } from \"./RealityDataSourceCesiumIonAssetImpl\";\r\nimport { IModelApp } from \"./IModelApp\";\r\nimport { Range3d } from \"@itwin/core-geometry\";\r\n\r\nconst loggerCategory: string = FrontendLoggerCategory.RealityData;\r\n\r\n/**\r\n * Reality Data Operation error\r\n * @alpha\r\n */\r\nexport class RealityDataError extends BentleyError {\r\n public constructor(errorNumber: RealityDataStatus, message: string, getMetaData?: LoggingMetaData) {\r\n super(errorNumber, message, getMetaData);\r\n }\r\n}\r\n\r\n/** This interface provide spatial location and volume of interest, in meters, centered around `spatial location`\r\n * @alpha\r\n */\r\nexport interface SpatialLocationAndExtents {\r\n /** location of the point at the center of the reaity data */\r\n location: Cartographic | EcefLocation;\r\n /** extents of the volume around location */\r\n worldRange: Range3d;\r\n /** true if this reality data is geolocated\r\n * A reality data is geolocated when we can compute a valid position relative to the earth surface.\r\n * Note that some reality data contains custom coordinate system without any information on the relative position on earth.\r\n * These reality data will have a location and worldRange but will be identified by the isGeoLocated set to false.\r\n */\r\n isGeolocated: boolean;\r\n}\r\n\r\n/** This interface provides information to identify the product and engine that create this reality data\r\n * @alpha\r\n */\r\nexport interface PublisherProductInfo {\r\n /** product that create this reality data */\r\n product: string;\r\n /** engine that create this reality data */\r\n engine: string;\r\n /** the version of the engine that create this reality data */\r\n version: string;\r\n}\r\n\r\n/** This interface provide methods used to access a reality data from a reality data provider\r\n * @beta\r\n */\r\nexport interface RealityDataSource {\r\n readonly key: RealityDataSourceKey;\r\n readonly isContextShare: boolean;\r\n readonly realityDataId: string | undefined;\r\n /** Metatdata on the reality data source */\r\n readonly realityData: RealityData | undefined;\r\n /** The reality data type (e.g.: \"RealityMesh3DTiles\", OPC, Terrain3DTiles, Cesium3DTiles, ... )*/\r\n readonly realityDataType: string | undefined;\r\n /** This method returns the URL to obtain the Reality Data properties.\r\n * @param iTwinId id of associated iTwin project\r\n * @returns string containing the URL to reality data.\r\n */\r\n getServiceUrl(iTwinId: GuidString | undefined): Promise<string | undefined>;\r\n /** If true, the geometricError property of the tiles will be used to compute screen-space error.\r\n * @alpha\r\n */\r\n readonly usesGeometricError?: boolean;\r\n /** If [[usesGeometricError]] is `true`, optionally specifies the maximum error, in pixels, to permit for a tile before requiring refinement of that tile.\r\n * Default: 16\r\n * @alpha\r\n */\r\n readonly maximumScreenSpaceError?: number;\r\n /** Given the URL of a tile's content, return the type of that content.\r\n * \"tileset\" indicates the content points to a JSON tileset describing the structure of the tile tree below the tile.\r\n * \"tile\" indicates the content points to a binary representation of the tile's graphics.\r\n * @alpha\r\n */\r\n getTileContentType(url: string): \"tile\" | \"tileset\";\r\n\r\n /** Gets a reality data root document json\r\n * @returns tile data json\r\n * @internal\r\n */\r\n getRootDocument(iTwinId: GuidString | undefined): Promise<any>;\r\n /** Gets tile content\r\n * @param name name or path of tile\r\n * @returns array buffer of tile content\r\n * @internal\r\n */\r\n getTileContent(name: string): Promise<any>;\r\n /** Gets a tileset's app data json\r\n * @param name name or path of tile\r\n * @returns app data json object\r\n * @internal\r\n */\r\n getTileJson(name: string): Promise<any>;\r\n /** Gets spatial location and extents of this reality data source.\r\n * Will return undefined if cannot be resolved or is unbounded (cover entire earth eg: Open Street Map Building from Ion Asset)\r\n * @returns spatial location and extents\r\n * @throws [[RealityDataError]] if source is invalid or cannot be read\r\n * @alpha\r\n */\r\n getSpatialLocationAndExtents(): Promise<SpatialLocationAndExtents | undefined>;\r\n /** Gets information to identify the product and engine that create this reality data\r\n * Will return undefined if cannot be resolved\r\n * @returns information to identify the product and engine that create this reality data\r\n * @alpha\r\n */\r\n getPublisherProductInfo(): Promise<PublisherProductInfo | undefined>;\r\n}\r\n/** Utility functions for RealityDataSource\r\n * @beta\r\n */\r\nexport namespace RealityDataSource {\r\n /** Create a RealityDataSourceKey from a tilesetUrl.\r\n * @param tilesetUrl the reality data attachment url\r\n * @param inputProvider identify the RealityDataProvider if known, otherwise function will try to extract it from the tilesetUrl\r\n * @param inputFormat identify the RealityDataFormat if known, otherwise function will try to extract it from the tilesetUrl\r\n * @returns the RealityDataSourceKey that uniquely identify a reality data for a provider\r\n */\r\n export function createKeyFromUrl(tilesetUrl: string, inputProvider?: RealityDataProvider, inputFormat?: RealityDataFormat): RealityDataSourceKey {\r\n let format = inputFormat ? inputFormat : RealityDataFormat.fromUrl(tilesetUrl);\r\n if (CesiumIonAssetProvider.isProviderUrl(tilesetUrl)) {\r\n const provider = RealityDataProvider.CesiumIonAsset;\r\n let cesiumIonAssetKey: RealityDataSourceKey = { provider, format, id: CesiumIonAssetProvider.osmBuildingId }; // default OSM building\r\n // Parse URL to extract possible asset id and key if provided\r\n const cesiumAsset = CesiumIonAssetProvider.parseCesiumUrl(tilesetUrl);\r\n if (cesiumAsset) {\r\n cesiumIonAssetKey = RealityDataSource.createCesiumIonAssetKey(cesiumAsset.id, cesiumAsset.key);\r\n }\r\n return cesiumIonAssetKey;\r\n }\r\n\r\n // Try to extract realityDataId from URL and if not possible, use the url as the key\r\n if (ContextShareProvider.isProviderUrl(tilesetUrl)) {\r\n const info = ContextShareProvider.getInfoFromUrl(tilesetUrl);\r\n const provider = inputProvider ? inputProvider : info.provider;\r\n format = inputFormat ? inputFormat : info.format;\r\n const contextShareKey: RealityDataSourceKey = { provider, format, id: info.id, iTwinId: info.iTwinId };\r\n return contextShareKey;\r\n }\r\n\r\n // default to tileSetUrl\r\n const provider2 = inputProvider ? inputProvider : RealityDataProvider.TilesetUrl;\r\n const urlKey: RealityDataSourceKey = { provider: provider2, format, id: tilesetUrl };\r\n return urlKey;\r\n }\r\n /** @alpha - was used for a very specific case of point cloud (opc) attachment that should not be made public */\r\n export function createKeyFromBlobUrl(blobUrl: string, inputProvider?: RealityDataProvider, inputFormat?: RealityDataFormat): RealityDataSourceKey {\r\n const info = ContextShareProvider.getInfoFromBlobUrl(blobUrl);\r\n const format = inputFormat ? inputFormat : info.format;\r\n const provider = inputProvider ? inputProvider : info.provider;\r\n const contextShareKey: RealityDataSourceKey = { provider, format, id: info.id };\r\n return contextShareKey;\r\n }\r\n /** @alpha - OrbitGtBlobProps is alpha */\r\n export function createKeyFromOrbitGtBlobProps(orbitGtBlob: OrbitGtBlobProps, inputProvider?: RealityDataProvider, inputFormat?: RealityDataFormat): RealityDataSourceKey {\r\n const format = inputFormat ? inputFormat : RealityDataFormat.OPC;\r\n if (orbitGtBlob.blobFileName && orbitGtBlob.blobFileName.toLowerCase().startsWith(\"http\")) {\r\n return RealityDataSource.createKeyFromBlobUrl(orbitGtBlob.blobFileName, inputProvider, format);\r\n } else if (orbitGtBlob.rdsUrl) {\r\n return RealityDataSource.createKeyFromUrl(orbitGtBlob.rdsUrl, inputProvider, format);\r\n }\r\n const provider = inputProvider ? inputProvider : RealityDataProvider.OrbitGtBlob;\r\n const id = `${orbitGtBlob.accountName}:${orbitGtBlob.containerName}:${orbitGtBlob.blobFileName}:?${orbitGtBlob.sasToken}`;\r\n return { provider, format, id };\r\n }\r\n /** @alpha - OrbitGtBlobProps is alpha */\r\n export function createOrbitGtBlobPropsFromKey(rdSourceKey: RealityDataSourceKey): OrbitGtBlobProps | undefined {\r\n if (rdSourceKey.provider !== RealityDataProvider.OrbitGtBlob)\r\n return undefined;\r\n const splitIds = rdSourceKey.id.split(\":\");\r\n const sasTokenIndex = rdSourceKey.id.indexOf(\":?\");\r\n const sasToken = rdSourceKey.id.substring(sasTokenIndex + 2);\r\n const orbitGtBlob: OrbitGtBlobProps = {\r\n accountName: splitIds[0],\r\n containerName: splitIds[1],\r\n blobFileName: splitIds[2],\r\n sasToken,\r\n };\r\n return orbitGtBlob;\r\n }\r\n /** @internal - Is used by \"fdt attach cesium asset\" keyin*/\r\n export function createCesiumIonAssetKey(osmAssetId: number, requestKey: string): RealityDataSourceKey {\r\n const id = getCesiumAssetUrl(osmAssetId,requestKey);\r\n return {provider: RealityDataProvider.CesiumIonAsset, format: RealityDataFormat.ThreeDTile, id};\r\n }\r\n /** Return an instance of a RealityDataSource from a source key.\r\n * There will aways be only one reality data RealityDataSource for a corresponding reality data source key.\r\n * @alpha\r\n */\r\n export async function fromKey(key: RealityDataSourceKey, iTwinId: GuidString | undefined): Promise<RealityDataSource | undefined> {\r\n const provider = IModelApp.realityDataSourceProviders.find(key.provider);\r\n if (!provider) {\r\n Logger.logWarning(loggerCategory, `RealityDataSourceProvider \"${key.provider}\" is not registered`);\r\n return undefined;\r\n }\r\n\r\n return provider.createRealityDataSource(key, iTwinId);\r\n }\r\n}\r\n\r\n/** A named supplier of [RealityDataSource]]s.\r\n * The provider's name is stored in a [RealityDataSourceKey]($common). When the [[RealityDataSource]] is requested from the key,\r\n * the provider is looked up in [[IModelApp.realityDataSourceProviders]] by its name and, if found, its [[createRealityDataSource]] method\r\n * is invoked to produce the reality data source.\r\n * @alpha\r\n */\r\nexport interface RealityDataSourceProvider {\r\n /** Produce a RealityDataSource for the specified `key`.\r\n * @param key Identifies the reality data source.\r\n * @param iTwinId A default iTwinId to use.\r\n * @returns the requested reality data source, or `undefined` if it could not be produced.\r\n */\r\n createRealityDataSource(key: RealityDataSourceKey, iTwinId: GuidString | undefined): Promise<RealityDataSource | undefined>;\r\n}\r\n\r\n/** A registry of [[RealityDataSourceProvider]]s identified by their unique names. The registry can be accessed via [[IModelApp.realityDataSourceProviders]].\r\n * It includes a handful of built-in providers for sources like Cesium ION, ContextShare, OrbitGT, and arbitrary public-accessible URLs.\r\n * Any number of additional providers can be registered. They should typically be registered just after [[IModelAp.startup]].\r\n * @alpha\r\n */\r\nexport class RealityDataSourceProviderRegistry {\r\n private readonly _providers = new Map<string, RealityDataSourceProvider>();\r\n\r\n /** @internal */\r\n public constructor() {\r\n this.register(RealityDataProvider.CesiumIonAsset, {\r\n createRealityDataSource: async (key, iTwinId) => RealityDataSourceCesiumIonAssetImpl.createFromKey(key, iTwinId),\r\n });\r\n this.register(RealityDataProvider.TilesetUrl, {\r\n createRealityDataSource: async (key, iTwinId) => RealityDataSourceTilesetUrlImpl.createFromKey(key, iTwinId),\r\n });\r\n this.register(RealityDataProvider.ContextShare, {\r\n createRealityDataSource: async (key, iTwinId) => RealityDataSourceContextShareImpl.createFromKey(key, iTwinId),\r\n });\r\n this.register(RealityDataProvider.OrbitGtBlob, {\r\n // ###TODO separate TilesetUrlImpl\r\n createRealityDataSource: async (key, iTwinId) => RealityDataSourceTilesetUrlImpl.createFromKey(key, iTwinId),\r\n });\r\n }\r\n\r\n /** Register `provider` to produce [[RealityDataSource]]s for the specified provider `name`. */\r\n public register(name: string, provider: RealityDataSourceProvider): void {\r\n this._providers.set(name, provider);\r\n }\r\n\r\n /** Look up the provider registered by the specified `name`. */\r\n public find(name: string): RealityDataSourceProvider | undefined {\r\n return this._providers.get(name);\r\n }\r\n}\r\n"]}
1
+ {"version":3,"file":"RealityDataSource.js","sourceRoot":"","sources":["../../src/RealityDataSource.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\nimport { BentleyError, GuidString, Logger, LoggingMetaData, RealityDataStatus } from \"@itwin/core-bentley\";\nimport { Cartographic, EcefLocation, OrbitGtBlobProps, RealityData, RealityDataFormat, RealityDataProvider, RealityDataSourceKey } from \"@itwin/core-common\";\nimport { FrontendLoggerCategory } from \"./common/FrontendLoggerCategory\";\nimport { CesiumIonAssetProvider, ContextShareProvider, getCesiumAssetUrl } from \"./tile/internal\";\nimport { RealityDataSourceTilesetUrlImpl } from \"./RealityDataSourceTilesetUrlImpl\";\nimport { RealityDataSourceContextShareImpl } from \"./RealityDataSourceContextShareImpl\";\nimport { RealityDataSourceCesiumIonAssetImpl } from \"./RealityDataSourceCesiumIonAssetImpl\";\nimport { IModelApp } from \"./IModelApp\";\nimport { Range3d } from \"@itwin/core-geometry\";\n\nconst loggerCategory: string = FrontendLoggerCategory.RealityData;\n\n/**\n * Reality Data Operation error\n * @alpha\n */\nexport class RealityDataError extends BentleyError {\n public constructor(errorNumber: RealityDataStatus, message: string, getMetaData?: LoggingMetaData) {\n super(errorNumber, message, getMetaData);\n }\n}\n\n/** This interface provide spatial location and volume of interest, in meters, centered around `spatial location`\n * @alpha\n */\nexport interface SpatialLocationAndExtents {\n /** location of the point at the center of the reaity data */\n location: Cartographic | EcefLocation;\n /** extents of the volume around location */\n worldRange: Range3d;\n /** true if this reality data is geolocated\n * A reality data is geolocated when we can compute a valid position relative to the earth surface.\n * Note that some reality data contains custom coordinate system without any information on the relative position on earth.\n * These reality data will have a location and worldRange but will be identified by the isGeoLocated set to false.\n */\n isGeolocated: boolean;\n}\n\n/** This interface provides information to identify the product and engine that create this reality data\n * @alpha\n */\nexport interface PublisherProductInfo {\n /** product that create this reality data */\n product: string;\n /** engine that create this reality data */\n engine: string;\n /** the version of the engine that create this reality data */\n version: string;\n}\n\n/** This interface provide methods used to access a reality data from a reality data provider\n * @beta\n */\nexport interface RealityDataSource {\n readonly key: RealityDataSourceKey;\n readonly isContextShare: boolean;\n readonly realityDataId: string | undefined;\n /** Metatdata on the reality data source */\n readonly realityData: RealityData | undefined;\n /** The reality data type (e.g.: \"RealityMesh3DTiles\", OPC, Terrain3DTiles, Cesium3DTiles, ... )*/\n readonly realityDataType: string | undefined;\n /** This method returns the URL to obtain the Reality Data properties.\n * @param iTwinId id of associated iTwin project\n * @returns string containing the URL to reality data.\n */\n getServiceUrl(iTwinId: GuidString | undefined): Promise<string | undefined>;\n /** If true, the geometricError property of the tiles will be used to compute screen-space error.\n * @alpha\n */\n readonly usesGeometricError?: boolean;\n /** If [[usesGeometricError]] is `true`, optionally specifies the maximum error, in pixels, to permit for a tile before requiring refinement of that tile.\n * Default: 16\n * @alpha\n */\n readonly maximumScreenSpaceError?: number;\n /** Given the URL of a tile's content, return the type of that content.\n * \"tileset\" indicates the content points to a JSON tileset describing the structure of the tile tree below the tile.\n * \"tile\" indicates the content points to a binary representation of the tile's graphics.\n * @alpha\n */\n getTileContentType(url: string): \"tile\" | \"tileset\";\n\n /** Gets a reality data root document json\n * @returns tile data json\n * @internal\n */\n getRootDocument(iTwinId: GuidString | undefined): Promise<any>;\n /** Gets tile content\n * @param name name or path of tile\n * @returns array buffer of tile content\n * @internal\n */\n getTileContent(name: string): Promise<any>;\n /** Gets a tileset's app data json\n * @param name name or path of tile\n * @returns app data json object\n * @internal\n */\n getTileJson(name: string): Promise<any>;\n /** Gets spatial location and extents of this reality data source.\n * Will return undefined if cannot be resolved or is unbounded (cover entire earth eg: Open Street Map Building from Ion Asset)\n * @returns spatial location and extents\n * @throws [[RealityDataError]] if source is invalid or cannot be read\n * @alpha\n */\n getSpatialLocationAndExtents(): Promise<SpatialLocationAndExtents | undefined>;\n /** Gets information to identify the product and engine that create this reality data\n * Will return undefined if cannot be resolved\n * @returns information to identify the product and engine that create this reality data\n * @alpha\n */\n getPublisherProductInfo(): Promise<PublisherProductInfo | undefined>;\n}\n/** Utility functions for RealityDataSource\n * @beta\n */\nexport namespace RealityDataSource {\n /** Create a RealityDataSourceKey from a tilesetUrl.\n * @param tilesetUrl the reality data attachment url\n * @param inputProvider identify the RealityDataProvider if known, otherwise function will try to extract it from the tilesetUrl\n * @param inputFormat identify the RealityDataFormat if known, otherwise function will try to extract it from the tilesetUrl\n * @returns the RealityDataSourceKey that uniquely identify a reality data for a provider\n */\n export function createKeyFromUrl(tilesetUrl: string, inputProvider?: RealityDataProvider, inputFormat?: RealityDataFormat): RealityDataSourceKey {\n let format = inputFormat ? inputFormat : RealityDataFormat.fromUrl(tilesetUrl);\n if (CesiumIonAssetProvider.isProviderUrl(tilesetUrl)) {\n const provider = RealityDataProvider.CesiumIonAsset;\n let cesiumIonAssetKey: RealityDataSourceKey = { provider, format, id: CesiumIonAssetProvider.osmBuildingId }; // default OSM building\n // Parse URL to extract possible asset id and key if provided\n const cesiumAsset = CesiumIonAssetProvider.parseCesiumUrl(tilesetUrl);\n if (cesiumAsset) {\n cesiumIonAssetKey = RealityDataSource.createCesiumIonAssetKey(cesiumAsset.id, cesiumAsset.key);\n }\n return cesiumIonAssetKey;\n }\n\n // Try to extract realityDataId from URL and if not possible, use the url as the key\n if (ContextShareProvider.isProviderUrl(tilesetUrl)) {\n const info = ContextShareProvider.getInfoFromUrl(tilesetUrl);\n const provider = inputProvider ? inputProvider : info.provider;\n format = inputFormat ? inputFormat : info.format;\n const contextShareKey: RealityDataSourceKey = { provider, format, id: info.id, iTwinId: info.iTwinId };\n return contextShareKey;\n }\n\n // default to tileSetUrl\n const provider2 = inputProvider ? inputProvider : RealityDataProvider.TilesetUrl;\n const urlKey: RealityDataSourceKey = { provider: provider2, format, id: tilesetUrl };\n return urlKey;\n }\n /** @alpha - was used for a very specific case of point cloud (opc) attachment that should not be made public */\n export function createKeyFromBlobUrl(blobUrl: string, inputProvider?: RealityDataProvider, inputFormat?: RealityDataFormat): RealityDataSourceKey {\n const info = ContextShareProvider.getInfoFromBlobUrl(blobUrl);\n const format = inputFormat ? inputFormat : info.format;\n const provider = inputProvider ? inputProvider : info.provider;\n const contextShareKey: RealityDataSourceKey = { provider, format, id: info.id };\n return contextShareKey;\n }\n /** @alpha - OrbitGtBlobProps is alpha */\n export function createKeyFromOrbitGtBlobProps(orbitGtBlob: OrbitGtBlobProps, inputProvider?: RealityDataProvider, inputFormat?: RealityDataFormat): RealityDataSourceKey {\n const format = inputFormat ? inputFormat : RealityDataFormat.OPC;\n if (orbitGtBlob.blobFileName && orbitGtBlob.blobFileName.toLowerCase().startsWith(\"http\")) {\n return RealityDataSource.createKeyFromBlobUrl(orbitGtBlob.blobFileName, inputProvider, format);\n } else if (orbitGtBlob.rdsUrl) {\n return RealityDataSource.createKeyFromUrl(orbitGtBlob.rdsUrl, inputProvider, format);\n }\n const provider = inputProvider ? inputProvider : RealityDataProvider.OrbitGtBlob;\n const id = `${orbitGtBlob.accountName}:${orbitGtBlob.containerName}:${orbitGtBlob.blobFileName}:?${orbitGtBlob.sasToken}`;\n return { provider, format, id };\n }\n /** @alpha - OrbitGtBlobProps is alpha */\n export function createOrbitGtBlobPropsFromKey(rdSourceKey: RealityDataSourceKey): OrbitGtBlobProps | undefined {\n if (rdSourceKey.provider !== RealityDataProvider.OrbitGtBlob)\n return undefined;\n const splitIds = rdSourceKey.id.split(\":\");\n const sasTokenIndex = rdSourceKey.id.indexOf(\":?\");\n const sasToken = rdSourceKey.id.substring(sasTokenIndex + 2);\n const orbitGtBlob: OrbitGtBlobProps = {\n accountName: splitIds[0],\n containerName: splitIds[1],\n blobFileName: splitIds[2],\n sasToken,\n };\n return orbitGtBlob;\n }\n /** @internal - Is used by \"fdt attach cesium asset\" keyin*/\n export function createCesiumIonAssetKey(osmAssetId: number, requestKey: string): RealityDataSourceKey {\n const id = getCesiumAssetUrl(osmAssetId,requestKey);\n return {provider: RealityDataProvider.CesiumIonAsset, format: RealityDataFormat.ThreeDTile, id};\n }\n /** Return an instance of a RealityDataSource from a source key.\n * There will aways be only one reality data RealityDataSource for a corresponding reality data source key.\n * @alpha\n */\n export async function fromKey(key: RealityDataSourceKey, iTwinId: GuidString | undefined): Promise<RealityDataSource | undefined> {\n const provider = IModelApp.realityDataSourceProviders.find(key.provider);\n if (!provider) {\n Logger.logWarning(loggerCategory, `RealityDataSourceProvider \"${key.provider}\" is not registered`);\n return undefined;\n }\n\n return provider.createRealityDataSource(key, iTwinId);\n }\n}\n\n/** A named supplier of [RealityDataSource]]s.\n * The provider's name is stored in a [RealityDataSourceKey]($common). When the [[RealityDataSource]] is requested from the key,\n * the provider is looked up in [[IModelApp.realityDataSourceProviders]] by its name and, if found, its [[createRealityDataSource]] method\n * is invoked to produce the reality data source.\n * @alpha\n */\nexport interface RealityDataSourceProvider {\n /** Produce a RealityDataSource for the specified `key`.\n * @param key Identifies the reality data source.\n * @param iTwinId A default iTwinId to use.\n * @returns the requested reality data source, or `undefined` if it could not be produced.\n */\n createRealityDataSource(key: RealityDataSourceKey, iTwinId: GuidString | undefined): Promise<RealityDataSource | undefined>;\n}\n\n/** A registry of [[RealityDataSourceProvider]]s identified by their unique names. The registry can be accessed via [[IModelApp.realityDataSourceProviders]].\n * It includes a handful of built-in providers for sources like Cesium ION, ContextShare, OrbitGT, and arbitrary public-accessible URLs.\n * Any number of additional providers can be registered. They should typically be registered just after [[IModelAp.startup]].\n * @alpha\n */\nexport class RealityDataSourceProviderRegistry {\n private readonly _providers = new Map<string, RealityDataSourceProvider>();\n\n /** @internal */\n public constructor() {\n this.register(RealityDataProvider.CesiumIonAsset, {\n createRealityDataSource: async (key, iTwinId) => RealityDataSourceCesiumIonAssetImpl.createFromKey(key, iTwinId),\n });\n this.register(RealityDataProvider.TilesetUrl, {\n createRealityDataSource: async (key, iTwinId) => RealityDataSourceTilesetUrlImpl.createFromKey(key, iTwinId),\n });\n this.register(RealityDataProvider.ContextShare, {\n createRealityDataSource: async (key, iTwinId) => RealityDataSourceContextShareImpl.createFromKey(key, iTwinId),\n });\n this.register(RealityDataProvider.OrbitGtBlob, {\n // ###TODO separate TilesetUrlImpl\n createRealityDataSource: async (key, iTwinId) => RealityDataSourceTilesetUrlImpl.createFromKey(key, iTwinId),\n });\n }\n\n /** Register `provider` to produce [[RealityDataSource]]s for the specified provider `name`. */\n public register(name: string, provider: RealityDataSourceProvider): void {\n this._providers.set(name, provider);\n }\n\n /** Look up the provider registered by the specified `name`. */\n public find(name: string): RealityDataSourceProvider | undefined {\n return this._providers.get(name);\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"RealityDataSourceCesiumIonAssetImpl.js","sourceRoot":"","sources":["../../src/RealityDataSourceCesiumIonAssetImpl.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 Tiles\r\n */\r\nimport { request } from \"./request/Request\";\r\nimport { assert, BentleyStatus, GuidString } from \"@itwin/core-bentley\";\r\nimport { IModelError, RealityData, RealityDataProvider, RealityDataSourceKey, RealityDataSourceProps } from \"@itwin/core-common\";\r\nimport { CesiumIonAssetProvider, getCesiumAccessTokenAndEndpointUrl, getCesiumAssetUrl, getCesiumOSMBuildingsUrl } from \"./tile/internal\";\r\nimport { PublisherProductInfo, RealityDataSource, SpatialLocationAndExtents } from \"./RealityDataSource\";\r\n\r\n/** This class provides access to the reality data provider services.\r\n * It encapsulates access to a reality data weiter it be from local access, http or ProjectWise Context Share.\r\n * The key provided at the creation determines if this is ProjectWise Context Share reference.\r\n * If not then it is considered local (ex: C:\\temp\\TileRoot.json) or plain http access (http://someserver.com/data/TileRoot.json)\r\n * There is a one to one relationship between a reality data and the instances of present class.\r\n* @internal\r\n*/\r\nexport class RealityDataSourceCesiumIonAssetImpl implements RealityDataSource {\r\n public readonly key: RealityDataSourceKey;\r\n /** The URL that supplies the 3d tiles for displaying the reality model. */\r\n private _tilesetUrl: string | undefined;\r\n /** For use by all Reality Data. For RD stored on PW Context Share, represents the portion from the root of the Azure Blob Container*/\r\n private _baseUrl: string = \"\";\r\n /** Request authorization for non PW ContextShare requests.*/\r\n private _requestAuthorization?: string;\r\n\r\n /** Construct a new reality data source.\r\n * @param props JSON representation of the reality data source\r\n */\r\n protected constructor(props: RealityDataSourceProps) {\r\n assert(props.sourceKey.provider === RealityDataProvider.CesiumIonAsset);\r\n this.key = props.sourceKey;\r\n }\r\n\r\n /**\r\n * Create an instance of this class from a source key and iTwin context/\r\n */\r\n public static async createFromKey(sourceKey: RealityDataSourceKey, iTwinId: GuidString | undefined): Promise<RealityDataSource | undefined> {\r\n if (sourceKey.provider !== RealityDataProvider.CesiumIonAsset)\r\n return undefined;\r\n const rdSource = new RealityDataSourceCesiumIonAssetImpl({ sourceKey });\r\n let tilesetUrl: string | undefined;\r\n try {\r\n tilesetUrl = await rdSource.getServiceUrl(iTwinId);\r\n } catch (e) {\r\n }\r\n\r\n return (tilesetUrl !== undefined) ? rdSource : undefined;\r\n }\r\n\r\n public get isContextShare(): boolean {\r\n return false;\r\n }\r\n\r\n /**\r\n * Returns Reality Data if available\r\n */\r\n public get realityData(): RealityData | undefined {\r\n return undefined;\r\n }\r\n public get realityDataId(): string | undefined {\r\n return undefined;\r\n }\r\n /**\r\n * Returns Reality Data type if available\r\n */\r\n public get realityDataType(): string | undefined {\r\n return undefined;\r\n }\r\n\r\n // This is to set the root url from the provided root document path.\r\n // If the root document is stored on PW Context Share then the root document property of the Reality Data is provided,\r\n // otherwise the full path to root document is given.\r\n // The base URL contains the base URL from which tile relative path are constructed.\r\n // The tile's path root will need to be reinserted for child tiles to return a 200\r\n private setBaseUrl(url: string): void {\r\n const urlParts = url.split(\"/\");\r\n urlParts.pop();\r\n if (urlParts.length === 0)\r\n this._baseUrl = \"\";\r\n else\r\n this._baseUrl = `${urlParts.join(\"/\")}/`;\r\n }\r\n\r\n /**\r\n * This method returns the URL to access the actual 3d tiles from the service provider.\r\n * @returns string containing the URL to reality data.\r\n */\r\n public async getServiceUrl(_iTwinId: GuidString | undefined): Promise<string | undefined> {\r\n // If url was not resolved - resolve it\r\n this._tilesetUrl = this.key.id;\r\n if (this.key.id === CesiumIonAssetProvider.osmBuildingId) {\r\n this._tilesetUrl = getCesiumOSMBuildingsUrl();\r\n } else {\r\n const parsedId = CesiumIonAssetProvider.parseCesiumUrl(this.key.id);\r\n if (parsedId) {\r\n this._tilesetUrl = getCesiumAssetUrl(parsedId.id, parsedId.key);\r\n }\r\n }\r\n\r\n return this._tilesetUrl;\r\n }\r\n\r\n public async getRootDocument(iTwinId: GuidString | undefined): Promise<any> {\r\n let url = await this.getServiceUrl(iTwinId);\r\n if (!url)\r\n throw new IModelError(BentleyStatus.ERROR, \"Unable to get service url\");\r\n\r\n // The following is only if the reality data is not stored on PW Context Share.\r\n const cesiumAsset = CesiumIonAssetProvider.parseCesiumUrl(url);\r\n if (cesiumAsset) {\r\n const tokenAndUrl = await getCesiumAccessTokenAndEndpointUrl(cesiumAsset.id, cesiumAsset.key);\r\n if (tokenAndUrl.url && tokenAndUrl.token) {\r\n url = tokenAndUrl.url;\r\n this._requestAuthorization = `Bearer ${tokenAndUrl.token}`;\r\n }\r\n }\r\n\r\n // The following is only if the reality data is not stored on PW Context Share.\r\n this.setBaseUrl(url);\r\n const headers = { authorization: this._requestAuthorization };\r\n\r\n return request(url, \"json\", { headers });\r\n }\r\n\r\n /**\r\n * Returns the tile content. The path to the tile is relative to the base url of present reality data whatever the type.\r\n */\r\n public async getTileContent(name: string): Promise<ArrayBuffer> {\r\n const tileUrl = this._baseUrl + name;\r\n const headers = { authorization: this._requestAuthorization };\r\n\r\n return request(tileUrl, \"arraybuffer\", { headers });\r\n }\r\n\r\n /**\r\n * Returns the tile content in json format. The path to the tile is relative to the base url of present reality data whatever the type.\r\n */\r\n public async getTileJson(name: string): Promise<any> {\r\n const tileUrl = this._baseUrl + name;\r\n const headers = { authorization: this._requestAuthorization };\r\n\r\n return request(tileUrl, \"json\", { headers });\r\n }\r\n\r\n public getTileContentType(url: string): \"tile\" | \"tileset\" {\r\n return url.endsWith(\"json\") ? \"tileset\" : \"tile\";\r\n }\r\n\r\n /**\r\n * Gets spatial location and extents of this reality data source\r\n * @returns spatial location and extents\r\n * @internal\r\n */\r\n public async getSpatialLocationAndExtents(): Promise<SpatialLocationAndExtents | undefined> {\r\n // Cesium Ion asset we currenlty support are unbound (cover all earth)\r\n const spatialLocation: SpatialLocationAndExtents | undefined = undefined;\r\n return spatialLocation;\r\n }\r\n /**\r\n * Gets information to identify the product and engine that create this reality data\r\n * Will return undefined if cannot be resolved\r\n * @returns information to identify the product and engine that create this reality data\r\n * @alpha\r\n */\r\n public async getPublisherProductInfo(): Promise<PublisherProductInfo | undefined> {\r\n let publisherInfo: PublisherProductInfo | undefined;\r\n return publisherInfo;\r\n }\r\n}\r\n\r\n"]}
1
+ {"version":3,"file":"RealityDataSourceCesiumIonAssetImpl.js","sourceRoot":"","sources":["../../src/RealityDataSourceCesiumIonAssetImpl.ts"],"names":[],"mappings":"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","sourcesContent":["/*---------------------------------------------------------------------------------------------\n* Copyright (c) Bentley Systems, Incorporated. All rights reserved.\n* See LICENSE.md in the project root for license terms and full copyright notice.\n*--------------------------------------------------------------------------------------------*/\n/** @packageDocumentation\n * @module Tiles\n */\nimport { request } from \"./request/Request\";\nimport { assert, BentleyStatus, GuidString } from \"@itwin/core-bentley\";\nimport { IModelError, RealityData, RealityDataProvider, RealityDataSourceKey, RealityDataSourceProps } from \"@itwin/core-common\";\nimport { CesiumIonAssetProvider, getCesiumAccessTokenAndEndpointUrl, getCesiumAssetUrl, getCesiumOSMBuildingsUrl } from \"./tile/internal\";\nimport { PublisherProductInfo, RealityDataSource, SpatialLocationAndExtents } from \"./RealityDataSource\";\n\n/** This class provides access to the reality data provider services.\n * It encapsulates access to a reality data weiter it be from local access, http or ProjectWise Context Share.\n * The key provided at the creation determines if this is ProjectWise Context Share reference.\n * If not then it is considered local (ex: C:\\temp\\TileRoot.json) or plain http access (http://someserver.com/data/TileRoot.json)\n * There is a one to one relationship between a reality data and the instances of present class.\n* @internal\n*/\nexport class RealityDataSourceCesiumIonAssetImpl implements RealityDataSource {\n public readonly key: RealityDataSourceKey;\n /** The URL that supplies the 3d tiles for displaying the reality model. */\n private _tilesetUrl: string | undefined;\n /** For use by all Reality Data. For RD stored on PW Context Share, represents the portion from the root of the Azure Blob Container*/\n private _baseUrl: string = \"\";\n /** Request authorization for non PW ContextShare requests.*/\n private _requestAuthorization?: string;\n\n /** Construct a new reality data source.\n * @param props JSON representation of the reality data source\n */\n protected constructor(props: RealityDataSourceProps) {\n assert(props.sourceKey.provider === RealityDataProvider.CesiumIonAsset);\n this.key = props.sourceKey;\n }\n\n /**\n * Create an instance of this class from a source key and iTwin context/\n */\n public static async createFromKey(sourceKey: RealityDataSourceKey, iTwinId: GuidString | undefined): Promise<RealityDataSource | undefined> {\n if (sourceKey.provider !== RealityDataProvider.CesiumIonAsset)\n return undefined;\n const rdSource = new RealityDataSourceCesiumIonAssetImpl({ sourceKey });\n let tilesetUrl: string | undefined;\n try {\n tilesetUrl = await rdSource.getServiceUrl(iTwinId);\n } catch (e) {\n }\n\n return (tilesetUrl !== undefined) ? rdSource : undefined;\n }\n\n public get isContextShare(): boolean {\n return false;\n }\n\n /**\n * Returns Reality Data if available\n */\n public get realityData(): RealityData | undefined {\n return undefined;\n }\n public get realityDataId(): string | undefined {\n return undefined;\n }\n /**\n * Returns Reality Data type if available\n */\n public get realityDataType(): string | undefined {\n return undefined;\n }\n\n // This is to set the root url from the provided root document path.\n // If the root document is stored on PW Context Share then the root document property of the Reality Data is provided,\n // otherwise the full path to root document is given.\n // The base URL contains the base URL from which tile relative path are constructed.\n // The tile's path root will need to be reinserted for child tiles to return a 200\n private setBaseUrl(url: string): void {\n const urlParts = url.split(\"/\");\n urlParts.pop();\n if (urlParts.length === 0)\n this._baseUrl = \"\";\n else\n this._baseUrl = `${urlParts.join(\"/\")}/`;\n }\n\n /**\n * This method returns the URL to access the actual 3d tiles from the service provider.\n * @returns string containing the URL to reality data.\n */\n public async getServiceUrl(_iTwinId: GuidString | undefined): Promise<string | undefined> {\n // If url was not resolved - resolve it\n this._tilesetUrl = this.key.id;\n if (this.key.id === CesiumIonAssetProvider.osmBuildingId) {\n this._tilesetUrl = getCesiumOSMBuildingsUrl();\n } else {\n const parsedId = CesiumIonAssetProvider.parseCesiumUrl(this.key.id);\n if (parsedId) {\n this._tilesetUrl = getCesiumAssetUrl(parsedId.id, parsedId.key);\n }\n }\n\n return this._tilesetUrl;\n }\n\n public async getRootDocument(iTwinId: GuidString | undefined): Promise<any> {\n let url = await this.getServiceUrl(iTwinId);\n if (!url)\n throw new IModelError(BentleyStatus.ERROR, \"Unable to get service url\");\n\n // The following is only if the reality data is not stored on PW Context Share.\n const cesiumAsset = CesiumIonAssetProvider.parseCesiumUrl(url);\n if (cesiumAsset) {\n const tokenAndUrl = await getCesiumAccessTokenAndEndpointUrl(cesiumAsset.id, cesiumAsset.key);\n if (tokenAndUrl.url && tokenAndUrl.token) {\n url = tokenAndUrl.url;\n this._requestAuthorization = `Bearer ${tokenAndUrl.token}`;\n }\n }\n\n // The following is only if the reality data is not stored on PW Context Share.\n this.setBaseUrl(url);\n const headers = { authorization: this._requestAuthorization };\n\n return request(url, \"json\", { headers });\n }\n\n /**\n * Returns the tile content. The path to the tile is relative to the base url of present reality data whatever the type.\n */\n public async getTileContent(name: string): Promise<ArrayBuffer> {\n const tileUrl = this._baseUrl + name;\n const headers = { authorization: this._requestAuthorization };\n\n return request(tileUrl, \"arraybuffer\", { headers });\n }\n\n /**\n * Returns the tile content in json format. The path to the tile is relative to the base url of present reality data whatever the type.\n */\n public async getTileJson(name: string): Promise<any> {\n const tileUrl = this._baseUrl + name;\n const headers = { authorization: this._requestAuthorization };\n\n return request(tileUrl, \"json\", { headers });\n }\n\n public getTileContentType(url: string): \"tile\" | \"tileset\" {\n return url.endsWith(\"json\") ? \"tileset\" : \"tile\";\n }\n\n /**\n * Gets spatial location and extents of this reality data source\n * @returns spatial location and extents\n * @internal\n */\n public async getSpatialLocationAndExtents(): Promise<SpatialLocationAndExtents | undefined> {\n // Cesium Ion asset we currenlty support are unbound (cover all earth)\n const spatialLocation: SpatialLocationAndExtents | undefined = undefined;\n return spatialLocation;\n }\n /**\n * Gets information to identify the product and engine that create this reality data\n * Will return undefined if cannot be resolved\n * @returns information to identify the product and engine that create this reality data\n * @alpha\n */\n public async getPublisherProductInfo(): Promise<PublisherProductInfo | undefined> {\n let publisherInfo: PublisherProductInfo | undefined;\n return publisherInfo;\n }\n}\n\n"]}