@arcgis/core 6.0.0-next.26 → 6.0.0-next.28
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/Map.d.ts +6 -0
- package/analysis/AreaMeasurementAnalysis.d.ts +4 -2
- package/analysis/DirectLineMeasurementAnalysis.d.ts +8 -4
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/0363d29fc665d169ebc4.js +1 -0
- package/assets/esri/core/workers/chunks/037c67ef5c4398d5954d.js +1 -0
- package/assets/esri/core/workers/chunks/03f33cb78b5405ab7e23.js +1 -0
- package/assets/esri/core/workers/chunks/07b726a46864501b90a0.js +1 -0
- package/assets/esri/core/workers/chunks/0864da8f8f147016cf1c.js +1 -0
- package/assets/esri/core/workers/chunks/{768389f7f8dba6080df7.js → 0cc7fba402a93e6d2455.js} +2 -2
- package/assets/esri/core/workers/chunks/0cfdeb53fb7d5532cf01.js +1 -0
- package/assets/esri/core/workers/chunks/112ed86f812e4400a7e0.js +1 -0
- package/assets/esri/core/workers/chunks/177f353ce72133e2eeed.js +1 -0
- package/assets/esri/core/workers/chunks/1dc6f093028530a492e6.js +1 -0
- package/assets/esri/core/workers/chunks/2294254af2c6afb560ee.js +1 -0
- package/assets/esri/core/workers/chunks/23a4806b4cdf7cc32e4d.js +1 -0
- package/assets/esri/core/workers/chunks/2447d2e2a4a3ab8fcf94.js +1 -0
- package/assets/esri/core/workers/chunks/271ae7deccb94112c2df.js +1 -0
- package/assets/esri/core/workers/chunks/2df37a9a95ceebb87a5f.js +1 -0
- package/assets/esri/core/workers/chunks/2e00c155e447e4930442.js +1 -0
- package/assets/esri/core/workers/chunks/2e9a1673b1d51aa082b6.js +1 -0
- package/assets/esri/core/workers/chunks/344f5334ad95c7974349.js +1 -0
- package/assets/esri/core/workers/chunks/348f1def9cd2ddf92e87.js +1 -0
- package/assets/esri/core/workers/chunks/{8e4206068c6953bb7df2.js → 3a47fc97c400fca2c736.js} +1 -1
- package/assets/esri/core/workers/chunks/47c97640ec525676918b.js +1 -0
- package/assets/esri/core/workers/chunks/50763ea061d5fb3f2e49.js +1 -0
- package/assets/esri/core/workers/chunks/518ab22f80c3300bcfff.js +1 -0
- package/assets/esri/core/workers/chunks/58609bf94f72bc4f1952.js +1 -0
- package/assets/esri/core/workers/chunks/586a929bc037e23857af.js +1 -0
- package/assets/esri/core/workers/chunks/58d10e0b35968680fd9f.js +1 -0
- package/assets/esri/core/workers/chunks/59bc55880e6fd8ce20c0.js +1 -0
- package/assets/esri/core/workers/chunks/{7c75a8ee266c36baa902.js → 5eec1c1162779574f46e.js} +1 -1
- package/assets/esri/core/workers/chunks/62a0abcf45a2bd14ecbe.js +1 -0
- package/assets/esri/core/workers/chunks/63c4412c16d8a44a5668.js +1 -0
- package/assets/esri/core/workers/chunks/6b4c3411f63a9ad9354c.js +1 -0
- package/assets/esri/core/workers/chunks/{f528ac5c648ca6a98582.js → 711cfb84659cb4437679.js} +1 -1
- package/assets/esri/core/workers/chunks/{9dd1fc56eb1ea6eb705e.js → 76e27e36050a3dd9d249.js} +1 -1
- package/assets/esri/core/workers/chunks/76f877e2d2493d56afab.js +1 -0
- package/assets/esri/core/workers/chunks/77463141652bf1ca6fb2.js +1 -0
- package/assets/esri/core/workers/chunks/7d3f7940815fa5dc244e.js +1 -0
- package/assets/esri/core/workers/chunks/914a0b5d9fef683cdf9c.js +1 -0
- package/assets/esri/core/workers/chunks/96f87c8efd4b11b37686.js +1 -0
- package/assets/esri/core/workers/chunks/97ec46605f16333144b7.js +1 -0
- package/assets/esri/core/workers/chunks/{7b482afb9fd1229f5707.js → 9934e8e19f94e9169eea.js} +1 -1
- package/assets/esri/core/workers/chunks/99f51d5d9da6e9bfc430.js +1 -0
- package/assets/esri/core/workers/chunks/9aebe876b1a2fb075f9c.js +1 -0
- package/assets/esri/core/workers/chunks/9c3db7a7c05fa0e81f0a.js +1 -0
- package/assets/esri/core/workers/chunks/{6f1d6453184e0a1530ad.js → 9c4961213ac6ec283dd9.js} +25 -25
- package/assets/esri/core/workers/chunks/a2cc53ad1a514167e4b8.js +1 -0
- package/assets/esri/core/workers/chunks/a33ba23aee3f8f40200f.js +1 -0
- package/assets/esri/core/workers/chunks/{45ba4aa87a4732198596.js → b13d8f4e4e80ef00b1bd.js} +1 -1
- package/assets/esri/core/workers/chunks/b3801d58c024224917df.js +1 -0
- package/assets/esri/core/workers/chunks/b3aa29589dcfb5b93106.js +1 -0
- package/assets/esri/core/workers/chunks/b3dbcf43f136ba2dadc5.js +1 -0
- package/assets/esri/core/workers/chunks/b9596d862da1ec342cd3.js +1 -0
- package/assets/esri/core/workers/chunks/bc1fcc9c897461e68e29.js +1 -0
- package/assets/esri/core/workers/chunks/{8b4e9fd88c0c313416d4.js → be04f40f8b403befd0ef.js} +1 -1
- package/assets/esri/core/workers/chunks/{150e7a7bd5df25693da7.js → c90388932a7825d9d933.js} +1 -1
- package/assets/esri/core/workers/chunks/ca21786e519c914fc9e1.js +1 -0
- package/assets/esri/core/workers/chunks/cdb5c26fed7d9a97db49.js +1 -0
- package/assets/esri/core/workers/chunks/cdf0c7706d3e1221f49b.js +1 -0
- package/assets/esri/core/workers/chunks/d63e181f0e48bde73395.js +1 -0
- package/assets/esri/core/workers/chunks/d77888c84a8b49478807.js +1 -0
- package/assets/esri/core/workers/chunks/d7f2f1708d2a2668676c.js +1 -0
- package/assets/esri/core/workers/chunks/{13c64087be3b2985a21b.js → dbda982485d3fe26c729.js} +1 -1
- package/assets/esri/core/workers/chunks/dc7aa0a1eb6c6e361f9f.js +1 -0
- package/assets/esri/core/workers/chunks/ec1c4d66142b6efb0e8b.js +1 -0
- package/assets/esri/core/workers/chunks/ef2c3febcceedc44b3ac.js +1 -0
- package/assets/esri/core/workers/chunks/f08a2a262a3b55149396.js +1 -0
- package/assets/esri/core/workers/chunks/f2d56f5c15d5977e1d19.js +1 -0
- package/assets/esri/core/workers/chunks/ffe2077a9df7c838ea27.js +1 -0
- package/assets/esri/layers/raster/formats/lerc-wasm.wasm +0 -0
- package/chunks/BlendLayers.glsl.js +1 -1
- package/chunks/Component.glsl.js +9 -12
- package/chunks/GaussianSplat.glsl.js +65 -21
- package/chunks/GaussianSplatDepth.glsl.js +45 -4
- package/chunks/GaussianSplatShadow.glsl.js +73 -19
- package/chunks/GlobalIllumination.glsl.js +17 -47
- package/chunks/LineMarker.glsl.js +32 -31
- package/chunks/OITAddEmission.glsl.js +1 -1
- package/chunks/RasterColorizer.glsl.js +1 -1
- package/chunks/RibbonLine.glsl.js +36 -36
- package/chunks/Terrain.glsl.js +3 -4
- package/chunks/Water.glsl.js +22 -23
- package/config.js +1 -1
- package/core/ReentrantObjectPool.js +1 -1
- package/core/memoryEstimations.js +1 -1
- package/core/workers/workers.js +2 -2
- package/core/workers.d.ts +1 -1
- package/form/elements/inputs/DynamicChoiceInput.d.ts +2 -2
- package/form/elements/inputs.d.ts +126 -25
- package/form/elements/inputs.js +1 -1
- package/form/elements.d.ts +1 -0
- package/geometry/operators/containsOperator.d.ts +1 -1
- package/geometry/operators/densifyOperator.d.ts +1 -1
- package/geometry/operators/differenceOperator.d.ts +6 -4
- package/geometry/operators/distanceOperator.d.ts +1 -1
- package/geometry/operators/geodesicProximityOperator.d.ts +8 -8
- package/geometry/operators/graphicBufferOperator.d.ts +6 -6
- package/geometry/operators/integrateOperator.d.ts +2 -2
- package/geometry/operators/intersectsOperator.d.ts +3 -3
- package/geometry/operators/linesToPolygonsOperator.d.ts +2 -2
- package/geometry/operators/locateBetweenOperator.d.ts +2 -2
- package/geometry/operators/minimumBoundingCircleOperator.d.ts +1 -1
- package/geometry/operators/multiPartToSinglePartOperator.d.ts +2 -2
- package/geometry/operators/polygonSlicerOperator.d.ts +2 -2
- package/geometry/operators/projectOperator.d.ts +2 -2
- package/geometry/operators/proximityOperator.d.ts +15 -15
- package/geometry/operators/shapePreservingProjectOperator.d.ts +2 -2
- package/geometry/operators/simplifyOperator.d.ts +2 -2
- package/geometry/operators/support/GeographicTransformationStep.d.ts +3 -3
- package/geometry/operators/support/Transformation.d.ts +8 -8
- package/geometry/operators/support/geographicTransformationUtils.d.ts +3 -3
- package/geometry/operators/symmetricDifferenceOperator.d.ts +2 -2
- package/geometry/operators/withinOperator.d.ts +3 -3
- package/geometry/support/Indices.js +1 -1
- package/graphic/MapNotesGraphicOrigin.d.ts +1 -0
- package/kernel.js +1 -1
- package/layers/GeospatialPDFLayer.d.ts +2 -2
- package/layers/GeospatialPDFLayer.js +1 -1
- package/layers/MapNotesLayer.d.ts +3 -2
- package/layers/ParquetLayer.d.ts +1 -1
- package/layers/VectorTileLayer.d.ts +10 -1
- package/layers/buildingSublayers/BuildingGroupSublayer.d.ts +2 -1
- package/layers/geospatialPDF/CIM2DLayerview.js +2 -0
- package/layers/geospatialPDF/GeospatialPDFFrame.js +1 -1
- package/layers/graphics/sources/support/ParquetSourceWorker.js +1 -1
- package/layers/mixins/SublayersOwner.js +1 -1
- package/layers/orientedImagery/transformations/imageToWorld.js +1 -1
- package/layers/orientedImagery/transformations/rectifyMapPoint.js +1 -1
- package/layers/support/Sublayer.d.ts +2 -2
- package/layers/support/Sublayer.js +1 -1
- package/layers/support/SubtypeSublayer.js +1 -1
- package/layers/support/layerUtils.js +1 -1
- package/package.json +3 -3
- package/popup/FeaturesModel.js +1 -1
- package/popup/support/featureUtils.js +1 -1
- package/rest/featureService/FeatureService.d.ts +0 -5
- package/rest/networks/support/TraceLocation.d.ts +2 -1
- package/rest/networks/support/TraceResult.d.ts +0 -4
- package/rest/support/AttributeBinsQuery.d.ts +3 -2
- package/rest/support/ImageGPSInfoParameters.d.ts +2 -1
- package/rest/support/OutDistance.d.ts +2 -2
- package/rest/support/Query.d.ts +3 -2
- package/rest/support/TopFeaturesQuery.d.ts +2 -1
- package/rest/support/types.d.ts +10 -1
- package/smartMapping/raster/renderers/flow.d.ts +2 -1
- package/smartMapping/renderers/color.d.ts +11 -8
- package/smartMapping/renderers/location.d.ts +7 -4
- package/smartMapping/renderers/predominance.d.ts +7 -4
- package/smartMapping/renderers/relationship.d.ts +7 -4
- package/smartMapping/renderers/size.d.ts +6 -4
- package/smartMapping/renderers/type.d.ts +7 -4
- package/smartMapping/renderers/types.d.ts +15 -0
- package/smartMapping/renderers/univariateColorSize.d.ts +4 -2
- package/smartMapping/statistics/histogramForTimeSeries.js +1 -1
- package/smartMapping/statistics/summaryStatisticsForTimeSeries.js +1 -1
- package/smartMapping/symbology/flow.d.ts +2 -1
- package/smartMapping/symbology/types.d.ts +2 -1
- package/support/BasemapStyle.d.ts +2 -2
- package/symbols/cim/CIMCursor.js +1 -1
- package/symbols/cim/types.d.ts +7 -9
- package/tables/elements.d.ts +1 -0
- package/views/2d/engine/vectorTiles/TileHandler3D.js +1 -1
- package/views/2d/engine/webgl/animations/instructions.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerMeshWriter.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriterVertexPack.js +1 -1
- package/views/2d/engine/webgl/textureUtils.js +1 -1
- package/views/2d/layers/GeospatialPDFLayerView2D.js +1 -1
- package/views/2d/layers/MediaLayerView2D.js +1 -1
- package/views/2d/layers/TileLayerView2D.js +1 -1
- package/views/2d/layers/features/schema/processor/symbols/ComplexSymbolSchema.js +1 -1
- package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementPathHelper.js +1 -1
- package/views/3d/analysis/AreaMeasurement/support/MeasurementData.js +1 -1
- package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementController.js +1 -1
- package/views/3d/analysis/support/projectionUtils.js +1 -1
- package/views/3d/environment/SunLighting.d.ts +15 -2
- package/views/3d/environment/VirtualLighting.d.ts +15 -2
- package/views/3d/input/SceneInputManager.js +1 -1
- package/views/3d/input/handlers/ground/GroundMouseWheelMove.js +2 -0
- package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
- package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DTool.js +1 -1
- package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DView.js +1 -1
- package/views/3d/layers/GeospatialPDFLayerView3D.js +1 -1
- package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DBufferGraphicLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
- package/views/3d/layers/graphics/Graphics3DDrapedGraphicLayerBase.js +1 -1
- package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DFeatureStore.js +1 -1
- package/views/3d/layers/graphics/Graphics3DGraphic.js +1 -1
- package/views/3d/layers/graphics/Graphics3DGraphicCreationContext.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLodInstanceGraphicLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DMeshObject3DGraphicLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DStageObjectGraphicLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DSymbol.js +1 -1
- package/views/3d/layers/graphics/Labeler.js +1 -1
- package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
- package/views/3d/layers/support/FeatureTileFetcher3D.js +1 -1
- package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
- package/views/3d/layers/support/featureReference.js +1 -1
- package/views/3d/navigation/Navigation3D.js +1 -1
- package/views/3d/state/controllers/GroundMouseWheelController.js +2 -0
- package/views/3d/state/utils/OffsetCorrectionController.js +1 -1
- package/views/3d/state/utils/groundNavigationUtils.js +1 -1
- package/views/3d/terrain/BlendLayers.glsl.js +1 -1
- package/views/3d/terrain/PatchRenderData.js +1 -1
- package/views/3d/terrain/RasterColorizer.glsl.js +1 -1
- package/views/3d/terrain/TerrainData.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/terrain/TextureFader.js +1 -1
- package/views/3d/terrain/TextureReference.js +1 -1
- package/views/3d/terrain/TileCompositor.js +1 -1
- package/views/3d/terrain/TileRenderInfo.js +1 -1
- package/views/3d/terrain/TileRenderer.js +1 -1
- package/views/3d/terrain/terrainUtils.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexTangent.glsl.js +7 -8
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +25 -25
- package/views/3d/webgl-engine/core/shaderLibrary/shading/NormalUtils.glsl.js +3 -5
- package/views/3d/webgl-engine/core/shaderLibrary/shading/forwardLocalUp.glsl.js +6 -0
- package/views/3d/webgl-engine/core/shaderLibrary/shading/getLocalUp.glsl.js +4 -0
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/TerrainTexture.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/{TileBackground.glsl.js → blendLayers.glsl.js} +10 -11
- package/views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatEvaluation.glsl.js +8 -2
- package/views/3d/webgl-engine/core/shaderLibrary/util/cameraUniforms.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIllumination.js +1 -1
- package/views/3d/webgl-engine/effects/globalIllumination/GlobalIlluminationTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/3d/webgl-engine/lib/BoundingInfo.js +1 -1
- package/views/3d/webgl-engine/lib/BufferGeometry.js +1 -1
- package/views/3d/webgl-engine/lib/BufferObject3D.js +1 -1
- package/views/3d/webgl-engine/lib/DirtyEvents.js +1 -1
- package/views/3d/webgl-engine/lib/Geometry.js +1 -1
- package/views/3d/webgl-engine/lib/ManagedTexture.js +1 -1
- package/views/3d/webgl-engine/lib/ModelDirtySet.js +1 -1
- package/views/3d/webgl-engine/lib/Object3D.js +1 -1
- package/views/3d/webgl-engine/lib/PathGeometry.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBuffer.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
- package/views/3d/webgl-engine/lib/geometryMemoryUtils.js +2 -0
- package/views/3d/webgl-engine/materials/Water.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/GaussianSplat.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/GaussianSplatDepth.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/GaussianSplatPass.glsl.js +61 -108
- package/views/3d/webgl-engine/shaders/GaussianSplatShadow.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/Terrain.glsl.js +1 -1
- package/views/VideoView.js +1 -1
- package/views/draw/DrawOperation.js +1 -1
- package/views/draw/DrawScreenTool.js +1 -1
- package/views/input/types.d.ts +2 -4
- package/views/interactive/options/LabelOptions.d.ts +5 -5
- package/views/interactive/options/SnappingOptions.d.ts +2 -2
- package/views/selection/SelectionOperation.js +1 -1
- package/views/selection/types.d.ts +43 -3
- package/views/support/layerViewUtils.js +1 -1
- package/views/support/selectionUtils.js +1 -1
- package/widgets/BatchAttributeForm/inputs/FieldInput.d.ts +0 -1
- package/widgets/Editor/VisibleElements.d.ts +4 -0
- package/widgets/Editor.d.ts +2 -0
- package/widgets/FeatureTable.js +1 -1
- package/widgets/Features/FeaturesViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/adapters/view/SceneViewAdapter.js +1 -1
- package/widgets/OrientedImageryViewer/services/SuperimposeService.js +1 -1
- package/widgets/OrientedImageryViewer/support/NonPanoramicMedia.js +1 -1
- package/widgets/OrientedImageryViewer/support/dataCaptureUtils.js +1 -1
- package/widgets/OrientedImageryViewer.js +2 -2
- package/widgets/PanoramicViewer/utils.js +1 -1
- package/widgets/Print.js +1 -1
- package/widgets/Search/LayerSearchSource.d.ts +1 -1
- package/widgets/Sketch/VisibleElements.d.ts +4 -0
- package/widgets/Sketch.d.ts +2 -0
- package/widgets/support/SelectionList/GroupLayerItem.d.ts +6 -0
- package/widgets/support/SelectionList/GroupLayerItem.js +1 -1
- package/widgets/support/SelectionList/ItemBase.js +1 -1
- package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.d.ts +6 -1
- package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.js +1 -1
- package/widgets/support/SelectionToolbar.d.ts +8 -1
- package/widgets/support/SelectionToolbar.js +1 -1
- package/widgets/support/Selector2D/selectorUtils.js +1 -1
- package/assets/esri/core/workers/chunks/0320cbd825f9a4222042.js +0 -1
- package/assets/esri/core/workers/chunks/067de1910190da228291.js +0 -1
- package/assets/esri/core/workers/chunks/09bd5df07eab80ae7b15.js +0 -1
- package/assets/esri/core/workers/chunks/164e74d586297946a717.js +0 -1
- package/assets/esri/core/workers/chunks/1c0c5cb13c2590aae906.js +0 -1
- package/assets/esri/core/workers/chunks/1c77de1e79860f8d2228.js +0 -1
- package/assets/esri/core/workers/chunks/24dac4970526a4e0ae63.js +0 -1
- package/assets/esri/core/workers/chunks/2acf2952cef69e382a35.js +0 -1
- package/assets/esri/core/workers/chunks/30dcf2cfb31cb70de7df.js +0 -1
- package/assets/esri/core/workers/chunks/371e2ddb88cc6b9a41e8.js +0 -1
- package/assets/esri/core/workers/chunks/42f6194633c2d879c8da.js +0 -1
- package/assets/esri/core/workers/chunks/44f90e75c1dc3d726a95.js +0 -1
- package/assets/esri/core/workers/chunks/4abd3753cd9b80e4d937.js +0 -1
- package/assets/esri/core/workers/chunks/4bb9a5f4ca944d3fc206.js +0 -1
- package/assets/esri/core/workers/chunks/4c389472b8cdb0c55154.js +0 -1
- package/assets/esri/core/workers/chunks/4d93bed14945e3d34d5c.js +0 -1
- package/assets/esri/core/workers/chunks/4e3f651ac76fcd53df2b.js +0 -1
- package/assets/esri/core/workers/chunks/505227797bcf2a1d908d.js +0 -1
- package/assets/esri/core/workers/chunks/58da3f8cf0f7f6a7e4fa.js +0 -1
- package/assets/esri/core/workers/chunks/5a19a9c3e01d3d415188.js +0 -1
- package/assets/esri/core/workers/chunks/5a830bc35adbedd33783.js +0 -1
- package/assets/esri/core/workers/chunks/6db0f8fe1402643fbe1a.js +0 -1
- package/assets/esri/core/workers/chunks/7124ad8dc5ad40dc66f3.js +0 -1
- package/assets/esri/core/workers/chunks/7446d0dfebf93e86c098.js +0 -1
- package/assets/esri/core/workers/chunks/7c631e2947243e2c9bde.js +0 -1
- package/assets/esri/core/workers/chunks/7f0f9dddc44b1f1600f0.js +0 -1
- package/assets/esri/core/workers/chunks/7fb7493f483cd9878bfa.js +0 -1
- package/assets/esri/core/workers/chunks/8e310e9cb9d84ac3ca2f.js +0 -1
- package/assets/esri/core/workers/chunks/950d4578dc450467404c.js +0 -1
- package/assets/esri/core/workers/chunks/99a0a434ea2162166754.js +0 -1
- package/assets/esri/core/workers/chunks/9afc87474cef1fc4fe4a.js +0 -1
- package/assets/esri/core/workers/chunks/9cbde13e536676767900.js +0 -1
- package/assets/esri/core/workers/chunks/9cd3fcb5fca6f9dbbcd8.js +0 -1
- package/assets/esri/core/workers/chunks/a025ee38d402504193df.js +0 -1
- package/assets/esri/core/workers/chunks/a4b822ee45810c4c292a.js +0 -1
- package/assets/esri/core/workers/chunks/a51576d84edca88e41dd.js +0 -1
- package/assets/esri/core/workers/chunks/ac24b4370dc7194a3107.js +0 -1
- package/assets/esri/core/workers/chunks/ace41659a5ca0e5abfc3.js +0 -1
- package/assets/esri/core/workers/chunks/b01804aa6c47a220a603.js +0 -1
- package/assets/esri/core/workers/chunks/b3273f847405799e3362.js +0 -1
- package/assets/esri/core/workers/chunks/ba3d5abff65aefcb8dee.js +0 -1
- package/assets/esri/core/workers/chunks/bca6b469940b7b954123.js +0 -1
- package/assets/esri/core/workers/chunks/c0d7ae314ebfad1e3791.js +0 -1
- package/assets/esri/core/workers/chunks/c337fc0e6dc69c233e6d.js +0 -1
- package/assets/esri/core/workers/chunks/c8eae00b0ec87d8b2ff3.js +0 -1
- package/assets/esri/core/workers/chunks/cd9aa950cb74b09008fe.js +0 -1
- package/assets/esri/core/workers/chunks/e0d9dc97985561320bd4.js +0 -1
- package/assets/esri/core/workers/chunks/e2775b4b753306dc8477.js +0 -1
- package/assets/esri/core/workers/chunks/eaddffcc7004101fc230.js +0 -1
- package/assets/esri/core/workers/chunks/ebbf425af348e6ede814.js +0 -1
- package/assets/esri/core/workers/chunks/efc53007cd2e4991d7d4.js +0 -1
- package/assets/esri/core/workers/chunks/f46e92c67986c8c09bdd.js +0 -1
- package/assets/esri/core/workers/chunks/f8bc474434fd365ab174.js +0 -1
- package/assets/esri/core/workers/chunks/f8d2225f333524ce1d88.js +0 -1
- package/assets/esri/core/workers/chunks/f95a1f878c9c1146180e.js +0 -1
- package/assets/esri/core/workers/chunks/fb37f0848196c28b7fd7.js +0 -1
- /package/assets/esri/core/workers/chunks/{768389f7f8dba6080df7.js.LICENSE.txt → 0cc7fba402a93e6d2455.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../../Graphic.js";import{createTask as t}from"../../../core/asyncUtils.js";import n from"../../../core/Collection.js";import{destroyMaybe as r}from"../../../core/maybe.js";import{throwIfAborted as i}from"../../../core/promiseUtils.js";import a from"../../../geometry/Mesh.js";import{projectAsync as o}from"../../../geometry/projectionUtils.js";import s from"../../../geometry/support/MeshComponent.js";import c from"../../../geometry/support/MeshMaterial.js";import l from"../../../geometry/support/MeshTexture.js";import u from"../../../geometry/support/MeshVertexAttributes.js";import{imageToWorldPanoramic as d}from"../../../layers/orientedImagery/transformations/imageToWorld.js";import f from"../../../symbols/FillSymbol3DLayer.js";import p from"../../../symbols/MeshSymbol3D.js";import{calculateUpdatedWmsf as m}from"../imageMeasurementUtils.js";import{validateTifOrMrfExtension as h}from"../utils.js";import g from"../support/resolveMediaProps.js";import{computeDefaultAreaOfInterest as _,getBaseRasterLevel as v,computePanoramicAreasOfInterest as y,applySphereMeshOffsetInMeters as b,getRasterFetchParameters as x,getRasterLevelSize as S,getViewDependentRasterLevel as C,clampRasterLevelForTextureSize as w,createSuperimposeGridVertexAttributes as T,createSuperimposeSamplePixels as E}from"../support/superimposeUtils.js";const D=[255,255,255,255];class O{constructor(e){this._properties=e,this._cachedBaseTexture=null,this._cachedPanoramicRadiusObjectId=null,this._defaultGraphicProperties=null,this._defaultZOffsetPercentage=0,this._defaultCameraFeature=null,this._graphics=[],this._panoramicRadiusOffsetInMeters=0,this._panoramicRadiusOffsetPercentage=0,this._panoramicRadiusOffsetRangeInMeters=0,this._panoramicNavigationFeature=null,this._rasterTextureCacheFeature=null,this._rasterTextureFetchCache=new Map,this._task=null}clear(){this._destroyGraphics(this._graphics,!0),this._cachedBaseTexture=null,this._cachedPanoramicRadiusObjectId=null,this._defaultGraphicProperties=null,this._defaultZOffsetPercentage=0,this._defaultCameraFeature=null,this._graphics=[],this._panoramicRadiusOffsetInMeters=0,this._panoramicRadiusOffsetPercentage=0,this._panoramicRadiusOffsetRangeInMeters=0,this._panoramicNavigationFeature=null,this._rasterTextureCacheFeature=null,this._rasterTextureFetchCache.clear()}destroy(){this._task=this._task?.abort()??null,this.clear()}update(e){this._task?.abort(),this._task=t(async t=>{if(!this._canUpdate(e)){this._resetInactiveState(e.adapter);return}let n=!1,r=[];try{await this._updateDefaultCameraIfNeeded(e,t),this._resetRasterTextureCacheIfNeeded(e.currentBestFeature);let a=await this._resolveMedia(e,t);if(!a||({graphics:r}=await this._createGraphics(e,a,t),!r.length))return;await this._updateNavigation(e,t),e.mode===`panoramic`&&await this._applyPersistentPanoramicRadiusOffset(r,e.currentBestFeature,e.view,t),i(t),this._replaceGraphics(r,e.mode),n=!0}finally{n||this._destroyGraphics(r,!1)}})}_canUpdate(e){return e.superimposeViewEnabled&&e.state===`image-loaded`&&e.view?.type===`3d`&&!!e.currentBestFeature&&!!e.layer&&[`default`,`panoramic`].includes(e.mode)}_resetInactiveState(e){e?.disableDefaultSuperimposeNavigation?.(),e?.disablePanoramicSuperimposeNavigation?.(),this.clear()}async _updateDefaultCameraIfNeeded(e,t){let{currentBestFeature:n,mode:r}=e;n&&r==="default"&&this._shouldUpdateDefaultCamera(r,n)&&(await e.adapter?.updateDefaultSuperimposeCamera?.({currentBestFeature:n},{signal:t}),i(t),this._defaultCameraFeature=n)}async _resolveMedia(e,t){let{currentBestFeature:n,layer:r,mode:a,view:o}=e;if(!n||!r||!o||a!=="default"&&a!==`panoramic`)return null;let s=await g(n.attributes,r,{signal:t});if(i(t),!s?.mediaUrl)return null;if(!h(s.datasetFormat))return this._resolveNonRasterMedia(s);let c=await this._resolveRasterMedia(s,o,t);if(!c)return null;switch(a){case`default`:{let n=await this._resolveDefaultAreaOfInterest(e,s,t);return this._resolveDefaultRasterMedia(c,n,o,t)}case`panoramic`:return this._resolvePanoramicRasterMedia(c,e,t)}}_resolveNonRasterMedia(e){return{areaOfInterest:null,textureUrl:this._resolveTextureUrl(e)}}async _resolveDefaultAreaOfInterest(e,t,n){let{activeImageSize:r,currentBestFeature:a,mode:o,view:s}=e;if(o!=="default"||!r||!a||!s||!h(t.datasetFormat))return null;let c=await _(a,s,r,this._properties.pointToPixel,{signal:n});return i(n),c}async _resolveRasterMedia(e,t,n){let r=await this._loadRaster(e,{signal:n});if(i(n),!r)return null;let a=v(r,t),o=this._cachedBaseTexture;if(!o){let e=await this._createRasterTexture(r,null,a,{signal:n});i(n),e&&(o=e,this._cachedBaseTexture=e)}return o?{baseLevel:a,baseTexture:o,raster:r}:null}async _resolveDefaultRasterMedia(e,t,n,r){let{baseLevel:a,baseTexture:o,raster:s}=e;if(!t)return{areaOfInterest:null,baseTexture:o,raster:s,texture:o};let c=v(s,n,t),l=await this._createCompositedDefaultRasterTexture(s,t,c,a,{signal:r});return i(r),{areaOfInterest:t,baseTexture:o,overlayTexture:l,raster:s,texture:l??o}}async _resolvePanoramicRasterMedia(e,t,n){let{activeImageSize:r,currentBestFeature:a,view:o}=t,{baseTexture:s,raster:c}=e;if(!r||!a||!o)return{areaOfInterest:null,baseTexture:s,panoramicAreasOfInterest:void 0,raster:c,texture:s};let l=await y(a,o,r,this._properties.pointToPixel,{signal:n});i(n);let u=await this._createPanoramicRasterTexture(c,a,o,r,l,{signal:n})??s;return i(n),{areaOfInterest:null,baseTexture:s,panoramicAreasOfInterest:l,raster:c,texture:u}}async _createGraphics(e,t,n){switch(e.mode){case`default`:return this._createDefaultGraphics(e,t,n);case`panoramic`:return this._createPanoramicGraphics(e,t,n)}return{graphics:[]}}async _createDefaultGraphics(e,t,n){let r=await this._createAndDrapeDefaultGraphic(e,n,{texture:t.texture,textureUrl:t.textureUrl});return{graphics:r?[r]:[]}}async _createAndDrapeDefaultGraphic(e,t,n){let{activeImageSize:r,currentBestFeature:a,depthImageLoaded:o,view:s}=e,{areaOfInterest:c,texture:l,textureUrl:u}=n;if(!r||s?.type!==`3d`||!a)return null;let d=await this._createDefaultGraphic({areaOfInterest:c,currentBestFeature:a,depthImageLoaded:o,imageSize:r,signal:t,texture:l,textureUrl:u,view:s});if(!d)return null;let f=await this._resolveDefaultMeshPosition(d,r,s,a,c,t,100),p=await this._resolveDefaultMeshPosition(d,r,s,a,c,t,0);return i(t),this._defaultGraphicProperties={areaOfInterest:c??null,currentBestFeature:a,farPosition:p??(d.geometry?.type===`mesh`?d.geometry.vertexAttributes.position.slice():new Float64Array),imageSize:r,nearPosition:f,view:s},d}async _createPanoramicGraphics(e,t,n){let r=await this._createPanoramicSuperimposeGraphic(e,t,n,null);return{graphics:r?[r]:[]}}async _createPanoramicSuperimposeGraphic(e,t,n,r){let{activeImageSize:i,currentBestFeature:a,view:o}=e;return o?this._createPanoramicGraphic({areaOfInterest:r,currentBestFeature:a??void 0,imageSize:i,signal:n,texture:t.texture,textureUrl:t.textureUrl,view:o}):null}async _updateNavigation(e,t){let{currentBestFeature:n,mode:r,view:i}=e;if(n&&i&&i.type===`3d`)switch(r){case`default`:this._updateDefaultNavigation(e);return;case`panoramic`:await this._updatePanoramicNavigation(e,n,i,t);return}}_updateDefaultNavigation(e){this._updateDefaultSuperimposeNavigation(e.adapter,e.defaultSuperimposeCameraLockEnabled)}async _updatePanoramicNavigation(e,t,n,r){e.adapter?.disableDefaultSuperimposeNavigation?.();let a=t===this._panoramicNavigationFeature?n.camera:e.panoramicCamera??n.camera;a&&this._shouldUpdatePanoramicCamera(e.mode,t)&&(e.adapter?.disablePanoramicSuperimposeNavigation?.(),await e.adapter?.updatePanoramicSuperimposeCamera?.({camera:a,currentBestFeature:t},{signal:r}),i(r)),this._panoramicNavigationFeature=t}_replaceGraphics(e,t){if(t===`panoramic`&&this._updatePanoramicGraphicInPlace(e))return;let n=this._graphics;this._graphics=e,this._properties.overlays.addMany(e),this._destroyGraphics(n,!0)}_updatePanoramicGraphicInPlace(e){if(this._graphics.length!==1||e.length!==1)return!1;let t=this._graphics[0],n=e[0];return!t||!n?!1:(t.geometry=n.geometry,t.symbol=n.symbol,t.visible=n.visible,n.geometry=null,n.symbol=null,r(n),!0)}_destroyGraphics(e,t){e.length&&(t&&this._properties.overlays.removeMany(e),e.forEach(e=>r(e)))}_updateDefaultSuperimposeNavigation(e,t=!0){t?e?.enableDefaultSuperimposeNavigation?.():e?.disableDefaultSuperimposeNavigation?.(),this._panoramicNavigationFeature&&e?.disablePanoramicSuperimposeNavigation?.(),this._panoramicNavigationFeature=null}_shouldUpdateDefaultCamera(e,t){return e==="default"&&t!==this._defaultCameraFeature}_shouldUpdatePanoramicCamera(e,t){return e===`panoramic`&&t!==this._panoramicNavigationFeature}setDefaultZOffsetPercentage(e){this._defaultZOffsetPercentage=Math.max(0,Math.min(100,e)),this._defaultGraphicProperties&&this._graphics.length===1&&this._rebuildDefaultGraphicForPercentage(this._defaultZOffsetPercentage)}setPanoramicRadiusPercentage(e){let t=Math.max(0,Math.min(100,e)),n=this._panoramicRadiusOffsetRangeInMeters*t/100,r=n-this._panoramicRadiusOffsetInMeters;this._panoramicRadiusOffsetPercentage=t,this._panoramicRadiusOffsetInMeters=n,this._applyPanoramicRadiusOffset(this._graphics,r)}updatePanoramicRadiusOffset(e){e!==0&&(this._panoramicRadiusOffsetInMeters+=e,this._applyPanoramicRadiusOffset(this._graphics,e))}_applyPanoramicRadiusOffset(e,t){t!==0&&e.forEach(e=>{let n=e.geometry;n?.type===`mesh`&&b(n,{radiusOffset:t,minimumRadiusInMeters:10})})}async _applyPersistentPanoramicRadiusOffset(e,t,n,r){this._panoramicRadiusOffsetRangeInMeters=await this._resolvePanoramicRadiusOffsetRangeInMeters(t,n,r),this._panoramicRadiusOffsetInMeters=this._panoramicRadiusOffsetRangeInMeters*this._panoramicRadiusOffsetPercentage/100,this._applyPanoramicRadiusOffset(e,this._panoramicRadiusOffsetInMeters)}_rebuildDefaultGraphicForPercentage(e){let t=this._defaultGraphicProperties,[n]=this._graphics;if(!t||!n||n.geometry?.type!==`mesh`)return;let r=this._createDefaultMeshForPercentage(t,n.geometry,e);r&&(this._applyDefaultMeshAppearance(r,n.geometry),n.geometry=r)}_createDefaultMeshForPercentage(e,t,n){let{farPosition:r,nearPosition:i,view:o}=e;if(!i||i.length!==r.length)return null;let c=new Float64Array(r.length),l=n/100;for(let e=0;e<r.length;e+=1)c[e]=r[e]+(i[e]-r[e])*l;let d=t.vertexAttributes.uv,f=t.components;return!d||!f||f.some(e=>!e.faces)?null:new a({vertexAttributes:new u({position:c,uv:d.slice()}),components:f.map(e=>new s({faces:e.faces.slice()})),spatialReference:o.spatialReference.clone()})}_resolveDefaultSuperimposeDistance(e,t){let n=e.attributes.farDistance,r=Math.max(0,e.attributes.nearDistance??n);if(n>0&&r>=0)return n+(r-n)*t/100}async _resolvePanoramicRadiusOffsetRangeInMeters(e,t,n){let r=e.attributes.objectId;if(this._cachedPanoramicRadiusObjectId!==r){let a=e.attributes.farDistance,s=Math.max(10,e.attributes.nearDistance??a);if(!(a>0)||!(s>=0))return this._cachedPanoramicRadiusObjectId=r,this._panoramicRadiusOffsetRangeInMeters=0,0;let c=e.attributes.location,l=c.spatialReference.equals(t.spatialReference)?c:await o(c,t.spatialReference,{signal:n});if(i(n),!l)return this._cachedPanoramicRadiusObjectId=r,this._panoramicRadiusOffsetRangeInMeters=0,0;let u=l.spatialReference.isWebMercator?m(l.y):1;this._cachedPanoramicRadiusObjectId=r,this._panoramicRadiusOffsetRangeInMeters=(s-a)*u}return this._panoramicRadiusOffsetRangeInMeters}_resolveTextureUrl(e){let t=new URL(e.mediaUrl);return Object.entries(e.searchParams).forEach(([e,n])=>{t.searchParams.has(e)||t.searchParams.set(e,n)}),t.toString()}_resetRasterTextureCacheIfNeeded(e){e&&e!==this._rasterTextureCacheFeature&&(this._cachedBaseTexture=null,this._rasterTextureFetchCache.clear(),this._rasterTextureCacheFeature=e)}_createImageDataFromPixelBlock(e){return new ImageData(e.getAsRGBA(),e.width,e.height)}_copyImageData(e,t,n,r,i=e.width,a=e.height){let o=e.data,s=t.data,c=e.width,l=e.height,u=t.width,d=t.height;for(let e=0;e<a;e+=1){let t=r+e;if(t<0||t>=d)continue;let f=Math.min(l-1,Math.floor(e*l/a));for(let e=0;e<i;e+=1){let r=n+e;if(r<0||r>=u)continue;let a=Math.min(c-1,Math.floor(e*c/i)),l=(f*c+a)*4,d=(t*u+r)*4;s[d]=o[l],s[d+1]=o[l+1],s[d+2]=o[l+2],s[d+3]=o[l+3]}}}_copyImageDataRegion(e,t,n,r,i,a,o,s){let c=e.data,l=t.data,u=e.width,d=t.width;for(let e=0;e<s;e+=1)for(let t=0;t<o;t+=1){let o=((r+e)*u+(n+t))*4,s=((a+e)*d+(i+t))*4;l[s]=c[o],l[s+1]=c[o+1],l[s+2]=c[o+2],l[s+3]=c[o+3]}}async _fetchRasterTextureAtLevel(e,t,n,r){let{offset:a,size:o}=x(e,t,n),s=this._createRasterTextureExtent(a,o),c=this._createRasterTextureLevelCacheKey(e,t),l=this._getOrCreateRasterTextureLevelCache(c),u=this._getUncoveredRasterTextureExtents(s,l.patches);for(let n of u){let a=this._createRasterTextureExtentCacheKey(n),o=l.inflight.get(a);o||(o=this._fetchRasterTexturePatch(e,t,n,r),l.inflight.set(a,o));try{let e=await o;i(r),e&&l.patches.push(e)}finally{l.inflight.delete(a)}}return this._composeRasterTextureFromCachedPatches(s,l.patches)}_getOrCreateRasterTextureLevelCache(e){let t=this._rasterTextureFetchCache.get(e);return t||(t={inflight:new Map,patches:[]},this._rasterTextureFetchCache.set(e,t)),t}_createRasterTextureLevelCacheKey(e,t){return[e.url,e.rasterInfo.width,e.rasterInfo.height,t].join(`:`)}_createRasterTextureExtentCacheKey(e){return[e.xmin,e.ymin,e.xmax,e.ymax].join(`:`)}_createRasterTextureExtent(e,t){return{xmin:e.x,ymin:e.y,xmax:e.x+t.width,ymax:e.y+t.height}}_getUncoveredRasterTextureExtents(e,t){let n=[e];for(let e of t)if(n=n.flatMap(t=>this._subtractRasterTextureExtent(t,e.extent)),!n.length)break;return n}_subtractRasterTextureExtent(e,t){let n=this._intersectRasterTextureExtents(e,t);if(!n)return[e];let r=[];return e.ymin<n.ymin&&r.push({xmin:e.xmin,ymin:e.ymin,xmax:e.xmax,ymax:n.ymin}),n.ymax<e.ymax&&r.push({xmin:e.xmin,ymin:n.ymax,xmax:e.xmax,ymax:e.ymax}),e.xmin<n.xmin&&r.push({xmin:e.xmin,ymin:n.ymin,xmax:n.xmin,ymax:n.ymax}),n.xmax<e.xmax&&r.push({xmin:n.xmax,ymin:n.ymin,xmax:e.xmax,ymax:n.ymax}),r.filter(({xmin:e,ymin:t,xmax:n,ymax:r})=>n>e&&r>t)}_intersectRasterTextureExtents(e,t){let n=Math.max(e.xmin,t.xmin),r=Math.max(e.ymin,t.ymin),i=Math.min(e.xmax,t.xmax),a=Math.min(e.ymax,t.ymax);return i>n&&a>r?{xmin:n,ymin:r,xmax:i,ymax:a}:null}async _fetchRasterTexturePatch(e,t,n,r){let{pixelBlock:a}=await e.fetchRawPixels(t,{x:n.xmin,y:n.ymin},{width:n.xmax-n.xmin,height:n.ymax-n.ymin},r);if(i(r),a)return{extent:n,imageData:this._createImageDataFromPixelBlock(a)}}_composeRasterTextureFromCachedPatches(e,t){let n=t.filter(t=>this._intersectRasterTextureExtents(e,t.extent));if(!n.length)return;let r=new ImageData(e.xmax-e.xmin,e.ymax-e.ymin);for(let t of n){let n=this._intersectRasterTextureExtents(e,t.extent);n&&this._copyImageDataRegion(t.imageData,r,n.xmin-t.extent.xmin,n.ymin-t.extent.ymin,n.xmin-e.xmin,n.ymin-e.ymin,n.xmax-n.xmin,n.ymax-n.ymin)}return r}async _loadRaster(e,t){let{loadRaster:n}=await import(`../../PanoramicViewer/utils.js`),r=await n(this._resolveTextureUrl(e),t);return i(t),r}async _createCompositedDefaultRasterTexture(e,t,n,r,a){let{pyramidScalingFactor:o}=e.rasterInfo.storageInfo,s=o??2,c=S(e.rasterInfo.width,e.rasterInfo.height,n,s),u=await this._fetchRasterTextureAtLevel(e,r,null,a);if(i(a),!u)return;let d=await this._fetchRasterTextureAtLevel(e,n,t,a);if(i(a),!d)return new l({data:u});let f=new ImageData(c.width,c.height);this._copyImageData(u,f,0,0,c.width,c.height);let p=s**n,{x:m,y:h}=this._resolveRasterDrawOrigin(t,p);return this._copyImageData(d,f,m,h),new l({data:f})}async _createRasterTexture(e,t,n,r){let{maximumPyramidLevel:i}=e.rasterInfo.storageInfo,a=await this._fetchRasterTextureAtLevel(e,n??i,t,r);if(a)return new l({data:a})}async _createPanoramicRasterTexture(e,t,n,r,a,o){if(a??=await y(t,n,r,this._properties.pointToPixel,o),i(o),!a?.length)return this._createRasterTexture(e,null,void 0,o);let{baseLevel:s,level:c,scalingFactor:l}=this._resolvePanoramicRasterLevels(e,n,a);return s<=c?this._createRasterTexture(e,null,c,o):this._createCompositedPanoramicRasterTexture(e,a,{baseLevel:s,level:c,scalingFactor:l},o)}_resolvePanoramicRasterLevels(e,t,n){let{maximumPyramidLevel:r,pyramidScalingFactor:i}=e.rasterInfo.storageInfo,a=n.reduce((n,r)=>Math.min(n,C(e,t,r)),r),o=w(e,a),s=i??2;return{baseLevel:Math.min(r,o+2),level:o,scalingFactor:s}}async _createCompositedPanoramicRasterTexture(e,t,n,r){let{baseLevel:a,level:o,scalingFactor:s}=n,c=S(e.rasterInfo.width,e.rasterInfo.height,o,s),u=await this._fetchRasterTextureAtLevel(e,a,null,r);if(i(r),!u)return;let d=new ImageData(c.width,c.height);this._copyImageData(u,d,0,0,c.width,c.height);let f=s**o;for(let n of t){let t=await this._fetchRasterTextureAtLevel(e,o,n,r);if(i(r),!t)continue;let{x:a,y:s}=this._resolveRasterDrawOrigin(n,f);this._copyImageData(t,d,a,s)}return new l({data:d})}_resolveRasterDrawOrigin(e,t){return{x:Math.max(0,Math.floor(e.xmin/t)),y:Math.max(0,Math.floor(e.ymin/t))}}async _createGridMesh(e,t,n,r,c,l,d){if(t.type!==`3d`)return null;let f=await Promise.all(r.map(e=>e.spatialReference.equals(t.spatialReference)?e:o(e,t.spatialReference,d)));if(i(d),f.some(e=>!e))return null;let{faces:p,position:m,uv:h}=T(f,e,n,c);return l?.forEach((t,n)=>{let r=n*2;h[r]=t.x/e[0],h[r+1]=t.y/e[1]}),new a({vertexAttributes:new u({position:m,uv:h}),components:[new s({faces:p})],spatialReference:t.spatialReference.clone()})}async _createFootprintMesh(e,t,n,r,a,o){if(t.type!==`3d`)return null;let s=n?.attributes.farDistance,c=E(e,r),l=a??s,u=typeof l==`number`&&l>0?await this._properties.getPointAtDistance(c,l,o):await this._properties.getMapPoint(c,o);return i(o),this._createGridMesh(e,t,r,u)}async _resolveDefaultMeshPosition(e,t,n,r,a,o,s){let c=e.geometry;if(c?.type===`mesh`&&s===this._defaultZOffsetPercentage)return c.vertexAttributes.position.slice();let l=this._resolveDefaultSuperimposeDistance(r,s),u=await this._createFootprintMesh(t,n,r,a,l,{signal:o});return i(o),u?.vertexAttributes.position.slice()??null}async _createPanoramicGraphic(t){let{areaOfInterest:r,imageSize:i,signal:a,texture:o,textureUrl:s,view:u}=t;if(!o&&!s)throw Error(`Missing texture URL or texture data.`);if(!i)return null;let d=await this._createPanoramicMesh(i,u,r,t.currentBestFeature,a);if(!d)return null;let m=d.vertexAttributes.position,h=[];for(let e=0;e<m.length;e+=3)h.push(...D);d.vertexAttributes.color=new Uint8Array(h);let g=new c({colorTexture:o??new l({url:s})});return d.components?.forEach(e=>{e.shading=`source`,e.material=g}),new e({geometry:d,symbol:new p({symbolLayers:new n([new f({})])})})}async _createPanoramicMesh(e,t,n,r,a){if(t.type!==`3d`||!r)return null;let{attributes:o}=r,{farDistance:s}=o;if(typeof s!=`number`||!(s>0))return null;let c=E(e,n,128),l=this._properties.getPanoramicTransformationState?.();if(!l)return null;let{imageToWorldProperties:u,updateElevationProps:f}=l,p=await d(c.map(e=>({...e,depth:s??u.farDistance})),u,f);return i(a),this._createGridMesh(e,t,n,p,128,c)}async _createDefaultGraphic(t){let{texture:r,textureUrl:i}=t;if(!r&&!i)throw Error(`Missing texture URL or texture data.`);if(!t.imageSize)return null;let a=t.currentBestFeature?this._resolveDefaultSuperimposeDistance(t.currentBestFeature,this._defaultZOffsetPercentage):void 0,o=await this._createFootprintMesh(t.imageSize,t.view,t.currentBestFeature,t.areaOfInterest,a,{signal:t.signal});return o?(this._applyDefaultMeshAppearance(o,r??new l({url:i})),new e({geometry:o,symbol:new p({symbolLayers:new n([new f({})])})})):null}_applyDefaultMeshAppearance(e,t){let n=e.vertexAttributes.position,r=[];for(let e=0;e<n.length;e+=3)r.push(...D);e.vertexAttributes.color=new Uint8Array(r);let i=t instanceof a?t.components?.[0]?.material??null:new c({colorTexture:t});e.components?.forEach((e,n)=>{e.shading=`source`,e.material=t instanceof a?t.components?.[n]?.material??i:i})}}export{O as default};
|
|
2
|
+
import e from"../../../Graphic.js";import{createTask as t}from"../../../core/asyncUtils.js";import n from"../../../core/Collection.js";import{destroyMaybe as r}from"../../../core/maybe.js";import{throwIfAborted as i}from"../../../core/promiseUtils.js";import a from"../../../geometry/Mesh.js";import{projectAsync as o}from"../../../geometry/projectionUtils.js";import s from"../../../geometry/support/MeshComponent.js";import c from"../../../geometry/support/MeshMaterial.js";import l from"../../../geometry/support/MeshTexture.js";import u from"../../../geometry/support/MeshVertexAttributes.js";import{imageToWorldPanoramic as d}from"../../../layers/orientedImagery/transformations/imageToWorld.js";import f from"../../../symbols/FillSymbol3DLayer.js";import p from"../../../symbols/MeshSymbol3D.js";import{calculateUpdatedWmsf as m}from"../imageMeasurementUtils.js";import{validateTifOrMrfExtension as h}from"../utils.js";import g from"../support/resolveMediaProps.js";import{computeDefaultAreaOfInterest as _,getBaseRasterLevel as v,computePanoramicAreasOfInterest as y,applySphereMeshOffsetInMeters as b,getRasterFetchParameters as x,getRasterLevelSize as S,getViewDependentRasterLevel as C,clampRasterLevelForTextureSize as w,createSuperimposeGridVertexAttributes as T,createSuperimposeSamplePixels as E}from"../support/superimposeUtils.js";const D=[255,255,255,255];class O{constructor(e){this._properties=e,this._cachedBaseTexture=null,this._cachedPanoramicRadiusObjectId=null,this._defaultGraphicProperties=null,this._defaultZOffsetPercentage=50,this._defaultCameraFeature=null,this._graphics=[],this._panoramicRadiusOffsetInMeters=0,this._panoramicRadiusOffsetPercentage=50,this._panoramicRadiusOffsetRangeInMeters=0,this._panoramicNavigationFeature=null,this._rasterTextureCacheFeature=null,this._rasterTextureFetchCache=new Map,this._task=null}clear(){this._destroyGraphics(this._graphics,!0),this._cachedBaseTexture=null,this._cachedPanoramicRadiusObjectId=null,this._defaultGraphicProperties=null,this._defaultZOffsetPercentage=50,this._defaultCameraFeature=null,this._graphics=[],this._panoramicRadiusOffsetInMeters=0,this._panoramicRadiusOffsetPercentage=50,this._panoramicRadiusOffsetRangeInMeters=0,this._panoramicNavigationFeature=null,this._rasterTextureCacheFeature=null,this._rasterTextureFetchCache.clear()}destroy(){this._task=this._task?.abort()??null,this.clear()}update(e){this._task?.abort(),this._task=t(async t=>{if(!this._canUpdate(e)){this._resetInactiveState(e.adapter);return}let n=!1,r=[];try{this._resetRasterTextureCacheIfNeeded(e.currentBestFeature);let a=await this._resolveMedia(e,t);if(!a||({graphics:r}=await this._createGraphics(e,a,t),!r.length))return;await this._updateDefaultCameraIfNeeded(e,t),await this._updateNavigation(e,t),e.mode===`panoramic`&&await this._applyPersistentPanoramicRadiusOffset(r,e.currentBestFeature,e.view,t),i(t),this._replaceGraphics(r,e.mode),n=!0}finally{n||this._destroyGraphics(r,!1)}})}_canUpdate(e){return e.superimposeViewEnabled&&e.state===`image-loaded`&&e.view?.type===`3d`&&!!e.currentBestFeature&&!!e.layer&&[`default`,`panoramic`].includes(e.mode)}_resetInactiveState(e){e?.disableDefaultSuperimposeNavigation?.(),e?.disablePanoramicSuperimposeNavigation?.(),this.clear()}async _updateDefaultCameraIfNeeded(e,t){let{activeImageSize:n,currentBestFeature:r,mode:a}=e;if(n&&r&&a==="default"&&this._shouldUpdateDefaultCamera(a,r)){let a=[{x:n[0]/2,y:n[1]/2}],o=this._resolveDefaultSuperimposeDistance(r,this._defaultZOffsetPercentage)??r.attributes.farDistance,[s]=typeof o==`number`&&o>0?await this._properties.getPointAtDistance(a,o,{signal:t}):await this._properties.getMapPoint(a,{signal:t});i(t),await e.adapter?.updateDefaultSuperimposeCamera?.({currentBestFeature:r,target:s??null},{signal:t}),i(t),this._defaultCameraFeature=r}}async _resolveMedia(e,t){let{currentBestFeature:n,layer:r,mode:a,view:o}=e;if(!n||!r||!o||a!=="default"&&a!==`panoramic`)return null;let s=await g(n.attributes,r,{signal:t});if(i(t),!s?.mediaUrl)return null;if(!h(s.datasetFormat))return this._resolveNonRasterMedia(s);let c=await this._resolveRasterMedia(s,o,t);if(!c)return null;switch(a){case`default`:{let n=await this._resolveDefaultAreaOfInterest(e,s,t);return this._resolveDefaultRasterMedia(c,n,o,t)}case`panoramic`:return this._resolvePanoramicRasterMedia(c,e,t)}}_resolveNonRasterMedia(e){return{areaOfInterest:null,textureUrl:this._resolveTextureUrl(e)}}async _resolveDefaultAreaOfInterest(e,t,n){let{activeImageSize:r,currentBestFeature:a,mode:o,view:s}=e;if(o!=="default"||!r||!a||!s||!h(t.datasetFormat))return null;let c=await _(a,s,r,this._properties.pointToPixel,{signal:n});return i(n),c}async _resolveRasterMedia(e,t,n){let r=await this._loadRaster(e,{signal:n});if(i(n),!r)return null;let a=v(r,t),o=this._cachedBaseTexture;if(!o){let e=await this._createRasterTexture(r,null,a,{signal:n});i(n),e&&(o=e,this._cachedBaseTexture=e)}return o?{baseLevel:a,baseTexture:o,raster:r}:null}async _resolveDefaultRasterMedia(e,t,n,r){let{baseLevel:a,baseTexture:o,raster:s}=e;if(!t)return{areaOfInterest:null,baseTexture:o,raster:s,texture:o};let c=v(s,n,t),l=await this._createCompositedDefaultRasterTexture(s,t,c,a,{signal:r});return i(r),{areaOfInterest:t,baseTexture:o,overlayTexture:l,raster:s,texture:l??o}}async _resolvePanoramicRasterMedia(e,t,n){let{activeImageSize:r,currentBestFeature:a,view:o}=t,{baseTexture:s,raster:c}=e;if(!r||!a||!o)return{areaOfInterest:null,baseTexture:s,panoramicAreasOfInterest:void 0,raster:c,texture:s};let l=await y(a,o,r,this._properties.pointToPixel,{signal:n});i(n);let u=await this._createPanoramicRasterTexture(c,a,o,r,l,{signal:n})??s;return i(n),{areaOfInterest:null,baseTexture:s,panoramicAreasOfInterest:l,raster:c,texture:u}}async _createGraphics(e,t,n){switch(e.mode){case`default`:return this._createDefaultGraphics(e,t,n);case`panoramic`:return this._createPanoramicGraphics(e,t,n)}return{graphics:[]}}async _createDefaultGraphics(e,t,n){let r=await this._createAndDrapeDefaultGraphic(e,n,{texture:t.texture,textureUrl:t.textureUrl});return{graphics:r?[r]:[]}}async _createAndDrapeDefaultGraphic(e,t,n){let{activeImageSize:r,currentBestFeature:a,depthImageLoaded:o,view:s}=e,{areaOfInterest:c,texture:l,textureUrl:u}=n;if(!r||s?.type!==`3d`||!a)return null;let d=await this._createDefaultGraphic({areaOfInterest:c,currentBestFeature:a,depthImageLoaded:o,imageSize:r,signal:t,texture:l,textureUrl:u,view:s});if(!d)return null;let f=await this._resolveDefaultMeshPosition(d,r,s,a,c,t,100),p=await this._resolveDefaultMeshPosition(d,r,s,a,c,t,0);return i(t),this._defaultGraphicProperties={areaOfInterest:c??null,currentBestFeature:a,farPosition:p??(d.geometry?.type===`mesh`?d.geometry.vertexAttributes.position.slice():new Float64Array),imageSize:r,nearPosition:f,view:s},d}async _createPanoramicGraphics(e,t,n){let r=await this._createPanoramicSuperimposeGraphic(e,t,n,null);return{graphics:r?[r]:[]}}async _createPanoramicSuperimposeGraphic(e,t,n,r){let{activeImageSize:i,currentBestFeature:a,view:o}=e;return o?this._createPanoramicGraphic({areaOfInterest:r,currentBestFeature:a??void 0,imageSize:i,signal:n,texture:t.texture,textureUrl:t.textureUrl,view:o}):null}async _updateNavigation(e,t){let{currentBestFeature:n,mode:r,view:i}=e;if(n&&i&&i.type===`3d`)switch(r){case`default`:this._updateDefaultNavigation(e);return;case`panoramic`:await this._updatePanoramicNavigation(e,n,i,t);return}}_updateDefaultNavigation(e){this._updateDefaultSuperimposeNavigation(e.adapter,e.defaultSuperimposeCameraLockEnabled)}async _updatePanoramicNavigation(e,t,n,r){e.adapter?.disableDefaultSuperimposeNavigation?.();let a=t===this._panoramicNavigationFeature?n.camera:e.panoramicCamera??n.camera;a&&this._shouldUpdatePanoramicCamera(e.mode,t)&&(e.adapter?.disablePanoramicSuperimposeNavigation?.(),await e.adapter?.updatePanoramicSuperimposeCamera?.({camera:a,currentBestFeature:t},{signal:r}),i(r)),this._panoramicNavigationFeature=t}_replaceGraphics(e,t){if(t===`panoramic`&&this._updatePanoramicGraphicInPlace(e))return;let n=this._graphics;this._graphics=e,this._properties.overlays.addMany(e),this._destroyGraphics(n,!0)}_updatePanoramicGraphicInPlace(e){if(this._graphics.length!==1||e.length!==1)return!1;let t=this._graphics[0],n=e[0];return!t||!n?!1:(t.geometry=n.geometry,t.symbol=n.symbol,t.visible=n.visible,n.geometry=null,n.symbol=null,r(n),!0)}_destroyGraphics(e,t){e.length&&(t&&this._properties.overlays.removeMany(e),e.forEach(e=>r(e)))}_updateDefaultSuperimposeNavigation(e,t=!0){t?e?.enableDefaultSuperimposeNavigation?.():e?.disableDefaultSuperimposeNavigation?.(),this._panoramicNavigationFeature&&e?.disablePanoramicSuperimposeNavigation?.(),this._panoramicNavigationFeature=null}_shouldUpdateDefaultCamera(e,t){return e==="default"&&t!==this._defaultCameraFeature}_shouldUpdatePanoramicCamera(e,t){return e===`panoramic`&&t!==this._panoramicNavigationFeature}setDefaultZOffsetPercentage(e){this._defaultZOffsetPercentage=Math.max(0,Math.min(100,e)),this._defaultGraphicProperties&&this._graphics.length===1&&this._rebuildDefaultGraphicForPercentage(this._defaultZOffsetPercentage)}setPanoramicRadiusPercentage(e){let t=Math.max(0,Math.min(100,e)),n=this._panoramicRadiusOffsetRangeInMeters*t/100,r=n-this._panoramicRadiusOffsetInMeters;this._panoramicRadiusOffsetPercentage=t,this._panoramicRadiusOffsetInMeters=n,this._applyPanoramicRadiusOffset(this._graphics,r)}updatePanoramicRadiusOffset(e){e!==0&&(this._panoramicRadiusOffsetInMeters+=e,this._applyPanoramicRadiusOffset(this._graphics,e))}_applyPanoramicRadiusOffset(e,t){t!==0&&e.forEach(e=>{let n=e.geometry;n?.type===`mesh`&&b(n,{radiusOffset:t,minimumRadiusInMeters:10})})}async _applyPersistentPanoramicRadiusOffset(e,t,n,r){this._panoramicRadiusOffsetRangeInMeters=await this._resolvePanoramicRadiusOffsetRangeInMeters(t,n,r),this._panoramicRadiusOffsetInMeters=this._panoramicRadiusOffsetRangeInMeters*this._panoramicRadiusOffsetPercentage/100,this._applyPanoramicRadiusOffset(e,this._panoramicRadiusOffsetInMeters)}_rebuildDefaultGraphicForPercentage(e){let t=this._defaultGraphicProperties,[n]=this._graphics;if(!t||!n||n.geometry?.type!==`mesh`)return;let r=this._createDefaultMeshForPercentage(t,n.geometry,e);r&&(this._applyDefaultMeshAppearance(r,n.geometry),n.geometry=r)}_createDefaultMeshForPercentage(e,t,n){let{farPosition:r,nearPosition:i,view:o}=e;if(!i||i.length!==r.length)return null;let c=new Float64Array(r.length),l=n/100;for(let e=0;e<r.length;e+=1)c[e]=r[e]+(i[e]-r[e])*l;let d=t.vertexAttributes.uv,f=t.components;return!d||!f||f.some(e=>!e.faces)?null:new a({vertexAttributes:new u({position:c,uv:d.slice()}),components:f.map(e=>new s({faces:e.faces.slice()})),spatialReference:o.spatialReference.clone()})}_resolveDefaultSuperimposeDistance(e,t){let n=e.attributes.farDistance,r=Math.max(0,e.attributes.nearDistance??n);if(n>0&&r>=0)return n+(r-n)*t/100}async _resolvePanoramicRadiusOffsetRangeInMeters(e,t,n){let r=e.attributes.objectId;if(this._cachedPanoramicRadiusObjectId!==r){let a=e.attributes.farDistance,s=Math.max(10,e.attributes.nearDistance??a);if(!(a>0)||!(s>=0))return this._cachedPanoramicRadiusObjectId=r,this._panoramicRadiusOffsetRangeInMeters=0,0;let c=e.attributes.location,l=c.spatialReference.equals(t.spatialReference)?c:await o(c,t.spatialReference,{signal:n});if(i(n),!l)return this._cachedPanoramicRadiusObjectId=r,this._panoramicRadiusOffsetRangeInMeters=0,0;let u=l.spatialReference.isWebMercator?m(l.y):1;this._cachedPanoramicRadiusObjectId=r,this._panoramicRadiusOffsetRangeInMeters=(s-a)*u}return this._panoramicRadiusOffsetRangeInMeters}_resolveTextureUrl(e){let t=new URL(e.mediaUrl);return Object.entries(e.searchParams).forEach(([e,n])=>{t.searchParams.has(e)||t.searchParams.set(e,n)}),t.toString()}_resetRasterTextureCacheIfNeeded(e){e&&e!==this._rasterTextureCacheFeature&&(this._cachedBaseTexture=null,this._rasterTextureFetchCache.clear(),this._rasterTextureCacheFeature=e)}_createImageDataFromPixelBlock(e){return new ImageData(e.getAsRGBA(),e.width,e.height)}_copyImageData(e,t,n,r,i=e.width,a=e.height){let o=e.data,s=t.data,c=e.width,l=e.height,u=t.width,d=t.height;for(let e=0;e<a;e+=1){let t=r+e;if(t<0||t>=d)continue;let f=Math.min(l-1,Math.floor(e*l/a));for(let e=0;e<i;e+=1){let r=n+e;if(r<0||r>=u)continue;let a=Math.min(c-1,Math.floor(e*c/i)),l=(f*c+a)*4,d=(t*u+r)*4;s[d]=o[l],s[d+1]=o[l+1],s[d+2]=o[l+2],s[d+3]=o[l+3]}}}_copyImageDataRegion(e,t,n,r,i,a,o,s){let c=e.data,l=t.data,u=e.width,d=t.width;for(let e=0;e<s;e+=1)for(let t=0;t<o;t+=1){let o=((r+e)*u+(n+t))*4,s=((a+e)*d+(i+t))*4;l[s]=c[o],l[s+1]=c[o+1],l[s+2]=c[o+2],l[s+3]=c[o+3]}}async _fetchRasterTextureAtLevel(e,t,n,r){let{offset:a,size:o}=x(e,t,n),s=this._createRasterTextureExtent(a,o),c=this._createRasterTextureLevelCacheKey(e,t),l=this._getOrCreateRasterTextureLevelCache(c),u=this._getUncoveredRasterTextureExtents(s,l.patches);for(let n of u){let a=this._createRasterTextureExtentCacheKey(n),o=l.inflight.get(a);o||(o=this._fetchRasterTexturePatch(e,t,n,r),l.inflight.set(a,o));try{let e=await o;i(r),e&&l.patches.push(e)}finally{l.inflight.delete(a)}}return this._composeRasterTextureFromCachedPatches(s,l.patches)}_getOrCreateRasterTextureLevelCache(e){let t=this._rasterTextureFetchCache.get(e);return t||(t={inflight:new Map,patches:[]},this._rasterTextureFetchCache.set(e,t)),t}_createRasterTextureLevelCacheKey(e,t){return[e.url,e.rasterInfo.width,e.rasterInfo.height,t].join(`:`)}_createRasterTextureExtentCacheKey(e){return[e.xmin,e.ymin,e.xmax,e.ymax].join(`:`)}_createRasterTextureExtent(e,t){return{xmin:e.x,ymin:e.y,xmax:e.x+t.width,ymax:e.y+t.height}}_getUncoveredRasterTextureExtents(e,t){let n=[e];for(let e of t)if(n=n.flatMap(t=>this._subtractRasterTextureExtent(t,e.extent)),!n.length)break;return n}_subtractRasterTextureExtent(e,t){let n=this._intersectRasterTextureExtents(e,t);if(!n)return[e];let r=[];return e.ymin<n.ymin&&r.push({xmin:e.xmin,ymin:e.ymin,xmax:e.xmax,ymax:n.ymin}),n.ymax<e.ymax&&r.push({xmin:e.xmin,ymin:n.ymax,xmax:e.xmax,ymax:e.ymax}),e.xmin<n.xmin&&r.push({xmin:e.xmin,ymin:n.ymin,xmax:n.xmin,ymax:n.ymax}),n.xmax<e.xmax&&r.push({xmin:n.xmax,ymin:n.ymin,xmax:e.xmax,ymax:n.ymax}),r.filter(({xmin:e,ymin:t,xmax:n,ymax:r})=>n>e&&r>t)}_intersectRasterTextureExtents(e,t){let n=Math.max(e.xmin,t.xmin),r=Math.max(e.ymin,t.ymin),i=Math.min(e.xmax,t.xmax),a=Math.min(e.ymax,t.ymax);return i>n&&a>r?{xmin:n,ymin:r,xmax:i,ymax:a}:null}async _fetchRasterTexturePatch(e,t,n,r){let{pixelBlock:a}=await e.fetchRawPixels(t,{x:n.xmin,y:n.ymin},{width:n.xmax-n.xmin,height:n.ymax-n.ymin},r);if(i(r),a)return{extent:n,imageData:this._createImageDataFromPixelBlock(a)}}_composeRasterTextureFromCachedPatches(e,t){let n=t.filter(t=>this._intersectRasterTextureExtents(e,t.extent));if(!n.length)return;let r=new ImageData(e.xmax-e.xmin,e.ymax-e.ymin);for(let t of n){let n=this._intersectRasterTextureExtents(e,t.extent);n&&this._copyImageDataRegion(t.imageData,r,n.xmin-t.extent.xmin,n.ymin-t.extent.ymin,n.xmin-e.xmin,n.ymin-e.ymin,n.xmax-n.xmin,n.ymax-n.ymin)}return r}async _loadRaster(e,t){let{loadRaster:n}=await import(`../../PanoramicViewer/utils.js`),r=await n(this._resolveTextureUrl(e),t);return i(t),r}async _createCompositedDefaultRasterTexture(e,t,n,r,a){let{pyramidScalingFactor:o}=e.rasterInfo.storageInfo,s=o??2,c=S(e.rasterInfo.width,e.rasterInfo.height,n,s),u=await this._fetchRasterTextureAtLevel(e,r,null,a);if(i(a),!u)return;let d=await this._fetchRasterTextureAtLevel(e,n,t,a);if(i(a),!d)return new l({data:u});let f=new ImageData(c.width,c.height);this._copyImageData(u,f,0,0,c.width,c.height);let p=s**n,{x:m,y:h}=this._resolveRasterDrawOrigin(t,p);return this._copyImageData(d,f,m,h),new l({data:f})}async _createRasterTexture(e,t,n,r){let{maximumPyramidLevel:i}=e.rasterInfo.storageInfo,a=await this._fetchRasterTextureAtLevel(e,n??i,t,r);if(a)return new l({data:a})}async _createPanoramicRasterTexture(e,t,n,r,a,o){if(a??=await y(t,n,r,this._properties.pointToPixel,o),i(o),!a?.length)return this._createRasterTexture(e,null,void 0,o);let{baseLevel:s,level:c,scalingFactor:l}=this._resolvePanoramicRasterLevels(e,n,a);return s<=c?this._createRasterTexture(e,null,c,o):this._createCompositedPanoramicRasterTexture(e,a,{baseLevel:s,level:c,scalingFactor:l},o)}_resolvePanoramicRasterLevels(e,t,n){let{maximumPyramidLevel:r,pyramidScalingFactor:i}=e.rasterInfo.storageInfo,a=n.reduce((n,r)=>Math.min(n,C(e,t,r)),r),o=w(e,a),s=i??2;return{baseLevel:Math.min(r,o+2),level:o,scalingFactor:s}}async _createCompositedPanoramicRasterTexture(e,t,n,r){let{baseLevel:a,level:o,scalingFactor:s}=n,c=S(e.rasterInfo.width,e.rasterInfo.height,o,s),u=await this._fetchRasterTextureAtLevel(e,a,null,r);if(i(r),!u)return;let d=new ImageData(c.width,c.height);this._copyImageData(u,d,0,0,c.width,c.height);let f=s**o;for(let n of t){let t=await this._fetchRasterTextureAtLevel(e,o,n,r);if(i(r),!t)continue;let{x:a,y:s}=this._resolveRasterDrawOrigin(n,f);this._copyImageData(t,d,a,s)}return new l({data:d})}_resolveRasterDrawOrigin(e,t){return{x:Math.max(0,Math.floor(e.xmin/t)),y:Math.max(0,Math.floor(e.ymin/t))}}async _createGridMesh(e,t,n,r,c,l,d){if(t.type!==`3d`)return null;let f=await Promise.all(r.map(e=>e.spatialReference.equals(t.spatialReference)?e:o(e,t.spatialReference,d)));if(i(d),f.some(e=>!e))return null;let{faces:p,position:m,uv:h}=T(f,e,n,c);return l?.forEach((t,n)=>{let r=n*2;h[r]=t.x/e[0],h[r+1]=t.y/e[1]}),new a({vertexAttributes:new u({position:m,uv:h}),components:[new s({faces:p})],spatialReference:t.spatialReference.clone()})}async _createFootprintMesh(e,t,n,r,a,o){if(t.type!==`3d`)return null;let s=n?.attributes.farDistance,c=E(e,r),l=a??s,u=typeof l==`number`&&l>0?await this._properties.getPointAtDistance(c,l,o):await this._properties.getMapPoint(c,o);return i(o),this._createGridMesh(e,t,r,u)}async _resolveDefaultMeshPosition(e,t,n,r,a,o,s){let c=e.geometry;if(c?.type===`mesh`&&s===this._defaultZOffsetPercentage)return c.vertexAttributes.position.slice();let l=this._resolveDefaultSuperimposeDistance(r,s),u=await this._createFootprintMesh(t,n,r,a,l,{signal:o});return i(o),u?.vertexAttributes.position.slice()??null}async _createPanoramicGraphic(t){let{areaOfInterest:r,imageSize:i,signal:a,texture:o,textureUrl:s,view:u}=t;if(!o&&!s)throw Error(`Missing texture URL or texture data.`);if(!i)return null;let d=await this._createPanoramicMesh(i,u,r,t.currentBestFeature,a);if(!d)return null;let m=d.vertexAttributes.position,h=[];for(let e=0;e<m.length;e+=3)h.push(...D);d.vertexAttributes.color=new Uint8Array(h);let g=new c({colorTexture:o??new l({url:s})});return d.components?.forEach(e=>{e.shading=`source`,e.material=g}),new e({geometry:d,symbol:new p({symbolLayers:new n([new f({})])})})}async _createPanoramicMesh(e,t,n,r,a){if(t.type!==`3d`||!r)return null;let{attributes:o}=r,{farDistance:s}=o;if(typeof s!=`number`||!(s>0))return null;let c=E(e,n,128),l=this._properties.getPanoramicTransformationState?.();if(!l)return null;let{imageToWorldProperties:u,updateElevationProps:f}=l,p=await d(c.map(e=>({...e,depth:s??u.farDistance})),u,f);return i(a),this._createGridMesh(e,t,n,p,128,c)}async _createDefaultGraphic(t){let{texture:r,textureUrl:i}=t;if(!r&&!i)throw Error(`Missing texture URL or texture data.`);if(!t.imageSize)return null;let a=t.currentBestFeature?this._resolveDefaultSuperimposeDistance(t.currentBestFeature,this._defaultZOffsetPercentage):void 0,o=await this._createFootprintMesh(t.imageSize,t.view,t.currentBestFeature,t.areaOfInterest,a,{signal:t.signal});return o?(this._applyDefaultMeshAppearance(o,r??new l({url:i})),new e({geometry:o,symbol:new p({symbolLayers:new n([new f({})])})})):null}_applyDefaultMeshAppearance(e,t){let n=e.vertexAttributes.position,r=[];for(let e=0;e<n.length;e+=3)r.push(...D);e.vertexAttributes.color=new Uint8Array(r);let i=t instanceof a?t.components?.[0]?.material??null:new c({colorTexture:t});e.components?.forEach((e,n)=>{e.shading=`source`,e.material=t instanceof a?t.components?.[n]?.material??i:i})}}export{O as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../../core/Logger.js";import{destroyMaybe as n}from"../../../core/maybe.js";import{EsriPromise as r}from"../../../core/Promise.js";import{throwIfAborted as i}from"../../../core/promiseUtils.js";import{property as a}from"../../../core/accessorSupport/decorators/property.js";import{subclass as o}from"../../../core/accessorSupport/decorators/subclass.js";let s=class extends r{constructor(e){super(e),this.autoLoad=!1,this.customParameters=null,this.datasetFormat=null,this.url=null,this.rotation=null}destroy(){this._cache=n(this._cache)}get layer(){return this._cache}get size(){if(!this._cache?.loaded||!this._cache.serviceRasterInfo)return;let{serviceRasterInfo:e}=this._cache;return[e.width,e.height]}async load(e){if(this._cache?.loaded)return await this._cache.load(e),{layer:this._cache,size:this.size};let{url:n,customParameters:r}=this,a=this.datasetFormat;if(!n)throw Error(`URL is required to load NonPanoramicMedia.`);let o=await import(`./urlUtils.js`);if(i(e),a||=o.guessExtensionFromURI(n),!a){try{a=await o.getDatasetFormat(n)}catch(e){t.getLogger(this).warn(`non-panoramic-media:dataset-format`,e)}i(e)}a??=`UNKNOWN FORMAT`,this.datasetFormat=a;let s=(await import(`../../../layers/ImageryTileLayer.js`)).default;i(e),this._cache=new s({url:n,ioConfig:{skipExtensions:[`aux.xml`,`jgw`],skipMapInfo:!0,datasetFormat:a},customParameters:r??void 0});let c=this._cache.load(e);return this.addResolvingPromise(c),await c,i(e),{layer:this._cache,size:this.size}}};e([a()],s.prototype,`_cache`,void 0),e([a()],s.prototype,`autoLoad`,void 0),e([a()],s.prototype,`customParameters`,void 0),e([a()],s.prototype,`datasetFormat`,void 0),e([a()],s.prototype,`url`,void 0),e([a()],s.prototype,`layer`,null),e([a()],s.prototype,`rotation`,void 0),e([a()],s.prototype,`size`,null),s=e([o(`esri.widgets.OrientedImageryViewer.support.NonPanoramicMedia`)],s);const c=s;export{c as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../../core/Logger.js";import{destroyMaybe as n}from"../../../core/maybe.js";import{EsriPromise as r}from"../../../core/Promise.js";import{throwIfAborted as i}from"../../../core/promiseUtils.js";import{property as a}from"../../../core/accessorSupport/decorators/property.js";import{subclass as o}from"../../../core/accessorSupport/decorators/subclass.js";let s=class extends r{constructor(e){super(e),this.autoLoad=!1,this.customParameters=null,this.datasetFormat=null,this.url=null,this.rotation=null}destroy(){this._cache=n(this._cache)}get layer(){return this._cache}get size(){if(!this._cache?.loaded||!this._cache.serviceRasterInfo)return;let{serviceRasterInfo:e}=this._cache;return[e.width,e.height]}async load(e){if(this._cache?.loaded)return await this._cache.load(e),{layer:this._cache,size:this.size};let{url:n,customParameters:r}=this,a=this.datasetFormat;if(!n)throw Error(`URL is required to load NonPanoramicMedia.`);let o=await import(`./urlUtils.js`);if(i(e),a||=o.guessExtensionFromURI(n),!a){try{a=await o.getDatasetFormat(n)}catch(e){t.getLogger(this).warn(`non-panoramic-media:dataset-format`,e)}i(e)}a??=`UNKNOWN FORMAT`,this.datasetFormat=a;let s=(await import(`../../../layers/ImageryTileLayer.js`)).default;i(e),this._cache=new s({url:n,ioConfig:{skipExtensions:[`aux.xml`,`jgw`],skipMapInfo:!0,datasetFormat:a,tileGeneration:`immediate`},customParameters:r??void 0});let c=this._cache.load(e);return this.addResolvingPromise(c),await c,i(e),{layer:this._cache,size:this.size}}};e([a()],s.prototype,`_cache`,void 0),e([a()],s.prototype,`autoLoad`,void 0),e([a()],s.prototype,`customParameters`,void 0),e([a()],s.prototype,`datasetFormat`,void 0),e([a()],s.prototype,`url`,void 0),e([a()],s.prototype,`layer`,null),e([a()],s.prototype,`rotation`,void 0),e([a()],s.prototype,`size`,null),s=e([o(`esri.widgets.OrientedImageryViewer.support.NonPanoramicMedia`)],s);const c=s;export{c as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../../Graphic.js";import t from"../../../core/Error.js";import n from"../../../geometry/Polygon.js";import{fromJSON as r}from"../../../geometry/support/jsonUtils.js";import{convertPixelLocationToSphereVertex as i,convertSphereVertexToPixelLocation as a}from"../../../layers/orientedImagery/transformations/utils.js";import{defaultImageGeometryField as o,defaultOIObjectIDField as s}from"../constants.js";import{createGraphicSymbol as c,dataCaptureFeatureSymbol as l}from"../symbols.js";import{checkNameOrAlias as u}from"./typeUtils.js";function d(e,t,n){if(!e)return;let{renderer:r}=e,i=l(t),a=r?`symbol`in r?r.symbol:`defaultSymbol`in r?r.defaultSymbol:r.getSymbol():null,o=i(a?.color);n[`${t}Symbol`]=(t===e.geometryType?a:null)??o}function f(e,n,r){let i=e.fields.find(({name:e,alias:t,type:r})=>u(n?.length?n:o,e,t)&&r===`blob`),a=e.fields.find(({name:e,alias:t})=>u(r?.length?r:s,e,t));if(!i||!a)throw new t(`orientedimageryviewer:invalid-data-capture-layer`,`Data capture layer is not configured correctly.`,{layer:e,imageGeometryField:i,oiObjectIdField:a});return{imageGeometryField:i,oiObjectIdField:a}}function p(n,r,i,a,o,s,l,u){let d=m(n,r);if(!d)throw new t(`orientedimageryviewer:invalid-geometry`,`InvalidGeometry`);return d=v(d,s,o,u),new e({attributes:n,layer:i,symbol:c(d.type,i.geometryType,l),geometry:d,visible:i.visible&&a})}function m(e,t){let{geometry:n}=JSON.parse(atob(e[t]));return r(n)}function h(e,t,n,r){switch(t){case`default`:return g(e);case`panoramic`:case`panoramic-video`:return _(e,n,r)}}function g(e){switch(e.type){case`point`:e.x+=.5,e.y=.5-e.y;break;case`polyline`:e.paths=e.paths.map(e=>e.map(([e,t])=>[e+.5,.5-t]));break;case`polygon`:e.rings=e.rings.map(e=>e.map(([e,t])=>[e+.5,.5-t]));break;case`multipoint`:e.points=e.points.map(([e,t])=>[e+.5,.5-t]);break;case`extent`:e.xmin+=.5,e.xmax+=.5,e.ymin=.5-e.ymin,e.ymax=.5-e.ymax}return e}function _(e,t,r){switch(e.type){case`point`:{let{x:n,y:i}=a(e,...t,r);e.x=n,e.y=i,
|
|
2
|
+
import e from"../../../Graphic.js";import t from"../../../core/Error.js";import n from"../../../geometry/Polygon.js";import{fromJSON as r}from"../../../geometry/support/jsonUtils.js";import{convertPixelLocationToSphereVertex as i,convertSphereVertexToPixelLocation as a}from"../../../layers/orientedImagery/transformations/utils.js";import{defaultImageGeometryField as o,defaultOIObjectIDField as s}from"../constants.js";import{createGraphicSymbol as c,dataCaptureFeatureSymbol as l}from"../symbols.js";import{checkNameOrAlias as u}from"./typeUtils.js";function d(e,t,n){if(!e)return;let{renderer:r}=e,i=l(t),a=r?`symbol`in r?r.symbol:`defaultSymbol`in r?r.defaultSymbol:r.getSymbol():null,o=i(a?.color);n[`${t}Symbol`]=(t===e.geometryType?a:null)??o}function f(e,n,r){let i=e.fields.find(({name:e,alias:t,type:r})=>u(n?.length?n:o,e,t)&&r===`blob`),a=e.fields.find(({name:e,alias:t})=>u(r?.length?r:s,e,t));if(!i||!a)throw new t(`orientedimageryviewer:invalid-data-capture-layer`,`Data capture layer is not configured correctly.`,{layer:e,imageGeometryField:i,oiObjectIdField:a});return{imageGeometryField:i,oiObjectIdField:a}}function p(n,r,i,a,o,s,l,u){let d=m(n,r);if(!d)throw new t(`orientedimageryviewer:invalid-geometry`,`InvalidGeometry`);return d=v(d,s,o,u),new e({attributes:n,layer:i,symbol:c(d.type,i.geometryType,l),geometry:d,visible:i.visible&&a})}function m(e,t){let{geometry:n}=JSON.parse(atob(e[t]));return r(n)}function h(e,t,n,r){switch(t){case`default`:return g(e);case`panoramic`:case`panoramic-video`:return _(e,n,r)}}function g(e){switch(e.type){case`point`:e.x+=.5,e.y=.5-e.y;break;case`polyline`:e.paths=e.paths.map(e=>e.map(([e,t])=>[e+.5,.5-t]));break;case`polygon`:e.rings=e.rings.map(e=>e.map(([e,t])=>[e+.5,.5-t]));break;case`multipoint`:e.points=e.points.map(([e,t])=>[e+.5,.5-t]);break;case`extent`:e.xmin+=.5,e.xmax+=.5,e.ymin=.5-e.ymin,e.ymax=.5-e.ymax}return e}function _(e,t,r){switch(e.type){case`point`:{let{x:n,y:i}=a(e,...t,r);e.x=n,e.y=i,e.z=void 0;break}case`polyline`:e.paths=e.paths.map(e=>e.map(e=>{let{x:n,y:i}=a({x:e[0],y:e[1],z:e[2]},...t,r);return[n,i]}));break;case`polygon`:e.rings=e.rings.map(e=>e.map(e=>{let{x:n,y:i}=a({x:e[0],y:e[1],z:e[2]},...t,r);return[n,i]}));break;case`multipoint`:e.points=e.points.map(e=>{let{x:n,y:i}=a({x:e[0],y:e[1],z:e[2]},...t,r);return[n,i]});break;case`extent`:{let{xmin:i,xmax:a,ymin:o,ymax:s}=_(n.fromExtent(e),t,r).extent;e.xmax=a,e.xmin=i,e.ymax=s,e.ymin=o;break}}return e}function v(e,t,n,r){switch(t){case`default`:return y(e);case`panoramic`:case`panoramic-video`:return b(e,n,r)}}function y(e){switch(e.type){case`point`:e.x-=.5,e.y=.5-e.y;break;case`polyline`:e.paths=e.paths.map(e=>e.map(([e,t])=>[e-.5,.5-t]));break;case`polygon`:e.rings=e.rings.map(e=>e.map(([e,t])=>[e-.5,.5-t]));break;case`multipoint`:e.points=e.points.map(([e,t])=>[e-.5,.5-t]);break;case`extent`:e.xmin-=.5,e.xmax-=.5,e.ymin=.5-e.ymin,e.ymax=.5-e.ymax}return e}function b(e,t,r){switch(e.type){case`point`:{let[n,a,o]=i(e,...t,r);e.x=n,e.y=a,e.z=o;break}case`polyline`:e.paths=e.paths.map(e=>e.map(e=>{let[n,a,o]=i({x:e[0],y:e[1]},...t,r);return[n,a,o]}));break;case`polygon`:e.rings=e.rings.map(e=>e.map(e=>{let[n,a,o]=i({x:e[0],y:e[1]},...t,r);return[n,a,o]}));break;case`multipoint`:e.points=e.points.map(e=>{let[n,a,o]=i({x:e[0],y:e[1]},...t,r);return[n,a,o]});break;case`extent`:{let{xmin:i,xmax:a,ymin:o,ymax:s}=b(n.fromExtent(e),t,r).extent;e.xmax=a,e.xmin=i,e.ymax=s,e.ymin=o}}return e}export{d as configureSketchTool,p as constructGraphicFromImageGeometry,f as extractFieldsFromDataCaptureLayer,h as mapSpaceToImageSpace,g as mapSpaceToImageSpaceDefault,_ as mapSpaceToImageSpacePanoramic,m as parseAndExtractField,v as pixelToMapSpace,y as pixelToMapSpaceDefault,b as pixelToMapSpacePanoramic};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{prefersRTL as t,substitute as n}from"../intl.js";import{prefersReducedMotion as r}from"../core/a11yUtils.js";import{createTask as i}from"../core/asyncUtils.js";import a from"../core/Collection.js";import{deprecateWidget as o,deprecatedProperty as s}from"../core/deprecate.js";import c from"../core/Logger.js";import{isAbortError as l}from"../core/promiseUtils.js";import{watch as u,initial as d,syncAndInitial as f,on as p,sync as m}from"../core/reactiveUtils.js";import{throttle as h}from"../core/throttle.js";import{property as g,subclass as ee}from"../core/accessorSupport/decorators.js";import{or as te}from"../layers/orientedImagery/transformations/utils.js";import ne from"./Expand.js";import re from"./PanoramicVideoViewer.js";import _ from"./PanoramicViewer.js";import v from"./Widget.js";import{getAllArcPath as y}from"./OrientedImageryViewer/arcUtils.js";import{getDelegatedEvents as b,defaultImageGeometryField as x,defaultOIObjectIDField as ie,segmentArcs as S,featureCircleRadius as ae,navigationToolDimensionLength as C,sectorsRadii as w}from"./OrientedImageryViewer/constants.js";import{css as T,navigation as oe,navigationToolRotationFrom as E,navigationToolRotationTo as D,root as O}from"./OrientedImageryViewer/css.js";import{isFeatureAttachment as k,loadImageForAttachment as A,getThumbnailPixelBlock as j,renderImageWithRotation as M}from"./OrientedImageryViewer/galleryUtils.js";import N from"./OrientedImageryViewer/OrientedImageryViewerViewModel.js";import P from"./OrientedImageryViewer/OrientedImageryViewerVisibleElements.js";import{loadAlertComponents as F,Alert as I}from"./OrientedImageryViewer/components/Alert.js";import L from"./OrientedImageryViewer/components/ImageLocationWidget.js";import R from"./OrientedImageryViewer/components/ImageViewer.js";import z from"./OrientedImageryViewer/components/NavigationUI.js";import B from"./OrientedImageryViewer/components/NavigationUI360.js";import{loadSequentialNavigationUIComponents as V,SequentialNavigationUI as H}from"./OrientedImageryViewer/components/SequentialNavigationUI.js";import{loadVideoEnhancementComponents as U,renderEnhancementSlider as W,VideoEnhancementTools as G}from"./OrientedImageryViewer/components/VideoEnhancementTools.js";import{NoImageLoadedError as K}from"./OrientedImageryViewer/navigation/errors.js";import{loadCalciteComponents as se}from"./support/componentsUtils.js";import{globalCss as q}from"./support/globalCss.js";import{iconByKind as ce}from"./support/iconUtils.js";import{vmEvent as J,messageBundle as Y,tsx as X}from"./support/widget.js";import{setFocus as Z}from"./support/widgetUtils.js";const Q={overlayed:`overlayed`};let $=class extends v{constructor(e,t){super(e,t),this.actionBarPosition=`top`,this.dataCaptureEnabled=!1,this.galleryOpened=!1,this.imageEnhancementToolActive=!1,this.videoEnhancementToolActive=!1,this.imageOverlaysOpened=!1,this.navigationToolActive=!1,this.viewModel=new N,this.messagesCommon=null,this.messagesSketch=null,this.pixelMeasurementUnit=`meters`,this.pixelAreaMeasurementUnit=`square-meters`,this.selectedGroup=null,this.showCameraLocations=!1,this.showMapFeatures=!1,this.visibleElements=new P,this._defaultSuperimposeZOffsetPercentage=100,this._panoramicSuperimposeRadiusOffsetPercentage=100,this._exploreImages3DMenuOpen=!1,this._exploreImages3DCollapsed=!1,this._imageOverlaysLoaderTask=null,this._imageMeasurementToolsLoaderTask=null,this._navigationSettingsLoaderTask=null,this._navigationTask=null,this._clearMeasurements=()=>{this.viewModel.measureType=null,this.viewModel.triangularMeasurementActive=!1,this.viewModel.displayNewMeasurementButton=!0,this.viewModel.clearPreviousMeasurements()},this._clearImageLocation=()=>{this.imageLocationToolActive=!1,this.triangularMeasurementActive=!1},this._createNavigationTask=async e=>(this._navigationTask?.abort(),this._navigationTask=i(async t=>await this.navigate({...e,signal:t})),this._navigationTask.promise),this._navigateNext=async()=>await this._createNavigationTask({step:1}),this._navigatePrevious=async()=>await this._createNavigationTask({step:-1}),this._navigationToolExpanded=!1,this._navigationTool=null,this._galleryController=new AbortController,this._galleryObserver=new IntersectionObserver(this._lazyLoadImage.bind(this)),this._overlayedLayers=new a,this._previousAction=null,this._closeImageSequenceAlert=()=>{this._set(`noImageInSequenceError`,!1)},this._handleDataCaptureLayerChange=async e=>{if(this.dataCaptureLayer&&await this.stopDataCapture(!0),this.dataCaptureLayer=this.dataCaptureLayer===e?null:e,this.dataCaptureLayer)return this.startDataCapture(this.dataCaptureLayer)},this._handleNavigationSettingsInputChange=(e,t)=>{this.set(`${e}Threshold`,t)},this._handleNavigationSettingsToggle=e=>{this.viewModel.preserveAngle=e},this._handleOverlayLayerDeselect=e=>{let t=e.layer;t===this.dataCaptureLayer&&(this.stopDataCapture(),this.dataCaptureLayer=null),this.removeOverlayedGraphicsOnImage(`${t.id}`)},this._handleOverlayLayerSelect=e=>{let t=e.layer;this.viewModel.overlayMapFeatures(t,this.showMapFeatures),this.addHandles(u(()=>t.visible,()=>{this.viewModel.toggleOverlayMapFeatures(t.id,t.visible,this.showMapFeatures)}),`${Q.overlayed}-${t.id}`)},this._highlight=e=>{let t=e.target?.dataset.objectid;t&&this.viewModel.highlight(t)},this._onAction=e=>{let{target:t}=e,{dataset:{action:n}}=t,{_previousAction:r}=this,i=r?.dataset.action,a=i?.includes(`draw`)??!1,o=i===`select-feature`,s=i!==n;switch(n){case`draw-point`:case`draw-polygon`:case`draw-polyline`:{r&&te(o,a&&s)&&(r.active=!1),t.active=!t.active;let e=n.replace(`draw-`,``);this.viewModel.digitizeCreate(e),this._previousAction=t.active?t:null;break}case`save`:this.viewModel.saveDrawing();break;case`select-feature`:a&&(this._previousAction.active=!1),t.active=!t.active,this.viewModel.toggleSelection(t.active),this._previousAction=t.active?t:null;break;case`delete-feature`:this.viewModel.digitizeDelete()}},this._onImageOverlayClosed=e=>{e.stopPropagation(),this.imageOverlaysOpened=!1},this._onShowCameraLocationsChanged=e=>{this.showCameraLocations=e},this._onShowMapFeaturesChanged=e=>{this.showMapFeatures=e},this._removeHighlight=()=>this.viewModel.removeHighlight(),this._restoreOverlays=async()=>Promise.all(this._overlayedLayers.map(e=>this.viewModel.overlayMapFeatures(e,this.showMapFeatures))),this._scaleNavigationTool=()=>{this._navigationToolExpanded=!this._navigationToolExpanded},this._sketchLoaderTask=null,this._toggleExploreImages3DPanel=e=>{this._exploreImages3DCollapsed=e.target.collapsed},this._settingsToggle=null,this._toggleImageNavigation=async e=>{let t=this.navigationMode;this._closeAllImageTools(),this.navigationMode=t===e?null:e;let{activeViewer:n}=this.viewModel;if(!n)return;let{mode:r,preserveAngle:i}=this.viewModel;if(r==="default"){if(this.navigationMode===`directional`){let e=await this._loadNavigationSettings(),t=i===`heading`||i===`both`,n=i===`pitch`||i===`both`,{messages:r,messagesCommon:a}=this,o=new e({cameraHeadingThreshold:this.cameraHeadingThreshold,cameraPitchThreshold:this.cameraPitchThreshold,uiStrings:{configureNavigation:r.configureNavigation,preserveHeading:r.preserveHeading,preserveHeadingDescription:r.preserveHeadingDescription,preservePitch:r.preservePitch,preservePitchDescription:r.preservePitchDescription,settings:a.settings,thresholdLabel:r.thresholdLabel},onInputChange:this._handleNavigationSettingsInputChange,onToggle:this._handleNavigationSettingsToggle,preserveHeading:t,preservePitch:n});this._settingsToggle=new ne({content:o,expandIcon:`configure`}),this.viewModel.activeViewer?.ui.add(this._settingsToggle,{position:`top-left`})}else this._settingsToggle&&(this._settingsToggle.expanded=!1,this.viewModel.activeViewer?.ui.remove(this._settingsToggle))}},this._toggleImageAttributes=h(this.viewModel.toggleImageAttributes.bind(this.viewModel)),this._rootActionTitleToFocus=null,this._actionTitleToFocus=null,this._focusPendingAction=e=>{let t=this._actionTitleToFocus;if(!t)return;let n=[...e.querySelectorAll(`calcite-action`)].find(e=>e.getAttribute(`title`)===t);n&&(this._actionTitleToFocus=null,Z(n))},this.navigate=async e=>{let t=null;try{let{currentNode:n}=this.viewModel;if(!n)throw new K;t=await this.viewModel.navigate(n,e)}catch(e){l(e)||c.getLogger(this).error(`Error occurred while navigating`,e),[`NoImageInSequenceError`,`NoSequenceFoundError`].includes(e.name)&&this._set(`noImageInSequenceError`,!0)}return t},this.reset=()=>{this._closeAllImageTools(),this.viewModel.reset()},this._loadImageFromGallery=this._loadImageFromGallery.bind(this),this._registerGalleryItem=this._registerGalleryItem.bind(this),this._unregisterGalleryItem=this._unregisterGalleryItem.bind(this),this.loadImageFromSource=this.loadImageFromSource.bind(this),this.updateSuitabilities=this.updateSuitabilities.bind(this),this._handleVideoBrightnessChange=this._handleVideoBrightnessChange.bind(this),this._handleVideoContrastChange=this._handleVideoContrastChange.bind(this),this._handleBrightnessChange=this._handleBrightnessChange.bind(this),this._handleContrastChange=this._handleContrastChange.bind(this),this._handleSharpnessChange=this._handleSharpnessChange.bind(this),this._handleSuperimposeZOffsetChange=this._handleSuperimposeZOffsetChange.bind(this),this._toggleSuperimposeCameraLock=this._toggleSuperimposeCameraLock.bind(this),this._resetSuperimposeOffset=this._resetSuperimposeOffset.bind(this),this._resetVideoTools=this._resetVideoTools.bind(this),this._toggleEnhancementToolState=this._toggleEnhancementToolState.bind(this),this.announceDeprecation=()=>{o(c.getLogger(this),`Oriented Imagery Viewer`,`arcgis-oriented-imagery-viewer`,{version:`5.0`})}}initialize(){this.addHandles([u(()=>[this.viewModel?.bestFeatureAngle,this._navigationTool],([e,t])=>{t&&this._updateNavigationTool(t)},d),u(()=>this.currentCoverageVisible,e=>this._onCurrentCoverageVisibilityChange(e)),u(()=>this.isAdditionalCoverageVisible,e=>this._onAdditionalCoverageVisibilityChange(e)),u(()=>this.isAdditionalPointSourcesVisible,e=>this._onAdditionalCameraLocationsVisibility(e)),u(()=>this.superimposeViewEnabled,e=>{e?(this._closeAllImageTools(),this.selectedGroup=null,this.shouldShowSelectedImage=!1,this._disableExploreImages3D()):this._resetSuperimposeOffset()}),u(()=>({features:this.currentBestFeature,overlaysEnabled:this._imageOverlaysEnabled,showCameraLocations:this.showCameraLocations}),({overlaysEnabled:e,showCameraLocations:t})=>{e&&this.viewModel.overlayCameraLocations(t)},f),u(()=>({feature:this.currentBestFeature,overlaysEnabled:this._imageOverlaysEnabled,showMapFeatures:this.showMapFeatures}),async(e,t)=>{e.showMapFeatures!==t?.showMapFeatures&&await this.viewModel.toggleAllOverlayMapFeatures(e.showMapFeatures);let n=e.feature&&e.feature!==t?.feature,r=!e.overlaysEnabled&&!!t?.overlaysEnabled,i=e.overlaysEnabled&&!t?.overlaysEnabled,a=this.viewModel.mode===`video`||this.viewModel.mode===`panoramic-video`;r&&a?(this.viewModel.removeAllOverlayMapFeatures(),this.viewModel.mode===`video`&&this.viewModel.videoViewModel?.clearOverlayGraphics()):(n||i)&&(n&&(this._resetSuperimposeOffset(),this.viewModel.removeAllOverlayMapFeatures()),e.overlaysEnabled&&(this.dataCaptureLayer&&this.stopDataCapture(),await this._restoreOverlays(),this.dataCaptureLayer&&(await this.startDataCapture(this.dataCaptureLayer),this._previousAction?.active&&(this._previousAction.active=!1,this._previousAction=null))))},d),p(()=>this.viewModel,`popup-open`,async e=>{await this.view?.openPopup(e)},m),p(()=>this.viewModel,`popup-close`,()=>{this.view?.closePopup()},m),this._toggleImageAttributes])}loadDependencies(){return Promise.all([U(),V(),se({"action-bar":()=>import(`@esri/calcite-components/dist/components/calcite-action-bar`),"action-group":()=>import(`@esri/calcite-components/dist/components/calcite-action-group`),action:()=>import(`@esri/calcite-components/dist/components/calcite-action`),block:()=>import(`@esri/calcite-components/dist/components/calcite-block`),list:()=>import(`@esri/calcite-components/dist/components/calcite-list`),"list-item":()=>import(`@esri/calcite-components/dist/components/calcite-list-item`),panel:()=>import(`@esri/calcite-components/dist/components/calcite-panel`),shell:()=>import(`@esri/calcite-components/dist/components/calcite-shell`),dialog:()=>import(`@esri/calcite-components/dist/components/calcite-dialog`),slider:()=>import(`@esri/calcite-components/dist/components/calcite-slider`),notice:()=>import(`@esri/calcite-components/dist/components/calcite-notice`),"shell-panel":()=>import(`@esri/calcite-components/dist/components/calcite-shell-panel`),switch:()=>import(`@esri/calcite-components/dist/components/calcite-switch`)}),F()])}destroy(){this._galleryController.abort(),this._galleryObserver.disconnect(),this.currentBestFeature=null}get accuracyParametersMissing(){return this.viewModel.accuracyParametersMissing}get activeLayer(){return s(c.getLogger(this),`activeLayer`,{replacement:`layer`}),this.layer}set activeLayer(e){s(c.getLogger(this),`activeLayer`,{replacement:`layer`}),this.layer=e}get activeVideoIcon(){let{videoElement:e,videoViewModel:t}=this.viewModel;return!e?.loaded||!t||t.videoPaused?`play`:`pause`}get activeAudioIcon(){let{videoElement:e,videoViewModel:t}=this.viewModel;return e?.loaded&&t?.videoMuted?`sound-off`:`sound`}get cameraHeadingThreshold(){return this.viewModel.cameraHeadingThreshold}set cameraHeadingThreshold(e){this.viewModel.cameraHeadingThreshold=e}get cameraPitchThreshold(){return this.viewModel.cameraPitchThreshold}set cameraPitchThreshold(e){this.viewModel.cameraPitchThreshold=e}get canNavigateSequentially(){return!!this.layer?.effectiveSequenceOrderField?.length}get currentBestFeature(){return this.viewModel.currentBestFeature}set currentBestFeature(e){this.viewModel.currentBestFeature=e}get currentCoverageVisible(){return this.viewModel.currentCoverageVisible}set currentCoverageVisible(e){this.viewModel.currentCoverageVisible=e}get dataCaptureLayer(){return this.viewModel.dataCaptureLayer}set dataCaptureLayer(e){this.viewModel.dataCaptureLayer=e}get depthImageNotSupported(){return this.viewModel.depthImageNotSupported}get disabled(){return this.viewModel.disabled}set disabled(e){this.viewModel.disabled=e}get displayMessage(){return this.viewModel.displayMessage}get enhancementToolActive(){return this.viewModel.mode===`video`?this.videoEnhancementToolActive:this.imageEnhancementToolActive}set enhancementToolActive(e){this.viewModel.mode===`video`?this.videoEnhancementToolActive=e:this.imageEnhancementToolActive=e}get features(){return this.viewModel.features}get imagePointsInView(){return this.viewModel.imagePointsInView}get icon(){return`oriented-imagery-widget`}set icon(e){this._overrideIfSome(`icon`,e)}get imageGalleryEnabled(){return this.viewModel.imageGalleryEnabled}get imageLocationToolActive(){return this.viewModel.imageLocationToolState}set imageLocationToolActive(e){this.viewModel.imageLocationToolState=e}get invalidCameraHeading(){return this.viewModel.invalidCameraHeading}get isAdditionalCoverageVisible(){return this.viewModel.isAdditionalCoverageVisible}set isAdditionalCoverageVisible(e){this.viewModel.isAdditionalCoverageVisible=e}get isAdditionalPointSourcesVisible(){return this.viewModel.isAdditionalPointSourcesVisible}set isAdditionalPointSourcesVisible(e){this.viewModel.isAdditionalPointSourcesVisible=e}get mapImageConversionToolState(){return this.viewModel.mapImageConversionToolState}set mapImageConversionToolState(e){this.viewModel.setMapImageConversionToolState(e)}get measureType(){return this.viewModel.measureType}set measureType(e){this.viewModel.measureType=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get navigationMode(){return this.viewModel.navigationMode}set navigationMode(e){this.viewModel.navigationMode=e}get popupEnabled(){let{popupEnabled:e,state:t}=this.viewModel;return(t===`image-loaded`||this.videoLoaded)&&e}get preloadMedia(){return this.viewModel.preloadMedia}set preloadMedia(e){this.viewModel.preloadMedia=e}get referencePoint(){return this.viewModel.referencePoint??null}get selectedFeatureObjectId(){return this.currentBestFeature?.attributes?.objectId??null}get selectedPoint(){return this.viewModel.selectedPoint}get sketchViewModel(){return this.viewModel.sketch}get triangularMeasurementActive(){return this.viewModel.triangularMeasurementActive}set triangularMeasurementActive(e){this.viewModel.triangularMeasurementActive=e}get videoLoaded(){let{mode:e,videoElement:t,panoramicVideoLoaded:n}=this.viewModel;return(e===`video`&&t?.loaded===!0||n)??!1}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}set determineWorkflowForFeature(e){this.viewModel.determineWorkflowForFeature=e}get determineWorkflowForFeature(){return this.viewModel.determineWorkflowForFeature}get shouldShowSelectedImage(){return this.viewModel.shouldShowSelectedImage}set shouldShowSelectedImage(e){this.viewModel.shouldShowSelectedImage=e}get superimposeViewEnabled(){return this.viewModel.superimposeViewEnabled}set superimposeViewEnabled(e){this.viewModel.superimposeViewEnabled=e}get defaultSuperimposeCameraLockEnabled(){return this.viewModel.defaultSuperimposeCameraLockEnabled}set defaultSuperimposeCameraLockEnabled(e){this.viewModel.defaultSuperimposeCameraLockEnabled=e}set updateFootprint(e){this.viewModel.updateFootprint=e}get updateFootprint(){return this.viewModel.updateFootprint}get verticalFilterEnabled(){return this.viewModel.verticalFilterEnabled}set verticalFilterEnabled(e){this.viewModel.verticalFilterEnabled=e}get _actionBarLayout(){return this.actionBarPosition===`start`||this.actionBarPosition===`end`?`vertical`:`horizontal`}_renderActionBar(){let{selectedGroup:e,superimposeViewEnabled:n}=this,r=this._actionBarLayout;if(n)return X(`calcite-action-bar`,{"data-testid":`action-bar--superimpose`,expandToggleDisabled:!0,layout:r,slot:`action-bar`},X(`calcite-action-group`,{overlayPositioning:`fixed`},this._superimposeViewToggle()));let i=t();return X(`calcite-action-bar`,{afterUpdate:this._focusPendingAction,"data-testid":`action-bar`,expandToggleDisabled:!0,layout:r,slot:`action-bar`},!e&&X(`calcite-action-group`,{key:`main`,overlayPositioning:`fixed`},this._searchGroupToggle(),this._overlaysGroupToggle(),this._navigationGroupToggle(),this._measurementsGroupToggle(),this._utilitiesGroupToggle()),this._renderGroupBackAction(i),e===`overlays`&&X(`calcite-action-group`,{key:`overlays`,overlayPositioning:`fixed`},this._currentFootprintToggle(),this._additionalFootprintToggle(),this._additionalPointSourcesToggle(),this._mapImageConversionToggle(),this._imageOverlaysToggle()),e===`navigation`?this._directionToolsToggle():null,e===`navigation`&&X(`calcite-action-group`,{key:`context-navigation`,overlayPositioning:`fixed`},this._navigationToolToggle(),this._imageGalleryToggle()),e===`measurements`&&this._measurementToolToggle(),e===`utilities`&&X(`calcite-action-group`,{overlayPositioning:`fixed`},this._imageEnhancementsToggle(),this._videoEnhancementsToggle(),this._superimposeViewToggle(),this._openPopupAction()),e===`search`&&X(`calcite-action-group`,{key:`search`,overlayPositioning:`fixed`},this._exploreImagesToggle(),this._exploreImages3DToggle(),this._showSelectedImageToggle()))}_renderGroupBackAction(e){return this.selectedGroup?X(`calcite-action`,{bind:this,icon:e?`arrow-right`:`arrow-left`,key:`back-arrow`,text:this.messages.previous,title:this.messages.previous,onclick:()=>this._toggleGroupSelection(null)}):null}get _activeMeasurementHeading(){let{measureType:e,messages:t,triangularMeasurementActive:n}=this,{groundArea:r,heightAboveGround:i,groundDistance:a,triangulatedAreaHeading:o,triangulatedDistanceHeading:s}=t;if(n)return e===`area`?o:s;switch(e){case`area`:return r;case`height`:return i;default:return a}}_additionalFootprintToggle(){let{isAdditionalCoverageVisible:e,invalidCameraHeading:t,visibleElements:{additionalFootprintToggle:n}}=this;return n?X(`calcite-action`,{active:e,bind:this,class:T.addCoverage,disabled:t,icon:`trapezoid-area`,text:this.messages.additionalFootprints,title:this.messages.additionalFootprints,onclick:this._toggleAdditionalCoverage}):null}_additionalPointSourcesToggle(){let{isAdditionalPointSourcesVisible:e,invalidCameraHeading:t,visibleElements:{additionalCameraLocationsToggle:n}}=this;return n?X(`calcite-action`,{active:e,bind:this,class:T.addExpPoints,disabled:t,icon:`circle-area`,text:this.messages.additionalCameraLocations,title:this.messages.additionalCameraLocations,onclick:this._toggleAdditionalCameraLocations}):null}get _measurementToggle(){let{viewModel:{state:e,measureType:t,currentBestFeatureMeasurementImage:n},triangularMeasurementActive:r,id:i}=this;if(e!==`image-loaded`||!t||r&&!n)return;this._imageMeasurementToolsLoaderTask||this._loadImageMeasurementResources();let a=this._imageMeasurementToolsLoaderTask?.value;return a?X(`calcite-dialog`,{bind:this,dragEnabled:!0,escapeDisabled:!0,heading:this._activeMeasurementHeading,id:`${i}-${t}-measurement`,open:!0,placement:`bottom-start`,resizable:!0,scale:`s`,slot:`dialogs`,width:`s`,onCalciteDialogBeforeClose:this._clearMeasurements},X(a,{measurementType:t,measurementUnitMessages:this.measurementUnitMessages,messages:this.messages,oiViewModel:this.viewModel})):null}get _renderRoot(){let{viewModel:{state:e},triangularMeasurementActive:t}=this;return X(`calcite-panel`,{bind:this,class:t?T.viewerContainerMeasurement:T.viewerContainer,heading:this.visibleElements.header?this.messages.title:void 0,loading:e.includes(`loading`)&&!t},X(`calcite-shell`,null,this.visibleElements.menu?X(`calcite-shell-panel`,{collapsed:!0,displayMode:`dock`,slot:`panel-${this.actionBarPosition}`},this._renderActionBar()):null,X(`calcite-panel`,null,this._imageViewer,this._panoramicViewer,this._panoramicVideoViewer,this._videoViewer,this._messageBox,this.invalidCameraHeading?null:[this._imageGalleryPanel,this._renderNavigation,this._imageOverlaysPanel()],this._exploreImages3DTools,this._imageEnhancementTools,this._videoEnhancementTools,this._superimposeTools,this._renderSketch(),this._navigationUI),this._imageViewerTriangular,this._measurementToggle,this._locationToggle,this.invalidCameraHeading?this._renderWarning(this.messages.invalidCameraHeadingWarningTitle,this.messages.invalidCameraHeadingWarningDescription):null,this.depthImageNotSupported?this._renderWarning(this.messages.depthImageNotSupportedTitle,this.messages.depthImageNotSupportedDescription):null,this.noImageInSequenceError?this._renderWarning(this.messages.sequentialNavigationWarning,this.messages.sequentialNavigationWarning,this._closeImageSequenceAlert):null))}_currentFootprintToggle(){let{currentCoverageVisible:e,invalidCameraHeading:t}=this,{currentFootprintToggle:n}=this.visibleElements;return n?X(`calcite-action`,{active:e,bind:this,class:T.currentCoverage,disabled:t,icon:`trapezoid-area`,text:this.messages.currentFootprint,title:this.messages.currentFootprint,onclick:this._toggleCurrentCoverage}):null}_exploreImagesToggle(){let{exploreImages:e}=this.messages;return this.visibleElements.exploreImages?X(`calcite-action`,{active:!this.disabled,bind:this,icon:`oriented-imagery-widget`,text:e,title:e,onclick:this._toggleExploreImages}):null}get _imageEnhancementTools(){let{enhancementToolActive:e,viewModel:{brightness:t,contrast:n,sharpness:r,state:i}}=this;return e&&i===`image-loaded`?X(`calcite-panel`,{bind:this,class:T.imageEnhancementWrapper,closable:!0,closed:!e,heading:this.messages.imageEnhancement,key:this.messages.imageEnhancement,onCalcitePanelClose:this._toggleEnhancementToolState},X(`div`,{class:T.imageEnhancementTools},W({title:this.messages.brightness,value:t,handleChange:this._handleBrightnessChange}),W({title:this.messages.contrast,value:n,handleChange:this._handleContrastChange}),W({title:this.messages.sharpness,value:r,max:1,min:0,ticks:.5,step:.1,handleChange:this._handleSharpnessChange})),X(`calcite-action`,{bind:this,icon:`reset`,slot:`header-actions-end`,text:this.messagesCommon.reset,title:this.messagesCommon.reset,onclick:this._resetImageTools})):null}get _videoEnhancementTools(){let{enhancementToolActive:e,viewModel:{videoViewModel:t,mode:n},messages:{videoEnhancement:r,brightness:i,contrast:a},messagesCommon:{reset:o}}=this;return!e||n!==`video`||!t?null:X(G,{brightness:t.videoBrightness,contrast:t.videoContrast,handleBrightnessChange:this._handleVideoBrightnessChange,handleContrastChange:this._handleVideoContrastChange,resetTools:this._resetVideoTools,uiStrings:{videoEnhancement:r,brightness:i,contrast:a,reset:o},videoEnhancementToolActive:e,onClose:this._toggleEnhancementToolState})}get _superimposeTools(){let{superimposeViewEnabled:e,view:t,viewModel:{state:n,mode:r},messages:{superimposeSettings:i,superimposeSliderTitle:a,superimposeSliderTooltip:o}}=this,s=r===`panoramic`;return!e||t?.type!==`3d`||n!==`image-loaded`?null:X(`calcite-panel`,{bind:this,class:this.classes(T.imageEnhancementWrapper,T.superimposeTools),heading:i,key:`superimpose-settings`},X(`div`,{class:T.imageEnhancementTools},W({title:a,tooltip:o,value:s?this._panoramicSuperimposeRadiusOffsetPercentage:this._defaultSuperimposeZOffsetPercentage,max:100,min:0,ticks:10,step:1,handleChange:this._handleSuperimposeZOffsetChange})),X(`calcite-action`,{bind:this,icon:`reset`,slot:`header-actions-end`,text:this.messagesCommon.reset,title:this.messagesCommon.reset,onclick:this._resetSuperimposeOffset}))}_imageEnhancementsToggle(){let{state:e,mode:t}=this.viewModel,{enhancementTool:n}=this.visibleElements;return!n||t===`video`?null:X(`calcite-action`,{active:this.enhancementToolActive,bind:this,disabled:t!=="default"||e!==`image-loaded`,icon:`sliders-horizontal`,text:this.messages.imageEnhancement,title:this.messages.imageEnhancement,onclick:this._toggleEnhancementToolState})}_exploreImages3DToggle(){let{exploreImages3D:e}=this.messages,t=this.view?.type!==`3d`||!this.layer?.hasZ,n=this.verticalFilterEnabled||this.viewModel.frustumSearchEnabled;return this.visibleElements.exploreImages3D?X(`calcite-action`,{active:n,bind:this,disabled:t,icon:`3d-search`,text:e,title:e,onclick:this._toggleExploreImages3DMenu}):null}get _exploreImages3DTools(){let{frustumRange:e,search3DFilters:t,verticalRange:n}=this.messages,r=this.verticalFilterEnabled,i=this.viewModel.frustumSearchEnabled;return!this.visibleElements.exploreImages3D||!this._exploreImages3DMenuOpen?null:X(`calcite-panel`,{bind:this,class:T.submenu,closed:!this._exploreImages3DMenuOpen,collapsed:this._exploreImages3DCollapsed,collapseDirection:`up`,collapsible:!0,heading:t,key:`explore-images-3d-tools`,onCalcitePanelToggle:this._toggleExploreImages3DPanel},X(`calcite-list`,{label:t,scale:`s`},X(`calcite-list-item`,{bind:this,label:n},X(`calcite-switch`,{checked:r,scale:`s`,slot:`content-start`,onCalciteSwitchChange:e=>this._toggleExploreImages3DSelection(`3d`,e)})),X(`calcite-list-item`,{bind:this,label:e},X(`calcite-switch`,{checked:i,scale:`s`,slot:`content-start`,onCalciteSwitchChange:e=>this._toggleExploreImages3DSelection(`frustum`,e)}))))}_showSelectedImageToggle(){let{displayImages:e}=this.messages,t=this.viewModel.mode.includes(`video`);return this.visibleElements.showSelectedImage?X(`calcite-action`,{active:this.shouldShowSelectedImage,bind:this,disabled:t,icon:`show-oriented-imagery`,text:e,title:e,onclick:this._toggleShowSelectedImage}):null}_superimposeViewToggle(){let{superimposeView:e}=this.messages,{mode:t,accuracyParametersMissing:n}=this.viewModel,r=!this.superimposeViewEnabled&&(this.view?.type!==`3d`||t.includes(`video`)||n);return this.visibleElements.superimpose?X(`calcite-action`,{active:this.superimposeViewEnabled,bind:this,disabled:r,icon:`superimpose`,text:e,title:e,onclick:this._toggleSuperimposeView}):null}_videoEnhancementsToggle(){let{mode:e}=this.viewModel,{videoEnhancement:t}=this.messages,{enhancementTool:n}=this.visibleElements;return!n||e!==`video`?null:X(`calcite-action`,{active:this.enhancementToolActive,bind:this,disabled:e!==`video`,icon:`sliders-horizontal`,text:t,title:t,onclick:this._toggleEnhancementToolState})}get _imageGalleryPanel(){let{container:e,galleryOpened:t,imageGalleryEnabled:n}=this;return n&&t&&e?this._imageGalleryContext:null}get _imageGalleryContext(){let{galleryOpened:e,invalidCameraHeading:t}=this;return X(`calcite-panel`,{bind:this,class:T.carousel,closable:!0,closed:!e,disabled:t,heading:this.messages.imageGallery,key:this.messages.imageGallery,onCalcitePanelClose:this._toggleImageGallery},X(`div`,{class:T.carouselContainer},this._renderThumbnails))}_imageGalleryToggle(){let{imageGalleryEnabled:e,invalidCameraHeading:t,visibleElements:{imageGallery:n}}=this;return n?X(`calcite-action`,{active:this.galleryOpened,bind:this,disabled:!e||t,icon:`images`,text:this.messages.imageGallery,title:this.messages.imageGallery,onclick:this._toggleImageGallery}):null}get _imageOverlaysComponent(){let{_imageOverlayMessages:e,_imageOverlaysLoaderTask:t,_overlayedLayers:n,dataCaptureEnabled:r,dataCaptureLayer:a,imageOverlaysOpened:o,showCameraLocations:s,showMapFeatures:c,view:l,layer:u}=this,d=r&&!this.viewModel.mode.includes(`video`);if(!u)return null;let f=u.imageGeometryField?.length?u.imageGeometryField:x,p=u.imageReferenceField?.length?u.imageReferenceField:ie;t||(this._imageOverlaysLoaderTask=i(async()=>(await import(`./OrientedImageryViewer/components/ImageOverlays.js`)).default));let m=this._imageOverlaysLoaderTask?.value;return m?X(m,{closed:!o,dataCaptureEnabled:d,dataCaptureLayer:a,imageGeometryField:f,imageReferenceField:p,messages:e,overlayedLayers:n,showCameraLocations:s,showMapFeatures:c,view:l,onDataCaptureLayerChanged:this._handleDataCaptureLayerChange,onFilterCapturedFeatures:this.viewModel.filterCapturedFeatures,onImageOverlaysClosed:this._onImageOverlayClosed,onLayerDeselected:this._handleOverlayLayerDeselect,onLayerSelected:this._handleOverlayLayerSelect,onShowCameraLocationsChanged:this._onShowCameraLocationsChanged,onShowMapFeaturesChanged:this._onShowMapFeaturesChanged}):null}get _navigationUI(){let{navigationMode:e,viewModel:t}=this,{mode:n,state:r}=t;if(!(!e||n!=="default"&&n!==`panoramic`||r!==`image-loaded`))return e===`directional`?n==="default"?X(z,{cameraHeadingThreshold:this.cameraHeadingThreshold,cameraPitchThreshold:this.cameraPitchThreshold,currentNode:this.viewModel.currentNode,navigate:this._createNavigationTask,nodes:this.viewModel.navigationNodes,preserveAngle:this.viewModel.preserveAngle}):X(B,{currentNode:this.viewModel.currentNode,navigate:this._createNavigationTask,nodes:this.viewModel.navigationNodes}):X(H,{layout:`horizontal`,uiStrings:{end:this.messages.end,next:this.messages.next,previous:this.messages.previous,start:this.messages.start},onNext:this._navigateNext,onPrev:this._navigatePrevious})}get _imageOverlayMessages(){return{...this.messages,...this.messagesSketch}}get _imageSketchToolsMessages(){return{...this.messagesCommon,...this.messagesSketch}}_imageOverlaysPanel(){let{imageOverlaysOpened:e}=this,t=this.classes({[T.imageOverlaysContainer]:!0,[q.hidden]:!e||!this._imageOverlaysEnabled});return X(`div`,{class:t,key:this.messages.imageOverlays},this._imageOverlaysComponent)}_imageOverlaysToggle(){let{imageOverlaysOpened:e,invalidCameraHeading:t,visibleElements:{imageOverlays:n}}=this;return n?X(`calcite-action`,{active:e,bind:this,disabled:!this._imageOverlaysEnabled||t,icon:`layers`,text:this.messages.imageOverlays,title:this.messages.imageOverlays,onclick:this._toggleImageOverlays}):null}get _imageOverlaysEnabled(){return this.viewModel.overlayGraphicsEnabled}get _imageViewer(){let{displayMessage:e,loadImageViewer:t,mode:n,clickAction:r,state:i}=this.viewModel,a=e!=null||n!=="default"||i.includes(`loading`);return X(R,{afterCreate:t,clickAction:r,visible:!a})}get _imageViewerTriangular(){let{messages:e,triangularMeasurementActive:t}=this,{displayMessage:n,storeImageMeasurementViewer:r,storePanoramicMeasurementViewer:i,mode:a,state:o,clickAction:s}=this.viewModel,c=n!=null||a===`none`||a===`video`,l=this.classes({[T.viewer]:!c,[T.viewerHidden]:c});return t?X(`calcite-panel`,{class:T.viewerContainerMeasurement,heading:e.measurementViewerHeading,loading:o.includes(`loading`)},X(`calcite-panel`,{bind:this,class:l},a==="default"?X(R,{afterCreate:r,clickAction:s,uiStrings:e}):X(_,{afterCreate:i,clickAction:s,uiStrings:e}))):null}_utilitiesGroupToggle(){let{utilityTools:e}=this.messages;return this.visibleElements.utilityTools?X(`calcite-action`,{bind:this,icon:`tools`,key:`utilities-group-toggle`,text:e,title:e,onclick:e=>this._toggleGroupSelection(`utilities`,e)}):null}_searchGroupToggle(){let{searchTools:e}=this.messages;return this.visibleElements.searchTools?X(`calcite-action`,{bind:this,icon:`search`,key:`search-group-toggle`,text:e,title:e,onclick:e=>this._toggleGroupSelection(`search`,e)}):null}get _videoViewer(){let{mode:e,loadVideoViewer:t,videoViewModel:n}=this.viewModel,{control:r,reset:i}=this.messagesCommon,{mute:a,unmute:o}=this.messages,s=e!==`video`,c=this.classes({[T.viewer]:!s,[T.viewerHidden]:s}),l=`esri-image-viewer`,u=`${l}__slider-container`;return X(`calcite-panel`,{bind:this,class:c},X(`calcite-panel`,{afterCreate:t,class:this.classes(q.widget,l)}),X(`calcite-block`,{class:u,expanded:!0},X(`calcite-slider`,{bind:this,labelHandles:!0,labelTicks:!0,max:n?.videoDuration,minLabel:`0`,value:n?.currentTime??0,onCalciteSliderChange:this._handleVideoSeek})),X(`calcite-action-bar`,{"data-testid":`action-bar--video-controls`,expandToggleDisabled:!0,layout:`horizontal`},X(`calcite-action-group`,{overlayPositioning:`fixed`},X(`calcite-action`,{bind:this,icon:this.activeVideoIcon,text:`Play`,title:n?.videoPaused?r.play:r.pause,onclick:()=>n?.playVideoHandler()})),X(`calcite-action-group`,{overlayPositioning:`fixed`},X(`calcite-action`,{bind:this,icon:`refresh`,text:`Rewind`,title:i,onclick:()=>n?.rewindVideoHandler()})),X(`calcite-action-group`,{overlayPositioning:`fixed`},X(`calcite-action`,{bind:this,icon:this.activeAudioIcon,text:`Audio`,title:n?.videoMuted?a:o,onclick:()=>n?.toggleAudio()}))))}get _locationToggle(){let{viewModel:{state:e,groundCoordinates:t,groundCoordinatesAccuracy:n,groundCoordinatesAccuracyLoading:r,triangulatedPoint:i},imageLocationToolActive:a,triangularMeasurementActive:o,messages:{groundLocation:s,triangulatedLocationHeading:c}}=this;if(e!==`image-loaded`||!t||!a)return;let l=t;if(o){if(!i)return;l=i}return X(`calcite-dialog`,{bind:this,dragEnabled:!0,escapeDisabled:!0,heading:o?c:s,id:s,open:!0,placement:`bottom-start`,resizable:!0,scale:`s`,slot:`dialogs`,width:`s`,onCalciteDialogBeforeClose:this._clearImageLocation},X(L,{accuracy:n,accuracyLoading:r,groundCoordinates:l,messages:this.messages}))}_mapImageConversionToggle(){let{mapImageConversionToolState:e,viewModel:{state:t,disabled:n},videoLoaded:r,invalidCameraHeading:i,visibleElements:{mapImageConversionTool:a}}=this,o=!!(this.viewModel.mode===`video`&&r&&this.viewModel.videoViewModel?.videoPaused),s=this.viewModel.mode===`panoramic-video`&&this.viewModel.panoramicVideoLoaded&&this.viewModel.panoramicVideoPaused,c=t!==`image-loaded`&&!o&&!s||i||n;return a?X(`calcite-action`,{active:e,bind:this,disabled:c,icon:`image-pin`,text:this.messages.mapImageConversionTool,title:this.messages.mapImageConversionTool,onclick:this._toggleMapImageConversionToolState}):null}_measurementToolToggle(){let{measureType:e,viewModel:t,accuracyParametersMissing:n,messages:r,triangularMeasurementActive:i}=this,{state:a}=t,{groundDistance:o,groundArea:s,heightAboveGround:c,groundLocation:l,triangulatedDistanceHeading:u,triangulatedAreaHeading:d,triangulatedLocationHeading:f}=r,p=a!==`image-loaded`||n,m=this._actionBarLayout;return X(`calcite-action-group`,{key:`measurement-tools`,layout:m,overlayPositioning:`fixed`,scale:`m`},X(`calcite-action`,{active:e===`distance`&&!i,bind:this,disabled:p,icon:`measure-line`,key:`distance-measurement`,text:o,title:o,onclick:e=>this._toggleMeasurementSketch(e,`distance`)}),X(`calcite-action`,{active:e===`area`&&!i,bind:this,disabled:p,icon:`measure-area`,key:`area-measurement`,text:s,title:s,onclick:e=>this._toggleMeasurementSketch(e,`area`)}),X(`calcite-action`,{active:e===`height`,bind:this,disabled:p,icon:`measure-building-height-top-base`,key:`height-measurement`,text:c,title:c,onclick:e=>this._toggleMeasurementSketch(e,`height`)}),X(`calcite-action`,{active:this.imageLocationToolActive?!i:!1,bind:this,disabled:p,icon:`pin-tear`,key:`surface-location`,text:l,title:l,onclick:this._toggleLocationTool}),X(`calcite-action`,{active:i?this.imageLocationToolActive:!1,bind:this,disabled:p,icon:`dual-image-location`,key:`triangular-location`,text:f,title:f,onclick:this._toggleTriangularLocation}),X(`calcite-action`,{active:i?this.measureType===`distance`:!1,bind:this,disabled:p,icon:`dual-image-distance`,key:`triangular-distance`,text:u,title:u,onclick:this._toggleTriangularDistanceMeasurements}),X(`calcite-action`,{active:i?this.measureType===`area`:!1,bind:this,disabled:p,icon:`dual-image-area`,key:`triangular-area`,text:d,title:d,onclick:this._toggleTriangularAreaMeasurements}))}get _messageBox(){let{messages:e,viewModel:{displayMessage:t,mode:r}}=this;if(!t||r===`video`)return null;let{key:i,map:a,type:o}=t,s=`${a?n(e[i],a):e[i]}`,c=o===`error`?`danger`:o===`warn`?`warning`:`info`;return X(`calcite-notice`,{appearance:`transparent`,class:T.notice,icon:ce[c],kind:c,open:!0},X(`div`,{slot:`message`},s))}async _loadNavigationSettings(){return this._navigationSettingsLoaderTask||=i(async()=>(await import(`./OrientedImageryViewer/components/NavigationSettings.js`)).default),await this._navigationSettingsLoaderTask.promise}_measurementsGroupToggle(){let{measurementTools:e}=this.messages,{state:t,accuracyParametersMissing:n}=this.viewModel,r=t!==`image-loaded`||n;return this.visibleElements.measurementTools?X(`calcite-action`,{bind:this,disabled:r,icon:`measure-line`,key:`measurements-group-toggle`,text:e,title:e,onclick:e=>this._toggleGroupSelection(`measurements`,e)}):null}_navigationGroupToggle(){let{imageNavigation:e}=this.messages;return this.visibleElements.imageNavigationTools?X(`calcite-action`,{bind:this,icon:`absolute-direction`,key:`navigation-group-toggle`,text:e,title:e,onclick:e=>this._toggleGroupSelection(`navigation`,e)}):null}_navigationToolToggle(){let{state:e}=this.viewModel,{visibleElements:{navigationTool:t},videoLoaded:n}=this;return t?X(`calcite-action`,{active:this.navigationToolActive,bind:this,disabled:e!==`image-loaded`&&!n||this.invalidCameraHeading,icon:`explore`,text:this.messages.navigationTool,title:this.messages.navigationTool,onclick:this._toggleNavigationTool}):null}_directionToolsToggle(){let{messages:e,viewModel:t,visibleElements:n}=this,{directionalNavigation:r,sequentialNavigation:i}=n,{state:a}=t,{directionalNavigation:o,directionalNavigationDescription:s,sequentialNavigation:c,sequentialNavigationDescription:l}=e,u=this._actionBarLayout;return X(`calcite-action-group`,{key:`navigation-tools`,layout:u,overlayPositioning:`fixed`,scale:`m`},r?X(`calcite-action`,{active:this.navigationMode===`directional`,bind:this,disabled:a!==`image-loaded`||this.invalidCameraHeading,icon:`directional-navigation`,text:o,title:o+`
|
|
2
|
+
import{__decorate as e}from"tslib";import{prefersRTL as t,substitute as n}from"../intl.js";import{prefersReducedMotion as r}from"../core/a11yUtils.js";import{createTask as i}from"../core/asyncUtils.js";import a from"../core/Collection.js";import{deprecateWidget as o,deprecatedProperty as s}from"../core/deprecate.js";import c from"../core/Logger.js";import{isAbortError as l}from"../core/promiseUtils.js";import{watch as u,initial as d,syncAndInitial as f,on as p,sync as m}from"../core/reactiveUtils.js";import{throttle as h}from"../core/throttle.js";import{property as g,subclass as ee}from"../core/accessorSupport/decorators.js";import{or as te}from"../layers/orientedImagery/transformations/utils.js";import ne from"./Expand.js";import re from"./PanoramicVideoViewer.js";import _ from"./PanoramicViewer.js";import v from"./Widget.js";import{getAllArcPath as y}from"./OrientedImageryViewer/arcUtils.js";import{getDelegatedEvents as b,defaultImageGeometryField as x,defaultOIObjectIDField as ie,segmentArcs as S,featureCircleRadius as ae,navigationToolDimensionLength as C,sectorsRadii as w}from"./OrientedImageryViewer/constants.js";import{css as T,navigation as oe,navigationToolRotationFrom as E,navigationToolRotationTo as D,root as O}from"./OrientedImageryViewer/css.js";import{isFeatureAttachment as k,loadImageForAttachment as A,getThumbnailPixelBlock as j,renderImageWithRotation as M}from"./OrientedImageryViewer/galleryUtils.js";import N from"./OrientedImageryViewer/OrientedImageryViewerViewModel.js";import P from"./OrientedImageryViewer/OrientedImageryViewerVisibleElements.js";import{loadAlertComponents as F,Alert as I}from"./OrientedImageryViewer/components/Alert.js";import L from"./OrientedImageryViewer/components/ImageLocationWidget.js";import R from"./OrientedImageryViewer/components/ImageViewer.js";import z from"./OrientedImageryViewer/components/NavigationUI.js";import B from"./OrientedImageryViewer/components/NavigationUI360.js";import{loadSequentialNavigationUIComponents as V,SequentialNavigationUI as H}from"./OrientedImageryViewer/components/SequentialNavigationUI.js";import{loadVideoEnhancementComponents as U,renderEnhancementSlider as W,VideoEnhancementTools as G}from"./OrientedImageryViewer/components/VideoEnhancementTools.js";import{NoImageLoadedError as K}from"./OrientedImageryViewer/navigation/errors.js";import{loadCalciteComponents as se}from"./support/componentsUtils.js";import{globalCss as q}from"./support/globalCss.js";import{iconByKind as ce}from"./support/iconUtils.js";import{vmEvent as J,messageBundle as Y,tsx as X}from"./support/widget.js";import{setFocus as Z}from"./support/widgetUtils.js";const Q={overlayed:`overlayed`};let $=class extends v{constructor(e,t){super(e,t),this.actionBarPosition=`top`,this.dataCaptureEnabled=!1,this.galleryOpened=!1,this.imageEnhancementToolActive=!1,this.videoEnhancementToolActive=!1,this.imageOverlaysOpened=!1,this.navigationToolActive=!1,this.viewModel=new N,this.messagesCommon=null,this.messagesSketch=null,this.pixelMeasurementUnit=`meters`,this.pixelAreaMeasurementUnit=`square-meters`,this.selectedGroup=null,this.showCameraLocations=!1,this.showMapFeatures=!1,this.visibleElements=new P,this._defaultSuperimposeZOffsetPercentage=50,this._panoramicSuperimposeRadiusOffsetPercentage=50,this._exploreImages3DMenuOpen=!1,this._exploreImages3DCollapsed=!1,this._imageOverlaysLoaderTask=null,this._imageMeasurementToolsLoaderTask=null,this._navigationSettingsLoaderTask=null,this._navigationTask=null,this._clearMeasurements=()=>{this.viewModel.measureType=null,this.viewModel.triangularMeasurementActive=!1,this.viewModel.displayNewMeasurementButton=!0,this.viewModel.clearPreviousMeasurements()},this._clearImageLocation=()=>{this.imageLocationToolActive=!1,this.triangularMeasurementActive=!1},this._createNavigationTask=async e=>(this._navigationTask?.abort(),this._navigationTask=i(async t=>await this.navigate({...e,signal:t})),this._navigationTask.promise),this._navigateNext=async()=>await this._createNavigationTask({step:1}),this._navigatePrevious=async()=>await this._createNavigationTask({step:-1}),this._navigationToolExpanded=!1,this._navigationTool=null,this._galleryController=new AbortController,this._galleryObserver=new IntersectionObserver(this._lazyLoadImage.bind(this)),this._overlayedLayers=new a,this._previousAction=null,this._closeImageSequenceAlert=()=>{this._set(`noImageInSequenceError`,!1)},this._handleDataCaptureLayerChange=async e=>{if(this.dataCaptureLayer&&await this.stopDataCapture(!0),this.dataCaptureLayer=this.dataCaptureLayer===e?null:e,this.dataCaptureLayer)return this.startDataCapture(this.dataCaptureLayer)},this._handleNavigationSettingsInputChange=(e,t)=>{this.set(`${e}Threshold`,t)},this._handleNavigationSettingsToggle=e=>{this.viewModel.preserveAngle=e},this._handleOverlayLayerDeselect=e=>{let t=e.layer;t===this.dataCaptureLayer&&(this.stopDataCapture(),this.dataCaptureLayer=null),this.removeOverlayedGraphicsOnImage(`${t.id}`)},this._handleOverlayLayerSelect=e=>{let t=e.layer;this.viewModel.overlayMapFeatures(t,this.showMapFeatures),this.addHandles(u(()=>t.visible,()=>{this.viewModel.toggleOverlayMapFeatures(t.id,t.visible,this.showMapFeatures)}),`${Q.overlayed}-${t.id}`)},this._highlight=e=>{let t=e.target?.dataset.objectid;t&&this.viewModel.highlight(t)},this._onAction=e=>{let{target:t}=e,{dataset:{action:n}}=t,{_previousAction:r}=this,i=r?.dataset.action,a=i?.includes(`draw`)??!1,o=i===`select-feature`,s=i!==n;switch(n){case`draw-point`:case`draw-polygon`:case`draw-polyline`:{r&&te(o,a&&s)&&(r.active=!1),t.active=!t.active;let e=n.replace(`draw-`,``);this.viewModel.digitizeCreate(e),this._previousAction=t.active?t:null;break}case`save`:this.viewModel.saveDrawing();break;case`select-feature`:a&&(this._previousAction.active=!1),t.active=!t.active,this.viewModel.toggleSelection(t.active),this._previousAction=t.active?t:null;break;case`delete-feature`:this.viewModel.digitizeDelete()}},this._onImageOverlayClosed=e=>{e.stopPropagation(),this.imageOverlaysOpened=!1},this._onShowCameraLocationsChanged=e=>{this.showCameraLocations=e},this._onShowMapFeaturesChanged=e=>{this.showMapFeatures=e},this._removeHighlight=()=>this.viewModel.removeHighlight(),this._restoreOverlays=async()=>Promise.all(this._overlayedLayers.map(e=>this.viewModel.overlayMapFeatures(e,this.showMapFeatures))),this._scaleNavigationTool=()=>{this._navigationToolExpanded=!this._navigationToolExpanded},this._sketchLoaderTask=null,this._toggleExploreImages3DPanel=e=>{this._exploreImages3DCollapsed=e.target.collapsed},this._settingsToggle=null,this._toggleImageNavigation=async e=>{let t=this.navigationMode;this._closeAllImageTools(),this.navigationMode=t===e?null:e;let{activeViewer:n}=this.viewModel;if(!n)return;let{mode:r,preserveAngle:i}=this.viewModel;if(r==="default"){if(this.navigationMode===`directional`){let e=await this._loadNavigationSettings(),t=i===`heading`||i===`both`,n=i===`pitch`||i===`both`,{messages:r,messagesCommon:a}=this,o=new e({cameraHeadingThreshold:this.cameraHeadingThreshold,cameraPitchThreshold:this.cameraPitchThreshold,uiStrings:{configureNavigation:r.configureNavigation,preserveHeading:r.preserveHeading,preserveHeadingDescription:r.preserveHeadingDescription,preservePitch:r.preservePitch,preservePitchDescription:r.preservePitchDescription,settings:a.settings,thresholdLabel:r.thresholdLabel},onInputChange:this._handleNavigationSettingsInputChange,onToggle:this._handleNavigationSettingsToggle,preserveHeading:t,preservePitch:n});this._settingsToggle=new ne({content:o,expandIcon:`configure`}),this.viewModel.activeViewer?.ui.add(this._settingsToggle,{position:`top-left`})}else this._settingsToggle&&(this._settingsToggle.expanded=!1,this.viewModel.activeViewer?.ui.remove(this._settingsToggle))}},this._toggleImageAttributes=h(this.viewModel.toggleImageAttributes.bind(this.viewModel)),this._rootActionTitleToFocus=null,this._actionTitleToFocus=null,this._focusPendingAction=e=>{let t=this._actionTitleToFocus;if(!t)return;let n=[...e.querySelectorAll(`calcite-action`)].find(e=>e.getAttribute(`title`)===t);n&&(this._actionTitleToFocus=null,Z(n))},this.navigate=async e=>{let t=null;try{let{currentNode:n}=this.viewModel;if(!n)throw new K;t=await this.viewModel.navigate(n,e)}catch(e){l(e)||c.getLogger(this).error(`Error occurred while navigating`,e),[`NoImageInSequenceError`,`NoSequenceFoundError`].includes(e.name)&&this._set(`noImageInSequenceError`,!0)}return t},this.reset=()=>{this._closeAllImageTools(),this.viewModel.reset()},this._loadImageFromGallery=this._loadImageFromGallery.bind(this),this._registerGalleryItem=this._registerGalleryItem.bind(this),this._unregisterGalleryItem=this._unregisterGalleryItem.bind(this),this.loadImageFromSource=this.loadImageFromSource.bind(this),this.updateSuitabilities=this.updateSuitabilities.bind(this),this._handleVideoBrightnessChange=this._handleVideoBrightnessChange.bind(this),this._handleVideoContrastChange=this._handleVideoContrastChange.bind(this),this._handleBrightnessChange=this._handleBrightnessChange.bind(this),this._handleContrastChange=this._handleContrastChange.bind(this),this._handleSharpnessChange=this._handleSharpnessChange.bind(this),this._handleSuperimposeZOffsetChange=this._handleSuperimposeZOffsetChange.bind(this),this._toggleSuperimposeCameraLock=this._toggleSuperimposeCameraLock.bind(this),this._resetSuperimposeOffset=this._resetSuperimposeOffset.bind(this),this._resetVideoTools=this._resetVideoTools.bind(this),this._toggleEnhancementToolState=this._toggleEnhancementToolState.bind(this),this.announceDeprecation=()=>{o(c.getLogger(this),`Oriented Imagery Viewer`,`arcgis-oriented-imagery-viewer`,{version:`5.0`})}}initialize(){this.addHandles([u(()=>[this.viewModel?.bestFeatureAngle,this._navigationTool],([e,t])=>{t&&this._updateNavigationTool(t)},d),u(()=>this.currentCoverageVisible,e=>this._onCurrentCoverageVisibilityChange(e)),u(()=>this.isAdditionalCoverageVisible,e=>this._onAdditionalCoverageVisibilityChange(e)),u(()=>this.isAdditionalPointSourcesVisible,e=>this._onAdditionalCameraLocationsVisibility(e)),u(()=>this.superimposeViewEnabled,e=>{e?(this._closeAllImageTools(),this.selectedGroup=null,this.shouldShowSelectedImage=!1,this._disableExploreImages3D()):this._resetSuperimposeOffset()}),u(()=>({features:this.currentBestFeature,overlaysEnabled:this._imageOverlaysEnabled,showCameraLocations:this.showCameraLocations}),({overlaysEnabled:e,showCameraLocations:t})=>{e&&this.viewModel.overlayCameraLocations(t)},f),u(()=>({feature:this.currentBestFeature,overlaysEnabled:this._imageOverlaysEnabled,showMapFeatures:this.showMapFeatures}),async(e,t)=>{e.showMapFeatures!==t?.showMapFeatures&&await this.viewModel.toggleAllOverlayMapFeatures(e.showMapFeatures);let n=e.feature&&e.feature!==t?.feature,r=!e.overlaysEnabled&&!!t?.overlaysEnabled,i=e.overlaysEnabled&&!t?.overlaysEnabled,a=this.viewModel.mode===`video`||this.viewModel.mode===`panoramic-video`;r&&a?(this.viewModel.removeAllOverlayMapFeatures(),this.viewModel.mode===`video`&&this.viewModel.videoViewModel?.clearOverlayGraphics()):(n||i)&&(n&&(this._resetSuperimposeOffset(),this.viewModel.removeAllOverlayMapFeatures()),e.overlaysEnabled&&(this.dataCaptureLayer&&this.stopDataCapture(),await this._restoreOverlays(),this.dataCaptureLayer&&(await this.startDataCapture(this.dataCaptureLayer),this._previousAction?.active&&(this._previousAction.active=!1,this._previousAction=null))))},d),p(()=>this.viewModel,`popup-open`,async e=>{await this.view?.openPopup(e)},m),p(()=>this.viewModel,`popup-close`,()=>{this.view?.closePopup()},m),this._toggleImageAttributes])}loadDependencies(){return Promise.all([U(),V(),se({"action-bar":()=>import(`@esri/calcite-components/dist/components/calcite-action-bar`),"action-group":()=>import(`@esri/calcite-components/dist/components/calcite-action-group`),action:()=>import(`@esri/calcite-components/dist/components/calcite-action`),block:()=>import(`@esri/calcite-components/dist/components/calcite-block`),list:()=>import(`@esri/calcite-components/dist/components/calcite-list`),"list-item":()=>import(`@esri/calcite-components/dist/components/calcite-list-item`),panel:()=>import(`@esri/calcite-components/dist/components/calcite-panel`),shell:()=>import(`@esri/calcite-components/dist/components/calcite-shell`),dialog:()=>import(`@esri/calcite-components/dist/components/calcite-dialog`),slider:()=>import(`@esri/calcite-components/dist/components/calcite-slider`),notice:()=>import(`@esri/calcite-components/dist/components/calcite-notice`),"shell-panel":()=>import(`@esri/calcite-components/dist/components/calcite-shell-panel`),switch:()=>import(`@esri/calcite-components/dist/components/calcite-switch`)}),F()])}destroy(){this._galleryController.abort(),this._galleryObserver.disconnect(),this.currentBestFeature=null}get accuracyParametersMissing(){return this.viewModel.accuracyParametersMissing}get activeLayer(){return s(c.getLogger(this),`activeLayer`,{replacement:`layer`}),this.layer}set activeLayer(e){s(c.getLogger(this),`activeLayer`,{replacement:`layer`}),this.layer=e}get activeVideoIcon(){let{videoElement:e,videoViewModel:t}=this.viewModel;return!e?.loaded||!t||t.videoPaused?`play`:`pause`}get activeAudioIcon(){let{videoElement:e,videoViewModel:t}=this.viewModel;return e?.loaded&&t?.videoMuted?`sound-off`:`sound`}get cameraHeadingThreshold(){return this.viewModel.cameraHeadingThreshold}set cameraHeadingThreshold(e){this.viewModel.cameraHeadingThreshold=e}get cameraPitchThreshold(){return this.viewModel.cameraPitchThreshold}set cameraPitchThreshold(e){this.viewModel.cameraPitchThreshold=e}get canNavigateSequentially(){return!!this.layer?.effectiveSequenceOrderField?.length}get currentBestFeature(){return this.viewModel.currentBestFeature}set currentBestFeature(e){this.viewModel.currentBestFeature=e}get currentCoverageVisible(){return this.viewModel.currentCoverageVisible}set currentCoverageVisible(e){this.viewModel.currentCoverageVisible=e}get dataCaptureLayer(){return this.viewModel.dataCaptureLayer}set dataCaptureLayer(e){this.viewModel.dataCaptureLayer=e}get depthImageNotSupported(){return this.viewModel.depthImageNotSupported}get disabled(){return this.viewModel.disabled}set disabled(e){this.viewModel.disabled=e}get displayMessage(){return this.viewModel.displayMessage}get enhancementToolActive(){return this.viewModel.mode===`video`?this.videoEnhancementToolActive:this.imageEnhancementToolActive}set enhancementToolActive(e){this.viewModel.mode===`video`?this.videoEnhancementToolActive=e:this.imageEnhancementToolActive=e}get features(){return this.viewModel.features}get imagePointsInView(){return this.viewModel.imagePointsInView}get icon(){return`oriented-imagery-widget`}set icon(e){this._overrideIfSome(`icon`,e)}get imageGalleryEnabled(){return this.viewModel.imageGalleryEnabled}get imageLocationToolActive(){return this.viewModel.imageLocationToolState}set imageLocationToolActive(e){this.viewModel.imageLocationToolState=e}get invalidCameraHeading(){return this.viewModel.invalidCameraHeading}get isAdditionalCoverageVisible(){return this.viewModel.isAdditionalCoverageVisible}set isAdditionalCoverageVisible(e){this.viewModel.isAdditionalCoverageVisible=e}get isAdditionalPointSourcesVisible(){return this.viewModel.isAdditionalPointSourcesVisible}set isAdditionalPointSourcesVisible(e){this.viewModel.isAdditionalPointSourcesVisible=e}get mapImageConversionToolState(){return this.viewModel.mapImageConversionToolState}set mapImageConversionToolState(e){this.viewModel.setMapImageConversionToolState(e)}get measureType(){return this.viewModel.measureType}set measureType(e){this.viewModel.measureType=e}get layer(){return this.viewModel.layer}set layer(e){this.viewModel.layer=e}get navigationMode(){return this.viewModel.navigationMode}set navigationMode(e){this.viewModel.navigationMode=e}get popupEnabled(){let{popupEnabled:e,state:t}=this.viewModel;return(t===`image-loaded`||this.videoLoaded)&&e}get preloadMedia(){return this.viewModel.preloadMedia}set preloadMedia(e){this.viewModel.preloadMedia=e}get referencePoint(){return this.viewModel.referencePoint??null}get selectedFeatureObjectId(){return this.currentBestFeature?.attributes?.objectId??null}get selectedPoint(){return this.viewModel.selectedPoint}get sketchViewModel(){return this.viewModel.sketch}get triangularMeasurementActive(){return this.viewModel.triangularMeasurementActive}set triangularMeasurementActive(e){this.viewModel.triangularMeasurementActive=e}get videoLoaded(){let{mode:e,videoElement:t,panoramicVideoLoaded:n}=this.viewModel;return(e===`video`&&t?.loaded===!0||n)??!1}get view(){return this.viewModel.view}set view(e){this.viewModel.view=e}set determineWorkflowForFeature(e){this.viewModel.determineWorkflowForFeature=e}get determineWorkflowForFeature(){return this.viewModel.determineWorkflowForFeature}get shouldShowSelectedImage(){return this.viewModel.shouldShowSelectedImage}set shouldShowSelectedImage(e){this.viewModel.shouldShowSelectedImage=e}get superimposeViewEnabled(){return this.viewModel.superimposeViewEnabled}set superimposeViewEnabled(e){this.viewModel.superimposeViewEnabled=e}get defaultSuperimposeCameraLockEnabled(){return this.viewModel.defaultSuperimposeCameraLockEnabled}set defaultSuperimposeCameraLockEnabled(e){this.viewModel.defaultSuperimposeCameraLockEnabled=e}set updateFootprint(e){this.viewModel.updateFootprint=e}get updateFootprint(){return this.viewModel.updateFootprint}get verticalFilterEnabled(){return this.viewModel.verticalFilterEnabled}set verticalFilterEnabled(e){this.viewModel.verticalFilterEnabled=e}get _actionBarLayout(){return this.actionBarPosition===`start`||this.actionBarPosition===`end`?`vertical`:`horizontal`}_renderActionBar(){let{selectedGroup:e,superimposeViewEnabled:n}=this,r=this._actionBarLayout;if(n)return X(`calcite-action-bar`,{"data-testid":`action-bar--superimpose`,expandToggleDisabled:!0,layout:r,slot:`action-bar`},X(`calcite-action-group`,{overlayPositioning:`fixed`},this._superimposeViewToggle()));let i=t();return X(`calcite-action-bar`,{afterUpdate:this._focusPendingAction,"data-testid":`action-bar`,expandToggleDisabled:!0,layout:r,slot:`action-bar`},!e&&X(`calcite-action-group`,{key:`main`,overlayPositioning:`fixed`},this._searchGroupToggle(),this._overlaysGroupToggle(),this._navigationGroupToggle(),this._measurementsGroupToggle(),this._utilitiesGroupToggle()),this._renderGroupBackAction(i),e===`overlays`&&X(`calcite-action-group`,{key:`overlays`,overlayPositioning:`fixed`},this._currentFootprintToggle(),this._additionalFootprintToggle(),this._additionalPointSourcesToggle(),this._mapImageConversionToggle(),this._imageOverlaysToggle()),e===`navigation`?this._directionToolsToggle():null,e===`navigation`&&X(`calcite-action-group`,{key:`context-navigation`,overlayPositioning:`fixed`},this._navigationToolToggle(),this._imageGalleryToggle()),e===`measurements`&&this._measurementToolToggle(),e===`utilities`&&X(`calcite-action-group`,{overlayPositioning:`fixed`},this._imageEnhancementsToggle(),this._videoEnhancementsToggle(),this._superimposeViewToggle(),this._openPopupAction()),e===`search`&&X(`calcite-action-group`,{key:`search`,overlayPositioning:`fixed`},this._exploreImagesToggle(),this._exploreImages3DToggle(),this._showSelectedImageToggle()))}_renderGroupBackAction(e){return this.selectedGroup?X(`calcite-action`,{bind:this,icon:e?`arrow-right`:`arrow-left`,key:`back-arrow`,text:this.messages.previous,title:this.messages.previous,onclick:()=>this._toggleGroupSelection(null)}):null}get _activeMeasurementHeading(){let{measureType:e,messages:t,triangularMeasurementActive:n}=this,{groundArea:r,heightAboveGround:i,groundDistance:a,triangulatedAreaHeading:o,triangulatedDistanceHeading:s}=t;if(n)return e===`area`?o:s;switch(e){case`area`:return r;case`height`:return i;default:return a}}_additionalFootprintToggle(){let{isAdditionalCoverageVisible:e,invalidCameraHeading:t,visibleElements:{additionalFootprintToggle:n}}=this;return n?X(`calcite-action`,{active:e,bind:this,class:T.addCoverage,disabled:t,icon:`trapezoid-area`,text:this.messages.additionalFootprints,title:this.messages.additionalFootprints,onclick:this._toggleAdditionalCoverage}):null}_additionalPointSourcesToggle(){let{isAdditionalPointSourcesVisible:e,invalidCameraHeading:t,visibleElements:{additionalCameraLocationsToggle:n}}=this;return n?X(`calcite-action`,{active:e,bind:this,class:T.addExpPoints,disabled:t,icon:`circle-area`,text:this.messages.additionalCameraLocations,title:this.messages.additionalCameraLocations,onclick:this._toggleAdditionalCameraLocations}):null}get _measurementToggle(){let{viewModel:{state:e,measureType:t,currentBestFeatureMeasurementImage:n},triangularMeasurementActive:r,id:i}=this;if(e!==`image-loaded`||!t||r&&!n)return;this._imageMeasurementToolsLoaderTask||this._loadImageMeasurementResources();let a=this._imageMeasurementToolsLoaderTask?.value;return a?X(`calcite-dialog`,{bind:this,dragEnabled:!0,escapeDisabled:!0,heading:this._activeMeasurementHeading,id:`${i}-${t}-measurement`,open:!0,placement:`bottom-start`,resizable:!0,scale:`s`,slot:`dialogs`,width:`s`,onCalciteDialogBeforeClose:this._clearMeasurements},X(a,{measurementType:t,measurementUnitMessages:this.measurementUnitMessages,messages:this.messages,oiViewModel:this.viewModel})):null}get _renderRoot(){let{viewModel:{state:e},triangularMeasurementActive:t}=this;return X(`calcite-panel`,{bind:this,class:t?T.viewerContainerMeasurement:T.viewerContainer,heading:this.visibleElements.header?this.messages.title:void 0,loading:e.includes(`loading`)&&!t},X(`calcite-shell`,null,this.visibleElements.menu?X(`calcite-shell-panel`,{collapsed:!0,displayMode:`dock`,slot:`panel-${this.actionBarPosition}`},this._renderActionBar()):null,X(`calcite-panel`,null,this._imageViewer,this._panoramicViewer,this._panoramicVideoViewer,this._videoViewer,this._messageBox,this.invalidCameraHeading?null:[this._imageGalleryPanel,this._renderNavigation,this._imageOverlaysPanel()],this._exploreImages3DTools,this._imageEnhancementTools,this._videoEnhancementTools,this._superimposeTools,this._renderSketch(),this._navigationUI),this._imageViewerTriangular,this._measurementToggle,this._locationToggle,this.invalidCameraHeading?this._renderWarning(this.messages.invalidCameraHeadingWarningTitle,this.messages.invalidCameraHeadingWarningDescription):null,this.depthImageNotSupported?this._renderWarning(this.messages.depthImageNotSupportedTitle,this.messages.depthImageNotSupportedDescription):null,this.noImageInSequenceError?this._renderWarning(this.messages.sequentialNavigationWarning,this.messages.sequentialNavigationWarning,this._closeImageSequenceAlert):null))}_currentFootprintToggle(){let{currentCoverageVisible:e,invalidCameraHeading:t}=this,{currentFootprintToggle:n}=this.visibleElements;return n?X(`calcite-action`,{active:e,bind:this,class:T.currentCoverage,disabled:t,icon:`trapezoid-area`,text:this.messages.currentFootprint,title:this.messages.currentFootprint,onclick:this._toggleCurrentCoverage}):null}_exploreImagesToggle(){let{exploreImages:e}=this.messages;return this.visibleElements.exploreImages?X(`calcite-action`,{active:!this.disabled,bind:this,icon:`oriented-imagery-widget`,text:e,title:e,onclick:this._toggleExploreImages}):null}get _imageEnhancementTools(){let{enhancementToolActive:e,viewModel:{brightness:t,contrast:n,sharpness:r,state:i}}=this;return e&&i===`image-loaded`?X(`calcite-panel`,{bind:this,class:T.imageEnhancementWrapper,closable:!0,closed:!e,heading:this.messages.imageEnhancement,key:this.messages.imageEnhancement,onCalcitePanelClose:this._toggleEnhancementToolState},X(`div`,{class:T.imageEnhancementTools},W({title:this.messages.brightness,value:t,handleChange:this._handleBrightnessChange}),W({title:this.messages.contrast,value:n,handleChange:this._handleContrastChange}),W({title:this.messages.sharpness,value:r,max:1,min:0,ticks:.5,step:.1,handleChange:this._handleSharpnessChange})),X(`calcite-action`,{bind:this,icon:`reset`,slot:`header-actions-end`,text:this.messagesCommon.reset,title:this.messagesCommon.reset,onclick:this._resetImageTools})):null}get _videoEnhancementTools(){let{enhancementToolActive:e,viewModel:{videoViewModel:t,mode:n},messages:{videoEnhancement:r,brightness:i,contrast:a},messagesCommon:{reset:o}}=this;return!e||n!==`video`||!t?null:X(G,{brightness:t.videoBrightness,contrast:t.videoContrast,handleBrightnessChange:this._handleVideoBrightnessChange,handleContrastChange:this._handleVideoContrastChange,resetTools:this._resetVideoTools,uiStrings:{videoEnhancement:r,brightness:i,contrast:a,reset:o},videoEnhancementToolActive:e,onClose:this._toggleEnhancementToolState})}get _superimposeTools(){let{superimposeViewEnabled:e,view:t,viewModel:{state:n,mode:r},messages:{superimposeSettings:i,superimposeSliderTitle:a,superimposeSliderTooltip:o}}=this,s=r===`panoramic`;return!e||t?.type!==`3d`||n!==`image-loaded`?null:X(`calcite-panel`,{bind:this,class:this.classes(T.imageEnhancementWrapper,T.superimposeTools),heading:i,key:`superimpose-settings`},X(`div`,{class:T.imageEnhancementTools},W({title:a,tooltip:o,value:s?this._panoramicSuperimposeRadiusOffsetPercentage:this._defaultSuperimposeZOffsetPercentage,max:100,min:0,ticks:10,step:1,handleChange:this._handleSuperimposeZOffsetChange})),X(`calcite-action`,{bind:this,icon:`reset`,slot:`header-actions-end`,text:this.messagesCommon.reset,title:this.messagesCommon.reset,onclick:this._resetSuperimposeOffset}))}_imageEnhancementsToggle(){let{state:e,mode:t}=this.viewModel,{enhancementTool:n}=this.visibleElements;return!n||t===`video`?null:X(`calcite-action`,{active:this.enhancementToolActive,bind:this,disabled:t!=="default"||e!==`image-loaded`,icon:`sliders-horizontal`,text:this.messages.imageEnhancement,title:this.messages.imageEnhancement,onclick:this._toggleEnhancementToolState})}_exploreImages3DToggle(){let{exploreImages3D:e}=this.messages,t=this.view?.type!==`3d`||!this.layer?.hasZ,n=this.verticalFilterEnabled||this.viewModel.frustumSearchEnabled;return this.visibleElements.exploreImages3D?X(`calcite-action`,{active:n,bind:this,disabled:t,icon:`3d-search`,text:e,title:e,onclick:this._toggleExploreImages3DMenu}):null}get _exploreImages3DTools(){let{frustumRange:e,search3DFilters:t,verticalRange:n}=this.messages,r=this.verticalFilterEnabled,i=this.viewModel.frustumSearchEnabled;return!this.visibleElements.exploreImages3D||!this._exploreImages3DMenuOpen?null:X(`calcite-panel`,{bind:this,class:T.submenu,closed:!this._exploreImages3DMenuOpen,collapsed:this._exploreImages3DCollapsed,collapseDirection:`up`,collapsible:!0,heading:t,key:`explore-images-3d-tools`,onCalcitePanelToggle:this._toggleExploreImages3DPanel},X(`calcite-list`,{label:t,scale:`s`},X(`calcite-list-item`,{bind:this,label:n},X(`calcite-switch`,{checked:r,scale:`s`,slot:`content-start`,onCalciteSwitchChange:e=>this._toggleExploreImages3DSelection(`3d`,e)})),X(`calcite-list-item`,{bind:this,label:e},X(`calcite-switch`,{checked:i,scale:`s`,slot:`content-start`,onCalciteSwitchChange:e=>this._toggleExploreImages3DSelection(`frustum`,e)}))))}_showSelectedImageToggle(){let{displayImages:e}=this.messages,t=this.viewModel.mode.includes(`video`);return this.visibleElements.showSelectedImage?X(`calcite-action`,{active:this.shouldShowSelectedImage,bind:this,disabled:t,icon:`show-oriented-imagery`,text:e,title:e,onclick:this._toggleShowSelectedImage}):null}_superimposeViewToggle(){let{superimposeView:e}=this.messages,{mode:t,accuracyParametersMissing:n}=this.viewModel,r=!this.superimposeViewEnabled&&(this.view?.type!==`3d`||t.includes(`video`)||n);return this.visibleElements.superimpose?X(`calcite-action`,{active:this.superimposeViewEnabled,bind:this,disabled:r,icon:`superimpose`,text:e,title:e,onclick:this._toggleSuperimposeView}):null}_videoEnhancementsToggle(){let{mode:e}=this.viewModel,{videoEnhancement:t}=this.messages,{enhancementTool:n}=this.visibleElements;return!n||e!==`video`?null:X(`calcite-action`,{active:this.enhancementToolActive,bind:this,disabled:e!==`video`,icon:`sliders-horizontal`,text:t,title:t,onclick:this._toggleEnhancementToolState})}get _imageGalleryPanel(){let{container:e,galleryOpened:t,imageGalleryEnabled:n}=this;return n&&t&&e?this._imageGalleryContext:null}get _imageGalleryContext(){let{galleryOpened:e,invalidCameraHeading:t}=this;return X(`calcite-panel`,{bind:this,class:T.carousel,closable:!0,closed:!e,disabled:t,heading:this.messages.imageGallery,key:this.messages.imageGallery,onCalcitePanelClose:this._toggleImageGallery},X(`div`,{class:T.carouselContainer},this._renderThumbnails))}_imageGalleryToggle(){let{imageGalleryEnabled:e,invalidCameraHeading:t,visibleElements:{imageGallery:n}}=this;return n?X(`calcite-action`,{active:this.galleryOpened,bind:this,disabled:!e||t,icon:`images`,text:this.messages.imageGallery,title:this.messages.imageGallery,onclick:this._toggleImageGallery}):null}get _imageOverlaysComponent(){let{_imageOverlayMessages:e,_imageOverlaysLoaderTask:t,_overlayedLayers:n,dataCaptureEnabled:r,dataCaptureLayer:a,imageOverlaysOpened:o,showCameraLocations:s,showMapFeatures:c,view:l,layer:u}=this,d=r&&!this.viewModel.mode.includes(`video`);if(!u)return null;let f=u.imageGeometryField?.length?u.imageGeometryField:x,p=u.imageReferenceField?.length?u.imageReferenceField:ie;t||(this._imageOverlaysLoaderTask=i(async()=>(await import(`./OrientedImageryViewer/components/ImageOverlays.js`)).default));let m=this._imageOverlaysLoaderTask?.value;return m?X(m,{closed:!o,dataCaptureEnabled:d,dataCaptureLayer:a,imageGeometryField:f,imageReferenceField:p,messages:e,overlayedLayers:n,showCameraLocations:s,showMapFeatures:c,view:l,onDataCaptureLayerChanged:this._handleDataCaptureLayerChange,onFilterCapturedFeatures:this.viewModel.filterCapturedFeatures,onImageOverlaysClosed:this._onImageOverlayClosed,onLayerDeselected:this._handleOverlayLayerDeselect,onLayerSelected:this._handleOverlayLayerSelect,onShowCameraLocationsChanged:this._onShowCameraLocationsChanged,onShowMapFeaturesChanged:this._onShowMapFeaturesChanged}):null}get _navigationUI(){let{navigationMode:e,viewModel:t}=this,{mode:n,state:r}=t;if(!(!e||n!=="default"&&n!==`panoramic`||r!==`image-loaded`))return e===`directional`?n==="default"?X(z,{cameraHeadingThreshold:this.cameraHeadingThreshold,cameraPitchThreshold:this.cameraPitchThreshold,currentNode:this.viewModel.currentNode,navigate:this._createNavigationTask,nodes:this.viewModel.navigationNodes,preserveAngle:this.viewModel.preserveAngle}):X(B,{currentNode:this.viewModel.currentNode,navigate:this._createNavigationTask,nodes:this.viewModel.navigationNodes}):X(H,{layout:`horizontal`,uiStrings:{end:this.messages.end,next:this.messages.next,previous:this.messages.previous,start:this.messages.start},onNext:this._navigateNext,onPrev:this._navigatePrevious})}get _imageOverlayMessages(){return{...this.messages,...this.messagesSketch}}get _imageSketchToolsMessages(){return{...this.messagesCommon,...this.messagesSketch}}_imageOverlaysPanel(){let{imageOverlaysOpened:e}=this,t=this.classes({[T.imageOverlaysContainer]:!0,[q.hidden]:!e||!this._imageOverlaysEnabled});return X(`div`,{class:t,key:this.messages.imageOverlays},this._imageOverlaysComponent)}_imageOverlaysToggle(){let{imageOverlaysOpened:e,invalidCameraHeading:t,visibleElements:{imageOverlays:n}}=this;return n?X(`calcite-action`,{active:e,bind:this,disabled:!this._imageOverlaysEnabled||t,icon:`layers`,text:this.messages.imageOverlays,title:this.messages.imageOverlays,onclick:this._toggleImageOverlays}):null}get _imageOverlaysEnabled(){return this.viewModel.overlayGraphicsEnabled}get _imageViewer(){let{displayMessage:e,loadImageViewer:t,mode:n,clickAction:r,state:i}=this.viewModel,a=e!=null||n!=="default"||i.includes(`loading`);return X(R,{afterCreate:t,clickAction:r,visible:!a})}get _imageViewerTriangular(){let{messages:e,triangularMeasurementActive:t}=this,{displayMessage:n,storeImageMeasurementViewer:r,storePanoramicMeasurementViewer:i,mode:a,state:o,clickAction:s}=this.viewModel,c=n!=null||a===`none`||a===`video`,l=this.classes({[T.viewer]:!c,[T.viewerHidden]:c});return t?X(`calcite-panel`,{class:T.viewerContainerMeasurement,heading:e.measurementViewerHeading,loading:o.includes(`loading`)},X(`calcite-panel`,{bind:this,class:l},a==="default"?X(R,{afterCreate:r,clickAction:s,uiStrings:e}):X(_,{afterCreate:i,clickAction:s,uiStrings:e}))):null}_utilitiesGroupToggle(){let{utilityTools:e}=this.messages;return this.visibleElements.utilityTools?X(`calcite-action`,{bind:this,icon:`tools`,key:`utilities-group-toggle`,text:e,title:e,onclick:e=>this._toggleGroupSelection(`utilities`,e)}):null}_searchGroupToggle(){let{searchTools:e}=this.messages;return this.visibleElements.searchTools?X(`calcite-action`,{bind:this,icon:`search`,key:`search-group-toggle`,text:e,title:e,onclick:e=>this._toggleGroupSelection(`search`,e)}):null}get _videoViewer(){let{mode:e,loadVideoViewer:t,videoViewModel:n}=this.viewModel,{control:r,reset:i}=this.messagesCommon,{mute:a,unmute:o}=this.messages,s=e!==`video`,c=this.classes({[T.viewer]:!s,[T.viewerHidden]:s}),l=`esri-image-viewer`,u=`${l}__slider-container`;return X(`calcite-panel`,{bind:this,class:c},X(`calcite-panel`,{afterCreate:t,class:this.classes(q.widget,l)}),X(`calcite-block`,{class:u,expanded:!0},X(`calcite-slider`,{bind:this,labelHandles:!0,labelTicks:!0,max:n?.videoDuration,minLabel:`0`,value:n?.currentTime??0,onCalciteSliderChange:this._handleVideoSeek})),X(`calcite-action-bar`,{"data-testid":`action-bar--video-controls`,expandToggleDisabled:!0,layout:`horizontal`},X(`calcite-action-group`,{overlayPositioning:`fixed`},X(`calcite-action`,{bind:this,icon:this.activeVideoIcon,text:`Play`,title:n?.videoPaused?r.play:r.pause,onclick:()=>n?.playVideoHandler()})),X(`calcite-action-group`,{overlayPositioning:`fixed`},X(`calcite-action`,{bind:this,icon:`refresh`,text:`Rewind`,title:i,onclick:()=>n?.rewindVideoHandler()})),X(`calcite-action-group`,{overlayPositioning:`fixed`},X(`calcite-action`,{bind:this,icon:this.activeAudioIcon,text:`Audio`,title:n?.videoMuted?a:o,onclick:()=>n?.toggleAudio()}))))}get _locationToggle(){let{viewModel:{state:e,groundCoordinates:t,groundCoordinatesAccuracy:n,groundCoordinatesAccuracyLoading:r,triangulatedPoint:i},imageLocationToolActive:a,triangularMeasurementActive:o,messages:{groundLocation:s,triangulatedLocationHeading:c}}=this;if(e!==`image-loaded`||!t||!a)return;let l=t;if(o){if(!i)return;l=i}return X(`calcite-dialog`,{bind:this,dragEnabled:!0,escapeDisabled:!0,heading:o?c:s,id:s,open:!0,placement:`bottom-start`,resizable:!0,scale:`s`,slot:`dialogs`,width:`s`,onCalciteDialogBeforeClose:this._clearImageLocation},X(L,{accuracy:n,accuracyLoading:r,groundCoordinates:l,messages:this.messages}))}_mapImageConversionToggle(){let{mapImageConversionToolState:e,viewModel:{state:t,disabled:n},videoLoaded:r,invalidCameraHeading:i,visibleElements:{mapImageConversionTool:a}}=this,o=!!(this.viewModel.mode===`video`&&r&&this.viewModel.videoViewModel?.videoPaused),s=this.viewModel.mode===`panoramic-video`&&this.viewModel.panoramicVideoLoaded&&this.viewModel.panoramicVideoPaused,c=t!==`image-loaded`&&!o&&!s||i||n;return a?X(`calcite-action`,{active:e,bind:this,disabled:c,icon:`image-pin`,text:this.messages.mapImageConversionTool,title:this.messages.mapImageConversionTool,onclick:this._toggleMapImageConversionToolState}):null}_measurementToolToggle(){let{measureType:e,viewModel:t,accuracyParametersMissing:n,messages:r,triangularMeasurementActive:i}=this,{state:a}=t,{groundDistance:o,groundArea:s,heightAboveGround:c,groundLocation:l,triangulatedDistanceHeading:u,triangulatedAreaHeading:d,triangulatedLocationHeading:f}=r,p=a!==`image-loaded`||n,m=this._actionBarLayout;return X(`calcite-action-group`,{key:`measurement-tools`,layout:m,overlayPositioning:`fixed`,scale:`m`},X(`calcite-action`,{active:e===`distance`&&!i,bind:this,disabled:p,icon:`measure-line`,key:`distance-measurement`,text:o,title:o,onclick:e=>this._toggleMeasurementSketch(e,`distance`)}),X(`calcite-action`,{active:e===`area`&&!i,bind:this,disabled:p,icon:`measure-area`,key:`area-measurement`,text:s,title:s,onclick:e=>this._toggleMeasurementSketch(e,`area`)}),X(`calcite-action`,{active:e===`height`,bind:this,disabled:p,icon:`measure-building-height-top-base`,key:`height-measurement`,text:c,title:c,onclick:e=>this._toggleMeasurementSketch(e,`height`)}),X(`calcite-action`,{active:this.imageLocationToolActive?!i:!1,bind:this,disabled:p,icon:`pin-tear`,key:`surface-location`,text:l,title:l,onclick:this._toggleLocationTool}),X(`calcite-action`,{active:i?this.imageLocationToolActive:!1,bind:this,disabled:p,icon:`dual-image-location`,key:`triangular-location`,text:f,title:f,onclick:this._toggleTriangularLocation}),X(`calcite-action`,{active:i?this.measureType===`distance`:!1,bind:this,disabled:p,icon:`dual-image-distance`,key:`triangular-distance`,text:u,title:u,onclick:this._toggleTriangularDistanceMeasurements}),X(`calcite-action`,{active:i?this.measureType===`area`:!1,bind:this,disabled:p,icon:`dual-image-area`,key:`triangular-area`,text:d,title:d,onclick:this._toggleTriangularAreaMeasurements}))}get _messageBox(){let{messages:e,viewModel:{displayMessage:t,mode:r}}=this;if(!t||r===`video`)return null;let{key:i,map:a,type:o}=t,s=`${a?n(e[i],a):e[i]}`,c=o===`error`?`danger`:o===`warn`?`warning`:`info`;return X(`calcite-notice`,{appearance:`transparent`,class:T.notice,icon:ce[c],kind:c,open:!0},X(`div`,{slot:`message`},s))}async _loadNavigationSettings(){return this._navigationSettingsLoaderTask||=i(async()=>(await import(`./OrientedImageryViewer/components/NavigationSettings.js`)).default),await this._navigationSettingsLoaderTask.promise}_measurementsGroupToggle(){let{measurementTools:e}=this.messages,{state:t,accuracyParametersMissing:n}=this.viewModel,r=t!==`image-loaded`||n;return this.visibleElements.measurementTools?X(`calcite-action`,{bind:this,disabled:r,icon:`measure-line`,key:`measurements-group-toggle`,text:e,title:e,onclick:e=>this._toggleGroupSelection(`measurements`,e)}):null}_navigationGroupToggle(){let{imageNavigation:e}=this.messages;return this.visibleElements.imageNavigationTools?X(`calcite-action`,{bind:this,icon:`absolute-direction`,key:`navigation-group-toggle`,text:e,title:e,onclick:e=>this._toggleGroupSelection(`navigation`,e)}):null}_navigationToolToggle(){let{state:e}=this.viewModel,{visibleElements:{navigationTool:t},videoLoaded:n}=this;return t?X(`calcite-action`,{active:this.navigationToolActive,bind:this,disabled:e!==`image-loaded`&&!n||this.invalidCameraHeading,icon:`explore`,text:this.messages.navigationTool,title:this.messages.navigationTool,onclick:this._toggleNavigationTool}):null}_directionToolsToggle(){let{messages:e,viewModel:t,visibleElements:n}=this,{directionalNavigation:r,sequentialNavigation:i}=n,{state:a}=t,{directionalNavigation:o,directionalNavigationDescription:s,sequentialNavigation:c,sequentialNavigationDescription:l}=e,u=this._actionBarLayout;return X(`calcite-action-group`,{key:`navigation-tools`,layout:u,overlayPositioning:`fixed`,scale:`m`},r?X(`calcite-action`,{active:this.navigationMode===`directional`,bind:this,disabled:a!==`image-loaded`||this.invalidCameraHeading,icon:`directional-navigation`,text:o,title:o+`
|
|
3
3
|
`+s,onclick:()=>void this._toggleImageNavigation(`directional`)}):null,i?X(`calcite-action`,{active:this.navigationMode===`sequential`,bind:this,disabled:a!==`image-loaded`||this.invalidCameraHeading||!this.canNavigateSequentially,icon:`sequential-navigation`,text:c,title:c+`
|
|
4
|
-
`+l,onclick:()=>void this._toggleImageNavigation(`sequential`)}):null)}_overlaysGroupToggle(){let{overlays:e}=this.messages;return this.visibleElements.overlays?X(`calcite-action`,{bind:this,icon:`oriented-imagery-overlays`,key:`overlays-group-toggle`,text:e,title:e,onclick:e=>this._toggleGroupSelection(`overlays`,e)}):null}_openPopupAction(){let{showPopupsAction:e}=this.visibleElements;return e?X(`calcite-action`,{bind:this,disabled:!this.popupEnabled,icon:`popup`,text:this.messages.showPopups,title:this.messages.showPopups,onclick:this._toggleImageAttributes}):null}get _panoramicVideoViewer(){let{displayMessage:e,loadPanoramicVideoViewer:t,mode:n,clickAction:r,state:i,currentBestFeature:a}=this.viewModel,o=a?.attributes.imagePath,s=e!=null||n!==`panoramic-video`||i.includes(`loading`)||!o;return X(re,{afterCreate:t,clickAction:r,oiViewModel:this.viewModel,videoSource:o,visible:!s})}get _panoramicViewer(){let{displayMessage:e,loadPanoramicViewer:t,mode:n,clickAction:r,state:i}=this.viewModel,a=e!=null||n!==`panoramic`||i.includes(`loading`);return X(_,{afterCreate:t,clickAction:r,visible:!a})}get noImageInSequenceError(){return this._get(`noImageInSequenceError`)??!1}_activateTriangulatedImageLocationTool(){this.navigationToolActive=!0,this.imageLocationToolActive=!0}_activateTriangulatedImageLocationWorkflow(e,t){this._closeAllImageTools(),this.imageLocationToolActive=!0,this.triangularMeasurementActive=!e,this.navigationToolActive=t?!0:!t}_closeImageToolsAndToggleNavigation(e,t){this._closeAllImageTools(),this.triangularMeasurementActive=!e,this.navigationToolActive=!t}_resetMeasureTypeAndActivateImageLocationTool(){this.measureType=null,this.imageLocationToolActive=!0}_closeAllImageTools(){this.enhancementToolActive=!1,this.navigationToolActive=!1,this.imageOverlaysOpened=!1,this.galleryOpened=!1,this._exploreImages3DMenuOpen=!1,this.measureType=null,this.imageLocationToolActive=!1,this.navigationMode=null,this.triangularMeasurementActive=!1,this._settingsToggle&&(this._settingsToggle.expanded=!1,this.viewModel.activeViewer?.ui.remove(this._settingsToggle))}_handleBrightnessChange(e){this.viewModel.brightness=e.currentTarget.value??0}_handleVideoBrightnessChange(e){this.viewModel.videoViewModel?.handleVideoBrightnessChange(e.target.value)}_handleContrastChange(e){this.viewModel.contrast=e.currentTarget.value??0}_handleVideoContrastChange(e){this.viewModel.videoViewModel?.handleVideoContrastChange(e.target.value)}_handleVideoSeek(e){let t=this.viewModel?.videoElement?.content;t&&(t.currentTime=e.target.value,t.play())}_handleSharpnessChange(e){this.viewModel.sharpness=e.currentTarget.value??0}_handleSuperimposeZOffsetChange(e){let t=e.currentTarget.value??0;this.viewModel.mode==="default"?(this._defaultSuperimposeZOffsetPercentage=t,this.viewModel.setDefaultSuperimposeZOffsetPercentage(100-t)):(this._panoramicSuperimposeRadiusOffsetPercentage=t,this.viewModel.setPanoramicSuperimposeRadiusPercentage(100-t))}_lazyLoadImage(e,t){e.forEach(async e=>{if(e.isIntersecting){let n=e.target,r=n.getAttribute(`data-src`),i=n.getAttribute(`data-rotation`),a=n.getAttribute(`data-objectid`),o=i?parseFloat(i)%360:0,{layer:s,_galleryController:{signal:u}}=this;if(!r||!a)return;let d;try{d=k(r)?await A(s,a,{signal:u}):await j(r,{signal:u})}catch(e){l(e)||c.getLogger(`esri.widgets.OrientedImageryViewer`).error(`#lazyLoadImage()`,e)}finally{t.unobserve(n)}if(!d)return;M(d,n,o)}})}_loadImageFromGallery(e){let{target:t}=e;if(!t)return;let n=t.getAttribute(`data-objectid`);n&&this.viewModel.currentBestFeature?.attributes.objectId!==Number(n)&&this.viewModel.selectBestFeature(n)}_loadImageMeasurementResources(){this._imageMeasurementToolsLoaderTask=i(async()=>{let{default:e}=await import(`./OrientedImageryViewer/components/ImageMeasurementWidget.js`);return e})}_loadSketchResources(){this._sketchLoaderTask=i(async()=>(await import(`./OrientedImageryViewer/components/SketchTools.js`)).default)}_onAdditionalCoverageVisibilityChange(e){this.viewModel.setAdditionalCoverageVisibility(e)}_onAdditionalCameraLocationsVisibility(e){this.viewModel.setAdditionalCameraLocationsVisibility(e)}_onCurrentCoverageVisibilityChange(e){this.viewModel.setCurrentCoverageVisibility(e)}_registerGalleryItem(e){this._galleryObserver.observe(e)}_renderWarning(e,t,n){let{viewModel:{state:r}}=this;return r===`image-loaded`?X(I,{class:T.alert,icon:`exclamation-mark-triangle-f`,kind:`warning`,message:t,open:!0,title:e,tooltip:t,topLayerDisabled:this.topLayerDisabled,onClose:n}):null}get _renderNavigation(){let{viewModel:{sectorData:e,navigatorCurrentBestFeature:t,currentBestFeature:n,state:i}}=this;if(!this.container||!n)return null;let a,o,s,c,l;if(t){let{x:e,y:n,direction:r}=t,[i,u,d,f]=S[r];a=`M ${e} ${n} L ${i} ${u} A ${w[2]} ${w[2]} 0 0 1 ${d} ${f} Z`,o=e,c=n,s=S[r][4],l=S[r][5]}let u=e=>{let t=e.target.dataset?.sector;t&&this.viewModel.handleSectorClick(+t)},d=e=>{let t=e.target.dataset;if(!t)return;let{featureIndexInSector:n,sector:r}=t;n&&r&&this.viewModel.handleFeatureClick({sector:r,featureIndexInSector:+n})},f=e=>{e.removeEventListener(`click`,d)},p=n.attributes.objectId,m=e?.map(e=>e?.items).filter(Boolean).flatMap(e=>e?.map(({x:e,y:t,objectID:n,featureIndexInSector:r,sector:i})=>X(`circle`,{afterRemoved:f,class:this.classes(T.feature,{selected:p===n}),cx:e,cy:t,"data-feature-index-in-sector":r,"data-sector":i,key:`${T.feature}-${n}`,r:ae,onclick:d}))),h=e=>{e.removeEventListener(`click`,u)},g=this.classes({[T.navigationWrapper]:!0,[T.navigationWrapperVideo]:this.viewModel.mode.includes(`video`),[T.navigationZoomed]:this._navigationToolExpanded});return this.navigationToolActive&&(i===`image-loaded`||this.videoLoaded)?X(`div`,{bind:this,class:g,key:this.messages.navigationTool},X(`svg`,{afterCreate:e=>this._storeNavigationToolReference(e),class:r()?oe:T.rotateWithAnimation,focusable:`false`,height:C,role:`img`,width:C,xmlns:`http://www.w3.org/2000/svg`},X(`defs`,null,X(`linearGradient`,{gradientUnits:`userSpaceOnUse`,id:`${this.id}-coverage-fill`,x1:o,x2:s,y1:c,y2:l},X(`stop`,{class:T.navigationPathOffset0,offset:0}),X(`stop`,{class:T.navigationPathOffset1,offset:1}))),X(`g`,null,X(`circle`,{class:this.classes(T.sector,T.outerSector),cx:w[3],cy:w[3],r:w[3],onclick:this._scaleNavigationTool}),X(`circle`,{class:T.sector,cx:w[3],cy:w[3],r:w[2]}),X(`circle`,{class:T.sector,cx:w[3],cy:w[3],r:w[1]}),X(`circle`,{class:T.sector,cx:w[3],cy:w[3],r:w[0]}),X(`path`,{class:T.pointer,d:`M 56.5 6.06217782649107 L 60 0 L 63.5 6.06217782649107 Z`,key:`${T.pointer}-west`}),X(`path`,{class:this.classes(T.pointer,T.north),d:`M 113.93782217350893 56.5 L 120 60 L 113.93782217350893 63.5 Z`,key:`${T.pointer}-north`}),X(`path`,{class:T.pointer,d:`M 56.5 113.93782217350893 L 60 120 L 63.5 113.93782217350893 Z`,key:`${T.pointer}-east`}),X(`path`,{class:T.pointer,d:`M 6.06217782649107 56.5 L 0 60 L 6.06217782649107 63.5 Z`,key:`${T.pointer}-south`}),X(`path`,{class:this.classes(T.sector,T.sectorSeparator),d:`M 23.937554159486076 23.937554159486076 L 96.06244584051393 96.06244584051393 M 23.937554159486076 96.06244584051393 L 96.06244584051393 23.937554159486076`,key:T.sectorSeparator}),y([w[2],w[1],w[0]],w[3],w[3]).map((t,n)=>X(`path`,{afterRemoved:h,class:this.classes(T.sector,e?.[n]?.length?T.sectorEnabled:T.sectorDisabled),d:t,"data-sector":`${n}`,key:`${T.sector}-${n}`,onclick:u})),X(`path`,{class:this.classes(T.sector,T.sectorCross),d:`M 56.4 56.4 L 63.53 63.53 M 63.53 56.4 L 56.4 63.53`,key:T.sectorCross}),m,n.attributes.cameraPitch>=5&&a?X(`path`,{class:T.selectedFeaturePath,d:a,fill:`url(#${this.id}-coverage-fill)`,key:T.selectedFeaturePath}):null))):null}_renderSketch(){let{dataCaptureLayer:e,imageOverlaysOpened:t}=this;if(!e||t||(this._sketchLoaderTask||this._loadSketchResources(),!this._sketchLoaderTask?.value))return null;let{geometryType:n}=e,r=n===`point`?`pin`:n===`polyline`?`line`:`polygon`,i=this._sketchLoaderTask.value;return X(`div`,{class:T.sketchTools},X(i,{icon:r,messages:this._imageSketchToolsMessages,type:n,onAction:this._onAction}))}get _renderThumbnails(){let{currentBestFeature:e,thumbnails:t}=this.viewModel;return e?X(`div`,{class:T.carouselContent},t?.items.map(({url:t,objectId:n,rotation:r},i)=>X(`div`,{class:`${T.carouselItemWrapper}${e.attributes.objectId===n?`--selected`:``}`,key:`${T.carouselItemWrapper}-${i}`},X(`canvas`,{afterCreate:this._registerGalleryItem,afterRemoved:this._unregisterGalleryItem,alt:`thumbnail-${n}`,class:T.carouselItem,"data-objectid":`${n}`,"data-rotation":`${r}`,"data-src":t,onclick:this._loadImageFromGallery,onmouseenter:this._highlight,onmouseleave:this._removeHighlight})))):null}_resetImageTools(){this.viewModel.sharpness=this.viewModel.brightness=this.viewModel.contrast=0}_resetVideoTools(){this.viewModel.videoViewModel?.resetVideoEnhancementTools()}_storeNavigationToolReference(e){this._navigationTool=e}_toggleAdditionalCameraLocations(){this.isAdditionalPointSourcesVisible=!this.isAdditionalPointSourcesVisible}_toggleAdditionalCoverage(){this.isAdditionalCoverageVisible=!this.isAdditionalCoverageVisible}_toggleCurrentCoverage(){this.currentCoverageVisible=!this.currentCoverageVisible}_toggleShowSelectedImage(){let e=!this.shouldShowSelectedImage;e&&this._disableExploreImages3D(),this.shouldShowSelectedImage=e,this._toggleDisabledViewer(this.shouldShowSelectedImage)}_resetSuperimposeOffset(){this.viewModel.mode==="default"?(this._defaultSuperimposeZOffsetPercentage=100,this.viewModel.setDefaultSuperimposeZOffsetPercentage(0)):(this._panoramicSuperimposeRadiusOffsetPercentage=100,this.viewModel.setPanoramicSuperimposeRadiusPercentage(0))}_toggleSuperimposeCameraLock(){this.viewModel.updateDefaultSuperimposeCameraLock(!this.defaultSuperimposeCameraLockEnabled)}_toggleSuperimposeView(){this.superimposeViewEnabled=!this.superimposeViewEnabled}_disableExploreImages3D(){this._exploreImages3DMenuOpen=!1,this._exploreImages3DCollapsed=!1,this.verticalFilterEnabled=!1,this.viewModel.setFrustumSearchEnabled(!1)}_setExploreImages3DSearchMode(e){let t=e===`3d`||e===`both`,n=e===`frustum`||e===`both`,r=this.verticalFilterEnabled===t&&this.viewModel.frustumSearchEnabled===n;this.shouldShowSelectedImage=!1,this.verticalFilterEnabled=t,this.viewModel.setFrustumSearchEnabled(n),this._toggleDisabledViewer(!0),r&&this.scheduleRender()}_toggleExploreImages3DMenu(e){e.stopPropagation(),this._exploreImages3DMenuOpen?this._disableExploreImages3D():(this._closeAllImageTools(),this.shouldShowSelectedImage=!1,this._exploreImages3DCollapsed=!1,!this.verticalFilterEnabled&&!this.viewModel.frustumSearchEnabled&&this._setExploreImages3DSearchMode(`3d`),this._exploreImages3DMenuOpen=!0)}_toggleExploreImages3DSelection(e,{currentTarget:t}){this._setExploreImages3DSearchMode(this._getNextExploreImages3DSearchMode(e)),t.checked=e===`3d`?this.verticalFilterEnabled:this.viewModel.frustumSearchEnabled}_getNextExploreImages3DSearchMode(e){let t=this.verticalFilterEnabled,n=this.viewModel.frustumSearchEnabled,r=t&&n;return e===`3d`?r?`frustum`:n?`both`:`frustum`:r?`3d`:t?`both`:`3d`}_toggleDisabledViewer(e){e&&(this.disabled=!1)}_toggleEnhancementToolState(e){e.stopPropagation();let t=this.enhancementToolActive;this._closeAllImageTools(),this.enhancementToolActive=!t}_toggleExploreImages(){this.disabled=!this.disabled,this.disabled&&(this.shouldShowSelectedImage=!1,this._disableExploreImages3D())}_toggleGroupSelection(e,t){let n=this._rootActionTitleToFocus;e&&(this._rootActionTitleToFocus=t?.currentTarget?.getAttribute(`title`)),this.selectedGroup=e,this._actionTitleToFocus=e?this.messages.previous:n}_toggleImageOverlays(e){e.stopPropagation();let t=this.imageOverlaysOpened;this._closeAllImageTools(),this.imageOverlaysOpened=!t}_toggleImageGallery(e){e.stopPropagation();let t=this.galleryOpened;this._closeAllImageTools(),this.galleryOpened=this.imageGalleryEnabled?!t:!1}_toggleLocationTool(e){let t=this.imageLocationToolActive,n=this.triangularMeasurementActive&&t;this._closeAllImageTools(),this.imageLocationToolActive=n||!t,e.stopPropagation()}_toggleMeasurementSketch(e,t){e.stopPropagation();let n=this.measureType,r=this.triangularMeasurementActive;this._closeAllImageTools(),this.measureType=n===t&&!r?null:t,this.measureType===t&&(this.viewModel.displayNewMeasurementButton=!0)}_toggleNavigationTool(){let e=this.navigationToolActive;this._closeAllImageTools(),this.navigationToolActive=!e}_toggleMapImageConversionToolState(){this.mapImageConversionToolState=!this.mapImageConversionToolState}_toggleTriangularAreaMeasurements(){this._toggleTriangularMeasurements(`area`)}_toggleTriangularDistanceMeasurements(){this._toggleTriangularMeasurements(`distance`)}_toggleTriangularLocation(){let e=this.triangularMeasurementActive,t=this.navigationToolActive;e?this.measureType===null?this.imageLocationToolActive?this._closeImageToolsAndToggleNavigation(e,t):this._activateTriangulatedImageLocationTool():this._resetMeasureTypeAndActivateImageLocationTool():this._activateTriangulatedImageLocationWorkflow(e,t)}_toggleTriangularMeasurements(e){let t=this.triangularMeasurementActive,n=this.viewModel.measureType,r=this.navigationToolActive;t?e===n?(this._closeAllImageTools(),this.triangularMeasurementActive=!t,this.navigationToolActive=!r):(this.imageLocationToolActive=!1,this.measureType=e,this.viewModel.displayNewMeasurementButton=!0):(this._closeAllImageTools(),this.measureType=e,this.triangularMeasurementActive=!t,this.navigationToolActive=r?!0:!r,this.viewModel.displayNewMeasurementButton=!0)}_unregisterGalleryItem(e){this._galleryObserver.unobserve(e)}_updateNavigationTool(e){let{previousFeatureAngle:t,bestFeatureAngle:n}=this.viewModel,r=(n-t+540)%360-180;e.style.setProperty(E,`${t}deg`),e.style.setProperty(D,`${t+r}deg`)}async loadBestImage(e,t){return this.viewModel.loadBestImage(e,t)}loadImageFromSource(e,t,n){return e==="default"?this.viewModel.loadMediaSource(t,n):this.viewModel.loadPanoramicMediaSource(t,n)}async overlayMapFeatures(e,t){return this.removeHandles(`${Q.overlayed}-${e.id}`),this.addHandles(u(()=>e.visible,()=>{this.viewModel.toggleOverlayMapFeatures(e.id,e.visible,this.showMapFeatures)}),`${Q.overlayed}-${e.id}`),this._overlayedLayers.add(e),this.viewModel.overlayMapFeatures(e,t&&this.showMapFeatures)}async plotMapPoint(e){return this.viewModel.plotMapPoint(e)}plotReferencePointOnGround(e){this.viewModel.plotReferencePointOnGround(e)}plotReferencePointOnImage(e){this.viewModel.plotReferencePointOnImage(e)}removeOverlayedGraphicsOnImage(e){this.removeHandles(`${Q.overlayed}-${e}`),this._overlayedLayers.remove(this._overlayedLayers.find(t=>t.id===e)),this.viewModel.removeOverlayedGraphicsOnImage(e)}resetImage(){this.viewModel.resetImage()}render(){return X(`div`,{class:this.classes(q.widget,O)},this._renderRoot)}async showImageByObjectId(e,t){return this.viewModel.showImageByObjectId(e,t)}async startDataCapture(e){return this.viewModel.startDataCapture(e)}async stopDataCapture(e){return this.viewModel.stopDataCapture(e)}updateSuitabilities(e){this.viewModel.updateSuitabilities(e)}};e([g({readOnly:!0})],$.prototype,`accuracyParametersMissing`,null),e([g()],$.prototype,`actionBarPosition`,void 0),e([g()],$.prototype,`activeLayer`,null),e([g()],$.prototype,`activeVideoIcon`,null),e([g()],$.prototype,`activeAudioIcon`,null),e([g()],$.prototype,`cameraHeadingThreshold`,null),e([g()],$.prototype,`cameraPitchThreshold`,null),e([g()],$.prototype,`canNavigateSequentially`,null),e([g()],$.prototype,`currentBestFeature`,null),e([g()],$.prototype,`currentCoverageVisible`,null),e([g()],$.prototype,`dataCaptureEnabled`,void 0),e([g()],$.prototype,`dataCaptureLayer`,null),e([g()],$.prototype,`depthImageNotSupported`,null),e([g()],$.prototype,`disabled`,null),e([g()],$.prototype,`enhancementToolActive`,null),e([g()],$.prototype,`features`,null),e([g()],$.prototype,`imagePointsInView`,null),e([g()],$.prototype,`galleryOpened`,void 0),e([g()],$.prototype,`icon`,null),e([g()],$.prototype,`imageEnhancementToolActive`,void 0),e([g()],$.prototype,`videoEnhancementToolActive`,void 0),e([g({readOnly:!0})],$.prototype,`imageGalleryEnabled`,null),e([g()],$.prototype,`imageLocationToolActive`,null),e([g()],$.prototype,`imageOverlaysOpened`,void 0),e([g({readOnly:!0})],$.prototype,`invalidCameraHeading`,null),e([g()],$.prototype,`isAdditionalCoverageVisible`,null),e([g()],$.prototype,`isAdditionalPointSourcesVisible`,null),e([g()],$.prototype,`mapImageConversionToolState`,null),e([g()],$.prototype,`measureType`,null),e([g()],$.prototype,`layer`,null),e([g()],$.prototype,`navigationToolActive`,void 0),e([g()],$.prototype,`navigationMode`,null),e([J(b()),g({type:N})],$.prototype,`viewModel`,void 0),e([g(),Y(`esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer`)],$.prototype,`messages`,void 0),e([g(),Y(`esri/core/t9n/Units`)],$.prototype,`measurementUnitMessages`,void 0),e([g(),Y(`esri/t9n/common`)],$.prototype,`messagesCommon`,void 0),e([g(),Y(`esri/widgets/Sketch/t9n/Sketch`)],$.prototype,`messagesSketch`,void 0),e([g()],$.prototype,`pixelMeasurementUnit`,void 0),e([g()],$.prototype,`pixelAreaMeasurementUnit`,void 0),e([g({readOnly:!0})],$.prototype,`popupEnabled`,null),e([g()],$.prototype,`preloadMedia`,null),e([g()],$.prototype,`referencePoint`,null),e([g()],$.prototype,`selectedFeatureObjectId`,null),e([g()],$.prototype,`selectedPoint`,null),e([g()],$.prototype,`selectedGroup`,void 0),e([g()],$.prototype,`showCameraLocations`,void 0),e([g()],$.prototype,`showMapFeatures`,void 0),e([J([`create`,`delete`,`redo`,`undo`,`update`]),g({readOnly:!0})],$.prototype,`sketchViewModel`,null),e([g()],$.prototype,`triangularMeasurementActive`,null),e([g()],$.prototype,`videoLoaded`,null),e([g()],$.prototype,`view`,null),e([g({type:P,nonNullable:!0})],$.prototype,`visibleElements`,void 0),e([g()],$.prototype,`determineWorkflowForFeature`,null),e([g()],$.prototype,`shouldShowSelectedImage`,null),e([g()],$.prototype,`superimposeViewEnabled`,null),e([g()],$.prototype,`defaultSuperimposeCameraLockEnabled`,null),e([g()],$.prototype,`updateFootprint`,null),e([g()],$.prototype,`verticalFilterEnabled`,null),e([g()],$.prototype,`_defaultSuperimposeZOffsetPercentage`,void 0),e([g()],$.prototype,`_panoramicSuperimposeRadiusOffsetPercentage`,void 0),e([g()],$.prototype,`_exploreImages3DMenuOpen`,void 0),e([g()],$.prototype,`_exploreImages3DCollapsed`,void 0),e([g()],$.prototype,`_actionBarLayout`,null),e([g()],$.prototype,`_activeMeasurementHeading`,null),e([g()],$.prototype,`_imageOverlaysLoaderTask`,void 0),e([g()],$.prototype,`_imageMeasurementToolsLoaderTask`,void 0),e([g()],$.prototype,`_navigationSettingsLoaderTask`,void 0),e([g()],$.prototype,`_navigationTask`,void 0),e([g()],$.prototype,`_measurementToggle`,null),e([g()],$.prototype,`_renderRoot`,null),e([g()],$.prototype,`_imageEnhancementTools`,null),e([g()],$.prototype,`_videoEnhancementTools`,null),e([g()],$.prototype,`_superimposeTools`,null),e([g()],$.prototype,`_exploreImages3DTools`,null),e([g()],$.prototype,`_imageGalleryPanel`,null),e([g()],$.prototype,`_imageGalleryContext`,null),e([g()],$.prototype,`_imageOverlaysComponent`,null),e([g()],$.prototype,`_navigationUI`,null),e([g()],$.prototype,`_imageOverlayMessages`,null),e([g()],$.prototype,`_imageSketchToolsMessages`,null),e([g()],$.prototype,`_imageOverlaysEnabled`,null),e([g()],$.prototype,`_imageViewer`,null),e([g()],$.prototype,`_imageViewerTriangular`,null),e([g()],$.prototype,`_videoViewer`,null),e([g()],$.prototype,`_locationToggle`,null),e([g()],$.prototype,`_messageBox`,null),e([g()],$.prototype,`_navigationToolExpanded`,void 0),e([g()],$.prototype,`_navigationTool`,void 0),e([g()],$.prototype,`_panoramicVideoViewer`,null),e([g()],$.prototype,`_panoramicViewer`,null),e([g({readOnly:!0})],$.prototype,`noImageInSequenceError`,null),e([g()],$.prototype,`_renderNavigation`,null),e([g()],$.prototype,`_renderThumbnails`,null),e([g()],$.prototype,`_sketchLoaderTask`,void 0),$=e([ee(`esri.widgets.OrientedImageryViewer`)],$);const le=$;export{le as default};
|
|
4
|
+
`+l,onclick:()=>void this._toggleImageNavigation(`sequential`)}):null)}_overlaysGroupToggle(){let{overlays:e}=this.messages;return this.visibleElements.overlays?X(`calcite-action`,{bind:this,icon:`oriented-imagery-overlays`,key:`overlays-group-toggle`,text:e,title:e,onclick:e=>this._toggleGroupSelection(`overlays`,e)}):null}_openPopupAction(){let{showPopupsAction:e}=this.visibleElements;return e?X(`calcite-action`,{bind:this,disabled:!this.popupEnabled,icon:`popup`,text:this.messages.showPopups,title:this.messages.showPopups,onclick:this._toggleImageAttributes}):null}get _panoramicVideoViewer(){let{displayMessage:e,loadPanoramicVideoViewer:t,mode:n,clickAction:r,state:i,currentBestFeature:a}=this.viewModel,o=a?.attributes.imagePath,s=e!=null||n!==`panoramic-video`||i.includes(`loading`)||!o;return X(re,{afterCreate:t,clickAction:r,oiViewModel:this.viewModel,videoSource:o,visible:!s})}get _panoramicViewer(){let{displayMessage:e,loadPanoramicViewer:t,mode:n,clickAction:r,state:i}=this.viewModel,a=e!=null||n!==`panoramic`||i.includes(`loading`);return X(_,{afterCreate:t,clickAction:r,visible:!a})}get noImageInSequenceError(){return this._get(`noImageInSequenceError`)??!1}_activateTriangulatedImageLocationTool(){this.navigationToolActive=!0,this.imageLocationToolActive=!0}_activateTriangulatedImageLocationWorkflow(e,t){this._closeAllImageTools(),this.imageLocationToolActive=!0,this.triangularMeasurementActive=!e,this.navigationToolActive=t?!0:!t}_closeImageToolsAndToggleNavigation(e,t){this._closeAllImageTools(),this.triangularMeasurementActive=!e,this.navigationToolActive=!t}_resetMeasureTypeAndActivateImageLocationTool(){this.measureType=null,this.imageLocationToolActive=!0}_closeAllImageTools(){this.enhancementToolActive=!1,this.navigationToolActive=!1,this.imageOverlaysOpened=!1,this.galleryOpened=!1,this._exploreImages3DMenuOpen=!1,this.measureType=null,this.imageLocationToolActive=!1,this.navigationMode=null,this.triangularMeasurementActive=!1,this._settingsToggle&&(this._settingsToggle.expanded=!1,this.viewModel.activeViewer?.ui.remove(this._settingsToggle))}_handleBrightnessChange(e){this.viewModel.brightness=e.currentTarget.value??0}_handleVideoBrightnessChange(e){this.viewModel.videoViewModel?.handleVideoBrightnessChange(e.target.value)}_handleContrastChange(e){this.viewModel.contrast=e.currentTarget.value??0}_handleVideoContrastChange(e){this.viewModel.videoViewModel?.handleVideoContrastChange(e.target.value)}_handleVideoSeek(e){let t=this.viewModel?.videoElement?.content;t&&(t.currentTime=e.target.value,t.play())}_handleSharpnessChange(e){this.viewModel.sharpness=e.currentTarget.value??0}_handleSuperimposeZOffsetChange(e){let t=e.currentTarget.value??0;this.viewModel.mode==="default"?(this._defaultSuperimposeZOffsetPercentage=t,this.viewModel.setDefaultSuperimposeZOffsetPercentage(100-t)):(this._panoramicSuperimposeRadiusOffsetPercentage=t,this.viewModel.setPanoramicSuperimposeRadiusPercentage(100-t))}_lazyLoadImage(e,t){e.forEach(async e=>{if(e.isIntersecting){let n=e.target,r=n.getAttribute(`data-src`),i=n.getAttribute(`data-rotation`),a=n.getAttribute(`data-objectid`),o=i?parseFloat(i)%360:0,{layer:s,_galleryController:{signal:u}}=this;if(!r||!a)return;let d;try{d=k(r)?await A(s,a,{signal:u}):await j(r,{signal:u})}catch(e){l(e)||c.getLogger(`esri.widgets.OrientedImageryViewer`).error(`#lazyLoadImage()`,e)}finally{t.unobserve(n)}if(!d)return;M(d,n,o)}})}_loadImageFromGallery(e){let{target:t}=e;if(!t)return;let n=t.getAttribute(`data-objectid`);n&&this.viewModel.currentBestFeature?.attributes.objectId!==Number(n)&&this.viewModel.selectBestFeature(n)}_loadImageMeasurementResources(){this._imageMeasurementToolsLoaderTask=i(async()=>{let{default:e}=await import(`./OrientedImageryViewer/components/ImageMeasurementWidget.js`);return e})}_loadSketchResources(){this._sketchLoaderTask=i(async()=>(await import(`./OrientedImageryViewer/components/SketchTools.js`)).default)}_onAdditionalCoverageVisibilityChange(e){this.viewModel.setAdditionalCoverageVisibility(e)}_onAdditionalCameraLocationsVisibility(e){this.viewModel.setAdditionalCameraLocationsVisibility(e)}_onCurrentCoverageVisibilityChange(e){this.viewModel.setCurrentCoverageVisibility(e)}_registerGalleryItem(e){this._galleryObserver.observe(e)}_renderWarning(e,t,n){let{viewModel:{state:r}}=this;return r===`image-loaded`?X(I,{class:T.alert,icon:`exclamation-mark-triangle-f`,kind:`warning`,message:t,open:!0,title:e,tooltip:t,topLayerDisabled:this.topLayerDisabled,onClose:n}):null}get _renderNavigation(){let{viewModel:{sectorData:e,navigatorCurrentBestFeature:t,currentBestFeature:n,state:i}}=this;if(!this.container||!n)return null;let a,o,s,c,l;if(t){let{x:e,y:n,direction:r}=t,[i,u,d,f]=S[r];a=`M ${e} ${n} L ${i} ${u} A ${w[2]} ${w[2]} 0 0 1 ${d} ${f} Z`,o=e,c=n,s=S[r][4],l=S[r][5]}let u=e=>{let t=e.target.dataset?.sector;t&&this.viewModel.handleSectorClick(+t)},d=e=>{let t=e.target.dataset;if(!t)return;let{featureIndexInSector:n,sector:r}=t;n&&r&&this.viewModel.handleFeatureClick({sector:r,featureIndexInSector:+n})},f=e=>{e.removeEventListener(`click`,d)},p=n.attributes.objectId,m=e?.map(e=>e?.items).filter(Boolean).flatMap(e=>e?.map(({x:e,y:t,objectID:n,featureIndexInSector:r,sector:i})=>X(`circle`,{afterRemoved:f,class:this.classes(T.feature,{selected:p===n}),cx:e,cy:t,"data-feature-index-in-sector":r,"data-sector":i,key:`${T.feature}-${n}`,r:ae,onclick:d}))),h=e=>{e.removeEventListener(`click`,u)},g=this.classes({[T.navigationWrapper]:!0,[T.navigationWrapperVideo]:this.viewModel.mode.includes(`video`),[T.navigationZoomed]:this._navigationToolExpanded});return this.navigationToolActive&&(i===`image-loaded`||this.videoLoaded)?X(`div`,{bind:this,class:g,key:this.messages.navigationTool},X(`svg`,{afterCreate:e=>this._storeNavigationToolReference(e),class:r()?oe:T.rotateWithAnimation,focusable:`false`,height:C,role:`img`,width:C,xmlns:`http://www.w3.org/2000/svg`},X(`defs`,null,X(`linearGradient`,{gradientUnits:`userSpaceOnUse`,id:`${this.id}-coverage-fill`,x1:o,x2:s,y1:c,y2:l},X(`stop`,{class:T.navigationPathOffset0,offset:0}),X(`stop`,{class:T.navigationPathOffset1,offset:1}))),X(`g`,null,X(`circle`,{class:this.classes(T.sector,T.outerSector),cx:w[3],cy:w[3],r:w[3],onclick:this._scaleNavigationTool}),X(`circle`,{class:T.sector,cx:w[3],cy:w[3],r:w[2]}),X(`circle`,{class:T.sector,cx:w[3],cy:w[3],r:w[1]}),X(`circle`,{class:T.sector,cx:w[3],cy:w[3],r:w[0]}),X(`path`,{class:T.pointer,d:`M 56.5 6.06217782649107 L 60 0 L 63.5 6.06217782649107 Z`,key:`${T.pointer}-west`}),X(`path`,{class:this.classes(T.pointer,T.north),d:`M 113.93782217350893 56.5 L 120 60 L 113.93782217350893 63.5 Z`,key:`${T.pointer}-north`}),X(`path`,{class:T.pointer,d:`M 56.5 113.93782217350893 L 60 120 L 63.5 113.93782217350893 Z`,key:`${T.pointer}-east`}),X(`path`,{class:T.pointer,d:`M 6.06217782649107 56.5 L 0 60 L 6.06217782649107 63.5 Z`,key:`${T.pointer}-south`}),X(`path`,{class:this.classes(T.sector,T.sectorSeparator),d:`M 23.937554159486076 23.937554159486076 L 96.06244584051393 96.06244584051393 M 23.937554159486076 96.06244584051393 L 96.06244584051393 23.937554159486076`,key:T.sectorSeparator}),y([w[2],w[1],w[0]],w[3],w[3]).map((t,n)=>X(`path`,{afterRemoved:h,class:this.classes(T.sector,e?.[n]?.length?T.sectorEnabled:T.sectorDisabled),d:t,"data-sector":`${n}`,key:`${T.sector}-${n}`,onclick:u})),X(`path`,{class:this.classes(T.sector,T.sectorCross),d:`M 56.4 56.4 L 63.53 63.53 M 63.53 56.4 L 56.4 63.53`,key:T.sectorCross}),m,n.attributes.cameraPitch>=5&&a?X(`path`,{class:T.selectedFeaturePath,d:a,fill:`url(#${this.id}-coverage-fill)`,key:T.selectedFeaturePath}):null))):null}_renderSketch(){let{dataCaptureLayer:e,imageOverlaysOpened:t}=this;if(!e||t||(this._sketchLoaderTask||this._loadSketchResources(),!this._sketchLoaderTask?.value))return null;let{geometryType:n}=e,r=n===`point`?`pin`:n===`polyline`?`line`:`polygon`,i=this._sketchLoaderTask.value;return X(`div`,{class:T.sketchTools},X(i,{icon:r,messages:this._imageSketchToolsMessages,type:n,onAction:this._onAction}))}get _renderThumbnails(){let{currentBestFeature:e,thumbnails:t}=this.viewModel;return e?X(`div`,{class:T.carouselContent},t?.items.map(({url:t,objectId:n,rotation:r},i)=>X(`div`,{class:`${T.carouselItemWrapper}${e.attributes.objectId===n?`--selected`:``}`,key:`${T.carouselItemWrapper}-${i}`},X(`canvas`,{afterCreate:this._registerGalleryItem,afterRemoved:this._unregisterGalleryItem,alt:`thumbnail-${n}`,class:T.carouselItem,"data-objectid":`${n}`,"data-rotation":`${r}`,"data-src":t,onclick:this._loadImageFromGallery,onmouseenter:this._highlight,onmouseleave:this._removeHighlight})))):null}_resetImageTools(){this.viewModel.sharpness=this.viewModel.brightness=this.viewModel.contrast=0}_resetVideoTools(){this.viewModel.videoViewModel?.resetVideoEnhancementTools()}_storeNavigationToolReference(e){this._navigationTool=e}_toggleAdditionalCameraLocations(){this.isAdditionalPointSourcesVisible=!this.isAdditionalPointSourcesVisible}_toggleAdditionalCoverage(){this.isAdditionalCoverageVisible=!this.isAdditionalCoverageVisible}_toggleCurrentCoverage(){this.currentCoverageVisible=!this.currentCoverageVisible}_toggleShowSelectedImage(){let e=!this.shouldShowSelectedImage;e&&this._disableExploreImages3D(),this.shouldShowSelectedImage=e,this._toggleDisabledViewer(this.shouldShowSelectedImage)}_resetSuperimposeOffset(){this.viewModel.mode==="default"?(this._defaultSuperimposeZOffsetPercentage=50,this.viewModel.setDefaultSuperimposeZOffsetPercentage(50)):(this._panoramicSuperimposeRadiusOffsetPercentage=50,this.viewModel.setPanoramicSuperimposeRadiusPercentage(50))}_toggleSuperimposeCameraLock(){this.viewModel.updateDefaultSuperimposeCameraLock(!this.defaultSuperimposeCameraLockEnabled)}_toggleSuperimposeView(){this.superimposeViewEnabled=!this.superimposeViewEnabled}_disableExploreImages3D(){this._exploreImages3DMenuOpen=!1,this._exploreImages3DCollapsed=!1,this.verticalFilterEnabled=!1,this.viewModel.setFrustumSearchEnabled(!1)}_setExploreImages3DSearchMode(e){let t=e===`3d`||e===`both`,n=e===`frustum`||e===`both`,r=this.verticalFilterEnabled===t&&this.viewModel.frustumSearchEnabled===n;this.shouldShowSelectedImage=!1,this.verticalFilterEnabled=t,this.viewModel.setFrustumSearchEnabled(n),this._toggleDisabledViewer(!0),r&&this.scheduleRender()}_toggleExploreImages3DMenu(e){e.stopPropagation(),this._exploreImages3DMenuOpen?this._disableExploreImages3D():(this._closeAllImageTools(),this.shouldShowSelectedImage=!1,this._exploreImages3DCollapsed=!1,!this.verticalFilterEnabled&&!this.viewModel.frustumSearchEnabled&&this._setExploreImages3DSearchMode(`3d`),this._exploreImages3DMenuOpen=!0)}_toggleExploreImages3DSelection(e,{currentTarget:t}){this._setExploreImages3DSearchMode(this._getNextExploreImages3DSearchMode(e)),t.checked=e===`3d`?this.verticalFilterEnabled:this.viewModel.frustumSearchEnabled}_getNextExploreImages3DSearchMode(e){let t=this.verticalFilterEnabled,n=this.viewModel.frustumSearchEnabled,r=t&&n;return e===`3d`?r?`frustum`:n?`both`:`frustum`:r?`3d`:t?`both`:`3d`}_toggleDisabledViewer(e){e&&(this.disabled=!1)}_toggleEnhancementToolState(e){e.stopPropagation();let t=this.enhancementToolActive;this._closeAllImageTools(),this.enhancementToolActive=!t}_toggleExploreImages(){this.disabled=!this.disabled,this.disabled&&(this.shouldShowSelectedImage=!1,this._disableExploreImages3D())}_toggleGroupSelection(e,t){let n=this._rootActionTitleToFocus;e&&(this._rootActionTitleToFocus=t?.currentTarget?.getAttribute(`title`)),this.selectedGroup=e,this._actionTitleToFocus=e?this.messages.previous:n}_toggleImageOverlays(e){e.stopPropagation();let t=this.imageOverlaysOpened;this._closeAllImageTools(),this.imageOverlaysOpened=!t}_toggleImageGallery(e){e.stopPropagation();let t=this.galleryOpened;this._closeAllImageTools(),this.galleryOpened=this.imageGalleryEnabled?!t:!1}_toggleLocationTool(e){let t=this.imageLocationToolActive,n=this.triangularMeasurementActive&&t;this._closeAllImageTools(),this.imageLocationToolActive=n||!t,e.stopPropagation()}_toggleMeasurementSketch(e,t){e.stopPropagation();let n=this.measureType,r=this.triangularMeasurementActive;this._closeAllImageTools(),this.measureType=n===t&&!r?null:t,this.measureType===t&&(this.viewModel.displayNewMeasurementButton=!0)}_toggleNavigationTool(){let e=this.navigationToolActive;this._closeAllImageTools(),this.navigationToolActive=!e}_toggleMapImageConversionToolState(){this.mapImageConversionToolState=!this.mapImageConversionToolState}_toggleTriangularAreaMeasurements(){this._toggleTriangularMeasurements(`area`)}_toggleTriangularDistanceMeasurements(){this._toggleTriangularMeasurements(`distance`)}_toggleTriangularLocation(){let e=this.triangularMeasurementActive,t=this.navigationToolActive;e?this.measureType===null?this.imageLocationToolActive?this._closeImageToolsAndToggleNavigation(e,t):this._activateTriangulatedImageLocationTool():this._resetMeasureTypeAndActivateImageLocationTool():this._activateTriangulatedImageLocationWorkflow(e,t)}_toggleTriangularMeasurements(e){let t=this.triangularMeasurementActive,n=this.viewModel.measureType,r=this.navigationToolActive;t?e===n?(this._closeAllImageTools(),this.triangularMeasurementActive=!t,this.navigationToolActive=!r):(this.imageLocationToolActive=!1,this.measureType=e,this.viewModel.displayNewMeasurementButton=!0):(this._closeAllImageTools(),this.measureType=e,this.triangularMeasurementActive=!t,this.navigationToolActive=r?!0:!r,this.viewModel.displayNewMeasurementButton=!0)}_unregisterGalleryItem(e){this._galleryObserver.unobserve(e)}_updateNavigationTool(e){let{previousFeatureAngle:t,bestFeatureAngle:n}=this.viewModel,r=(n-t+540)%360-180;e.style.setProperty(E,`${t}deg`),e.style.setProperty(D,`${t+r}deg`)}async loadBestImage(e,t){return this.viewModel.loadBestImage(e,t)}loadImageFromSource(e,t,n){return e==="default"?this.viewModel.loadMediaSource(t,n):this.viewModel.loadPanoramicMediaSource(t,n)}async overlayMapFeatures(e,t){return this.removeHandles(`${Q.overlayed}-${e.id}`),this.addHandles(u(()=>e.visible,()=>{this.viewModel.toggleOverlayMapFeatures(e.id,e.visible,this.showMapFeatures)}),`${Q.overlayed}-${e.id}`),this._overlayedLayers.add(e),this.viewModel.overlayMapFeatures(e,t&&this.showMapFeatures)}async plotMapPoint(e){return this.viewModel.plotMapPoint(e)}plotReferencePointOnGround(e){this.viewModel.plotReferencePointOnGround(e)}plotReferencePointOnImage(e){this.viewModel.plotReferencePointOnImage(e)}removeOverlayedGraphicsOnImage(e){this.removeHandles(`${Q.overlayed}-${e}`),this._overlayedLayers.remove(this._overlayedLayers.find(t=>t.id===e)),this.viewModel.removeOverlayedGraphicsOnImage(e)}resetImage(){this.viewModel.resetImage()}render(){return X(`div`,{class:this.classes(q.widget,O)},this._renderRoot)}async showImageByObjectId(e,t){return this.viewModel.showImageByObjectId(e,t)}async startDataCapture(e){return this.viewModel.startDataCapture(e)}async stopDataCapture(e){return this.viewModel.stopDataCapture(e)}updateSuitabilities(e){this.viewModel.updateSuitabilities(e)}};e([g({readOnly:!0})],$.prototype,`accuracyParametersMissing`,null),e([g()],$.prototype,`actionBarPosition`,void 0),e([g()],$.prototype,`activeLayer`,null),e([g()],$.prototype,`activeVideoIcon`,null),e([g()],$.prototype,`activeAudioIcon`,null),e([g()],$.prototype,`cameraHeadingThreshold`,null),e([g()],$.prototype,`cameraPitchThreshold`,null),e([g()],$.prototype,`canNavigateSequentially`,null),e([g()],$.prototype,`currentBestFeature`,null),e([g()],$.prototype,`currentCoverageVisible`,null),e([g()],$.prototype,`dataCaptureEnabled`,void 0),e([g()],$.prototype,`dataCaptureLayer`,null),e([g()],$.prototype,`depthImageNotSupported`,null),e([g()],$.prototype,`disabled`,null),e([g()],$.prototype,`enhancementToolActive`,null),e([g()],$.prototype,`features`,null),e([g()],$.prototype,`imagePointsInView`,null),e([g()],$.prototype,`galleryOpened`,void 0),e([g()],$.prototype,`icon`,null),e([g()],$.prototype,`imageEnhancementToolActive`,void 0),e([g()],$.prototype,`videoEnhancementToolActive`,void 0),e([g({readOnly:!0})],$.prototype,`imageGalleryEnabled`,null),e([g()],$.prototype,`imageLocationToolActive`,null),e([g()],$.prototype,`imageOverlaysOpened`,void 0),e([g({readOnly:!0})],$.prototype,`invalidCameraHeading`,null),e([g()],$.prototype,`isAdditionalCoverageVisible`,null),e([g()],$.prototype,`isAdditionalPointSourcesVisible`,null),e([g()],$.prototype,`mapImageConversionToolState`,null),e([g()],$.prototype,`measureType`,null),e([g()],$.prototype,`layer`,null),e([g()],$.prototype,`navigationToolActive`,void 0),e([g()],$.prototype,`navigationMode`,null),e([J(b()),g({type:N})],$.prototype,`viewModel`,void 0),e([g(),Y(`esri/widgets/OrientedImageryViewer/t9n/OrientedImageryViewer`)],$.prototype,`messages`,void 0),e([g(),Y(`esri/core/t9n/Units`)],$.prototype,`measurementUnitMessages`,void 0),e([g(),Y(`esri/t9n/common`)],$.prototype,`messagesCommon`,void 0),e([g(),Y(`esri/widgets/Sketch/t9n/Sketch`)],$.prototype,`messagesSketch`,void 0),e([g()],$.prototype,`pixelMeasurementUnit`,void 0),e([g()],$.prototype,`pixelAreaMeasurementUnit`,void 0),e([g({readOnly:!0})],$.prototype,`popupEnabled`,null),e([g()],$.prototype,`preloadMedia`,null),e([g()],$.prototype,`referencePoint`,null),e([g()],$.prototype,`selectedFeatureObjectId`,null),e([g()],$.prototype,`selectedPoint`,null),e([g()],$.prototype,`selectedGroup`,void 0),e([g()],$.prototype,`showCameraLocations`,void 0),e([g()],$.prototype,`showMapFeatures`,void 0),e([J([`create`,`delete`,`redo`,`undo`,`update`]),g({readOnly:!0})],$.prototype,`sketchViewModel`,null),e([g()],$.prototype,`triangularMeasurementActive`,null),e([g()],$.prototype,`videoLoaded`,null),e([g()],$.prototype,`view`,null),e([g({type:P,nonNullable:!0})],$.prototype,`visibleElements`,void 0),e([g()],$.prototype,`determineWorkflowForFeature`,null),e([g()],$.prototype,`shouldShowSelectedImage`,null),e([g()],$.prototype,`superimposeViewEnabled`,null),e([g()],$.prototype,`defaultSuperimposeCameraLockEnabled`,null),e([g()],$.prototype,`updateFootprint`,null),e([g()],$.prototype,`verticalFilterEnabled`,null),e([g()],$.prototype,`_defaultSuperimposeZOffsetPercentage`,void 0),e([g()],$.prototype,`_panoramicSuperimposeRadiusOffsetPercentage`,void 0),e([g()],$.prototype,`_exploreImages3DMenuOpen`,void 0),e([g()],$.prototype,`_exploreImages3DCollapsed`,void 0),e([g()],$.prototype,`_actionBarLayout`,null),e([g()],$.prototype,`_activeMeasurementHeading`,null),e([g()],$.prototype,`_imageOverlaysLoaderTask`,void 0),e([g()],$.prototype,`_imageMeasurementToolsLoaderTask`,void 0),e([g()],$.prototype,`_navigationSettingsLoaderTask`,void 0),e([g()],$.prototype,`_navigationTask`,void 0),e([g()],$.prototype,`_measurementToggle`,null),e([g()],$.prototype,`_renderRoot`,null),e([g()],$.prototype,`_imageEnhancementTools`,null),e([g()],$.prototype,`_videoEnhancementTools`,null),e([g()],$.prototype,`_superimposeTools`,null),e([g()],$.prototype,`_exploreImages3DTools`,null),e([g()],$.prototype,`_imageGalleryPanel`,null),e([g()],$.prototype,`_imageGalleryContext`,null),e([g()],$.prototype,`_imageOverlaysComponent`,null),e([g()],$.prototype,`_navigationUI`,null),e([g()],$.prototype,`_imageOverlayMessages`,null),e([g()],$.prototype,`_imageSketchToolsMessages`,null),e([g()],$.prototype,`_imageOverlaysEnabled`,null),e([g()],$.prototype,`_imageViewer`,null),e([g()],$.prototype,`_imageViewerTriangular`,null),e([g()],$.prototype,`_videoViewer`,null),e([g()],$.prototype,`_locationToggle`,null),e([g()],$.prototype,`_messageBox`,null),e([g()],$.prototype,`_navigationToolExpanded`,void 0),e([g()],$.prototype,`_navigationTool`,void 0),e([g()],$.prototype,`_panoramicVideoViewer`,null),e([g()],$.prototype,`_panoramicViewer`,null),e([g({readOnly:!0})],$.prototype,`noImageInSequenceError`,null),e([g()],$.prototype,`_renderNavigation`,null),e([g()],$.prototype,`_renderThumbnails`,null),e([g()],$.prototype,`_sketchLoaderTask`,void 0),$=e([ee(`esri.widgets.OrientedImageryViewer`)],$);const le=$;export{le as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../Graphic.js";import t from"../../core/Collection.js";import n from"../../core/Error.js";import{rad2deg as r,deg2rad as i}from"../../core/mathUtils.js";import{throwIfAborted as a}from"../../core/promiseUtils.js";import o from"../../geometry/support/MeshMaterialMetallicRoughness.js";import s from"../../geometry/support/MeshTexture.js";import{createSphere as c}from"../../geometry/support/meshUtils.js";import l from"../../symbols/FillSymbol3DLayer.js";import u from"../../symbols/MeshSymbol3D.js";import{defaultImageSphereCenter as d,defaultImageSphereSize as f}from"./constants.js";import{loadRasterFactory as p,loadPanoramicTilePyramid as m}from"./support/importUtils.js";function h({data:e,center:t=d,size:n=f,horizonPitch:r=0,horizonYaw:i=0,horizonRoll:a=0}){let l=t.clone();l.z=-n/2;let u=c(l,{size:n,densificationFactor:2,vertexSpace:`georeferenced`,material:new o({colorTexture:new s({data:e}),unlit:!0})});if(u.components[0].trustSourceNormals=!0,u.vertexAttributes.uv){let e=u.vertexAttributes.uv.length??0;for(let t=0;t<e;t++)u.vertexAttributes.uv[t*2+0]=1-u.vertexAttributes.uv[t*2+0]}return u.rotate(r,a,i,{origin:u.extent.center}),u.centerAt(l),u}function g(n){return new e({geometry:n,symbol:new u({symbolLayers:new t([new l])})})}function _(e,t){return 2*r(Math.atan(Math.tan(i(e/2))*Math.sqrt((1/t)**2+1)))}async function v(e,t){let n=await(await p()).open({url:e,ioConfig:{skipExtensions:[`jgw`,`aux.xml`],skipMapInfo:!0},...t});return a(t),y(n,{url:e})}const y=(e,t)=>{if(!e)throw new n(`panoramic-viewer:missing-raster`,`Raster data could not be loaded`,t);return e};async function b(e,t,n){let r=await m();return a(n),new r({raster:e,horizonPitch:t.pitch,horizonYaw:t.yaw,horizonRoll:t.roll})}async function x(e,t){return e?.length?await Promise.all(e.map(e=>e.loadMesh(t))):[]}export{h as createImageSphere,_ as findDiagonalFOV,x as loadMeshes,b as loadPyramid,v as loadRaster,g as meshToGraphic};
|
|
2
|
+
import e from"../../Graphic.js";import t from"../../core/Collection.js";import n from"../../core/Error.js";import{rad2deg as r,deg2rad as i}from"../../core/mathUtils.js";import{throwIfAborted as a}from"../../core/promiseUtils.js";import o from"../../geometry/support/MeshMaterialMetallicRoughness.js";import s from"../../geometry/support/MeshTexture.js";import{createSphere as c}from"../../geometry/support/meshUtils.js";import l from"../../symbols/FillSymbol3DLayer.js";import u from"../../symbols/MeshSymbol3D.js";import{defaultImageSphereCenter as d,defaultImageSphereSize as f}from"./constants.js";import{loadRasterFactory as p,loadPanoramicTilePyramid as m}from"./support/importUtils.js";function h({data:e,center:t=d,size:n=f,horizonPitch:r=0,horizonYaw:i=0,horizonRoll:a=0}){let l=t.clone();l.z=-n/2;let u=c(l,{size:n,densificationFactor:2,vertexSpace:`georeferenced`,material:new o({colorTexture:new s({data:e}),unlit:!0})});if(u.components[0].trustSourceNormals=!0,u.vertexAttributes.uv){let e=u.vertexAttributes.uv.length??0;for(let t=0;t<e;t++)u.vertexAttributes.uv[t*2+0]=1-u.vertexAttributes.uv[t*2+0]}return u.rotate(r,a,i,{origin:u.extent.center}),u.centerAt(l),u}function g(n){return new e({geometry:n,symbol:new u({symbolLayers:new t([new l])})})}function _(e,t){return 2*r(Math.atan(Math.tan(i(e/2))*Math.sqrt((1/t)**2+1)))}async function v(e,t){let n=await(await p()).open({url:e,ioConfig:{skipExtensions:[`jgw`,`aux.xml`],skipMapInfo:!0,tileGeneration:`immediate`},...t});return a(t),y(n,{url:e})}const y=(e,t)=>{if(!e)throw new n(`panoramic-viewer:missing-raster`,`Raster data could not be loaded`,t);return e};async function b(e,t,n){let r=await m();return a(n),new r({raster:e,horizonPitch:t.pitch,horizonYaw:t.yaw,horizonRoll:t.roll})}async function x(e,t){return e?.length?await Promise.all(e.map(e=>e.loadMesh(t))):[]}export{h as createImageSphere,_ as findDiagonalFOV,x as loadMeshes,b as loadPyramid,v as loadRaster,g as meshToGraphic};
|