@arcgis/core 6.0.0-next.36 → 6.0.0-next.38
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/analysis/DimensionAnalysis.js +1 -1
- package/analysis/DimensionSimpleStyle.js +1 -1
- package/analysis/LengthDimension.js +1 -1
- package/analysis/LineOfSightAnalysis.js +1 -1
- package/analysis/LineOfSightAnalysisTarget.js +1 -1
- package/analysis/Viewshed.js +1 -1
- package/analysis/ViewshedAnalysis.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{0202eb8c2b2865f99981.js → 00311d1b18d5952a014b.js} +1 -1
- package/assets/esri/core/workers/chunks/{9503eedfdda55fc5adab.js → 091ec4fe83038f3558f4.js} +1 -1
- package/assets/esri/core/workers/chunks/0b21d0e2e5a91c34a108.js +1 -0
- package/assets/esri/core/workers/chunks/{322b22a5d54e404bebd5.js → 0c893837f67829757df7.js} +1 -1
- package/assets/esri/core/workers/chunks/123541f79be7adff0818.js +1 -0
- package/assets/esri/core/workers/chunks/{155861fbd0e5fc2db80c.js → 1a91443970d64a59521d.js} +1 -1
- package/assets/esri/core/workers/chunks/1e37337f47f45d6d8005.js +1 -0
- package/assets/esri/core/workers/chunks/{4e5405134d079bdf9b7a.js → 1f76f6dcdae9f55389cb.js} +1 -1
- package/assets/esri/core/workers/chunks/{f717005e14a7e9141df7.js → 2050c844b5a29b1df28a.js} +1 -1
- package/assets/esri/core/workers/chunks/2c3612379111457c3221.js +1 -0
- package/assets/esri/core/workers/chunks/2d16b5a44f840147e882.js +1 -0
- package/assets/esri/core/workers/chunks/{d9a240a3c6bf85124474.js → 342a97974a78007b25e0.js} +1 -1
- package/assets/esri/core/workers/chunks/34467f7d84baffd772a3.js +1 -0
- package/assets/esri/core/workers/chunks/396299c22994c502e41c.js +1 -0
- package/assets/esri/core/workers/chunks/{03daf6f235c6edef6268.js → 398ec098fffe6abceedd.js} +1 -1
- package/assets/esri/core/workers/chunks/3b32a24488b3068f0cb7.js +1 -0
- package/assets/esri/core/workers/chunks/3b5e9e0b180dc10491ec.js +1 -0
- package/assets/esri/core/workers/chunks/{4d18b48d4a282a0f341c.js → 427d929dc7f89b0a1ea9.js} +1 -1
- package/assets/esri/core/workers/chunks/432728c557be5dfa26b5.js +1 -0
- package/assets/esri/core/workers/chunks/46969f379623810b2eca.js +1 -0
- package/assets/esri/core/workers/chunks/46edd6c9ed6701e6b975.js +1 -0
- package/assets/esri/core/workers/chunks/{8b0d5551978ab0aac0d1.js → 520f499d79fa71f262c7.js} +1 -1
- package/assets/esri/core/workers/chunks/5473409fee59db80f87d.js +1 -0
- package/assets/esri/core/workers/chunks/553a8bf5bc5c56d1bcaf.js +1 -0
- package/assets/esri/core/workers/chunks/{2211ff0a1f1ae8100231.js → 585ae43c7bcb86a26762.js} +1 -1
- package/assets/esri/core/workers/chunks/58716a3a6106a1b0fb9d.js +1 -0
- package/assets/esri/core/workers/chunks/{aa6ee2aa4ff6e6d41efb.js → 5882f349f3771868e67f.js} +1 -1
- package/assets/esri/core/workers/chunks/592b5db1459c02cf6a0c.js +1 -0
- package/assets/esri/core/workers/chunks/{1b17f5f720f6cf3f6d73.js → 5be386b3af867b19ff39.js} +1 -1
- package/assets/esri/core/workers/chunks/{ea81f9d71b0842a4be26.js → 5e48898cebb6dbaf09b5.js} +1 -1
- package/assets/esri/core/workers/chunks/6a21dc13a465757ba007.js +1 -0
- package/assets/esri/core/workers/chunks/{139e753d95cfc9470e74.js → 6a65fc1a2931230fe994.js} +1 -1
- package/assets/esri/core/workers/chunks/{3e406043a374ee17475b.js → 6f2e7e663229b223b4df.js} +1 -1
- package/assets/esri/core/workers/chunks/{379db67f78161ebd5468.js → 7023651ed6398dcf8efb.js} +1 -1
- package/assets/esri/core/workers/chunks/{90360c0bd053d3e3fd77.js → 7027a0e7bfabb3bb7fc2.js} +1 -1
- package/assets/esri/core/workers/chunks/76e80381fa6d1e084796.js +1 -0
- package/assets/esri/core/workers/chunks/78818c2a898444f7e890.js +1 -0
- package/assets/esri/core/workers/chunks/{40c2674dae73f0942751.js → 7d497df6e13162156342.js} +1 -1
- package/assets/esri/core/workers/chunks/{3b380e64566a6cce59e2.js → 7e0ed6e8f7b77e43f628.js} +1 -1
- package/assets/esri/core/workers/chunks/8c3779de09291170497f.js +1 -0
- package/assets/esri/core/workers/chunks/8e391b5b82429f39791e.js +1 -0
- package/assets/esri/core/workers/chunks/947f3a1cad976bba9738.js +1 -0
- package/assets/esri/core/workers/chunks/{59a1b637d2c107504a04.js → 966204d6dedc8149c3e9.js} +1 -1
- package/assets/esri/core/workers/chunks/9826baa3c15ea2062669.js +1 -0
- package/assets/esri/core/workers/chunks/{d3369ffed19f4c264dcd.js → 9ab0735e86cf8932bf9d.js} +1 -1
- package/assets/esri/core/workers/chunks/ab0ea4042f4e13874aed.js +1 -0
- package/assets/esri/core/workers/chunks/ab98ade3257360015d6c.js +1 -0
- package/assets/esri/core/workers/chunks/ac107079342251a984dd.js +1 -0
- package/assets/esri/core/workers/chunks/{572aec57593a08b8045b.js → b15a8d4322f3b7819d2f.js} +1 -1
- package/assets/esri/core/workers/chunks/{552c36b40e5a5ec117fb.js → b472c0a21ae29e653f7d.js} +1 -1
- package/assets/esri/core/workers/chunks/b90271ce38522bcf813b.js +1 -0
- package/assets/esri/core/workers/chunks/ba91df9835cdea7698a9.js +1 -0
- package/assets/esri/core/workers/chunks/bdd76a0b6c14e7fb6984.js +1 -0
- package/assets/esri/core/workers/chunks/bfe13ac9fa1aafb190a1.js +1 -0
- package/assets/esri/core/workers/chunks/{f372f4eb5527238c46f5.js → c31830ee897d5a7f2582.js} +1 -1
- package/assets/esri/core/workers/chunks/c48d97c38e821be17dc5.js +1 -0
- package/assets/esri/core/workers/chunks/{0a508e25ec05363e1f04.js → c7ad62f54d2abe1d17a0.js} +1 -1
- package/assets/esri/core/workers/chunks/cb1642ea8b66231cbfb5.js +1 -0
- package/assets/esri/core/workers/chunks/ce0274847ccce6a1ac53.js +1 -0
- package/assets/esri/core/workers/chunks/cf21b217b13770757cb8.js +1 -0
- package/assets/esri/core/workers/chunks/cf2e5f827cea7d7319ce.js +1 -0
- package/assets/esri/core/workers/chunks/d42a4f47843e075c56a8.js +1 -0
- package/assets/esri/core/workers/chunks/dae2036faa28dade2119.js +1 -0
- package/assets/esri/core/workers/chunks/e2430bc3a1edeb5c3266.js +1 -0
- package/assets/esri/core/workers/chunks/e9457a67befc61e11095.js +1 -0
- package/assets/esri/core/workers/chunks/f06ef153e106b26a6748.js +1 -0
- package/assets/esri/core/workers/chunks/faae3c43048b42341536.js +1 -0
- package/assets/esri/core/workers/chunks/fc77eb7683e708774168.js +1 -0
- package/assets/esri/core/workers/chunks/fd967a9f3cf0e2890dbb.js +1 -0
- package/chunks/Clouds.glsl.js +7 -11
- package/chunks/h.js +2 -0
- package/chunks/projector.js +2 -0
- package/config.js +1 -1
- package/core/libs/gl-matrix-2/math/vec3.js +1 -1
- package/core/sanitizerUtils.js +1 -1
- package/form/FormTemplate.js +1 -1
- package/form/elements/Element.js +1 -1
- package/form/elements/FieldElement.js +1 -1
- package/geometry/ellipsoidUtils.js +4 -4
- package/geometry/support/frustumPlanes.js +1 -1
- package/geometry/support/plane.js +1 -1
- package/geometry/support/triangle.js +1 -1
- package/kernel.js +1 -1
- package/layers/BaseElevationLayer.js +1 -1
- package/layers/ElevationLayer.js +1 -1
- package/layers/GraphicsLayer.js +1 -1
- package/layers/IntegratedMesh3DTilesLayer.js +1 -1
- package/layers/IntegratedMeshLayer.d.ts +2 -0
- package/layers/IntegratedMeshLayer.js +1 -1
- package/layers/Lyr3DWasmPerSceneView.js +1 -1
- package/layers/geospatialPDF/geospatialPDFParserUtils.js +1 -1
- package/layers/geospatialPDF/support/datumUtils.js +2 -0
- package/layers/geospatialPDF/support/ellipsoidUtils.js +2 -0
- package/layers/geospatialPDF/support/geographicProjectionUtils.js +2 -0
- package/layers/geospatialPDF/support/parameterUtils.js +2 -0
- package/layers/geospatialPDF/support/projectedProjectionUtils.js +3 -0
- package/layers/geospatialPDF/support/projectionToSpatialReference.js +2 -0
- package/layers/geospatialPDF/support/statePlaneUtils.js +2 -0
- package/layers/geospatialPDF/support/unitUtils.js +2 -0
- package/layers/geospatialPDF/support/validateProjectionUtils.js +2 -0
- package/layers/graphics/sources/support/clientSideDefaults.js +2 -2
- package/layers/knowledgeGraph/KnowledgeGraphLayerDataManager.js +1 -1
- package/layers/knowledgeGraph/KnowledgeGraphSublayer.js +1 -1
- package/layers/ogc/ogcFeatureUtils.js +1 -1
- package/layers/save/imageryUtils.js +1 -1
- package/layers/save/mediaLayerUtils.js +1 -1
- package/layers/save/streamLayerUtils.js +1 -1
- package/layers/support/ControlPoint.js +1 -1
- package/layers/support/ControlPointsGeoreference.js +1 -1
- package/layers/support/DimensionalDefinition.js +1 -1
- package/layers/support/ElevationQuery.js +1 -1
- package/layers/support/LabelClass.js +1 -1
- package/layers/support/LabelExpressionInfo.js +1 -1
- package/layers/support/MediaElementBase.js +1 -1
- package/layers/support/MosaicRule.js +1 -1
- package/layers/support/MultidimensionalSubset.js +1 -1
- package/layers/support/RasterBandInfo.js +1 -1
- package/layers/support/RasterFunction.js +1 -1
- package/layers/support/RasterFunctionTemplate.js +1 -1
- package/layers/support/RasterInfo.js +1 -1
- package/layers/support/RasterSensorInfo.js +1 -1
- package/layers/support/RasterStorageInfo.js +1 -1
- package/layers/support/VideoElement.js +1 -1
- package/layers/support/layersLoader.js +1 -1
- package/layers/video/VideoController.js +3 -3
- package/layers/video/types.d.ts +12 -0
- package/legend/ActiveLayerInfo.d.ts +5 -1
- package/legend/ActiveLayerInfo.js +1 -1
- package/libs/maquette-advanced-projector/projector.js +1 -1
- package/linkChart/LayoutSettings.js +1 -1
- package/linkChart/RootedLayoutSettings.js +1 -1
- package/package.json +3 -3
- package/renderers/FlowRenderer.js +1 -1
- package/renderers/RasterColormapRenderer.js +1 -1
- package/renderers/RasterShadedReliefRenderer.js +1 -1
- package/renderers/RasterStretchRenderer.js +1 -1
- package/renderers/VectorFieldRenderer.js +1 -1
- package/renderers/support/ColormapInfo.js +1 -1
- package/renderers/support/RasterPresetRenderer.js +1 -1
- package/renderers/support/rasterRendererHelper.js +1 -1
- package/rest/knowledgeGraph/GraphApplyEdits.js +1 -1
- package/rest/support/BaseImageMeasureParameters.js +1 -1
- package/rest/support/BaseImageMeasureResult.js +1 -1
- package/rest/support/FindImagesParameters.js +1 -1
- package/rest/support/FindImagesResult.js +1 -1
- package/rest/support/ImageAngleParameters.js +1 -1
- package/rest/support/ImageAngleResult.js +1 -1
- package/rest/support/ImageAreaParameters.js +1 -1
- package/rest/support/ImageAreaResult.js +1 -1
- package/rest/support/ImageBoundaryParameters.js +1 -1
- package/rest/support/ImageBoundaryResult.js +1 -1
- package/rest/support/ImageDistanceParameters.js +1 -1
- package/rest/support/ImageDistanceResult.js +1 -1
- package/rest/support/ImageGPSInfoParameters.js +1 -1
- package/rest/support/ImageGPSInfoResult.js +1 -1
- package/rest/support/ImageHeightParameters.js +1 -1
- package/rest/support/ImageHeightResult.js +1 -1
- package/rest/support/ImageHistogramParameters.js +1 -1
- package/rest/support/ImageIdentifyParameters.js +1 -1
- package/rest/support/ImageIdentifyResult.js +1 -1
- package/rest/support/ImagePixelLocationParameters.js +1 -1
- package/rest/support/ImagePixelLocationResult.js +1 -1
- package/rest/support/ImagePointParameters.js +1 -1
- package/rest/support/ImagePointResult.js +1 -1
- package/rest/support/ImageSample.js +1 -1
- package/rest/support/ImageSampleParameters.js +1 -1
- package/rest/support/ImageSampleResult.js +1 -1
- package/rest/support/ImageToMapMultirayParameters.js +1 -1
- package/rest/support/ImageToMapParameters.js +1 -1
- package/rest/support/ImageUrlParameters.js +1 -1
- package/rest/support/ImageUrlResult.js +1 -1
- package/rest/support/ImageVolumeParameters.js +1 -1
- package/rest/support/ImageVolumeResult.js +1 -1
- package/rest/support/MapToImageParameters.js +1 -1
- package/rest/support/MeasureAreaFromImageResult.js +1 -1
- package/rest/support/MeasureFromImageParameters.js +1 -1
- package/rest/support/MeasureLengthFromImageResult.js +1 -1
- package/symbols/support/cimSymbolUtils.js +1 -1
- package/symbols/support/renderUtils.js +1 -1
- package/views/2d/ViewState.d.ts +3 -3
- package/views/2d/ViewState.js +1 -1
- package/views/2d/ViewStateManager.js +1 -1
- package/views/2d/engine/Bitmap.js +1 -1
- package/views/2d/engine/flow/styles/Imagery.js +1 -1
- package/views/2d/engine/vectorTiles/SpriteMosaic.js +1 -1
- package/views/2d/engine/vectorTiles/VTLPainter3D.js +1 -1
- package/views/2d/engine/vectorTiles/decluttering/CollisionJob.js +1 -1
- package/views/2d/engine/vectorTiles/style/geoJSONVectorTileUtils.js +1 -1
- package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
- package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
- package/views/2d/engine/webgl/Overlay.js +1 -1
- package/views/2d/engine/webgl/OverlayMultipoint.js +1 -1
- package/views/2d/engine/webgl/SpriteMosaic.js +1 -1
- package/views/2d/engine/webgl/VideoScreenRenderer.js +1 -1
- package/views/2d/engine/webgl/animations/store/AnimationStore.js +1 -1
- package/views/2d/engine/webgl/collisions/LabelMetric.js +1 -1
- package/views/2d/engine/webgl/collisions/LabelStore.js +1 -1
- package/views/2d/engine/webgl/effects/highlight/HighlightGradient.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/TextureStatisticsTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AAnimatedShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedMarkerShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/blend/BlendTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/colorize/ColorizeTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityResources.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/drop-shadow/DropShadowTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapResources.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelMeshWriter.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/magnifier/MagnifierTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/opacity/OpacityTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterColorizerTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterHighlightTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/textureUtils.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/AFeatureShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/FillShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/LineShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/OutlineFillShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/tile/TileDebugInfoTexture.js +1 -1
- package/views/2d/engine/webgl/textureUtils.js +1 -1
- package/views/2d/engine/webgl/util/IntervalMatcher.js +1 -1
- package/views/2d/layers/LayerView2D.js +1 -1
- package/views/2d/webglDeps.js +1 -1
- package/views/3d/FocusAreasView.js +1 -1
- package/views/3d/GroundView3D.js +1 -1
- package/views/3d/input/SceneInputManager.js +1 -1
- package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
- package/views/3d/layers/graphics/ElevationAligners.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DSymbol.js +1 -1
- package/views/3d/layers/i3s/I3SBinaryReader.js +1 -1
- package/views/3d/layers/i3s/LayerElevationProvider.js +1 -1
- package/views/3d/state/ConstraintsManager.js +1 -1
- package/views/3d/state/ViewState.js +1 -1
- package/views/3d/state/ViewStateManager.js +1 -1
- package/views/3d/support/engineContent/line.js +1 -1
- package/views/3d/support/engineContent/marker.js +1 -1
- package/views/3d/support/flow/StreamlineResources3D.js +1 -1
- package/views/3d/support/flow/StreamlineResources3DOverlay.js +1 -1
- package/views/3d/support/flow/StreamlineResources3DShape.js +1 -1
- package/views/3d/support/flow/geometryUtils.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatFadeHelper.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatIntersectionHandler.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatOrderTexture.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatTextureAtlas.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianTileBuilder.js +2 -0
- package/views/3d/support/gaussianSplatting/GaussianTileLifecycle.js +2 -0
- package/views/3d/support/gaussianSplatting/formatConstants.js +2 -0
- package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
- package/views/3d/support/pointsOfInterest/StableSurfaceCenter.js +1 -1
- package/views/3d/terrain/OverlayManager.js +1 -1
- package/views/3d/terrain/OverlayRenderer.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/terrain/Tile.js +1 -1
- package/views/3d/terrain/TileCompositor.js +1 -1
- package/views/3d/terrain/TileRenderer.js +1 -1
- package/views/3d/terrain/tileUtils.js +1 -1
- package/views/3d/webgl/RenderNode.d.ts +1 -1
- package/views/3d/webgl-engine/core/FBOCache.js +1 -1
- package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/readShadow.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/util/GaussianSplatUnpacking.glsl.js +15 -11
- package/views/3d/webgl-engine/effects/WeatherFader.js +1 -1
- package/views/3d/webgl-engine/effects/atmosphere/LocalAtmosphere.js +1 -1
- package/views/3d/webgl-engine/effects/atmosphere/MarsAtmosphere.js +1 -1
- package/views/3d/webgl-engine/effects/clouds/CloudsRenderer.js +1 -1
- package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +19 -9
- package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
- package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
- package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
- package/views/3d/webgl-engine/effects/stars/Stars.js +1 -1
- package/views/3d/webgl-engine/lib/AttributeView.js +1 -1
- package/views/3d/webgl-engine/lib/BasisUtil.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/3d/webgl-engine/lib/DDSUtil.js +1 -1
- package/views/3d/webgl-engine/lib/DrapedHeatmapRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +1 -1
- package/views/3d/webgl-engine/lib/GaussianSplatRenderUtils.js +1 -1
- package/views/3d/webgl-engine/lib/GeometryUtil.js +1 -1
- package/views/3d/webgl-engine/lib/ManagedTexture.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
- package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBuffer.js +1 -1
- package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBufferView.js +1 -1
- package/views/3d/webgl-engine/lib/VerticesView.js +2 -0
- package/views/3d/webgl-engine/lib/attributeViewUtils.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/strokes.js +1 -1
- package/views/3d/webgl-engine/lib/geometryDataUtils.js +1 -1
- package/views/3d/webgl-engine/lib/glUtil3D.js +1 -1
- package/views/3d/webgl-engine/lib/screenPolygonOverlapUtils.js +1 -1
- package/views/3d/webgl-engine/lib/screenPolygonTriangleIntersections.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterialBaseInstance.js +1 -1
- package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/internal/WaterTextureRepository.js +1 -1
- package/views/3d/webgl-engine/materials/internal/bufferWriterUtils.js +1 -1
- package/views/3d/webgl-engine/materials/internal/lineMarkerBufferUtils.js +2 -0
- package/views/3d/webgl-engine/materials/internal/ribbonLineBufferUtils.js +2 -0
- package/views/3d/webgl-engine/materials/renderers/VaoRenderer.js +1 -1
- package/views/3d/webgl-engine/materials/stippleTextureRepository.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/hudMaterialLayouts.js +2 -0
- package/views/3d/webgl-engine/shaders/lineMarkerLayouts.js +2 -0
- package/views/draw/support/ManagedTooltipField.js +1 -1
- package/views/overlay/LineOverlayItem.js +1 -1
- package/views/overlay/TextOverlayItem.js +1 -1
- package/views/overlay/ViewOverlay.js +1 -1
- package/views/support/GroundElevationSampler.js +1 -1
- package/views/support/HighlightOptions.d.ts +2 -2
- package/views/support/HighlightOptions.js +1 -1
- package/views/support/TextureCompressionHelper.js +1 -1
- package/views/support/imageReprojection.js +1 -1
- package/views/webgl/FramebufferObject.js +1 -1
- package/views/webgl/RenderingContext.js +1 -1
- package/views/webgl/Texture.js +1 -1
- package/views/webgl/Util.js +1 -1
- package/views/webgl/rasterUtils.js +1 -1
- package/views/webgl/testSVGPremultipliedAlpha.js +1 -1
- package/widgets/FeatureTable/Grid/Grid.js +1 -1
- package/widgets/Legend/styles/support/univariateUtils.js +1 -1
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer.js +1 -1
- package/widgets/ScaleRangeSlider/types.d.ts +3 -3
- package/assets/esri/core/workers/chunks/01f55004d64309f8538b.js +0 -1
- package/assets/esri/core/workers/chunks/039d9bc5b5015012f811.js +0 -1
- package/assets/esri/core/workers/chunks/08140725277de5d2e41a.js +0 -1
- package/assets/esri/core/workers/chunks/0d99bfb75dcb9fa29080.js +0 -1
- package/assets/esri/core/workers/chunks/144bad0c2415c345736a.js +0 -1
- package/assets/esri/core/workers/chunks/165ca7a97b611c8f26c4.js +0 -1
- package/assets/esri/core/workers/chunks/16cda273927ab0a39544.js +0 -1
- package/assets/esri/core/workers/chunks/1989410a618865f02dec.js +0 -1
- package/assets/esri/core/workers/chunks/29c610ce1c81ebb84a6b.js +0 -1
- package/assets/esri/core/workers/chunks/3223f9fbc76ba9ef8d13.js +0 -1
- package/assets/esri/core/workers/chunks/338d800d4efcc91cead1.js +0 -1
- package/assets/esri/core/workers/chunks/3415531224f8494d79ca.js +0 -1
- package/assets/esri/core/workers/chunks/3fdcc383bbd9cf0d274c.js +0 -1
- package/assets/esri/core/workers/chunks/46c290108a90518ef695.js +0 -1
- package/assets/esri/core/workers/chunks/48b8b57f559a53c6c513.js +0 -1
- package/assets/esri/core/workers/chunks/4a979fce1c971b614a18.js +0 -1
- package/assets/esri/core/workers/chunks/59a88dd53f8806bbec06.js +0 -1
- package/assets/esri/core/workers/chunks/5aeb5e18514644fe2cf9.js +0 -1
- package/assets/esri/core/workers/chunks/5bd1414220e42cb8ebcf.js +0 -1
- package/assets/esri/core/workers/chunks/5d781c2c6204cffffd0d.js +0 -1
- package/assets/esri/core/workers/chunks/6edc13a426e00bb93a9b.js +0 -1
- package/assets/esri/core/workers/chunks/723df53cfa0189837d01.js +0 -1
- package/assets/esri/core/workers/chunks/7400b8c454b47ee4fb3c.js +0 -1
- package/assets/esri/core/workers/chunks/7862abd24fb5c3b12e6b.js +0 -1
- package/assets/esri/core/workers/chunks/796c6195b6bf59dcc9bd.js +0 -1
- package/assets/esri/core/workers/chunks/7af4edc6e87d27b9d467.js +0 -1
- package/assets/esri/core/workers/chunks/81bcc495e6eaf2cf7474.js +0 -1
- package/assets/esri/core/workers/chunks/934e1f2153e6fad6ed23.js +0 -1
- package/assets/esri/core/workers/chunks/990e96139b5a1dccb061.js +0 -1
- package/assets/esri/core/workers/chunks/a607541959169741a943.js +0 -1
- package/assets/esri/core/workers/chunks/aa779896fd9e5c341349.js +0 -1
- package/assets/esri/core/workers/chunks/c131e0dd180a4c10e12e.js +0 -1
- package/assets/esri/core/workers/chunks/c7adb7b77721c75891f4.js +0 -1
- package/assets/esri/core/workers/chunks/cd55cad81accf51d2989.js +0 -1
- package/assets/esri/core/workers/chunks/ce324dde6d7daea33638.js +0 -1
- package/assets/esri/core/workers/chunks/d3412518a7b518860fbb.js +0 -1
- package/assets/esri/core/workers/chunks/dac69c0047488fdf986d.js +0 -1
- package/assets/esri/core/workers/chunks/dba5f44c4e4a3f075df2.js +0 -1
- package/assets/esri/core/workers/chunks/e67ea2f1714e5abeae44.js +0 -1
- package/assets/esri/core/workers/chunks/e8fb2ba7b7a4f0916325.js +0 -1
- package/assets/esri/core/workers/chunks/f10c883eb26330e3421c.js +0 -1
- package/assets/esri/core/workers/chunks/f3b4159c0722df8ffe13.js +0 -1
- package/assets/esri/core/workers/chunks/f75eec2cbc541eec9712.js +0 -1
- package/layers/geospatialPDF/projectionToWKTUtils.js +0 -3
- package/libs/maquette/cache.js +0 -2
- package/libs/maquette/dom.js +0 -2
- package/libs/maquette/h.js +0 -2
- package/libs/maquette/index.js +0 -2
- package/libs/maquette/mapping.js +0 -2
- package/libs/maquette/projection.js +0 -2
- package/libs/maquette/projector.js +0 -2
- package/libs/maquette/utilities/window-performance-projector-logger.js +0 -2
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{ObjectStack as e}from"../../core/ObjectStack.js";import{multiply as t,invert as n}from"../../core/libs/gl-matrix-2/math/mat4.js";import{
|
|
2
|
+
import{ObjectStack as e}from"../../core/ObjectStack.js";import{multiply as t,invert as n}from"../../core/libs/gl-matrix-2/math/mat4.js";import{set as r,transformMat4 as i}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as a}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{transformMat4 as o}from"../../core/libs/gl-matrix-2/math/vec4.js";import{fromValues as s}from"../../core/libs/gl-matrix-2/factories/vec4f64.js";import{center as c,width as l,depth as u,height as d}from"./aaBoundingBox.js";import{fromRay as f,fromLineSegmentAndDirection as p,create as m}from"./clipRay.js";import{lineSegmentIntersectsConvexPolyhedronAtIndices as h}from"./convexPolyhedron.js";import{create as g,areAllPointsOutside as _,signedDistance as v,fromPoints as y,clip as b,clipInfinite as x,copy as S}from"./plane.js";import{sm4d as C,sv4d as w}from"./vectorStacks.js";function T(e){return e?[g(e[0]),g(e[1]),g(e[2]),g(e[3]),g(e[4]),g(e[5])]:[g(),g(),g(),g(),g(),g()]}function E(){return[a(),a(),a(),a(),a(),a(),a(),a()]}function D(e,t){for(let n=0;n<W;n++)S(e[n],t[n]);return e}function O(e,i,a,s=J){let c=t(C.get(),i,e);n(c,c);for(let e=0;e<G;++e){let t=o(w.get(),K[e],c);r(s[e],t[0]/t[3],t[1]/t[3],t[2]/t[3])}k(a,s)}function k(e,t){y(t[4],t[0],t[3],e[0]),y(t[1],t[5],t[6],e[1]),y(t[4],t[5],t[1],e[2]),y(t[3],t[2],t[6],e[3]),y(t[0],t[1],t[2],e[4]),y(t[5],t[4],t[7],e[5])}function A(e,t){return j(e,t.center,t.radius)}function j(e,t,n){for(let r=0;r<W;r++){let i=e[r];if(i[0]*t[0]+i[1]*t[1]+i[2]*t[2]+i[3]>=n)return!1}return!0}function M(e,t,n){for(let r of H)if(_(e[r],t,n))return!0;return!1}function N(e,t,n){let r=c(t,Y),i=l(t)/2,a=u(t)/2,o=d(t)/2;return n?F(e,r,i,a,o,n):P(e,r,i,a,o)}function P(e,t,n,r,i){for(let a=0;a<W;a++){let o=e[a];if(o[0]*t[0]+o[1]*t[1]+o[2]*t[2]+o[3]-(Math.abs(o[0])*n+Math.abs(o[1])*r+Math.abs(o[2])*i)>0)return!1}return!0}function F(e,t,n,r,a,o){let s=i(X,t,o);for(let t=0;t<W;t++){let i=e[t];if(i[0]*s[0]+i[1]*s[1]+i[2]*s[2]+i[3]-(Math.abs(i[0]*o[0]+i[1]*o[1]+i[2]*o[2])*n+Math.abs(i[0]*o[4]+i[1]*o[5]+i[2]*o[6])*r+Math.abs(i[0]*o[8]+i[1]*o[9]+i[2]*o[10])*a)>0)return!1}return!0}function I(e,t){return V(e,f(t,q.get()))}function L(e,t){for(let n=0;n<W;n++){let r=e[n];if(!x(r,t))return!1}return!0}function R(e,t,n){return V(e,p(t,n,q.get()))}function z(e,t,n){return h(e,H,t,n)}function B(e,t){for(let n=0;n<W;n++)if(v(e[n],t)>0)return!1;return!0}function V(e,t){for(let n=0;n<W;n++)if(!b(e[n],t))return!1;return!0}const H=[0,1,2,3,5],U={bottom:[5,1,0,4],near:[0,1,2,3],far:[5,4,7,6],right:[1,5,6,2],left:[4,0,3,7],top:[7,3,2,6]},W=6,G=8,K=[s(-1,-1,-1,1),s(1,-1,-1,1),s(1,1,-1,1),s(-1,1,-1,1),s(-1,-1,1,1),s(1,-1,1,1),s(1,1,1,1),s(-1,1,1,1)],q=new e(m),J=E(),Y=a(),X=a();export{k as computePlanes,D as copy,T as create,E as createPoints,O as fromMatrix,L as intersectClipRay,R as intersectsLineSegment,B as intersectsPoint,I as intersectsRay,A as intersectsSphere,j as intersectsSphereCenterRadius,N as intersectsTransformedAabb,M as isConvexHullOutsideViewPyramid,z as lineSegmentIntersectsViewPyramid,W as numPlanes,G as numPoints,U as planePointIndices};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{clamp as e}from"../../core/mathUtils.js";import{
|
|
2
|
+
import{clamp as e}from"../../core/mathUtils.js";import{dot as t,add as n,scale as r,subtract as i,cross as a,lerp as o,copy as s,exactEquals as c,normalize as l,set as u,scaleAndAdd as d}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as f}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{equals as p,exactEquals as m}from"../../core/libs/gl-matrix-2/math/vec4.js";import{projectPointSignedLength as h}from"./vector.js";import{sv3d as g,sv4d as _}from"./vectorStacks.js";import{tangentFrame as ee}from"../../views/3d/support/mathUtils.js";function v(e=Z){return[e[0],e[1],e[2],e[3]]}const te=m,ne=p;function re(e=Z[0],t=Z[1],n=Z[2],r=Z[3]){return x(e,t,n,r,_.get())}function y(e,t){return x(t[0],t[1],t[2],t[3],e)}function b(e){return e}function x(e,t,n,r,i=v()){return i[0]=e,i[1]=t,i[2]=n,i[3]=r,i}function S(e,t,n){return s(n,e),n[3]=t,n}function C(e,t,n){let r=t[0]*t[0]+t[1]*t[1]+t[2]*t[2],i=Math.abs(r-1)>1e-5&&r>1e-12?1/Math.sqrt(r):1;return n[0]=t[0]*i,n[1]=t[1]*i,n[2]=t[2]*i,n[3]=-(n[0]*e[0]+n[1]*e[1]+n[2]*e[2]),n}function w(e,t,n,r=v()){let i=n[0]-t[0],a=n[1]-t[1],o=n[2]-t[2],s=e[0]-t[0],c=e[1]-t[1],l=e[2]-t[2],u=a*l-o*c,d=o*s-i*l,f=i*c-a*s,p=u*u+d*d+f*f,m=Math.abs(p-1)>1e-5&&p>1e-12?1/Math.sqrt(p):1;return r[0]=u*m,r[1]=d*m,r[2]=f*m,r[3]=-(r[0]*e[0]+r[1]*e[1]+r[2]*e[2]),r}function T(e,n,r,a=0,o=Math.floor(1/3*r),s=Math.floor(2/3*r)){if(r<3)return!1;n(D,a);let u=o,d=!1;for(;u<r-1&&!d;)n(O,u),u++,d=!c(D,O);if(!d)return!1;for(u=Math.max(u,s),d=!1;u<r&&!d;)n(k,u),u++,i(A,D,O),l(A,A),i(j,O,k),l(j,j),d=!c(D,k)&&!c(O,k)&&Math.abs(t(A,j))<ie;return d?(w(D,O,k,e),!0):a===0&&o===1&&s===2?!1:T(e,n,r,0,1,2)}function E(e,t,n=!0){let r=t.length/3;return T(e,(e,n)=>u(e,t[n*3+0],t[n*3+1],t[n*3+2]),n?r-1:r)}const ie=.99619469809,D=f(),O=f(),k=f(),A=f(),j=f();function ae(e,n,r){return n!==e&&y(e,n),e[3]=-t(b(e),r),e}function oe(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t}function se(e,t,n,r){return a(k,t,e),C(n,k,r)}function M(e,t,n,r){return Y(X(e,t,i(g.get(),n,t),ue,r))}function N(e,t,n){return t!=null&&Y(X(e,t.origin,t.direction,de,n))}function P(e,t,n){return Y(X(e,t.origin,t.vector,0,n))}function F(e,t,n){return Y(X(e,t.origin,t.vector,1,n))}function I(e,t){return q(e,t)<=0}function L(e,t){return q(e,t)>=0}function R(e,t){return V(e,t.ray.origin,t.ray.direction,t,!1,!1,!0,1e-6)}function z(e,t){return V(e,t.ray.origin,t.ray.direction,t,!1,!1,!1,1e-6)}function B(e,t){return t.c0<=t.c1&&V(e,t.ray.origin,t.ray.direction,t,!1,!0,!1,0)}function V(e,n,r,i,a,o,s,c){let l=t(b(e),r),u=q(e,n);if(l>=-c&&l<=c)return H(u,a,o);let d=-u/l,f=H(l,a,!1);return s&&!f&&!H(u,a,o)?!1:(f?d>i.c0&&(i.c0=d):d<i.c1&&(i.c1=d),i.c0<=i.c1)}function H(e,t,n){return n?t?e>=0:e<=0:t?e>0:e<0}function U(e,t,n,r=!1){let i=t.at(-1),a=q(e,i),c=r?a>0:a<=0;for(let l=0;l<t.length;l++){let u=t.at(l),d=q(e,u),f=r?d>0:d<=0;c!==f&&o(n(),i,u,a/(a-d)),f&&s(n(),u),i=u,a=d,c=f}}function W(e,t,n,r,a,o=!1){return i(Q,n,t),$.c0=0,$.c1=1,V(e,t,Q,$,o,!o,!1,1e-6)?(d(r,t,Q,$.c0),d(a,t,Q,$.c1),!0):!1}function G(e,t,a){let o=r(g.get(),b(e),-e[3]),s=K(e,i(g.get(),t,o),g.get());return n(a,s,o),a}function ce(e,t,n,r){let a=b(e),o=g.get(),s=g.get();ee(a,o,s);let c=i(g.get(),n,t),l=h(o,c),d=h(s,c),f=h(a,c);return u(r,l,d,f)}function K(e,n,a){let o=r(g.get(),b(e),t(b(e),n));return i(a,n,o),a}function le(e,t){return Math.abs(q(e,t))}function q(e,n){return t(b(e),n)+e[3]}function J(e,t,n){for(let r=0;r<n;++r)if(I(e,t[r]))return!1;return!0}function Y(e){return e===0||e===1}function X(i,a,o,s,c){let l=t(b(i),o),u=q(i,a);if(l===0)return u>=0?2:3;let d=-u/l;return s&1&&(d=e(d,0,1)),!(s&4)&&d<0||!(s&8)&&d>1?u>=0?2:3:(n(c,a,r(c,o,d)),u>=0?0:1)}const Z=[0,0,1,0],ue=12,de=8,Q=f(),$={c0:0,c1:1};export{J as areAllPointsOutside,R as clip,B as clipClosedNegativeHalfspace,z as clipInfinite,W as clipLineSegment,U as clipPolygon,y as copy,v as create,le as distance,ne as equals,te as exactEquals,E as fromArray,T as fromManyPoints,S as fromNormalAndOffset,w as fromPoints,C as fromPositionAndNormal,x as fromValues,se as fromVectorsAndPoint,b as getNormal,M as intersectLine,X as intersectLineOrRay,P as intersectLineSegment,F as intersectLineSegmentClamp,N as intersectRay,L as isPointInClosedPositiveHalfspace,I as isPointInside,oe as negate,G as projectPoint,ce as projectPointLocal,K as projectVector,ae as setOffsetFromPoint,q as signedDistance,Z as up,re as wrap};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{ObjectStack as e}from"../../core/ObjectStack.js";import{
|
|
2
|
+
import{ObjectStack as e}from"../../core/ObjectStack.js";import{sub as t,cross as n,length as r,scale as i,subtract as a,dot as o,copy as s,scaleAndAdd as c,add as l}from"../../core/libs/gl-matrix-2/math/vec3.js";import{create as u,clone as d}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import{create as f,distance2 as p,fromValues as m}from"./lineSegment.js";import{sv3d as h}from"./vectorStacks.js";function g(e){return e?{p0:d(e.p0),p1:d(e.p1),p2:d(e.p2)}:{p0:u(),p1:u(),p2:u()}}function _(e,t,n){let r=k.get();return r.p0=e,r.p1=t,r.p2=n,r}function v(e,t=g()){return y(e.p0,e.p1,e.p2,t)}function y(e,t,n,r=g()){return s(r.p0,e),s(r.p1,t),s(r.p2,n),r}function b(e,t){let r=e.p0,i=e.p1,s=e.p2,c=a(h.get(),i,r),l=a(h.get(),s,i),u=a(h.get(),r,s),d=a(h.get(),t,r),f=a(h.get(),t,i),g=a(h.get(),t,s),_=n(c,c,u),v=o(n(h.get(),c,_),d),y=o(n(h.get(),l,_),f),b=o(n(h.get(),u,_),g);if(v>0&&y>0&&b>0){let e=o(_,d);return e*e/o(_,_)}let x=p(m(r,c,O.get()),t),S=p(m(i,l,O.get()),t),C=p(m(s,u,O.get()),t);return Math.min(x,S,C)}function x(e,t,n){let{direction:r,origin:a}=t,{p0:o,p1:s,p2:c}=e,u=s[0]-o[0],d=s[1]-o[1],f=s[2]-o[2],p=c[0]-o[0],m=c[1]-o[1],h=c[2]-o[2],g=r[1]*h-m*r[2],_=r[2]*p-h*r[0],v=r[0]*m-p*r[1],y=u*g+d*_+f*v;if(y>-1e-5&&y<1e-5)return!1;let b=1/y,x=a[0]-o[0],S=a[1]-o[1],C=a[2]-o[2],w=b*(x*g+S*_+C*v);if(w<0||w>1)return!1;let T=S*f-d*C,E=C*u-f*x,D=x*d-u*S,O=b*(r[0]*T+r[1]*E+r[2]*D);if(O<0||w+O>1)return!1;if(n){let e=b*(p*T+m*E+h*D);i(n,r,e),l(n,a,n)}return!0}function S(e,t,n){return Math.abs(C(e,t,n))}function C(e,t,n){let[r,i]=e,[a,o]=t,[s,c]=n,l=a-r,u=o-i,d=s-r;return .5*(l*(c-i)-u*d)}function w(e,t,n,r,i=0){let a=C(r,e,t),o=C(r,t,n),s=C(r,n,e);return!((a<-i||o<-i||s<-i)&&(a>i||o>i||s>i))}function T(e,t,i){return a(A,t,e),a(j,i,e),.5*r(n(A,A,j))}function E(e,n,r,i,a){t(A,i,r),t(M,a,r),t(j,n,r);let l=o(A,j),u=o(M,j);if(l<=0&&u<=0){s(e,r);return}t(j,n,i);let d=o(A,j),f=o(M,j);if(d>=0&&f<=d){s(e,i);return}let p=l*f-d*u;if(p<=0&&l>=0&&d<=0){c(e,r,A,l/(l-d));return}t(j,n,a);let m=o(A,j),h=o(M,j);if(h>=0&&m<=h){s(e,a);return}let g=m*u-l*h;if(g<=0&&u>=0&&h<=0){c(e,r,M,u/(u-h));return}let _=d*h-m*f;if(_<=0&&f-d>=0&&m-h>=0){t(j,a,i),c(e,i,j,(f-d)/(f-d+(m-h)));return}let v=1/(_+g+p);s(e,r),c(e,e,A,g*v),c(e,e,M,p*v)}function D(e,a,o,s){t(A,o,a),t(j,s,a),n(e,A,j);let c=r(e);return c!==0&&(i(e,e,1/c),!0)}const O=new e(f),k=new e(()=>g()),A=u(),j=u(),M=u();export{S as area2dFromValues,T as area3dFromValues,E as closestPointFromValues,w as containsPoint2dFromValues,v as copy,g as create,b as distance2,y as fromValues,x as intersectRay,D as normalFromValues,_ as wrap};
|
package/kernel.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import"./core/has.js";import{addQueryParameter as e}from"./core/urlUtils.js";Symbol.dispose??=Symbol(`Symbol.dispose`),Symbol.asyncDispose??=Symbol(`Symbol.asyncDispose`);const t=`6.0`;let n=`6.0`;n=`6.0.0-next.
|
|
2
|
+
import"./core/has.js";import{addQueryParameter as e}from"./core/urlUtils.js";Symbol.dispose??=Symbol(`Symbol.dispose`),Symbol.asyncDispose??=Symbol(`Symbol.asyncDispose`);const t=`6.0`;let n=`6.0`;n=`6.0.0-next.38`;let r;function i(e){r=e}function a(t){let n=r?.findCredential(t);return n?.token?e(t,`token`,n.token):t}globalThis.$arcgis||Object.defineProperty(globalThis,"$arcgis",{configurable:!1,enumerable:!0,writable:!1,value:{}});export{a as addTokenParameter,n as fullVersion,r as id,i as setId,t as version};
|
|
@@ -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/Error.js";import{property as n,subclass as r}from"../core/accessorSupport/decorators.js";import i from"../geometry/Extent.js";import a from"../geometry/SpatialReference.js";import{create as o}from"../geometry/support/aaBoundingRect.js";import s from"./Layer.js";import{ScaleRangeLayer as c}from"./mixins/ScaleRangeLayer.js";import l from"./support/TileInfo.js";import{TileKey as u}from"./support/TileKey.js";const d=new u(0,0,0);let f=class extends c(s){constructor(e){super(e),this.tileInfo=l.create({spatialReference:a.WebMercator,size:256}),this.fullExtent=new i(-20037508.342787,-20037508.34278,20037508.34278,20037508.342787,a.WebMercator),this.spatialReference=a.WebMercator,this.type=`base-elevation`}get memoizedElevationQueryDependencies(){return[this.loadStatus,this.tileInfo,this.fullExtent,this.spatialReference]}addResolvingPromise(e){super.addResolvingPromise(e)}getTileBounds(e,t,n,r){let i=r??o();return d.level=e,d.row=t,d.col=n,d.extent=i,this.tileInfo.updateTileInfo(d),i}fetchTile(){throw new t(`BaseElevationLayer:fetchTile-not-implemented`,`fetchTile() is not implemented`)}async queryElevation(e,t){let{query:n}=await this._importElevationQuery();return n(this,e,t)}createElevationSampler(e,t){return this._importElevationQuery().then(({createSampler:n})=>n(this,e,t))}_importElevationQuery(){return import(`./support/ElevationQuery.js`)}};e([n({type:l})],f.prototype,`tileInfo`,void 0),e([n({type:[`show`,`hide`]})],f.prototype,`listMode`,void 0),e([n()],f.prototype,`fullExtent`,void 0),e([n({type:a})],f.prototype,`spatialReference`,void 0),e([n()],f.prototype,`memoizedElevationQueryDependencies`,null),e([n({readOnly:!0,value:`base-elevation`})],f.prototype,`type`,void 0),f=e([r(`esri.layers.BaseElevationLayer`)],f);const p=f;export{p as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../core/Error.js";import{property as n,subclass as r}from"../core/accessorSupport/decorators.js";import i from"../geometry/Extent.js";import a from"../geometry/SpatialReference.js";import{create as o}from"../geometry/support/aaBoundingRect.js";import s from"./Layer.js";import{ScaleRangeLayer as c}from"./mixins/ScaleRangeLayer.js";import l from"./support/TileInfo.js";import{TileKey as u}from"./support/TileKey.js";const d=new u(0,0,0);let f=class extends c(s){constructor(e){super(e),this.tileInfo=l.create({spatialReference:a.WebMercator,size:256}),this.fullExtent=new i(-20037508.342787,-20037508.34278,20037508.34278,20037508.342787,a.WebMercator),this.spatialReference=a.WebMercator,this.type=`base-elevation`}get memoizedElevationQueryDependencies(){return[this.loadStatus,this.tileInfo,this.fullExtent,this.spatialReference]}addResolvingPromise(e){super.addResolvingPromise(e)}getTileBounds(e,t,n,r){let i=r??o();return d.level=e,d.row=t,d.col=n,d.extent=i,this.tileInfo.updateTileInfo(d),i}fetchTile(){throw new t(`BaseElevationLayer:fetchTile-not-implemented`,`fetchTile() is not implemented`)}async queryElevation(e,t){let{query:n}=await this._importElevationQuery();return n(this,e,t)}async queryElevationForGround(e,t){let{queryElevationFromTiles:n}=await this._importElevationQuery();return n(this,e,t)}createElevationSampler(e,t){return this._importElevationQuery().then(({createSampler:n})=>n(this,e,t))}_importElevationQuery(){return import(`./support/ElevationQuery.js`)}};e([n({type:l})],f.prototype,`tileInfo`,void 0),e([n({type:[`show`,`hide`]})],f.prototype,`listMode`,void 0),e([n()],f.prototype,`fullExtent`,void 0),e([n({type:a})],f.prototype,`spatialReference`,void 0),e([n()],f.prototype,`memoizedElevationQueryDependencies`,null),e([n({readOnly:!0,value:`base-elevation`})],f.prototype,`type`,void 0),f=e([r(`esri.layers.BaseElevationLayer`)],f);const p=f;export{p as default};
|
package/layers/ElevationLayer.js
CHANGED
|
@@ -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"../request.js";import n from"../core/Error.js";import{releaseMaybe as r}from"../core/maybe.js";import{MultiOriginJSONSupportMixin as i}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as a,throwIfAborted as o}from"../core/promiseUtils.js";import{objectToQuery as s}from"../core/urlUtils.js";import{property as c,subclass as l}from"../core/accessorSupport/decorators.js";import u from"./Layer.js";import{ArcGISCachedService as d}from"./mixins/ArcGISCachedService.js";import{ArcGISService as f}from"./mixins/ArcGISService.js";import{HeightModelInfoMixin as p}from"./mixins/HeightModelInfoMixin.js";import{OperationalLayer as m}from"./mixins/OperationalLayer.js";import{PortalLayer as h}from"./mixins/PortalLayer.js";import{url as g}from"./support/commonProperties.js";import _ from"./support/ElevationTileData.js";import{acquireDecoder as v}from"./support/LercDecoder.js";import{reader as y}from"../core/accessorSupport/decorators/reader.js";let b=class extends p(d(f(m(h(i(u)))))){constructor(...e){super(...e),this.capabilities={operations:{supportsTileMap:!1}},this.copyright=null,this.path=null,this.minScale=void 0,this.maxScale=void 0,this.opacity=1,this.operationalLayerType=`ArcGISTiledElevationServiceLayer`,this.sourceJSON=null,this.type=`elevation`,this.url=null,this.version=null,this._lercDecoder=v()}normalizeCtorArgs(e,t){return typeof e==`string`?{url:e,...t}:e}destroy(){this._lercDecoder=r(this._lercDecoder)}readCapabilities(e,t){let n=t.capabilities&&t.capabilities.split(`,`).map(e=>e.toLowerCase().trim());return n?{operations:{supportsTileMap:n.includes(`tilemap`)}}:{operations:{supportsTileMap:!1}}}get memoizedElevationQueryDependencies(){return[this.loadStatus,this.tileInfo,this.fullExtent,this.spatialReference]}readVersion(e,t){let n=t.currentVersion;return n||=9.3,n}load(e){let t=e==null?null:e.signal;return this.addResolvingPromise(this.loadFromPortal({supportedTypes:[`Image Service`],supportsData:!1,validateItem:e=>{if(e.typeKeywords){for(let t=0;t<e.typeKeywords.length;t++)if(e.typeKeywords[t].toLowerCase()===`elevation 3d layer`)return!0}throw new n(`portal:invalid-layer-item-type`,"Invalid layer item type '${type}', expected '${expectedType}' ",{type:`Image Service`,expectedType:`Image Service Elevation 3D Layer`})}},e).catch(a).then(()=>this._fetchImageService(t))),Promise.resolve(this)}async fetchTile(e,r,i,a){let o=a?.signal,s={responseType:`array-buffer`,signal:o,useQueue:a?.useQueue,priority:a?.priority},c={noDataValue:a?.noDataValue};await this.load(),await this._fetchTileAvailability(e,r,i,a);let l=await t(this.getTileUrl(e,r,i),s),u=await this._lercDecoder.decode(l.data,c,o);if(!u)throw new n(`elevation-layer:tile-decode-failed`,`Failed to decode elevation tile data.`);return new _({values:u.pixelData,width:u.width,height:u.height,noDataValue:u.noDataValue})}getTileUrl(e,t,n){let r=!this.capabilities.operations.supportsTileMap&&this.supportsBlankTile,i=s({...this.parsedUrl.query,blankTile:!r&&null});return`${this.parsedUrl.path}/tile/${e}/${t}/${n}${i?`?`+i:``}`}async queryElevation(e,t){let{query:n}=await import(`./support/ElevationQuery.js`);return o(t),n(this,e,t)}async createElevationSampler(e,t){let{createSampler:n}=await import(`./support/ElevationQuery.js`);return o(t),n(this,e,t)}_fetchTileAvailability(e,t,n,r){return this.tilemapCache?this.tilemapCache.fetchAvailability(e,t,n,r):Promise.resolve(`unknown`)}async _fetchImageService(e){if(this.sourceJSON)return this.sourceJSON;let n={query:{f:`json`,...this.parsedUrl.query},responseType:`json`,signal:e},r=await t(this.parsedUrl.path,n);r.ssl&&(this.url=this.url?.replace(/^http:/i,`https:`)),this.sourceJSON=r.data,this.read(r.data,{origin:`service`,url:this.parsedUrl})}get hasOverriddenFetchTile(){return!this.fetchTile[x]}};e([c({readOnly:!0})],b.prototype,`capabilities`,void 0),e([y(`service`,`capabilities`,[`capabilities`])],b.prototype,`readCapabilities`,null),e([c({json:{read:{source:`copyrightText`}}})],b.prototype,`copyright`,void 0),e([c({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],b.prototype,`path`,void 0),e([c({type:[`show`,`hide`]})],b.prototype,`listMode`,void 0),e([c({json:{read:!1,write:!1,origins:{service:{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-document":{read:!1,write:!1}}},readOnly:!0})],b.prototype,`minScale`,void 0),e([c({json:{read:!1,write:!1,origins:{service:{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-document":{read:!1,write:!1}}},readOnly:!0})],b.prototype,`maxScale`,void 0),e([c({json:{read:!1,write:!1,origins:{"web-document":{read:!1,write:!1}}}})],b.prototype,`opacity`,void 0),e([c({type:[`ArcGISTiledElevationServiceLayer`]})],b.prototype,`operationalLayerType`,void 0),e([c()],b.prototype,`sourceJSON`,void 0),e([c({json:{read:!1},value:`elevation`,readOnly:!0})],b.prototype,`type`,void 0),e([c()],b.prototype,`memoizedElevationQueryDependencies`,null),e([c(g)],b.prototype,`url`,void 0),e([c()],b.prototype,`version`,void 0),e([y(`version`,[`currentVersion`])],b.prototype,`readVersion`,null),b=e([l(`esri.layers.ElevationLayer`)],b);const x=Symbol(`default-fetch-tile`);b.prototype.fetchTile[x]=!0;const S=b;export{S as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../request.js";import n from"../core/Error.js";import{releaseMaybe as r}from"../core/maybe.js";import{MultiOriginJSONSupportMixin as i}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as a,throwIfAborted as o}from"../core/promiseUtils.js";import{objectToQuery as s}from"../core/urlUtils.js";import{property as c,subclass as l}from"../core/accessorSupport/decorators.js";import u from"./Layer.js";import{ArcGISCachedService as d}from"./mixins/ArcGISCachedService.js";import{ArcGISService as f}from"./mixins/ArcGISService.js";import{HeightModelInfoMixin as p}from"./mixins/HeightModelInfoMixin.js";import{OperationalLayer as m}from"./mixins/OperationalLayer.js";import{PortalLayer as h}from"./mixins/PortalLayer.js";import{url as g}from"./support/commonProperties.js";import _ from"./support/ElevationTileData.js";import{acquireDecoder as v}from"./support/LercDecoder.js";import{reader as y}from"../core/accessorSupport/decorators/reader.js";let b=class extends p(d(f(m(h(i(u)))))){constructor(...e){super(...e),this.capabilities={operations:{supportsTileMap:!1}},this.copyright=null,this.path=null,this.minScale=void 0,this.maxScale=void 0,this.opacity=1,this.operationalLayerType=`ArcGISTiledElevationServiceLayer`,this.sourceJSON=null,this.type=`elevation`,this.url=null,this.version=null,this._lercDecoder=v()}normalizeCtorArgs(e,t){return typeof e==`string`?{url:e,...t}:e}destroy(){this._lercDecoder=r(this._lercDecoder)}readCapabilities(e,t){let n=t.capabilities&&t.capabilities.split(`,`).map(e=>e.toLowerCase().trim());return n?{operations:{supportsTileMap:n.includes(`tilemap`)}}:{operations:{supportsTileMap:!1}}}get memoizedElevationQueryDependencies(){return[this.loadStatus,this.tileInfo,this.fullExtent,this.spatialReference]}readVersion(e,t){let n=t.currentVersion;return n||=9.3,n}load(e){let t=e==null?null:e.signal;return this.addResolvingPromise(this.loadFromPortal({supportedTypes:[`Image Service`],supportsData:!1,validateItem:e=>{if(e.typeKeywords){for(let t=0;t<e.typeKeywords.length;t++)if(e.typeKeywords[t].toLowerCase()===`elevation 3d layer`)return!0}throw new n(`portal:invalid-layer-item-type`,"Invalid layer item type '${type}', expected '${expectedType}' ",{type:`Image Service`,expectedType:`Image Service Elevation 3D Layer`})}},e).catch(a).then(()=>this._fetchImageService(t))),Promise.resolve(this)}async fetchTile(e,r,i,a){let o=a?.signal,s={responseType:`array-buffer`,signal:o,useQueue:a?.useQueue,priority:a?.priority},c={noDataValue:a?.noDataValue};await this.load(),await this._fetchTileAvailability(e,r,i,a);let l=await t(this.getTileUrl(e,r,i),s),u=await this._lercDecoder.decode(l.data,c,o);if(!u)throw new n(`elevation-layer:tile-decode-failed`,`Failed to decode elevation tile data.`);return new _({values:u.pixelData,width:u.width,height:u.height,noDataValue:u.noDataValue})}getTileUrl(e,t,n){let r=!this.capabilities.operations.supportsTileMap&&this.supportsBlankTile,i=s({...this.parsedUrl.query,blankTile:!r&&null});return`${this.parsedUrl.path}/tile/${e}/${t}/${n}${i?`?`+i:``}`}async queryElevation(e,t){let{query:n}=await import(`./support/ElevationQuery.js`);return o(t),n(this,e,t)}async queryElevationForGround(e,t){let{queryElevationFromTiles:n}=await import(`./support/ElevationQuery.js`);return n(this,e,t)}async createElevationSampler(e,t){let{createSampler:n}=await import(`./support/ElevationQuery.js`);return o(t),n(this,e,t)}_fetchTileAvailability(e,t,n,r){return this.tilemapCache?this.tilemapCache.fetchAvailability(e,t,n,r):Promise.resolve(`unknown`)}async _fetchImageService(e){if(this.sourceJSON)return this.sourceJSON;let n={query:{f:`json`,...this.parsedUrl.query},responseType:`json`,signal:e},r=await t(this.parsedUrl.path,n);r.ssl&&(this.url=this.url?.replace(/^http:/i,`https:`)),this.sourceJSON=r.data,this.read(r.data,{origin:`service`,url:this.parsedUrl})}get hasOverriddenFetchTile(){return!this.fetchTile[x]}};e([c({readOnly:!0})],b.prototype,`capabilities`,void 0),e([y(`service`,`capabilities`,[`capabilities`])],b.prototype,`readCapabilities`,null),e([c({json:{read:{source:`copyrightText`}}})],b.prototype,`copyright`,void 0),e([c({type:String,json:{origins:{"web-scene":{read:!0,write:!0}},read:!1}})],b.prototype,`path`,void 0),e([c({type:[`show`,`hide`]})],b.prototype,`listMode`,void 0),e([c({json:{read:!1,write:!1,origins:{service:{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-document":{read:!1,write:!1}}},readOnly:!0})],b.prototype,`minScale`,void 0),e([c({json:{read:!1,write:!1,origins:{service:{read:!1,write:!1},"portal-item":{read:!1,write:!1},"web-document":{read:!1,write:!1}}},readOnly:!0})],b.prototype,`maxScale`,void 0),e([c({json:{read:!1,write:!1,origins:{"web-document":{read:!1,write:!1}}}})],b.prototype,`opacity`,void 0),e([c({type:[`ArcGISTiledElevationServiceLayer`]})],b.prototype,`operationalLayerType`,void 0),e([c()],b.prototype,`sourceJSON`,void 0),e([c({json:{read:!1},value:`elevation`,readOnly:!0})],b.prototype,`type`,void 0),e([c()],b.prototype,`memoizedElevationQueryDependencies`,null),e([c(g)],b.prototype,`url`,void 0),e([c()],b.prototype,`version`,void 0),e([y(`version`,[`currentVersion`])],b.prototype,`readVersion`,null),b=e([l(`esri.layers.ElevationLayer`)],b);const x=Symbol(`default-fetch-tile`);b.prototype.fetchTile[x]=!0;const S=b;export{S as default};
|
package/layers/GraphicsLayer.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import{property as t,subclass as n}from"../core/accessorSupport/decorators.js";import{owningCollectionProperty as r}from"../core/support/OwningCollection.js";import i from"./Layer.js";import{BlendLayer as a}from"./mixins/BlendLayer.js";import{ScaleRangeLayer as o}from"./mixins/ScaleRangeLayer.js";import{GraphicsCollection as s}from"../support/GraphicsCollection.js";import c from"../symbols/support/ElevationInfo.js";let l=class extends a(o(i)){constructor(e){super(e),this.elevationInfo=null,this.graphics=new s,this.screenSizePerspectiveEnabled=!0,this.type=`graphics`,this.internal=!1}destroy(){this.removeAll(),this.graphics.destroy()}get loaded(){return super.loaded}add(e){return this.graphics.add(e),this}addMany(e){return this.graphics.addMany(e),this}removeAll(){return this.graphics.removeAll(),this}remove(e){this.graphics.remove(e)}removeMany(e){this.graphics.removeMany(e)}graphicChanged(e){this.emit(`graphic-update`,e)}};e([t({type:c})],l.prototype,`elevationInfo`,void 0),e([t(r(s,`graphics`))],l.prototype,`graphics`,void 0),e([t({type:[`show`,`hide`]})],l.prototype,`listMode`,void 0),e([t()],l.prototype,`screenSizePerspectiveEnabled`,void 0),e([t({readOnly:!0})],l.prototype,`type`,void 0),e([t({constructOnly:!0})],l.prototype,`internal`,void 0),l=e([n(`esri.layers.GraphicsLayer`)],l);export{
|
|
2
|
+
import{__decorate as e}from"tslib";import{property as t,subclass as n}from"../core/accessorSupport/decorators.js";import{owningCollectionProperty as r}from"../core/support/OwningCollection.js";import i from"./Layer.js";import{BlendLayer as a}from"./mixins/BlendLayer.js";import{ScaleRangeLayer as o}from"./mixins/ScaleRangeLayer.js";import{GraphicsCollection as s}from"../support/GraphicsCollection.js";import c from"../symbols/support/ElevationInfo.js";let l=class extends a(o(i)){constructor(e){super(e),this.elevationInfo=null,this.graphics=new s,this.screenSizePerspectiveEnabled=!0,this.type=`graphics`,this.internal=!1}destroy(){this.removeAll(),this.graphics.destroy()}get loaded(){return super.loaded}add(e){return this.graphics.add(e),this}addMany(e){return this.graphics.addMany(e),this}removeAll(){return this.graphics.removeAll(),this}remove(e){this.graphics.remove(e)}removeMany(e){this.graphics.removeMany(e)}graphicChanged(e){this.emit(`graphic-update`,e)}};e([t({type:c})],l.prototype,`elevationInfo`,void 0),e([t(r(s,`graphics`))],l.prototype,`graphics`,void 0),e([t({type:[`show`,`hide`]})],l.prototype,`listMode`,void 0),e([t()],l.prototype,`screenSizePerspectiveEnabled`,void 0),e([t({readOnly:!0})],l.prototype,`type`,void 0),e([t({constructOnly:!0})],l.prototype,`internal`,void 0),l=e([n(`esri.layers.GraphicsLayer`)],l);const u=l;export{u 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"../request.js";import{ClonableMixin as n}from"../core/Clonable.js";import r from"../core/Error.js";import has from"../core/has.js";import i from"../core/Logger.js";import{MultiOriginJSONSupportMixin as a}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as o}from"../core/promiseUtils.js";import{on as s,sync as c,watch as l}from"../core/reactiveUtils.js";import{property as u,subclass as d}from"../core/accessorSupport/decorators.js";import{persistable as f}from"../core/accessorSupport/decorators/persistable.js";import p from"../geometry/Extent.js";import m from"../geometry/SpatialReference.js";import h from"./Layer.js";import{APIKeyMixin as g}from"./mixins/APIKeyMixin.js";import{ArcGISService as _}from"./mixins/ArcGISService.js";import{CustomParametersMixin as v}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as y}from"./mixins/OperationalLayer.js";import{PortalLayer as b}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as x}from"./mixins/ScaleRangeLayer.js";import{elevationInfo as S,url as C}from"./support/commonProperties.js";import w from"./support/SceneModifications.js";import{default3DTilesSpatialReference as
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../request.js";import{ClonableMixin as n}from"../core/Clonable.js";import r from"../core/Error.js";import has from"../core/has.js";import i from"../core/Logger.js";import{MultiOriginJSONSupportMixin as a}from"../core/MultiOriginJSONSupport.js";import{throwIfAbortError as o}from"../core/promiseUtils.js";import{on as s,sync as c,watch as l}from"../core/reactiveUtils.js";import{property as u,subclass as d}from"../core/accessorSupport/decorators.js";import{persistable as f}from"../core/accessorSupport/decorators/persistable.js";import p from"../geometry/Extent.js";import m from"../geometry/SpatialReference.js";import h from"./Layer.js";import{APIKeyMixin as g}from"./mixins/APIKeyMixin.js";import{ArcGISService as _}from"./mixins/ArcGISService.js";import{CustomParametersMixin as v}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as y}from"./mixins/OperationalLayer.js";import{PortalLayer as b}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as x}from"./mixins/ScaleRangeLayer.js";import{elevationInfo as S,url as C}from"./support/commonProperties.js";import{GeometryDescriptor as w}from"./support/GeometryDescriptor.js";import T from"./support/SceneModifications.js";import{default3DTilesSpatialReference as E,default3DTilesFullExtent as D,initFullExtent as O,hasEsriCrs as k}from"./support/tiles3DUtils.js";import A from"../portal/Portal.js";import{getElevationOffsetInMeters as j,logInvalidElevationInfoWarning as M,elevationModeRequiredMessage as N,featureExpressionUnsupportedMessage as P}from"../support/elevationInfoUtils.js";import{isGround as F}from"../support/groundInstanceUtils.js";import{f as I}from"../chunks/persistableUrlUtils.js";import{isBasemap as L}from"../support/userTypeGuards/isBasemap.js";import{initialize as R,switchMeshModificationPolygonVCSSync as z}from"../views/3d/layers/Lyr3DWorker.js";import{toWasmModification as B,fromWasmModification as V}from"../views/3d/layers/SceneLayerWorkerHandle.js";import{reader as H}from"../core/accessorSupport/decorators/reader.js";let U=class extends _(y(b(x(a(v(g(n(h)))))))){readModifications(e,t,n){this._modificationsSource={url:I(e,n),context:n}}initialize(){this.addHandles([s(()=>this.modifications,`after-changes`,()=>{this.modifications=this.modifications,this._modificationsGeneration++},c),l(()=>this.modifications,()=>this._modificationsGeneration++)])}constructor(e){super(e),this.operationalLayerType=`IntegratedMesh3DTilesLayer`,this.modifications=null,this._modificationsSource=null,this.spatialReference=E,this.fullExtent=D,this.esriCrsSpatialReference=null,this.esriCrsFullExtent=null,this.url=null,this.type=`integrated-mesh-3dtiles`,this.path=null,this.minScale=0,this.maxScale=0,this._rootTilesetJSON=null,this._rootTileset=null,this._key=null,this._session=null,this._rootRequestPromise=null,this.queryElevationCallback=null,this._modificationsGeneration=0,this._simulateGoogleUrl=!1}get supportedSpatialReferences(){return!this.initialized||!this.esriCrsSpatialReference?[m.WGS84]:[m.WGS84,this.esriCrsSpatialReference]}get fullExtents(){let e=this.fullExtent??D;return!this.initialized||!this.esriCrsFullExtent?[e]:[e,this.esriCrsFullExtent]}set elevationInfo(e){(e==null||e.mode===`absolute-height`)&&this._set(`elevationInfo`,e),this._validateElevationInfo(e)}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}get rootTilesetJSON(){return this._rootTilesetJSON}get rootTileset(){return this._rootTileset}get key(){return this._key}get session(){return this._session}_findSessionParameter(e){let t=[e];for(;t?.length>0;){let e=t.pop();if(!e)return;for(let[n,r]of Object.entries(e)){if(n===`uri`)try{let e=new URL(`https://tmp`+r).searchParams.get(`session`);if(e)return e}catch{}typeof r==`object`&&r&&t.push(r)}}return null}async requestRootAndSession(e){let n=(e,t)=>new r(`3dtiles-init:`+e,t);return this._rootRequestPromise||=new Promise((r,a)=>{this.url||a(n(`url-missing`,`Layer url missing`)),this._key=this.customParameters?this.customParameters.key:null,new Promise((e,r)=>{if(this.replacesTerrain&&!this._key){let i=this.portalItem?.portal||this.parent?.portalItem?.portal||A.getDefault();i.signIn().then(()=>{i.g3dTilesEnabled?t(i.restUrl+`/portals/self/modules/g3dtiles`,{responseType:`json`,query:{f:`json`}}).then(t=>{this._key=t.data.keyString,e()},()=>r(n(`g3dtiles-key-error`,`Error fetching Google 3D Tiles key from portal`))):r(n(`g3dTilesEnabled-false`,`Google 3D Tiles are not enabled on Portal `+i.url))},()=>r(n(`sign-in-failed`,`Error signing in to Portal`)))}else e()}).then(()=>{t(this.url,{query:this._key?{key:this._key,token:this.apiKey}:{token:this.apiKey},responseType:`array-buffer`,signal:e}).then(e=>{try{this._rootTilesetJSON=JSON.parse(new TextDecoder().decode(e.data))}catch(e){a(n(`root-parse-failed`,`Error parsing root tile, details: `+e));return}this._rootTilesetJSON?(this._session=this._findSessionParameter(this._rootTilesetJSON),this._rootTileset=e.data,this.fullExtent=O(this._rootTilesetJSON),k(this._rootTilesetJSON)&&(this.esriCrsFullExtent=O(this._rootTilesetJSON,!0),this.esriCrsSpatialReference=this.esriCrsFullExtent.spatialReference,this.spatialReference=this.esriCrsSpatialReference),r(),this._rootRequestPromise=null):a(n(`root-is-null`,`Root tile is null.`))},e=>{o(e),a(n(`root-load-failed`,`Error loading root tile`)),this._rootRequestPromise=null,i.getLogger(`IntegratedMesh3DTilesLayer`).error(`Layer loading failed`,e)})},e=>a(e))}),this._rootRequestPromise}_haveWGS84ZModifications(e){for(let t of e)if(!t.geometry?.spatialReference||t.geometry?.spatialReference.vcsWkid===115700&&t.geometry?.spatialReference.wkid===4326)return!0;return!1}async _doLoad(e){let t=e==null?null:e.signal;try{await this.loadFromPortal({supportedTypes:[`3DTiles Service`],validateItem:e=>{if(e.typeKeywords?.includes(`IntegratedMesh`))return!0;throw new r(`portal:invalid-layer-item-type`,"Invalid layer item, expected '${expectedType}' ",{expectedType:`3DTiles Service containing IntegratedMesh`})}},e)}catch(e){o(e)}if(this._modificationsSource!=null){let t=await T.fromUrl(this._modificationsSource.url,this.spatialReference,e,!0);if(this._haveWGS84ZModifications(t)){await R();try{let e=B(null,t.toArray(),m.WGS84),n=z({modifications:e,inVCS:115700});n.success&&n.modifications&&V(n.modifications,t)}catch(e){i.getLogger(this).error(`convert-mesh-modification-z-error`,`Error when converting:`,e)}}this.setAtOrigin(`modifications`,t,this._modificationsSource.context.origin),this._modificationsSource=null}await this.requestRootAndSession(t)}async beforeSave(){if(this._modificationsSource==null){let{modifications:e}=this;e&&e.length>0&&await R()}else await this.load().then(()=>{},()=>{})}async queryElevationForGround(e,t){let n=w.fromGeometry(e),r=t.signal;if(this.queryElevationCallback&&(has(`enable-feature:im-as-ground`)?this.isUsedAsGroundLayer:this.replacesTerrain)){let i=12.9*(t.minDemResolution||0)+.71,a=await(await this.queryElevationCallback(n,{signal:r,maxGeometricError:i})).project(e.spatialReference,r);if(a){if(t.noDataValue!==void 0&&t.noDataValue!==Number.MAX_VALUE)for(let e of a.coordinates)e.z===Number.MAX_VALUE&&(e.z=t.noDataValue);let e=t.noDataValue??Number.MAX_VALUE,n=a.coordinates.map(t=>({demResolution:t.z===e?-1:1,source:this}));return{geometry:a.export(),noDataValue:e,sampleInfo:n}}}return{geometry:n.export(),noDataValue:Number.MAX_VALUE,sampleInfo:n.coordinates.map(()=>({demResolution:-1,source:this}))}}get memoizedElevationQueryDependencies(){return[this.loadStatus,this.queryElevationCallback!=null,j(this.elevationInfo),this._modificationsGeneration]}get hasAttributionData(){return!1}_validateElevationInfo(e){let t=`Integrated mesh 3d tiles layers`;M(i.getLogger(this),N(t,`absolute-height`,e)),M(i.getLogger(this),P(t,e))}get replacesTerrain(){return this.hasGoogleUrl&&this.isUsedAsGroundLayer}get isUsedAsGroundLayer(){return has(`enable-feature:im-as-ground`)?L(this.parent)||F(this.parent):L(this.parent)}get hasGoogleUrl(){return this._simulateGoogleUrl||!!(this.url?.match(/.+\.googleapis.com/)??!1)}get test(){}};e([u({type:[`IntegratedMesh3DTilesLayer`]})],U.prototype,`operationalLayerType`,void 0),e([u({type:T,clonable:e=>e?.clone()??null}),f({origins:[`web-scene`,`portal-item`],type:`resource`,prefix:`modifications`})],U.prototype,`modifications`,void 0),e([u({clonable:e=>e?{...e}:null})],U.prototype,`_modificationsSource`,void 0),e([H([`web-scene`,`portal-item`],`modifications`)],U.prototype,`readModifications`,null),e([u({type:m})],U.prototype,`spatialReference`,void 0),e([u({type:p})],U.prototype,`fullExtent`,void 0),e([u({readOnly:!0})],U.prototype,`supportedSpatialReferences`,null),e([u({type:[p]})],U.prototype,`fullExtents`,null),e([u(S)],U.prototype,`elevationInfo`,null),e([u({type:[`show`,`hide`]})],U.prototype,`listMode`,void 0),e([u(C)],U.prototype,`url`,void 0),e([u({readOnly:!0})],U.prototype,`type`,void 0),e([u({type:String,json:{origins:{"web-scene":{read:!0,write:!0},"portal-item":{read:!0,write:!0}},read:!1}})],U.prototype,`path`,void 0),e([u({type:Number,json:{name:`layerDefinition.minScale`,write:!0,origins:{service:{read:!1,write:!1}}}})],U.prototype,`minScale`,void 0),e([u({type:Number,json:{name:`layerDefinition.maxScale`,write:!0,origins:{service:{read:!1,write:!1}}}})],U.prototype,`maxScale`,void 0),e([u()],U.prototype,`queryElevationCallback`,void 0),e([u()],U.prototype,`_modificationsGeneration`,void 0),e([u()],U.prototype,`memoizedElevationQueryDependencies`,null),e([u({readOnly:!0})],U.prototype,`hasAttributionData`,null),e([u()],U.prototype,`replacesTerrain`,null),e([u()],U.prototype,`isUsedAsGroundLayer`,null),e([u()],U.prototype,`hasGoogleUrl`,null),e([u()],U.prototype,`_simulateGoogleUrl`,void 0),U=e([d(`esri.layers.IntegratedMesh3DTilesLayer`)],U);const W=U;export{W as default};
|
|
@@ -190,6 +190,8 @@ export default class IntegratedMeshLayer extends IntegratedMeshLayerSuperclass {
|
|
|
190
190
|
/**
|
|
191
191
|
* Queries the integrated mesh layer for elevation values for the given geometry.
|
|
192
192
|
*
|
|
193
|
+
* The terrain resolution options `demResolution` and `minDemResolution` are ignored by I3S integrated mesh queries.
|
|
194
|
+
*
|
|
193
195
|
* @param view - The [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/) whose scheduler runs the query.
|
|
194
196
|
* @param geometry - The point to query.
|
|
195
197
|
* @param options
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import{__addDisposableResource as e,__disposeResources as t,__decorate as n}from"tslib";import{isSome as r}from"../core/arrayUtils.js";import{result as i,assertResult as a}from"../core/asyncUtils.js";import{ClonableMixin as o}from"../core/Clonable.js";import s from"../core/Error.js";import{abortHandle as c,disposable as l,makeHandle as u}from"../core/handleUtils.js";import has from"../core/has.js";import d from"../core/Logger.js";import{MultiOriginJSONSupportMixin as f}from"../core/MultiOriginJSONSupport.js";import{throwIfAborted as p,throwIfAbortError as m}from"../core/promiseUtils.js";import{on as h,sync as g,watch as _}from"../core/reactiveUtils.js";import{property as v,subclass as y}from"../core/accessorSupport/decorators.js";import{persistable as b}from"../core/accessorSupport/decorators/persistable.js";import x from"./Layer.js";import{APIKeyMixin as S}from"./mixins/APIKeyMixin.js";import{ArcGISService as C}from"./mixins/ArcGISService.js";import{CustomParametersMixin as w}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as T}from"./mixins/OperationalLayer.js";import{PortalLayer as E}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as D}from"./mixins/ScaleRangeLayer.js";import{SceneService as O}from"./mixins/SceneService.js";import{elevationInfo as k}from"./support/commonProperties.js";import{GeometryDescriptor as A}from"./support/GeometryDescriptor.js";import{queryIntegratedMeshElevation as j,defaultNoDataValue as M}from"./support/I3SIntegratedMeshElevationQuery.js";import{I3SNodePageDefinition as N,I3SMaterialDefinition as P,I3STextureSetDefinition as F,I3SGeometryDefinition as I}from"./support/I3SLayerDefinitions.js";import L from"./support/SceneModifications.js";import{logInvalidElevationInfoWarning as R,elevationModeRequiredMessage as z,featureExpressionUnsupportedMessage as B}from"../support/elevationInfoUtils.js";import{isGround as V}from"../support/groundInstanceUtils.js";import{f as H}from"../chunks/persistableUrlUtils.js";import{isBasemap as U}from"../support/userTypeGuards/isBasemap.js";import{SceneLayerWorkerHandle as W}from"../views/3d/layers/SceneLayerWorkerHandle.js";import{I3SDataRequester as G}from"../views/3d/layers/i3s/I3SDataRequester.js";import K from"../views/3d/layers/i3s/I3SNodeLoader.js";import{ImmediateTask as q}from"../views/support/Scheduler.js";import{reader as J}from"../core/accessorSupport/decorators/reader.js";let Y=class extends O(C(T(E(D(f(w(S(o(x))))))))){constructor(...e){super(...e),this.geometryType=`mesh`,this.operationalLayerType=`IntegratedMeshLayer`,this.type=`integrated-mesh`,this.nodePages=null,this.materialDefinitions=null,this.textureSetDefinitions=null,this.geometryDefinitions=null,this.serviceUpdateTimeStamp=null,this.profile=`mesh-pyramids`,this.modifications=null,this._modificationsSource=null,this.path=null,this.definitionExpression=null,this._elevationQueryAbortController=new AbortController,this._elevationQueryWorkerContext=`i3s-elevation-query-${this.uid}`,this._elevationQueryWorkerHandle=null,this._elevationQueryWorkerSetup=null,this._modificationsGeneration=0}destroy(){this._elevationQueryAbortController.abort();let e=this._elevationQueryWorkerHandle;this._elevationQueryWorkerHandle=null,this._elevationQueryWorkerSetup=null,e?.destroyContextAndSelf(this._elevationQueryWorkerContext),super.destroy()}initialize(){this.addHandles([h(()=>this.modifications,`after-changes`,()=>{this.modifications=this.modifications,this._modificationsGeneration++},g),_(()=>this.modifications,()=>this._modificationsGeneration++,g),_(()=>this.memoizedElevationQueryDependencies,()=>this._abortElevationQueriesAfterDependencyChange(),g)])}normalizeCtorArgs(e,t){return typeof e==`string`?{url:e,...t}:e}readModifications(e,t,n){this._modificationsSource={url:H(e,n),context:n}}set elevationInfo(e){(e==null||e.mode===`absolute-height`)&&this._set(`elevationInfo`,e),this._validateElevationInfo(e)}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}get _elevationQueryWorker(){return this._elevationQueryWorkerHandle??=new W((e,t)=>q.schedule(e,t))}get memoizedElevationQueryDependencies(){return[this.elevationInfo?.offset,this._modificationsGeneration]}async queryElevation(n,a,o){let s={stack:[],error:void 0,hasError:!1};try{let t=o?.noDataValue??Number.MAX_VALUE,d=this._elevationQueryWorker,f=new AbortController;n.addHandles(c(f),f),e(s,l(u(()=>n.removeHandles(f))),!1);let m=AbortSignal.any([o?.signal,this._elevationQueryAbortController.signal,f.signal].filter(r));await this.load({signal:m}),p(m);let h=A.fromGeometry(a),g={signal:m,elevationOffset:this.elevationInfo?.offset??0,scheduler:n.resourceController.scheduler};if(this._elevationQueryWorkerSetup==null){let e=this.store?.defaultGeometrySchema;e!=null&&(this._elevationQueryWorkerSetup=i(d.setLegacySchema(this._elevationQueryWorkerContext,e)))}let _=await j(this,h,g);p(m);let v=_.coordinates[0].z===M;v&&(_.coordinates[0].z=t);let y=await _.project(a.spatialReference,m);p(m);let b=y??h.clone(),x={geometry:b.export(),noDataValue:t};return o?.returnSampleInfo&&(x.sampleInfo=b.coordinates.map(()=>({demResolution:v?-1:1}))),x}catch(e){s.error=e,s.hasError=!0}finally{t(s)}}_abortElevationQueriesAfterDependencyChange(){let e=this._elevationQueryAbortController;this._elevationQueryAbortController=new AbortController,e.abort()}async processElevationQueryGeometry(e,t){let n=await this._elevationQueryWorkerSetup;return n!=null&&a(n),p(t),this._elevationQueryWorker.invoke(e,t)}async _doLoad(e){let t=e?.signal;try{await this.loadFromPortal({supportedTypes:[`Scene Service`]},e)}catch(e){m(e)}if(p(t),await this._fetchService(t),p(t),this._modificationsSource!=null){let n=await L.fromUrl(this._modificationsSource.url,this.spatialReference,e);p(t),this.setAtOrigin(`modifications`,n,this._modificationsSource.context.origin),this._modificationsSource=null}await this._fetchIndexAndUpdateExtent(this.nodePages,t),p(t)}beforeSave(){if(this._modificationsSource!=null)return this.load().then(()=>{},()=>{})}async saveAs(e,t){return this._debouncedSaveOperations(1,{...t,getTypeKeywords:()=>this._getTypeKeywords(),portalItemLayerType:`integrated-mesh`},e)}async save(){return this._debouncedSaveOperations(0,{getTypeKeywords:()=>this._getTypeKeywords(),portalItemLayerType:`integrated-mesh`})}get isUsedAsGroundLayer(){return!has(`enable-feature:im-as-ground`)||U(this.parent)||V(this.parent)}get replacesTerrain(){return!1}validateLayer(e){if(e.layerType&&e.layerType!==`IntegratedMesh`)throw new s(`integrated-mesh-layer:layer-type-not-supported`,`IntegratedMeshLayer does not support this layer type`,{layerType:e.layerType});if(isNaN(this.version.major)||isNaN(this.version.minor))throw new s(`layer:service-version-not-supported`,`Service version is not supported.`,{serviceVersion:this.version.versionString,supportedVersions:`1.x`});if(this.version.major>1)throw new s(`layer:service-version-too-new`,`Service version is too new.`,{serviceVersion:this.version.versionString,supportedVersions:`1.x`})}_getTypeKeywords(){return[`IntegratedMeshLayer`]}get elevationQueryDataRequester(){return new G(this.customParameters,this.apiKey)}get elevationQueryNodeLoader(){return new K(this,this.elevationQueryDataRequester,d.getLogger(`esri.layers.IntegratedMeshLayer`),this.store?.defaultGeometrySchema,[],{loadFeatureData:!1,textureUsageMask:0})}_validateElevationInfo(e){let t=`Integrated mesh layers`;R(d.getLogger(this),z(t,`absolute-height`,e)),R(d.getLogger(this),B(t,e))}};n([v({type:String,readOnly:!0})],Y.prototype,`geometryType`,void 0),n([v({type:[`show`,`hide`]})],Y.prototype,`listMode`,void 0),n([v({type:[`IntegratedMeshLayer`]})],Y.prototype,`operationalLayerType`,void 0),n([v({json:{read:!1},readOnly:!0})],Y.prototype,`type`,void 0),n([v({type:N,readOnly:!0,clonable:!1})],Y.prototype,`nodePages`,void 0),n([v({type:[P],readOnly:!0,clonable:!1})],Y.prototype,`materialDefinitions`,void 0),n([v({type:[F],readOnly:!0,clonable:!1})],Y.prototype,`textureSetDefinitions`,void 0),n([v({type:[I],readOnly:!0,clonable:!1})],Y.prototype,`geometryDefinitions`,void 0),n([v({readOnly:!0})],Y.prototype,`serviceUpdateTimeStamp`,void 0),n([v({type:L,clonable:e=>e?.clone()??e}),b({origins:[`web-scene`,`portal-item`],type:`resource`,prefix:`modifications`})],Y.prototype,`modifications`,void 0),n([v({clonable:e=>e?{...e}:null})],Y.prototype,`_modificationsSource`,void 0),n([J([`web-scene`,`portal-item`],`modifications`)],Y.prototype,`readModifications`,null),n([v(k)],Y.prototype,`elevationInfo`,null),n([v({type:String,json:{origins:{"web-scene":{read:!0,write:!0},"portal-item":{read:!0,write:!0}},read:!1}})],Y.prototype,`path`,void 0),n([v({clonable:!1})],Y.prototype,`_elevationQueryWorker`,null),n([v()],Y.prototype,`_modificationsGeneration`,void 0),n([v()],Y.prototype,`memoizedElevationQueryDependencies`,null),n([v()],Y.prototype,`isUsedAsGroundLayer`,null),n([v()],Y.prototype,`replacesTerrain`,null),n([v({clonable:!1})],Y.prototype,`elevationQueryDataRequester`,null),n([v({clonable:!1})],Y.prototype,`elevationQueryNodeLoader`,null),Y=n([y(`esri.layers.IntegratedMeshLayer`)],Y);const X=Y;export{X as default};
|
|
2
|
+
import{__addDisposableResource as e,__disposeResources as t,__decorate as n}from"tslib";import{isSome as r}from"../core/arrayUtils.js";import{result as i,assertResult as a}from"../core/asyncUtils.js";import{ClonableMixin as o}from"../core/Clonable.js";import s from"../core/Error.js";import{abortHandle as c,disposable as l,makeHandle as u}from"../core/handleUtils.js";import has from"../core/has.js";import d from"../core/Logger.js";import{MultiOriginJSONSupportMixin as f}from"../core/MultiOriginJSONSupport.js";import{throwIfAborted as p,throwIfAbortError as m}from"../core/promiseUtils.js";import{on as h,sync as g,watch as _}from"../core/reactiveUtils.js";import{property as v,subclass as y}from"../core/accessorSupport/decorators.js";import{persistable as b}from"../core/accessorSupport/decorators/persistable.js";import x from"./Layer.js";import{APIKeyMixin as S}from"./mixins/APIKeyMixin.js";import{ArcGISService as C}from"./mixins/ArcGISService.js";import{CustomParametersMixin as w}from"./mixins/CustomParametersMixin.js";import{OperationalLayer as T}from"./mixins/OperationalLayer.js";import{PortalLayer as E}from"./mixins/PortalLayer.js";import{ScaleRangeLayer as D}from"./mixins/ScaleRangeLayer.js";import{SceneService as O}from"./mixins/SceneService.js";import{elevationInfo as k}from"./support/commonProperties.js";import{GeometryDescriptor as A}from"./support/GeometryDescriptor.js";import{queryIntegratedMeshElevation as j,defaultNoDataValue as M}from"./support/I3SIntegratedMeshElevationQuery.js";import{I3SNodePageDefinition as N,I3SMaterialDefinition as P,I3STextureSetDefinition as F,I3SGeometryDefinition as I}from"./support/I3SLayerDefinitions.js";import L from"./support/SceneModifications.js";import{logInvalidElevationInfoWarning as R,elevationModeRequiredMessage as z,featureExpressionUnsupportedMessage as B}from"../support/elevationInfoUtils.js";import{isGround as V}from"../support/groundInstanceUtils.js";import{f as H}from"../chunks/persistableUrlUtils.js";import{isBasemap as U}from"../support/userTypeGuards/isBasemap.js";import{SceneLayerWorkerHandle as W}from"../views/3d/layers/SceneLayerWorkerHandle.js";import{I3SDataRequester as G}from"../views/3d/layers/i3s/I3SDataRequester.js";import K from"../views/3d/layers/i3s/I3SNodeLoader.js";import{ImmediateTask as q}from"../views/support/Scheduler.js";import{reader as J}from"../core/accessorSupport/decorators/reader.js";let Y=class extends O(C(T(E(D(f(w(S(o(x))))))))){constructor(...e){super(...e),this.geometryType=`mesh`,this.operationalLayerType=`IntegratedMeshLayer`,this.type=`integrated-mesh`,this.nodePages=null,this.materialDefinitions=null,this.textureSetDefinitions=null,this.geometryDefinitions=null,this.serviceUpdateTimeStamp=null,this.profile=`mesh-pyramids`,this.modifications=null,this._modificationsSource=null,this.path=null,this.definitionExpression=null,this._elevationQueryAbortController=new AbortController,this._elevationQueryWorkerContext=`i3s-elevation-query-${this.uid}`,this._elevationQueryWorkerHandle=null,this._elevationQueryWorkerSetup=null,this._modificationsGeneration=0}destroy(){this._elevationQueryAbortController.abort();let e=this._elevationQueryWorkerHandle;this._elevationQueryWorkerHandle=null,this._elevationQueryWorkerSetup=null,e?.destroyContextAndSelf(this._elevationQueryWorkerContext),super.destroy()}initialize(){this.addHandles([h(()=>this.modifications,`after-changes`,()=>{this.modifications=this.modifications,this._modificationsGeneration++},g),_(()=>this.modifications,()=>this._modificationsGeneration++,g),_(()=>this.memoizedElevationQueryDependencies,()=>this._abortElevationQueriesAfterDependencyChange(),g)])}normalizeCtorArgs(e,t){return typeof e==`string`?{url:e,...t}:e}readModifications(e,t,n){this._modificationsSource={url:H(e,n),context:n}}set elevationInfo(e){(e==null||e.mode===`absolute-height`)&&this._set(`elevationInfo`,e),this._validateElevationInfo(e)}async load(e){return this.addResolvingPromise(this._doLoad(e)),this}get _elevationQueryWorker(){return this._elevationQueryWorkerHandle??=new W((e,t)=>q.schedule(e,t))}get memoizedElevationQueryDependencies(){return[this.elevationInfo?.offset,this._modificationsGeneration]}async queryElevation(n,a,o){let s={stack:[],error:void 0,hasError:!1};try{let t=o?.noDataValue??Number.MAX_VALUE,d=this._elevationQueryWorker,f=new AbortController;n.addHandles(c(f),f),e(s,l(u(()=>n.removeHandles(f))),!1);let m=AbortSignal.any([o?.signal,this._elevationQueryAbortController.signal,f.signal].filter(r));await this.load({signal:m}),p(m);let h=A.fromGeometry(a),g={signal:m,elevationOffset:this.elevationInfo?.offset??0,scheduler:n.resourceController.scheduler};if(this._elevationQueryWorkerSetup==null){let e=this.store?.defaultGeometrySchema;e!=null&&(this._elevationQueryWorkerSetup=i(d.setLegacySchema(this._elevationQueryWorkerContext,e)))}let _=await j(this,h,g);p(m);let v=_.coordinates[0].z===M;v&&(_.coordinates[0].z=t);let y=await _.project(a.spatialReference,m);p(m);let b=y??h.clone(),x={geometry:b.export(),noDataValue:t};return o?.returnSampleInfo&&(x.sampleInfo=b.coordinates.map(()=>({demResolution:v?-1:1}))),x}catch(e){s.error=e,s.hasError=!0}finally{t(s)}}async queryElevationForGround(e,t){let n=A.fromGeometry(e),r=Z(e),{view:i,...a}=t;if(r!=null&&i?.type===`3d`){let e=await this.queryElevation(i,r,a),t=A.fromGeometry(e.geometry),o=t.coordinates.map((t,n)=>({demResolution:e.sampleInfo?.[n]?.demResolution??(t.z===e.noDataValue?-1:1),source:this}));return{geometry:n.clone(t.coordinates).export(),noDataValue:e.noDataValue,sampleInfo:o}}return{geometry:n.export(),noDataValue:Number.MAX_VALUE,sampleInfo:n.coordinates.map(()=>({demResolution:-1,source:this}))}}_abortElevationQueriesAfterDependencyChange(){let e=this._elevationQueryAbortController;this._elevationQueryAbortController=new AbortController,e.abort()}async processElevationQueryGeometry(e,t){let n=await this._elevationQueryWorkerSetup;return n!=null&&a(n),p(t),this._elevationQueryWorker.invoke(e,t)}async _doLoad(e){let t=e?.signal;try{await this.loadFromPortal({supportedTypes:[`Scene Service`]},e)}catch(e){m(e)}if(p(t),await this._fetchService(t),p(t),this._modificationsSource!=null){let n=await L.fromUrl(this._modificationsSource.url,this.spatialReference,e);p(t),this.setAtOrigin(`modifications`,n,this._modificationsSource.context.origin),this._modificationsSource=null}await this._fetchIndexAndUpdateExtent(this.nodePages,t),p(t)}beforeSave(){if(this._modificationsSource!=null)return this.load().then(()=>{},()=>{})}async saveAs(e,t){return this._debouncedSaveOperations(1,{...t,getTypeKeywords:()=>this._getTypeKeywords(),portalItemLayerType:`integrated-mesh`},e)}async save(){return this._debouncedSaveOperations(0,{getTypeKeywords:()=>this._getTypeKeywords(),portalItemLayerType:`integrated-mesh`})}get isUsedAsGroundLayer(){return!has(`enable-feature:im-as-ground`)||U(this.parent)||V(this.parent)}get replacesTerrain(){return!1}validateLayer(e){if(e.layerType&&e.layerType!==`IntegratedMesh`)throw new s(`integrated-mesh-layer:layer-type-not-supported`,`IntegratedMeshLayer does not support this layer type`,{layerType:e.layerType});if(isNaN(this.version.major)||isNaN(this.version.minor))throw new s(`layer:service-version-not-supported`,`Service version is not supported.`,{serviceVersion:this.version.versionString,supportedVersions:`1.x`});if(this.version.major>1)throw new s(`layer:service-version-too-new`,`Service version is too new.`,{serviceVersion:this.version.versionString,supportedVersions:`1.x`})}_getTypeKeywords(){return[`IntegratedMeshLayer`]}get elevationQueryDataRequester(){return new G(this.customParameters,this.apiKey)}get elevationQueryNodeLoader(){return new K(this,this.elevationQueryDataRequester,d.getLogger(`esri.layers.IntegratedMeshLayer`),this.store?.defaultGeometrySchema,[],{loadFeatureData:!1,textureUsageMask:0})}_validateElevationInfo(e){let t=`Integrated mesh layers`;R(d.getLogger(this),z(t,`absolute-height`,e)),R(d.getLogger(this),B(t,e))}};n([v({type:String,readOnly:!0})],Y.prototype,`geometryType`,void 0),n([v({type:[`show`,`hide`]})],Y.prototype,`listMode`,void 0),n([v({type:[`IntegratedMeshLayer`]})],Y.prototype,`operationalLayerType`,void 0),n([v({json:{read:!1},readOnly:!0})],Y.prototype,`type`,void 0),n([v({type:N,readOnly:!0,clonable:!1})],Y.prototype,`nodePages`,void 0),n([v({type:[P],readOnly:!0,clonable:!1})],Y.prototype,`materialDefinitions`,void 0),n([v({type:[F],readOnly:!0,clonable:!1})],Y.prototype,`textureSetDefinitions`,void 0),n([v({type:[I],readOnly:!0,clonable:!1})],Y.prototype,`geometryDefinitions`,void 0),n([v({readOnly:!0})],Y.prototype,`serviceUpdateTimeStamp`,void 0),n([v({type:L,clonable:e=>e?.clone()??e}),b({origins:[`web-scene`,`portal-item`],type:`resource`,prefix:`modifications`})],Y.prototype,`modifications`,void 0),n([v({clonable:e=>e?{...e}:null})],Y.prototype,`_modificationsSource`,void 0),n([J([`web-scene`,`portal-item`],`modifications`)],Y.prototype,`readModifications`,null),n([v(k)],Y.prototype,`elevationInfo`,null),n([v({type:String,json:{origins:{"web-scene":{read:!0,write:!0},"portal-item":{read:!0,write:!0}},read:!1}})],Y.prototype,`path`,void 0),n([v({clonable:!1})],Y.prototype,`_elevationQueryWorker`,null),n([v()],Y.prototype,`_modificationsGeneration`,void 0),n([v()],Y.prototype,`memoizedElevationQueryDependencies`,null),n([v()],Y.prototype,`isUsedAsGroundLayer`,null),n([v()],Y.prototype,`replacesTerrain`,null),n([v({clonable:!1})],Y.prototype,`elevationQueryDataRequester`,null),n([v({clonable:!1})],Y.prototype,`elevationQueryNodeLoader`,null),Y=n([y(`esri.layers.IntegratedMeshLayer`)],Y);const X=Y;function Z(e){return e instanceof A?Z(e.geometry):e.type===`point`?e:null}export{X 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"../request.js";import{has}from"../applications/Components/baUtils.js";import n from"../core/Accessor.js";import r from"../core/Error.js";import i from"../core/Logger.js";import{someMap as a}from"../core/MapUtils.js";import{createAbortError as o,isAborted as s,isAbortError as c}from"../core/promiseUtils.js";import l from"../core/ReactiveMap.js";import{watch as u}from"../core/reactiveUtils.js";import{signal as d}from"../core/signal.js";import{property as f,subclass as p}from"../core/accessorSupport/decorators.js";import m from"../geometry/SpatialReference.js";import{isGeographic as h}from"../geometry/support/spatialReferenceUtils.js";import g from"../geometry/support/WKIDUnitConversion.js";import{wasmFailedToInit as _,elevQueriesFull as v,elevQueriesGenericFail as y,invalidLayerView as b}from"./ILyr3DWasmPerSceneView.js";import{Lyr3DWorkerHandle as x}from"./Lyr3DWorkerHandle.js";import{getVCSFromHeightModelInfo as S}from"./support/tiles3DUtils.js";import{loadLyr3DMainWASM as C}from"../libs/lyr3d/Lyr3DModule.js";import{getElevationOffsetInMeters as w}from"../support/elevationInfoUtils.js";import{makeScheduleFunction as T}from"../views/3d/layers/support/makeScheduleFunction.js";import{TaskPriority as E}from"../views/support/Scheduler.js";import{Yield as D}from"../views/support/Yield.js";const O=3857,k=4326,A=5773;let j=class extends n{get _frozen(){return this._frozenLayerViewCount>0}constructor(e){super(e),this._lyr3DMainPromise=null,this._lyr3DMain=null,this._layers=new Map,this._viewSR=null,this._haveAddedViewSRForNoOpPrj=!1,this._lyr3DBusyCount=0,this._lyr3DInternalMemoryBytes=0,this._isTerrainReady=!1,this._hasLayerThatReplacesTerrain=!1,this._frozenLayerViewCount=0,this._elevationQueries=new l,this._pendingJobCompleted=[],this._pendingJobFailed=[],this._pendingRenderableCreated=[],this._pulseDeferred=d(!1),this._jobDataBufferPtr=0,this._jobDataBufferCapacity=0,this._debugFlags=new Set,this._debugLevel=0,this._wasmNotLoaded=`method requiring WASM was called when WASM isn't loaded`,this._pulseTaskHandle=null,this._cameraDirty=!0,this._cameraElevationDirty=!0,this._debugFlags.add(0),this._debugFlags.add(1),this._debugFlags.add(2)}_debugLog(e,t,n,r=!0){if(this._debugFlags.has(e)&&this._debugLevel>=t){let e=r?`[js] ${n}`:`${n}`;t===0||t===1?i.getLogger(this).error(e):t===2&&i.getLogger(this).warn(e),i.getLogger(this).info(e)}}get viewSR(){return this._viewSR}get lyr3DInternalMemoryBytes(){return this._lyr3DInternalMemoryBytes}initialize(){this._debugLevel>2&&(i.getLogger(this).level=`info`),this._debugLog(0,3,`Lyr3DWasmPerSceneView.initialize()`),this.addHandles([u(()=>this.view.state?.contentCamera,()=>this._updateWasmCamera()),u(()=>this.view.state?.contentCamera.relativeElevation,()=>this._updateWasmCameraElevation()),this.view.resourceController.addUpdatingObject(this)]),this._pulseTaskHandle=this.view.resourceController.scheduler.registerTask(E.LYR3D,this)}destroy(){this._debugLog(0,3,`Lyr3DWasmPerSceneView.destroy()`),this._lyr3DMain&&=(this._jobDataBufferPtr&&(this._lyr3DMain._free(this._jobDataBufferPtr),this._jobDataBufferPtr=0,this._jobDataBufferCapacity=0),this._layers.forEach(e=>{e.abortController.abort()}),this._elevationQueries.forEach((e,t)=>{this._lyr3DMain.cancel_elevation_query(t),e.rejectCallback(o())}),this._elevationQueries.clear(),this._lyr3DMain.uninitialize_lyr3d_wasm(),null),this._pendingJobCompleted.length=0,this._pendingJobFailed.length=0,this._pendingRenderableCreated.length=0;let e=this._workerHandle;e&&e.destroyWasm().then(()=>{this._workerHandle?.destroy(),this._workerHandle=null}),this._pulseTaskHandle?.remove(),this._pulseTaskHandle=null}get readyToRun(){return this._hasPendingPulseWork()}get updating(){return this._elevationQueries.size>0}runTask(e){return this._pulseTask(e),D}_hasPendingPulseWork(){return this._lyr3DMain?!this._frozen&&this._cameraDirty||!this._frozen&&this._cameraElevationDirty||this._pendingJobCompleted.length>0||this._pendingJobFailed.length>0||this._pendingRenderableCreated.length>0||this._elevationQueries.size>0||a(this._layers,e=>this._isUpdating(e)):!1}addLayerView(e){return this._lyr3DMain?this._addLayerView(e):(this._debugLog(0,1,`Lyr3DWasmPerSceneView.addLayerView() called when WASM wasn't initialized`),{wasmLayerId:_})}removeLayerView(e){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),0;this._is3DTilesIMLayerView(e)&&e.freeze&&this.decrementFrozenLayerViewCount(e),this._doRemoveLayerView(e);let t=this._layers.size;return t===0&&(this._debugLog(0,3,`Lyr3DWasmPerSceneView.removeLayerView() no Lyr3D layers left after removing a layer, destroying`),this.destroy()),t}getValidLayerViewCount(){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),0;let e=0;return this._layers.forEach(t=>{t.layerView.wasmLayerId>=0&&++e}),e}setEnabled(e,t){if(!this._lyr3DMain){this._debugLog(0,1,this._wasmNotLoaded);return}let n=this._layers.get(e.wasmLayerId);if(n){this._lyr3DMain.set_enabled(e.wasmLayerId,t),n.needMemoryUsageUpdate=!0;let r=this._isUpdating(n);n.needFrame=!0,r||n.layerView.updatingFlagChanged()}}setLayerOffset(e,t){if(!this._lyr3DMain){this._debugLog(0,1,this._wasmNotLoaded);return}let n=this._layers.get(e.wasmLayerId);n&&(this._lyr3DMain.set_carto_offset_z(e.wasmLayerId,t),n.needFrame=!0,n.layerView.updatingFlagChanged())}getAttributionText(){return this._lyr3DMain?this._lyr3DMain.get_current_attribution_text().split(`|`):(this._debugLog(0,1,this._wasmNotLoaded),[])}onRenderableEvicted(e,t,n){this._lyr3DMain?this._layers.get(e.wasmLayerId)&&this._lyr3DMain.on_renderable_evicted(e.wasmLayerId,t,n):this._debugLog(0,1,this._wasmNotLoaded)}setMeshModifications(e,t){if(!this._lyr3DMain){this._debugLog(0,1,this._wasmNotLoaded);return}let n=this._layers.get(e.wasmLayerId);if(n){this._lyr3DMain.set_mesh_modification_polygons(e.wasmLayerId,t);let r=this._isUpdating(n);n.needFrame=!0,r||n.layerView.updatingFlagChanged()}}isUpdating(e){if(!this._lyr3DMain&&this._lyr3DMainPromise)return!0;let t=this._layers.get(e);return t?this._isUpdating(t):!1}incrementFrozenLayerViewCount(e){this._layers.has(e.wasmLayerId)&&(this._frozenLayerViewCount+=1)}decrementFrozenLayerViewCount(e){this._layers.has(e.wasmLayerId)&&--this._frozenLayerViewCount}initializeWasm(e,t){return this._lyr3DMain?Promise.resolve():this.view.renderSpatialReference?(this._debugLog(0,3,`Lyr3DWasmPerSceneView.initializeWasm()`),this._lyr3DMainPromise||=C().then(n=>{this._lyr3DMain=n,this._lyr3DMainPromise=null;let r=this._lyr3DMain.addFunction(this._onNewJob.bind(this),`vi`),i=this._lyr3DMain.addFunction(this._onNewRenderable.bind(this),`vi`),a=this._lyr3DMain.addFunction(this._freeRenderables.bind(this),`vi`),o=this._lyr3DMain.addFunction(this._setRenderableVisibility.bind(this),`vi`),s=this._lyr3DMain.addFunction(this._onWasmError.bind(this),`viiii`),c=this._lyr3DMain.addFunction(this._onElevQueryComplete.bind(this),`vi`);if(!this.view.renderSpatialReference){this._lyr3DMain=null;return}this._viewSR=this.view.renderSpatialReference?.toJSON();let l=this.view.viewingMode===`global`?6:4;l===6?(this._viewSR.wkid=this._viewSR.latestWkid=k,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=A,this._viewSR.wkt=``):(this._viewSR.vcsWkid||(this._viewSR.vcsWkid=S(this.view.heightModelInfo)),this.view.renderSpatialReference?.isWebMercator?(this._viewSR.wkid=this._viewSR.latestWkid=O,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=A):this.view.renderSpatialReference?.wkid===32662?(this._viewSR.wkid=this._viewSR.latestWkid=k,l=3,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=A):!this._viewSR.vcsWkid&&!this._viewSR.latestVcsWkid&&(this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=-1));let u=has(`esri-lyr3D-max-concurrent-requests`)??16;if(!this._lyr3DMain.initialize_lyr3d_wasm(s,r,i,a,o,c,e,t,l,this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),Math.max(this._debugLevel,0),u))this._lyr3DMain=null,this._debugLog(0,0,`Lyr3d Main WASM failed to initialize`,!1);else if(this._workerHandle=new x(T(this.view.resourceController)),this._workerHandle.promise)return this._workerHandle.promise}).catch(e=>{this._debugLog(0,0,`Lyr3d WASM failed to download error = ${e}`,!1)}),this._lyr3DMainPromise):Promise.reject()}get isTerrainReady(){return this._isTerrainReady}setLodPixelThreshold(e,t){this._lyr3DMain?.set_lod_pixel_threshold(t);let n=this._layers.get(e.wasmLayerId);n&&(n.needFrame=!0,n.layerView.updatingFlagChanged())}setMaximumGaussianSplatCount(e){this._lyr3DMain.set_maximum_splat_count(e),this._layers.forEach(e=>{e.layerView.type===`gaussian-splat-3d`&&(e.needFrame=!0,e.layerView.updatingFlagChanged())})}queryElevation(e,t,n){if(!this._lyr3DMain)return Promise.reject(this._wasmNotLoaded);if(t.coordinates.length===0)return Promise.reject(`no coordinates for elevation query`);let r=this.view.viewingMode===`global`?m.WGS84:this._viewSR.wkid===O?m.WebMercator:m.PlateCarree,i=t.projectSync(r);i&&(t=i);let a=t.coordinates.length*2,o=this._lyr3DMain._malloc(a*8),s=new Float64Array(this._lyr3DMain.HEAPF64.buffer,o,a);for(let e=0;e<t.coordinates.length;++e){let n=t.coordinates[e];s[e*2]=n.x,s[e*2+1]=n.y}let c=n?.maxGeometricError??0,l=this._lyr3DMain.create_elevation_query(e.wasmLayerId,c,o,a);if(this._lyr3DMain._free(o),l===v)return Promise.reject(`max mesh elevation query limit exceeded`);if(l===y)return Promise.reject(`elevation query failed`);let u={wasmLayerId:e.wasmLayerId,descriptor:t,signal:n?.signal,resolveCallback:null,rejectCallback:null},d=new Promise((e,t)=>{u.resolveCallback=e,u.rejectCallback=t});return this._elevationQueries.set(l,u),d}_checkForAbortedElevationQueries(){let e=[];this._elevationQueries.forEach((t,n)=>{s(t.signal)&&(this._lyr3DMain.cancel_elevation_query(n),t.rejectCallback(o()),e.push(n))});for(let t=0;t<e.length;++t)this._elevationQueries.delete(e[t])}_cancelElevationQueriesForLayer(e){let t=[];this._elevationQueries.forEach((n,r)=>{n.wasmLayerId===e&&(this._lyr3DMain.cancel_elevation_query(r),n.rejectCallback(o()),t.push(r))}),t.forEach(e=>this._elevationQueries.delete(e))}_pulseTask(e){let t=this._lyr3DMain;if(t){if(this._frozen){this._checkForAbortedElevationQueries(),this._flushPendingWasmCalls(e);return}if(this._cameraDirty){let e=this.view.state?.contentCamera;if(e){let{eye:n,center:r,up:i,near:a,far:o,fovY:s}=e,c=[e.screenViewport[2],e.screenViewport[3]],l={eye:n,center:r,up:i,near:a,far:o,fov:s,aspectRatio:e.width/e.height,viewport:c};t.set_camera_parameters(l),this._cameraDirty=!1}}if(this._cameraElevationDirty){let e=this.view.state?.contentCamera.relativeElevation;t.set_camera_elevation(e),this._cameraElevationDirty=!1}if(this._checkForAbortedElevationQueries(),!this._pulseDeferred.value&&(this._flushPendingWasmCalls(e),e.done))return;let n=0,r=0;this._layers.forEach(e=>{n+=e.layerView.usedMemory,r+=e.layerView.cachedMemory}),n/=1048576,r/=1048576;let i=this.view.resourceController.memoryController,a=i.usedMemory*i.maxMemory-n-this._lyr3DInternalMemoryBytes/1048576;this._lyr3DBusyCount=this._lyr3DMain.frame_pulse(i.memoryFactor,n,r,a,i.maxMemory),this._pulseDeferred.value=!1,this._lyr3DInternalMemoryBytes=this._lyr3DMain.get_index_memory_bytes(),this._layers.forEach(e=>{this._cameraElevationDirty||(e.needFrame=!1),e.layerView.updatingFlagChanged()}),this._hasLayerThatReplacesTerrain&&!this._isTerrainReady&&(this._isTerrainReady=this._lyr3DMain.is_terrain_ready(),this._isTerrainReady&&this.notifyChange(`isTerrainReady`)),e.madeProgress(),this._flushPendingWasmCalls(e)}}_isUpdating(e){return e.outstandingJobCount>0||e.outstandingRenderableCount>0||!this._frozen&&(e.needFrame||this._cameraDirty||this._cameraElevationDirty||this._pulseDeferred.value||this._lyr3DBusyCount>0)}_incrementJobCount(e,t){if(t.isForElevationQuery)return;let n=this._isUpdating(e);e.outstandingJobCount+=1,n||e.layerView.updatingFlagChanged()}_decrementJobCount(e,t){if(t.isForElevationQuery)return;let n=this._isUpdating(e);--e.outstandingJobCount,n!==this._isUpdating(e)&&e.layerView.updatingFlagChanged()}_incrementRenderableCount(e){let t=this._isUpdating(e);e.outstandingRenderableCount+=1,t||e.layerView.updatingFlagChanged()}_decrementRenderableCount(e){let t=this._isUpdating(e);--e.outstandingRenderableCount,t!==this._isUpdating(e)&&e.layerView.updatingFlagChanged()}_flushPendingWasmCalls(e){this._lyr3DMain&&(this._flushPendingCalls(this._pendingJobFailed,e),this._flushPendingCalls(this._pendingJobCompleted,e),this._flushPendingCalls(this._pendingRenderableCreated,e))}_flushPendingCalls(e,t){for(;!t.done&&e.length>0;){let n=e.shift();this._pulseDeferred.value=!0,n(this._lyr3DMain),t.madeProgress()}}_decrementJobCountIfLayerExists(e,t){this._layers.get(e.layerView.wasmLayerId)===e&&this._decrementJobCount(e,t)}_decrementRenderableCountIfLayerExists(e){this._layers.get(e.layerView.wasmLayerId)===e&&this._decrementRenderableCount(e)}_onJobFailed(e,t,n){t.error.length&&this._debugLog(1,1,t.error,!1),this._lyr3DMain&&!e.layerView.destroyed?this._pendingJobFailed.push(t=>{try{t.on_job_failed(n.jobId,n.desc)}finally{this._decrementJobCountIfLayerExists(e,n)}}):this._decrementJobCountIfLayerExists(e,n)}_onJobSucceeded(e,t,n){if(e.layerView.destroyed){this._lyr3DMain?this._pendingJobFailed.push(t=>{try{t.on_job_failed(n.jobId,n.desc)}finally{this._decrementJobCountIfLayerExists(e,n)}}):this._decrementJobCountIfLayerExists(e,n);return}let{data:r}=t;this._lyr3DMain?this._pendingJobCompleted.push(i=>{try{let e=r.byteLength,a=this._ensureJobDataBuffer(e);new Uint8Array(i.HEAPU8.buffer,a,e).set(r),i.on_job_completed(n.jobId,t.jobDescJson,a,e)}finally{this._decrementJobCountIfLayerExists(e,n)}}):this._decrementJobCountIfLayerExists(e,n)}_ensureJobDataBuffer(e){return e<=this._jobDataBufferCapacity&&this._jobDataBufferPtr||(this._jobDataBufferPtr&&this._lyr3DMain._free(this._jobDataBufferPtr),this._jobDataBufferPtr=this._lyr3DMain._malloc(e),this._jobDataBufferCapacity=e),this._jobDataBufferPtr}_getRequestPromises(e,n,r,i){let a=[];for(let o of e){let e=new URL(o.url);if(i.type===`integrated-mesh-3dtiles`){if(e.origin===r.origin&&e.pathname===r.pathname){if(i.rootTileset){a.push(Promise.resolve(i.rootTileset.slice()));continue}}else i.session&&e.searchParams.set(`session`,i.session)}a.push(t(e.toString(),n).then(e=>e.data))}return a}_getInitialPromise(e,t,n,r,i,a,o){let s=this._getRequestPromises(e.inputs,t,n,r);return Promise.all(s).then(e=>(i.inputs=e,this._workerHandle.invoke(i,a))).then(e=>e).catch(t=>{let n=1;return c(t)?this._debugLog(1,2,`job ${e.jobId} was cancelled.`):o&&t.details?.httpStatus===400?(n=3,this._debugLog(1,2,`Session expired, trying to create new Session.`)):this._debugLog(1,1,`job ${e.jobId} failed with error ${t}.`),{status:n,error:``,jobDescJson:``,data:new Uint8Array,missingInputs:[],inputs:[]}})}async _onNewJob(e){let t;try{t=this._lyr3DMain.Emval.toValue(e);let n=this._layers.get(t.layerId);if(!n)return;this._incrementJobCount(n,t);let r=n.abortController.signal,i=n.layerView.layer,a=i.type===`integrated-mesh-3dtiles`?i.key:null,o=i.type===`integrated-mesh-3dtiles`?i.session:null,s={responseType:`array-buffer`,signal:r,query:{...n.customParameters,token:n.apiKey,key:a}},l={id:t.jobId,inputs:[],jobDescJson:t.desc.slice(),isMissingResourceCase:!1},u=new URL(i.url),d=e=>{if(e.status===1)this._onJobFailed(n,e,t);else if(e.status===0)this._onJobSucceeded(n,e,t);else if(e.status===2){let a=this._getRequestPromises(e.missingInputs,s,u,i);Promise.all(a).then(t=>{l.jobDescJson=e.jobDescJson,e.originalInputs?l.inputs=e.originalInputs:l.inputs=[],l.isMissingResourceCase=!0;for(let e of t)l.inputs.push(e);return this._workerHandle.invoke(l,r)}).then(e=>{e.status===1?this._onJobFailed(n,e,t):e.status===0&&this._onJobSucceeded(n,e,t)}).catch(e=>{c(e)?this._debugLog(1,2,`job ${t.jobId} was cancelled.`):this._debugLog(1,1,`job ${t.jobId} failed with error ${e}.`),this._lyr3DMain?this._pendingJobFailed.push(e=>{try{e.on_job_failed(t.jobId,t.desc)}finally{this._decrementJobCountIfLayerExists(n,t)}}):this._decrementJobCountIfLayerExists(n,t)})}};try{let e=await this._getInitialPromise(t,s,u,i,l,r,o);e.status===3&&i.type===`integrated-mesh-3dtiles`?(o===i.session&&i.session!==null&&await i.requestRootAndSession(r),d(await this._getInitialPromise(t,s,u,i,l,r,i.session))):d(e)}catch(e){e&&this._debugLog(1,1,e.toString(),!1),this._lyr3DMain?this._pendingJobFailed.push(e=>{try{e.on_job_failed(t.jobId,t.desc)}finally{this._decrementJobCountIfLayerExists(n,t)}}):this._decrementJobCountIfLayerExists(n,t)}}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_onNewRenderable(e){try{let t=this._lyr3DMain.Emval.toValue(e),n=this._layers.get(t.layerId);n&&(this._incrementRenderableCount(n),n.layerView.createRenderable(t).then(e=>{this._lyr3DMain&&!n.layerView.destroyed?this._pendingRenderableCreated.push(r=>{try{let{layerId:n,handle:i}=t,a=e();r.on_renderable_created(!0,n,i,a.memUsageBytes,a.numGaussians??0)}finally{this._decrementRenderableCountIfLayerExists(n)}}):this._decrementRenderableCountIfLayerExists(n)}).catch(e=>{c(e)||this._debugLog(2,1,`createRenderable failed with error ${e}.`),this._lyr3DMain&&!n.layerView.destroyed?this._pendingRenderableCreated.push(e=>{try{let{layerId:n,handle:r}=t;e.on_renderable_created(!1,n,r,0,0)}finally{this._decrementRenderableCountIfLayerExists(n)}}):this._decrementRenderableCountIfLayerExists(n)}))}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_freeRenderables(e){try{let t=this._lyr3DMain.Emval.toValue(e),n=this._layers.get(t.layerId);if(t.handles.length<1||!n)return;let r=n.layerView;for(let e=0;e<t.handles.length;++e)r.freeRenderable(t.handles[e])}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_setRenderableVisibility(e){try{let t=this._lyr3DMain.Emval.toValue(e),n=this._layers.get(t.layerId);if(t.handles.length<1||t.visibility.length!==t.handles.length||!n)return;let r=n.layerView,i=[],a=[];for(let e=0;e<t.handles.length;++e)i.push(t.handles[e]),a.push(!!(t.visibility[e]&1));r.setRenderableVisibility(i,a,t.handles.length)}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_onWasmError(e,t,n,r){if(this._lyr3DMain)try{this._debugLog(n,r,this._lyr3DMain.UTF8ToString(e,t),!1)}catch{}}_onElevQueryComplete(e){try{let t=this._lyr3DMain.Emval.toValue(e),{queryId:n}=t,i=this._elevationQueries.get(n);if(!i){this._debugLog(2,1,`_onElevQueryComplete called for unknown queryId ${n}.`);return}if(!t.succeeded||!t.zs)i.rejectCallback(new r(`elevation-query:error`,t?.error??`Elevation query failed`)),this._elevationQueries.delete(n);else{let{zs:e}=t,r=i.descriptor.clone();for(let t=0;t<e.length;++t)r.coordinates[t].z=e[t];this._debugLog(2,3,`Success EQ ${n}, number points ${e.length}.`),i.resolveCallback(r),this._elevationQueries.delete(n)}}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_doRemoveLayerView(e){let t=this._layers.get(e.wasmLayerId);return t?(t.abortController.abort(),this._cancelElevationQueriesForLayer(e.wasmLayerId),this._lyr3DMain.remove_layer(e.wasmLayerId),this._is3DTilesIMLayerView(e)&&e.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!1,this._isTerrainReady=!1,this.notifyChange(`isTerrainReady`)),this._layers.delete(e.wasmLayerId),!0):!1}_is3DTilesIMLayerView(e){return e.layer.type===`integrated-mesh-3dtiles`}_is3DTilesIMLayer(e){return e.type===`integrated-mesh-3dtiles`}_isGaussianSplatLayerView(e){return e.layer.type===`gaussian-splat`}_isGaussianSplatLayer(e){return e.type===`gaussian-splat`}_toWasmQuality(e){switch(e){case`low`:return 1;case`medium`:return 2;case`high`:return 3}}_addLayerView(e){let t=e.layer;if(!t.url||!t.rootTilesetJSON)return{wasmLayerId:b};let n=t.type===`integrated-mesh-3dtiles`?0:2,r=this._lyr3DMain.validate_root_tileset(JSON.stringify(t.rootTilesetJSON),n);if(r.errorCode!==0)return{wasmLayerId:b,check:r};let a=this._lyr3DMain.get_next_layer_id(),o=new AbortController;this._layers.set(a,{layerView:e,abortController:o,needMemoryUsageUpdate:!1,outstandingJobCount:0,outstandingRenderableCount:0,customParameters:t.customParameters,apiKey:t.apiKey,needFrame:!0});let s=w(t.elevationInfo),c=this._toWasmQuality(this.view?.qualityProfile),l=e=>i.getLogger(this).error(`add-spatial-reference-error`,`Error when adding SR:`,e),u=!1;if(this._isGaussianSplatLayerView(e)&&this._isGaussianSplatLayer(t)||this._is3DTilesIMLayerView(e)&&this._is3DTilesIMLayer(t)){let n=t.spatialReference;if(e.useEsriCrs&&t.esriCrsSpatialReference){n=t.esriCrsSpatialReference;let r=h(n),i=1,a=1;!r&&n.wkid&&n.wkid!==-1&&(i=g.values[g[n.wkid]],a=e.metersPerVCSUnit),this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(n)),r,i,a).catch(l),!this._haveAddedViewSRForNoOpPrj&&n.vcsWkid&&this._viewSR.vcsWkid&&this._viewSR.vcsWkid!==-1&&this._viewSR.vcsWkid!==n.vcsWkid&&(this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),!1,1,1).catch(l),this._haveAddedViewSRForNoOpPrj=!0)}this._isGaussianSplatLayerView(e)?u=this._lyr3DMain.add_gaussian_splat_layer(c,t.url,a,s):this._is3DTilesIMLayerView(e)&&(u=this._lyr3DMain.add_3dtiles_layer(c,t.url,a,s,e.replacesTerrain),u&&e.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!0,this._isTerrainReady=!1,this.notifyChange(`isTerrainReady`)))}return u?(this._updateWasmCamera(),this._is3DTilesIMLayerView(e)&&e.freeze&&this.incrementFrozenLayerViewCount(e),e.updatingFlagChanged(),{wasmLayerId:a}):(this._layers.delete(a),{wasmLayerId:b})}_updateWasmCamera(){this.view.state?.contentCamera&&this._lyr3DMain&&(this._cameraDirty=!0,this._frozen||this._markAllLayerViewsUpdating())}_updateWasmCameraElevation(){this._cameraElevationDirty=!0,this._frozen||this._markAllLayerViewsUpdating()}_markAllLayerViewsUpdating(){this._layers.forEach(e=>{let t=this._isUpdating(e);e.needFrame=!0,t||e.layerView.updatingFlagChanged()})}_makeSRWasmSerializable(e){return{wkid:e?.wkid??-1,latestWkid:e?.latestWkid??-1,vcsWkid:e?.vcsWkid??-1,latestVcsWkid:e?.latestVcsWkid??-1,wkt:e?.wkt??``}}_cleanUpSR(e){return e?.wkid===-1&&e.latestWkid&&e.latestWkid!==-1?e.wkid=e.latestWkid:e?.latestWkid===-1&&e.wkid&&e.wkid!==-1&&(e.latestWkid=e.wkid),e?.vcsWkid===-1&&e.latestVcsWkid&&e.latestVcsWkid!==-1?e.vcsWkid=e.latestVcsWkid:e?.latestVcsWkid===-1&&e.vcsWkid&&e.vcsWkid!==-1&&(e.latestVcsWkid=e.vcsWkid),e}};e([f({constructOnly:!0})],j.prototype,`view`,void 0),e([f()],j.prototype,`updating`,null),e([f({readOnly:!0})],j.prototype,`isTerrainReady`,null),j=e([p(`esri.layers.Lyr3DWasmPerSceneView`)],j);const M=j;export{M as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../request.js";import{has}from"../applications/Components/baUtils.js";import n from"../core/Accessor.js";import r from"../core/Error.js";import i from"../core/Logger.js";import{someMap as a}from"../core/MapUtils.js";import{createAbortError as o,isAborted as s,isAbortError as c}from"../core/promiseUtils.js";import l from"../core/ReactiveMap.js";import{watch as u}from"../core/reactiveUtils.js";import{signal as d}from"../core/signal.js";import{property as f,subclass as p}from"../core/accessorSupport/decorators.js";import m from"../geometry/SpatialReference.js";import{isGeographic as h}from"../geometry/support/spatialReferenceUtils.js";import g from"../geometry/support/WKIDUnitConversion.js";import{wasmFailedToInit as _,elevQueriesFull as v,elevQueriesGenericFail as y,invalidLayerView as b}from"./ILyr3DWasmPerSceneView.js";import{Lyr3DWorkerHandle as x}from"./Lyr3DWorkerHandle.js";import{getVCSFromHeightModelInfo as S}from"./support/tiles3DUtils.js";import{loadLyr3DMainWASM as C}from"../libs/lyr3d/Lyr3DModule.js";import{getElevationOffsetInMeters as w}from"../support/elevationInfoUtils.js";import{makeScheduleFunction as T}from"../views/3d/layers/support/makeScheduleFunction.js";import{TaskPriority as E}from"../views/support/Scheduler.js";import{Yield as D}from"../views/support/Yield.js";const O=3857,k=4326,A=5773;let j=class extends n{get _frozen(){return this._frozenLayerViewCount>0}constructor(e){super(e),this._lyr3DMainPromise=null,this._lyr3DMain=null,this._layers=new Map,this._viewSR=null,this._haveAddedViewSRForNoOpPrj=!1,this._lyr3DBusyCount=0,this._lyr3DInternalMemoryBytes=0,this._isTerrainReady=!1,this._hasLayerThatReplacesTerrain=!1,this._frozenLayerViewCount=0,this._elevationQueryFrozenAt=0,this._elevationQueryFrozenDuration=0,this._elevationQueries=new l,this._pendingJobCompleted=[],this._pendingJobFailed=[],this._pendingRenderableCreated=[],this._pulseDeferred=d(!1),this._jobDataBufferPtr=0,this._jobDataBufferCapacity=0,this._debugFlags=new Set,this._debugLevel=0,this._wasmNotLoaded=`method requiring WASM was called when WASM isn't loaded`,this._pulseTaskHandle=null,this._cameraDirty=!0,this._cameraElevationDirty=!0,this._debugFlags.add(0),this._debugFlags.add(1),this._debugFlags.add(2)}_debugLog(e,t,n,r=!0){if(this._debugFlags.has(e)&&this._debugLevel>=t){let e=r?`[js] ${n}`:`${n}`;t===0||t===1?i.getLogger(this).error(e):t===2&&i.getLogger(this).warn(e),i.getLogger(this).info(e)}}get viewSR(){return this._viewSR}get lyr3DInternalMemoryBytes(){return this._lyr3DInternalMemoryBytes}initialize(){this._debugLevel>2&&(i.getLogger(this).level=`info`),this._debugLog(0,3,`Lyr3DWasmPerSceneView.initialize()`),this.addHandles([u(()=>this.view.state?.contentCamera,()=>this._updateWasmCamera()),u(()=>this.view.state?.contentCamera.relativeElevation,()=>this._updateWasmCameraElevation()),this.view.resourceController.addUpdatingObject(this)]),this._pulseTaskHandle=this.view.resourceController.scheduler.registerTask(E.LYR3D,this)}destroy(){this._debugLog(0,3,`Lyr3DWasmPerSceneView.destroy()`),this._lyr3DMain&&=(this._jobDataBufferPtr&&(this._lyr3DMain._free(this._jobDataBufferPtr),this._jobDataBufferPtr=0,this._jobDataBufferCapacity=0),this._layers.forEach(e=>{e.abortController.abort()}),this._elevationQueries.forEach((e,t)=>{this._lyr3DMain.cancel_elevation_query(t),e.rejectCallback(o())}),this._elevationQueries.clear(),this._lyr3DMain.uninitialize_lyr3d_wasm(),null),this._pendingJobCompleted.length=0,this._pendingJobFailed.length=0,this._pendingRenderableCreated.length=0;let e=this._workerHandle;e&&e.destroyWasm().then(()=>{this._workerHandle?.destroy(),this._workerHandle=null}),this._pulseTaskHandle?.remove(),this._pulseTaskHandle=null}get readyToRun(){return this._hasPendingPulseWork()}get updating(){return this._elevationQueries.size>0}runTask(e){return this._pulseTask(e),D}_hasPendingPulseWork(){return this._lyr3DMain?!this._frozen&&this._cameraDirty||!this._frozen&&this._cameraElevationDirty||this._pendingJobCompleted.length>0||this._pendingJobFailed.length>0||this._pendingRenderableCreated.length>0||this._elevationQueries.size>0||a(this._layers,e=>this._isUpdating(e)):!1}addLayerView(e){return this._lyr3DMain?this._addLayerView(e):(this._debugLog(0,1,`Lyr3DWasmPerSceneView.addLayerView() called when WASM wasn't initialized`),{wasmLayerId:_})}removeLayerView(e){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),0;this._is3DTilesIMLayerView(e)&&e.freeze&&this.decrementFrozenLayerViewCount(e),this._doRemoveLayerView(e);let t=this._layers.size;return t===0&&(this._debugLog(0,3,`Lyr3DWasmPerSceneView.removeLayerView() no Lyr3D layers left after removing a layer, destroying`),this.destroy()),t}getValidLayerViewCount(){if(!this._lyr3DMain)return this._debugLog(0,1,this._wasmNotLoaded),0;let e=0;return this._layers.forEach(t=>{t.layerView.wasmLayerId>=0&&++e}),e}setEnabled(e,t){if(!this._lyr3DMain){this._debugLog(0,1,this._wasmNotLoaded);return}let n=this._layers.get(e.wasmLayerId);if(n){this._lyr3DMain.set_enabled(e.wasmLayerId,t),n.needMemoryUsageUpdate=!0;let r=this._isUpdating(n);n.needFrame=!0,r||n.layerView.updatingFlagChanged()}}setLayerOffset(e,t){if(!this._lyr3DMain){this._debugLog(0,1,this._wasmNotLoaded);return}let n=this._layers.get(e.wasmLayerId);n&&(this._lyr3DMain.set_carto_offset_z(e.wasmLayerId,t),n.needFrame=!0,n.layerView.updatingFlagChanged())}getAttributionText(){return this._lyr3DMain?this._lyr3DMain.get_current_attribution_text().split(`|`):(this._debugLog(0,1,this._wasmNotLoaded),[])}onRenderableEvicted(e,t,n){this._lyr3DMain?this._layers.get(e.wasmLayerId)&&this._lyr3DMain.on_renderable_evicted(e.wasmLayerId,t,n):this._debugLog(0,1,this._wasmNotLoaded)}setMeshModifications(e,t){if(!this._lyr3DMain){this._debugLog(0,1,this._wasmNotLoaded);return}let n=this._layers.get(e.wasmLayerId);if(n){this._lyr3DMain.set_mesh_modification_polygons(e.wasmLayerId,t);let r=this._isUpdating(n);n.needFrame=!0,r||n.layerView.updatingFlagChanged()}}isUpdating(e){if(!this._lyr3DMain&&this._lyr3DMainPromise)return!0;let t=this._layers.get(e);return t?this._isUpdating(t):!1}incrementFrozenLayerViewCount(e){this._layers.has(e.wasmLayerId)&&(this._frozen||(this._elevationQueryFrozenAt=performance.now()),this._frozenLayerViewCount+=1)}decrementFrozenLayerViewCount(e){this._layers.has(e.wasmLayerId)&&(--this._frozenLayerViewCount,this._frozen||(this._elevationQueryFrozenDuration+=performance.now()-this._elevationQueryFrozenAt))}initializeWasm(e,t){return this._lyr3DMain?Promise.resolve():this.view.renderSpatialReference?(this._debugLog(0,3,`Lyr3DWasmPerSceneView.initializeWasm()`),this._lyr3DMainPromise||=C().then(n=>{this._lyr3DMain=n,this._lyr3DMainPromise=null;let r=this._lyr3DMain.addFunction(this._onNewJob.bind(this),`vi`),i=this._lyr3DMain.addFunction(this._onNewRenderable.bind(this),`vi`),a=this._lyr3DMain.addFunction(this._freeRenderables.bind(this),`vi`),o=this._lyr3DMain.addFunction(this._setRenderableVisibility.bind(this),`vi`),s=this._lyr3DMain.addFunction(this._onWasmError.bind(this),`viiii`),c=this._lyr3DMain.addFunction(this._onElevQueryComplete.bind(this),`vi`);if(!this.view.renderSpatialReference){this._lyr3DMain=null;return}this._viewSR=this.view.renderSpatialReference?.toJSON();let l=this.view.viewingMode===`global`?6:4;l===6?(this._viewSR.wkid=this._viewSR.latestWkid=k,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=A,this._viewSR.wkt=``):(this._viewSR.vcsWkid||(this._viewSR.vcsWkid=S(this.view.heightModelInfo)),this.view.renderSpatialReference?.isWebMercator?(this._viewSR.wkid=this._viewSR.latestWkid=O,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=A):this.view.renderSpatialReference?.wkid===32662?(this._viewSR.wkid=this._viewSR.latestWkid=k,l=3,this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=A):!this._viewSR.vcsWkid&&!this._viewSR.latestVcsWkid&&(this._viewSR.vcsWkid=this._viewSR.latestVcsWkid=-1));let u=has(`esri-lyr3D-max-concurrent-requests`)??16;if(!this._lyr3DMain.initialize_lyr3d_wasm(s,r,i,a,o,c,e,t,l,this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),Math.max(this._debugLevel,0),u))this._lyr3DMain=null,this._debugLog(0,0,`Lyr3d Main WASM failed to initialize`,!1);else if(this._workerHandle=new x(T(this.view.resourceController)),this._workerHandle.promise)return this._workerHandle.promise}).catch(e=>{this._debugLog(0,0,`Lyr3d WASM failed to download error = ${e}`,!1)}),this._lyr3DMainPromise):Promise.reject()}get isTerrainReady(){return this._isTerrainReady}setLodPixelThreshold(e,t){this._lyr3DMain?.set_lod_pixel_threshold(t);let n=this._layers.get(e.wasmLayerId);n&&(n.needFrame=!0,n.layerView.updatingFlagChanged())}setMaximumGaussianSplatCount(e){this._lyr3DMain.set_maximum_splat_count(e),this._layers.forEach(e=>{e.layerView.type===`gaussian-splat-3d`&&(e.needFrame=!0,e.layerView.updatingFlagChanged())})}queryElevation(e,t,n){if(s(n?.signal))return Promise.reject(o());if(!this._lyr3DMain)return Promise.reject(this._wasmNotLoaded);if(t.coordinates.length===0)return Promise.reject(`no coordinates for elevation query`);let r=this.view.viewingMode===`global`?m.WGS84:this._viewSR.wkid===O?m.WebMercator:m.PlateCarree,i=t.projectSync(r);i&&(t=i);let a=n?.maxGeometricError??0,c=this._createWasmElevationQuery(e.wasmLayerId,t,a);if(c===v)return Promise.reject(`max mesh elevation query limit exceeded`);if(c===y)return Promise.reject(`elevation query failed`);let l={wasmLayerId:e.wasmLayerId,descriptor:t,maxGeometricError:a,signal:n?.signal,attempt:0,timeoutAt:this._elevationQueryTime()+this._getElevationQueryTimeout(t),resolveCallback:null,rejectCallback:null},u=new Promise((e,t)=>{l.resolveCallback=e,l.rejectCallback=t});return this._elevationQueries.set(c,l),u}_createWasmElevationQuery(e,t,n){let r=t.coordinates.length*2,i=this._lyr3DMain._malloc(r*8);try{let a=new Float64Array(this._lyr3DMain.HEAPF64.buffer,i,r);for(let e=0;e<t.coordinates.length;++e){let n=t.coordinates[e];a[e*2]=n.x,a[e*2+1]=n.y}return this._lyr3DMain.create_elevation_query(e,n,i,r)}finally{this._lyr3DMain._free(i)}}_elevationQueryTime(){return(this._frozen?this._elevationQueryFrozenAt:performance.now())-this._elevationQueryFrozenDuration}_getElevationQueryTimeout(e){return 1e3*Math.sqrt(e.coordinates.length)}_checkForTimedOutElevationQueries(){if(this._elevationQueries.size===0)return;let e=this._elevationQueryTime(),t=[];this._elevationQueries.forEach((n,r)=>{e>=n.timeoutAt&&t.push(r)});for(let e of t){let t=this._elevationQueries.get(e);if(!t||(this._lyr3DMain.cancel_elevation_query(e),this._elevationQueries.get(e)!==t))continue;if(t.attempt>=3){t.rejectCallback(new r(`elevation-query:timeout`,`Elevation query timed out`)),this._elevationQueries.delete(e);continue}let n;try{n=this._createWasmElevationQuery(t.wasmLayerId,t.descriptor,t.maxGeometricError)}catch(n){this._elevationQueries.delete(e),t.rejectCallback(n);continue}n===v||n===y?(t.rejectCallback(new r(`elevation-query:error`,`Elevation query retry failed`)),this._elevationQueries.delete(e)):(t.attempt+=1,t.timeoutAt=this._elevationQueryTime()+this._getElevationQueryTimeout(t.descriptor)*2**t.attempt,this._elevationQueries.batch(()=>{this._elevationQueries.delete(e),this._elevationQueries.set(n,t)}))}}_checkForAbortedElevationQueries(){let e=[];this._elevationQueries.forEach((t,n)=>{s(t.signal)&&(this._lyr3DMain.cancel_elevation_query(n),t.rejectCallback(o()),e.push(n))});for(let t=0;t<e.length;++t)this._elevationQueries.delete(e[t])}_cancelElevationQueriesForLayer(e){let t=[];this._elevationQueries.forEach((n,r)=>{n.wasmLayerId===e&&(this._lyr3DMain.cancel_elevation_query(r),n.rejectCallback(o()),t.push(r))}),t.forEach(e=>this._elevationQueries.delete(e))}_pulseTask(e){let t=this._lyr3DMain;if(t){if(this._frozen){this._checkForAbortedElevationQueries(),this._flushPendingWasmCalls(e);return}if(this._cameraDirty){let e=this.view.state?.contentCamera;if(e){let{eye:n,center:r,up:i,near:a,far:o,fovY:s}=e,c=[e.screenViewport[2],e.screenViewport[3]],l={eye:n,center:r,up:i,near:a,far:o,fov:s,aspectRatio:e.width/e.height,viewport:c};t.set_camera_parameters(l),this._cameraDirty=!1}}if(this._cameraElevationDirty){let e=this.view.state?.contentCamera.relativeElevation;t.set_camera_elevation(e),this._cameraElevationDirty=!1}if(this._checkForAbortedElevationQueries(),!this._pulseDeferred.value&&(this._flushPendingWasmCalls(e),e.done))return;let n=0,r=0;this._layers.forEach(e=>{n+=e.layerView.usedMemory,r+=e.layerView.cachedMemory}),n/=1048576,r/=1048576;let i=this.view.resourceController.memoryController,a=i.usedMemory*i.maxMemory-n-this._lyr3DInternalMemoryBytes/1048576;this._lyr3DBusyCount=this._lyr3DMain.frame_pulse(i.memoryFactor,n,r,a,i.maxMemory),this._pulseDeferred.value=!1,this._checkForTimedOutElevationQueries(),this._lyr3DInternalMemoryBytes=this._lyr3DMain.get_index_memory_bytes(),this._layers.forEach(e=>{this._cameraElevationDirty||(e.needFrame=!1),e.layerView.updatingFlagChanged()}),this._hasLayerThatReplacesTerrain&&!this._isTerrainReady&&(this._isTerrainReady=this._lyr3DMain.is_terrain_ready(),this._isTerrainReady&&this.notifyChange(`isTerrainReady`)),e.madeProgress(),this._flushPendingWasmCalls(e)}}_isUpdating(e){return e.outstandingJobCount>0||e.outstandingRenderableCount>0||!this._frozen&&(e.needFrame||this._cameraDirty||this._cameraElevationDirty||this._pulseDeferred.value||this._lyr3DBusyCount>0)}_incrementJobCount(e,t){if(t.isForElevationQuery)return;let n=this._isUpdating(e);e.outstandingJobCount+=1,n||e.layerView.updatingFlagChanged()}_decrementJobCount(e,t){if(t.isForElevationQuery)return;let n=this._isUpdating(e);--e.outstandingJobCount,n!==this._isUpdating(e)&&e.layerView.updatingFlagChanged()}_incrementRenderableCount(e){let t=this._isUpdating(e);e.outstandingRenderableCount+=1,t||e.layerView.updatingFlagChanged()}_decrementRenderableCount(e){let t=this._isUpdating(e);--e.outstandingRenderableCount,t!==this._isUpdating(e)&&e.layerView.updatingFlagChanged()}_flushPendingWasmCalls(e){this._lyr3DMain&&(this._flushPendingCalls(this._pendingJobFailed,e),this._flushPendingCalls(this._pendingJobCompleted,e),this._flushPendingCalls(this._pendingRenderableCreated,e))}_flushPendingCalls(e,t){for(;!t.done&&e.length>0;){let n=e.shift();this._pulseDeferred.value=!0,n(this._lyr3DMain),t.madeProgress()}}_decrementJobCountIfLayerExists(e,t){this._layers.get(e.layerView.wasmLayerId)===e&&this._decrementJobCount(e,t)}_decrementRenderableCountIfLayerExists(e){this._layers.get(e.layerView.wasmLayerId)===e&&this._decrementRenderableCount(e)}_onJobFailed(e,t,n){t.error.length&&this._debugLog(1,1,t.error,!1),this._lyr3DMain&&!e.layerView.destroyed?this._pendingJobFailed.push(t=>{try{t.on_job_failed(n.jobId,n.desc)}finally{this._decrementJobCountIfLayerExists(e,n)}}):this._decrementJobCountIfLayerExists(e,n)}_onJobSucceeded(e,t,n){if(e.layerView.destroyed){this._lyr3DMain?this._pendingJobFailed.push(t=>{try{t.on_job_failed(n.jobId,n.desc)}finally{this._decrementJobCountIfLayerExists(e,n)}}):this._decrementJobCountIfLayerExists(e,n);return}let{data:r}=t;this._lyr3DMain?this._pendingJobCompleted.push(i=>{try{let e=r.byteLength,a=this._ensureJobDataBuffer(e);new Uint8Array(i.HEAPU8.buffer,a,e).set(r),i.on_job_completed(n.jobId,t.jobDescJson,a,e)}finally{this._decrementJobCountIfLayerExists(e,n)}}):this._decrementJobCountIfLayerExists(e,n)}_ensureJobDataBuffer(e){return e<=this._jobDataBufferCapacity&&this._jobDataBufferPtr||(this._jobDataBufferPtr&&this._lyr3DMain._free(this._jobDataBufferPtr),this._jobDataBufferPtr=this._lyr3DMain._malloc(e),this._jobDataBufferCapacity=e),this._jobDataBufferPtr}_getRequestPromises(e,n,r,i){let a=[];for(let o of e){let e=new URL(o.url);if(i.type===`integrated-mesh-3dtiles`){if(e.origin===r.origin&&e.pathname===r.pathname){if(i.rootTileset){a.push(Promise.resolve(i.rootTileset.slice()));continue}}else i.session&&e.searchParams.set(`session`,i.session)}a.push(t(e.toString(),n).then(e=>e.data))}return a}_getInitialPromise(e,t,n,r,i,a,o){let s=this._getRequestPromises(e.inputs,t,n,r);return Promise.all(s).then(e=>(i.inputs=e,this._workerHandle.invoke(i,a))).then(e=>e).catch(t=>{let n=1;return c(t)?this._debugLog(1,2,`job ${e.jobId} was cancelled.`):o&&t.details?.httpStatus===400?(n=3,this._debugLog(1,2,`Session expired, trying to create new Session.`)):this._debugLog(1,1,`job ${e.jobId} failed with error ${t}.`),{status:n,error:``,jobDescJson:``,data:new Uint8Array,missingInputs:[],inputs:[]}})}async _onNewJob(e){let t;try{t=this._lyr3DMain.Emval.toValue(e);let n=this._layers.get(t.layerId);if(!n)return;this._incrementJobCount(n,t);let r=n.abortController.signal,i=n.layerView.layer,a=i.type===`integrated-mesh-3dtiles`?i.key:null,o=i.type===`integrated-mesh-3dtiles`?i.session:null,s={responseType:`array-buffer`,signal:r,query:{...n.customParameters,token:n.apiKey,key:a}},l={id:t.jobId,inputs:[],jobDescJson:t.desc.slice(),isMissingResourceCase:!1},u=new URL(i.url),d=e=>{if(e.status===1)this._onJobFailed(n,e,t);else if(e.status===0)this._onJobSucceeded(n,e,t);else if(e.status===2){let a=this._getRequestPromises(e.missingInputs,s,u,i);Promise.all(a).then(t=>{l.jobDescJson=e.jobDescJson,e.originalInputs?l.inputs=e.originalInputs:l.inputs=[],l.isMissingResourceCase=!0;for(let e of t)l.inputs.push(e);return this._workerHandle.invoke(l,r)}).then(e=>{e.status===1?this._onJobFailed(n,e,t):e.status===0&&this._onJobSucceeded(n,e,t)}).catch(e=>{c(e)?this._debugLog(1,2,`job ${t.jobId} was cancelled.`):this._debugLog(1,1,`job ${t.jobId} failed with error ${e}.`),this._lyr3DMain?this._pendingJobFailed.push(e=>{try{e.on_job_failed(t.jobId,t.desc)}finally{this._decrementJobCountIfLayerExists(n,t)}}):this._decrementJobCountIfLayerExists(n,t)})}};try{let e=await this._getInitialPromise(t,s,u,i,l,r,o);e.status===3&&i.type===`integrated-mesh-3dtiles`?(o===i.session&&i.session!==null&&await i.requestRootAndSession(r),d(await this._getInitialPromise(t,s,u,i,l,r,i.session))):d(e)}catch(e){e&&this._debugLog(1,1,e.toString(),!1),this._lyr3DMain?this._pendingJobFailed.push(e=>{try{e.on_job_failed(t.jobId,t.desc)}finally{this._decrementJobCountIfLayerExists(n,t)}}):this._decrementJobCountIfLayerExists(n,t)}}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_onNewRenderable(e){try{let t=this._lyr3DMain.Emval.toValue(e),n=this._layers.get(t.layerId);n&&(this._incrementRenderableCount(n),n.layerView.createRenderable(t).then(e=>{this._lyr3DMain&&!n.layerView.destroyed?this._pendingRenderableCreated.push(r=>{try{let{layerId:n,handle:i}=t,a=e();r.on_renderable_created(!0,n,i,a.memUsageBytes,a.numGaussians??0)}finally{this._decrementRenderableCountIfLayerExists(n)}}):this._decrementRenderableCountIfLayerExists(n)}).catch(e=>{c(e)||this._debugLog(2,1,`createRenderable failed with error ${e}.`),this._lyr3DMain&&!n.layerView.destroyed?this._pendingRenderableCreated.push(e=>{try{let{layerId:n,handle:r}=t;e.on_renderable_created(!1,n,r,0,0)}finally{this._decrementRenderableCountIfLayerExists(n)}}):this._decrementRenderableCountIfLayerExists(n)}))}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_freeRenderables(e){try{let t=this._lyr3DMain.Emval.toValue(e),n=this._layers.get(t.layerId);if(t.handles.length<1||!n)return;let r=n.layerView;for(let e=0;e<t.handles.length;++e)r.freeRenderable(t.handles[e])}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_setRenderableVisibility(e){try{let t=this._lyr3DMain.Emval.toValue(e),n=this._layers.get(t.layerId);if(t.handles.length<1||t.visibility.length!==t.handles.length||!n)return;let r=n.layerView,i=[],a=[];for(let e=0;e<t.handles.length;++e)i.push(t.handles[e]),a.push(!!(t.visibility[e]&1));r.setRenderableVisibility(i,a,t.handles.length)}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_onWasmError(e,t,n,r){if(this._lyr3DMain)try{this._debugLog(n,r,this._lyr3DMain.UTF8ToString(e,t),!1)}catch{}}_onElevQueryComplete(e){try{let t=this._lyr3DMain.Emval.toValue(e),{queryId:n}=t,i=this._elevationQueries.get(n);if(!i){this._debugLog(2,1,`_onElevQueryComplete called for unknown queryId ${n}.`);return}if(!t.succeeded||!t.zs)i.rejectCallback(new r(`elevation-query:error`,t?.error??`Elevation query failed`)),this._elevationQueries.delete(n);else{let{zs:e}=t,r=i.descriptor.clone();for(let t=0;t<e.length;++t)r.coordinates[t].z=e[t];this._debugLog(2,3,`Success EQ ${n}, number points ${e.length}.`),i.resolveCallback(r),this._elevationQueries.delete(n)}}catch(e){e&&this._debugLog(1,1,e.toString(),!1)}}_doRemoveLayerView(e){let t=this._layers.get(e.wasmLayerId);return t?(t.abortController.abort(),this._cancelElevationQueriesForLayer(e.wasmLayerId),this._lyr3DMain.remove_layer(e.wasmLayerId),this._is3DTilesIMLayerView(e)&&e.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!1,this._isTerrainReady=!1,this.notifyChange(`isTerrainReady`)),this._layers.delete(e.wasmLayerId),!0):!1}_is3DTilesIMLayerView(e){return e.layer.type===`integrated-mesh-3dtiles`}_is3DTilesIMLayer(e){return e.type===`integrated-mesh-3dtiles`}_isGaussianSplatLayerView(e){return e.layer.type===`gaussian-splat`}_isGaussianSplatLayer(e){return e.type===`gaussian-splat`}_toWasmQuality(e){switch(e){case`low`:return 1;case`medium`:return 2;case`high`:return 3}}_addLayerView(e){let t=e.layer;if(!t.url||!t.rootTilesetJSON)return{wasmLayerId:b};let n=t.type===`integrated-mesh-3dtiles`?0:2,r=this._lyr3DMain.validate_root_tileset(JSON.stringify(t.rootTilesetJSON),n);if(r.errorCode!==0)return{wasmLayerId:b,check:r};let a=this._lyr3DMain.get_next_layer_id(),o=new AbortController;this._layers.set(a,{layerView:e,abortController:o,needMemoryUsageUpdate:!1,outstandingJobCount:0,outstandingRenderableCount:0,customParameters:t.customParameters,apiKey:t.apiKey,needFrame:!0});let s=w(t.elevationInfo),c=this._toWasmQuality(this.view?.qualityProfile),l=e=>i.getLogger(this).error(`add-spatial-reference-error`,`Error when adding SR:`,e),u=!1;if(this._isGaussianSplatLayerView(e)&&this._isGaussianSplatLayer(t)||this._is3DTilesIMLayerView(e)&&this._is3DTilesIMLayer(t)){let n=t.spatialReference;if(e.useEsriCrs&&t.esriCrsSpatialReference){n=t.esriCrsSpatialReference;let r=h(n),i=1,a=1;!r&&n.wkid&&n.wkid!==-1&&(i=g.values[g[n.wkid]],a=e.metersPerVCSUnit),this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(n)),r,i,a).catch(l),!this._haveAddedViewSRForNoOpPrj&&n.vcsWkid&&this._viewSR.vcsWkid&&this._viewSR.vcsWkid!==-1&&this._viewSR.vcsWkid!==n.vcsWkid&&(this._workerHandle.addSpatialReferenceInfo(this._cleanUpSR(this._makeSRWasmSerializable(this._viewSR)),!1,1,1).catch(l),this._haveAddedViewSRForNoOpPrj=!0)}this._isGaussianSplatLayerView(e)?u=this._lyr3DMain.add_gaussian_splat_layer(c,t.url,a,s):this._is3DTilesIMLayerView(e)&&(u=this._lyr3DMain.add_3dtiles_layer(c,t.url,a,s,e.replacesTerrain),u&&e.replacesTerrain&&(this._hasLayerThatReplacesTerrain=!0,this._isTerrainReady=!1,this.notifyChange(`isTerrainReady`)))}return u?(this._updateWasmCamera(),this._is3DTilesIMLayerView(e)&&e.freeze&&this.incrementFrozenLayerViewCount(e),e.updatingFlagChanged(),{wasmLayerId:a}):(this._layers.delete(a),{wasmLayerId:b})}_updateWasmCamera(){this.view.state?.contentCamera&&this._lyr3DMain&&(this._cameraDirty=!0,this._frozen||this._markAllLayerViewsUpdating())}_updateWasmCameraElevation(){this._cameraElevationDirty=!0,this._frozen||this._markAllLayerViewsUpdating()}_markAllLayerViewsUpdating(){this._layers.forEach(e=>{let t=this._isUpdating(e);e.needFrame=!0,t||e.layerView.updatingFlagChanged()})}_makeSRWasmSerializable(e){return{wkid:e?.wkid??-1,latestWkid:e?.latestWkid??-1,vcsWkid:e?.vcsWkid??-1,latestVcsWkid:e?.latestVcsWkid??-1,wkt:e?.wkt??``}}_cleanUpSR(e){return e?.wkid===-1&&e.latestWkid&&e.latestWkid!==-1?e.wkid=e.latestWkid:e?.latestWkid===-1&&e.wkid&&e.wkid!==-1&&(e.latestWkid=e.wkid),e?.vcsWkid===-1&&e.latestVcsWkid&&e.latestVcsWkid!==-1?e.vcsWkid=e.latestVcsWkid:e?.latestVcsWkid===-1&&e.vcsWkid&&e.vcsWkid!==-1&&(e.latestVcsWkid=e.vcsWkid),e}};e([f({constructOnly:!0})],j.prototype,`view`,void 0),e([f()],j.prototype,`updating`,null),e([f({readOnly:!0})],j.prototype,`isTerrainReady`,null),j=e([p(`esri.layers.Lyr3DWasmPerSceneView`)],j);const M=j;export{M as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import e from"../../core/Error.js";import"../../core/has.js";import{LGIDictMapFrame as t,pairNeatline as n,extentFromArray as r}from"./LGIDictMapFrame.js";import{
|
|
2
|
+
import e from"../../core/Error.js";import"../../core/has.js";import{LGIDictMapFrame as t,pairNeatline as n,extentFromArray as r}from"./LGIDictMapFrame.js";import{ViewportMeasureFrame as i}from"./ViewportMeasureFrame.js";import{projectionToSpatialReference as a}from"./support/projectionToSpatialReference.js";function o(n,r=0){let o={mediaBox:y(n.MediaBox),rotate:C(n.Rotate),hasLGIDict:n.LGIDict!=null,hasVP:n.VP!=null};if(o.hasVP){let t=c(n.VP,r);if(!t)throw new e(`geospatial-pdf-layer:invalid frame`,`Failed to parse VP frame at index ${r}`);return{result:o,vpFrame:new i({bbox:t.BBox,bounds:t.Measure?.Bounds,gpts:t.Measure?.GPTS,lpts:t.Measure?.LPTS,gcs:t.Measure?.GCS,mediaBox:y(n.MediaBox)})}}if(o.hasLGIDict){let i=s(n.LGIDict,r);if(!i)throw new e(`geospatial-pdf-layer:invalid frame`,`Failed to parse LGI Dict frame at index ${r}`);if(!i.Projection)throw new e(`geospatial-pdf-layer:parse`,`LGIDict map frame missing Projection.`);let c=a(i.Projection),l;try{l=i.Display?a(i.Display):void 0}catch{l=c}return{result:o,lgiDictFrame:new t({ctm:i.CTM,registration:i.Registration,projection:c,display:l,neatline:i.Neatline,mediaBox:y(n.MediaBox)})}}return{result:o}}function s(e,t){let n=l(e);try{let e=n[0],t=E(e);for(let r of n){let n=E(r);n>t&&(t=n,e=r)}return e}catch{return n[t]}}function c(e,t){return u(e)[t]}function l(e){return e==null?[]:Array.isArray(e)?e.map(e=>d(e)):[d(e)]}function u(e){return e==null?[]:Array.isArray(e)?e.map(e=>f(e)):[f(e)]}function d(e){let t=T(e,`LGIDict map frame must be an object.`);return{CTM:y(t.CTM),Registration:b(t.Registration),Neatline:y(t.Neatline),Projection:h(t.Projection),Display:h(t.Display)}}function f(e){let t=T(e,`Viewport frame must be an object.`),n=p(t.Measure);return{BBox:y(t.BBox),Measure_Raw:t.Measure,Measure:n,Raw:t}}function p(e){if(w(e))return{Bounds:y(e.Bounds),GPTS:y(e.GPTS),LPTS:y(e.LPTS),GCS:m(e.GCS)}}function m(e){if(w(e))return{WKT:x(e.WKT),EPSG:C(e.EPSG)}}function h(e){if(w(e))return{Type:S(e.Type),Units:S(e.Units),Datum:g(e.Datum),Projection_Type:S(e.ProjectionType),Central_Meridian:C(e.CentralMeridian),False_Easting:C(e.FalseEasting),False_Northing:C(e.FalseNorthing),Height:C(e.Height),Hemisphere:S(e.Hemisphere),Latitude_One:C(e.LatitudeOne),Latitude_Two:C(e.LatitudeTwo),Latitude_Of_True_Scale:C(e.LatitudeOfTrueScale),Longitude_One:C(e.LongitudeOne),Longitude_Two:C(e.LongitudeTwo),Longitude_Down_From_Pole:C(e.LongitudeDownFromPole),Orientation:S(e.Orientation),Origin_Height:C(e.OriginHeight),Origin_Latitude:C(e.OriginLatitude),Origin_Longitude:C(e.OriginLongitude),Scale_Factor:C(e.ScaleFactor),Standard_Parallel:C(e.StandardParallel),Standard_Parallel_One:C(e.StandardParallelOne),Standard_Parallel_Two:C(e.StandardParallelTwo),Zone:C(e.Zone),Description:S(e.Description),raw:e}}function g(e){return e==null?null:typeof e==`string`?{kind:`name`,name:S(e),ellipsoid:null,to_WGS84:null,raw:e}:w(e)?{kind:`definition`,name:S(e.Description),ellipsoid:_(e.Ellipsoid),to_WGS84:v(e.ToWGS84),raw:e}:{kind:`unknown`,name:S(e),ellipsoid:null,to_WGS84:null,raw:e}}function _(e){if(w(e))return{semi_Major_Axis:C(e.SemiMajorAxis),inverse_Flattening:C(e.InvFlattening),semi_Minor_Axis:C(e.SemiMinorAxis),description:S(e.Description)}}function v(e){if(w(e))return{dx:C(e.dx)??0,dy:C(e.dy)??0,dz:C(e.dz)??0,rx:C(e.rx)??0,ry:C(e.ry)??0,rz:C(e.rz)??0,sf:C(e.sf)??0}}function y(e){if(!Array.isArray(e))return;let t=[];for(let n of e){let e=C(n);if(e===void 0)return;t.push(e)}return t}function b(e){if(Array.isArray(e))return e.filter(e=>Array.isArray(e)).map(e=>e.map(e=>C(e)).filter(e=>e!==void 0))}function x(e){if(e!=null)return typeof e==`string`?e:String(e)}function S(e){let t=x(e);if(t!==void 0)return t.trim()}function C(e){if(e==null)return;if(typeof e==`number`)return Number.isFinite(e)?e:void 0;if(typeof e!=`string`)return;let t=e.trim();if(t===``)return;let n=Number(t);return Number.isFinite(n)?n:void 0}function w(e){return typeof e==`object`&&!!e&&!Array.isArray(e)}function T(t,n){if(!w(t))throw new e(`geospatial-pdf-layer:parse`,n);return t}function E(e){let t=e.Neatline;if(!t)return 0;let i=n(t),a=r(i);return(a.xmax-a.xmin)*(a.ymax-a.ymin)}export{o as parse};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
+
import e from"../../../core/Error.js";import{getInverseFlattening as t}from"./ellipsoidUtils.js";const n=/^(?:NAD83|NORTH AMERICAN 1983|NAR(?:-[A-Z])?)$/i,r=/^(?:NAD27|NORTH AMERICAN 1927|NAS(?:-[A-Z])?)$/i,i=/^(?:WGS84|WGS 84|WGE|WE)$/i;function a(e){let t=c(e);return t?l(t)?`NAD_1983`:u(t)?`NAD_1927`:f(t)?`WGS_1984`:`geospatialPDF`:`geospatialPDF`}function o(n){if(n.kind===`definition`){let r=n.raw.Ellipsoid;if(typeof r==`string`)throw new e(`geospatial-pdf-layer:unsupported-ellipsoid`,`Only ellipsoid definitions are supported but found predefined code`,{code:r});let i=n.raw.ToWGS84;if(typeof i==`string`)throw new e(`geospatial-pdf-layer:unsupported-datum-shift`,`Only shift definitions are supported but found predefined code`,{code:i});let a=n.ellipsoid;if(!a?.semi_Major_Axis)throw new e(`geospatial-pdf-layer:invalid-Datum`,`Datum definition requires semi-major axis`);let o=t(a),s=n.name??`GeospatialPDF_Datum`,c=`SPHEROID["${a.description??`GeospatialPDF_Spheroid`}",${a.semi_Major_Axis},${o}]`,l=n.to_WGS84;return`DATUM["${s}",${c}${l?`,TOWGS84[${l.dx??0},${l.dy??0},${l.dz??0},${l.rx??0},${l.ry??0},${l.rz??0},${l.sf??0}]`:``}]`}if(n.name){let e=n.name.toUpperCase();if(l(e))return`DATUM["D_North_American_1983",SPHEROID["GRS_1980",6378137,298.257222101]]`;if(u(e))return`DATUM["D_North_American_1927",SPHEROID["Clarke_1866",6378206.4,294.9786982]]`;if(f(e))return`DATUM["D_WGS_1984",SPHEROID["WGS_1984",6378137,298.257223563]]`}throw new e(`geospatial-pdf-layer:invalid-Datum`,`Unsupported datum `+n.name)}function s(e){let t=c(e);return t?l(t)?`GCS_North_American_1983`:u(t)?`GCS_North_American_1927`:f(t)?`GCS_WGS_1984`:`GCS_GeospatialPDF`:`GCS_GeospatialPDF`}function c(e){return e.name?d(e.name):null}function l(e){return n.test(e)}function u(e){return r.test(e)}function d(e){return e.trim().toUpperCase().replace(/_/g,` `).replace(/\s+/g,` `)}function f(e){return i.test(e)}export{c as getDatumName,o as getDatumWKTPart,s as getGeographicCoordinateSystemName,a as getProjectedDatumPrefix,l as isNAD83Datum};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
+
import e from"../../../core/Error.js";function t(t){if(t.inverse_Flattening!=null)return t.inverse_Flattening;let n=t.semi_Major_Axis,r=t.semi_Minor_Axis;if(n==null||r==null)throw new e(`geospatial-pdf-layer:invalid-Datum`,`Ellipsoid definition missing InvFlattening or SemiMinorAxis.`);return n===r?0:n/(n-r)}export{t as getInverseFlattening};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
+
import{getGeographicCoordinateSystemName as e,getDatumWKTPart as t}from"./datumUtils.js";function n(n){return`GEOGCS["${e(n)}",${t(n)},PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]]`}export{n as geographicProjectionToWKT};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
+
import e from"../../../core/Error.js";function t(e,t){switch(t){case`TC`:return[`PARAMETER["False_Easting",${e.False_Easting}]`,`PARAMETER["False_Northing",${e.False_Northing}]`,`PARAMETER["Central_Meridian",${e.Central_Meridian}]`,`PARAMETER["Latitude_Of_Origin",${e.Origin_Latitude}]`,`PARAMETER["Scale_Factor",${e.Scale_Factor}]`];case`PH`:return[`PARAMETER["False_Easting",${e.False_Easting}]`,`PARAMETER["False_Northing",${e.False_Northing}]`,`PARAMETER["Central_Meridian",${e.Central_Meridian}]`,`PARAMETER["Latitude_Of_Origin",${e.Origin_Latitude}]`];case`AC`:case`LE`:return[`PARAMETER["False_Easting",${e.False_Easting}]`,`PARAMETER["False_Northing",${e.False_Northing}]`,`PARAMETER["Central_Meridian",${e.Central_Meridian}]`,`PARAMETER["Latitude_Of_Origin",${e.Origin_Latitude}]`,`PARAMETER["Standard_Parallel_1",${e.Standard_Parallel_One}]`,`PARAMETER["Standard_Parallel_2",${e.Standard_Parallel_Two}]`];case`UT`:return n(e)}}function n(t){if(!t.Zone)throw new e(`geospatial-pdf-layer:invalid-projection`,`No zone found for projection code UT`);let n=t.Zone*6-183;return[`PARAMETER["False_Easting",500000]`,`PARAMETER["False_Northing",${/^s/i.test(t.Hemisphere??``)?1e7:0}]`,`PARAMETER["Central_Meridian",${n}]`,`PARAMETER["Latitude_Of_Origin",0]`,`PARAMETER["Scale_Factor",0.9996]`]}export{t as getParametersWKT};
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
+
import{getProjectedDatumPrefix as e}from"./datumUtils.js";import{geographicProjectionToWKT as t}from"./geographicProjectionUtils.js";import{getParametersWKT as n}from"./parameterUtils.js";import{getLinearUnitWKT as r}from"./unitUtils.js";function i(e,i,s){let c=o(e,i,s),l=a(i),u=t(s),d=r(e.Units??`M`);return`PROJCS["${c}",${u},PROJECTION["${l}"],${n(e,i).join(`,
|
|
3
|
+
`)},${d}]`}function a(e){switch(e){case`TC`:case`UT`:return`Transverse_Mercator`;case`PH`:return`Polyconic`;case`AC`:return`Albers`;case`LE`:return`Lambert_Conformal_Conic`}}function o(t,n,r){let i=e(r);switch(n){case`TC`:return`${i}_GeospatialPDF_Transverse_Mercator`;case`PH`:return`${i}_GeospatialPDF_Polyconic`;case`UT`:return`${i}_GeospatialPDF_UTM_Zone_${t.Zone}_${t.Hemisphere}`;case`AC`:return`${i}_GeospatialPDF_Albers_Equal_Area`;case`LE`:return`${i}_GeospatialPDF_Lambert_Conformal_Conic`}}export{i as projectedProjectionToWKT};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
+
import e from"../../../geometry/SpatialReference.js";import{geographicProjectionToWKT as t}from"./geographicProjectionUtils.js";import{projectedProjectionToWKT as n}from"./projectedProjectionUtils.js";import{statePlaneToSpatialReference as r}from"./statePlaneUtils.js";import{validateProjection as i}from"./validateProjectionUtils.js";function a(a){let o=i(a);switch(o.kind){case`geographic`:return new e({wkt:t(o.datum)});case`projected`:return o.projectionType===`SPCS`?r(a,o.datum):new e({wkt:n(a,o.projectionType,o.datum)})}}export{a as projectionToSpatialReference};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
+
import e from"../../../core/Error.js";import t from"../../../geometry/SpatialReference.js";import{getDatumName as n,isNAD83Datum as r}from"./datumUtils.js";function i(i,a){let o=n(a);if(i.Zone===2800&&o&&r(o))return new t({wkid:32110});throw new e(`geospatial-pdf-layer:invalid-projection`,`Unsupported State Plane projection: datum ${a.name}, zone ${i.Zone}`)}export{i as statePlaneToSpatialReference};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
+
function e(e){let t=e.toLowerCase();return[`m`,`meter`,`meters`,`metre`,`metres`].includes(t)?`UNIT["Meter",1.0]`:[`ft`,`foot`,`feet`].includes(t)?`UNIT["Foot",0.3048]`:`UNIT["${e}",1.0]`}export{e as getLinearUnitWKT};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
+
import e from"../../../core/Error.js";const t={OriginLatitude:`Origin_Latitude`,CentralMeridian:`Central_Meridian`,ScaleFactor:`Scale_Factor`,FalseEasting:`False_Easting`,FalseNorthing:`False_Northing`,Zone:`Zone`,Hemisphere:`Hemisphere`,StandardParallelOne:`Standard_Parallel_One`,StandardParallelTwo:`Standard_Parallel_Two`};function n(e){let t=e.Projection_Type;switch(t){case`GEODETIC`:case`GEOGRAPHIC`:return r(e,t);default:return i(e)}}function r(t,n){if(!a(t.Type))throw new e(`geospatial-pdf-layer:invalid-projection`,`Expected Projection or Display dictionary.`);let r=t.Datum;if(!r)throw new e(`geospatial-pdf-layer:invalid-projection`,`Missing datum definition or code for GEODETIC WKT`);if(r.kind===`unknown`){let t=r.name??`unknown`;throw new e(`geospatial-pdf-layer:invalid-projection`,`Invalid Datum: ${t}`)}return{kind:`geographic`,projectionType:n,datum:t.Datum}}function i(t){let n=a(t.Type),r;n||(r=`Projection dictionary is missing or has invalid Type. Expected Projection or Display.`);let i=t.Projection_Type;i||(r=`Missing a projection Code`);let c=o(t.Projection_Type);c||(r=`Unsupported projection code: `+i);let l=t.Datum;if(l?l.kind===`unknown`&&(r=`Invalid datum: `+(l.name??`unknown`)):r=`Missing datum definition or code for LGI Dict Frame`,r)throw new e(`geospatial-pdf-layer:invalid-projection`,r);return s(t,c),{kind:`projected`,dictionaryType:n,projectionType:c,datum:t.Datum}}function a(e){switch(e){case`Projection`:case`Display`:return e;default:return}}function o(e){switch(e){case`TC`:case`PH`:case`UT`:case`AC`:case`LE`:case`SPCS`:return e;default:return}}function s(n,r){for(let i of c(r)){let a=n[t[i]];if(a===void 0||a===``)throw new e(`geospatial-pdf-layer:invalid-projection`,`Projection ${r} missing required parameter ${i}.`)}}function c(e){switch(e){case`TC`:return[`OriginLatitude`,`CentralMeridian`,`ScaleFactor`,`FalseEasting`,`FalseNorthing`];case`PH`:return[`OriginLatitude`,`CentralMeridian`,`FalseEasting`,`FalseNorthing`];case`UT`:return[`Zone`,`Hemisphere`];case`AC`:case`LE`:return[`OriginLatitude`,`CentralMeridian`,`StandardParallelOne`,`StandardParallelTwo`,`FalseEasting`,`FalseNorthing`];case`SPCS`:return[`Zone`]}}export{n as validateProjection};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/6.0/LICENSE.txt */
|
|
2
|
-
import has from"../../../../core/has.js";import{clone as e}from"../../../../core/lang.js";import{
|
|
2
|
+
import has from"../../../../core/has.js";import{clone as e}from"../../../../core/lang.js";import{queryCapabilities as t,queryBinsCapabilities as n}from"../../data/QueryEngineCapabilities.js";import{defaultPointSymbolJSON as r,defaultPolylineSymbolJSON as i,defaultPolygonSymbolJSON as a}from"../../../../symbols/support/defaultsJSON.js";function o(e){return{renderer:{type:`simple`,symbol:e===`esriGeometryPoint`||e===`esriGeometryMultipoint`?r:e===`esriGeometryPolyline`?i:a}}}const s=/^[_$a-zA-Z][_$a-zA-Z0-9]*$/;let c=1;function l(e,t){if(has(`esri-csp-restrictions`))return()=>t?{[t]:null,...e}:{...e};try{let n=``;t&&(n+=`this${u(t)} = null;`);for(let t in e){let r=u(t);n+=`this${r} = ${JSON.stringify(e[t])};`}let r=Function(`
|
|
3
3
|
return class AttributesClass$${c++} {
|
|
4
4
|
constructor() {
|
|
5
5
|
${n};
|
|
6
6
|
}
|
|
7
7
|
}
|
|
8
|
-
`)();return()=>new r}catch{return()=>t?{[t]:null,...e}:{...e}}}function u(e){return s.test(e)?`.${e}`:`[${JSON.stringify(e)}]`}function d(t={}){return[{name:`New Feature`,description:``,prototype:{attributes:e(t)}}]}const f={...
|
|
8
|
+
`)();return()=>new r}catch{return()=>t?{[t]:null,...e}:{...e}}}function u(e){return s.test(e)?`.${e}`:`[${JSON.stringify(e)}]`}function d(t={}){return[{name:`New Feature`,description:``,prototype:{attributes:e(t)}}]}const f={...t,supportsSpatialAggregationStatistics:!1,supportedSpatialAggregationStatistics:{envelope:!1,centroid:!1,convexHull:!1},supportsCentroid:!1,supportsDistance:!1,supportsExtent:!1,supportsQuantization:!1,supportsQueryGeometry:!1,supportsDisjointSpatialRelationship:!1},p={...n,supportedStatistics:{...n.supportedStatistics,envelope:!1,centroid:!1,convexHull:!1}};function m(e,r,i=!1){return{analytics:{supportsCacheHint:!1},attachment:null,data:{isVersioned:!1,isBranchVersioned:!1,supportedCurveTypes:[],supportsAttachment:!1,supportsM:!1,supportsTrueCurve:!1,supportsZ:e},metadata:{supportsAdvancedFieldProperties:!1},operations:{supportsCalculate:!1,supportsTruncate:!1,supportsValidateSql:!1,supportsAdd:r,supportsDelete:r,supportsEditing:r,supportsChangeTracking:!1,supportsQuery:!0,supportsQueryBins:!0,supportsQueryPivot:!1,supportsQueryAnalytics:!1,supportsQueryAttachments:!1,supportsQueryTopFeatures:!1,supportsResizeAttachments:!1,supportsSync:!1,supportsUpdate:r,supportsExceedsLimitStatistics:!0,supportsAsyncConvert3D:!1},query:i?f:t,queryRelated:{supportsCount:!0,supportsOrderBy:!0,supportsPagination:!0,supportsCacheHint:!1},queryTopFeatures:{supportsCacheHint:!1},queryAttributeBins:i?p:n,editing:{supportsGeometryUpdate:r,supportsGlobalId:!1,supportsReturnServiceEditsInSourceSpatialReference:!1,supportsRollbackOnFailure:!1,supportsTrueCurveUpdate:r,supportsTrueCurveUpdateByTrueCurveClientsOnly:!1,supportsUpdateWithoutM:!1,supportsUploadWithItemId:!1,supportsDeleteByAnonymous:!1,supportsDeleteByOthers:!1,supportsUpdateByAnonymous:!1,supportsUpdateByOthers:!1,supportsAsyncApplyEdits:!1,zDefault:void 0}}}export{m as createCapabilities,l as createDefaultAttributesFunction,d as createDefaultTemplate,o as createDrawingInfo};
|
|
@@ -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/Accessor.js";import n from"../../core/Error.js";import r from"../../core/Logger.js";import{getOrCreateMapValue as i}from"../../core/MapUtils.js";import{createAbortError as a}from"../../core/promiseUtils.js";import{parseWhereClause as o}from"../../core/sql.js";import{property as s,subclass as c}from"../../core/accessorSupport/decorators.js";import l from"../../geometry/Extent.js";import u from"../../geometry/Polygon.js";import{initializeProjection as d,project as f}from"../../geometry/projectionUtils.js";import{wgs84 as p}from"../../geometry/support/spatialReferenceUtils.js";import{systemOidFieldName as m,systemOriginIdFieldName as h,systemDestinationIdFieldName as g,systemIsSpatialFieldName as _,systemLayoutGeometryFieldName as v}from"./constants.js";import{recursiveParseSqlToCypher as y,addAdditionalClausesToCypher as b}from"./cypherUtils.js";import x from"./SessionMemoryStorage.js";import{utilsExtentToInBoundsRings as S}from"./supportUtils.js";import{executeQueryStreaming as C}from"../../rest/knowledgeGraphService.js";import w from"../../rest/knowledgeGraph/GraphQueryStreaming.js";import T from"../../rest/support/Query.js";let E=class extends t{constructor(e){super(e),this._processingCacheUpdatesLookup=new Map,this.knowledgeGraph=null,this.inclusionModeDefinition={generateAllSublayers:!0,namedTypeDefinitions:new Map},this.entityTypeNames=new Set,this.relationshipTypeNames=new Set,this.geographicLookup=new Map,this.sublayerCaches=new Map,this.nodeConnectionsLookup=new Map,this.relationshipConnectionsLookup=new Map,this.memberIdTypeLookup=new Map;let t=new Map;e.knowledgeGraph.dataModel.entityTypes?.forEach(n=>{n.name&&(t.set(n.name,`entity`),this._processingCacheUpdatesLookup.set(n.name,[]),(!e.inclusionModeDefinition||e.inclusionModeDefinition?.generateAllSublayers)&&this.entityTypeNames.add(n.name),n.properties?.forEach(e=>{e.geometryType&&e.geometryType!==`esriGeometryNull`&&this.geographicLookup.set(n.name,{name:e.name??``,geometryType:e.geometryType})}))}),e.knowledgeGraph.dataModel.relationshipTypes?.forEach(n=>{n.name&&(t.set(n.name,`relationship`),this._processingCacheUpdatesLookup.set(n.name,[]),(!e.inclusionModeDefinition||e.inclusionModeDefinition?.generateAllSublayers)&&this.relationshipTypeNames.add(n.name),n.properties?.forEach(e=>{e.geometryType&&e.geometryType!==`esriGeometryNull`&&this.geographicLookup.set(n.name,{name:e.name??``,geometryType:e.geometryType})}))}),e.inclusionModeDefinition?.namedTypeDefinitions.forEach((n,a)=>{if(t.get(a)===`entity`)this.entityTypeNames.add(a);else if(t.get(a)===`relationship`)this.relationshipTypeNames.add(a);else{r.getLogger(this).warn(`A named type, ${a}, was in the inclusion list that wasn't in the data model and will be removed`),e.inclusionModeDefinition?.namedTypeDefinitions.delete(a);return}let o=new Map;n.members?.forEach(e=>{i(this.memberIdTypeLookup,e.id,()=>new Set).add(a)}),this.sublayerCaches.set(a,o)})}addToLayer(e){e.forEach(({typeName:e,id:t})=>{if(!this.inclusionModeDefinition)throw new n(`knowledge-graph:layer-data-manager`,`You cannot add to a layer's exclusion list if it was not created with an exclusion list originally`);if(!this.inclusionModeDefinition.namedTypeDefinitions.has(e)){let n=new Map;n.set(t,{id:t}),this.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!1,members:n}),i(this.memberIdTypeLookup,t,()=>new Set).add(e)}else if(this.inclusionModeDefinition.namedTypeDefinitions.has(e)){let n=this.inclusionModeDefinition.namedTypeDefinitions.get(e);n.members||=new Map,n.members.set(t,{id:t}),i(this.memberIdTypeLookup,t,()=>new Set).add(e)}})}getById(e){return x.getInstance().readFromStoreById(e)}async getData(e,t,n,r){if(t.objectType.name&&this.inclusionModeDefinition?.namedTypeDefinitions&&this.inclusionModeDefinition.namedTypeDefinitions.size>0&&!this.inclusionModeDefinition.namedTypeDefinitions.has(t.objectType.name))return{features:[],cypherTranslationApplied:!1};let i;if(i=e||new T({where:`1=1`,outFields:[`*`]}),n.type===`link-chart`){let e=n,r=this._processingCacheUpdatesLookup.get(t.objectType.name??``),a=i.outFields;a&&a.length===1&&a[0]===m&&i.where===`1=1`||await Promise.all(r??[]);let o=this.sublayerCaches.has(t.objectType.name??``)?Array.from(this.sublayerCaches.get(t.objectType.name)?.values()):[],s=[];return o.forEach(n=>{if(this.relationshipTypeNames.has(t.objectType.name)){n.geometry=e.relationshipLinkChartDiagramLookup.get(n.attributes[t.objectIdField]);let r=this.memberIdTypeLookup.get(n.attributes[h]),i=this.memberIdTypeLookup.get(n.attributes[g]),a=this._isEndEntitySpatial(r,n,h),o=this._isEndEntitySpatial(i,n,g);n.attributes[_]=Number(a&&o)}else{n.geometry=e.entityLinkChartDiagramLookup.get(n.attributes[t.objectIdField]);let r=this.geographicLookup.get(t.objectType.name);r&&n.attributes[r.name]?n.attributes[_]=1:n.attributes[_]=0}n.attributes[v]=n.geometry,s.push(n)}),{features:s,cypherTranslationApplied:!1}}return this.retrieveDataFromService(i,t,n,r)}async getConnectedRecordIds(e,t,n){let r=[],i=``,a=this._getNamedTypeIdMapFromNodeIds(e);if(t&&t?.length!==0){for(let e of t)i=i+e+`|`;i=i.slice(0,-1)}let o={},s=[];for(let[e,n]of a){let r=`${e}_ids`;o[r]=n,t&&t?.length!==0?s.push(`MATCH (n:${e}) WHERE id(n) IN $${r} WITH n MATCH (n)-[r:${i}]-(m) RETURN id(r), type(r), id(m), labels(m)[0]`):s.push(`MATCH (n:${e}) WHERE id(n) IN $${r} WITH n MATCH (n)-[r]-(m) RETURN id(r), type(r), id(m), labels(m)[0]`)}if(!s.length)return r;let c=s.join(` UNION `),l=(await C(this.knowledgeGraph,new w({openCypherQuery:c,bindParameters:o}),{signal:n?.signal})).resultRowsStream.getReader();for(;;){let{done:e,value:t}=await l.read();if(e)break;for(let e=0;e<t.length;e++){let n=t[e];r.push({id:n[0],typeName:n[1]}),r.push({id:n[2],typeName:n[3]})}}return r}async getRelationshipsBetweenNodes(e,t,n){let r=this._getNamedTypeIdMapFromNodeIds(e);if(r.size===0)return[];let i={relationshipExclusionIds:t,possibleConnectionEntityIds:e},a=[];for(let[e,t]of r.entries()){let n=`${e}_ids`;i[n]=t,a.push(`MATCH (n:${e}) WHERE id(n) IN $${n} WITH n MATCH (n)-[r]->(m) WHERE id(m) IN $possibleConnectionEntityIds AND NOT id(r) IN $relationshipExclusionIds RETURN id(r), type(r)`)}let o=a.join(` UNION `),s=[],c=(await C(this.knowledgeGraph,new w({openCypherQuery:o,bindParameters:i}),{signal:n?.signal})).resultRowsStream.getReader();for(;;){let{done:e,value:t}=await c.read();if(e)break;for(let e=0;e<t.length;e++){let n=t[e];s.push({id:n[0],typeName:n[1]})}}return s}async getRelationshipsFromNodes(e,t,n,r){let i=this._getNamedTypeIdMapFromNodeIds(e);if(i.size===0||t.length===0)return[];let a={relationshipExclusionIds:n,possibleConnectionEntityIds:t},o=[];for(let[e,t]of i.entries()){let n=`${e}_ids`;a[n]=t,o.push(`MATCH (n:${e}) WHERE id(n) IN $${n} WITH n MATCH (n)-[r]-(m) WHERE id(m) IN $possibleConnectionEntityIds AND NOT id(r) IN $relationshipExclusionIds RETURN id(r), type(r)`)}let s=o.join(` UNION `),c=new Map,l=(await C(this.knowledgeGraph,new w({openCypherQuery:s,bindParameters:a}),{signal:r?.signal})).resultRowsStream.getReader();for(;;){let{done:e,value:t}=await l.read();if(e)break;for(let e=0;e<t.length;e++){let n=t[e],r=c.get(n[1]);r||(r=new Set,c.set(n[1],r)),r.add(n[0])}}let u=[];for(let[e,t]of c)for(let n of t)u.push({id:n,typeName:e});return u}async refreshCacheContent(e,t,r,o=!0,s){let c=x.getInstance(),l=[],u=new Map,d=new Map;this.knowledgeGraph.dataModel.entityTypes?.forEach(e=>{e.name&&d.set(e.name,e)}),this.knowledgeGraph.dataModel.relationshipTypes?.forEach(e=>{e.name&&d.set(e.name,e)}),!e&&!this.inclusionModeDefinition?(this.knowledgeGraph.dataModel.entityTypes?.forEach(e=>{e.name&&u.set(e.name,null)}),this.knowledgeGraph.dataModel.entityTypes?.forEach(e=>{e.name&&u.set(e.name,null)})):e?e.forEach(e=>{if(this.memberIdTypeLookup.has(e))for(let t of this.memberIdTypeLookup.get(e))u.has(t)?u.get(t)?.push(e):u.set(t,[e])}):this.inclusionModeDefinition?.namedTypeDefinitions?.forEach((e,t)=>{e.useAllData?u.set(t,null):e.members&&e.members.forEach(e=>{u.has(t)&&u.get(t)!==null?u.get(t)?.push(e.id):u.set(t,[e.id])})});for(let[e,a]of u){let u=new Set(a),f=new Promise((l,f)=>{(async()=>{let l=new Set,f=[],p=``,h=!1;if(t||d.get(e)?.properties?.forEach(e=>{e.name&&l.add(e.name)}),r&&this.geographicLookup.has(e)){let t=this.geographicLookup.get(e)?.name;t&&l.add(t)}if(this.entityTypeNames.has(e))p=`MATCH (n:${e}) ${a?`WHERE id(n) IN $ids `:``}return ID(n)`,l.forEach(e=>{p+=`, n.${e}`,f.push(e)});else if(this.relationshipTypeNames.has(e))h=!0,p=`MATCH ()-[n:${e}]->() ${a?`WHERE id(n) IN $ids `:``}return ID(n), id(startNode(n)), id(endNode(n))`,l.forEach(e=>{p+=`, n.${e}`,f.push(e)});else throw new n(`knowledge-graph:layer-data-manager`,`The graph type of ${e} could not be determined. Was this type set in the KG data model and inclusion definition?`);let g;g=a?new w({openCypherQuery:p,bindParameters:{ids:a}}):new w({openCypherQuery:p});let _=(await C(this.knowledgeGraph,g,{signal:s?.signal})).resultRowsStream.getReader();for(;;){let{done:t,value:n}=await _.read();if(t)break;let r=[];for(let e=0;e<n.length;e++){let t=n[e],a=0,o=0,s={properties:{}};for(s.id=t[a],a++,o++,h&&(s.originId=t[a],a++,o++,s.destinationId=t[a],a++,o++,i(this.nodeConnectionsLookup,s.originId,()=>new Set).add(s.id),i(this.nodeConnectionsLookup,s.destinationId,()=>new Set).add(s.id),i(this.relationshipConnectionsLookup,s.id,()=>[s.originId,s.destinationId]));a<t.length;a++)s.properties[f[a-o]]=t[a];u.delete(s.id),r.push(s)}let a=c.writeToStore(r,m,this.geographicLookup.get(e)?.name);this.sublayerCaches.has(e)||this.sublayerCaches.set(e,new Map),o&&!this.inclusionModeDefinition?.namedTypeDefinitions.has(e)&&this.inclusionModeDefinition?.namedTypeDefinitions.set(e,{useAllData:!1,members:new Map}),o&&!this.inclusionModeDefinition?.namedTypeDefinitions.get(e).members&&(this.inclusionModeDefinition.namedTypeDefinitions.get(e).members=new Map);let s=this.sublayerCaches.get(e);a.forEach(t=>{s?.set(t.attributes[m],t),o&&!this.inclusionModeDefinition?.namedTypeDefinitions.get(e).members.has(t.attributes[m])&&(this.inclusionModeDefinition?.namedTypeDefinitions.get(e).members.set(t.attributes[m],{id:t.attributes[m]}),i(this.memberIdTypeLookup,t.attributes[m],()=>new Set).add(e))})}let v=this.inclusionModeDefinition?.namedTypeDefinitions.get(e);if(v)for(let e of u)v.members?.delete(e)})().then(()=>{l(null)}).catch(e=>{e.name===`AbortError`?l(null):f(e)})});l.push(f),this._processingCacheUpdatesLookup.get(e)?.push(f)}if(await Promise.all(l),s?.signal?.aborted)throw a()}removeFromLayer(e){let t=new Set,n=new Set(e.map(e=>e.id));for(let n of e)t.add(n.typeName),this.memberIdTypeLookup.get(n.id)?.size===1?this.memberIdTypeLookup.delete(n.id):this.memberIdTypeLookup.get(n.id)?.delete(n.typeName),this.inclusionModeDefinition?.namedTypeDefinitions.forEach((e,t)=>{t===n.typeName&&e.members?.has(n.id)&&e.members.delete(n.id)});t.forEach(e=>{this.sublayerCaches.get(e)?.forEach((t,r)=>{n.has(r)&&this.sublayerCaches.get(e)?.delete(r)})})}async retrieveDataFromService(e,t,r,i){let a=x.getInstance(),s=new Set,c=[],h=``,g=[],_=!1,v,T=t.graphType===`relationship`,E=this.inclusionModeDefinition?.namedTypeDefinitions?.get(t.objectType.name)?.useAllData,D=r.sublayerIdsCache.get(t.objectType.name),O=!E&&D?Array.from(D).sort():null,k={systemOidFieldName:m,supportedSqlTypes:new Set([`column-reference`,`string`,`number`,`binary-expression`]),supportedSqlOperators:new Set([`=`,`<`,`<=`,`<>`,`>`,`>=`,`AND`,`OR`,`LIKE`]),unsupportedOperationFound:!1};if(this.inclusionModeDefinition?.namedTypeDefinitions?.get(t.objectType.name)?.useAllData)this.inclusionModeDefinition?.namedTypeDefinitions?.get(t.objectType.name)?.useAllData&&e.objectIds!=null&&(O=e.objectIds);else if(e.objectIds!=null&&O&&O.length>0){let t=e.objectIds,n=O.filter(e=>t.includes(e));if(t.length>0&&n.length===0)return{features:[],cypherTranslationApplied:_};e.objectIds=n}else if(e.objectIds!=null)O=e.objectIds;else if(this.inclusionModeDefinition?.namedTypeDefinitions.has(t.objectType.name)&&(!this.inclusionModeDefinition.namedTypeDefinitions.get(t.objectType.name)?.members||this.inclusionModeDefinition.namedTypeDefinitions.get(t.objectType.name)?.members?.size<1))return e.objectIds=[],{features:[],cypherTranslationApplied:_};else e.objectIds=O;if(e.outFields!=null){let n=e.outFields;n.includes(`*`)?t.fields.forEach(e=>{s.add(e.name)}):n.forEach(e=>{e!==m&&e!==t.geometryFieldName&&s.add(e)})}if(e.geometry!=null){let i=e.geometry,a,m=r.dataManager.knowledgeGraph.serviceDefinition,g=m?.spatialReference,_=m?.serviceCapabilities?.geometryCapabilities,y=_?.geometryMaxBoundingRectangleSizeX,b=_?.geometryMaxBoundingRectangleSizeY;if(i.type===`point`){let e=i;e.spatialReference?.isWGS84||(await d(e.spatialReference,p),e=f(e,p)),a=new l({spatialReference:p,xmin:e.x-1e-4,ymin:e.y-1e-4,xmax:e.x+1e-4,ymax:e.y+1e-4})}else i?.extent?.spatialReference&&!i.spatialReference?.isWGS84?(await d(i.extent.spatialReference,p),a=f(i.extent,p)):a=i.extent;if(y&&b&&g){if(g.wkid!==4326){let e=new l({spatialReference:g,xmax:y,ymax:b}),t=f(e,p);y=t.xmax,b=t.ymax}if(a.xmax-a.xmin>y)throw new n(`knowledge-graph:layer-data-manager`,`Extent x bounds should be within ${y}° latitude, limit exceeded`);if(a.ymax-a.ymin>b)throw new n(`knowledge-graph:layer-data-manager`,`Extent y bounds should be within ${b}° longitude, limit exceeded`)}if(e.where!=null&&e.where!==`1=1`){let n=await o(e.where.toUpperCase(),t.fieldsIndex);t.fields.forEach(e=>{n.fieldNames.includes(e.name)&&s.add(e.name)})}h=T?`Match ()-[n:${t.objectType.name}]->() WHERE esri.graph.ST_Intersects($param_filter_geom, n.${t.geometryFieldName}) return ID(n), id(startNode(r)), id(endNode(r))`:`Match (n:${t.objectType.name}) WHERE esri.graph.ST_Intersects($param_filter_geom, n.${t.geometryFieldName}) return ID(n)`,t.geometryFieldName&&s.add(t.geometryFieldName),s.forEach(e=>{h+=`, n.${e}`,c.push(e)}),v=new w({openCypherQuery:h,bindParameters:{param_filter_geom:new u({rings:S(a)})}})}else{let n=``;if(e.where!=null&&e.where!==`1=1`){let r=await o(e.where,t.fieldsIndex);t.fields.forEach(e=>{r.fieldNames.includes(e.name)&&s.add(e.name)}),n=y(r.parseTree,k),k.unsupportedOperationFound&&(n=``)}let r=``;r=T?`Match ()-[n:${t.objectType.name}]->()`:`Match (n:${t.objectType.name})`;let i=!1;O&&(i=!0,r+=` WHERE ID(n) IN $ids`),n&&(r+=i?` AND`:` WHERE`,r+=` ${n}`),r+=` return ID(n)`,T&&(r+=`, id(startNode(n)), id(endNode(n))`),e.returnGeometry&&t.geometryFieldName&&s.add(t.geometryFieldName),s.forEach(e=>{r+=`, n.${e}`,c.push(e)}),k.unsupportedOperationFound||(r=b(r,e),_=!0),v=O?new w({openCypherQuery:r,bindParameters:{ids:O}}):new w({openCypherQuery:r})}let A=(await C(r.dataManager.knowledgeGraph,v,i)).resultRowsStream.getReader();for(;;){let{done:e,value:n}=await A.read();if(e)break;let i=[];for(let e=0;e<n.length;e++){let t=n[e],r=0,a=0,o={properties:{}};for(o.id=t[r],r++,a++,T&&(o.originId=t[r],r++,a++,o.destinationId=t[r],r++,a++);r<t.length;r++)o.properties[c[r-a]]=t[r];i.push(o)}g=g.concat(a.writeToStore(i,m,r.dataManager.geographicLookup.get(t.objectType.name)?.name))}return{features:g,cypherTranslationApplied:_}}_isEndEntitySpatial(e,t,n){for(let r of e??[])if(this.entityTypeNames.has(r)){let e=this.geographicLookup.get(r),i=e&&this.sublayerCaches.get(r)?.get(t.attributes[n]);if(e&&i?.attributes[e.name])return!0}return!1}_getNamedTypeIdMapFromNodeIds(e){let t=new Map;return e.forEach(e=>{if(this.memberIdTypeLookup.has(e))for(let n of this.memberIdTypeLookup.get(e)){if(!this.entityTypeNames.has(n))return;t.has(n)?t.get(n)?.push(e):t.set(n,[e])}}),t}};e([s()],E.prototype,`knowledgeGraph`,void 0),e([s()],E.prototype,`inclusionModeDefinition`,void 0),e([s()],E.prototype,`entityTypeNames`,void 0),e([s()],E.prototype,`relationshipTypeNames`,void 0),e([s()],E.prototype,`geographicLookup`,void 0),e([s()],E.prototype,`sublayerCaches`,void 0),e([s()],E.prototype,`nodeConnectionsLookup`,void 0),e([s()],E.prototype,`relationshipConnectionsLookup`,void 0),e([s()],E.prototype,`memberIdTypeLookup`,void 0),E=e([c(`esri.layers.knowledgeGraph.KnowledgeGraphLayerDataManager`)],E);export{E as KnowledgeGraphLayerDataManager};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../core/Accessor.js";import n from"../../core/Error.js";import r from"../../core/Logger.js";import{getOrCreateMapValue as i}from"../../core/MapUtils.js";import{createAbortError as a}from"../../core/promiseUtils.js";import{parseWhereClause as o}from"../../core/sql.js";import{property as s,subclass as c}from"../../core/accessorSupport/decorators.js";import l from"../../geometry/Extent.js";import u from"../../geometry/Polygon.js";import{initializeProjection as d,project as f}from"../../geometry/projectionUtils.js";import{wgs84 as p}from"../../geometry/support/spatialReferenceUtils.js";import{systemOidFieldName as m,systemOriginIdFieldName as h,systemDestinationIdFieldName as g,systemIsSpatialFieldName as _,systemLayoutGeometryFieldName as v}from"./constants.js";import{recursiveParseSqlToCypher as y,addAdditionalClausesToCypher as b}from"./cypherUtils.js";import x from"./SessionMemoryStorage.js";import{utilsExtentToInBoundsRings as S}from"./supportUtils.js";import{executeQueryStreaming as C}from"../../rest/knowledgeGraphService.js";import w from"../../rest/knowledgeGraph/GraphQueryStreaming.js";import T from"../../rest/support/Query.js";let E=class extends t{constructor(e){super(e),this._processingCacheUpdatesLookup=new Map,this.knowledgeGraph=null,this.inclusionModeDefinition={generateAllSublayers:!0,namedTypeDefinitions:new Map},this.entityTypeNames=new Set,this.relationshipTypeNames=new Set,this.geographicLookup=new Map,this.sublayerCaches=new Map,this.nodeConnectionsLookup=new Map,this.relationshipConnectionsLookup=new Map,this.memberIdTypeLookup=new Map;let t=new Map;e.knowledgeGraph.dataModel.entityTypes?.forEach(n=>{n.name&&(t.set(n.name,`entity`),this._processingCacheUpdatesLookup.set(n.name,[]),(!e.inclusionModeDefinition||e.inclusionModeDefinition?.generateAllSublayers)&&this.entityTypeNames.add(n.name),n.properties?.forEach(e=>{e.geometryType&&e.geometryType!==`esriGeometryNull`&&this.geographicLookup.set(n.name,{name:e.name??``,geometryType:e.geometryType})}))}),e.knowledgeGraph.dataModel.relationshipTypes?.forEach(n=>{n.name&&(t.set(n.name,`relationship`),this._processingCacheUpdatesLookup.set(n.name,[]),(!e.inclusionModeDefinition||e.inclusionModeDefinition?.generateAllSublayers)&&this.relationshipTypeNames.add(n.name),n.properties?.forEach(e=>{e.geometryType&&e.geometryType!==`esriGeometryNull`&&this.geographicLookup.set(n.name,{name:e.name??``,geometryType:e.geometryType})}))}),e.inclusionModeDefinition?.namedTypeDefinitions.forEach((n,a)=>{if(t.get(a)===`entity`)this.entityTypeNames.add(a);else if(t.get(a)===`relationship`)this.relationshipTypeNames.add(a);else{r.getLogger(this).warn(`A named type, ${a}, was in the inclusion list that wasn't in the data model and will be removed`),e.inclusionModeDefinition?.namedTypeDefinitions.delete(a);return}let o=new Map;n.members?.forEach(e=>{i(this.memberIdTypeLookup,e.id,()=>new Set).add(a)}),this.sublayerCaches.set(a,o)})}addToLayer(e){e.forEach(({typeName:e,id:t})=>{if(!this.inclusionModeDefinition)throw new n(`knowledge-graph:layer-data-manager`,`You cannot add to a layer's exclusion list if it was not created with an exclusion list originally`);if(!this.inclusionModeDefinition.namedTypeDefinitions.has(e)){let n=new Map;n.set(t,{id:t}),this.inclusionModeDefinition.namedTypeDefinitions.set(e,{useAllData:!1,members:n}),i(this.memberIdTypeLookup,t,()=>new Set).add(e)}else if(this.inclusionModeDefinition.namedTypeDefinitions.has(e)){let n=this.inclusionModeDefinition.namedTypeDefinitions.get(e);n.members||=new Map,n.members.set(t,{id:t}),i(this.memberIdTypeLookup,t,()=>new Set).add(e)}})}getById(e){return x.getInstance().readFromStoreById(e)}async getData(e,t,n,r){if(t.objectType.name&&this.inclusionModeDefinition?.namedTypeDefinitions&&this.inclusionModeDefinition.namedTypeDefinitions.size>0&&!this.inclusionModeDefinition.namedTypeDefinitions.has(t.objectType.name))return{features:[],cypherTranslationApplied:!1};let i;if(i=e||new T({where:`1=1`,outFields:[`*`]}),n.type===`link-chart`){let e=n,r=this._processingCacheUpdatesLookup.get(t.objectType.name??``),a=i.outFields;a&&a.length===1&&a[0]===m&&i.where===`1=1`||await Promise.all(r??[]);let o=this.sublayerCaches.has(t.objectType.name??``)?Array.from(this.sublayerCaches.get(t.objectType.name)?.values()):[],s=[];return o.forEach(n=>{if(this.relationshipTypeNames.has(t.objectType.name)){n.geometry=e.relationshipLinkChartDiagramLookup.get(n.attributes[t.objectIdField]);let r=this.memberIdTypeLookup.get(n.attributes[h]),i=this.memberIdTypeLookup.get(n.attributes[g]),a=this._isEndEntitySpatial(r,n,h),o=this._isEndEntitySpatial(i,n,g);n.attributes[_]=Number(a&&o)}else{n.geometry=e.entityLinkChartDiagramLookup.get(n.attributes[t.objectIdField]);let r=this.geographicLookup.get(t.objectType.name);r&&n.attributes[r.name]?n.attributes[_]=1:n.attributes[_]=0}n.attributes[v]=n.geometry,s.push(n)}),{features:s,cypherTranslationApplied:!1}}return this.retrieveDataFromService(i,t,n,r)}async getConnectedRecordIds(e,t,n){let r=[],i=``,a=this._getNamedTypeIdMapFromNodeIds(e);if(t&&t?.length!==0){for(let e of t)i=i+e+`|`;i=i.slice(0,-1)}let o={},s=[];for(let[e,n]of a){let r=`${e}_ids`;o[r]=n,t&&t?.length!==0?s.push(`MATCH (n:${e}) WHERE id(n) IN $${r} WITH n MATCH (n)-[r:${i}]-(m) RETURN id(r), type(r), id(m), labels(m)[0]`):s.push(`MATCH (n:${e}) WHERE id(n) IN $${r} WITH n MATCH (n)-[r]-(m) RETURN id(r), type(r), id(m), labels(m)[0]`)}if(!s.length)return r;let c=s.join(` UNION `),l=(await C(this.knowledgeGraph,new w({openCypherQuery:c,bindParameters:o}),{signal:n?.signal})).resultRowsStream.getReader();for(;;){let{done:e,value:t}=await l.read();if(e)break;for(let e=0;e<t.length;e++){let n=t[e];r.push({id:n[0],typeName:n[1]}),r.push({id:n[2],typeName:n[3]})}}return r}async getRelationshipsBetweenNodes(e,t,n){let r=this._getNamedTypeIdMapFromNodeIds(e);if(r.size===0)return[];let i={relationshipExclusionIds:t,possibleConnectionEntityIds:e},a=[];for(let[e,t]of r.entries()){let n=`${e}_ids`;i[n]=t,a.push(`MATCH (n:${e}) WHERE id(n) IN $${n} WITH n MATCH (n)-[r]->(m) WHERE id(m) IN $possibleConnectionEntityIds AND NOT id(r) IN $relationshipExclusionIds RETURN id(r), type(r)`)}let o=a.join(` UNION `),s=[],c=(await C(this.knowledgeGraph,new w({openCypherQuery:o,bindParameters:i}),{signal:n?.signal})).resultRowsStream.getReader();for(;;){let{done:e,value:t}=await c.read();if(e)break;for(let e=0;e<t.length;e++){let n=t[e];s.push({id:n[0],typeName:n[1]})}}return s}async getRelationshipsFromNodes(e,t,n,r){let i=this._getNamedTypeIdMapFromNodeIds(e);if(i.size===0||t.length===0)return[];let a={relationshipExclusionIds:n,possibleConnectionEntityIds:t},o=[];for(let[e,t]of i.entries()){let n=`${e}_ids`;a[n]=t,o.push(`MATCH (n:${e}) WHERE id(n) IN $${n} WITH n MATCH (n)-[r]-(m) WHERE id(m) IN $possibleConnectionEntityIds AND NOT id(r) IN $relationshipExclusionIds RETURN id(r), type(r)`)}let s=o.join(` UNION `),c=new Map,l=(await C(this.knowledgeGraph,new w({openCypherQuery:s,bindParameters:a}),{signal:r?.signal})).resultRowsStream.getReader();for(;;){let{done:e,value:t}=await l.read();if(e)break;for(let e=0;e<t.length;e++){let n=t[e],r=c.get(n[1]);r||(r=new Set,c.set(n[1],r)),r.add(n[0])}}let u=[];for(let[e,t]of c)for(let n of t)u.push({id:n,typeName:e});return u}async refreshCacheContent(e,t,r,o=!0,s){let c=x.getInstance(),l=[],u=new Map,d=new Map;this.knowledgeGraph.dataModel.entityTypes?.forEach(e=>{e.name&&d.set(e.name,e)}),this.knowledgeGraph.dataModel.relationshipTypes?.forEach(e=>{e.name&&d.set(e.name,e)}),!e&&!this.inclusionModeDefinition?(this.knowledgeGraph.dataModel.entityTypes?.forEach(e=>{e.name&&u.set(e.name,null)}),this.knowledgeGraph.dataModel.entityTypes?.forEach(e=>{e.name&&u.set(e.name,null)})):e?e.forEach(e=>{if(this.memberIdTypeLookup.has(e))for(let t of this.memberIdTypeLookup.get(e))u.has(t)?u.get(t)?.push(e):u.set(t,[e])}):this.inclusionModeDefinition?.namedTypeDefinitions?.forEach((e,t)=>{e.useAllData?u.set(t,null):e.members&&e.members.forEach(e=>{u.has(t)&&u.get(t)!==null?u.get(t)?.push(e.id):u.set(t,[e.id])})});for(let[e,a]of u){let u=new Set(a),f=new Promise((l,f)=>{(async()=>{let l=new Set,f=[],p=``,h=!1;if(t||d.get(e)?.properties?.forEach(e=>{e.name&&l.add(e.name)}),r&&this.geographicLookup.has(e)){let t=this.geographicLookup.get(e)?.name;t&&l.add(t)}if(this.entityTypeNames.has(e))p=`MATCH (n:${e}) ${a?`WHERE id(n) IN $ids `:``}return ID(n)`,l.forEach(e=>{p+=`, n.${e}`,f.push(e)});else if(this.relationshipTypeNames.has(e))h=!0,p=`MATCH ()-[n:${e}]->() ${a?`WHERE id(n) IN $ids `:``}return ID(n), id(startNode(n)), id(endNode(n))`,l.forEach(e=>{p+=`, n.${e}`,f.push(e)});else throw new n(`knowledge-graph:layer-data-manager`,`The graph type of ${e} could not be determined. Was this type set in the KG data model and inclusion definition?`);let g;g=a?new w({openCypherQuery:p,bindParameters:{ids:a}}):new w({openCypherQuery:p});let _=(await C(this.knowledgeGraph,g,{signal:s?.signal})).resultRowsStream.getReader();for(;;){let{done:t,value:n}=await _.read();if(t)break;let r=[];for(let e=0;e<n.length;e++){let t=n[e],a=0,o=0,s={properties:{}};for(s.id=t[a],a++,o++,h&&(s.originId=t[a],a++,o++,s.destinationId=t[a],a++,o++,i(this.nodeConnectionsLookup,s.originId,()=>new Set).add(s.id),i(this.nodeConnectionsLookup,s.destinationId,()=>new Set).add(s.id),i(this.relationshipConnectionsLookup,s.id,()=>[s.originId,s.destinationId]));a<t.length;a++)s.properties[f[a-o]]=t[a];u.delete(s.id),r.push(s)}let a=c.writeToStore(r,m,this.geographicLookup.get(e)?.name);this.sublayerCaches.has(e)||this.sublayerCaches.set(e,new Map),o&&!this.inclusionModeDefinition?.namedTypeDefinitions.has(e)&&this.inclusionModeDefinition?.namedTypeDefinitions.set(e,{useAllData:!1,members:new Map}),o&&!this.inclusionModeDefinition?.namedTypeDefinitions.get(e).members&&(this.inclusionModeDefinition.namedTypeDefinitions.get(e).members=new Map);let s=this.sublayerCaches.get(e);a.forEach(t=>{s?.set(t.attributes[m],t),o&&!this.inclusionModeDefinition?.namedTypeDefinitions.get(e).members.has(t.attributes[m])&&(this.inclusionModeDefinition?.namedTypeDefinitions.get(e).members.set(t.attributes[m],{id:t.attributes[m]}),i(this.memberIdTypeLookup,t.attributes[m],()=>new Set).add(e))})}let v=this.inclusionModeDefinition?.namedTypeDefinitions.get(e);if(v)for(let e of u)v.members?.delete(e)})().then(()=>{l(null)}).catch(e=>{e.name===`AbortError`?l(null):f(e)})});l.push(f),this._processingCacheUpdatesLookup.get(e)?.push(f)}if(await Promise.all(l),s?.signal?.aborted)throw a()}removeFromLayer(e){let t=new Set,n=new Set(e.map(e=>e.id));for(let n of e)t.add(n.typeName),this.memberIdTypeLookup.get(n.id)?.size===1?this.memberIdTypeLookup.delete(n.id):this.memberIdTypeLookup.get(n.id)?.delete(n.typeName),this.inclusionModeDefinition?.namedTypeDefinitions.forEach((e,t)=>{t===n.typeName&&e.members?.has(n.id)&&e.members.delete(n.id)});t.forEach(e=>{this.sublayerCaches.get(e)?.forEach((t,r)=>{n.has(r)&&this.sublayerCaches.get(e)?.delete(r)})})}async retrieveDataFromService(e,t,r,i){let a=x.getInstance(),s=new Set,c=[],h=``,g=[],_=!1,v,T=t.graphType===`relationship`,E=this.inclusionModeDefinition?.namedTypeDefinitions?.get(t.objectType.name)?.useAllData,D=r.sublayerIdsCache.get(t.objectType.name),O=!E&&D?Array.from(D).sort():null,k={systemOidFieldName:m,supportedSqlTypes:new Set([`column-reference`,`string`,`number`,`binary-expression`]),supportedSqlOperators:new Set([`=`,`<`,`<=`,`<>`,`>`,`>=`,`AND`,`OR`,`LIKE`]),unsupportedOperationFound:!1};if(this.inclusionModeDefinition?.namedTypeDefinitions?.get(t.objectType.name)?.useAllData)this.inclusionModeDefinition?.namedTypeDefinitions?.get(t.objectType.name)?.useAllData&&e.objectIds!=null&&(O=e.objectIds);else{if(!O?.length)return{features:[],cypherTranslationApplied:_};if(e.objectIds!=null){let t=e.objectIds,n=O.filter(e=>t.includes(e));if(t.length>0&&n.length===0)return{features:[],cypherTranslationApplied:_};e.objectIds=n,n.length>0&&(O=n)}else e.objectIds=O}if(e.outFields!=null){let n=e.outFields;n.includes(`*`)?t.fields.forEach(e=>{s.add(e.name)}):n.forEach(e=>{e!==m&&e!==t.geometryFieldName&&s.add(e)})}if(e.geometry!=null){let i=e.geometry,a,m=r.dataManager.knowledgeGraph.serviceDefinition,g=m?.spatialReference,_=m?.serviceCapabilities?.geometryCapabilities,y=_?.geometryMaxBoundingRectangleSizeX,b=_?.geometryMaxBoundingRectangleSizeY;if(i.type===`point`){let e=i;e.spatialReference?.isWGS84||(await d(e.spatialReference,p),e=f(e,p)),a=new l({spatialReference:p,xmin:e.x-1e-4,ymin:e.y-1e-4,xmax:e.x+1e-4,ymax:e.y+1e-4})}else i?.extent?.spatialReference&&!i.spatialReference?.isWGS84?(await d(i.extent.spatialReference,p),a=f(i.extent,p)):a=i.extent;if(y&&b&&g){if(g.wkid!==4326){let e=new l({spatialReference:g,xmax:y,ymax:b}),t=f(e,p);y=t.xmax,b=t.ymax}if(a.xmax-a.xmin>y)throw new n(`knowledge-graph:layer-data-manager`,`Extent x bounds should be within ${y}° latitude, limit exceeded`);if(a.ymax-a.ymin>b)throw new n(`knowledge-graph:layer-data-manager`,`Extent y bounds should be within ${b}° longitude, limit exceeded`)}if(e.where!=null&&e.where!==`1=1`){let n=await o(e.where.toUpperCase(),t.fieldsIndex);t.fields.forEach(e=>{n.fieldNames.includes(e.name)&&s.add(e.name)})}h=T?`Match ()-[n:${t.objectType.name}]->() WHERE esri.graph.ST_Intersects($param_filter_geom, n.${t.geometryFieldName}) return ID(n), id(startNode(r)), id(endNode(r))`:`Match (n:${t.objectType.name}) WHERE esri.graph.ST_Intersects($param_filter_geom, n.${t.geometryFieldName}) return ID(n)`,t.geometryFieldName&&s.add(t.geometryFieldName),s.forEach(e=>{h+=`, n.${e}`,c.push(e)}),v=new w({openCypherQuery:h,bindParameters:{param_filter_geom:new u({rings:S(a)})}})}else{let n=``;if(e.where!=null&&e.where!==`1=1`){let r=await o(e.where,t.fieldsIndex);t.fields.forEach(e=>{r.fieldNames.includes(e.name)&&s.add(e.name)}),n=y(r.parseTree,k),k.unsupportedOperationFound&&(n=``)}let r=``;r=T?`Match ()-[n:${t.objectType.name}]->()`:`Match (n:${t.objectType.name})`;let i=!1;O&&(i=!0,r+=` WHERE ID(n) IN $ids`),n&&(r+=i?` AND`:` WHERE`,r+=` ${n}`),r+=` return ID(n)`,T&&(r+=`, id(startNode(n)), id(endNode(n))`),e.returnGeometry&&t.geometryFieldName&&s.add(t.geometryFieldName),s.forEach(e=>{r+=`, n.${e}`,c.push(e)}),k.unsupportedOperationFound||(r=b(r,e),_=!0),v=O?new w({openCypherQuery:r,bindParameters:{ids:O}}):new w({openCypherQuery:r})}let A=(await C(r.dataManager.knowledgeGraph,v,i)).resultRowsStream.getReader();for(;;){let{done:e,value:n}=await A.read();if(e)break;let i=[];for(let e=0;e<n.length;e++){let t=n[e],r=0,a=0,o={properties:{}};for(o.id=t[r],r++,a++,T&&(o.originId=t[r],r++,a++,o.destinationId=t[r],r++,a++);r<t.length;r++)o.properties[c[r-a]]=t[r];i.push(o)}g=g.concat(a.writeToStore(i,m,r.dataManager.geographicLookup.get(t.objectType.name)?.name))}return{features:g,cypherTranslationApplied:_}}_isEndEntitySpatial(e,t,n){for(let r of e??[])if(this.entityTypeNames.has(r)){let e=this.geographicLookup.get(r),i=e&&this.sublayerCaches.get(r)?.get(t.attributes[n]);if(e&&i?.attributes[e.name])return!0}return!1}_getNamedTypeIdMapFromNodeIds(e){let t=new Map;return e.forEach(e=>{if(this.memberIdTypeLookup.has(e))for(let n of this.memberIdTypeLookup.get(e)){if(!this.entityTypeNames.has(n))return;t.has(n)?t.get(n)?.push(e):t.set(n,[e])}}),t}};e([s()],E.prototype,`knowledgeGraph`,void 0),e([s()],E.prototype,`inclusionModeDefinition`,void 0),e([s()],E.prototype,`entityTypeNames`,void 0),e([s()],E.prototype,`relationshipTypeNames`,void 0),e([s()],E.prototype,`geographicLookup`,void 0),e([s()],E.prototype,`sublayerCaches`,void 0),e([s()],E.prototype,`nodeConnectionsLookup`,void 0),e([s()],E.prototype,`relationshipConnectionsLookup`,void 0),e([s()],E.prototype,`memberIdTypeLookup`,void 0),E=e([c(`esri.layers.knowledgeGraph.KnowledgeGraphLayerDataManager`)],E);export{E as KnowledgeGraphLayerDataManager};
|