@itwin/core-frontend 5.2.0-dev.1 → 5.2.0-dev.11
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.
- package/CHANGELOG.md +48 -1
- package/lib/cjs/BackgroundMapGeometry.js +13 -13
- package/lib/cjs/BackgroundMapGeometry.js.map +1 -1
- package/lib/cjs/BriefcaseConnection.d.ts.map +1 -1
- package/lib/cjs/BriefcaseConnection.js +2 -2
- package/lib/cjs/BriefcaseConnection.js.map +1 -1
- package/lib/cjs/CheckpointConnection.d.ts.map +1 -1
- package/lib/cjs/CheckpointConnection.js +3 -3
- package/lib/cjs/CheckpointConnection.js.map +1 -1
- package/lib/cjs/ContextRealityModelState.js.map +1 -1
- package/lib/cjs/ElementLocateManager.d.ts.map +1 -1
- package/lib/cjs/ElementLocateManager.js +7 -6
- package/lib/cjs/ElementLocateManager.js.map +1 -1
- package/lib/cjs/EmphasizeElements.d.ts.map +1 -1
- package/lib/cjs/EmphasizeElements.js +3 -1
- package/lib/cjs/EmphasizeElements.js.map +1 -1
- package/lib/cjs/EnvironmentDecorations.d.ts.map +1 -1
- package/lib/cjs/EnvironmentDecorations.js +4 -0
- package/lib/cjs/EnvironmentDecorations.js.map +1 -1
- package/lib/cjs/FrustumAnimator.d.ts.map +1 -1
- package/lib/cjs/FrustumAnimator.js +3 -2
- package/lib/cjs/FrustumAnimator.js.map +1 -1
- package/lib/cjs/GlobeAnimator.d.ts.map +1 -1
- package/lib/cjs/GlobeAnimator.js +7 -6
- package/lib/cjs/GlobeAnimator.js.map +1 -1
- package/lib/cjs/HitDetail.d.ts.map +1 -1
- package/lib/cjs/HitDetail.js +12 -7
- package/lib/cjs/HitDetail.js.map +1 -1
- package/lib/cjs/IModelApp.d.ts.map +1 -1
- package/lib/cjs/IModelApp.js +2 -1
- package/lib/cjs/IModelApp.js.map +1 -1
- package/lib/cjs/IModelConnection.d.ts +4 -0
- package/lib/cjs/IModelConnection.d.ts.map +1 -1
- package/lib/cjs/IModelConnection.js +156 -14
- package/lib/cjs/IModelConnection.js.map +1 -1
- package/lib/cjs/IpcApp.d.ts.map +1 -1
- package/lib/cjs/IpcApp.js +1 -1
- package/lib/cjs/IpcApp.js.map +1 -1
- package/lib/cjs/LinePlaneIntersect.d.ts.map +1 -1
- package/lib/cjs/LinePlaneIntersect.js +2 -0
- package/lib/cjs/LinePlaneIntersect.js.map +1 -1
- package/lib/cjs/LocalhostIpcApp.d.ts.map +1 -1
- package/lib/cjs/LocalhostIpcApp.js +2 -1
- package/lib/cjs/LocalhostIpcApp.js.map +1 -1
- package/lib/cjs/Marker.d.ts.map +1 -1
- package/lib/cjs/Marker.js +4 -3
- package/lib/cjs/Marker.js.map +1 -1
- package/lib/cjs/ModelState.d.ts.map +1 -1
- package/lib/cjs/ModelState.js +2 -2
- package/lib/cjs/ModelState.js.map +1 -1
- package/lib/cjs/NativeApp.d.ts.map +1 -1
- package/lib/cjs/NativeApp.js +5 -4
- package/lib/cjs/NativeApp.js.map +1 -1
- package/lib/cjs/NativeAppLogger.d.ts.map +1 -1
- package/lib/cjs/NativeAppLogger.js +1 -0
- package/lib/cjs/NativeAppLogger.js.map +1 -1
- package/lib/cjs/PlanarClipMaskState.js +3 -3
- package/lib/cjs/PlanarClipMaskState.js.map +1 -1
- package/lib/cjs/SelectionSet.d.ts.map +1 -1
- package/lib/cjs/SelectionSet.js +1 -0
- package/lib/cjs/SelectionSet.js.map +1 -1
- package/lib/cjs/SheetViewState.d.ts.map +1 -1
- package/lib/cjs/SheetViewState.js +5 -5
- package/lib/cjs/SheetViewState.js.map +1 -1
- package/lib/cjs/SpatialViewState.d.ts.map +1 -1
- package/lib/cjs/SpatialViewState.js +1 -1
- package/lib/cjs/SpatialViewState.js.map +1 -1
- package/lib/cjs/Sprites.js +2 -2
- package/lib/cjs/Sprites.js.map +1 -1
- package/lib/cjs/TentativePoint.d.ts.map +1 -1
- package/lib/cjs/TentativePoint.js +10 -9
- package/lib/cjs/TentativePoint.js.map +1 -1
- package/lib/cjs/ViewCreator2d.js +1 -1
- package/lib/cjs/ViewCreator2d.js.map +1 -1
- package/lib/cjs/ViewCreator3d.js +1 -1
- package/lib/cjs/ViewCreator3d.js.map +1 -1
- package/lib/cjs/ViewPose.d.ts.map +1 -1
- package/lib/cjs/ViewPose.js +4 -1
- package/lib/cjs/ViewPose.js.map +1 -1
- package/lib/cjs/ViewState.d.ts.map +1 -1
- package/lib/cjs/ViewState.js +17 -12
- package/lib/cjs/ViewState.js.map +1 -1
- package/lib/cjs/ViewingSpace.d.ts.map +1 -1
- package/lib/cjs/ViewingSpace.js +2 -0
- package/lib/cjs/ViewingSpace.js.map +1 -1
- package/lib/cjs/Viewport.d.ts.map +1 -1
- package/lib/cjs/Viewport.js +17 -10
- package/lib/cjs/Viewport.js.map +1 -1
- package/lib/cjs/common/ImageUtil.d.ts.map +1 -1
- package/lib/cjs/common/ImageUtil.js +2 -1
- package/lib/cjs/common/ImageUtil.js.map +1 -1
- package/lib/cjs/common/internal/render/GeometryAccumulator.d.ts.map +1 -1
- package/lib/cjs/common/internal/render/GeometryAccumulator.js +4 -3
- package/lib/cjs/common/internal/render/GeometryAccumulator.js.map +1 -1
- package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.d.ts.map +1 -1
- package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.js +2 -0
- package/lib/cjs/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -1
- package/lib/cjs/common/internal/render/MeshBuilder.js +1 -1
- package/lib/cjs/common/internal/render/MeshBuilder.js.map +1 -1
- package/lib/cjs/common/internal/render/VertexTableBuilder.d.ts.map +1 -1
- package/lib/cjs/common/internal/render/VertexTableBuilder.js +16 -7
- package/lib/cjs/common/internal/render/VertexTableBuilder.js.map +1 -1
- package/lib/cjs/extension/ExtensionAdmin.js +2 -2
- package/lib/cjs/extension/ExtensionAdmin.js.map +1 -1
- package/lib/cjs/internal/GoogleMapsDecorator.js +1 -1
- package/lib/cjs/internal/GoogleMapsDecorator.js.map +1 -1
- package/lib/cjs/internal/ScriptUtils.js +1 -0
- package/lib/cjs/internal/ScriptUtils.js.map +1 -1
- package/lib/cjs/internal/render/UpsampleRealityMeshParams.d.ts.map +1 -1
- package/lib/cjs/internal/render/UpsampleRealityMeshParams.js +2 -1
- package/lib/cjs/internal/render/UpsampleRealityMeshParams.js.map +1 -1
- package/lib/cjs/internal/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js +7 -2
- package/lib/cjs/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/AttributeBuffers.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/AttributeBuffers.js +5 -3
- package/lib/cjs/internal/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/cjs/internal/render/webgl/AttributeMap.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/AttributeMap.js +2 -0
- package/lib/cjs/internal/render/webgl/AttributeMap.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js +3 -3
- package/lib/cjs/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BatchUniforms.js +1 -1
- package/lib/cjs/internal/render/webgl/BatchUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/BranchState.js +2 -1
- package/lib/cjs/internal/render/webgl/BranchState.js.map +1 -1
- package/lib/cjs/internal/render/webgl/BranchUniforms.js +2 -2
- package/lib/cjs/internal/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/CachedGeometry.js +2 -2
- package/lib/cjs/internal/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ClipStack.js +1 -1
- package/lib/cjs/internal/render/webgl/ClipStack.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ColorInfo.js +1 -1
- package/lib/cjs/internal/render/webgl/ColorInfo.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Contours.js +3 -3
- package/lib/cjs/internal/render/webgl/Contours.js.map +1 -1
- package/lib/cjs/internal/render/webgl/EDL.js +18 -18
- package/lib/cjs/internal/render/webgl/EDL.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FeatureOverrides.js +4 -4
- package/lib/cjs/internal/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FrameBuffer.js +3 -3
- package/lib/cjs/internal/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/FrustumUniforms.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/FrustumUniforms.js +2 -1
- package/lib/cjs/internal/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/GLTimer.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/GLTimer.js +2 -0
- package/lib/cjs/internal/render/webgl/GLTimer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/MapLayerParams.js +2 -2
- package/lib/cjs/internal/render/webgl/MapLayerParams.js.map +1 -1
- package/lib/cjs/internal/render/webgl/MeshData.js +2 -2
- package/lib/cjs/internal/render/webgl/MeshData.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PerformanceMetrics.js +1 -1
- package/lib/cjs/internal/render/webgl/PerformanceMetrics.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarClassifier.js +8 -8
- package/lib/cjs/internal/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarGrid.js +1 -1
- package/lib/cjs/internal/render/webgl/PlanarGrid.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarTextureProjection.d.ts +0 -3
- package/lib/cjs/internal/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/PlanarTextureProjection.js +6 -5
- package/lib/cjs/internal/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/cjs/internal/render/webgl/PointCloud.js +1 -1
- package/lib/cjs/internal/render/webgl/PointCloud.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RealityMesh.js +1 -1
- package/lib/cjs/internal/render/webgl/RealityMesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/RenderBuffer.js +2 -2
- package/lib/cjs/internal/render/webgl/RenderBuffer.js.map +1 -1
- package/lib/cjs/internal/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/SceneCompositor.js +115 -85
- package/lib/cjs/internal/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ScratchDrawParams.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/ScratchDrawParams.js +11 -10
- package/lib/cjs/internal/render/webgl/ScratchDrawParams.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ScreenSpaceEffect.js +3 -3
- package/lib/cjs/internal/render/webgl/ScreenSpaceEffect.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShaderProgram.js +3 -3
- package/lib/cjs/internal/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/cjs/internal/render/webgl/ShadowUniforms.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/ShadowUniforms.js +2 -1
- package/lib/cjs/internal/render/webgl/ShadowUniforms.js.map +1 -1
- package/lib/cjs/internal/render/webgl/SolarShadowMap.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/SolarShadowMap.js +6 -4
- package/lib/cjs/internal/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/cjs/internal/render/webgl/System.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/System.js +1 -1
- package/lib/cjs/internal/render/webgl/System.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Target.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/Target.js +10 -7
- package/lib/cjs/internal/render/webgl/Target.js.map +1 -1
- package/lib/cjs/internal/render/webgl/Texture.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/Texture.js +10 -8
- package/lib/cjs/internal/render/webgl/Texture.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Animation.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Animation.js +4 -2
- package/lib/cjs/internal/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Color.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Color.js +2 -1
- package/lib/cjs/internal/render/webgl/glsl/Color.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Composite.js +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Composite.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/CopyStencil.js +3 -2
- package/lib/cjs/internal/render/webgl/glsl/CopyStencil.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/PlanarClassification.js +3 -3
- package/lib/cjs/internal/render/webgl/glsl/PlanarClassification.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/PlanarGrid.d.ts.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/PlanarGrid.js +4 -3
- package/lib/cjs/internal/render/webgl/glsl/PlanarGrid.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js +8 -8
- package/lib/cjs/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Surface.js +10 -10
- package/lib/cjs/internal/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/cjs/internal/render/webgl/glsl/Vertex.js +2 -2
- package/lib/cjs/internal/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/cjs/internal/tile/B3dmReader.d.ts.map +1 -1
- package/lib/cjs/internal/tile/B3dmReader.js +1 -1
- package/lib/cjs/internal/tile/B3dmReader.js.map +1 -1
- package/lib/cjs/internal/tile/DynamicIModelTile.js +1 -0
- package/lib/cjs/internal/tile/DynamicIModelTile.js.map +1 -1
- package/lib/cjs/internal/tile/FetchCloudStorage.js +1 -1
- package/lib/cjs/internal/tile/FetchCloudStorage.js.map +1 -1
- package/lib/cjs/internal/tile/LRUTileList.d.ts.map +1 -1
- package/lib/cjs/internal/tile/LRUTileList.js +4 -0
- package/lib/cjs/internal/tile/LRUTileList.js.map +1 -1
- package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -1
- package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js +2 -1
- package/lib/cjs/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
- package/lib/cjs/internal/tile/OPCFormatInterpreter.js +4 -4
- package/lib/cjs/internal/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/cjs/internal/tile/OrbitGtTileTree.d.ts.map +1 -1
- package/lib/cjs/internal/tile/OrbitGtTileTree.js +2 -2
- package/lib/cjs/internal/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/cjs/internal/tile/RealityModelTileTree.js +3 -3
- package/lib/cjs/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/cjs/internal/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/cjs/internal/tile/RealityTileLoader.js +3 -0
- package/lib/cjs/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/cjs/internal/tile/ThreeDTileFormatInterpreter.js +3 -3
- package/lib/cjs/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -1
- package/lib/cjs/internal/tile/TileUserSet.d.ts.map +1 -1
- package/lib/cjs/internal/tile/TileUserSet.js +4 -0
- package/lib/cjs/internal/tile/TileUserSet.js.map +1 -1
- package/lib/cjs/internal/tile/map/ArcGISTileMap.js +1 -1
- package/lib/cjs/internal/tile/map/ArcGISTileMap.js.map +1 -1
- package/lib/cjs/internal/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/cjs/internal/tile/map/ArcGisUtilities.js +4 -0
- package/lib/cjs/internal/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +3 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js +2 -2
- package/lib/cjs/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +1 -1
- package/lib/cjs/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/cjs/internal/tile/map/MapTileAvailability.d.ts.map +1 -1
- package/lib/cjs/internal/tile/map/MapTileAvailability.js +5 -2
- package/lib/cjs/internal/tile/map/MapTileAvailability.js.map +1 -1
- package/lib/cjs/internal/tile/map/WmtsCapabilities.d.ts.map +1 -1
- package/lib/cjs/internal/tile/map/WmtsCapabilities.js +3 -2
- package/lib/cjs/internal/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/cjs/properties/FormattedQuantityDescription.d.ts.map +1 -1
- package/lib/cjs/properties/FormattedQuantityDescription.js +2 -0
- package/lib/cjs/properties/FormattedQuantityDescription.js.map +1 -1
- package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
- package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js +2 -0
- package/lib/cjs/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
- package/lib/cjs/quantity-formatting/QuantityFormatter.js +7 -4
- package/lib/cjs/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/cjs/tile/GltfReader.d.ts +5 -2
- package/lib/cjs/tile/GltfReader.d.ts.map +1 -1
- package/lib/cjs/tile/GltfReader.js +54 -16
- package/lib/cjs/tile/GltfReader.js.map +1 -1
- package/lib/cjs/tile/RealityTile.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTile.js +2 -2
- package/lib/cjs/tile/RealityTile.js.map +1 -1
- package/lib/cjs/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/RealityTileTree.js +5 -5
- package/lib/cjs/tile/RealityTileTree.js.map +1 -1
- package/lib/cjs/tile/TileAdmin.js.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/cjs/tile/TileDrawArgs.js +2 -1
- package/lib/cjs/tile/TileDrawArgs.js.map +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js +1 -1
- package/lib/cjs/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.js +1 -1
- package/lib/cjs/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapLayerSources.js +9 -1
- package/lib/cjs/tile/map/MapLayerSources.js.map +1 -1
- package/lib/cjs/tile/map/MapTile.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTile.js +10 -8
- package/lib/cjs/tile/map/MapTile.js.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTileTree.js +8 -7
- package/lib/cjs/tile/map/MapTileTree.js.map +1 -1
- package/lib/cjs/tile/map/MapTilingScheme.d.ts.map +1 -1
- package/lib/cjs/tile/map/MapTilingScheme.js +2 -1
- package/lib/cjs/tile/map/MapTilingScheme.js.map +1 -1
- package/lib/cjs/tools/Tool.js +1 -1
- package/lib/cjs/tools/Tool.js.map +1 -1
- package/lib/esm/BackgroundMapGeometry.js +14 -14
- package/lib/esm/BackgroundMapGeometry.js.map +1 -1
- package/lib/esm/BriefcaseConnection.d.ts.map +1 -1
- package/lib/esm/BriefcaseConnection.js +2 -2
- package/lib/esm/BriefcaseConnection.js.map +1 -1
- package/lib/esm/CheckpointConnection.d.ts.map +1 -1
- package/lib/esm/CheckpointConnection.js +4 -4
- package/lib/esm/CheckpointConnection.js.map +1 -1
- package/lib/esm/ContextRealityModelState.js.map +1 -1
- package/lib/esm/ElementLocateManager.d.ts.map +1 -1
- package/lib/esm/ElementLocateManager.js +8 -7
- package/lib/esm/ElementLocateManager.js.map +1 -1
- package/lib/esm/EmphasizeElements.d.ts.map +1 -1
- package/lib/esm/EmphasizeElements.js +3 -1
- package/lib/esm/EmphasizeElements.js.map +1 -1
- package/lib/esm/EnvironmentDecorations.d.ts.map +1 -1
- package/lib/esm/EnvironmentDecorations.js +4 -0
- package/lib/esm/EnvironmentDecorations.js.map +1 -1
- package/lib/esm/FrustumAnimator.d.ts.map +1 -1
- package/lib/esm/FrustumAnimator.js +3 -2
- package/lib/esm/FrustumAnimator.js.map +1 -1
- package/lib/esm/GlobeAnimator.d.ts.map +1 -1
- package/lib/esm/GlobeAnimator.js +7 -6
- package/lib/esm/GlobeAnimator.js.map +1 -1
- package/lib/esm/HitDetail.d.ts.map +1 -1
- package/lib/esm/HitDetail.js +12 -7
- package/lib/esm/HitDetail.js.map +1 -1
- package/lib/esm/IModelApp.d.ts.map +1 -1
- package/lib/esm/IModelApp.js +4 -3
- package/lib/esm/IModelApp.js.map +1 -1
- package/lib/esm/IModelConnection.d.ts +4 -0
- package/lib/esm/IModelConnection.d.ts.map +1 -1
- package/lib/esm/IModelConnection.js +158 -16
- package/lib/esm/IModelConnection.js.map +1 -1
- package/lib/esm/IpcApp.d.ts.map +1 -1
- package/lib/esm/IpcApp.js +2 -2
- package/lib/esm/IpcApp.js.map +1 -1
- package/lib/esm/LinePlaneIntersect.d.ts.map +1 -1
- package/lib/esm/LinePlaneIntersect.js +2 -0
- package/lib/esm/LinePlaneIntersect.js.map +1 -1
- package/lib/esm/LocalhostIpcApp.d.ts.map +1 -1
- package/lib/esm/LocalhostIpcApp.js +2 -1
- package/lib/esm/LocalhostIpcApp.js.map +1 -1
- package/lib/esm/Marker.d.ts.map +1 -1
- package/lib/esm/Marker.js +5 -4
- package/lib/esm/Marker.js.map +1 -1
- package/lib/esm/ModelState.d.ts.map +1 -1
- package/lib/esm/ModelState.js +3 -3
- package/lib/esm/ModelState.js.map +1 -1
- package/lib/esm/NativeApp.d.ts.map +1 -1
- package/lib/esm/NativeApp.js +5 -4
- package/lib/esm/NativeApp.js.map +1 -1
- package/lib/esm/NativeAppLogger.d.ts.map +1 -1
- package/lib/esm/NativeAppLogger.js +1 -0
- package/lib/esm/NativeAppLogger.js.map +1 -1
- package/lib/esm/PlanarClipMaskState.js +3 -3
- package/lib/esm/PlanarClipMaskState.js.map +1 -1
- package/lib/esm/SelectionSet.d.ts.map +1 -1
- package/lib/esm/SelectionSet.js +2 -1
- package/lib/esm/SelectionSet.js.map +1 -1
- package/lib/esm/SheetViewState.d.ts.map +1 -1
- package/lib/esm/SheetViewState.js +6 -6
- package/lib/esm/SheetViewState.js.map +1 -1
- package/lib/esm/SpatialViewState.d.ts.map +1 -1
- package/lib/esm/SpatialViewState.js +2 -2
- package/lib/esm/SpatialViewState.js.map +1 -1
- package/lib/esm/Sprites.js +2 -2
- package/lib/esm/Sprites.js.map +1 -1
- package/lib/esm/TentativePoint.d.ts.map +1 -1
- package/lib/esm/TentativePoint.js +10 -9
- package/lib/esm/TentativePoint.js.map +1 -1
- package/lib/esm/ViewCreator2d.js +1 -1
- package/lib/esm/ViewCreator2d.js.map +1 -1
- package/lib/esm/ViewCreator3d.js +1 -1
- package/lib/esm/ViewCreator3d.js.map +1 -1
- package/lib/esm/ViewPose.d.ts.map +1 -1
- package/lib/esm/ViewPose.js +4 -1
- package/lib/esm/ViewPose.js.map +1 -1
- package/lib/esm/ViewState.d.ts.map +1 -1
- package/lib/esm/ViewState.js +18 -13
- package/lib/esm/ViewState.js.map +1 -1
- package/lib/esm/ViewingSpace.d.ts.map +1 -1
- package/lib/esm/ViewingSpace.js +2 -0
- package/lib/esm/ViewingSpace.js.map +1 -1
- package/lib/esm/Viewport.d.ts.map +1 -1
- package/lib/esm/Viewport.js +18 -11
- package/lib/esm/Viewport.js.map +1 -1
- package/lib/esm/common/ImageUtil.d.ts.map +1 -1
- package/lib/esm/common/ImageUtil.js +2 -1
- package/lib/esm/common/ImageUtil.js.map +1 -1
- package/lib/esm/common/internal/render/GeometryAccumulator.d.ts.map +1 -1
- package/lib/esm/common/internal/render/GeometryAccumulator.js +4 -3
- package/lib/esm/common/internal/render/GeometryAccumulator.js.map +1 -1
- package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.d.ts.map +1 -1
- package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.js +2 -0
- package/lib/esm/common/internal/render/InstancedGraphicPropsBuilder.js.map +1 -1
- package/lib/esm/common/internal/render/MeshBuilder.js +2 -2
- package/lib/esm/common/internal/render/MeshBuilder.js.map +1 -1
- package/lib/esm/common/internal/render/VertexTableBuilder.d.ts.map +1 -1
- package/lib/esm/common/internal/render/VertexTableBuilder.js +17 -8
- package/lib/esm/common/internal/render/VertexTableBuilder.js.map +1 -1
- package/lib/esm/extension/ExtensionAdmin.js +2 -2
- package/lib/esm/extension/ExtensionAdmin.js.map +1 -1
- package/lib/esm/internal/GoogleMapsDecorator.js +1 -1
- package/lib/esm/internal/GoogleMapsDecorator.js.map +1 -1
- package/lib/esm/internal/ScriptUtils.js +1 -0
- package/lib/esm/internal/ScriptUtils.js.map +1 -1
- package/lib/esm/internal/render/UpsampleRealityMeshParams.d.ts.map +1 -1
- package/lib/esm/internal/render/UpsampleRealityMeshParams.js +2 -1
- package/lib/esm/internal/render/UpsampleRealityMeshParams.js.map +1 -1
- package/lib/esm/internal/render/webgl/AtmosphereUniforms.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/AtmosphereUniforms.js +7 -2
- package/lib/esm/internal/render/webgl/AtmosphereUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/AttributeBuffers.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/AttributeBuffers.js +5 -3
- package/lib/esm/internal/render/webgl/AttributeBuffers.js.map +1 -1
- package/lib/esm/internal/render/webgl/AttributeMap.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/AttributeMap.js +2 -0
- package/lib/esm/internal/render/webgl/AttributeMap.js.map +1 -1
- package/lib/esm/internal/render/webgl/BackgroundMapDrape.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/BackgroundMapDrape.js +4 -4
- package/lib/esm/internal/render/webgl/BackgroundMapDrape.js.map +1 -1
- package/lib/esm/internal/render/webgl/BatchUniforms.js +1 -1
- package/lib/esm/internal/render/webgl/BatchUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/BranchState.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/BranchState.js +2 -1
- package/lib/esm/internal/render/webgl/BranchState.js.map +1 -1
- package/lib/esm/internal/render/webgl/BranchUniforms.js +3 -3
- package/lib/esm/internal/render/webgl/BranchUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/CachedGeometry.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/CachedGeometry.js +3 -3
- package/lib/esm/internal/render/webgl/CachedGeometry.js.map +1 -1
- package/lib/esm/internal/render/webgl/ClipStack.js +1 -1
- package/lib/esm/internal/render/webgl/ClipStack.js.map +1 -1
- package/lib/esm/internal/render/webgl/ColorInfo.js +2 -2
- package/lib/esm/internal/render/webgl/ColorInfo.js.map +1 -1
- package/lib/esm/internal/render/webgl/Contours.js +4 -4
- package/lib/esm/internal/render/webgl/Contours.js.map +1 -1
- package/lib/esm/internal/render/webgl/EDL.js +19 -19
- package/lib/esm/internal/render/webgl/EDL.js.map +1 -1
- package/lib/esm/internal/render/webgl/FeatureOverrides.js +5 -5
- package/lib/esm/internal/render/webgl/FeatureOverrides.js.map +1 -1
- package/lib/esm/internal/render/webgl/FrameBuffer.js +4 -4
- package/lib/esm/internal/render/webgl/FrameBuffer.js.map +1 -1
- package/lib/esm/internal/render/webgl/FrustumUniforms.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/FrustumUniforms.js +2 -1
- package/lib/esm/internal/render/webgl/FrustumUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/GLTimer.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/GLTimer.js +2 -0
- package/lib/esm/internal/render/webgl/GLTimer.js.map +1 -1
- package/lib/esm/internal/render/webgl/MapLayerParams.js +3 -3
- package/lib/esm/internal/render/webgl/MapLayerParams.js.map +1 -1
- package/lib/esm/internal/render/webgl/MeshData.js +3 -3
- package/lib/esm/internal/render/webgl/MeshData.js.map +1 -1
- package/lib/esm/internal/render/webgl/PerformanceMetrics.js +1 -1
- package/lib/esm/internal/render/webgl/PerformanceMetrics.js.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarClassifier.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarClassifier.js +9 -9
- package/lib/esm/internal/render/webgl/PlanarClassifier.js.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarGrid.js +2 -2
- package/lib/esm/internal/render/webgl/PlanarGrid.js.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarTextureProjection.d.ts +0 -3
- package/lib/esm/internal/render/webgl/PlanarTextureProjection.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/PlanarTextureProjection.js +6 -5
- package/lib/esm/internal/render/webgl/PlanarTextureProjection.js.map +1 -1
- package/lib/esm/internal/render/webgl/PointCloud.js +2 -2
- package/lib/esm/internal/render/webgl/PointCloud.js.map +1 -1
- package/lib/esm/internal/render/webgl/RealityMesh.js +2 -2
- package/lib/esm/internal/render/webgl/RealityMesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/RenderBuffer.js +3 -3
- package/lib/esm/internal/render/webgl/RenderBuffer.js.map +1 -1
- package/lib/esm/internal/render/webgl/SceneCompositor.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/SceneCompositor.js +116 -86
- package/lib/esm/internal/render/webgl/SceneCompositor.js.map +1 -1
- package/lib/esm/internal/render/webgl/ScratchDrawParams.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/ScratchDrawParams.js +11 -10
- package/lib/esm/internal/render/webgl/ScratchDrawParams.js.map +1 -1
- package/lib/esm/internal/render/webgl/ScreenSpaceEffect.js +4 -4
- package/lib/esm/internal/render/webgl/ScreenSpaceEffect.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShaderProgram.js +4 -4
- package/lib/esm/internal/render/webgl/ShaderProgram.js.map +1 -1
- package/lib/esm/internal/render/webgl/ShadowUniforms.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/ShadowUniforms.js +2 -1
- package/lib/esm/internal/render/webgl/ShadowUniforms.js.map +1 -1
- package/lib/esm/internal/render/webgl/SolarShadowMap.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/SolarShadowMap.js +7 -5
- package/lib/esm/internal/render/webgl/SolarShadowMap.js.map +1 -1
- package/lib/esm/internal/render/webgl/System.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/System.js +2 -2
- package/lib/esm/internal/render/webgl/System.js.map +1 -1
- package/lib/esm/internal/render/webgl/Target.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/Target.js +11 -8
- package/lib/esm/internal/render/webgl/Target.js.map +1 -1
- package/lib/esm/internal/render/webgl/Texture.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/Texture.js +11 -9
- package/lib/esm/internal/render/webgl/Texture.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Animation.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Animation.js +5 -3
- package/lib/esm/internal/render/webgl/glsl/Animation.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Color.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Color.js +2 -1
- package/lib/esm/internal/render/webgl/glsl/Color.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Composite.js +2 -2
- package/lib/esm/internal/render/webgl/glsl/Composite.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyStencil.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/CopyStencil.js +3 -2
- package/lib/esm/internal/render/webgl/glsl/CopyStencil.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/PlanarClassification.js +4 -4
- package/lib/esm/internal/render/webgl/glsl/PlanarClassification.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/PlanarGrid.d.ts.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/PlanarGrid.js +4 -3
- package/lib/esm/internal/render/webgl/glsl/PlanarGrid.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/RealityMesh.js +9 -9
- package/lib/esm/internal/render/webgl/glsl/RealityMesh.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Surface.js +11 -11
- package/lib/esm/internal/render/webgl/glsl/Surface.js.map +1 -1
- package/lib/esm/internal/render/webgl/glsl/Vertex.js +3 -3
- package/lib/esm/internal/render/webgl/glsl/Vertex.js.map +1 -1
- package/lib/esm/internal/tile/B3dmReader.d.ts.map +1 -1
- package/lib/esm/internal/tile/B3dmReader.js +2 -2
- package/lib/esm/internal/tile/B3dmReader.js.map +1 -1
- package/lib/esm/internal/tile/DynamicIModelTile.js +1 -0
- package/lib/esm/internal/tile/DynamicIModelTile.js.map +1 -1
- package/lib/esm/internal/tile/FetchCloudStorage.js +1 -1
- package/lib/esm/internal/tile/FetchCloudStorage.js.map +1 -1
- package/lib/esm/internal/tile/LRUTileList.d.ts.map +1 -1
- package/lib/esm/internal/tile/LRUTileList.js +4 -0
- package/lib/esm/internal/tile/LRUTileList.js.map +1 -1
- package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.d.ts.map +1 -1
- package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js +2 -1
- package/lib/esm/internal/tile/LayerTileTreeReferenceHandler.js.map +1 -1
- package/lib/esm/internal/tile/OPCFormatInterpreter.js +5 -5
- package/lib/esm/internal/tile/OPCFormatInterpreter.js.map +1 -1
- package/lib/esm/internal/tile/OrbitGtTileTree.d.ts.map +1 -1
- package/lib/esm/internal/tile/OrbitGtTileTree.js +3 -3
- package/lib/esm/internal/tile/OrbitGtTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.d.ts.map +1 -1
- package/lib/esm/internal/tile/RealityModelTileTree.js +4 -4
- package/lib/esm/internal/tile/RealityModelTileTree.js.map +1 -1
- package/lib/esm/internal/tile/RealityTileLoader.d.ts.map +1 -1
- package/lib/esm/internal/tile/RealityTileLoader.js +3 -0
- package/lib/esm/internal/tile/RealityTileLoader.js.map +1 -1
- package/lib/esm/internal/tile/ThreeDTileFormatInterpreter.js +4 -4
- package/lib/esm/internal/tile/ThreeDTileFormatInterpreter.js.map +1 -1
- package/lib/esm/internal/tile/TileUserSet.d.ts.map +1 -1
- package/lib/esm/internal/tile/TileUserSet.js +4 -0
- package/lib/esm/internal/tile/TileUserSet.js.map +1 -1
- package/lib/esm/internal/tile/map/ArcGISTileMap.js +1 -1
- package/lib/esm/internal/tile/map/ArcGISTileMap.js.map +1 -1
- package/lib/esm/internal/tile/map/ArcGisUtilities.d.ts.map +1 -1
- package/lib/esm/internal/tile/map/ArcGisUtilities.js +4 -0
- package/lib/esm/internal/tile/map/ArcGisUtilities.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.d.ts.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js +3 -1
- package/lib/esm/internal/tile/map/ImageryProviders/ArcGISMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js +3 -3
- package/lib/esm/internal/tile/map/ImageryProviders/BingImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js +2 -2
- package/lib/esm/internal/tile/map/ImageryProviders/WmsMapLayerImageryProvider.js.map +1 -1
- package/lib/esm/internal/tile/map/MapTileAvailability.d.ts.map +1 -1
- package/lib/esm/internal/tile/map/MapTileAvailability.js +6 -3
- package/lib/esm/internal/tile/map/MapTileAvailability.js.map +1 -1
- package/lib/esm/internal/tile/map/WmtsCapabilities.d.ts.map +1 -1
- package/lib/esm/internal/tile/map/WmtsCapabilities.js +3 -2
- package/lib/esm/internal/tile/map/WmtsCapabilities.js.map +1 -1
- package/lib/esm/properties/FormattedQuantityDescription.d.ts.map +1 -1
- package/lib/esm/properties/FormattedQuantityDescription.js +2 -0
- package/lib/esm/properties/FormattedQuantityDescription.js.map +1 -1
- package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.d.ts.map +1 -1
- package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js +2 -0
- package/lib/esm/quantity-formatting/BaseUnitFormattingSettingsProvider.js.map +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.d.ts.map +1 -1
- package/lib/esm/quantity-formatting/QuantityFormatter.js +7 -4
- package/lib/esm/quantity-formatting/QuantityFormatter.js.map +1 -1
- package/lib/esm/tile/GltfReader.d.ts +5 -2
- package/lib/esm/tile/GltfReader.d.ts.map +1 -1
- package/lib/esm/tile/GltfReader.js +55 -17
- package/lib/esm/tile/GltfReader.js.map +1 -1
- package/lib/esm/tile/RealityTile.d.ts.map +1 -1
- package/lib/esm/tile/RealityTile.js +3 -3
- package/lib/esm/tile/RealityTile.js.map +1 -1
- package/lib/esm/tile/RealityTileTree.d.ts.map +1 -1
- package/lib/esm/tile/RealityTileTree.js +6 -6
- package/lib/esm/tile/RealityTileTree.js.map +1 -1
- package/lib/esm/tile/TileAdmin.js.map +1 -1
- package/lib/esm/tile/TileDrawArgs.d.ts.map +1 -1
- package/lib/esm/tile/TileDrawArgs.js +2 -1
- package/lib/esm/tile/TileDrawArgs.js.map +1 -1
- package/lib/esm/tile/map/ImageryTileTree.js +2 -2
- package/lib/esm/tile/map/ImageryTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapLayerFormatRegistry.js +2 -2
- package/lib/esm/tile/map/MapLayerFormatRegistry.js.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.d.ts.map +1 -1
- package/lib/esm/tile/map/MapLayerSources.js +10 -2
- package/lib/esm/tile/map/MapLayerSources.js.map +1 -1
- package/lib/esm/tile/map/MapTile.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTile.js +11 -9
- package/lib/esm/tile/map/MapTile.js.map +1 -1
- package/lib/esm/tile/map/MapTileTree.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTileTree.js +9 -8
- package/lib/esm/tile/map/MapTileTree.js.map +1 -1
- package/lib/esm/tile/map/MapTilingScheme.d.ts.map +1 -1
- package/lib/esm/tile/map/MapTilingScheme.js +2 -1
- package/lib/esm/tile/map/MapTilingScheme.js.map +1 -1
- package/lib/esm/tools/Tool.js +2 -2
- package/lib/esm/tools/Tool.js.map +1 -1
- package/lib/public/scripts/parse-imdl-worker.js +1 -1
- package/lib/workers/webpack/parse-imdl-worker.js +1 -1
- package/package.json +20 -20
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WmtsCapabilities.js","sourceRoot":"","sources":["../../../../../src/internal/tile/map/WmtsCapabilities.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 { Point2d, Range2d } from \"@itwin/core-geometry\";\nimport { RequestBasicCredentials } from \"../../../request/Request\";\nimport { MapCartoRectangle, WmsUtilities } from \"../../../tile/internal\";\n\nenum OwsConstants {\n ABSTRACT_XMLTAG = \"ows:Abstract\",\n ACCESSCONSTRAINTS_XMLTAG = \"ows:AccessConstraints\",\n ALLOWEDVALUES_XMLTAG = \"ows:AllowedValues\",\n BOUNDINGBOX_XMLTAG = \"ows:BoundingBox\",\n CONSTRAINT_XMLTAG = \"ows:Constraint\",\n DCP_XMLTAG = \"ows:DCP\",\n FEES_XMLTAG = \"ows:Fees\",\n GET_XMLTAG = \"ows:Get\",\n HTTP_XMLTAG = \"ows:HTTP\",\n IDENTIFIER_XMLTAG = \"ows:Identifier\",\n KEYWORDS_XMLTAG = \"ows:Keywords\",\n KEYWORD_XMLTAG = \"ows:Keyword\",\n LOWERCORNER_XMLTAG = \"ows:LowerCorner\",\n OPERATION_XMLTAG = \"ows:Operation\",\n OPERATIONSMETADATA_XMLTAG = \"ows:OperationsMetadata\",\n POST_XMLTAG = \"ows:Post\",\n SERVICEIDENTIFICATION_XMLTAG = \"ows:ServiceIdentification\",\n SERVICETYPE_XMLTAG = \"ows:ServiceType\",\n SERVICETYPEVERSION_XMLTAG = \"ows:ServiceTypeVersion\",\n SUPPORTEDCRS_XMLTAG = \"ows:SupportedCRS\",\n TITLE_XMLTAG = \"ows:Title\",\n UPPERCORNER_XMLTAG = \"ows:UpperCorner\",\n VALUE_XMLTAG = \"ows:Value\",\n WGS84BOUNDINGBOX_XMLTAG = \"ows:WGS84BoundingBox\"\n\n}\n\nenum XmlConstants {\n // Operations names\n GETCAPABILITIES = \"GetCapabilities\",\n GETTILE = \"GetTile\",\n GETFEATUREINFO = \"GetFeatureInfo\",\n\n MATRIXWIDTH_XMLTAG = \"MatrixWidth\",\n MATRIXHEIGHT_XMLTAG = \"MatrixHeight\",\n SCALEDENOMINATOR_XMLTAG = \"ScaleDenominator\",\n\n TILEHEIGHT_XMLTAG = \"TileHeight\",\n TILEMATRIX_XMLTAG = \"TileMatrix\",\n TILEMATRIXSETLINK_XMLTAG = \"TileMatrixSetLink\",\n RESOURCEURL_XMLTAG = \"ResourceURL\",\n TILEWIDTH_XMLTAG = \"TileWidth\",\n TOPLEFTCORNER_XMLTAG = \"TopLeftCorner\",\n WELLKNOWNSCALESET_XMLTAG = \"WellKnownScaleSet\",\n\n CONSTRAINT_NAME_FILTER = \"Encoding\",\n STYLE_ISDEFAULT = \"IsDefault\",\n XLINK_HREF = \"xlink:href\",\n}\n\nexport enum WmtsConstants {\n GOOGLEMAPS_LEVEL0_SCALE_DENOM = 559082264.0287178,\n GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME = \"googlemapscompatible\",\n}\n\n/**\n * Utility function to extract an element' text content\n * @return An element's text content, default to provided defaultTest value if no text is available.\n * @param url server URL to address the request\n */\nconst getElementTextContent = (elem: Element, qualifiedName: string, defaultText?: string) => {\n\n const tmpElem = elem.getElementsByTagName(qualifiedName);\n if (tmpElem.length > 0) {\n return tmpElem[0].textContent ?? defaultText;\n } else\n return defaultText;\n\n};\n\n/** Encapsulation of the capabilities for an WMTS server\n */\nexport namespace WmtsCapability {\n export class ServiceIdentification {\n public readonly abstract?: string;\n public readonly accessConstraints?: string;\n public readonly fees?: string;\n public readonly serviceType?: string;\n public readonly serviceTypeVersion?: string;\n public readonly title?: string;\n public readonly keywords?: string[];\n\n constructor(elem: Element) {\n this.abstract = getElementTextContent(elem, OwsConstants.ABSTRACT_XMLTAG);\n this.serviceType = getElementTextContent(elem, OwsConstants.SERVICETYPE_XMLTAG);\n this.serviceTypeVersion = getElementTextContent(elem, OwsConstants.SERVICETYPEVERSION_XMLTAG);\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n\n const keywords = elem.getElementsByTagName(OwsConstants.KEYWORDS_XMLTAG);\n if (keywords.length > 0) {\n const keyword = keywords[0].getElementsByTagName(OwsConstants.KEYWORD_XMLTAG);\n this.keywords = [];\n for (const keyworkElem of keyword) {\n const keyWordText = keyworkElem.textContent;\n if (keyWordText)\n this.keywords.push(keyWordText);\n }\n }\n\n this.accessConstraints = getElementTextContent(elem, OwsConstants.ACCESSCONSTRAINTS_XMLTAG);\n\n this.fees = getElementTextContent(elem, OwsConstants.FEES_XMLTAG);\n }\n }\n\n export class OperationMetadata {\n private _getCapabilities?: Operation;\n public get getCapabilities(): Operation | undefined { return this._getCapabilities; }\n\n private _getFeatureInfo?: Operation;\n public get getFeatureInfo(): Operation | undefined { return this._getFeatureInfo; }\n\n private _getTile?: Operation;\n public get getTile(): Operation | undefined { return this._getTile; }\n\n private readOperation(op: Element) {\n const nameAttr = op.attributes.getNamedItem(\"name\");\n if (!nameAttr)\n return;\n\n if (nameAttr.textContent === XmlConstants.GETCAPABILITIES) {\n this._getCapabilities = new Operation(op);\n } else if (nameAttr.textContent === XmlConstants.GETTILE) {\n this._getTile = new Operation(op);\n } else if (nameAttr.textContent === XmlConstants.GETFEATUREINFO) {\n this._getFeatureInfo = new Operation(op);\n }\n }\n\n constructor(elem: Element) {\n const operation = elem.getElementsByTagName(OwsConstants.OPERATION_XMLTAG);\n if (operation.length > 0) {\n for (const op of operation) {\n this.readOperation(op);\n }\n }\n }\n }\n\n export class HttpDcp {\n public readonly url?: string;\n public readonly constraintName?: string;\n\n // For simplicity of use we create a 'static' encoding property instead of having\n // a generic constraint data model.\n // We make sure the constraint name is 'encoding' related.\n public readonly encoding?: string;\n\n constructor(elem: Element) {\n const url = elem.getAttribute(XmlConstants.XLINK_HREF);\n if (url)\n this.url = url ?? \"\";\n\n const constraint = elem.getElementsByTagName(OwsConstants.CONSTRAINT_XMLTAG);\n if (constraint.length > 0) {\n this.constraintName = constraint[0].getAttribute(\"name\") ?? \"\";\n if (this.constraintName?.endsWith(XmlConstants.CONSTRAINT_NAME_FILTER)) {\n const allowedValues = constraint[0].getElementsByTagName(OwsConstants.ALLOWEDVALUES_XMLTAG);\n if (allowedValues.length > 0) {\n this.encoding = getElementTextContent(allowedValues[0], OwsConstants.VALUE_XMLTAG);\n }\n }\n }\n }\n }\n\n export class Operation {\n public readonly name?: string;\n private _getDcpHttp?: HttpDcp[];\n public get getDcpHttp(): HttpDcp[] | undefined { return this._getDcpHttp; }\n private _postDcpHttp?: HttpDcp[];\n public get postDcpHttp(): HttpDcp[] | undefined { return this._postDcpHttp; }\n\n constructor(elem: Element) {\n const name = elem.getAttribute(\"name\");\n if (name)\n this.name = name;\n\n const dcp = elem.getElementsByTagName(OwsConstants.DCP_XMLTAG);\n if (!dcp || dcp.length === 0)\n return;\n\n const dcpHttp = dcp[0].getElementsByTagName(OwsConstants.HTTP_XMLTAG);\n if (!dcpHttp || dcpHttp.length === 0)\n return;\n\n const get = dcpHttp[0].getElementsByTagName(OwsConstants.GET_XMLTAG);\n if (get.length > 0) {\n this._getDcpHttp = [];\n\n for (const getItem of get) {\n this._getDcpHttp?.push(new HttpDcp(getItem));\n }\n }\n\n const post = dcpHttp[0].getElementsByTagName(OwsConstants.POST_XMLTAG);\n if (post.length > 0) {\n this._postDcpHttp = [];\n\n for (const postItem of post) {\n this._postDcpHttp?.push(new HttpDcp(postItem));\n }\n }\n }\n }\n\n export class Contents {\n public readonly layers: Layer[] = [];\n public readonly tileMatrixSets: TileMatrixSet[] = [];\n\n constructor(elem: Element) {\n // Layers\n const layer = elem.getElementsByTagName(\"Layer\");\n if (layer) {\n for (const layerElem of layer)\n this.layers.push(new Layer(layerElem));\n }\n\n // TileMatrixSet\n const tms = elem.querySelectorAll(\"Contents > TileMatrixSet\");\n if (tms) {\n for (const tmsElem of tms)\n this.tileMatrixSets.push(new TileMatrixSet(tmsElem));\n }\n\n }\n\n public getGoogleMapsCompatibleTileMatrixSet(): TileMatrixSet[] {\n const googleMapsTms: TileMatrixSet[] = [];\n this.tileMatrixSets.forEach((tms) => {\n if (tms.wellKnownScaleSet?.toLowerCase().includes(WmtsConstants.GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME))\n googleMapsTms.push(tms);\n\n // In case wellKnownScaleSet was not been set properly, infer from scaleDenominator\n // Note: some servers are quite inaccurate in their scale values, hence I used a delta value of 1.\n else if (tms.tileMatrix.length > 0\n && Math.abs(tms.tileMatrix[0].scaleDenominator - WmtsConstants.GOOGLEMAPS_LEVEL0_SCALE_DENOM) < 1\n && (tms.supportedCrs.includes(\"3857\") || tms.supportedCrs.includes(\"900913\"))\n )\n googleMapsTms.push(tms);\n });\n return googleMapsTms;\n }\n\n public getEpsg4326CompatibleTileMatrixSet(): TileMatrixSet[] {\n return this.tileMatrixSets.filter((tms) => tms.supportedCrs.includes(\"4326\"));\n }\n }\n\n export class Style {\n public readonly isDefault: boolean = false;\n public readonly title?: string;\n public readonly identifier?: string;\n // TODO: LegendURL\n\n constructor(elem: Element) {\n if (!elem)\n return;\n\n const isDefault = elem.getAttribute(\"isDefault\");\n if (isDefault)\n this.isDefault = isDefault.toLowerCase() === \"true\";\n\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n this.identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG);\n }\n }\n\n export class BoundingBox {\n public readonly crs?: string;\n public readonly range?: Range2d;\n\n constructor(elem: Element) {\n this.crs = elem.getAttribute(\"crs\") ?? undefined;\n\n const lowerCorner = getElementTextContent(elem, OwsConstants.LOWERCORNER_XMLTAG);\n const upperCorner = getElementTextContent(elem, OwsConstants.UPPERCORNER_XMLTAG);\n if (lowerCorner && upperCorner) {\n const lowerCornerArray = lowerCorner?.split(\" \").map((x: string) => +x);\n const upperCornerArray = upperCorner?.split(\" \").map((x: string) => +x);\n if (lowerCornerArray && lowerCornerArray.length === 2 && upperCornerArray && upperCornerArray.length === 2)\n this.range = Range2d.createXYXY(lowerCornerArray[0], lowerCornerArray[1], upperCornerArray[0], upperCornerArray[1]);\n }\n }\n }\n\n export class TileMatrixSetLimits {\n public limits?: Range2d;\n public tileMatrix?: string;\n\n constructor(elem: Element) {\n\n this.tileMatrix = getElementTextContent(elem, \"TileMatrix\");\n\n const minTileRow = getElementTextContent(elem, \"MinTileRow\");\n const maxTileRow = getElementTextContent(elem, \"MaxTileRow\");\n const minTileCol = getElementTextContent(elem, \"MinTileCol\");\n const maxTileCol = getElementTextContent(elem, \"MaxTileCol\");\n\n if (minTileRow !== undefined && maxTileRow !== undefined && minTileCol !== undefined && maxTileCol)\n this.limits = Range2d.createXYXY(Number(minTileCol), Number(minTileRow), Number(maxTileCol), Number(maxTileRow));\n }\n }\n\n export class TileMatrixSetLink {\n public readonly tileMatrixSet: string;\n public readonly tileMatrixSetLimits = new Array<TileMatrixSetLimits>();\n\n constructor(elem: Element) {\n\n this.tileMatrixSet = getElementTextContent(elem, \"TileMatrixSet\", \"\")!;\n\n const tileMatrixLimitsRoot = elem.getElementsByTagName(\"TileMatrixSetLimits\");\n if (tileMatrixLimitsRoot.length > 0) {\n const tileMatrixLimits = tileMatrixLimitsRoot[0].getElementsByTagName(\"TileMatrixSetLimits\");\n for (const tmsl of tileMatrixLimits) {\n this.tileMatrixSetLimits.push(new TileMatrixSetLimits(tmsl));\n }\n }\n }\n }\n\n export class ResourceURL {\n public readonly format: string;\n public readonly resourceType: string\n public readonly template: string;\n\n constructor(elem: Element) {\n this.format = elem.getAttribute(\"format\") ?? \"\";\n this.resourceType = elem.getAttribute(\"resourceType\") ?? \"\";\n this.template = elem.getAttribute(\"template\") ?? \"\";\n }\n }\n\n export class TileMatrixSet {\n public readonly identifier: string;\n public readonly title?: string;\n public readonly abstract?: string;\n public readonly supportedCrs: string;\n public readonly wellKnownScaleSet: string;\n public readonly tileMatrix: TileMatrix[] = [];\n\n constructor(elem: Element) {\n const identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG);\n if (identifier)\n this.identifier = identifier;\n else\n throw new Error(\"No Identifier found.\");\n\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n this.abstract = getElementTextContent(elem, OwsConstants.ABSTRACT_XMLTAG);\n\n const supportedCrs = getElementTextContent(elem, OwsConstants.SUPPORTEDCRS_XMLTAG);\n if (supportedCrs)\n this.supportedCrs = supportedCrs;\n else\n throw new Error(\"No supported CRS found.\");\n\n this.wellKnownScaleSet = getElementTextContent(elem, XmlConstants.WELLKNOWNSCALESET_XMLTAG, \"\")!;\n\n // TileMatrix:\n // TileMatrix is mandatory on TileMatrixSet, if it doesn't exists, something is OFF with the capability.\n const tileMatrix = elem.getElementsByTagName(XmlConstants.TILEMATRIX_XMLTAG);\n if (tileMatrix.length === 0)\n throw new Error(\"No matrix set link found for WMTS layer\");\n\n for (const tm of tileMatrix) {\n this.tileMatrix.push(new TileMatrix(tm));\n }\n }\n }\n\n export class TileMatrix {\n public readonly identifier: string;\n public readonly title?: string;\n public readonly abstract?: string;\n public readonly scaleDenominator: number;\n public readonly topLeftCorner: Point2d;\n public readonly tileWidth: number;\n public readonly tileHeight: number;\n public readonly matrixWidth: number;\n public readonly matrixHeight: number;\n\n constructor(elem: Element) {\n const identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG, \"\");\n if (identifier)\n this.identifier = identifier;\n else\n throw new Error(\"No Identifier found.\");\n\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n this.abstract = getElementTextContent(elem, OwsConstants.ABSTRACT_XMLTAG);\n\n // Scale denominator\n const scaleDenom = getElementTextContent(elem, XmlConstants.SCALEDENOMINATOR_XMLTAG, \"\");\n if (!scaleDenom)\n throw new Error(\"No scale denominator found on TileMatrix.\");\n this.scaleDenominator = +scaleDenom;\n\n // Top left corner\n const topLeftCorner = getElementTextContent(elem, XmlConstants.TOPLEFTCORNER_XMLTAG, \"\")?.split(\" \").map((x: string) => +x);\n if (topLeftCorner?.length !== 2)\n throw new Error(\"No TopLeftCorner found on TileMatrix.\");\n this.topLeftCorner = Point2d.create(topLeftCorner[0], topLeftCorner[1]);\n\n // Tile Width\n const tileWidth = getElementTextContent(elem, XmlConstants.TILEWIDTH_XMLTAG);\n if (!tileWidth)\n throw new Error(\"No tile width found on TileMatrix.\");\n this.tileWidth = +tileWidth;\n\n // Tile Height\n const tileHeight = getElementTextContent(elem, XmlConstants.TILEHEIGHT_XMLTAG);\n if (!tileHeight)\n throw new Error(\"No tile height found on TileMatrix.\");\n this.tileHeight = +tileHeight;\n\n // Matrix Width\n const matrixWidth = getElementTextContent(elem, XmlConstants.MATRIXWIDTH_XMLTAG);\n if (!matrixWidth)\n throw new Error(\"No tile width found on TileMatrix.\");\n this.matrixWidth = +matrixWidth;\n\n // Matrix Height\n const matrixHeight = getElementTextContent(elem, XmlConstants.MATRIXHEIGHT_XMLTAG);\n if (!matrixHeight)\n throw new Error(\"No tile height found on TileMatrix.\");\n this.matrixHeight = +matrixHeight;\n }\n }\n\n export class Layer {\n public readonly identifier: string;\n public readonly title?: string;\n public readonly abstract?: string;\n public readonly format?: string;\n public readonly wsg84BoundingBox?: MapCartoRectangle;\n public readonly boundingBox?: BoundingBox;\n public readonly styles: Style[] = [];\n public readonly tileMatrixSetLinks: TileMatrixSetLink[] = [];\n public readonly resourceUrls: ResourceURL[] = [];\n\n constructor(elem: Element) {\n\n const identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG, \"\");\n if (identifier)\n this.identifier = identifier;\n else\n throw new Error(\"No Identifier found.\");\n\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n this.format = getElementTextContent(elem, \"Format\");\n\n // BoundingBox\n const boundingBox = elem.getElementsByTagName(OwsConstants.BOUNDINGBOX_XMLTAG);\n if (boundingBox.length > 0)\n this.boundingBox = new BoundingBox(boundingBox[0]);\n\n let lowerCornerArray: number[] | undefined, upperCornerArray: number[] | undefined;\n const bbox = elem.getElementsByTagName(OwsConstants.WGS84BOUNDINGBOX_XMLTAG);\n if (bbox.length > 0) {\n lowerCornerArray = getElementTextContent(bbox[0], OwsConstants.LOWERCORNER_XMLTAG)?.split(\" \").map((x: string) => +x);\n upperCornerArray = getElementTextContent(bbox[0], OwsConstants.UPPERCORNER_XMLTAG)?.split(\" \").map((x: string) => +x);\n }\n\n if (lowerCornerArray?.length === 2 && upperCornerArray?.length === 2)\n this.wsg84BoundingBox = MapCartoRectangle.fromDegrees(lowerCornerArray[0], lowerCornerArray[1], upperCornerArray[0], upperCornerArray[1]);\n\n // If we could not initialized WSG84 bounding box, attempt to initialized it from Bounding Box\n if (!this.wsg84BoundingBox && (this.boundingBox?.crs?.includes(\"EPSG:4326\") || this.boundingBox?.crs?.includes(\"CRS:84\"))) {\n const range = this.boundingBox.range;\n if (range)\n this.wsg84BoundingBox = MapCartoRectangle.fromDegrees(range.low.x, range.low.y, range.high.x, range.high.y);\n else\n this.wsg84BoundingBox = MapCartoRectangle.createMaximum();\n }\n\n // Style\n const style = elem.getElementsByTagName(\"Style\");\n if (style.length > 0) {\n for (const styleElem of style)\n this.styles.push(new Style(styleElem));\n }\n\n // TileMatrixSetLink\n // TileMatrixSetLink is mandatory on Layer, if it doesn't exists, something is OFF with the capability.\n const tileMatrixSetLink = elem.getElementsByTagName(XmlConstants.TILEMATRIXSETLINK_XMLTAG);\n\n if (tileMatrixSetLink.length === 0)\n throw new Error(\"No matrix set link found for WMTS layer\");\n\n for (const tmsl of tileMatrixSetLink)\n this.tileMatrixSetLinks.push(new TileMatrixSetLink(tmsl));\n\n // ResourceURL are optional. It can be repeated for different resource types.\n const resourceUrls = elem.getElementsByTagName(XmlConstants.RESOURCEURL_XMLTAG);\n\n for (const url of resourceUrls)\n this.resourceUrls.push(new ResourceURL(url));\n }\n }\n}\n\nexport class WmtsCapabilities {\n private static _capabilitiesCache = new Map<string, WmtsCapabilities | undefined>();\n\n public readonly version?: string;\n public readonly serviceIdentification?: WmtsCapability.ServiceIdentification;\n public readonly contents?: WmtsCapability.Contents;\n\n public readonly operationsMetadata?: WmtsCapability.OperationMetadata;\n\n constructor(xmlDoc: Document) {\n\n const capabilities = xmlDoc.getElementsByTagName(\"Capabilities\");\n if (capabilities.length !== 0) {\n const capability = capabilities[0];\n this.version = capability.getAttribute(\"version\") ?? undefined;\n\n // Service Identification\n const serviceIdentification = capability.getElementsByTagName(OwsConstants.SERVICEIDENTIFICATION_XMLTAG);\n if (serviceIdentification.length > 0)\n this.serviceIdentification = new WmtsCapability.ServiceIdentification(serviceIdentification[0]);\n\n // Operations metadata\n const operationsMetadata = capability.getElementsByTagName(OwsConstants.OPERATIONSMETADATA_XMLTAG);\n if (operationsMetadata.length > 0)\n this.operationsMetadata = new WmtsCapability.OperationMetadata(operationsMetadata[0]);\n\n // Contents\n const content = capability.getElementsByTagName(\"Contents\");\n if (content.length > 0)\n this.contents = new WmtsCapability.Contents(content[0]);\n }\n }\n\n public static createFromXml(xmlCapabilities: string): WmtsCapabilities | undefined {\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(xmlCapabilities, \"text/xml\");\n return new WmtsCapabilities(xmlDoc);\n }\n\n public static async create(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean, queryParams?: {[key: string]: string}): Promise<WmtsCapabilities | undefined> {\n if (!ignoreCache) {\n const cached = WmtsCapabilities._capabilitiesCache.get(url);\n if (cached !== undefined)\n return cached;\n }\n\n const tmpUrl = new URL(WmsUtilities.getBaseUrl(url));\n tmpUrl.searchParams.append(\"request\", \"GetCapabilities\");\n tmpUrl.searchParams.append(\"service\", \"WMTS\");\n if (queryParams) {\n Object.keys(queryParams).forEach((paramKey) => {\n if (!tmpUrl.searchParams.has(paramKey))\n tmpUrl.searchParams.append(paramKey, queryParams[paramKey]);\n });\n }\n\n const xmlCapabilities = await WmsUtilities.fetchXml(tmpUrl.toString(), credentials);\n if (!xmlCapabilities)\n return undefined;\n\n const capabilities = WmtsCapabilities.createFromXml(xmlCapabilities);\n if (capabilities)\n WmtsCapabilities._capabilitiesCache.set(url, capabilities);\n\n return capabilities;\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"WmtsCapabilities.js","sourceRoot":"","sources":["../../../../../src/internal/tile/map/WmtsCapabilities.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 { expectDefined } from \"@itwin/core-bentley\";\nimport { Point2d, Range2d } from \"@itwin/core-geometry\";\nimport { RequestBasicCredentials } from \"../../../request/Request\";\nimport { MapCartoRectangle, WmsUtilities } from \"../../../tile/internal\";\n\nenum OwsConstants {\n ABSTRACT_XMLTAG = \"ows:Abstract\",\n ACCESSCONSTRAINTS_XMLTAG = \"ows:AccessConstraints\",\n ALLOWEDVALUES_XMLTAG = \"ows:AllowedValues\",\n BOUNDINGBOX_XMLTAG = \"ows:BoundingBox\",\n CONSTRAINT_XMLTAG = \"ows:Constraint\",\n DCP_XMLTAG = \"ows:DCP\",\n FEES_XMLTAG = \"ows:Fees\",\n GET_XMLTAG = \"ows:Get\",\n HTTP_XMLTAG = \"ows:HTTP\",\n IDENTIFIER_XMLTAG = \"ows:Identifier\",\n KEYWORDS_XMLTAG = \"ows:Keywords\",\n KEYWORD_XMLTAG = \"ows:Keyword\",\n LOWERCORNER_XMLTAG = \"ows:LowerCorner\",\n OPERATION_XMLTAG = \"ows:Operation\",\n OPERATIONSMETADATA_XMLTAG = \"ows:OperationsMetadata\",\n POST_XMLTAG = \"ows:Post\",\n SERVICEIDENTIFICATION_XMLTAG = \"ows:ServiceIdentification\",\n SERVICETYPE_XMLTAG = \"ows:ServiceType\",\n SERVICETYPEVERSION_XMLTAG = \"ows:ServiceTypeVersion\",\n SUPPORTEDCRS_XMLTAG = \"ows:SupportedCRS\",\n TITLE_XMLTAG = \"ows:Title\",\n UPPERCORNER_XMLTAG = \"ows:UpperCorner\",\n VALUE_XMLTAG = \"ows:Value\",\n WGS84BOUNDINGBOX_XMLTAG = \"ows:WGS84BoundingBox\"\n\n}\n\nenum XmlConstants {\n // Operations names\n GETCAPABILITIES = \"GetCapabilities\",\n GETTILE = \"GetTile\",\n GETFEATUREINFO = \"GetFeatureInfo\",\n\n MATRIXWIDTH_XMLTAG = \"MatrixWidth\",\n MATRIXHEIGHT_XMLTAG = \"MatrixHeight\",\n SCALEDENOMINATOR_XMLTAG = \"ScaleDenominator\",\n\n TILEHEIGHT_XMLTAG = \"TileHeight\",\n TILEMATRIX_XMLTAG = \"TileMatrix\",\n TILEMATRIXSETLINK_XMLTAG = \"TileMatrixSetLink\",\n RESOURCEURL_XMLTAG = \"ResourceURL\",\n TILEWIDTH_XMLTAG = \"TileWidth\",\n TOPLEFTCORNER_XMLTAG = \"TopLeftCorner\",\n WELLKNOWNSCALESET_XMLTAG = \"WellKnownScaleSet\",\n\n CONSTRAINT_NAME_FILTER = \"Encoding\",\n STYLE_ISDEFAULT = \"IsDefault\",\n XLINK_HREF = \"xlink:href\",\n}\n\nexport enum WmtsConstants {\n GOOGLEMAPS_LEVEL0_SCALE_DENOM = 559082264.0287178,\n GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME = \"googlemapscompatible\",\n}\n\n/**\n * Utility function to extract an element' text content\n * @return An element's text content, default to provided defaultTest value if no text is available.\n * @param url server URL to address the request\n */\nconst getElementTextContent = (elem: Element, qualifiedName: string, defaultText?: string) => {\n\n const tmpElem = elem.getElementsByTagName(qualifiedName);\n if (tmpElem.length > 0) {\n return tmpElem[0].textContent ?? defaultText;\n } else\n return defaultText;\n\n};\n\n/** Encapsulation of the capabilities for an WMTS server\n */\nexport namespace WmtsCapability {\n export class ServiceIdentification {\n public readonly abstract?: string;\n public readonly accessConstraints?: string;\n public readonly fees?: string;\n public readonly serviceType?: string;\n public readonly serviceTypeVersion?: string;\n public readonly title?: string;\n public readonly keywords?: string[];\n\n constructor(elem: Element) {\n this.abstract = getElementTextContent(elem, OwsConstants.ABSTRACT_XMLTAG);\n this.serviceType = getElementTextContent(elem, OwsConstants.SERVICETYPE_XMLTAG);\n this.serviceTypeVersion = getElementTextContent(elem, OwsConstants.SERVICETYPEVERSION_XMLTAG);\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n\n const keywords = elem.getElementsByTagName(OwsConstants.KEYWORDS_XMLTAG);\n if (keywords.length > 0) {\n const keyword = keywords[0].getElementsByTagName(OwsConstants.KEYWORD_XMLTAG);\n this.keywords = [];\n for (const keyworkElem of keyword) {\n const keyWordText = keyworkElem.textContent;\n if (keyWordText)\n this.keywords.push(keyWordText);\n }\n }\n\n this.accessConstraints = getElementTextContent(elem, OwsConstants.ACCESSCONSTRAINTS_XMLTAG);\n\n this.fees = getElementTextContent(elem, OwsConstants.FEES_XMLTAG);\n }\n }\n\n export class OperationMetadata {\n private _getCapabilities?: Operation;\n public get getCapabilities(): Operation | undefined { return this._getCapabilities; }\n\n private _getFeatureInfo?: Operation;\n public get getFeatureInfo(): Operation | undefined { return this._getFeatureInfo; }\n\n private _getTile?: Operation;\n public get getTile(): Operation | undefined { return this._getTile; }\n\n private readOperation(op: Element) {\n const nameAttr = op.attributes.getNamedItem(\"name\");\n if (!nameAttr)\n return;\n\n if (nameAttr.textContent === XmlConstants.GETCAPABILITIES) {\n this._getCapabilities = new Operation(op);\n } else if (nameAttr.textContent === XmlConstants.GETTILE) {\n this._getTile = new Operation(op);\n } else if (nameAttr.textContent === XmlConstants.GETFEATUREINFO) {\n this._getFeatureInfo = new Operation(op);\n }\n }\n\n constructor(elem: Element) {\n const operation = elem.getElementsByTagName(OwsConstants.OPERATION_XMLTAG);\n if (operation.length > 0) {\n for (const op of operation) {\n this.readOperation(op);\n }\n }\n }\n }\n\n export class HttpDcp {\n public readonly url?: string;\n public readonly constraintName?: string;\n\n // For simplicity of use we create a 'static' encoding property instead of having\n // a generic constraint data model.\n // We make sure the constraint name is 'encoding' related.\n public readonly encoding?: string;\n\n constructor(elem: Element) {\n const url = elem.getAttribute(XmlConstants.XLINK_HREF);\n if (url)\n this.url = url ?? \"\";\n\n const constraint = elem.getElementsByTagName(OwsConstants.CONSTRAINT_XMLTAG);\n if (constraint.length > 0) {\n this.constraintName = constraint[0].getAttribute(\"name\") ?? \"\";\n if (this.constraintName?.endsWith(XmlConstants.CONSTRAINT_NAME_FILTER)) {\n const allowedValues = constraint[0].getElementsByTagName(OwsConstants.ALLOWEDVALUES_XMLTAG);\n if (allowedValues.length > 0) {\n this.encoding = getElementTextContent(allowedValues[0], OwsConstants.VALUE_XMLTAG);\n }\n }\n }\n }\n }\n\n export class Operation {\n public readonly name?: string;\n private _getDcpHttp?: HttpDcp[];\n public get getDcpHttp(): HttpDcp[] | undefined { return this._getDcpHttp; }\n private _postDcpHttp?: HttpDcp[];\n public get postDcpHttp(): HttpDcp[] | undefined { return this._postDcpHttp; }\n\n constructor(elem: Element) {\n const name = elem.getAttribute(\"name\");\n if (name)\n this.name = name;\n\n const dcp = elem.getElementsByTagName(OwsConstants.DCP_XMLTAG);\n if (!dcp || dcp.length === 0)\n return;\n\n const dcpHttp = dcp[0].getElementsByTagName(OwsConstants.HTTP_XMLTAG);\n if (!dcpHttp || dcpHttp.length === 0)\n return;\n\n const get = dcpHttp[0].getElementsByTagName(OwsConstants.GET_XMLTAG);\n if (get.length > 0) {\n this._getDcpHttp = [];\n\n for (const getItem of get) {\n this._getDcpHttp?.push(new HttpDcp(getItem));\n }\n }\n\n const post = dcpHttp[0].getElementsByTagName(OwsConstants.POST_XMLTAG);\n if (post.length > 0) {\n this._postDcpHttp = [];\n\n for (const postItem of post) {\n this._postDcpHttp?.push(new HttpDcp(postItem));\n }\n }\n }\n }\n\n export class Contents {\n public readonly layers: Layer[] = [];\n public readonly tileMatrixSets: TileMatrixSet[] = [];\n\n constructor(elem: Element) {\n // Layers\n const layer = elem.getElementsByTagName(\"Layer\");\n if (layer) {\n for (const layerElem of layer)\n this.layers.push(new Layer(layerElem));\n }\n\n // TileMatrixSet\n const tms = elem.querySelectorAll(\"Contents > TileMatrixSet\");\n if (tms) {\n for (const tmsElem of tms)\n this.tileMatrixSets.push(new TileMatrixSet(tmsElem));\n }\n\n }\n\n public getGoogleMapsCompatibleTileMatrixSet(): TileMatrixSet[] {\n const googleMapsTms: TileMatrixSet[] = [];\n this.tileMatrixSets.forEach((tms) => {\n if (tms.wellKnownScaleSet?.toLowerCase().includes(WmtsConstants.GOOGLEMAPS_COMPATIBLE_WELLKNOWNNAME))\n googleMapsTms.push(tms);\n\n // In case wellKnownScaleSet was not been set properly, infer from scaleDenominator\n // Note: some servers are quite inaccurate in their scale values, hence I used a delta value of 1.\n else if (tms.tileMatrix.length > 0\n && Math.abs(tms.tileMatrix[0].scaleDenominator - WmtsConstants.GOOGLEMAPS_LEVEL0_SCALE_DENOM) < 1\n && (tms.supportedCrs.includes(\"3857\") || tms.supportedCrs.includes(\"900913\"))\n )\n googleMapsTms.push(tms);\n });\n return googleMapsTms;\n }\n\n public getEpsg4326CompatibleTileMatrixSet(): TileMatrixSet[] {\n return this.tileMatrixSets.filter((tms) => tms.supportedCrs.includes(\"4326\"));\n }\n }\n\n export class Style {\n public readonly isDefault: boolean = false;\n public readonly title?: string;\n public readonly identifier?: string;\n // TODO: LegendURL\n\n constructor(elem: Element) {\n if (!elem)\n return;\n\n const isDefault = elem.getAttribute(\"isDefault\");\n if (isDefault)\n this.isDefault = isDefault.toLowerCase() === \"true\";\n\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n this.identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG);\n }\n }\n\n export class BoundingBox {\n public readonly crs?: string;\n public readonly range?: Range2d;\n\n constructor(elem: Element) {\n this.crs = elem.getAttribute(\"crs\") ?? undefined;\n\n const lowerCorner = getElementTextContent(elem, OwsConstants.LOWERCORNER_XMLTAG);\n const upperCorner = getElementTextContent(elem, OwsConstants.UPPERCORNER_XMLTAG);\n if (lowerCorner && upperCorner) {\n const lowerCornerArray = lowerCorner?.split(\" \").map((x: string) => +x);\n const upperCornerArray = upperCorner?.split(\" \").map((x: string) => +x);\n if (lowerCornerArray && lowerCornerArray.length === 2 && upperCornerArray && upperCornerArray.length === 2)\n this.range = Range2d.createXYXY(lowerCornerArray[0], lowerCornerArray[1], upperCornerArray[0], upperCornerArray[1]);\n }\n }\n }\n\n export class TileMatrixSetLimits {\n public limits?: Range2d;\n public tileMatrix?: string;\n\n constructor(elem: Element) {\n\n this.tileMatrix = getElementTextContent(elem, \"TileMatrix\");\n\n const minTileRow = getElementTextContent(elem, \"MinTileRow\");\n const maxTileRow = getElementTextContent(elem, \"MaxTileRow\");\n const minTileCol = getElementTextContent(elem, \"MinTileCol\");\n const maxTileCol = getElementTextContent(elem, \"MaxTileCol\");\n\n if (minTileRow !== undefined && maxTileRow !== undefined && minTileCol !== undefined && maxTileCol)\n this.limits = Range2d.createXYXY(Number(minTileCol), Number(minTileRow), Number(maxTileCol), Number(maxTileRow));\n }\n }\n\n export class TileMatrixSetLink {\n public readonly tileMatrixSet: string;\n public readonly tileMatrixSetLimits = new Array<TileMatrixSetLimits>();\n\n constructor(elem: Element) {\n\n this.tileMatrixSet = expectDefined(getElementTextContent(elem, \"TileMatrixSet\", \"\"));\n\n const tileMatrixLimitsRoot = elem.getElementsByTagName(\"TileMatrixSetLimits\");\n if (tileMatrixLimitsRoot.length > 0) {\n const tileMatrixLimits = tileMatrixLimitsRoot[0].getElementsByTagName(\"TileMatrixSetLimits\");\n for (const tmsl of tileMatrixLimits) {\n this.tileMatrixSetLimits.push(new TileMatrixSetLimits(tmsl));\n }\n }\n }\n }\n\n export class ResourceURL {\n public readonly format: string;\n public readonly resourceType: string\n public readonly template: string;\n\n constructor(elem: Element) {\n this.format = elem.getAttribute(\"format\") ?? \"\";\n this.resourceType = elem.getAttribute(\"resourceType\") ?? \"\";\n this.template = elem.getAttribute(\"template\") ?? \"\";\n }\n }\n\n export class TileMatrixSet {\n public readonly identifier: string;\n public readonly title?: string;\n public readonly abstract?: string;\n public readonly supportedCrs: string;\n public readonly wellKnownScaleSet: string;\n public readonly tileMatrix: TileMatrix[] = [];\n\n constructor(elem: Element) {\n const identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG);\n if (identifier)\n this.identifier = identifier;\n else\n throw new Error(\"No Identifier found.\");\n\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n this.abstract = getElementTextContent(elem, OwsConstants.ABSTRACT_XMLTAG);\n\n const supportedCrs = getElementTextContent(elem, OwsConstants.SUPPORTEDCRS_XMLTAG);\n if (supportedCrs)\n this.supportedCrs = supportedCrs;\n else\n throw new Error(\"No supported CRS found.\");\n\n this.wellKnownScaleSet = expectDefined(getElementTextContent(elem, XmlConstants.WELLKNOWNSCALESET_XMLTAG, \"\"));\n\n // TileMatrix:\n // TileMatrix is mandatory on TileMatrixSet, if it doesn't exists, something is OFF with the capability.\n const tileMatrix = elem.getElementsByTagName(XmlConstants.TILEMATRIX_XMLTAG);\n if (tileMatrix.length === 0)\n throw new Error(\"No matrix set link found for WMTS layer\");\n\n for (const tm of tileMatrix) {\n this.tileMatrix.push(new TileMatrix(tm));\n }\n }\n }\n\n export class TileMatrix {\n public readonly identifier: string;\n public readonly title?: string;\n public readonly abstract?: string;\n public readonly scaleDenominator: number;\n public readonly topLeftCorner: Point2d;\n public readonly tileWidth: number;\n public readonly tileHeight: number;\n public readonly matrixWidth: number;\n public readonly matrixHeight: number;\n\n constructor(elem: Element) {\n const identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG, \"\");\n if (identifier)\n this.identifier = identifier;\n else\n throw new Error(\"No Identifier found.\");\n\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n this.abstract = getElementTextContent(elem, OwsConstants.ABSTRACT_XMLTAG);\n\n // Scale denominator\n const scaleDenom = getElementTextContent(elem, XmlConstants.SCALEDENOMINATOR_XMLTAG, \"\");\n if (!scaleDenom)\n throw new Error(\"No scale denominator found on TileMatrix.\");\n this.scaleDenominator = +scaleDenom;\n\n // Top left corner\n const topLeftCorner = getElementTextContent(elem, XmlConstants.TOPLEFTCORNER_XMLTAG, \"\")?.split(\" \").map((x: string) => +x);\n if (topLeftCorner?.length !== 2)\n throw new Error(\"No TopLeftCorner found on TileMatrix.\");\n this.topLeftCorner = Point2d.create(topLeftCorner[0], topLeftCorner[1]);\n\n // Tile Width\n const tileWidth = getElementTextContent(elem, XmlConstants.TILEWIDTH_XMLTAG);\n if (!tileWidth)\n throw new Error(\"No tile width found on TileMatrix.\");\n this.tileWidth = +tileWidth;\n\n // Tile Height\n const tileHeight = getElementTextContent(elem, XmlConstants.TILEHEIGHT_XMLTAG);\n if (!tileHeight)\n throw new Error(\"No tile height found on TileMatrix.\");\n this.tileHeight = +tileHeight;\n\n // Matrix Width\n const matrixWidth = getElementTextContent(elem, XmlConstants.MATRIXWIDTH_XMLTAG);\n if (!matrixWidth)\n throw new Error(\"No tile width found on TileMatrix.\");\n this.matrixWidth = +matrixWidth;\n\n // Matrix Height\n const matrixHeight = getElementTextContent(elem, XmlConstants.MATRIXHEIGHT_XMLTAG);\n if (!matrixHeight)\n throw new Error(\"No tile height found on TileMatrix.\");\n this.matrixHeight = +matrixHeight;\n }\n }\n\n export class Layer {\n public readonly identifier: string;\n public readonly title?: string;\n public readonly abstract?: string;\n public readonly format?: string;\n public readonly wsg84BoundingBox?: MapCartoRectangle;\n public readonly boundingBox?: BoundingBox;\n public readonly styles: Style[] = [];\n public readonly tileMatrixSetLinks: TileMatrixSetLink[] = [];\n public readonly resourceUrls: ResourceURL[] = [];\n\n constructor(elem: Element) {\n\n const identifier = getElementTextContent(elem, OwsConstants.IDENTIFIER_XMLTAG, \"\");\n if (identifier)\n this.identifier = identifier;\n else\n throw new Error(\"No Identifier found.\");\n\n this.title = getElementTextContent(elem, OwsConstants.TITLE_XMLTAG);\n this.format = getElementTextContent(elem, \"Format\");\n\n // BoundingBox\n const boundingBox = elem.getElementsByTagName(OwsConstants.BOUNDINGBOX_XMLTAG);\n if (boundingBox.length > 0)\n this.boundingBox = new BoundingBox(boundingBox[0]);\n\n let lowerCornerArray: number[] | undefined, upperCornerArray: number[] | undefined;\n const bbox = elem.getElementsByTagName(OwsConstants.WGS84BOUNDINGBOX_XMLTAG);\n if (bbox.length > 0) {\n lowerCornerArray = getElementTextContent(bbox[0], OwsConstants.LOWERCORNER_XMLTAG)?.split(\" \").map((x: string) => +x);\n upperCornerArray = getElementTextContent(bbox[0], OwsConstants.UPPERCORNER_XMLTAG)?.split(\" \").map((x: string) => +x);\n }\n\n if (lowerCornerArray?.length === 2 && upperCornerArray?.length === 2)\n this.wsg84BoundingBox = MapCartoRectangle.fromDegrees(lowerCornerArray[0], lowerCornerArray[1], upperCornerArray[0], upperCornerArray[1]);\n\n // If we could not initialized WSG84 bounding box, attempt to initialized it from Bounding Box\n if (!this.wsg84BoundingBox && (this.boundingBox?.crs?.includes(\"EPSG:4326\") || this.boundingBox?.crs?.includes(\"CRS:84\"))) {\n const range = this.boundingBox.range;\n if (range)\n this.wsg84BoundingBox = MapCartoRectangle.fromDegrees(range.low.x, range.low.y, range.high.x, range.high.y);\n else\n this.wsg84BoundingBox = MapCartoRectangle.createMaximum();\n }\n\n // Style\n const style = elem.getElementsByTagName(\"Style\");\n if (style.length > 0) {\n for (const styleElem of style)\n this.styles.push(new Style(styleElem));\n }\n\n // TileMatrixSetLink\n // TileMatrixSetLink is mandatory on Layer, if it doesn't exists, something is OFF with the capability.\n const tileMatrixSetLink = elem.getElementsByTagName(XmlConstants.TILEMATRIXSETLINK_XMLTAG);\n\n if (tileMatrixSetLink.length === 0)\n throw new Error(\"No matrix set link found for WMTS layer\");\n\n for (const tmsl of tileMatrixSetLink)\n this.tileMatrixSetLinks.push(new TileMatrixSetLink(tmsl));\n\n // ResourceURL are optional. It can be repeated for different resource types.\n const resourceUrls = elem.getElementsByTagName(XmlConstants.RESOURCEURL_XMLTAG);\n\n for (const url of resourceUrls)\n this.resourceUrls.push(new ResourceURL(url));\n }\n }\n}\n\nexport class WmtsCapabilities {\n private static _capabilitiesCache = new Map<string, WmtsCapabilities | undefined>();\n\n public readonly version?: string;\n public readonly serviceIdentification?: WmtsCapability.ServiceIdentification;\n public readonly contents?: WmtsCapability.Contents;\n\n public readonly operationsMetadata?: WmtsCapability.OperationMetadata;\n\n constructor(xmlDoc: Document) {\n\n const capabilities = xmlDoc.getElementsByTagName(\"Capabilities\");\n if (capabilities.length !== 0) {\n const capability = capabilities[0];\n this.version = capability.getAttribute(\"version\") ?? undefined;\n\n // Service Identification\n const serviceIdentification = capability.getElementsByTagName(OwsConstants.SERVICEIDENTIFICATION_XMLTAG);\n if (serviceIdentification.length > 0)\n this.serviceIdentification = new WmtsCapability.ServiceIdentification(serviceIdentification[0]);\n\n // Operations metadata\n const operationsMetadata = capability.getElementsByTagName(OwsConstants.OPERATIONSMETADATA_XMLTAG);\n if (operationsMetadata.length > 0)\n this.operationsMetadata = new WmtsCapability.OperationMetadata(operationsMetadata[0]);\n\n // Contents\n const content = capability.getElementsByTagName(\"Contents\");\n if (content.length > 0)\n this.contents = new WmtsCapability.Contents(content[0]);\n }\n }\n\n public static createFromXml(xmlCapabilities: string): WmtsCapabilities | undefined {\n const parser = new DOMParser();\n const xmlDoc = parser.parseFromString(xmlCapabilities, \"text/xml\");\n return new WmtsCapabilities(xmlDoc);\n }\n\n public static async create(url: string, credentials?: RequestBasicCredentials, ignoreCache?: boolean, queryParams?: {[key: string]: string}): Promise<WmtsCapabilities | undefined> {\n if (!ignoreCache) {\n const cached = WmtsCapabilities._capabilitiesCache.get(url);\n if (cached !== undefined)\n return cached;\n }\n\n const tmpUrl = new URL(WmsUtilities.getBaseUrl(url));\n tmpUrl.searchParams.append(\"request\", \"GetCapabilities\");\n tmpUrl.searchParams.append(\"service\", \"WMTS\");\n if (queryParams) {\n Object.keys(queryParams).forEach((paramKey) => {\n if (!tmpUrl.searchParams.has(paramKey))\n tmpUrl.searchParams.append(paramKey, queryParams[paramKey]);\n });\n }\n\n const xmlCapabilities = await WmsUtilities.fetchXml(tmpUrl.toString(), credentials);\n if (!xmlCapabilities)\n return undefined;\n\n const capabilities = WmtsCapabilities.createFromXml(xmlCapabilities);\n if (capabilities)\n WmtsCapabilities._capabilitiesCache.set(url, capabilities);\n\n return capabilities;\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormattedQuantityDescription.d.ts","sourceRoot":"","sources":["../../../src/properties/FormattedQuantityDescription.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAU,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,8BAAsB,4BAA6B,SAAQ,uBAAuB;IAChF,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,WAAW,CAAC,CAAa;gBAErB,IAAI,EAAE,gCAAgC;gBACtC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"FormattedQuantityDescription.d.ts","sourceRoot":"","sources":["../../../src/properties/FormattedQuantityDescription.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,aAAa,EAAU,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACzE,OAAO,EAAE,uBAAuB,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE9E,OAAO,EAAE,YAAY,EAAE,MAAM,0CAA0C,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,gCAAgC;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED;;;GAGG;AACH,8BAAsB,4BAA6B,SAAQ,uBAAuB;IAChF,OAAO,CAAC,cAAc,CAAC,CAAgB;IACvC,OAAO,CAAC,WAAW,CAAC,CAAa;gBAErB,IAAI,EAAE,gCAAgC;gBACtC,IAAI,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,kBAAkB,CAAC,EAAE,MAAM;IAU9F,SAAS,CAAC,WAAW,CAAC,WAAW,EAAE,MAAM,GAAG,MAAM;IAOlD,SAAS,CAAC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY;IAYtD,IAAW,aAAa,IAAI,aAAa,GAAG,SAAS,CAWpD;IAED,IAAW,UAAU,IAAI,UAAU,GAAG,SAAS,CAW9C;IAED,aAAoB,qBAAqB,IAAI,YAAY,CAAC;IAE1D,aAA6B,UAAU,IAAI,MAAM,CAAC;CACnD"}
|
|
@@ -20,6 +20,8 @@ class FormattedQuantityDescription extends appui_abstract_1.BaseQuantityDescript
|
|
|
20
20
|
_parserSpec;
|
|
21
21
|
constructor(argsOrName, displayLabel, iconSpec, kindOfQuantityName) {
|
|
22
22
|
if (typeof argsOrName === "string") {
|
|
23
|
+
// if argsOrName is a string, displayLabel must be defined.
|
|
24
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
23
25
|
super(argsOrName, displayLabel, iconSpec, kindOfQuantityName);
|
|
24
26
|
}
|
|
25
27
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FormattedQuantityDescription.js","sourceRoot":"","sources":["../../../src/properties/FormattedQuantityDescription.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,wDAAyE;AACzE,0DAA8E;AAC9E,4CAAyC;AAazC;;;GAGG;AACH,MAAsB,4BAA6B,SAAQ,wCAAuB;IACxE,cAAc,CAAiB;IAC/B,WAAW,CAAc;IAIjC,YAAY,UAAqD,EAAE,YAAqB,EAAE,QAAiB,EAAE,kBAA2B;QACtI,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,KAAK,CAAC,UAAU,EAAE,YAAa,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IACS,WAAW,CAAC,WAAmB;QACvC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,qBAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAES,WAAW,CAAC,SAAiB;QACrC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,WAAW,GAAG,qBAAS,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACjG,IAAI,sBAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;gBACzC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;QACD,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAC7C,CAAC;IAED,IAAW,aAAa;QACtB,IAAI,IAAI,CAAC,cAAc;YACrB,OAAO,IAAI,CAAC,cAAc,CAAC;QAE7B,MAAM,aAAa,GAAG,qBAAS,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC9G,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YACpC,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAW,UAAU;QACnB,IAAI,IAAI,CAAC,WAAW;YAClB,OAAO,IAAI,CAAC,WAAW,CAAC;QAE1B,MAAM,UAAU,GAAG,qBAAS,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACxG,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;YAC9B,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CAKF;
|
|
1
|
+
{"version":3,"file":"FormattedQuantityDescription.js","sourceRoot":"","sources":["../../../src/properties/FormattedQuantityDescription.ts"],"names":[],"mappings":";AAAA;;;+FAG+F;AAC/F;;GAEG;;;AAEH,wDAAyE;AACzE,0DAA8E;AAC9E,4CAAyC;AAazC;;;GAGG;AACH,MAAsB,4BAA6B,SAAQ,wCAAuB;IACxE,cAAc,CAAiB;IAC/B,WAAW,CAAc;IAIjC,YAAY,UAAqD,EAAE,YAAqB,EAAE,QAAiB,EAAE,kBAA2B;QACtI,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,2DAA2D;YAC3D,oEAAoE;YACpE,KAAK,CAAC,UAAU,EAAE,YAAa,EAAE,QAAQ,EAAE,kBAAkB,CAAC,CAAC;QACjE,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,QAAQ,EAAE,UAAU,CAAC,kBAAkB,CAAC,CAAC;QACtG,CAAC;IACH,CAAC;IACS,WAAW,CAAC,WAAmB;QACvC,IAAI,IAAI,CAAC,aAAa,EAAE,CAAC;YACvB,OAAO,qBAAS,CAAC,iBAAiB,CAAC,cAAc,CAAC,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;QACrF,CAAC;QACD,OAAO,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;IAChC,CAAC;IAES,WAAW,CAAC,SAAiB;QACrC,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,WAAW,GAAG,qBAAS,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACjG,IAAI,sBAAM,CAAC,gBAAgB,CAAC,WAAW,CAAC,EAAE,CAAC;gBACzC,OAAO,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,EAAE,CAAC;YACtC,CAAC;iBAAM,CAAC;gBACN,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC;YACzC,CAAC;QACH,CAAC;QACD,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,CAAC;IAC7C,CAAC;IAED,IAAW,aAAa;QACtB,IAAI,IAAI,CAAC,cAAc;YACrB,OAAO,IAAI,CAAC,cAAc,CAAC;QAE7B,MAAM,aAAa,GAAG,qBAAS,CAAC,iBAAiB,CAAC,+BAA+B,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QAC9G,IAAI,aAAa,EAAE,CAAC;YAClB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YACpC,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAW,UAAU;QACnB,IAAI,IAAI,CAAC,WAAW;YAClB,OAAO,IAAI,CAAC,WAAW,CAAC;QAE1B,MAAM,UAAU,GAAG,qBAAS,CAAC,iBAAiB,CAAC,4BAA4B,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;QACxG,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC;YAC9B,OAAO,UAAU,CAAC;QACpB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;CAKF;AA/DD,oEA+DC","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 Properties\n */\n\nimport { FormatterSpec, Parser, ParserSpec } from \"@itwin/core-quantity\";\nimport { BaseQuantityDescription, ParseResults } from \"@itwin/appui-abstract\";\nimport { IModelApp } from \"../IModelApp\";\nimport { QuantityType } from \"../quantity-formatting/QuantityFormatter\";\n\n/**\n * @beta\n */\nexport interface FormattedQuantityDescriptionArgs {\n name: string;\n displayLabel: string;\n iconSpec?: string;\n kindOfQuantityName?: string;\n}\n\n/**\n * Base Quantity Property Description\n * @beta\n */\nexport abstract class FormattedQuantityDescription extends BaseQuantityDescription {\n private _formatterSpec?: FormatterSpec;\n private _parserSpec?: ParserSpec;\n\n constructor(args: FormattedQuantityDescriptionArgs);\n constructor(name: string, displayLabel: string, iconSpec?: string, kindOfQuantityName?: string);\n constructor(argsOrName: FormattedQuantityDescriptionArgs | string, displayLabel?: string, iconSpec?: string, kindOfQuantityName?: string) {\n if (typeof argsOrName === \"string\") {\n // if argsOrName is a string, displayLabel must be defined.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n super(argsOrName, displayLabel!, iconSpec, kindOfQuantityName);\n } else {\n super(argsOrName.name, argsOrName.displayLabel, argsOrName.iconSpec, argsOrName.kindOfQuantityName);\n }\n }\n protected formatValue(numberValue: number): string {\n if (this.formatterSpec) {\n return IModelApp.quantityFormatter.formatQuantity(numberValue, this.formatterSpec);\n }\n return numberValue.toFixed(2);\n }\n\n protected parseString(userInput: string): ParseResults {\n if (this.parserSpec) {\n const parseResult = IModelApp.quantityFormatter.parseToQuantityValue(userInput, this.parserSpec);\n if (Parser.isParsedQuantity(parseResult)) {\n return { value: parseResult.value };\n } else {\n return { parseError: this.parseError };\n }\n }\n return { parseError: \"no parser defined\" };\n }\n\n public get formatterSpec(): FormatterSpec | undefined {\n if (this._formatterSpec)\n return this._formatterSpec;\n\n const formatterSpec = IModelApp.quantityFormatter.findFormatterSpecByQuantityType(this.formatterQuantityType);\n if (formatterSpec) {\n this._formatterSpec = formatterSpec;\n return formatterSpec;\n }\n\n return undefined;\n }\n\n public get parserSpec(): ParserSpec | undefined {\n if (this._parserSpec)\n return this._parserSpec;\n\n const parserSpec = IModelApp.quantityFormatter.findParserSpecByQuantityType(this.formatterQuantityType);\n if (parserSpec) {\n this._parserSpec = parserSpec;\n return parserSpec;\n }\n\n return undefined;\n }\n\n public abstract get formatterQuantityType(): QuantityType;\n\n public abstract override get parseError(): string;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseUnitFormattingSettingsProvider.d.ts","sourceRoot":"","sources":["../../../src/quantity-formatting/BaseUnitFormattingSettingsProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EACL,+BAA+B,EAAE,mBAAmB,EAAE,kCAAkC,EAAE,iBAAiB,EAC3G,eAAe,EAAE,8BAA8B,EAChD,MAAM,qBAAqB,CAAC;AAE7B;;;;;GAKG;AACH,8BAAsB,kCAAmC,YAAW,8BAA8B;IASpF,OAAO,CAAC,kBAAkB;IAAqB,OAAO,CAAC,2BAA2B,CAAC;IAR/F,SAAS,CAAC,iBAAiB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAE1D;;;;;OAKG;gBACiB,kBAAkB,EAAE,iBAAiB,EAAU,2BAA2B,CAAC,EAAE,OAAO,YAAA;IAQxG,IAAW,0BAA0B,IAAI,OAAO,CAE/C;IAEM,oBAAoB,2CAAgD,kCAAkC,mBAwB3G;IAEF,wCAAwC;IACjC,sBAAsB,eAAoB,+BAA+B,mBAE9E;IAEW,aAAa,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE,SAAS,CAAC,wCAAwC,YAAmB,gBAAgB,mBAMnF;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,qBAAqB,CAI3B;IAEF,OAAO,CAAC,iBAAiB,CAEvB;IAEF,SAAS,KAAK,gBAAgB,iCAE7B;IAED,iIAAiI;cACjH,+BAA+B;
|
|
1
|
+
{"version":3,"file":"BaseUnitFormattingSettingsProvider.d.ts","sourceRoot":"","sources":["../../../src/quantity-formatting/BaseUnitFormattingSettingsProvider.ts"],"names":[],"mappings":"AAIA;;GAEG;AAEH,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EACL,+BAA+B,EAAE,mBAAmB,EAAE,kCAAkC,EAAE,iBAAiB,EAC3G,eAAe,EAAE,8BAA8B,EAChD,MAAM,qBAAqB,CAAC;AAE7B;;;;;GAKG;AACH,8BAAsB,kCAAmC,YAAW,8BAA8B;IASpF,OAAO,CAAC,kBAAkB;IAAqB,OAAO,CAAC,2BAA2B,CAAC;IAR/F,SAAS,CAAC,iBAAiB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IAE1D;;;;;OAKG;gBACiB,kBAAkB,EAAE,iBAAiB,EAAU,2BAA2B,CAAC,EAAE,OAAO,YAAA;IAQxG,IAAW,0BAA0B,IAAI,OAAO,CAE/C;IAEM,oBAAoB,2CAAgD,kCAAkC,mBAwB3G;IAEF,wCAAwC;IACjC,sBAAsB,eAAoB,+BAA+B,mBAE9E;IAEW,aAAa,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE,SAAS,CAAC,wCAAwC,YAAmB,gBAAgB,mBAMnF;IAEF,OAAO,CAAC,gBAAgB,CAEtB;IAEF,OAAO,CAAC,qBAAqB,CAI3B;IAEF,OAAO,CAAC,iBAAiB,CAEvB;IAEF,SAAS,KAAK,gBAAgB,iCAE7B;IAED,iIAAiI;cACjH,+BAA+B;IAgC/C,uFAAuF;aACvE,KAAK,CAAC,eAAe,EAAE,eAAe,EAAE,aAAa,EAAE,mBAAmB,GAAG,OAAO,CAAC,OAAO,CAAC;IAE7G,iGAAiG;aACjF,QAAQ,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,GAAC,SAAS,CAAC;IAElG,iEAAiE;aACjD,MAAM,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,OAAO,CAAC;IAE1E,yFAAyF;aACzE,kBAAkB,CAAC,UAAU,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAErF,gFAAgF;aAChE,kBAAkB,CAAC,aAAa,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC;CACnF"}
|
|
@@ -110,6 +110,8 @@ class BaseUnitFormattingSettingsProvider {
|
|
|
110
110
|
const props = overrideEntry[unitSystemKey];
|
|
111
111
|
if (props) {
|
|
112
112
|
if (overrideFormatProps.has(unitSystemKey)) {
|
|
113
|
+
// We just verified that the overrideFormatProps map has the unitSystemKey
|
|
114
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
113
115
|
overrideFormatProps.get(unitSystemKey).set(typeKey, props);
|
|
114
116
|
}
|
|
115
117
|
else {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BaseUnitFormattingSettingsProvider.js","sourceRoot":"","sources":["../../../src/quantity-formatting/BaseUnitFormattingSettingsProvider.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 QuantityFormatting\n */\n\nimport { FormatProps, UnitSystemKey } from \"@itwin/core-quantity\";\nimport { IModelApp } from \"../IModelApp\";\nimport { IModelConnection } from \"../IModelConnection\";\nimport { SelectedViewportChangedArgs } from \"../ViewManager\";\nimport {\n FormattingUnitSystemChangedArgs, OverrideFormatEntry, QuantityFormatOverridesChangedArgs, QuantityFormatter,\n QuantityTypeKey, UnitFormattingSettingsProvider,\n} from \"./QuantityFormatter\";\n\n/** This abstract class reacts to changes in the \"active\" iModel and updates the [[QuantityFormatter]] overrides and active\n * presentation unit system based on stored preferences. In addition, monitors the [[QuantityFormatter]] for changes to format overrides and the active\n * unit system and stores these changes. The \"active\" iModel is determined by listening to the `IModelApp.viewManager.onSelectedViewportChanged` event\n * and gets the iModel from the selected viewport.\n * @beta\n */\nexport abstract class BaseUnitFormattingSettingsProvider implements UnitFormattingSettingsProvider {\n protected _imodelConnection: IModelConnection | undefined;\n\n /**\n * @param maintainOverridesPerIModel If maintainOverridesPerIModel is true the base class will set up listeners\n * to monitor \"active\" iModel changes so the overrides for the QuantityFormatter properly match the overrides set\n * up by the user. If false then the overrides are maintained only per user.\n * @beta\n */\n constructor(private _quantityFormatter: QuantityFormatter, private _maintainOverridesPerIModel?: boolean) {\n if (this._maintainOverridesPerIModel) {\n IModelApp.viewManager.onSelectedViewportChanged.addListener(this.handleViewportChanged);\n IModelConnection.onOpen.addListener(this.handleIModelOpen);\n IModelConnection.onClose.addListener(this.handleIModelClose);\n }\n }\n\n public get maintainOverridesPerIModel(): boolean {\n return !!this._maintainOverridesPerIModel;\n }\n\n public storeFormatOverrides = async ({typeKey, overrideEntry, unitSystem}: QuantityFormatOverridesChangedArgs) => {\n if (undefined === overrideEntry) {\n // remove all overrides for quantity type\n if (undefined === unitSystem) {\n await this.remove (typeKey);\n return;\n }else {\n // remove only system specific overrides for quantity type\n const storedJson = await this.retrieve (typeKey);\n if (storedJson) {\n delete storedJson[unitSystem];\n if (Object.keys(storedJson).length) {\n await this.store (typeKey, storedJson);\n } else {\n await this.remove (typeKey);\n }\n }\n }\n } else {\n // setting a new override or set of overrides\n const storedJson = await this.retrieve (typeKey);\n const updatedFormat = {...storedJson, ...overrideEntry};\n await this.store (typeKey, updatedFormat);\n }\n };\n\n /** save UnitSystem for active iModel */\n public storeUnitSystemSetting = async ({system}: FormattingUnitSystemChangedArgs) => {\n await this.storeUnitSystemKey(system);\n };\n\n public async loadOverrides(imodel?: IModelConnection): Promise<void> {\n await this.applyQuantityFormattingSettingsForIModel(imodel);\n }\n\n protected applyQuantityFormattingSettingsForIModel = async (imodel?: IModelConnection) => {\n if (this._maintainOverridesPerIModel)\n this._imodelConnection = imodel;\n const overrideFormatProps = await this.buildQuantityFormatOverridesMap();\n const unitSystemKey = await this.retrieveUnitSystem (this._quantityFormatter.activeUnitSystem);\n await this._quantityFormatter.reinitializeFormatAndParsingsMaps(overrideFormatProps, unitSystemKey, true, true);\n };\n\n private handleIModelOpen = async (imodel: IModelConnection) => {\n await this.applyQuantityFormattingSettingsForIModel (imodel);\n };\n\n private handleViewportChanged = async (args: SelectedViewportChangedArgs) => {\n if(args.current?.iModel && (args.current?.iModel?.iModelId !== this.imodelConnection?.iModelId)) {\n await this.applyQuantityFormattingSettingsForIModel (args.current?.iModel);\n }\n };\n\n private handleIModelClose = async () => {\n this._imodelConnection = undefined;\n };\n\n protected get imodelConnection() {\n return this._imodelConnection;\n }\n\n /** function to convert from serialized JSON format for Quantity Type overrides to build a map compatible with QuantityManager */\n protected async buildQuantityFormatOverridesMap() {\n const overrideFormatProps = new Map<UnitSystemKey, Map<QuantityTypeKey, FormatProps>>();\n\n // use map and await all returned promises - overrides are stored by QuantityType\n for (const quantityTypeKey of [...this._quantityFormatter.quantityTypesRegistry.keys()]) {\n const quantityTypeDef = this._quantityFormatter.quantityTypesRegistry.get(quantityTypeKey);\n if (quantityTypeDef) {\n const typeKey = quantityTypeDef.key;\n const overrideEntry = await this.retrieve (typeKey);\n if (overrideEntry) {\n // extract overrides and insert into appropriate override map entry\n Object.keys(overrideEntry).forEach ((systemKey) => {\n const unitSystemKey = systemKey as UnitSystemKey;\n const props = overrideEntry[unitSystemKey];\n if (props) {\n if (overrideFormatProps.has(unitSystemKey)) {\n overrideFormatProps.get(unitSystemKey)!.set(typeKey, props);\n } else {\n const newMap = new Map<string, FormatProps>();\n newMap.set(typeKey, props);\n overrideFormatProps.set(unitSystemKey, newMap);\n }\n }\n });\n }\n }\n }\n return overrideFormatProps;\n }\n\n /** Serializes JSON object containing format overrides for a specific quantity type. */\n public abstract store(quantityTypeKey: QuantityTypeKey, overrideProps: OverrideFormatEntry): Promise<boolean>;\n\n /** Retrieves serialized JSON object containing format overrides for a specific quantity type. */\n public abstract retrieve(quantityTypeKey: QuantityTypeKey): Promise<OverrideFormatEntry|undefined>;\n\n /** Removes the override formats for a specific quantity type. */\n public abstract remove(quantityTypeKey: QuantityTypeKey): Promise<boolean>;\n\n /** Retrieves the active unit system typically based on the \"active\" iModelConnection. */\n public abstract retrieveUnitSystem(defaultKey: UnitSystemKey): Promise<UnitSystemKey>;\n\n /** Store the active unit system typically for the \"active\" iModelConnection. */\n public abstract storeUnitSystemKey(unitSystemKey: UnitSystemKey): Promise<boolean>;\n}\n\n"]}
|
|
1
|
+
{"version":3,"file":"BaseUnitFormattingSettingsProvider.js","sourceRoot":"","sources":["../../../src/quantity-formatting/BaseUnitFormattingSettingsProvider.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 QuantityFormatting\n */\n\nimport { FormatProps, UnitSystemKey } from \"@itwin/core-quantity\";\nimport { IModelApp } from \"../IModelApp\";\nimport { IModelConnection } from \"../IModelConnection\";\nimport { SelectedViewportChangedArgs } from \"../ViewManager\";\nimport {\n FormattingUnitSystemChangedArgs, OverrideFormatEntry, QuantityFormatOverridesChangedArgs, QuantityFormatter,\n QuantityTypeKey, UnitFormattingSettingsProvider,\n} from \"./QuantityFormatter\";\n\n/** This abstract class reacts to changes in the \"active\" iModel and updates the [[QuantityFormatter]] overrides and active\n * presentation unit system based on stored preferences. In addition, monitors the [[QuantityFormatter]] for changes to format overrides and the active\n * unit system and stores these changes. The \"active\" iModel is determined by listening to the `IModelApp.viewManager.onSelectedViewportChanged` event\n * and gets the iModel from the selected viewport.\n * @beta\n */\nexport abstract class BaseUnitFormattingSettingsProvider implements UnitFormattingSettingsProvider {\n protected _imodelConnection: IModelConnection | undefined;\n\n /**\n * @param maintainOverridesPerIModel If maintainOverridesPerIModel is true the base class will set up listeners\n * to monitor \"active\" iModel changes so the overrides for the QuantityFormatter properly match the overrides set\n * up by the user. If false then the overrides are maintained only per user.\n * @beta\n */\n constructor(private _quantityFormatter: QuantityFormatter, private _maintainOverridesPerIModel?: boolean) {\n if (this._maintainOverridesPerIModel) {\n IModelApp.viewManager.onSelectedViewportChanged.addListener(this.handleViewportChanged);\n IModelConnection.onOpen.addListener(this.handleIModelOpen);\n IModelConnection.onClose.addListener(this.handleIModelClose);\n }\n }\n\n public get maintainOverridesPerIModel(): boolean {\n return !!this._maintainOverridesPerIModel;\n }\n\n public storeFormatOverrides = async ({typeKey, overrideEntry, unitSystem}: QuantityFormatOverridesChangedArgs) => {\n if (undefined === overrideEntry) {\n // remove all overrides for quantity type\n if (undefined === unitSystem) {\n await this.remove (typeKey);\n return;\n }else {\n // remove only system specific overrides for quantity type\n const storedJson = await this.retrieve (typeKey);\n if (storedJson) {\n delete storedJson[unitSystem];\n if (Object.keys(storedJson).length) {\n await this.store (typeKey, storedJson);\n } else {\n await this.remove (typeKey);\n }\n }\n }\n } else {\n // setting a new override or set of overrides\n const storedJson = await this.retrieve (typeKey);\n const updatedFormat = {...storedJson, ...overrideEntry};\n await this.store (typeKey, updatedFormat);\n }\n };\n\n /** save UnitSystem for active iModel */\n public storeUnitSystemSetting = async ({system}: FormattingUnitSystemChangedArgs) => {\n await this.storeUnitSystemKey(system);\n };\n\n public async loadOverrides(imodel?: IModelConnection): Promise<void> {\n await this.applyQuantityFormattingSettingsForIModel(imodel);\n }\n\n protected applyQuantityFormattingSettingsForIModel = async (imodel?: IModelConnection) => {\n if (this._maintainOverridesPerIModel)\n this._imodelConnection = imodel;\n const overrideFormatProps = await this.buildQuantityFormatOverridesMap();\n const unitSystemKey = await this.retrieveUnitSystem (this._quantityFormatter.activeUnitSystem);\n await this._quantityFormatter.reinitializeFormatAndParsingsMaps(overrideFormatProps, unitSystemKey, true, true);\n };\n\n private handleIModelOpen = async (imodel: IModelConnection) => {\n await this.applyQuantityFormattingSettingsForIModel (imodel);\n };\n\n private handleViewportChanged = async (args: SelectedViewportChangedArgs) => {\n if(args.current?.iModel && (args.current?.iModel?.iModelId !== this.imodelConnection?.iModelId)) {\n await this.applyQuantityFormattingSettingsForIModel (args.current?.iModel);\n }\n };\n\n private handleIModelClose = async () => {\n this._imodelConnection = undefined;\n };\n\n protected get imodelConnection() {\n return this._imodelConnection;\n }\n\n /** function to convert from serialized JSON format for Quantity Type overrides to build a map compatible with QuantityManager */\n protected async buildQuantityFormatOverridesMap() {\n const overrideFormatProps = new Map<UnitSystemKey, Map<QuantityTypeKey, FormatProps>>();\n\n // use map and await all returned promises - overrides are stored by QuantityType\n for (const quantityTypeKey of [...this._quantityFormatter.quantityTypesRegistry.keys()]) {\n const quantityTypeDef = this._quantityFormatter.quantityTypesRegistry.get(quantityTypeKey);\n if (quantityTypeDef) {\n const typeKey = quantityTypeDef.key;\n const overrideEntry = await this.retrieve (typeKey);\n if (overrideEntry) {\n // extract overrides and insert into appropriate override map entry\n Object.keys(overrideEntry).forEach ((systemKey) => {\n const unitSystemKey = systemKey as UnitSystemKey;\n const props = overrideEntry[unitSystemKey];\n if (props) {\n if (overrideFormatProps.has(unitSystemKey)) {\n // We just verified that the overrideFormatProps map has the unitSystemKey\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n overrideFormatProps.get(unitSystemKey)!.set(typeKey, props);\n } else {\n const newMap = new Map<string, FormatProps>();\n newMap.set(typeKey, props);\n overrideFormatProps.set(unitSystemKey, newMap);\n }\n }\n });\n }\n }\n }\n return overrideFormatProps;\n }\n\n /** Serializes JSON object containing format overrides for a specific quantity type. */\n public abstract store(quantityTypeKey: QuantityTypeKey, overrideProps: OverrideFormatEntry): Promise<boolean>;\n\n /** Retrieves serialized JSON object containing format overrides for a specific quantity type. */\n public abstract retrieve(quantityTypeKey: QuantityTypeKey): Promise<OverrideFormatEntry|undefined>;\n\n /** Removes the override formats for a specific quantity type. */\n public abstract remove(quantityTypeKey: QuantityTypeKey): Promise<boolean>;\n\n /** Retrieves the active unit system typically based on the \"active\" iModelConnection. */\n public abstract retrieveUnitSystem(defaultKey: UnitSystemKey): Promise<UnitSystemKey>;\n\n /** Store the active unit system typically for the \"active\" iModelConnection. */\n public abstract storeUnitSystemKey(unitSystemKey: UnitSystemKey): Promise<boolean>;\n}\n\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"QuantityFormatter.d.ts","sourceRoot":"","sources":["../../../src/quantity-formatting/QuantityFormatter.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"QuantityFormatter.d.ts","sourceRoot":"","sources":["../../../src/quantity-formatting/QuantityFormatter.ts"],"names":[],"mappings":"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"}
|
|
@@ -159,6 +159,7 @@ class QuantityTypeFormatsProvider {
|
|
|
159
159
|
["AecUnits.ANGLE", QuantityType.Angle],
|
|
160
160
|
["AecUnits.AREA", QuantityType.Area],
|
|
161
161
|
["AecUnits.VOLUME", QuantityType.Volume],
|
|
162
|
+
["AecUnits.LENGTH_COORDINATE", QuantityType.Coordinate],
|
|
162
163
|
["RoadRailUnits.STATION", QuantityType.Stationing],
|
|
163
164
|
["RoadRailUnits.LENGTH", QuantityType.LengthSurvey],
|
|
164
165
|
]);
|
|
@@ -312,10 +313,10 @@ class QuantityFormatter {
|
|
|
312
313
|
const systemKey = (undefined !== systemType) ? systemType : this._activeUnitSystem;
|
|
313
314
|
const formatPropsByType = new Map();
|
|
314
315
|
// load cache for every registered QuantityType
|
|
315
|
-
[
|
|
316
|
-
const entry = this.quantityTypesRegistry.get(key);
|
|
316
|
+
for (const [_, entry] of this.quantityTypesRegistry) {
|
|
317
317
|
formatPropsByType.set(entry, this.getFormatPropsByQuantityTypeEntryAndSystem(entry, systemKey));
|
|
318
|
-
}
|
|
318
|
+
}
|
|
319
|
+
;
|
|
319
320
|
for (const [entry, formatProps] of formatPropsByType) {
|
|
320
321
|
await this.loadFormatAndParserSpec(entry, formatProps);
|
|
321
322
|
}
|
|
@@ -349,6 +350,8 @@ class QuantityFormatter {
|
|
|
349
350
|
const props = overrideEntry[unitSystemKey];
|
|
350
351
|
if (props) {
|
|
351
352
|
if (this._overrideFormatPropsByUnitSystem.has(unitSystemKey)) {
|
|
353
|
+
// We just verified that unitSystemKey is present.
|
|
354
|
+
// eslint-disable-next-line @typescript-eslint/no-non-null-assertion
|
|
352
355
|
this._overrideFormatPropsByUnitSystem.get(unitSystemKey).set(typeKey, props);
|
|
353
356
|
}
|
|
354
357
|
else {
|
|
@@ -388,7 +391,7 @@ class QuantityFormatter {
|
|
|
388
391
|
*/
|
|
389
392
|
async onInitialized() {
|
|
390
393
|
await this.initializeQuantityTypesRegistry();
|
|
391
|
-
const initialKoQs = [["AecUnits.LENGTH", "Units.M"], ["AecUnits.ANGLE", "Units.RAD"], ["AecUnits.AREA", "Units.SQ_M"], ["AecUnits.VOLUME", "Units.CUB_M"], ["RoadRailUnits.STATION", "Units.M"], ["RoadRailUnits.LENGTH", "Units.M"]];
|
|
394
|
+
const initialKoQs = [["AecUnits.LENGTH", "Units.M"], ["AecUnits.ANGLE", "Units.RAD"], ["AecUnits.AREA", "Units.SQ_M"], ["AecUnits.VOLUME", "Units.CUB_M"], ["AecUnits.LENGTH_COORDINATE", "Units.M"], ["RoadRailUnits.STATION", "Units.M"], ["RoadRailUnits.LENGTH", "Units.M"]];
|
|
392
395
|
for (const entry of initialKoQs) {
|
|
393
396
|
try {
|
|
394
397
|
await this.addFormattingSpecsToRegistry(entry[0], entry[1]);
|