@arcgis/core 5.1.0-next.43 → 5.1.0-next.45
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/applications/Components/featureUtils.d.ts +11 -7
- package/arcade/featureset/actions/Adapted.js +1 -1
- package/arcade/featureset/actions/AttributeFilter.js +1 -1
- package/arcade/featureset/actions/OrderBy.js +1 -1
- package/arcade/featureset/actions/SpatialFilter.js +1 -1
- package/arcade/featureset/actions/Top.js +1 -1
- package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
- package/arcade/featureset/sources/FeatureLayerMemory.js +1 -1
- package/arcade/featureset/sources/FeatureLayerRelated.js +1 -1
- package/arcade/featureset/support/FeatureSet.js +1 -1
- package/arcade/featureset/support/OrderbyClause.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{eff198e0c21c9767ffaa.js → 0155e5679ded9de5c327.js} +1 -1
- package/assets/esri/core/workers/chunks/128799741dd3c6fc69b9.js +1 -0
- package/assets/esri/core/workers/chunks/13eb0162d95b4d27389c.js +1 -0
- package/assets/esri/core/workers/chunks/{0836964a65f76da35b5c.js → 1a3f874700f86b750390.js} +23 -23
- package/assets/esri/core/workers/chunks/1a481f3ae3146682eb00.js +1 -0
- package/assets/esri/core/workers/chunks/1cce2f8837ad765acf44.js +1 -0
- package/assets/esri/core/workers/chunks/2379c64b0ca30814a815.js +1 -0
- package/assets/esri/core/workers/chunks/23a9070e9362b8439770.js +1 -0
- package/assets/esri/core/workers/chunks/25e4568a3ff76f48ac5e.js +1 -0
- package/assets/esri/core/workers/chunks/{dbedd246f4b584583f95.js → 288bd32831e94e81653e.js} +1 -1
- package/assets/esri/core/workers/chunks/2b3a8a53cd68f666676b.js +1 -0
- package/assets/esri/core/workers/chunks/{4d16b6ac52e25bd7e6aa.js → 32a51ce8e1a362115c89.js} +1 -1
- package/assets/esri/core/workers/chunks/{392941013107bbd96503.js → 365ad1ffd496ed86637b.js} +1 -1
- package/assets/esri/core/workers/chunks/375eac59c9f88c7572db.js +2 -0
- package/assets/esri/core/workers/chunks/{eab74d830c2eaa9d133b.js → 4869e2f35aaf6b058281.js} +1 -1
- package/assets/esri/core/workers/chunks/{10941b50f5933d168df6.js → 521a671182b0f79e3624.js} +1 -1
- package/assets/esri/core/workers/chunks/{c2f3fc1b34a6782b431f.js → 5351e71ce7839636d06d.js} +1 -1
- package/assets/esri/core/workers/chunks/5b515b5741733bcb4645.js +1 -0
- package/assets/esri/core/workers/chunks/{1669f1bf959c4e3083da.js → 5c0b3c76a7bc971c61dc.js} +1 -1
- package/assets/esri/core/workers/chunks/5c830cce32710d70dfa6.js +1 -0
- package/assets/esri/core/workers/chunks/5e9bd5ed6ecee5b15127.js +1 -0
- package/assets/esri/core/workers/chunks/5f2e246ffcbdedea4de5.js +1 -0
- package/assets/esri/core/workers/chunks/617328964d480d4a3a45.js +1 -0
- package/assets/esri/core/workers/chunks/64da1ad9df9094ef5c12.js +1 -0
- package/assets/esri/core/workers/chunks/650614a9e4871714c42e.js +1 -0
- package/assets/esri/core/workers/chunks/66baacbef23291eab853.js +1 -0
- package/assets/esri/core/workers/chunks/7278cc37e85f0242f19b.js +1 -0
- package/assets/esri/core/workers/chunks/{3c597d8ef898627b8f93.js → 768bbc910be6c65ac107.js} +1 -1
- package/assets/esri/core/workers/chunks/{a1f36240a31057f998da.js → 79dc7045d9a2d43ba8df.js} +1 -1
- package/assets/esri/core/workers/chunks/{f9da5c81535eaffc8b9c.js → 7f07f490c6fcc794c8d9.js} +1 -1
- package/assets/esri/core/workers/chunks/{2b386374330d96387aec.js → 851fc5290497991ba001.js} +1 -1
- package/assets/esri/core/workers/chunks/{7132420980f77b6a871b.js → 8cafdd4addd366795600.js} +1 -1
- package/assets/esri/core/workers/chunks/{30cdb2d1d9f018f1642d.js → 9032c040b214b5af775b.js} +1 -1
- package/assets/esri/core/workers/chunks/{ff8ec6369c8a1bee9bb4.js → 908f171b9c512d738dea.js} +1 -1
- package/assets/esri/core/workers/chunks/{c7799ba861ac5af08e6a.js → 92d4e962284e13ba2fc5.js} +1 -1
- package/assets/esri/core/workers/chunks/970d971551e42f7ae08d.js +1 -0
- package/assets/esri/core/workers/chunks/9802770413ad814dab29.js +1 -0
- package/assets/esri/core/workers/chunks/{6e8cfe69617876ee0dac.js → a69f1879735a031f62e9.js} +1 -1
- package/assets/esri/core/workers/chunks/{af804beb43d4d10c54d9.js → a9f35127c3f5bf42036b.js} +1 -1
- package/assets/esri/core/workers/chunks/b5ced451d331ca1ffb68.js +1 -0
- package/assets/esri/core/workers/chunks/beb53b372d356800f333.js +1 -0
- package/assets/esri/core/workers/chunks/{8f12a559dbf284c21e2f.js → bf4d2f42d31861ea1046.js} +1 -1
- package/assets/esri/core/workers/chunks/c2aa3b1344b42a904234.js +1 -0
- package/assets/esri/core/workers/chunks/{9a9b1250be3e20499d75.js → ca88a364ef911526102e.js} +1 -1
- package/assets/esri/core/workers/chunks/cdeb6aec578a1c07d663.js +1 -0
- package/assets/esri/core/workers/chunks/cf5e4cf9b1aa37eeb6b0.js +1 -0
- package/assets/esri/core/workers/chunks/d0adf059085ddf7151dd.js +1 -0
- package/assets/esri/core/workers/chunks/d2af5342fbe80e2d8c60.js +1 -0
- package/assets/esri/core/workers/chunks/d3d024b3d2bb8fbbf760.js +1 -0
- package/assets/esri/core/workers/chunks/{80bfb5e5d613d2c412bf.js → dbafe96ce37bb82d0584.js} +1 -1
- package/assets/esri/core/workers/chunks/e4e0c5a45cf32973d5d5.js +1 -0
- package/assets/esri/core/workers/chunks/{093aa05fbde548bf9040.js → e5927f9d0e757ec4c22a.js} +1 -1
- package/assets/esri/core/workers/chunks/{b15a02bdcd78a1a51bd6.js → e72ca52d930afb5650af.js} +1 -1
- package/assets/esri/core/workers/chunks/{465cc0e00f03cdb640b2.js → e7402dfd683f82878360.js} +1 -1
- package/assets/esri/core/workers/chunks/{8838ff9668b472af16a1.js → ef0eae13408cbf83a64f.js} +1 -1
- package/assets/esri/core/workers/chunks/f1767b8ba82fdd9bd947.js +1 -0
- package/assets/esri/core/workers/chunks/{f835eea9f617556c7276.js → f6e3954ddbb5993d56df.js} +1 -1
- package/assets/esri/libs/lyr3d/lyr3DMain.wasm +0 -0
- package/assets/esri/libs/lyr3d/lyr3DWorker.wasm +0 -0
- package/assets/esri/libs/vxl/vxlLayer.wasm +0 -0
- package/assets/esri/themes/base/widgets/_Grid.scss +5 -0
- package/assets/esri/themes/dark/main.css +1 -1
- package/assets/esri/themes/light/main.css +1 -1
- package/assets/esri/themes/light/view.css +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip.json +1 -1
- package/assets/esri/views/interactive/tooltip/t9n/Tooltip_en.json +1 -1
- package/chunks/ComponentShader.glsl.js +11 -11
- package/chunks/DefaultMaterial.glsl.js +1 -1
- package/chunks/HUDMaterial.glsl.js +28 -36
- package/chunks/ImageMaterial.glsl.js +1 -1
- package/chunks/Jpg.js +1 -1
- package/chunks/Path.glsl.js +7 -7
- package/chunks/Pattern.glsl.js +1 -1
- package/chunks/RibbonLine.glsl.js +2 -2
- package/chunks/ShadowHighlight.glsl.js +1 -1
- package/chunks/Terrain.glsl.js +5 -5
- package/chunks/Water.glsl.js +5 -5
- package/chunks/Zlib.js +1 -1
- package/chunks/lyr3DMain.js +1 -1
- package/chunks/lyr3DWorker.js +1 -1
- package/chunks/vxlLayer.js +1 -1
- package/config.js +1 -1
- package/core/arrayUtils.js +1 -1
- package/geometry/support/zscale.js +1 -1
- package/kernel.js +1 -1
- package/layers/Lyr3DWasmPerSceneView.js +1 -1
- package/layers/SceneLayer.d.ts +16 -10
- package/layers/graphics/data/QueryEngineResult.js +1 -1
- package/layers/graphics/featureConversionUtils.js +1 -1
- package/layers/ogc/ogcFeatureUtils.js +1 -1
- package/layers/raster/formats/ImageCanvasDecoder.js +1 -1
- package/layers/raster/formats/JpgPlus.js +1 -1
- package/layers/raster/formats/RasterCodec.js +1 -1
- package/layers/raster/formats/TiffDecoder.js +1 -1
- package/layers/save/featureLayerUtils.js +1 -1
- package/layers/save/groupLayerUtils.js +1 -1
- package/layers/save/mapImageLayerUtils.js +1 -1
- package/layers/support/Sublayer.d.ts +6 -0
- package/layers/support/Sublayer.js +1 -1
- package/layers/support/SubtypeSublayer.js +1 -1
- package/layers/support/layerUtils.js +1 -1
- package/package.json +3 -3
- package/rest/query/operations/pbfFeatureSetUtils.js +1 -1
- package/rest/query/operations/pbfFlatFeatureSet.js +1 -1
- package/rest/query/operations/pbfOptimizedFeatureSet.js +1 -1
- package/support/revision.js +1 -1
- package/third-party-notices.txt +2 -2
- package/views/2d/engine/ManagedCanvas.js +1 -1
- package/views/2d/engine/vectorTiles/SpriteMosaic.js +1 -1
- package/views/2d/engine/vectorTiles/TileHandler.js +1 -1
- package/views/2d/engine/vectorTiles/VTLPainter3D.js +1 -1
- package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
- package/views/2d/engine/webgl/GlyphSource.js +1 -1
- package/views/2d/engine/webgl/TextureManager.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/text/TextMeshWriter.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/vectorTiles/VTLTechniqueSymbol.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
- package/views/2d/layers/TileLayerView2D.js +1 -1
- package/views/2d/layers/features/FeaturePipelineWorker.js +1 -1
- package/views/2d/layers/features/Processor.js +1 -1
- package/views/2d/layers/features/processor/AProcessorStrategy.js +1 -1
- package/views/2d/layers/features/processor/ClusterStrategy.js +1 -1
- package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedConfiguration.js +1 -1
- package/views/3d/environment/EnvironmentManager.js +1 -1
- package/views/3d/layers/i3s/I3SClientMaterialUtil.js +1 -1
- package/views/3d/layers/i3s/PointCloudRenderer.js +1 -1
- package/views/3d/layers/support/FastSymbolUpdates.js +1 -1
- package/views/3d/support/MemoryController.js +1 -1
- package/views/3d/terrain/OverlayRenderTargets.js +1 -1
- package/views/3d/terrain/OverlayRenderer.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/terrain/TileCompositor.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentDrawParameters.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentData.glsl.js +2 -2
- package/views/3d/webgl-engine/collections/Component/Material/ComponentMaterial.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/core/renderPasses/AllRenderPasses.js +1 -1
- package/views/3d/webgl-engine/core/renderPasses/RenderPass.js +1 -1
- package/views/3d/webgl-engine/core/renderPasses/RenderPassManager.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/ShaderOutput.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/ShaderOutputConfiguration.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/InstancedDoublePrecision.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/ObjectAndLayerIdColor.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/default/DefaultMaterialAuxiliaryPasses.glsl.js +4 -4
- package/views/3d/webgl-engine/core/shaderLibrary/output/OutputDepth.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlight.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/output/OutputHighlightOverlay.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +1 -1
- package/views/3d/webgl-engine/effects/RenderPlugin.js +1 -1
- package/views/3d/webgl-engine/effects/WeatherFader.js +1 -1
- package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizer.js +1 -1
- package/views/3d/webgl-engine/effects/debug/RenderNodeVisualizerNode.js +1 -1
- package/views/3d/webgl-engine/effects/geometry/ObjectAndLayerIDRenderNode.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/3d/webgl-engine/lib/CutFillComputationRenderNode.js +1 -1
- package/views/3d/webgl-engine/lib/GLMaterial.js +1 -1
- package/views/3d/webgl-engine/lib/Material.js +1 -1
- package/views/3d/webgl-engine/lib/OrderIndependentTransparency.js +1 -1
- package/views/3d/webgl-engine/lib/RenderContext.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/RenderingContext.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
- package/views/3d/webgl-engine/lib/SortedRenderGeometryRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/lodRendering/LodRenderer.js +1 -1
- package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/DefaultTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
- package/views/3d/webgl-engine/materials/PatternMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/TriangleMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/WaterMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
- package/views/3d/webgl-engine/materials/renderers/VaoRenderer.js +1 -1
- package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ColorMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ImageMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/LineCalloutTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarkerTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/MeasurementArrowTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/OutputColorHighlightOLID.glsl.js +10 -10
- package/views/3d/webgl-engine/shaders/PatternTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLineTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadedColorMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/TerrainTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/TerrainTechniqueConfiguration.js +1 -1
- package/views/interactive/GraphicManipulator.js +1 -1
- package/views/interactive/tooltip/content/TooltipContentDynamic.js +1 -1
- package/views/interactive/tooltip/infos/DynamicTooltipInfo.js +1 -1
- package/widgets/AreaMeasurement2D/AreaMeasurement2DTool.js +1 -1
- package/widgets/DistanceMeasurement2D/DistanceMeasurement2DTool.js +1 -1
- package/widgets/Editor/EditorViewModel.d.ts +1 -1
- package/widgets/Editor.d.ts +2 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable.js +1 -1
- package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
- package/widgets/Sketch/support/PluginManager.js +1 -1
- package/assets/esri/core/workers/chunks/02a0a58ca5916db1db19.js +0 -1
- package/assets/esri/core/workers/chunks/03c8453ae72a4e190252.js +0 -1
- package/assets/esri/core/workers/chunks/04981ae9d7728208ffce.js +0 -1
- package/assets/esri/core/workers/chunks/0e669a04999feb9f98c9.js +0 -1
- package/assets/esri/core/workers/chunks/23af269e88f9ac101ffb.js +0 -1
- package/assets/esri/core/workers/chunks/244dd7a948ca8a7dc6ef.js +0 -1
- package/assets/esri/core/workers/chunks/26cafd20c8d03c274389.js +0 -1
- package/assets/esri/core/workers/chunks/2fa86dacc8a12a6a6c43.js +0 -1
- package/assets/esri/core/workers/chunks/3e26f9af6b8c75bad97a.js +0 -1
- package/assets/esri/core/workers/chunks/42b556d56013350c9d80.js +0 -1
- package/assets/esri/core/workers/chunks/5a6a6e7151085a3cd3dd.js +0 -1
- package/assets/esri/core/workers/chunks/5eb9fdb076488de9cd83.js +0 -1
- package/assets/esri/core/workers/chunks/65865c25487d23dd2e31.js +0 -1
- package/assets/esri/core/workers/chunks/65ea5028eb12457a3aeb.js +0 -1
- package/assets/esri/core/workers/chunks/73a008b48e29eb6f2064.js +0 -2
- package/assets/esri/core/workers/chunks/80a1ccabd4257cc61e0d.js +0 -1
- package/assets/esri/core/workers/chunks/8333561a938bcdf6c2e6.js +0 -1
- package/assets/esri/core/workers/chunks/91718795fc4ca6516ac7.js +0 -1
- package/assets/esri/core/workers/chunks/93846f8b77fc802069a7.js +0 -1
- package/assets/esri/core/workers/chunks/9b80569819cd1c72a9ff.js +0 -1
- package/assets/esri/core/workers/chunks/b056b4c79bcd542dd1d2.js +0 -1
- package/assets/esri/core/workers/chunks/b553264db0f10bb8c5f7.js +0 -1
- package/assets/esri/core/workers/chunks/b6e63d8ce3c9ac9762f4.js +0 -1
- package/assets/esri/core/workers/chunks/c1cae45a159a5373ac00.js +0 -1
- package/assets/esri/core/workers/chunks/c4f64195e44986644993.js +0 -1
- package/assets/esri/core/workers/chunks/ca6012135929b028ea1b.js +0 -1
- package/assets/esri/core/workers/chunks/de79645e559a2d1ffa67.js +0 -1
- package/assets/esri/core/workers/chunks/ea356a5b90ea44b5cbe1.js +0 -1
- package/assets/esri/core/workers/chunks/f0e6a26a3625068b08ab.js +0 -1
- package/assets/esri/core/workers/chunks/f36a234ef35faf8ca04d.js +0 -1
- package/views/2d/engine/vectorTiles/GlyphMosaic.js +0 -2
- package/views/2d/engine/vectorTiles/GlyphSource.js +0 -2
- package/views/2d/engine/vectorTiles/RectangleBinPack.js +0 -2
- /package/assets/esri/core/workers/chunks/{73a008b48e29eb6f2064.js.LICENSE.txt → 375eac59c9f88c7572db.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import r from"../../PopupTemplate.js";import t from"../../request.js";import i from"../../core/Collection.js";import o from"../../core/Error.js";import has from"../../core/has.js";import{IdentifiableMixin as s}from"../../core/Identifiable.js";import{clone as a}from"../../core/lang.js";import{Loadable as l}from"../../core/Loadable.js";import n from"../../core/Logger.js";import{MultiOriginJSONSupportMixin as p}from"../../core/MultiOriginJSONSupport.js";import{sqlAnd as y}from"../../core/sql.js";import{objectToQuery as u}from"../../core/urlUtils.js";import{property as d,cast as c,subclass as h}from"../../core/accessorSupport/decorators.js";import{ensureInteger as f,ensureType as m,Integer as b,ensureClass as g}from"../../core/accessorSupport/ensureType.js";import{nameToId as w}from"../../core/accessorSupport/PropertyOrigin.js";import{getProperties as I}from"../../core/accessorSupport/utils.js";import S from"../../geometry/Extent.js";import v from"../../geometry/SpatialReference.js";import{featureGeometryTypeKebabDictionary as j}from"../../geometry/support/typeUtils.js";import O from"../../graphic/MapImageGraphicOrigin.js";import F from"../../graphic/TileGraphicOrigin.js";import x from"../graphics/sources/support/QueryTask.js";import{readOrderByInfos as L}from"../mixins/OrderedLayer.js";import D from"./EditFieldsInfo.js";import{getFeatureType as P}from"./featureLayerUtils.js";import T from"./FeatureType.js";import q from"./Field.js";import _ from"./FieldsIndex.js";import{fixRendererFields as E}from"./fieldUtils.js";import M from"./LabelClass.js";import{validateLabelingInfo as N}from"./labelingInfo.js";import A from"./LayerFloorInfo.js";import B from"./OrderByInfo.js";import k from"./Relationship.js";import{getFeatureLayerCapabilities as R}from"./serviceCapabilitiesUtils.js";import{webSceneRendererTypes as C,rendererTypes as V}from"../../renderers/support/typeUtils.js";import{parseUrl as Q}from"../../rest/utils.js";import U from"../../rest/layerSources/DynamicDataLayer.js";import J from"../../rest/layerSources/DynamicMapLayer.js";import $ from"../../rest/support/AttachmentQuery.js";import W from"../../rest/support/Query.js";import{createPopupTemplate as G}from"../../support/popupUtils.js";import{isSymbol3D as K}from"../../symbols/support/typeUtils.js";import z from"../../tables/AttributeTableTemplate.js";import{reader as H}from"../../core/accessorSupport/decorators/reader.js";import{writer as X}from"../../core/accessorSupport/decorators/writer.js";var Y;function Z(e){return"esriSMS"===e?.type}function ee(e,r,t){const i=t.minimumWritableOrigin||t.origin;return!!i&&e.originIdOf(r)>=w(i)}function re(e,r,t){const i=ee(this,r,t);return{ignoreOrigin:!0,allowNull:i,enabled:!!t&&("map-image"===t.layer?.type&&(t.writeSublayerStructure||i))}}function te(e,r,t){return{enabled:!!t&&("tile"===t.layer?.type&&(ee(this,r,t)||this._isOverridden(r)))}}function ie(e,r,t){return{ignoreOrigin:!0,enabled:t&&t.writeSublayerStructure||!1}}function oe(e,r,t){return{ignoreOrigin:!0,enabled:!!t?.writeSublayerStructure&&this.originIdOf(r)>2}}function se(e,r,t){return{ignoreOrigin:!0,enabled:!!t&&(t.writeSublayerStructure||ee(this,r,t))}}let ae=0;const le=new Set(["layer","parent","loaded","loadStatus","loadError","loadWarnings"]);let ne=class extends(p(s(l))){static{Y=this}constructor(e){super(e),this.attributeTableTemplate=null,this.capabilities=void 0,this.editFieldsInfo=null,this.maxScaleRange={minScale:0,maxScale:0},this.fields=null,this.fullExtent=null,this.geometryType=null,this.globalIdField=null,this.isTable=!1,this.legendEnabled=!0,this.objectIdField=null,this.parent=null,this.popupEnabled=!0,this.popupTemplate=null,this.relationships=null,this.sourceJSON=null,this.spatialReference=null,this.title=null,this.typeIdField=null,this.type="sublayer",this.types=null,this._lastParsedUrl=null}async load(e){return this.addResolvingPromise(this.reload(e)),this}readCapabilities(e,r){r=r.layerDefinition||r;const{attachment:t,operations:{supportsQuery:i,supportsQueryAttachments:o},query:{supportsFormatPBF:s,supportsOrderBy:a,supportsPagination:l,relativeTimeBinWindow:n},data:{supportsAttachment:p},queryRelated:y}=R(r,this.url);return{attachment:{supportsOrderByFields:t?.supportsOrderByFields??!1,supportsResize:t?.supportsResize??!1,supportsTypeWildcard:t?.supportsTypeWildcard??!1},exportMap:{supportsModification:!!r.canModifyLayer},operations:{supportsQuery:i,supportsQueryAttachments:o},data:{supportsAttachment:p},query:{relativeTimeBinWindow:n,supportsFormatPBF:s,supportsOrderBy:a,supportsPagination:l},queryRelated:y}}get defaultPopupTemplate(){return this.createPopupTemplate()}set definitionExpression(e){this._setAndNotifyLayer("definitionExpression",e)}get effectiveScaleRange(){const{minScale:e,maxScale:r}=this;return{minScale:e,maxScale:r}}readMaxScaleRange(e,r){return{minScale:(r=r.layerDefinition||r).minScale??0,maxScale:r.maxScale??0}}get fieldsIndex(){return new _(this.fields||[])}set floorInfo(e){this._setAndNotifyLayer("floorInfo",e)}readGlobalIdFieldFromService(e,r){if((r=r.layerDefinition||r).globalIdField)return r.globalIdField;if(r.fields)for(const t of r.fields)if("esriFieldTypeGlobalID"===t.type)return t.name}get graphicOrigin(){if(!this.layer)return null;switch(this.layer.type){case"tile":return new F(this.layer,this);case"map-image":return new O(this.layer,this)}}get id(){const e=this._get("id");return e??ae++}set id(e){this._get("id")!==e&&(!1!==this.layer?.capabilities?.exportMap?.supportsDynamicLayers?this._set("id",e):this._logLockedError("id","capability not available 'layer.capabilities.exportMap.supportsDynamicLayers'"))}readIsTable(e,r){return"Table"===r.type}set labelingInfo(e){this._setAndNotifyLayer("labelingInfo",e)}writeLabelingInfo(e,r,t,i){e&&e.length&&(r.layerDefinition={drawingInfo:{labelingInfo:e.map(e=>e.write({},i))}})}set labelsVisible(e){this._setAndNotifyLayer("labelsVisible",e)}set layer(e){this._set("layer",e),this.sublayers?.forEach(r=>r.layer=e)}set listMode(e){this._set("listMode",e)}set minScale(e){this._setAndNotifyLayer("minScale",e)}readMinScale(e,r){return r.minScale||r.layerDefinition?.minScale||0}set maxScale(e){this._setAndNotifyLayer("maxScale",e)}readMaxScale(e,r){return r.maxScale||r.layerDefinition?.maxScale||0}readObjectIdFieldFromService(e,r){if((r=r.layerDefinition||r).objectIdField)return r.objectIdField;const t=r.fields?.find(e=>"esriFieldTypeOID"===e.type);return t?.name}set opacity(e){this._setAndNotifyLayer("opacity",e)}readOpacity(e,r){const{layerDefinition:t}=r;return 1-.01*(t?.transparency??t?.drawingInfo?.transparency??0)}writeOpacity(e,r,t,i){r.layerDefinition={drawingInfo:{transparency:100-100*e}}}set orderBy(e){this._setAndNotifyLayer("orderBy",e)}writeParent(e,r){this.parent&&this.parent!==this.layer?r.parentLayerId=f(this.parent.id):r.parentLayerId=-1}get queryTask(){if(!this.layer)return null;const{capabilities:e,fieldsIndex:r,layer:t,url:i}=this,{spatialReference:o}=t,s="gdbVersion"in t?t.gdbVersion:void 0,a=has("featurelayer-pbf")&&e?.query.supportsFormatPBF;return new x({fieldsIndex:r,gdbVersion:s,pbfSupported:a,queryAttachmentsSupported:e?.operations?.supportsQueryAttachments??!1,relativeTimeBinWindow:e?.query?.relativeTimeBinWindow??0,sourceSpatialReference:o,url:i})}set renderer(e){if(E(e,this.fieldsIndex),e)for(const r of e.symbols)if(K(r)){n.getLogger(this).warn("Sublayer renderer should use 2D symbols");break}this._setAndNotifyLayer("renderer",e)}get source(){return this._get("source")||new J({mapLayerId:this.id})}set source(e){this._setAndNotifyLayer("source",e)}get sublayers(){return this._get("sublayers")}set sublayers(e){this._handleSublayersChange(e,this._get("sublayers")),this._set("sublayers",e)}castSublayers(e){return m(i.ofType(Y),e)}writeSublayers(e,r,t){this.sublayers?.length&&(r[t]=this.sublayers.map(e=>e.id).toArray().reverse())}readTitle(e,r){return r.layerDefinition?.name??r.name}readTypeIdField(e,r){let t=(r=r.layerDefinition||r).typeIdField;if(t&&r.fields){t=t.toLowerCase();const e=r.fields.find(e=>e.name.toLowerCase()===t);e&&(t=e.name)}return t}get url(){const e=this.layer?.parsedUrl??this._lastParsedUrl,r=this.source;if(!e)return null;if(this._lastParsedUrl=e,"map-layer"===r?.type)return`${e.path}/${r.mapLayerId}`;const t={layer:JSON.stringify({source:this.source})};return`${e.path}/dynamicLayer?${u(t)}`}set url(e){this._overrideIfSome("url",e)}set visible(e){this._setAndNotifyLayer("visible",e)}writeVisible(e,r,t,i){r[t]=this.getAtOrigin("defaultVisibility","service")||e}clone(){const{store:e}=I(this),r=new Y;return I(r).store=e.clone(le),this.commitProperty("url"),r._lastParsedUrl=this._lastParsedUrl,r}createPopupTemplate(e){return G(this,e)}createQuery(){return new W({returnGeometry:!0,where:this.definitionExpression||"1=1"})}async createFeatureLayer(){if(this.sublayers)return null;const e=(await import("../FeatureLayer.js")).default,{layer:r,url:t}=this;let i;if(t&&this.originIdOf("url")>2)i=new e({url:t});else{if(!r?.parsedUrl)throw new o("createFeatureLayer:missing-information","Cannot create a FeatureLayer without a url or a parent layer");{const t=r.parsedUrl;i=new e({url:t.path}),t&&this.source&&("map-layer"===this.source.type?i.layerId=this.source.mapLayerId:i.dynamicDataSource=this.source)}}return null!=r?.refreshInterval&&(i.refreshInterval=r.refreshInterval),this.definitionExpression&&(i.definitionExpression=this.definitionExpression),this.floorInfo&&(i.floorInfo=a(this.floorInfo)),this.originIdOf("labelingInfo")>2&&(i.labelingInfo=a(this.labelingInfo)),this.originIdOf("labelsVisible")>0&&(i.labelsVisible=this.labelsVisible),this.originIdOf("legendEnabled")>0&&(i.legendEnabled=this.legendEnabled),this.originIdOf("visible")>0&&(i.visible=this.visible),this.originIdOf("minScale")>0&&(i.minScale=this.minScale),this.originIdOf("maxScale")>0&&(i.maxScale=this.maxScale),this.originIdOf("opacity")>0&&(i.opacity=this.opacity),this.originIdOf("popupTemplate")>0&&(i.popupTemplate=a(this.popupTemplate)),this.originIdOf("renderer")>2&&(i.renderer=a(this.renderer)),"data-layer"===this.source?.type&&(i.dynamicDataSource=this.source.clone()),this.originIdOf("title")>0&&(i.title=this.title),"map-image"===r?.type&&r.originIdOf("customParameters")>0&&(i.customParameters=r.customParameters),"tile"===r?.type&&r.originIdOf("customParameters")>0&&(i.customParameters=r.customParameters),i}getField(e){return this.fieldsIndex.get(e)}getFeatureType(e){return P(this.types,this.typeIdField,e)}getFieldDomain(e,r){const t=r?.feature,i=this.getFeatureType(t);if(i){const r=i.domains&&i.domains[e];if(r&&"inherited"!==r.type)return r}return this._getLayerDomain(e)}async queryAttachments(e,r){await this.load();let t=$.from(e);const i=this.capabilities;if(!i?.data?.supportsAttachment)throw new o("queryAttachments:not-supported","this layer doesn't support attachments");const{attachmentTypes:s,objectIds:a,globalIds:l,num:n,size:p,start:y,where:u}=t;if(!i?.operations?.supportsQueryAttachments){if(s?.length>0||l?.length>0||p?.length>0||n||y||u)throw new o("queryAttachments:option-not-supported","when 'capabilities.operations.supportsQueryAttachments' is false, only objectIds is supported",t)}if(!(a?.length||l?.length||u))throw new o("queryAttachments:invalid-query","'objectIds', 'globalIds', or 'where' are required to perform attachment query",t);return!i?.attachment?.supportsOrderByFields&&t.orderByFields?.length&&(t=t.clone(),t.orderByFields=null),this.queryTask.executeAttachmentQuery(t,r)}async queryFeatureCount(e=this.createQuery(),r){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new o("queryFeatureCount:not-supported","this layer doesn't support queries.");if(!this.url)throw new o("queryFeatureCount:not-supported","this layer has no url.");const t=this.layer?.apiKey;return await this.queryTask.executeForCount(e,{...r,query:{...this.layer?.customParameters,token:t}})}async queryFeatures(e=this.createQuery(),r){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new o("queryFeatures:not-supported","this layer doesn't support queries.");if(!this.url)throw new o("queryFeatures:not-supported","this layer has no url.");const t=await this.queryTask.execute(e,{...r,query:{...this.layer?.customParameters,token:this.layer?.apiKey}});if(t?.features){const e=this.graphicOrigin;for(const r of t.features)r.sourceLayer=this,r.origin=e}return t}async queryObjectIds(e=this.createQuery(),r){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new o("queryObjectIds:not-supported","this layer doesn't support queries.");if(!this.url)throw new o("queryObjectIds:not-supported","this layer has no url.");const t=this.layer?.apiKey;return await this.queryTask.executeForIds(e,{...r,query:{...this.layer?.customParameters,token:t}})}async queryRelatedFeatures(e,r){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new o("queryRelatedFeatures:not-supported","this layer doesn't support queries.");if(!this.url)throw new o("queryRelatedFeatures:not-supported","this layer has no url.");const t=this.layer?.apiKey;return await this.queryTask.executeRelationshipQuery(e,{...r,query:{...this.layer?.customParameters,token:t}})}async queryRelatedFeaturesCount(e,r){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new o("queryRelatedFeaturesCount:not-supported","this layer doesn't support queries.");if(!this.capabilities.queryRelated.supportsCount)throw new o("queryRelatedFeaturesCount:not-supported","this layer doesn't support query related counts.");if(!this.url)throw new o("queryRelatedFeaturesCount:not-supported","this layer has no url.");const t=this.layer?.apiKey;return await this.queryTask.executeRelationshipQueryForCount(e,{...r,query:{...this.layer?.customParameters,token:t}})}async reload(e){if("not-loaded"===this.loadStatus)return this.load(e).then(()=>{});const{layer:r,url:i}=this;if(!r&&!i)throw new o("sublayer:missing-layer","Sublayer can't be loaded without being part of a layer",{sublayer:this});const s=r?await r.fetchSublayerInfo(this,e):(await t(i,{query:{f:"json"},...e})).data;s&&(this.sourceJSON={...this.sourceJSON,...s},this.read({layerDefinition:s},{origin:"service",layer:r,url:Q(i)}))}toExportImageJSON(e){const r={id:this.id,source:this.source?.toJSON()||{mapLayerId:this.id,type:"mapLayer"}},t=y(e,this.definitionExpression);null!=t&&(r.definitionExpression=t);const i=["renderer","labelingInfo","opacity","labelsVisible"].reduce((e,r)=>(e[r]=this.originIdOf(r),e),{}),o=Object.keys(i).some(e=>i[e]>2);if(o){const e=r.drawingInfo={};if(i.renderer>2&&(e.renderer=this.renderer?this.renderer.toJSON():null),i.labelsVisible>2&&(e.showLabels=this.labelsVisible),this.labelsVisible&&i.labelingInfo>2)if(this.labelingInfo){!this.loaded&&this.labelingInfo?.some(e=>!e.labelPlacement)&&n.getLogger(this).warnOnce(`A Sublayer (title: ${this.title}, id: ${this.id}) has an undefined 'labelPlacement' and so labels cannot be displayed. Either define a valid 'labelPlacement' or call Sublayer.load() to use a default value based on geometry type.`,{sublayer:this});let r=this.labelingInfo;null!=this.geometryType&&(r=N(this.labelingInfo,j.toJSON(this.geometryType))),e.showLabels=!0,e.labelingInfo=r.filter(e=>e.labelPlacement).map(e=>e.toJSON({origin:"service",layer:this.layer}))}else e.showLabels=!1;i.opacity>2&&(e.transparency=100-100*this.opacity),this._assignDefaultSymbolColors(e.renderer)}return(this.layer?.capabilities?.exportMap?.supportsSublayerOrderBy??!1)&&this.originIdOf("orderBy")>2&&(r.orderBy=this.orderBy?.map(e=>e.toJSON())??null),r}_assignDefaultSymbolColors(e){this._forEachSimpleMarkerSymbols(e,e=>{e.color||"esriSMSX"!==e.style&&"esriSMSCross"!==e.style||(e.outline?.color?e.color=e.outline.color:e.color=[0,0,0,0])})}_forEachSimpleMarkerSymbols(e,r){if(e){const t=("uniqueValueInfos"in e?e.uniqueValueInfos:"classBreakInfos"in e?e.classBreakInfos:null)??[];for(const e of t)Z(e.symbol)&&r(e.symbol);"symbol"in e&&Z(e.symbol)&&r(e.symbol),"defaultSymbol"in e&&Z(e.defaultSymbol)&&r(e.defaultSymbol)}}_setAndNotifyLayer(e,r){const t=this.layer,i=this._get(e);let o,s;switch(e){case"definitionExpression":case"floorInfo":o="supportsSublayerDefinitionExpression";break;case"minScale":case"maxScale":case"visible":o="supportsSublayerVisibility";break;case"labelingInfo":case"labelsVisible":case"opacity":case"renderer":case"source":o="supportsDynamicLayers",s="supportsModification";break;case"orderBy":o="supportsSublayerOrderBy",s="supportsModification"}const a=I(this).getDefaultOrigin();if("service"!==a){if(o&&!1===this.layer?.capabilities?.exportMap?.[o])return void this._logLockedError(e,`capability not available 'layer.capabilities.exportMap.${o}'`);if(s&&!1===this.capabilities?.exportMap[s])return void this._logLockedError(e,`capability not available 'capabilities.exportMap.${s}'`)}"source"!==e||"not-loaded"===this.loadStatus?(this._set(e,r),"service"!==a&&i!==r&&t?.emit&&t.emit("sublayer-update",{propertyName:e,target:this})):this._logLockedError(e,"'source' can't be changed after calling sublayer.load()")}_handleSublayersChange(e,r){r&&(r.forEach(e=>{e.parent=null,e.layer=null}),this.removeAllHandles()),e&&(e.forEach(e=>{e.parent=this,e.layer=this.layer}),this.addHandles([e.on("after-add",({item:e})=>{e.parent=this,e.layer=this.layer}),e.on("after-remove",({item:e})=>{e.parent=null,e.layer=null}),e.on("before-changes",e=>{(this.layer?.capabilities?.exportMap?.supportsSublayersChanges??1)||(n.getLogger(this).error(new o("sublayer:sublayers-non-modifiable","Sublayer can't be added, moved, or removed from the layer's sublayers",{sublayer:this,layer:this.layer})),e.preventDefault())})]))}_logLockedError(e,r){const{layer:t,declaredClass:i}=this;n.getLogger(i).error(new o("sublayer:locked",`Property '${String(e)}' can't be changed on Sublayer from the layer '${t?.id}'`,{reason:r,sublayer:this,layer:t}))}_getLayerDomain(e){return this.fieldsIndex.get(e)?.domain??null}static{this.test={isMapImageLayerOverridePolicy:e=>e===oe||e===ie||e===re,isTileImageLayerOverridePolicy:e=>e===te}}};e([d({type:z,json:{name:"attributeTableInfo",write:{overridePolicy:re},origins:{"web-scene":{write:!1}}}})],ne.prototype,"attributeTableTemplate",void 0),e([d({readOnly:!0})],ne.prototype,"capabilities",void 0),e([H("service","capabilities",["layerDefinition.canModifyLayer","layerDefinition.capabilities"])],ne.prototype,"readCapabilities",null),e([d()],ne.prototype,"defaultPopupTemplate",null),e([d({type:String,value:null,json:{name:"layerDefinition.definitionExpression",write:{allowNull:!0,overridePolicy:re}}})],ne.prototype,"definitionExpression",null),e([d({readOnly:!0,type:D,json:{origins:{service:{read:{source:"layerDefinition.editFieldsInfo"}}}}})],ne.prototype,"editFieldsInfo",void 0),e([d({readOnly:!0})],ne.prototype,"effectiveScaleRange",null),e([H("service","maxScaleRange",["minScale","maxScale"])],ne.prototype,"readMaxScaleRange",null),e([d({type:[q],json:{origins:{service:{read:{source:"layerDefinition.fields"}}}}})],ne.prototype,"fields",void 0),e([d({readOnly:!0})],ne.prototype,"fieldsIndex",null),e([d({type:A,value:null,json:{name:"layerDefinition.floorInfo",read:{source:"layerDefinition.floorInfo"},write:{target:"layerDefinition.floorInfo",overridePolicy:re},origins:{"web-scene":{read:!1,write:!1}}}})],ne.prototype,"floorInfo",null),e([d({type:S,json:{read:{source:"layerDefinition.extent"}}})],ne.prototype,"fullExtent",void 0),e([d({type:j.apiValues,json:{origins:{service:{name:"layerDefinition.geometryType",read:{reader:j.read}}}}})],ne.prototype,"geometryType",void 0),e([d({type:String})],ne.prototype,"globalIdField",void 0),e([H("service","globalIdField",["layerDefinition.globalIdField","layerDefinition.fields"])],ne.prototype,"readGlobalIdFieldFromService",null),e([d({readOnly:!0})],ne.prototype,"graphicOrigin",null),e([d({type:b,json:{write:{ignoreOrigin:!0}}})],ne.prototype,"id",null),e([d({readOnly:!0})],ne.prototype,"isTable",void 0),e([H("service","isTable",["type"])],ne.prototype,"readIsTable",null),e([d({value:null,type:[M],json:{read:{source:"layerDefinition.drawingInfo.labelingInfo"},write:{target:"layerDefinition.drawingInfo.labelingInfo",overridePolicy:oe}}})],ne.prototype,"labelingInfo",null),e([X("labelingInfo")],ne.prototype,"writeLabelingInfo",null),e([d({type:Boolean,value:!0,json:{read:{source:"layerDefinition.drawingInfo.showLabels"},write:{target:"layerDefinition.drawingInfo.showLabels",overridePolicy:ie}}})],ne.prototype,"labelsVisible",null),e([d({value:null})],ne.prototype,"layer",null),e([d({type:String,json:{write:{overridePolicy:te}}})],ne.prototype,"layerItemId",void 0),e([d({type:Boolean,value:!0,json:{origins:{service:{read:{enabled:!1}}},read:{source:"showLegend"},write:{target:"showLegend",overridePolicy:se}}})],ne.prototype,"legendEnabled",void 0),e([d({type:["show","hide","hide-children"],value:"show",json:{read:!1,write:!1,origins:{"web-scene":{read:!0,write:!0}}}})],ne.prototype,"listMode",null),e([d({type:Number,value:0,json:{write:{overridePolicy:ie}}})],ne.prototype,"minScale",null),e([H("minScale",["minScale","layerDefinition.minScale"])],ne.prototype,"readMinScale",null),e([d({type:Number,value:0,json:{write:{overridePolicy:ie}}})],ne.prototype,"maxScale",null),e([H("maxScale",["maxScale","layerDefinition.maxScale"])],ne.prototype,"readMaxScale",null),e([d()],ne.prototype,"objectIdField",void 0),e([H("service","objectIdField",["layerDefinition.objectIdField","layerDefinition.fields"])],ne.prototype,"readObjectIdFieldFromService",null),e([d({type:Number,value:1,json:{write:{target:"layerDefinition.drawingInfo.transparency",overridePolicy:ie}}})],ne.prototype,"opacity",null),e([H("opacity",["layerDefinition.drawingInfo.transparency","layerDefinition.transparency"])],ne.prototype,"readOpacity",null),e([X("opacity")],ne.prototype,"writeOpacity",null),e([d({value:null,type:[B],json:{name:"layerDefinition.orderBy",read:{reader:L},write:{overridePolicy:re},origins:{"web-scene":{read:!1,write:!1}}}})],ne.prototype,"orderBy",null),e([d({json:{type:b,write:{target:"parentLayerId",writerEnsuresNonNull:!0,overridePolicy:ie}}})],ne.prototype,"parent",void 0),e([X("parent")],ne.prototype,"writeParent",null),e([d({type:Boolean,value:!0,json:{read:{source:"disablePopup",reader:(e,r)=>!r.disablePopup},write:{target:"disablePopup",overridePolicy:se,writer(e,r,t){r[t]=!e}}}})],ne.prototype,"popupEnabled",void 0),e([d({type:r,json:{read:{source:"popupInfo"},write:{target:"popupInfo",overridePolicy:se}}})],ne.prototype,"popupTemplate",void 0),e([d({readOnly:!0})],ne.prototype,"queryTask",null),e([d({type:[k],readOnly:!0,json:{origins:{service:{read:{source:"layerDefinition.relationships"}}}}})],ne.prototype,"relationships",void 0),e([d({types:V,value:null,json:{name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy:oe},origins:{"web-scene":{types:C,name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy:oe}}}}})],ne.prototype,"renderer",null),e([d({types:{key:"type",base:null,typeMap:{"data-layer":U,"map-layer":J}},cast(e){if(e){if("mapLayerId"in e)return g(J,e);if("dataSource"in e)return g(U,e)}return e},json:{name:"layerDefinition.source",write:{overridePolicy:ie}}})],ne.prototype,"source",null),e([d()],ne.prototype,"sourceJSON",void 0),e([d({type:v,json:{origins:{service:{read:{source:"layerDefinition.extent.spatialReference"}}}}})],ne.prototype,"spatialReference",void 0),e([d({value:null,json:{type:[b],write:{target:"subLayerIds",allowNull:!0,overridePolicy:ie}}})],ne.prototype,"sublayers",null),e([c("sublayers")],ne.prototype,"castSublayers",null),e([X("sublayers")],ne.prototype,"writeSublayers",null),e([d({type:String,json:{name:"name",write:{overridePolicy:se}}})],ne.prototype,"title",void 0),e([H("service","title",["name","layerDefinition.name"])],ne.prototype,"readTitle",null),e([d({type:String})],ne.prototype,"typeIdField",void 0),e([d({json:{read:!1},readOnly:!0,value:"sublayer"})],ne.prototype,"type",void 0),e([H("typeIdField",["layerDefinition.typeIdField"])],ne.prototype,"readTypeIdField",null),e([d({type:[T],json:{origins:{service:{read:{source:"layerDefinition.types"}}}}})],ne.prototype,"types",void 0),e([d({type:String,json:{name:"layerUrl",write:{overridePolicy:te}}})],ne.prototype,"url",null),e([d({type:Boolean,value:!0,json:{read:{source:"defaultVisibility"},write:{target:"defaultVisibility",overridePolicy:ie}}})],ne.prototype,"visible",null),e([X("visible")],ne.prototype,"writeVisible",null),ne=Y=e([h("esri.layers.support.Sublayer")],ne);export{ne as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import r from"../../PopupTemplate.js";import t from"../../request.js";import i from"../../core/Collection.js";import o from"../../core/Error.js";import has from"../../core/has.js";import{IdentifiableMixin as s}from"../../core/Identifiable.js";import{clone as a}from"../../core/lang.js";import{Loadable as l}from"../../core/Loadable.js";import n from"../../core/Logger.js";import{MultiOriginJSONSupportMixin as p}from"../../core/MultiOriginJSONSupport.js";import{sqlAnd as u}from"../../core/sql.js";import{objectToQuery as y}from"../../core/urlUtils.js";import{property as d,cast as c,subclass as f}from"../../core/accessorSupport/decorators.js";import{ensureInteger as h,ensureType as m,Integer as b,ensureClass as g}from"../../core/accessorSupport/ensureType.js";import{nameToId as I}from"../../core/accessorSupport/PropertyOrigin.js";import{getProperties as w}from"../../core/accessorSupport/utils.js";import S from"../../geometry/Extent.js";import v from"../../geometry/SpatialReference.js";import{featureGeometryTypeKebabDictionary as j}from"../../geometry/support/typeUtils.js";import F from"../../graphic/MapImageGraphicOrigin.js";import O from"../../graphic/TileGraphicOrigin.js";import D from"../graphics/sources/support/QueryTask.js";import{readOrderByInfos as x}from"../mixins/OrderedLayer.js";import q from"./EditFieldsInfo.js";import{getFeatureType as L}from"./featureLayerUtils.js";import P from"./FeatureType.js";import T from"./Field.js";import _ from"./FieldsIndex.js";import{fixRendererFields as E}from"./fieldUtils.js";import M from"./LabelClass.js";import{validateLabelingInfo as N}from"./labelingInfo.js";import A from"./LayerFloorInfo.js";import B from"./OrderByInfo.js";import k from"./Relationship.js";import{getFeatureLayerCapabilities as R}from"./serviceCapabilitiesUtils.js";import{webSceneRendererTypes as C,rendererTypes as V}from"../../renderers/support/typeUtils.js";import{parseUrl as Q}from"../../rest/utils.js";import U from"../../rest/layerSources/DynamicDataLayer.js";import J from"../../rest/layerSources/DynamicMapLayer.js";import $ from"../../rest/support/AttachmentQuery.js";import W from"../../rest/support/Query.js";import{createPopupTemplate as G}from"../../support/popupUtils.js";import{isSymbol3D as K}from"../../symbols/support/typeUtils.js";import H from"../../tables/AttributeTableTemplate.js";import{reader as z}from"../../core/accessorSupport/decorators/reader.js";import{writer as X}from"../../core/accessorSupport/decorators/writer.js";var Y;function Z(e){return"esriSMS"===e?.type}function ee(e,r,t){const i=t.minimumWritableOrigin||t.origin;return!!i&&e.originIdOf(r)>=I(i)}function re(e,r,t){const i=ee(this,r,t);return{ignoreOrigin:!0,allowNull:i,enabled:!!t&&("map-image"===t.layer?.type&&(t.writeSublayerStructure||i))}}function te(e,r,t){return{enabled:!!t&&("tile"===t.layer?.type&&(ee(this,r,t)||this._isOverridden(r)))}}function ie(e,r,t){return{ignoreOrigin:!0,enabled:t&&t.writeSublayerStructure||!1}}function oe(e,r,t){return{ignoreOrigin:!0,enabled:!!t?.writeSublayerStructure&&this.originIdOf(r)>2}}function se(e,r,t){return{ignoreOrigin:!0,enabled:!!t&&(t.writeSublayerStructure||ee(this,r,t))}}let ae=0;const le=new Set(["layer","parent","loaded","loadStatus","loadError","loadWarnings"]);let ne=class extends(p(s(l))){static{Y=this}constructor(e){super(e),this.attributeTableTemplate=null,this.capabilities=void 0,this.editFieldsInfo=null,this.maxScaleRange={minScale:0,maxScale:0},this.fields=null,this.fullExtent=null,this.geometryType=null,this.globalIdField=null,this.isTable=!1,this.legendEnabled=!0,this.objectIdField=null,this.parent=null,this.popupEnabled=!0,this.popupTemplate=null,this.relationships=null,this.sourceJSON=null,this.spatialReference=null,this.title=null,this.typeIdField=null,this.type="sublayer",this.types=null,this.uniqueIdFields=null,this._lastParsedUrl=null}async load(e){return this.addResolvingPromise(this.reload(e)),this}readCapabilities(e,r){r=r.layerDefinition||r;const{attachment:t,operations:{supportsQuery:i,supportsQueryAttachments:o},query:{supportsFormatPBF:s,supportsOrderBy:a,supportsPagination:l,relativeTimeBinWindow:n},data:{supportsAttachment:p},queryRelated:u}=R(r,this.url);return{attachment:{supportsOrderByFields:t?.supportsOrderByFields??!1,supportsResize:t?.supportsResize??!1,supportsTypeWildcard:t?.supportsTypeWildcard??!1},exportMap:{supportsModification:!!r.canModifyLayer},operations:{supportsQuery:i,supportsQueryAttachments:o},data:{supportsAttachment:p},query:{relativeTimeBinWindow:n,supportsFormatPBF:s,supportsOrderBy:a,supportsPagination:l},queryRelated:u}}get defaultPopupTemplate(){return this.createPopupTemplate()}set definitionExpression(e){this._setAndNotifyLayer("definitionExpression",e)}get effectiveScaleRange(){const{minScale:e,maxScale:r}=this;return{minScale:e,maxScale:r}}readMaxScaleRange(e,r){return{minScale:(r=r.layerDefinition||r).minScale??0,maxScale:r.maxScale??0}}get fieldsIndex(){return new _(this.fields||[])}set floorInfo(e){this._setAndNotifyLayer("floorInfo",e)}readGlobalIdFieldFromService(e,r){if((r=r.layerDefinition||r).globalIdField)return r.globalIdField;if(r.fields)for(const t of r.fields)if("esriFieldTypeGlobalID"===t.type)return t.name}get graphicOrigin(){if(!this.layer)return null;switch(this.layer.type){case"tile":return new O(this.layer,this);case"map-image":return new F(this.layer,this)}}get id(){const e=this._get("id");return e??ae++}set id(e){this._get("id")!==e&&(!1!==this.layer?.capabilities?.exportMap?.supportsDynamicLayers?this._set("id",e):this._logLockedError("id","capability not available 'layer.capabilities.exportMap.supportsDynamicLayers'"))}readIsTable(e,r){return"Table"===r.type}set labelingInfo(e){this._setAndNotifyLayer("labelingInfo",e)}writeLabelingInfo(e,r,t,i){e&&e.length&&(r.layerDefinition={drawingInfo:{labelingInfo:e.map(e=>e.write({},i))}})}set labelsVisible(e){this._setAndNotifyLayer("labelsVisible",e)}set layer(e){this._set("layer",e),this.sublayers?.forEach(r=>r.layer=e)}set listMode(e){this._set("listMode",e)}set minScale(e){this._setAndNotifyLayer("minScale",e)}readMinScale(e,r){return r.minScale||r.layerDefinition?.minScale||0}set maxScale(e){this._setAndNotifyLayer("maxScale",e)}readMaxScale(e,r){return r.maxScale||r.layerDefinition?.maxScale||0}readObjectIdFieldFromService(e,r){if((r=r.layerDefinition||r).objectIdField)return r.objectIdField;const t=r.fields?.find(e=>"esriFieldTypeOID"===e.type);return t?.name}set opacity(e){this._setAndNotifyLayer("opacity",e)}readOpacity(e,r){const{layerDefinition:t}=r;return 1-.01*(t?.transparency??t?.drawingInfo?.transparency??0)}writeOpacity(e,r,t,i){r.layerDefinition={drawingInfo:{transparency:100-100*e}}}set orderBy(e){this._setAndNotifyLayer("orderBy",e)}writeParent(e,r){this.parent&&this.parent!==this.layer?r.parentLayerId=h(this.parent.id):r.parentLayerId=-1}get queryTask(){if(!this.layer)return null;const{capabilities:e,fieldsIndex:r,layer:t,uniqueIdFields:i,url:o}=this,{spatialReference:s}=t,a="gdbVersion"in t?t.gdbVersion:void 0,l=has("featurelayer-pbf")&&e?.query.supportsFormatPBF;return new D({fieldsIndex:r,gdbVersion:a,pbfSupported:l,queryAttachmentsSupported:e?.operations?.supportsQueryAttachments??!1,relativeTimeBinWindow:e?.query?.relativeTimeBinWindow??0,sourceSpatialReference:s,uniqueIdFields:i,url:o})}set renderer(e){if(E(e,this.fieldsIndex),e)for(const r of e.symbols)if(K(r)){n.getLogger(this).warn("Sublayer renderer should use 2D symbols");break}this._setAndNotifyLayer("renderer",e)}get source(){return this._get("source")||new J({mapLayerId:this.id})}set source(e){this._setAndNotifyLayer("source",e)}get sublayers(){return this._get("sublayers")}set sublayers(e){this._handleSublayersChange(e,this._get("sublayers")),this._set("sublayers",e)}castSublayers(e){return m(i.ofType(Y),e)}writeSublayers(e,r,t){this.sublayers?.length&&(r[t]=this.sublayers.map(e=>e.id).toArray().reverse())}readTitle(e,r){return r.layerDefinition?.name??r.name}readTypeIdField(e,r){let t=(r=r.layerDefinition||r).typeIdField;if(t&&r.fields){t=t.toLowerCase();const e=r.fields.find(e=>e.name.toLowerCase()===t);e&&(t=e.name)}return t}readUniqueIdFields(e,r){return r.layerDefinition?.uniqueIdInfo?.OIDFieldContainsHashValue?r.layerDefinition.uniqueIdInfo.fields:null}get url(){const e=this.layer?.parsedUrl??this._lastParsedUrl,r=this.source;if(!e)return null;if(this._lastParsedUrl=e,"map-layer"===r?.type)return`${e.path}/${r.mapLayerId}`;const t={layer:JSON.stringify({source:this.source})};return`${e.path}/dynamicLayer?${y(t)}`}set url(e){this._overrideIfSome("url",e)}set visible(e){this._setAndNotifyLayer("visible",e)}writeVisible(e,r,t,i){r[t]=this.getAtOrigin("defaultVisibility","service")||e}clone(){const{store:e}=w(this),r=new Y;return w(r).store=e.clone(le),this.commitProperty("url"),r._lastParsedUrl=this._lastParsedUrl,r}createPopupTemplate(e){return G(this,e)}createQuery(){return new W({returnGeometry:!0,where:this.definitionExpression||"1=1"})}async createFeatureLayer(){if(this.sublayers)return null;const e=(await import("../FeatureLayer.js")).default,{layer:r,url:t}=this;let i;if(t&&this.originIdOf("url")>2)i=new e({url:t});else{if(!r?.parsedUrl)throw new o("createFeatureLayer:missing-information","Cannot create a FeatureLayer without a url or a parent layer");{const t=r.parsedUrl;i=new e({url:t.path}),t&&this.source&&("map-layer"===this.source.type?i.layerId=this.source.mapLayerId:i.dynamicDataSource=this.source)}}return null!=r?.refreshInterval&&(i.refreshInterval=r.refreshInterval),this.definitionExpression&&(i.definitionExpression=this.definitionExpression),this.floorInfo&&(i.floorInfo=a(this.floorInfo)),this.originIdOf("labelingInfo")>2&&(i.labelingInfo=a(this.labelingInfo)),this.originIdOf("labelsVisible")>0&&(i.labelsVisible=this.labelsVisible),this.originIdOf("legendEnabled")>0&&(i.legendEnabled=this.legendEnabled),this.originIdOf("visible")>0&&(i.visible=this.visible),this.originIdOf("minScale")>0&&(i.minScale=this.minScale),this.originIdOf("maxScale")>0&&(i.maxScale=this.maxScale),this.originIdOf("opacity")>0&&(i.opacity=this.opacity),this.originIdOf("popupTemplate")>0&&(i.popupTemplate=a(this.popupTemplate)),this.originIdOf("renderer")>2&&(i.renderer=a(this.renderer)),"data-layer"===this.source?.type&&(i.dynamicDataSource=this.source.clone()),this.originIdOf("title")>0&&(i.title=this.title),"map-image"===r?.type&&r.originIdOf("customParameters")>0&&(i.customParameters=r.customParameters),"tile"===r?.type&&r.originIdOf("customParameters")>0&&(i.customParameters=r.customParameters),i}getField(e){return this.fieldsIndex.get(e)}getFeatureType(e){return L(this.types,this.typeIdField,e)}getFieldDomain(e,r){const t=r?.feature,i=this.getFeatureType(t);if(i){const r=i.domains&&i.domains[e];if(r&&"inherited"!==r.type)return r}return this._getLayerDomain(e)}async queryAttachments(e,r){await this.load();let t=$.from(e);const i=this.capabilities;if(!i?.data?.supportsAttachment)throw new o("queryAttachments:not-supported","this layer doesn't support attachments");const{attachmentTypes:s,objectIds:a,globalIds:l,num:n,size:p,start:u,where:y}=t;if(!i?.operations?.supportsQueryAttachments){if(s?.length>0||l?.length>0||p?.length>0||n||u||y)throw new o("queryAttachments:option-not-supported","when 'capabilities.operations.supportsQueryAttachments' is false, only objectIds is supported",t)}if(!(a?.length||l?.length||y))throw new o("queryAttachments:invalid-query","'objectIds', 'globalIds', or 'where' are required to perform attachment query",t);return!i?.attachment?.supportsOrderByFields&&t.orderByFields?.length&&(t=t.clone(),t.orderByFields=null),this.queryTask.executeAttachmentQuery(t,r)}async queryFeatureCount(e=this.createQuery(),r){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new o("queryFeatureCount:not-supported","this layer doesn't support queries.");if(!this.url)throw new o("queryFeatureCount:not-supported","this layer has no url.");const t=this.layer?.apiKey;return await this.queryTask.executeForCount(e,{...r,query:{...this.layer?.customParameters,token:t}})}async queryFeatures(e=this.createQuery(),r){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new o("queryFeatures:not-supported","this layer doesn't support queries.");if(!this.url)throw new o("queryFeatures:not-supported","this layer has no url.");const t=await this.queryTask.execute(e,{...r,query:{...this.layer?.customParameters,token:this.layer?.apiKey}});if(t?.features){const e=this.graphicOrigin;for(const r of t.features)r.sourceLayer=this,r.origin=e}return t}async queryObjectIds(e=this.createQuery(),r){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new o("queryObjectIds:not-supported","this layer doesn't support queries.");if(!this.url)throw new o("queryObjectIds:not-supported","this layer has no url.");const t=this.layer?.apiKey;return await this.queryTask.executeForIds(e,{...r,query:{...this.layer?.customParameters,token:t}})}async queryRelatedFeatures(e,r){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new o("queryRelatedFeatures:not-supported","this layer doesn't support queries.");if(!this.url)throw new o("queryRelatedFeatures:not-supported","this layer has no url.");const t=this.layer?.apiKey;return await this.queryTask.executeRelationshipQuery(e,{...r,query:{...this.layer?.customParameters,token:t}})}async queryRelatedFeaturesCount(e,r){if(await this.load(),!this.capabilities.operations.supportsQuery)throw new o("queryRelatedFeaturesCount:not-supported","this layer doesn't support queries.");if(!this.capabilities.queryRelated.supportsCount)throw new o("queryRelatedFeaturesCount:not-supported","this layer doesn't support query related counts.");if(!this.url)throw new o("queryRelatedFeaturesCount:not-supported","this layer has no url.");const t=this.layer?.apiKey;return await this.queryTask.executeRelationshipQueryForCount(e,{...r,query:{...this.layer?.customParameters,token:t}})}async reload(e){if("not-loaded"===this.loadStatus)return this.load(e).then(()=>{});const{layer:r,url:i}=this;if(!r&&!i)throw new o("sublayer:missing-layer","Sublayer can't be loaded without being part of a layer",{sublayer:this});const s=r?await r.fetchSublayerInfo(this,e):(await t(i,{query:{f:"json"},...e})).data;s&&(this.sourceJSON={...this.sourceJSON,...s},this.read({layerDefinition:s},{origin:"service",layer:r,url:Q(i)}))}toExportImageJSON(e){const r={id:this.id,source:this.source?.toJSON()||{mapLayerId:this.id,type:"mapLayer"}},t=u(e,this.definitionExpression);null!=t&&(r.definitionExpression=t);const i=["renderer","labelingInfo","opacity","labelsVisible"].reduce((e,r)=>(e[r]=this.originIdOf(r),e),{}),o=Object.keys(i).some(e=>i[e]>2);if(o){const e=r.drawingInfo={};if(i.renderer>2&&(e.renderer=this.renderer?this.renderer.toJSON():null),i.labelsVisible>2&&(e.showLabels=this.labelsVisible),this.labelsVisible&&i.labelingInfo>2)if(this.labelingInfo){!this.loaded&&this.labelingInfo?.some(e=>!e.labelPlacement)&&n.getLogger(this).warnOnce(`A Sublayer (title: ${this.title}, id: ${this.id}) has an undefined 'labelPlacement' and so labels cannot be displayed. Either define a valid 'labelPlacement' or call Sublayer.load() to use a default value based on geometry type.`,{sublayer:this});let r=this.labelingInfo;null!=this.geometryType&&(r=N(this.labelingInfo,j.toJSON(this.geometryType))),e.showLabels=!0,e.labelingInfo=r.filter(e=>e.labelPlacement).map(e=>e.toJSON({origin:"service",layer:this.layer}))}else e.showLabels=!1;i.opacity>2&&(e.transparency=100-100*this.opacity),this._assignDefaultSymbolColors(e.renderer)}return(this.layer?.capabilities?.exportMap?.supportsSublayerOrderBy??!1)&&this.originIdOf("orderBy")>2&&(r.orderBy=this.orderBy?.map(e=>e.toJSON())??null),r}_assignDefaultSymbolColors(e){this._forEachSimpleMarkerSymbols(e,e=>{e.color||"esriSMSX"!==e.style&&"esriSMSCross"!==e.style||(e.outline?.color?e.color=e.outline.color:e.color=[0,0,0,0])})}_forEachSimpleMarkerSymbols(e,r){if(e){const t=("uniqueValueInfos"in e?e.uniqueValueInfos:"classBreakInfos"in e?e.classBreakInfos:null)??[];for(const e of t)Z(e.symbol)&&r(e.symbol);"symbol"in e&&Z(e.symbol)&&r(e.symbol),"defaultSymbol"in e&&Z(e.defaultSymbol)&&r(e.defaultSymbol)}}_setAndNotifyLayer(e,r){const t=this.layer,i=this._get(e);let o,s;switch(e){case"definitionExpression":case"floorInfo":o="supportsSublayerDefinitionExpression";break;case"minScale":case"maxScale":case"visible":o="supportsSublayerVisibility";break;case"labelingInfo":case"labelsVisible":case"opacity":case"renderer":case"source":o="supportsDynamicLayers",s="supportsModification";break;case"orderBy":o="supportsSublayerOrderBy",s="supportsModification"}const a=w(this).getDefaultOrigin();if("service"!==a){if(o&&!1===this.layer?.capabilities?.exportMap?.[o])return void this._logLockedError(e,`capability not available 'layer.capabilities.exportMap.${o}'`);if(s&&!1===this.capabilities?.exportMap[s])return void this._logLockedError(e,`capability not available 'capabilities.exportMap.${s}'`)}"source"!==e||"not-loaded"===this.loadStatus?(this._set(e,r),"service"!==a&&i!==r&&t?.emit&&t.emit("sublayer-update",{propertyName:e,target:this})):this._logLockedError(e,"'source' can't be changed after calling sublayer.load()")}_handleSublayersChange(e,r){r&&(r.forEach(e=>{e.parent=null,e.layer=null}),this.removeAllHandles()),e&&(e.forEach(e=>{e.parent=this,e.layer=this.layer}),this.addHandles([e.on("after-add",({item:e})=>{e.parent=this,e.layer=this.layer}),e.on("after-remove",({item:e})=>{e.parent=null,e.layer=null}),e.on("before-changes",e=>{(this.layer?.capabilities?.exportMap?.supportsSublayersChanges??1)||(n.getLogger(this).error(new o("sublayer:sublayers-non-modifiable","Sublayer can't be added, moved, or removed from the layer's sublayers",{sublayer:this,layer:this.layer})),e.preventDefault())})]))}_logLockedError(e,r){const{layer:t,declaredClass:i}=this;n.getLogger(i).error(new o("sublayer:locked",`Property '${String(e)}' can't be changed on Sublayer from the layer '${t?.id}'`,{reason:r,sublayer:this,layer:t}))}_getLayerDomain(e){return this.fieldsIndex.get(e)?.domain??null}static{this.test={isMapImageLayerOverridePolicy:e=>e===oe||e===ie||e===re,isTileImageLayerOverridePolicy:e=>e===te}}};e([d({type:H,json:{name:"attributeTableInfo",write:{overridePolicy:re},origins:{"web-scene":{write:!1}}}})],ne.prototype,"attributeTableTemplate",void 0),e([d({readOnly:!0})],ne.prototype,"capabilities",void 0),e([z("service","capabilities",["layerDefinition.canModifyLayer","layerDefinition.capabilities"])],ne.prototype,"readCapabilities",null),e([d()],ne.prototype,"defaultPopupTemplate",null),e([d({type:String,value:null,json:{name:"layerDefinition.definitionExpression",write:{allowNull:!0,overridePolicy:re}}})],ne.prototype,"definitionExpression",null),e([d({readOnly:!0,type:q,json:{origins:{service:{read:{source:"layerDefinition.editFieldsInfo"}}}}})],ne.prototype,"editFieldsInfo",void 0),e([d({readOnly:!0})],ne.prototype,"effectiveScaleRange",null),e([z("service","maxScaleRange",["minScale","maxScale"])],ne.prototype,"readMaxScaleRange",null),e([d({type:[T],json:{origins:{service:{read:{source:"layerDefinition.fields"}}}}})],ne.prototype,"fields",void 0),e([d({readOnly:!0})],ne.prototype,"fieldsIndex",null),e([d({type:A,value:null,json:{name:"layerDefinition.floorInfo",read:{source:"layerDefinition.floorInfo"},write:{target:"layerDefinition.floorInfo",overridePolicy:re},origins:{"web-scene":{read:!1,write:!1}}}})],ne.prototype,"floorInfo",null),e([d({type:S,json:{read:{source:"layerDefinition.extent"}}})],ne.prototype,"fullExtent",void 0),e([d({type:j.apiValues,json:{origins:{service:{name:"layerDefinition.geometryType",read:{reader:j.read}}}}})],ne.prototype,"geometryType",void 0),e([d({type:String})],ne.prototype,"globalIdField",void 0),e([z("service","globalIdField",["layerDefinition.globalIdField","layerDefinition.fields"])],ne.prototype,"readGlobalIdFieldFromService",null),e([d({readOnly:!0})],ne.prototype,"graphicOrigin",null),e([d({type:b,json:{write:{ignoreOrigin:!0}}})],ne.prototype,"id",null),e([d({readOnly:!0})],ne.prototype,"isTable",void 0),e([z("service","isTable",["type"])],ne.prototype,"readIsTable",null),e([d({value:null,type:[M],json:{read:{source:"layerDefinition.drawingInfo.labelingInfo"},write:{target:"layerDefinition.drawingInfo.labelingInfo",overridePolicy:oe}}})],ne.prototype,"labelingInfo",null),e([X("labelingInfo")],ne.prototype,"writeLabelingInfo",null),e([d({type:Boolean,value:!0,json:{read:{source:"layerDefinition.drawingInfo.showLabels"},write:{target:"layerDefinition.drawingInfo.showLabels",overridePolicy:ie}}})],ne.prototype,"labelsVisible",null),e([d({value:null})],ne.prototype,"layer",null),e([d({type:String,json:{write:{overridePolicy:te}}})],ne.prototype,"layerItemId",void 0),e([d({type:Boolean,value:!0,json:{origins:{service:{read:{enabled:!1}}},read:{source:"showLegend"},write:{target:"showLegend",overridePolicy:se}}})],ne.prototype,"legendEnabled",void 0),e([d({type:["show","hide","hide-children"],value:"show",json:{read:!1,write:!1,origins:{"web-scene":{read:!0,write:!0}}}})],ne.prototype,"listMode",null),e([d({type:Number,value:0,json:{write:{overridePolicy:ie}}})],ne.prototype,"minScale",null),e([z("minScale",["minScale","layerDefinition.minScale"])],ne.prototype,"readMinScale",null),e([d({type:Number,value:0,json:{write:{overridePolicy:ie}}})],ne.prototype,"maxScale",null),e([z("maxScale",["maxScale","layerDefinition.maxScale"])],ne.prototype,"readMaxScale",null),e([d()],ne.prototype,"objectIdField",void 0),e([z("service","objectIdField",["layerDefinition.objectIdField","layerDefinition.fields"])],ne.prototype,"readObjectIdFieldFromService",null),e([d({type:Number,value:1,json:{write:{target:"layerDefinition.drawingInfo.transparency",overridePolicy:ie}}})],ne.prototype,"opacity",null),e([z("opacity",["layerDefinition.drawingInfo.transparency","layerDefinition.transparency"])],ne.prototype,"readOpacity",null),e([X("opacity")],ne.prototype,"writeOpacity",null),e([d({value:null,type:[B],json:{name:"layerDefinition.orderBy",read:{reader:x},write:{overridePolicy:re},origins:{"web-scene":{read:!1,write:!1}}}})],ne.prototype,"orderBy",null),e([d({json:{type:b,write:{target:"parentLayerId",writerEnsuresNonNull:!0,overridePolicy:ie}}})],ne.prototype,"parent",void 0),e([X("parent")],ne.prototype,"writeParent",null),e([d({type:Boolean,value:!0,json:{read:{source:"disablePopup",reader:(e,r)=>!r.disablePopup},write:{target:"disablePopup",overridePolicy:se,writer(e,r,t){r[t]=!e}}}})],ne.prototype,"popupEnabled",void 0),e([d({type:r,json:{read:{source:"popupInfo"},write:{target:"popupInfo",overridePolicy:se}}})],ne.prototype,"popupTemplate",void 0),e([d({readOnly:!0})],ne.prototype,"queryTask",null),e([d({type:[k],readOnly:!0,json:{origins:{service:{read:{source:"layerDefinition.relationships"}}}}})],ne.prototype,"relationships",void 0),e([d({types:V,value:null,json:{name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy:oe},origins:{"web-scene":{types:C,name:"layerDefinition.drawingInfo.renderer",write:{overridePolicy:oe}}}}})],ne.prototype,"renderer",null),e([d({types:{key:"type",base:null,typeMap:{"data-layer":U,"map-layer":J}},cast(e){if(e){if("mapLayerId"in e)return g(J,e);if("dataSource"in e)return g(U,e)}return e},json:{name:"layerDefinition.source",write:{overridePolicy:ie}}})],ne.prototype,"source",null),e([d()],ne.prototype,"sourceJSON",void 0),e([d({type:v,json:{origins:{service:{read:{source:"layerDefinition.extent.spatialReference"}}}}})],ne.prototype,"spatialReference",void 0),e([d({value:null,json:{type:[b],write:{target:"subLayerIds",allowNull:!0,overridePolicy:ie}}})],ne.prototype,"sublayers",null),e([c("sublayers")],ne.prototype,"castSublayers",null),e([X("sublayers")],ne.prototype,"writeSublayers",null),e([d({type:String,json:{name:"name",write:{overridePolicy:se}}})],ne.prototype,"title",void 0),e([z("service","title",["name","layerDefinition.name"])],ne.prototype,"readTitle",null),e([d({type:String})],ne.prototype,"typeIdField",void 0),e([d({json:{read:!1},readOnly:!0,value:"sublayer"})],ne.prototype,"type",void 0),e([z("typeIdField",["layerDefinition.typeIdField"])],ne.prototype,"readTypeIdField",null),e([d({type:[P],json:{origins:{service:{read:{source:"layerDefinition.types"}}}}})],ne.prototype,"types",void 0),e([d({type:[String],readOnly:!0})],ne.prototype,"uniqueIdFields",void 0),e([z("service","uniqueIdFields",["layerDefinition.uniqueIdInfo.OIDFieldContainsHashValue","layerDefinition.uniqueIdInfo.fields"])],ne.prototype,"readUniqueIdFields",null),e([d({type:String,json:{name:"layerUrl",write:{overridePolicy:te}}})],ne.prototype,"url",null),e([d({type:Boolean,value:!0,json:{read:{source:"defaultVisibility"},write:{target:"defaultVisibility",overridePolicy:ie}}})],ne.prototype,"visible",null),e([X("visible")],ne.prototype,"writeVisible",null),ne=Y=e([f("esri.layers.support.Sublayer")],ne);export{ne as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{__decorate as e}from"tslib";import t from"../../PopupTemplate.js";import{ClonableMixin as r}from"../../core/Clonable.js";import i from"../../core/Error.js";import{IdentifiableMixin as n}from"../../core/Identifiable.js";import{clone as o}from"../../core/lang.js";import{Loadable as s}from"../../core/Loadable.js";import l from"../../core/Logger.js";import{destroyMaybe as a}from"../../core/maybe.js";import{MultiOriginJSONSupportMixin as p}from"../../core/MultiOriginJSONSupport.js";import{setDeepValue as d}from"../../core/object.js";import{sqlAnd as u}from"../../core/sql.js";import{property as y,subclass as c}from"../../core/accessorSupport/decorators.js";import{excludeTables as m}from"../../core/accessorSupport/layerContainerType.js";import f from"../../form/FormTemplate.js";import h from"../../geometry/SpatialReference.js";import b from"../../graphic/SubtypeGroupGraphicOrigin.js";import{labelsVisible as g,legendEnabled as v,minScale as j,maxScale as w,popupEnabled as F}from"./commonProperties.js";import{createQuery as T,computeDomainFromSubtypes as O}from"./featureLayerUtils.js";import I from"./FeatureTemplate.js";import{defineFieldProperties as S}from"./fieldProperties.js";import{fixRendererFields as C}from"./fieldUtils.js";import A from"./LabelClass.js";import{reader as E}from"./labelingInfo.js";import{rendererReader as q,supportedRendererTypes as x}from"./subtypeGroupLayerUtils.js";import R from"./TitleCreator.js";import _ from"../../renderers/SimpleRenderer.js";import P from"../../rest/support/AttachmentQuery.js";import L from"../../rest/support/Query.js";import{createPopupTemplate as G}from"../../support/popupUtils.js";import{defaultPolygonSymbol2D as D,defaultPolylineSymbol2D as N,defaultPointSymbol2D as $}from"../../symbols/support/defaults.js";import U from"../../tables/AttributeTableTemplate.js";import{writer as V}from"../../core/accessorSupport/decorators/writer.js";import{reader as M}from"../../core/accessorSupport/decorators/reader.js";const Q=S();let k=0;function B(e,t){let r=e.json.write;return"object"!=typeof r&&(r=e.json.write={}),r.ignoreOrigin=!0,t?.spatialOnly&&(r.layerContainerTypes=m),e}function H(e){const t={write:{ignoreOrigin:!0}};return e?.name&&(t.name=e.name),"object"==typeof t.write&&(e?.spatialOnly&&(t.write.layerContainerTypes=m),e?.target&&(t.write.target=e.target)),t}function J(e){return new _({symbol:W(e)})}function W(e){switch(e){case"point":case"multipoint":return $.clone();case"polyline":return N.clone();case"polygon":case"multipatch":return D.clone();default:return null}}function z(e,t){return!!t&&("unique-value"===e?.type&&null!=e.field&&e.field.toLowerCase()===t.toLowerCase()&&!e.field2&&!e.field3&&!e.valueExpression)}function K(e){return Y(e,"user")===e}function X(e){return Y(e,"service")}function Y(e,t){const r=e.parent?.getAtOrigin("sublayers",t);return r?.find(({subtypeCode:t})=>t===e.subtypeCode)}function Z(e,t){return null==e?null:t.subtypes?.find(t=>t.code===e)}function ee(e,t){let r=null;switch(t.geometryType){case"esriGeometryPoint":case"esriGeometryMultipoint":r="point";break;case"esriGeometryPolyline":r="line";break;case"esriGeometryPolygon":case"esriGeometryMultiPatch":r="polygon";break;default:t.type,r=null}const i={},n=Z(e,t);if(null!=n){const{defaultValues:e}=n;for(const t in e)i[t]=e[t]}return i[t.subtypeField]=e,new I({name:"New Feature",drawingTool:r,prototype:{attributes:i}})}let te=class extends(p(r(n(s)))){constructor(e){super(e),this.attributeTableTemplate=null,this.charts=null,this.editingEnabled=!0,this.fieldOverrides=null,this.fieldsIndex=null,this.formTemplate=null,this.graphicOrigin=new b(this),this.id=`${Date.now().toString(16)}-subtype-sublayer-${k++}`,this.type="subtype-sublayer",this.labelsVisible=!0,this.labelingInfo=null,this.layerType="ArcGISFeatureLayer",this.legendEnabled=!0,this.listMode="show",this.minScale=0,this.maxScale=0,this.opacity=1,this.parent=null,this.popupEnabled=!0,this.popupTemplate=null,this.subtypeCode=null,this.visible=!0}load(e){return C(this.renderer,this.fieldsIndex),Promise.resolve(this)}get _titleCreator(){const e=this._get("_titleCreator");return a(e),new R({fieldsIndex:this.fieldsIndex,objectIdField:this.objectIdField,displayField:this.parent?.displayField??"",fields:this.fields,effectivePopupTemplate:this.popupTemplate??this.defaultPopupTemplate})}get capabilities(){return this.parent?.capabilities}get effectiveCapabilities(){return this.parent?.effectiveCapabilities}get effectiveEditingEnabled(){const{parent:e}=this;return e?e.effectiveEditingEnabled&&this.editingEnabled:this.editingEnabled}get elevationInfo(){return this.parent?.elevationInfo}get featureTitleFields(){return[...this._titleCreator.requiredFields]}writeFieldOverrides(e,t,r){const{fields:i,parent:n}=this;let s;if(i){s=[];let e=0;i.forEach(({name:t,alias:r,editable:i,visible:o})=>{if(!o)return;const l=n?.fields?.find(e=>e.name===t);if(!l)return;const a={name:t};let p=!1;r!==l.alias&&(a.alias=r,p=!0),i!==l.editable&&(a.editable=i,p=!0),s.push(a),p&&e++}),0===e&&s.length===i.length&&(s=null)}else s=o(e);s?.length&&d(r,s,t)}get fields(){const{parent:e,fieldOverrides:t,subtypeCode:r}=this,i=e?.fields;if(!e||!i?.length)return null;const{subtypes:n,subtypeField:o}=e,s=n?.find(e=>e.code===r),l=s?.defaultValues,a=s?.domains,p=[];for(const d of i){const e=d.clone(),{name:i}=e,n=t?.find(e=>e.name===i);if(e.visible=!t?.length||!!n,n){const{alias:t,editable:r}=n;t&&(e.alias=t),!1===r&&(e.editable=!1)}const s=l?.[i]??null;e.defaultValue=i===o?r:s;const u=a?.[i]??null;e.domain=i===o?null:u?"inherited"===u.type?e.domain:u.clone():null,p.push(e)}return p}get floorInfo(){return this.parent?.floorInfo}get isTable(){return!!this.parent?.isTable}get geometryType(){return this.parent?.geometryType}get globalIdField(){return this.parent?this.parent.globalIdField:(l.getLogger(this).error(ne("globalIdField")),null)}get effectiveScaleRange(){const{minScale:e,maxScale:t}=this;return{minScale:e,maxScale:t}}get objectIdField(){return this.parent||l.getLogger(this).error(ne("objectIdField")),this.parent?.objectIdField}get defaultPopupTemplate(){return this.createPopupTemplate()}get relationships(){return this.parent?.relationships}set renderer(e){C(e,this.fieldsIndex),this._override("renderer",e)}get renderer(){if(this._isOverridden("renderer"))return this._get("renderer");const{parent:e}=this;return e&&!e.isTable&&"mesh"!==e.geometryType?(K(this)?o(X(this)?.renderer):null)??J(e.geometryType):null}readRendererFromService(e,t,r){if("Table"===t.type)return null;const i=t.drawingInfo?.renderer,n=q(i,t,r);let o;const{subtypeCode:s}=this;if(null!=s&&z(n,t.subtypeField)){const e=n.uniqueValueInfos?.find(({value:e})=>(e="number"==typeof e?String(e):e)===String(s));e&&(o=new _({symbol:e.symbol}))}else"simple"!==n?.type||n.visualVariables?.length||(o=n);return o}readRenderer(e,t,r){const i=t?.layerDefinition?.drawingInfo?.renderer;if(i)return q(i,t,r)||void 0}get spatialReference(){return this.parent?.spatialReference??h.WGS84}get subtypeField(){return this.parent?.subtypeField}get templates(){if(this._isOverridden("templates"))return this._get("templates");const e=K(this)?X(this):null;return o(e?.templates)}set templates(e){this._override("templates",e)}readTemplatesFromService(e,t){return[ee(this.subtypeCode,t)]}get title(){if(this._isOverridden("title"))return this._get("title");const e=K(this)?X(this):null;return e?.title}set title(e){this._override("title",e)}readTitleFromService(e,t){const r=Z(this.subtypeCode,t);return null!=r?r.name:null}get url(){return this.parent?.url}get userHasUpdateItemPrivileges(){return!!this.parent?.userHasUpdateItemPrivileges}async addAttachment(e,t){const{parent:r}=this;if(!r)throw ne("addAttachment");if(e.getAttribute(r.subtypeField)!==this.subtypeCode)throw new i("subtype-sublayer:addAttachment","The feature provided does not belong to this SubtypeSublayer");return r.addAttachment(e,t)}async updateAttachment(e,t,r){const{parent:n}=this;if(!n)throw ne("updateAttachment");if(e.getAttribute(n.subtypeField)!==this.subtypeCode)throw new i("subtype-sublayer:updateAttachment","The feature provided does not belong to this SubtypeSublayer");return n.updateAttachment(e,t,r)}async deleteAttachments(e,t){const{parent:r}=this;if(!r)throw ne("deleteAttachments");if(e.getAttribute(r.subtypeField)!==this.subtypeCode)throw new i("subtype-sublayer:deleteAttachments","The feature provided does not belong to this SubtypeSublayer");return r.deleteAttachments(e,t)}async applyEdits(e,t){if(!this.parent)throw ne("applyEdits");return this.parent.applyEdits(e,t)}createPopupTemplate(e){let t=this;const{parent:r,fields:i,title:n}=this;if(r){const{displayField:e,editFieldsInfo:o,objectIdField:s}=r;t={displayField:e,editFieldsInfo:o,fields:i,objectIdField:s,title:n}}return G(t,e)}createQuery(){if(!this.parent)throw ne("createQuery");const e=T(this.parent),t=`${this.parent.subtypeField}=${this.subtypeCode}`;return e.where=u(t,this.parent.definitionExpression),e}getFeatureTitle(e,t){return this._titleCreator.getTitle(this,e,t)}getFeatureTitles(e,t){return this._titleCreator.getTitles(this,e,t)}getField(e){return this.fieldsIndex.get(e)}getFieldDomain(e,t){if(!t?.excludeImpliedDomains&&this.parent){const t=O(this.parent,e);if(t)return t}return this._getLayerDomain(e)}async queryAttachments(e,t){const r=await this.load();if(!r.parent)throw ne("queryAttachments");const i=e instanceof P?e.clone():new P(e);return i.where=ie(i.where,r.parent.subtypeField,r.subtypeCode),r.parent.queryAttachments(i,t)}async queryFeatureCount(e,t){const r=await this.load();if(!r.parent)throw ne("queryFeatureCount");return r.parent.queryFeatureCount(re(r.parent,r,e),t)}async queryFeatures(e,t){const r=await this.load();if(!r.parent)throw ne("queryFeatures");return r.parent.queryFeatures(re(r.parent,r,e),t)}async queryObjectIds(e,t){const r=await this.load();if(!r.parent)throw ne("queryObjectIds");return r.parent.queryObjectIds(re(r.parent,r,e),t)}async queryRelatedFeatures(e,t){const r=await this.load();if(!r.parent)throw ne("queryRelatedFeatures");return r.parent.queryRelatedFeatures(e,t)}async queryRelatedFeaturesCount(e,t){const r=await this.load();if(!r.parent)throw ne("queryRelatedFeaturesCount");return r.parent.queryRelatedFeaturesCount(e,t)}_getLayerDomain(e){const t=this.fieldsIndex.get(e);return t?t.domain:null}};e([y({clonable:!1,readOnly:!0})],te.prototype,"_titleCreator",null),e([y({type:U,json:H({name:"attributeTableInfo"})})],te.prototype,"attributeTableTemplate",void 0),e([y({readOnly:!0,json:{read:!1}})],te.prototype,"capabilities",null),e([y({readOnly:!0,json:{read:!1}})],te.prototype,"effectiveCapabilities",null),e([y({json:H()})],te.prototype,"charts",void 0),e([y({type:Boolean,nonNullable:!0,json:H({name:"enableEditing"})})],te.prototype,"editingEnabled",void 0),e([y({type:Boolean,readOnly:!0})],te.prototype,"effectiveEditingEnabled",null),e([y({readOnly:!0,json:{read:!1}})],te.prototype,"elevationInfo",null),e([y({clonable:!1,readOnly:!0})],te.prototype,"featureTitleFields",null),e([y({json:{name:"layerDefinition.fieldOverrides",origins:{service:{read:!1}},write:{ignoreOrigin:!0,allowNull:!0}}})],te.prototype,"fieldOverrides",void 0),e([V("fieldOverrides")],te.prototype,"writeFieldOverrides",null),e([y({...Q.fields,readOnly:!0,json:{read:!1}})],te.prototype,"fields",null),e([y(Q.fieldsIndex)],te.prototype,"fieldsIndex",void 0),e([y({readOnly:!0,json:{read:!1}})],te.prototype,"floorInfo",null),e([y({type:f,json:H({name:"formInfo"})})],te.prototype,"formTemplate",void 0),e([y({readOnly:!0,clonable:!1})],te.prototype,"graphicOrigin",void 0),e([y({type:String,clonable:!1,json:{origins:{service:{read:!1},"portal-item":{read:!1}},write:{ignoreOrigin:!0}}})],te.prototype,"id",void 0),e([y({readOnly:!0,json:{read:!1}})],te.prototype,"isTable",null),e([y({readOnly:!0,json:{read:!1}})],te.prototype,"geometryType",null),e([y({readOnly:!0,json:{read:!1}})],te.prototype,"globalIdField",null),e([y({readOnly:!0,json:{read:!1}})],te.prototype,"type",void 0),e([y(B(o(g)))],te.prototype,"labelsVisible",void 0),e([y({type:[A],json:{name:"layerDefinition.drawingInfo.labelingInfo",origins:{service:{read:!1}},read:{reader:E},write:{ignoreOrigin:!0,layerContainerTypes:m}}})],te.prototype,"labelingInfo",void 0),e([y({type:["ArcGISFeatureLayer"],readOnly:!0,json:{read:!1,write:{ignoreOrigin:!0,layerContainerTypes:m}}})],te.prototype,"layerType",void 0),e([y(B(o(v)))],te.prototype,"legendEnabled",void 0),e([y({type:["show","hide"]})],te.prototype,"listMode",void 0),e([y((()=>{const e=o(j);return e.json.origins.service.read=!1,B(e,{spatialOnly:!0})})())],te.prototype,"minScale",void 0),e([y((()=>{const e=o(w);return e.json.origins.service.read=!1,B(e,{spatialOnly:!0})})())],te.prototype,"maxScale",void 0),e([y({readOnly:!0})],te.prototype,"effectiveScaleRange",null),e([y({readOnly:!0,json:{read:!1}})],te.prototype,"objectIdField",null),e([y({type:Number,range:{min:0,max:1},nonNullable:!0,json:H({spatialOnly:!0})})],te.prototype,"opacity",void 0),e([y({clonable:!1})],te.prototype,"parent",void 0),e([y(B(o(F)))],te.prototype,"popupEnabled",void 0),e([y({type:t,json:H({name:"popupInfo"})})],te.prototype,"popupTemplate",void 0),e([y({readOnly:!0})],te.prototype,"defaultPopupTemplate",null),e([y({readOnly:!0,json:{read:!1}})],te.prototype,"relationships",null),e([y({types:x,json:H({target:"layerDefinition.drawingInfo.renderer",spatialOnly:!0})})],te.prototype,"renderer",null),e([M("service","renderer",["drawingInfo.renderer","subtypeField","type"])],te.prototype,"readRendererFromService",null),e([M("renderer",["layerDefinition.drawingInfo.renderer"])],te.prototype,"readRenderer",null),e([y({readOnly:!0,json:{read:!1}})],te.prototype,"spatialReference",null),e([y({type:Number,json:{origins:{service:{read:!1}},write:{ignoreOrigin:!0}}})],te.prototype,"subtypeCode",void 0),e([y({readOnly:!0,json:{read:!1}})],te.prototype,"subtypeField",null),e([y({type:[I],json:H({name:"layerDefinition.templates"})})],te.prototype,"templates",null),e([M("service","templates",["geometryType","subtypeField","subtypes","type"])],te.prototype,"readTemplatesFromService",null),e([y({type:String,json:H()})],te.prototype,"title",null),e([M("service","title",["subtypes"])],te.prototype,"readTitleFromService",null),e([y({readOnly:!0,json:{read:!1}})],te.prototype,"url",null),e([y({readOnly:!0})],te.prototype,"userHasUpdateItemPrivileges",null),e([y({type:Boolean,nonNullable:!0,json:H({name:"visibility",spatialOnly:!0})})],te.prototype,"visible",void 0),te=e([c("esri.layers.support.SubtypeSublayer")],te);const re=(e,t,r)=>{if(!r)return t.createQuery();const i=L.from(r);return i.where=ie(i.where,e.subtypeField,t.subtypeCode),i},ie=(e,t,r)=>{const i=new RegExp(`${t}\\s*=\\s*\\d+`),n=`${t}=${r}`,o=e??"";return i.test(o)?o.replace(i,n):u(n,o)},ne=e=>new i("subtype-sublayer:parent-missing",`This sublayer must have a parent SubtypeGroupLayer in order to use ${e}`);export{te as default};
|
|
2
|
+
import{__decorate as e}from"tslib";import t from"../../PopupTemplate.js";import{ClonableMixin as r}from"../../core/Clonable.js";import i from"../../core/Error.js";import{IdentifiableMixin as n}from"../../core/Identifiable.js";import{clone as o}from"../../core/lang.js";import{Loadable as s}from"../../core/Loadable.js";import l from"../../core/Logger.js";import{destroyMaybe as a}from"../../core/maybe.js";import{MultiOriginJSONSupportMixin as p}from"../../core/MultiOriginJSONSupport.js";import{setDeepValue as d}from"../../core/object.js";import{sqlAnd as u}from"../../core/sql.js";import{property as y,subclass as c}from"../../core/accessorSupport/decorators.js";import{excludeTables as m}from"../../core/accessorSupport/layerContainerType.js";import f from"../../form/FormTemplate.js";import h from"../../geometry/SpatialReference.js";import b from"../../graphic/SubtypeGroupGraphicOrigin.js";import{labelsVisible as g,legendEnabled as v,minScale as j,maxScale as w,popupEnabled as F}from"./commonProperties.js";import{createQuery as T,computeDomainFromSubtypes as O}from"./featureLayerUtils.js";import I from"./FeatureTemplate.js";import{defineFieldProperties as S}from"./fieldProperties.js";import{fixRendererFields as C}from"./fieldUtils.js";import A from"./LabelClass.js";import{reader as E}from"./labelingInfo.js";import{rendererReader as q,supportedRendererTypes as x}from"./subtypeGroupLayerUtils.js";import R from"./TitleCreator.js";import _ from"../../renderers/SimpleRenderer.js";import P from"../../rest/support/AttachmentQuery.js";import L from"../../rest/support/Query.js";import{createPopupTemplate as G}from"../../support/popupUtils.js";import{defaultPolygonSymbol2D as D,defaultPolylineSymbol2D as N,defaultPointSymbol2D as $}from"../../symbols/support/defaults.js";import U from"../../tables/AttributeTableTemplate.js";import{writer as V}from"../../core/accessorSupport/decorators/writer.js";import{reader as M}from"../../core/accessorSupport/decorators/reader.js";const Q=S();let k=0;function B(e,t){let r=e.json.write;return"object"!=typeof r&&(r=e.json.write={}),r.ignoreOrigin=!0,t?.spatialOnly&&(r.layerContainerTypes=m),e}function H(e){const t={write:{ignoreOrigin:!0}};return e?.name&&(t.name=e.name),"object"==typeof t.write&&(e?.spatialOnly&&(t.write.layerContainerTypes=m),e?.target&&(t.write.target=e.target)),t}function J(e){return new _({symbol:W(e)})}function W(e){switch(e){case"point":case"multipoint":return $.clone();case"polyline":return N.clone();case"polygon":case"multipatch":return D.clone();default:return null}}function z(e,t){return!!t&&("unique-value"===e?.type&&null!=e.field&&e.field.toLowerCase()===t.toLowerCase()&&!e.field2&&!e.field3&&!e.valueExpression)}function K(e){return Z(e,"user")===e}function X(e){return Z(e,"service")}function Y(e){return Z(e,"portal-item")}function Z(e,t){const r=e.parent?.getAtOrigin("sublayers",t);return r?.find(({subtypeCode:t})=>t===e.subtypeCode)}function ee(e,t){return null==e?null:t.subtypes?.find(t=>t.code===e)}function te(e,t){let r=null;switch(t.geometryType){case"esriGeometryPoint":case"esriGeometryMultipoint":r="point";break;case"esriGeometryPolyline":r="line";break;case"esriGeometryPolygon":case"esriGeometryMultiPatch":r="polygon";break;default:t.type,r=null}const i={},n=ee(e,t);if(null!=n){const{defaultValues:e}=n;for(const t in e)i[t]=e[t]}return i[t.subtypeField]=e,new I({name:"New Feature",drawingTool:r,prototype:{attributes:i}})}let re=class extends(p(r(n(s)))){constructor(e){super(e),this.attributeTableTemplate=null,this.charts=null,this.editingEnabled=!0,this.fieldOverrides=null,this.fieldsIndex=null,this.formTemplate=null,this.graphicOrigin=new b(this),this.id=`${Date.now().toString(16)}-subtype-sublayer-${k++}`,this.type="subtype-sublayer",this.labelsVisible=!0,this.labelingInfo=null,this.layerType="ArcGISFeatureLayer",this.legendEnabled=!0,this.listMode="show",this.minScale=0,this.maxScale=0,this.opacity=1,this.parent=null,this.popupEnabled=!0,this.popupTemplate=null,this.subtypeCode=null,this.visible=!0}load(e){return C(this.renderer,this.fieldsIndex),Promise.resolve(this)}get _titleCreator(){const e=this._get("_titleCreator");return a(e),new R({fieldsIndex:this.fieldsIndex,objectIdField:this.objectIdField,displayField:this.parent?.displayField??"",fields:this.fields,effectivePopupTemplate:this.popupTemplate??this.defaultPopupTemplate})}get capabilities(){return this.parent?.capabilities}get effectiveCapabilities(){return this.parent?.effectiveCapabilities}get effectiveEditingEnabled(){const{parent:e}=this;return e?e.effectiveEditingEnabled&&this.editingEnabled:this.editingEnabled}get elevationInfo(){return this.parent?.elevationInfo}get featureTitleFields(){return[...this._titleCreator.requiredFields]}writeFieldOverrides(e,t,r){const{fields:i,parent:n}=this;let s;if(i){s=[];let e=0;i.forEach(({name:t,alias:r,editable:i,visible:o})=>{if(!o)return;const l=n?.fields?.find(e=>e.name===t);if(!l)return;const a={name:t};let p=!1;r!==l.alias&&(a.alias=r,p=!0),i!==l.editable&&(a.editable=i,p=!0),s.push(a),p&&e++}),0===e&&s.length===i.length&&(s=null)}else s=o(e);s?.length&&d(r,s,t)}get fields(){const{parent:e,fieldOverrides:t,subtypeCode:r}=this,i=e?.fields;if(!e||!i?.length)return null;const{subtypes:n,subtypeField:o}=e,s=n?.find(e=>e.code===r),l=s?.defaultValues,a=s?.domains,p=[];for(const d of i){const e=d.clone(),{name:i}=e,n=t?.find(e=>e.name===i);if(e.visible=!t?.length||!!n,n){const{alias:t,editable:r}=n;t&&(e.alias=t),!1===r&&(e.editable=!1)}const s=l?.[i]??null;e.defaultValue=i===o?r:s;const u=a?.[i]??null;e.domain=i===o?null:u?"inherited"===u.type?e.domain:u.clone():null,p.push(e)}return p}get floorInfo(){return this.parent?.floorInfo}get isTable(){return!!this.parent?.isTable}get geometryType(){return this.parent?.geometryType}get globalIdField(){return this.parent?this.parent.globalIdField:(l.getLogger(this).error(oe("globalIdField")),null)}get effectiveScaleRange(){const{minScale:e,maxScale:t}=this;return{minScale:e,maxScale:t}}get objectIdField(){return this.parent||l.getLogger(this).error(oe("objectIdField")),this.parent?.objectIdField}get defaultPopupTemplate(){return this.createPopupTemplate()}get relationships(){return this.parent?.relationships}set renderer(e){C(e,this.fieldsIndex),this._override("renderer",e)}get renderer(){if(this._isOverridden("renderer"))return this._get("renderer");const{parent:e}=this;return e&&!e.isTable&&"mesh"!==e.geometryType?(K(this)?o(X(this)?.renderer):null)??J(e.geometryType):null}readRendererFromService(e,t,r){if("Table"===t.type)return null;const i=t.drawingInfo?.renderer,n=q(i,t,r);let o;const{subtypeCode:s}=this;if(null!=s&&z(n,t.subtypeField)){const e=n.uniqueValueInfos?.find(({value:e})=>(e="number"==typeof e?String(e):e)===String(s));e&&(o=new _({symbol:e.symbol}))}else"simple"!==n?.type||n.visualVariables?.length||(o=n);return o}readRenderer(e,t,r){const i=t?.layerDefinition?.drawingInfo?.renderer;if(i)return q(i,t,r)||void 0}get spatialReference(){return this.parent?.spatialReference??h.WGS84}get subtypeField(){return this.parent?.subtypeField}get templates(){return this._isOverridden("templates")?this._get("templates"):o(K(this)?X(this)?.templates:Y(this)?.templates||X(this)?.templates)}set templates(e){this._override("templates",e)}readTemplatesFromService(e,t){return[te(this.subtypeCode,t)]}get title(){if(this._isOverridden("title"))return this._get("title");const e=K(this)?X(this):null;return e?.title}set title(e){this._override("title",e)}readTitleFromService(e,t){const r=ee(this.subtypeCode,t);return null!=r?r.name:null}get url(){return this.parent?.url}get userHasUpdateItemPrivileges(){return!!this.parent?.userHasUpdateItemPrivileges}async addAttachment(e,t){const{parent:r}=this;if(!r)throw oe("addAttachment");if(e.getAttribute(r.subtypeField)!==this.subtypeCode)throw new i("subtype-sublayer:addAttachment","The feature provided does not belong to this SubtypeSublayer");return r.addAttachment(e,t)}async updateAttachment(e,t,r){const{parent:n}=this;if(!n)throw oe("updateAttachment");if(e.getAttribute(n.subtypeField)!==this.subtypeCode)throw new i("subtype-sublayer:updateAttachment","The feature provided does not belong to this SubtypeSublayer");return n.updateAttachment(e,t,r)}async deleteAttachments(e,t){const{parent:r}=this;if(!r)throw oe("deleteAttachments");if(e.getAttribute(r.subtypeField)!==this.subtypeCode)throw new i("subtype-sublayer:deleteAttachments","The feature provided does not belong to this SubtypeSublayer");return r.deleteAttachments(e,t)}async applyEdits(e,t){if(!this.parent)throw oe("applyEdits");return this.parent.applyEdits(e,t)}createPopupTemplate(e){let t=this;const{parent:r,fields:i,title:n}=this;if(r){const{displayField:e,editFieldsInfo:o,objectIdField:s}=r;t={displayField:e,editFieldsInfo:o,fields:i,objectIdField:s,title:n}}return G(t,e)}createQuery(){if(!this.parent)throw oe("createQuery");const e=T(this.parent),t=`${this.parent.subtypeField}=${this.subtypeCode}`;return e.where=u(t,this.parent.definitionExpression),e}getFeatureTitle(e,t){return this._titleCreator.getTitle(this,e,t)}getFeatureTitles(e,t){return this._titleCreator.getTitles(this,e,t)}getField(e){return this.fieldsIndex.get(e)}getFieldDomain(e,t){if(!t?.excludeImpliedDomains&&this.parent){const t=O(this.parent,e);if(t)return t}return this._getLayerDomain(e)}async queryAttachments(e,t){const r=await this.load();if(!r.parent)throw oe("queryAttachments");const i=e instanceof P?e.clone():new P(e);return i.where=ne(i.where,r.parent.subtypeField,r.subtypeCode),r.parent.queryAttachments(i,t)}async queryFeatureCount(e,t){const r=await this.load();if(!r.parent)throw oe("queryFeatureCount");return r.parent.queryFeatureCount(ie(r.parent,r,e),t)}async queryFeatures(e,t){const r=await this.load();if(!r.parent)throw oe("queryFeatures");return r.parent.queryFeatures(ie(r.parent,r,e),t)}async queryObjectIds(e,t){const r=await this.load();if(!r.parent)throw oe("queryObjectIds");return r.parent.queryObjectIds(ie(r.parent,r,e),t)}async queryRelatedFeatures(e,t){const r=await this.load();if(!r.parent)throw oe("queryRelatedFeatures");return r.parent.queryRelatedFeatures(e,t)}async queryRelatedFeaturesCount(e,t){const r=await this.load();if(!r.parent)throw oe("queryRelatedFeaturesCount");return r.parent.queryRelatedFeaturesCount(e,t)}_getLayerDomain(e){const t=this.fieldsIndex.get(e);return t?t.domain:null}};e([y({clonable:!1,readOnly:!0})],re.prototype,"_titleCreator",null),e([y({type:U,json:H({name:"attributeTableInfo"})})],re.prototype,"attributeTableTemplate",void 0),e([y({readOnly:!0,json:{read:!1}})],re.prototype,"capabilities",null),e([y({readOnly:!0,json:{read:!1}})],re.prototype,"effectiveCapabilities",null),e([y({json:H()})],re.prototype,"charts",void 0),e([y({type:Boolean,nonNullable:!0,json:H({name:"enableEditing"})})],re.prototype,"editingEnabled",void 0),e([y({type:Boolean,readOnly:!0})],re.prototype,"effectiveEditingEnabled",null),e([y({readOnly:!0,json:{read:!1}})],re.prototype,"elevationInfo",null),e([y({clonable:!1,readOnly:!0})],re.prototype,"featureTitleFields",null),e([y({json:{name:"layerDefinition.fieldOverrides",origins:{service:{read:!1}},write:{ignoreOrigin:!0,allowNull:!0}}})],re.prototype,"fieldOverrides",void 0),e([V("fieldOverrides")],re.prototype,"writeFieldOverrides",null),e([y({...Q.fields,readOnly:!0,json:{read:!1}})],re.prototype,"fields",null),e([y(Q.fieldsIndex)],re.prototype,"fieldsIndex",void 0),e([y({readOnly:!0,json:{read:!1}})],re.prototype,"floorInfo",null),e([y({type:f,json:H({name:"formInfo"})})],re.prototype,"formTemplate",void 0),e([y({readOnly:!0,clonable:!1})],re.prototype,"graphicOrigin",void 0),e([y({type:String,clonable:!1,json:{origins:{service:{read:!1},"portal-item":{read:!1}},write:{ignoreOrigin:!0}}})],re.prototype,"id",void 0),e([y({readOnly:!0,json:{read:!1}})],re.prototype,"isTable",null),e([y({readOnly:!0,json:{read:!1}})],re.prototype,"geometryType",null),e([y({readOnly:!0,json:{read:!1}})],re.prototype,"globalIdField",null),e([y({readOnly:!0,json:{read:!1}})],re.prototype,"type",void 0),e([y(B(o(g)))],re.prototype,"labelsVisible",void 0),e([y({type:[A],json:{name:"layerDefinition.drawingInfo.labelingInfo",origins:{service:{read:!1}},read:{reader:E},write:{ignoreOrigin:!0,layerContainerTypes:m}}})],re.prototype,"labelingInfo",void 0),e([y({type:["ArcGISFeatureLayer"],readOnly:!0,json:{read:!1,write:{ignoreOrigin:!0,layerContainerTypes:m}}})],re.prototype,"layerType",void 0),e([y(B(o(v)))],re.prototype,"legendEnabled",void 0),e([y({type:["show","hide"]})],re.prototype,"listMode",void 0),e([y((()=>{const e=o(j);return e.json.origins.service.read=!1,B(e,{spatialOnly:!0})})())],re.prototype,"minScale",void 0),e([y((()=>{const e=o(w);return e.json.origins.service.read=!1,B(e,{spatialOnly:!0})})())],re.prototype,"maxScale",void 0),e([y({readOnly:!0})],re.prototype,"effectiveScaleRange",null),e([y({readOnly:!0,json:{read:!1}})],re.prototype,"objectIdField",null),e([y({type:Number,range:{min:0,max:1},nonNullable:!0,json:H({spatialOnly:!0})})],re.prototype,"opacity",void 0),e([y({clonable:!1})],re.prototype,"parent",void 0),e([y(B(o(F)))],re.prototype,"popupEnabled",void 0),e([y({type:t,json:H({name:"popupInfo"})})],re.prototype,"popupTemplate",void 0),e([y({readOnly:!0})],re.prototype,"defaultPopupTemplate",null),e([y({readOnly:!0,json:{read:!1}})],re.prototype,"relationships",null),e([y({types:x,json:H({target:"layerDefinition.drawingInfo.renderer",spatialOnly:!0})})],re.prototype,"renderer",null),e([M("service","renderer",["drawingInfo.renderer","subtypeField","type"])],re.prototype,"readRendererFromService",null),e([M("renderer",["layerDefinition.drawingInfo.renderer"])],re.prototype,"readRenderer",null),e([y({readOnly:!0,json:{read:!1}})],re.prototype,"spatialReference",null),e([y({type:Number,json:{origins:{service:{read:!1}},write:{ignoreOrigin:!0}}})],re.prototype,"subtypeCode",void 0),e([y({readOnly:!0,json:{read:!1}})],re.prototype,"subtypeField",null),e([y({type:[I],json:H({name:"layerDefinition.templates"})})],re.prototype,"templates",null),e([M("service","templates",["geometryType","subtypeField","subtypes","type"])],re.prototype,"readTemplatesFromService",null),e([y({type:String,json:H()})],re.prototype,"title",null),e([M("service","title",["subtypes"])],re.prototype,"readTitleFromService",null),e([y({readOnly:!0,json:{read:!1}})],re.prototype,"url",null),e([y({readOnly:!0})],re.prototype,"userHasUpdateItemPrivileges",null),e([y({type:Boolean,nonNullable:!0,json:H({name:"visibility",spatialOnly:!0})})],re.prototype,"visible",void 0),re=e([c("esri.layers.support.SubtypeSublayer")],re);const ie=(e,t,r)=>{if(!r)return t.createQuery();const i=L.from(r);return i.where=ne(i.where,e.subtypeField,t.subtypeCode),i},ne=(e,t,r)=>{const i=new RegExp(`${t}\\s*=\\s*\\d+`),n=`${t}=${r}`,o=e??"";return i.test(o)?o.replace(i,n):u(n,o)},oe=e=>new i("subtype-sublayer:parent-missing",`This sublayer must have a parent SubtypeGroupLayer in order to use ${e}`);export{re as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{id as e}from"../../kernel.js";import t from"../../request.js";import n from"../../core/Collection.js";import"../../core/urlUtils.js";import{isLayerFromCatalog as r}from"../catalog/catalogUtils.js";import{isBasemap as i}from"../../support/userTypeGuards/isBasemap.js";function u(e){return d(e)||y(e)}function o(e){return null!=e&&"object"==typeof e&&"type"in e&&"feature"===e.type}function s(e){return null!=e&&"object"==typeof e&&"type"in e&&"graphics"===e.type}function c(e){return null!=e&&"object"==typeof e&&"type"in e&&"map-image"===e.type}function a(e){return null!=e&&"object"==typeof e&&"type"in e&&"map-notes"===e.type&&"sublayers"in e}function l(e){return null!=e&&"object"==typeof e&&"type"in e&&"knowledge-graph"===e.type&&"layers"in e}function f(e){return null!=e&&"object"==typeof e&&"type"in e&&"knowledge-graph-sublayer"===e.type}function p(e){return null!=e&&"object"==typeof e&&"type"in e&&"link-chart"===e.type&&"layers"in e}function y(e){return null!=e&&"object"==typeof e&&"type"in e&&"scene"===e.type}function g(e){return null!=e&&"object"==typeof e&&"type"in e&&"subtype-group"===e.type&&"sublayers"in e}function b(e){return"subtype-sublayer"===e?.type}function d(e){const t=e?.type;return"imagery-tile"===t||"tile"===t||"open-street-map"===t||"vector-tile"===t||"web-tile"===t||"wmts"===t}function m(e){const t=e?.type;return"base-tile"===t||"tile"===t||"elevation"===t||"imagery-tile"===t||"base-elevation"===t||"open-street-map"===t||"wcs"===t||"web-tile"===t||"wmts"===t||"vector-tile"===t}function h(e){return null!=e&&"type"in e&&"group"===e.type}const
|
|
2
|
+
import{id as e}from"../../kernel.js";import t from"../../request.js";import n from"../../core/Collection.js";import"../../core/urlUtils.js";import{isLayerFromCatalog as r}from"../catalog/catalogUtils.js";import{isBasemap as i}from"../../support/userTypeGuards/isBasemap.js";function u(e){return d(e)||y(e)}function o(e){return null!=e&&"object"==typeof e&&"type"in e&&"feature"===e.type}function s(e){return null!=e&&"object"==typeof e&&"type"in e&&"graphics"===e.type}function c(e){return null!=e&&"object"==typeof e&&"type"in e&&"map-image"===e.type}function a(e){return null!=e&&"object"==typeof e&&"type"in e&&"map-notes"===e.type&&"sublayers"in e}function l(e){return null!=e&&"object"==typeof e&&"type"in e&&"knowledge-graph"===e.type&&"layers"in e}function f(e){return null!=e&&"object"==typeof e&&"type"in e&&"knowledge-graph-sublayer"===e.type}function p(e){return null!=e&&"object"==typeof e&&"type"in e&&"link-chart"===e.type&&"layers"in e}function y(e){return null!=e&&"object"==typeof e&&"type"in e&&"scene"===e.type}function g(e){return null!=e&&"object"==typeof e&&"type"in e&&"subtype-group"===e.type&&"sublayers"in e}function b(e){return"subtype-sublayer"===e?.type}function d(e){const t=e?.type;return"imagery-tile"===t||"tile"===t||"open-street-map"===t||"vector-tile"===t||"web-tile"===t||"wmts"===t}function m(e){const t=e?.type;return"base-tile"===t||"tile"===t||"elevation"===t||"imagery-tile"===t||"base-elevation"===t||"open-street-map"===t||"wcs"===t||"web-tile"===t||"wmts"===t||"vector-tile"===t}function h(e){return null!=e&&"type"in e&&"group"===e.type}function j(e){const t=e.parent;return h(t)&&t.tables.includes(e)}const v={Point:"SceneLayer","3DObject":"SceneLayer",IntegratedMesh:"IntegratedMeshLayer",PointCloud:"PointCloudLayer",Building:"BuildingSceneLayer"};function w(e){const t=e?.type;return"building-scene"===t||"integrated-mesh"===t||"point-cloud"===t||"scene"===t}function L(e){return"integrated-mesh"===e.type||"integrated-mesh-3dtiles"===e.type}function S(e){return"integrated-mesh-3dtiles"===e.type}function E(e){return"voxel"===e?.type}function k(e){return"imagery-tile"===e?.type}function C(e,t){return i(e?.parent)&&e.parent[t].includes(e)}function x(e){return C(e,"baseLayers")}function T(e){return C(e,"referenceLayers")}function U(e){return"feature"===e?.type&&!e.url&&"memory"===e.source?.type}function M(e){const t=e?.type;return("feature"===t||"subtype-group"===t||"oriented-imagery"===t)&&"feature-layer"===e?.source?.type}function O(e){return"feature"===e?.type&&"feature-layer"===e.source?.type}function P(e){return o(e)&&O(e)}function B(e){const t=e?.type;return"binning"===t||"cluster"===t}function I(e,t){if(!P(e))return;const n=t?.graphic,r=e.featureReduction;if(n){if(n.isAggregate){const e=n.origin;return e&&("featureReductionProvider"in e&&r)?B(r)?r:null:void 0}return e}return t?.checkFeatureReduction&&r?B(r)?r:null:e}function R(e){const t=/[:;]/,n=[];let r=!1;if(e&&(e.forEach((e,i)=>{n.push([i,e]),!r&&t.test(e)&&(r=!0)}),n.length>0)){let e;if(r){const t={};n.forEach(e=>{t[e[0]]=e[1]}),e=JSON.stringify(t)}else{const t=[];n.forEach(e=>{t.push(e[0]+":"+e[1])}),e=t.join(";")}return e}return null}function q(e){if(!e)return;const t=[];return e.forEach((e,n)=>{t.push('"'+n+'":'+JSON.stringify(e))}),t.length?"{"+t.join(",")+"}":void 0}function F(e){if(e.activeLayer){const t=e.activeLayer.tileMatrixSet;if(t)return t;const n=e.activeLayer.tileMatrixSets;if(n)return n}return null}async function J(n,r){const i=e?.findServerInfo(n);if(null!=i?.currentVersion)return i.owningSystemUrl||null;const u=n.toLowerCase().indexOf("/rest/services");if(-1===u)return null;const o=`${n.slice(0,u)}/rest/info`,s=null!=r?r.signal:null,{data:c}=await t(o,{query:{f:"json"},responseType:"json",signal:s});return c?.owningSystemUrl||null}function N(e){if(!("capabilities"in e))return!1;switch(e.type){case"catalog":case"catalog-footprint":case"csv":case"feature":case"geojson":case"imagery":case"knowledge-graph-sublayer":case"ogc-feature":case"oriented-imagery":case"scene":case"sublayer":case"subtype-group":case"subtype-sublayer":case"wfs":return!0;default:return!1}}function A(e){return null!=e&&"object"==typeof e&&"isTable"in e&&!!e.isTable}function D(e){return N(e)?"effectiveCapabilities"in e?e.effectiveCapabilities:e.capabilities:null}function G(e){if(!("editingEnabled"in e))return!1;switch(e.type){case"csv":case"feature":case"geojson":case"oriented-imagery":case"scene":case"subtype-group":case"subtype-sublayer":case"knowledge-graph-sublayer":return!0;default:return!1}}function V(e){return!!G(e)&&("effectiveEditingEnabled"in e?e.effectiveEditingEnabled:e.editingEnabled)}function $(e){if(!e)return[];return("subtypes"in e?e.subtypes:g(e.parent)?e.parent.subtypes:[])??[]}function z(e){return("imagery"===e.type||"imagery-tile"===e.type)&&"flow"===e.renderer?.type}function H(e){const t=new n;for(const n of e.allLayers.concat(e.allTables))r(n)||j(n)||("charts"in n&&t.push(n),"subtype-group"===n.type&&t.push(...n.sublayers));return t}function K(e,t){return null}function Q(e){return null}function W(e){return!e||"Feature Service"===e.type&&!e.sourceUrl}function X(e,t){if(!t||!W(e))return;const n=K(e.url);n&&(e.url=n)}export{X as applyPreferredHostToPortalItem,V as getEffectiveEditingEnabled,D as getEffectiveLayerCapabilities,I as getFieldConfigurationsContainer,H as getLayersWithChartSupport,J as getOwningPortalUrl,Q as getPreferredHost,K as getPreferredUrl,$ as getSubtypesFromLayer,F as getTileMaxtrixSetFromActiveLayer,x as isBaseLayer,u as isBasemap3DSupportedLayer,d as isBasemapSupportedTiledLayer,U as isFeatureCollectionLayer,o as isFeatureLayer,O as isFeatureServiceLayer,s as isGraphicsLayer,h as isGroupLayer,k as isImageryTileLayer,S as isIntegratedMesh3DTilesLayer,L as isIntegratedMeshLayer,l as isKnowledgeGraphLayer,f as isKnowledgeGraphSublayer,N as isLayerWithFeatureCapabilities,M as isLayerWithFeatureLayerSource,z as isLayerWithFlowRenderer,p as isLinkChartLayer,c as isMapImageLayer,a as isMapNotesLayer,W as isPreferredUrlApplicable,T as isReferenceLayer,y as isSceneLayer,w as isSceneServiceLayer,g as isSubtypeGroupLayer,b as isSubtypeSublayer,A as isTable,m as isTiledLayer,E as isVoxelLayer,v as sceneServiceLayerTypeToClassName,R as serializeLayerDefinitions,q as serializeTimeOptions,P as supportsFieldConfiguration};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@arcgis/core",
|
|
3
|
-
"version": "5.1.0-next.
|
|
3
|
+
"version": "5.1.0-next.45",
|
|
4
4
|
"homepage": "https://js.arcgis.com",
|
|
5
5
|
"description": "ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API",
|
|
6
6
|
"keywords": [
|
|
@@ -19,10 +19,10 @@
|
|
|
19
19
|
"license": "SEE LICENSE IN LICENSE.md",
|
|
20
20
|
"dependencies": {
|
|
21
21
|
"@amcharts/amcharts5": "~5.16.1",
|
|
22
|
-
"@arcgis/toolkit": "^5.1.0-next.
|
|
22
|
+
"@arcgis/toolkit": "^5.1.0-next.45",
|
|
23
23
|
"@esri/arcgis-html-sanitizer": "~4.1.0",
|
|
24
24
|
"@esri/calcite-components": "^5.0.2",
|
|
25
|
-
"@vaadin/grid": "~25.0.
|
|
25
|
+
"@vaadin/grid": "~25.0.8",
|
|
26
26
|
"@zip.js/zip.js": "~2.8.23",
|
|
27
27
|
"luxon": "~3.7.2",
|
|
28
28
|
"marked": "~17.0.4",
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import r from"../../../core/Logger.js";function t(r){return class{constructor(){for(const t of r)this[t]=null}}}function e(r,t=1){const{transform:e,hasZ:o,hasM:s}=r;if(null==e)return o&&1!==t?r=>{r[2]*=t}:null;const[i,u]=n(e,o,s,t),
|
|
2
|
+
import r from"../../../core/Logger.js";function t(r){return class{constructor(){for(const t of r)this[t]=null}}}function e(r,t=1){const{transform:e,hasZ:o,hasM:s}=r;if(null==e)return o&&1!==t?r=>{r[2]*=t}:null;const[i,u]=n(e,o,s,t),a=r.hasZ?3:2;return r=>{for(let t=0;t<r.length&&(t!==a||0!==r[t]);++t)r[t]=r[t]*i[t]+u[t]}}function n(r,t,e,n){let{scale:o,translate:s,originPosition:i}=r;return"upperLeft"===i&&(o=o.map((r,t)=>1===t?-r:r)),t&&(o=o.map((r,t)=>2===t?r*n:r),s=s.map((r,t)=>2===t?r*n:r)),!t&&e&&(o=o.filter((r,t)=>2!==t),s=s.filter((r,t)=>2!==t)),[o,s]}function o(){return r.getLogger("esri.rest.query.operations.pbfFeatureServiceParser")}export{o as getLogger,t as makeAttributesClass,e as makeVertexTransformer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{allocateFlatGeometry as t,writeBezierCurveSegment as e,writeCircularArcSegment as s,writeEllipticArc7Segment as r}from"../../../geometry/FlatGeometry.js";import{featureGeometryTypeKebabDictionary as i}from"../../../geometry/support/typeUtils.js";import{zScale as h}from"../../../geometry/support/zscale.js";import{FlatFeature as o}from"../../../layers/graphics/FlatFeature.js";import{FlatFeatureSet as a}from"../../../layers/graphics/FlatFeatureSet.js";import _ from"../../../layers/graphics/OptimizedGeometry.js";import{createFeatureId as n}from"../../../layers/graphics/data/createFeatureId.js";import{makeAttributesClass as f,makeVertexTransformer as m}from"./pbfFeatureSetUtils.js";class u{constructor(t){this._options=t,this.featureSet=new a,this.parseOnly=null,this._idInfo=null,this._transformInPlace=null,this._transformInPlaceXY=null,this._push=u._pushXY,this._attributesClass=null,this._previousX=0,this._previousY=0,this._vertex=[],this._i=0,this._geometry=null,this._iVertex=0,this._iPart=0,this._isPolygon=!1,this._ringEndsAt=-1}queryGeometryType(){return this.featureSet.queryGeometryType}queryGeometry(){return this.featureSet.queryGeometry}idField(t){"string"==typeof t?this._idInfo??={type:"object-id",fieldName:t}:this._idInfo={type:"unique-id-simple",fieldName:t.name}}finish(){if(this._idInfo)for(const s of this.featureSet.features)s.objectId=n(s,this._idInfo);const{spatialReference:t,features:e}=this.featureSet;if(t)for(const{geometry:s}of e)s&&(s.spatialReference=t);this.featureSet.transform=null}feature(){this._attributesClass??=f(this.featureSet.fields?.map(t=>t.name)??[]),this.featureSet.features.push(new o(null,new this._attributesClass,null,0)),this._setVertexTransformer()}centroid(t){const{hasZ:e,hasM:s}=this.featureSet;this.featureSet.features.at(-1).centroid=new _([],t,e,s)}geometry(e,s,r){this._previousX=this._previousY=0,this._i=this._iVertex=this._iPart=0;let{hasZ:h,hasM:o}=this.featureSet;h??=!1,o??=!1,this._vertex=[0,0],h&&this._vertex.push(0),o&&this._vertex.push(0);const a=i.fromJSON(s);this._isPolygon="polygon"===a;const _=Number(this._isPolygon),n="point"===a?1:r.reduce((t,e)=>t+e-_,0),f=r.length;if(this._geometry=t(a,n,f,h,o,!1),this._push=h?o?u._pushXYZM:u._pushXYZ:o?u._pushXYM:u._pushXY,this._geometry.isMultipart()){this._geometry.partOffsets[0]=0;for(let t=0;t<f;++t)this._geometry.partOffsets[t+1]=this._geometry.partOffsets[t]+r[t]-_}this._ringEndsAt=_?this._geometry.partOffsets.at(1)??0:-1,1===e?(this.featureSet.queryGeometry=this._geometry,this.featureSet.queryGeometryType=s):this.featureSet.features.at(-1).geometry=this._geometry}coord(t){const e=this._vertex;e[this._i++]=t,this._i<e.length||(this._i=0,e[0]+=this._previousX,e[1]+=this._previousY,[this._previousX,this._previousY]=e,this._iVertex===this._ringEndsAt&&(++this._iPart,this._ringEndsAt=this._geometry.partOffsets[this._iPart+1],this._previousX=this._previousY=0,this._isPolygon)||(this._transformInPlace?.(e),this._push(this)))}curvedGeometry(e,s,r,h){let{hasZ:o,hasM:a}=this.featureSet;o??=!1,a??=!1,this._i=this._iVertex=this._iPart=0;const _=i.fromJSON(e);this._isPolygon="polygon"===_;const n=Number(!this._isPolygon),f=s.length;let m=0,u=0,
|
|
2
|
+
import{allocateFlatGeometry as t,writeBezierCurveSegment as e,writeCircularArcSegment as s,writeEllipticArc7Segment as r}from"../../../geometry/FlatGeometry.js";import{featureGeometryTypeKebabDictionary as i}from"../../../geometry/support/typeUtils.js";import{zScale as h}from"../../../geometry/support/zscale.js";import{FlatFeature as o}from"../../../layers/graphics/FlatFeature.js";import{FlatFeatureSet as a}from"../../../layers/graphics/FlatFeatureSet.js";import _ from"../../../layers/graphics/OptimizedGeometry.js";import{createFeatureId as n}from"../../../layers/graphics/data/createFeatureId.js";import{makeAttributesClass as f,makeVertexTransformer as m}from"./pbfFeatureSetUtils.js";class u{constructor(t){this._options=t,this.featureSet=new a,this.parseOnly=null,this._idInfo=null,this._transformInPlace=null,this._transformInPlaceXY=null,this._push=u._pushXY,this._attributesClass=null,this._previousX=0,this._previousY=0,this._vertex=[],this._i=0,this._geometry=null,this._iVertex=0,this._iPart=0,this._isPolygon=!1,this._ringEndsAt=-1}queryGeometryType(){return this.featureSet.queryGeometryType}queryGeometry(){return this.featureSet.queryGeometry}idField(t){"string"==typeof t?this._idInfo??={type:"object-id",fieldName:t}:this._idInfo={type:"unique-id-simple",fieldName:t.name}}finish(){if(this._idInfo)for(const s of this.featureSet.features)s.objectId=n(s,this._idInfo);const{spatialReference:t,features:e}=this.featureSet;if(t)for(const{geometry:s}of e)s&&(s.spatialReference=t);this.featureSet.transform=null}feature(){this._attributesClass??=f(this.featureSet.fields?.map(t=>t.name)??[]),this.featureSet.features.push(new o(null,new this._attributesClass,null,0)),this._setVertexTransformer()}centroid(t){const{hasZ:e,hasM:s}=this.featureSet;this.featureSet.features.at(-1).centroid=new _([],t,e,s)}geometry(e,s,r){this._previousX=this._previousY=0,this._i=this._iVertex=this._iPart=0;let{hasZ:h,hasM:o}=this.featureSet;h??=!1,o??=!1,this._vertex=[0,0],h&&this._vertex.push(0),o&&this._vertex.push(0);const a=i.fromJSON(s);this._isPolygon="polygon"===a;const _=Number(this._isPolygon),n="point"===a?1:r.reduce((t,e)=>t+e-_,0),f="point"===a?0:r.length;if(this._geometry=t(a,n,f,h,o,!1),this._push=h?o?u._pushXYZM:u._pushXYZ:o?u._pushXYM:u._pushXY,this._geometry.isMultipart()){this._geometry.partOffsets[0]=0;for(let t=0;t<f;++t)this._geometry.partOffsets[t+1]=this._geometry.partOffsets[t]+r[t]-_}this._ringEndsAt=_?this._geometry.partOffsets.at(1)??0:-1,1===e?(this.featureSet.queryGeometry=this._geometry,this.featureSet.queryGeometryType=s):this.featureSet.features.at(-1).geometry=this._geometry}coord(t){const e=this._vertex;e[this._i++]=t,this._i<e.length||(this._i=0,e[0]+=this._previousX,e[1]+=this._previousY,[this._previousX,this._previousY]=e,this._iVertex===this._ringEndsAt&&(++this._iPart,this._ringEndsAt=this._geometry.partOffsets[this._iPart+1],this._previousX=this._previousY=0,this._isPolygon)||(this._transformInPlace?.(e),this._push(this)))}curvedGeometry(e,s,r,h){let{hasZ:o,hasM:a}=this.featureSet;o??=!1,a??=!1,this._i=this._iVertex=this._iPart=0;const _=i.fromJSON(e);this._isPolygon="polygon"===_;const n=Number(!this._isPolygon),f=s.length;let m=0,u=0,p=n*f;for(let t=0;t<r.length;++t)switch(p+=h[t],r[t]){case 1:case 3:m+=h[t];continue;case 2:u+=h[t]}this._geometry=t(_,p,f,o,a,!0,m,u);const{partOffsets:l}=this._geometry;l[0]=0;for(let t=0,i=0;t<f;++t){l[t+1]=l[t]+n;for(let e=0;e<s[t];++e)l[t+1]+=h[i++]}switch(e){case"esriGeometryPoint":case"esriGeometryMultipoint":throw new Error(`Curved ${e} does not make sense`)}this.featureSet.features.at(-1).geometry=this._geometry}startCurvedPart(t){}finishCurvedPart(t){this._isPolygon||(this._transform(t,this._vertex),this._push(this)),++this._iPart}lineSegment(t,e){this._transform(t,this._vertex),this._push(this)}bezierSegment(t,s,r,i){this._transform(t,this._vertex),this._push(this),this._transformXY(s,y.b[0]),this._transformXY(r,y.b[1]),this._transformXY(i,y.b[2]),this._i=e(this._vertex,y,this._geometry,this._iVertex-1,this._i)}circularArcSegment(t,e,r){this._transform(t,this._vertex),this._push(this),this._transformXY(e,p.c[0]),this._transformXY(r,p.c[1]),this._i=s(this._vertex,p,this._geometry,this._iVertex-1,this._i)}ellipticArcSegment(t,e,s,i,h,o,a,_){this._transform(t,this._vertex),this._push(this),this._transformXY(e,l.a[0]),this._transformXY(s,l.a[1]),l.a[2]=i,l.a[3]=h,l.a[4]=o,l.a[5]=a,l.a[6]=_,this._i=r(this._vertex,l,this._geometry,this._iVertex-1,this._i)}static _pushXY(t){const e=t._iVertex++,{vertexXY:s}=t._geometry;[s[2*e],s[2*e+1]]=t._vertex}static _pushXYZ(t){const e=t._iVertex++,{vertexXY:s,vertexZ:r}=t._geometry;[s[2*e],s[2*e+1],r[e]]=t._vertex}static _pushXYM(t){const e=t._iVertex++,{vertexXY:s,vertexM:r}=t._geometry;[s[2*e],s[2*e+1],r[e]]=t._vertex}static _pushXYZM(t){const e=t._iVertex++,{vertexXY:s,vertexM:r,vertexZ:i}=t._geometry;[s[2*e],s[2*e+1],i[e],r[e]]=t._vertex}_setVertexTransformer(){const{sourceSpatialReference:t}=this._options,{spatialReference:e,hasZ:s,transform:r}=this.featureSet,i=s?h(t,e):1;this._transformInPlace??=m(this.featureSet,i),this._transformInPlaceXY??=m({transform:r})}_transform(t,e){for(let s=0;s<t.length;++s)e[s]=t[s];this._transformInPlace?.(e)}_transformXY(t,e){e[0]=t[0],e[1]=t[1],this._transformInPlaceXY?.(e)}}const p={c:[[0,0],[0,0]]},l={a:[[0,0],[0,0],0,0,0,0,0]},y={b:[[0,0],[0,0],[0,0]]};export{u as FlatFeatureSetParserContext};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{zScale as e}from"../../../geometry/support/zscale.js";import{OptimizedFeature as t}from"../../../layers/graphics/OptimizedFeature.js";import r from"../../../layers/graphics/OptimizedFeatureSet.js";import s from"../../../layers/graphics/OptimizedGeometry.js";import{createFeatureId as i}from"../../../layers/graphics/data/createFeatureId.js";class o{constructor(e){this._options=e,this.featureSet=new r,this.parseOnly=null,this._idInfo=null,this._coords=null}queryGeometryType(){return this.featureSet.queryGeometryType}queryGeometry(){return this.featureSet.queryGeometry}idField(e){"string"==typeof e?this._idInfo??={type:"object-id",fieldName:e}:this._idInfo={type:"unique-id-simple",fieldName:e.name}}finish(){if(this._idInfo)for(const e of this.featureSet.features)e.objectId=i(e,this._idInfo);const{hasZ:t,hasM:r,spatialReference:s}=this.featureSet,{sourceSpatialReference:o}=this._options,a=t?e(o,s):1;if(1!==a){const e=2+Number(t)+Number(r);for(let t=2;t<this._coords.length;t+=e)this._coords[t]*=a}}feature(){this.featureSet.features.push(new t(null,{},null,0))}centroid(e){const{hasZ:t,hasM:r}=this.featureSet;this.featureSet.features.at(-1).centroid=new s([],e,t,r)}geometry(e,t,r){this._coords=[];const{hasZ:i,hasM:o}=this.featureSet
|
|
2
|
+
import{zScale as e}from"../../../geometry/support/zscale.js";import{OptimizedFeature as t}from"../../../layers/graphics/OptimizedFeature.js";import r from"../../../layers/graphics/OptimizedFeatureSet.js";import s from"../../../layers/graphics/OptimizedGeometry.js";import{createFeatureId as i}from"../../../layers/graphics/data/createFeatureId.js";class o{constructor(e){this._options=e,this.featureSet=new r,this.parseOnly=null,this._idInfo=null,this._coords=null}queryGeometryType(){return this.featureSet.queryGeometryType}queryGeometry(){return this.featureSet.queryGeometry}idField(e){"string"==typeof e?this._idInfo??={type:"object-id",fieldName:e}:this._idInfo={type:"unique-id-simple",fieldName:e.name}}finish(){if(this._idInfo)for(const e of this.featureSet.features)e.objectId=i(e,this._idInfo);const{hasZ:t,hasM:r,spatialReference:s}=this.featureSet,{sourceSpatialReference:o}=this._options,a=t?e(o,s):1;if(1!==a){const e=2+Number(t)+Number(r);for(let t=2;t<this._coords.length;t+=e)this._coords[t]*=a}}feature(){this.featureSet.features.push(new t(null,{},null,0))}centroid(e){const{hasZ:t,hasM:r}=this.featureSet;this.featureSet.features.at(-1).centroid=new s([],e,t,r)}geometry(e,t,r){this._coords=[];const{hasZ:i,hasM:o}=this.featureSet;"esriGeometryPoint"===t&&(r=[]);const a=new s(r,this._coords,i,o);if(1===e?(this.featureSet.queryGeometry=a,this.featureSet.queryGeometryType=t):this.featureSet.features.at(-1).geometry=a,"esriGeometryPoint"!==t)return 0}coord(e){this._coords?.push(e)}}export{o as OptimizedFeatureSetParserContext};
|
package/support/revision.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
const
|
|
2
|
+
const a="20260318",b="c521ba44d274f2808cd0f9680a053a6a59aba7b2";export{a as buildDate,b as commitHash};
|
package/third-party-notices.txt
CHANGED
|
@@ -1091,7 +1091,7 @@ IN THE SOFTWARE.
|
|
|
1091
1091
|
|
|
1092
1092
|
--------------------------------------------------------------------------------
|
|
1093
1093
|
|
|
1094
|
-
esri/layers/rasterFormats/Jpg.
|
|
1094
|
+
esri/layers/rasterFormats/Jpg.mjs
|
|
1095
1095
|
|
|
1096
1096
|
Extracted from pdf.js project.
|
|
1097
1097
|
pdf.js: A general-purpose, web standards-based platform for parsing and rendering PDFs.
|
|
@@ -1254,7 +1254,7 @@ You may obtain a copy of the License at
|
|
|
1254
1254
|
|
|
1255
1255
|
-------------------------------------------------------------------------------
|
|
1256
1256
|
|
|
1257
|
-
esri/layers/rasterFormats/Zlib.
|
|
1257
|
+
esri/layers/rasterFormats/Zlib.mjs
|
|
1258
1258
|
|
|
1259
1259
|
Extracted from png.js project
|
|
1260
1260
|
png.js: A (animated) PNG decoder in JavaScript for the HTML5 canvas element and Node.js.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{EventEmitter as e}from"../../../core/Evented.js";import{on as t}from"../../../core/events.js";import{handlesGroup as a}from"../../../core/handleUtils.js";import has from"../../../core/has.js";import{deg2rad as s}from"../../../core/mathUtils.js";import{identity as r,scale as n,rotate as i,translate as o}from"../../../core/libs/gl-matrix-2/math/mat2d.js";import{create as h}from"../../../core/libs/gl-matrix-2/factories/mat2df64.js";class c{constructor(s,r={}){this.events=new e,this._hasMajorPerformanceCaveat=!1,this._lastRenderFrameCounter=0,null!=s?(this._canvas=document.createElement("canvas"),this._canvas.setAttribute("style","width: 100%; height:100%; display:block; willChange:transform"),s.contains(this._canvas)||s.appendChild(this._canvas)):null!=r.canvas&&(this._canvas=r.canvas);const n={failIfMajorPerformanceCaveat:!0,alpha:!0,antialias:!1,depth:!0,stencil:!0,powerPreference:"high-performance"};let i=this._canvas.getContext("webgl2",n);i||(i=this._canvas.getContext("webgl2",{...n,failIfMajorPerformanceCaveat:!1}),this._hasMajorPerformanceCaveat=!0),this._gl=i,this._handles=a([t(this._canvas,"webglcontextlost",e=>this.events.emit("webgl-context-lost",e))])}destroy(){this._canvas.remove(),this._canvas=null,this._handles.remove(),this._gl=null}get gl(){return this._gl}get canvas(){return this._canvas}render(e,t){if(this._hasMajorPerformanceCaveat||has("esri-force-performance-mode")){if(++this._lastRenderFrameCounter>=has("esri-performance-mode-frames-between-render")&&(t(),this._lastRenderViewState=e.state.clone(),this._lastRenderFrameCounter=0),this._lastRenderViewState){const[t,a,s,r,n,i]=this._computeViewTransform(this._lastRenderViewState,e.state);this._canvas.style.transform=`matrix(${t}, ${a}, ${s}, ${r}, ${n}, ${i})`}}else t()}resize(e){const t=this._canvas,a=t.style,{state:{size:s},pixelRatio:r}=e,n=s[0],i=s[1],o=Math.round(n*r),h=Math.round(i*r);t.width===o&&t.height===h||(t.width=o,t.height=h),a.width=n+"px",a.height=i+"px"}_computeViewTransform(e,t){const[a,c]=e.center,[l,m]=t.center,[f
|
|
2
|
+
import{EventEmitter as e}from"../../../core/Evented.js";import{on as t}from"../../../core/events.js";import{handlesGroup as a}from"../../../core/handleUtils.js";import has from"../../../core/has.js";import{deg2rad as s}from"../../../core/mathUtils.js";import{identity as r,scale as n,rotate as i,translate as o}from"../../../core/libs/gl-matrix-2/math/mat2d.js";import{create as h}from"../../../core/libs/gl-matrix-2/factories/mat2df64.js";class c{constructor(s,r={}){this.events=new e,this._hasMajorPerformanceCaveat=!1,this._lastRenderFrameCounter=0,null!=s?(this._canvas=document.createElement("canvas"),this._canvas.setAttribute("style","width: 100%; height:100%; display:block; willChange:transform"),s.contains(this._canvas)||s.appendChild(this._canvas)):null!=r.canvas&&(this._canvas=r.canvas);const n={failIfMajorPerformanceCaveat:!0,alpha:!0,antialias:!1,depth:!0,stencil:!0,powerPreference:"high-performance"};let i=this._canvas.getContext("webgl2",n);i||(i=this._canvas.getContext("webgl2",{...n,failIfMajorPerformanceCaveat:!1}),this._hasMajorPerformanceCaveat=!0,has.add("mapview-transitions-duration",0,!0,!0)),this._gl=i,this._handles=a([t(this._canvas,"webglcontextlost",e=>this.events.emit("webgl-context-lost",e))])}destroy(){this._canvas.remove(),this._canvas=null,this._handles.remove(),this._gl=null}get gl(){return this._gl}get canvas(){return this._canvas}render(e,t){if(this._hasMajorPerformanceCaveat||has("esri-force-performance-mode")){if(++this._lastRenderFrameCounter>=has("esri-performance-mode-frames-between-render")&&(t(),this._lastRenderViewState=e.state.clone(),this._lastRenderFrameCounter=0),this._lastRenderViewState){const[t,a,s,r,n,i]=this._computeViewTransform(this._lastRenderViewState,e.state);this._canvas.style.transform=`matrix(${t}, ${a}, ${s}, ${r}, ${n}, ${i})`}}else t()}resize(e){const t=this._canvas,a=t.style,{state:{size:s},pixelRatio:r}=e,n=s[0],i=s[1],o=Math.round(n*r),h=Math.round(i*r);t.width===o&&t.height===h||(t.width=o,t.height=h),a.width=n+"px",a.height=i+"px"}_computeViewTransform(e,t){const[a,c]=e.center,[l,m]=t.center,[d,f]=e.toScreen([0,0],l,m),[v,_]=e.toScreen([0,0],a,c),p=v-d,g=_-f,u=e.scale/t.scale,w=t.rotation-e.rotation,j=h();return r(j),n(j,j,[u,u]),i(j,j,s(w)),o(j,j,[p,g]),j}}export{c as ManagedCanvas};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import"../../../../core/has.js";import{rasterizeDash as t}from"../../../../symbols/cim/rasterizingUtils.js";import{log2 as e}from"./GeometryUtils.js";import i from"
|
|
2
|
+
import"../../../../core/has.js";import{rasterizeDash as t}from"../../../../symbols/cim/rasterizingUtils.js";import{log2 as e}from"./GeometryUtils.js";import i from"../webgl/Rect.js";import s from"../webgl/RectangleBinPack.js";import a from"../../../webgl/Texture.js";import{TextureDescriptor as h}from"../../../webgl/TextureDescriptor.js";const r="dasharray-";class o{constructor(t,e,i=0){this._mosaicPages=[],this._currentPage=0,this._maxItemSize=0,this._pageWidth=0,this._pageHeight=0,this._mosaicRects={},this.pixelRatio=1,e<=0&&console.error("Sprites mosaic defaultWidth and defaultHeight must be greater than zero!"),this._pageWidth=t,this._pageHeight=e,i>0&&(this._maxItemSize=i),this._binPack=new s(t-4,e-4),this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(this._pageWidth*this._pageHeight)},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:void 0})}destroy(){this.dispose()}dispose(){if(this._binPack=null,null!==this._mosaicPages){for(const t of this._mosaicPages){const e=t.texture;e&&e.dispose()}this._mosaicPages=null}}getWidth(t){return t<0||t>=this._mosaicPages.length?-1:this._mosaicPages[t].size[0]}getHeight(t){return t<0||t>=this._mosaicPages.length?-1:this._mosaicPages[t].size[1]}getPageSize(t){return t<0||t>=this._mosaicPages.length?null:this._mosaicPages[t].size}getTexture(t){return t<0||t>=this._mosaicPages.length?null:this._mosaicPages[t].texture||null}setSpriteSource(t){for(const e of this._mosaicPages)e.texture&&(e.texture.dispose(),e.texture=null),e.dirty=!0;if(0===this._mosaicPages.length){this._binPack=new s(this._pageWidth-4,this._pageHeight-4);const t=Math.floor(this._pageWidth)*Math.floor(this._pageHeight),e=new Uint32Array(t);for(let i=0;i<t;i++)e[i]=0;this._mosaicPages.push({mosaicsData:{type:"static",data:e},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:null})}this._sprites=t}getSpriteItem(t,e=!1){let i,s,a=this._mosaicRects[t];if(a)return a;if(!this._sprites||"loaded"!==this._sprites.loadStatus)return null;if(t&&t.startsWith(r)?([i,s]=this._rasterizeDash(t),e=!0):i=this._sprites.getSpriteInfo(t),!i?.width||!i.height||i.width<0||i.height<0)return null;const h=i.width,o=i.height,[n,g,c]=this._allocateImage(h,o);return n.width<=0?null:(this._copy(n,i,g,c,e,s),a={type:"sprite",rect:n,width:h,height:o,sdf:i.sdf,simplePattern:!1,rasterizationScale:i.pixelRatio??1,samplingMode:"Linear",page:g},this._mosaicRects[t]=a,a)}getSpriteItems(t){const e={};for(const i of t)e[i.name]=this.getSpriteItem(i.name,i.repeat);return e}getMosaicItemPosition(t,e){const i=this.getSpriteItem(t,e),s=i?.rect;if(!s)return null;s.width=i.width,s.height=i.height;const a=i.width,h=i.height,r=2;return{tl:[s.x+r,s.y+r],br:[s.x+r+a,s.y+r+h],page:i.page}}bind(t,e,i=0,s=0){if(i>=this._mosaicPages.length||i>=this._mosaicPages.length)return;const r=this._mosaicPages[i];let o=r.texture;if(!o){const e=new h(r.size[0],r.size[1]);e.wrapMode=33071,o=new a(t,e),r.texture=o}if(o.setSamplingMode(e),t.bindTexture(o,s),r.dirty){const t=r.mosaicsData.data;o.setData(new Uint8Array(t.buffer))}r.dirty=!1}static _copyBits(t,e,i,s,a,h,r,o,n,g,c){let l=s*e+i,_=o*h+r;if(c){_-=h;for(let r=-1;r<=g;r++,l=((r+g)%g+s)*e+i,_+=h)for(let e=-1;e<=n;e++)a[_+e]=t[l+(e+n)%n]}else for(let m=0;m<g;m++){for(let e=0;e<n;e++)a[_+e]=t[l+e];l+=e,_+=h}}_copy(t,e,i,s,a,h){if(!this._sprites||"loaded"!==this._sprites.loadStatus||i>=this._mosaicPages.length)return;const r=this._mosaicPages[i],n=r.mosaicsData.data,g=new Uint32Array(h?h.buffer:this._sprites.image.buffer),c=2,l=h?e.width:this._sprites.width;o._copyBits(g,l,e.x,e.y,n,s[0],t.x+c,t.y+c,e.width,e.height,a),r.dirty=!0}_allocateImage(t,a){t+=2,a+=2;const h=Math.max(t,a);if(this._maxItemSize&&this._maxItemSize<h){const s=2**Math.ceil(e(t)),h=2**Math.ceil(e(a)),r=new i(0,0,t,a);return this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(s*h)},size:[s,h],dirty:!0,texture:null}),[r,this._mosaicPages.length-1,[s,h]]}let r=t%4?4-t%4:4,o=a%4?4-a%4:4;1===r&&(r=5),1===o&&(o=5);const n=this._binPack.allocate(t+r,a+o);if(n.width<=0){const e=this._mosaicPages[this._currentPage];return e.dirty||(e.mosaicsData.data=null),this._currentPage=this._mosaicPages.length,this._mosaicPages.push({mosaicsData:{type:"static",data:new Uint32Array(this._pageWidth*this._pageHeight)},size:[this._pageWidth,this._pageHeight],dirty:!0,texture:null}),this._binPack=new s(this._pageWidth-4,this._pageHeight-4),this._allocateImage(t,a)}return[n,this._currentPage,[this._pageWidth,this._pageHeight]]}_rasterizeDash(e){const i=/\[(.*?)\]/,s=e.match(i);if(!s)return null;const a=s[1].split(",").map(Number),h=e.slice(e.lastIndexOf("-")+1),[r,o,n]=t(a,h);return[{x:0,y:0,width:o,height:n,sdf:!0,pixelRatio:1},new Uint8Array(r.buffer)]}}export{o as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{abortMaybe as t}from"../../../../core/maybe.js";import{throwIfNotAbortError as e,throwIfAbortError as s,isAbortError as r,eachAlways as i}from"../../../../core/promiseUtils.js";import{addQueryParameters as o}from"../../../../core/urlUtils.js";import{open as n}from"../../../../core/workers.js";import a from"./
|
|
2
|
+
import has from"../../../../core/has.js";import{abortMaybe as t}from"../../../../core/maybe.js";import{throwIfNotAbortError as e,throwIfAbortError as s,isAbortError as r,eachAlways as i}from"../../../../core/promiseUtils.js";import{addQueryParameters as o}from"../../../../core/urlUtils.js";import{open as n}from"../../../../core/workers.js";import a from"./SpriteMosaic.js";import l from"../webgl/GlyphMosaic.js";import c from"../webgl/GlyphSource.js";import h from"../../tiling/TileKey.js";class u{constructor(t,e,s,r){this._layer=t,this._styleRepository=e,this.devicePixelRatio=s,this._sourceDataMaxLOD=r,this._spriteMosaic=null,this._glyphMosaic=null,this._connection=null,this._spriteSourceAbortController=null,this._startOptionsInputSignal=null,this._inputSignalEventListener=null}destroy(){this._connection?.close(),this._connection=null,this._styleRepository=null,this._layer=null,this._spriteMosaic?.destroy(),this._spriteMosaic=null,this._glyphMosaic=null,this._spriteSourceAbortController=t(this._spriteSourceAbortController),this._spriteSourcePromise=null,this._inputSignalEventListener&&this._startOptionsInputSignal?.removeEventListener("abort",this._inputSignalEventListener),this._startOptionsInputSignal=null,this._inputSignalEventListener=null}get spriteMosaic(){return this._spriteSourcePromise.then(()=>this._spriteMosaic)}get glyphMosaic(){return this._glyphMosaic}async start(t){this._requestSprite(t);const s=this._layer.currentStyleInfo.glyphsUrl,r=new c(s?o(s,{...this._layer.customParameters,token:this._layer.apiKey}):"");this._glyphMosaic=new l(1024,1024,r,!0),this._broadcastPromise=n("WorkerTileHandler",{client:this,schedule:t.schedule,signal:t.signal}).then(s=>{if(this._layer&&(this._connection?.close(),this._connection=s,this._layer&&!this._connection.closed)){const r=s.broadcast("setStyle",{style:this._layer.currentStyleInfo.style,sourceDataMaxLOD:this._sourceDataMaxLOD},t);Promise.all(r).catch(t=>e(t))}})}_requestSprite(t){this._spriteSourceAbortController?.abort();const e=new AbortController;this._spriteSourceAbortController=e;const r=t?.signal;this._inputSignalEventListener&&this._startOptionsInputSignal?.removeEventListener("abort",this._inputSignalEventListener),this._startOptionsInputSignal=null,r&&(this._inputSignalEventListener=p(e),r.addEventListener("abort",this._inputSignalEventListener,{once:!0}));const{signal:i}=e,o={...t,signal:i};this._spriteSourcePromise=this._layer.loadSpriteSource(this.devicePixelRatio,o),this._spriteSourcePromise.then(t=>{s(i),this._spriteMosaic=new a(1024,1024,250),this._spriteMosaic.setSpriteSource(t)})}async updateStyle(t){const e=[];for(const s of t)4===s.type?e.push({type:4,data:{spriteSource:null}}):e.push(s);return await this._broadcastPromise,this._broadcastPromise=Promise.all(this._connection.broadcast("updateStyle",e)),this._broadcastPromise}setSpriteSource(t){const e=new a(1024,1024,250);return e.setSpriteSource(t),this._spriteMosaic=e,this._spriteSourcePromise=Promise.resolve(t),this._spriteSourceAbortController=null,e}async setStyle(t,e,s){await this._broadcastPromise,this._styleRepository=t,this._sourceDataMaxLOD=s,this._requestSprite();const r=this._layer.currentStyleInfo.glyphsUrl,i=new c(r?o(r,{...this._layer.customParameters,token:this._layer.apiKey}):"");return this._glyphMosaic=new l(1024,1024,i,!0),this._broadcastPromise=Promise.all(this._connection.broadcast("setStyle",{style:e,sourceDataMaxLOD:this._sourceDataMaxLOD})),this._broadcastPromise}async fetchTileData(t,e){const s=await this._getRefKeys(t,e);return this._getSourcesData(Object.keys(this._layer.sourceNameToSource),s,e)}async fetchTilePBFs(t){const e=Object.keys(this._layer.sourceNameToSource),s={},r=await this._getRefKeys(t,s),i=[],o=[];for(let n=0;n<r.length;n++)if(null==r[n].value||null==e[n])o.push(null);else{const t=r[n].value,a=this._getTilePayload(t,e[n],s);a.then(e=>{i.push({...e,key:t})}),o.push(a)}return Promise.all(o).then(()=>i)}async parseTileData(t,e){const s=t&&t.data;if(!s)return null;const{sourceName2DataAndRefKey:r,transferList:i}=s;return 0===Object.keys(r).length?null:this._broadcastPromise.then(()=>this._connection.invoke("createTileAndParse",{key:t.key.id,sourceName2DataAndRefKey:r,styleLayerUIDs:t.styleLayerUIDs},{...e,transferList:i}))}async getSprites(t){return await this._spriteSourcePromise,this._spriteMosaic.getSpriteItems(t)}async getGlyphs(t){return has("esri-2d-stabilize-glyphs")&&await this._glyphMosaic.preloadASCIIGlyphCache(t.font),this._glyphMosaic.getGlyphItemsVTL(t.font,t.codePoints)}async _getTilePayload(t,e,s){const i=h.pool.acquire(t.id),o=this._layer.sourceNameToSource[e],{level:n,row:a,col:l}=i;h.pool.release(i);try{return{protobuff:await o.requestTile(n,a,l,s),sourceName:e}}catch(c){if(r(c))throw c;return{protobuff:null,sourceName:e}}}async _getRefKeys(t,e){const s=this._layer.sourceNameToSource,r=new Array;for(const i in s){const o=s[i].getRefKey(t,e);r.push(o)}return i(r)}_getSourcesData(t,e,s){const r=[];for(let i=0;i<e.length;i++)if(null==e[i].value||null==t[i])r.push(null);else{const o=e[i].value,n=this._getTilePayload(o,t[i],s);r.push(n)}return i(r).then(t=>{const s={},r=[];for(let i=0;i<t.length;i++){const o=t[i].value;if(o&&(o.protobuff&&o.protobuff.byteLength>0)){const t=e[i].value.id;s[o.sourceName]={refKey:t,protobuff:o.protobuff},r.push(o.protobuff)}}return{sourceName2DataAndRefKey:s,transferList:r}})}}function p(t){return()=>t.abort()}export{u as TileHandler};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import{RenderingDevice as e}from"../webgl/RenderingDevice.js";import{simplePipelineState as t}from"../webgl/shaderGraph/utils.js";import{VTLTechniquesRepo as i}from"../webgl/shaderGraph/techniques/vectorTiles/VTLTechniques.js";const s=1e-6;class n{constructor(s,n){this.spriteMosaic=s,this.glyphMosaic=n,this._vtlTechniques=new i,this._context=null,this._vtlTechniques.startup(),this._renderingDevice=new e,this._pipelineState=t}dispose(){this._vtlTechniques&&this._vtlTechniques.shutdown(this._context),this.spriteMosaic.dispose(),this.glyphMosaic.dispose(),this._renderingDevice.dispose(),this._context=null}drawSymbols(e,t,i){const n=i.layers;e.renderPass="translucent";const a=this._vtlTechniques.getTechnique(3);r[0]=t;for(let l=0;l<n.length;l++){const t=n[l];if(3!==t.type)continue;const i=t.getLayoutProperty("visibility");if(i&&1===i.getValue())continue;const o=e.displayLevel;void 0!==t.minzoom&&t.minzoom>o+s||void 0!==t.maxzoom&&t.maxzoom<=o-s||(e.styleLayerUID=t.uid,e.styleLayer=t,a.render(e,{tiles:r}))}r[0]=null}drawBackground(e,t,i){if(0===i.backgroundBucketIds.length)return;const{displayLevel:n,requiredLevel:a}=e;t.key.level=a,this._renderingDevice.setPipelineState({...this._pipelineState,color:{write:[!0,!0,!0,!0],blendMode:"composite"},stencil:!1,depth:!1}),e.renderPass="background";const l=this._vtlTechniques.getTechnique(0);r[0]=t,i.backgroundBucketIds.forEach(t=>{const a=i.getLayerById(t);if(0!==a.type)return;const o=a.getLayoutProperty("visibility");o&&1===o.getValue()||void 0!==a.minzoom&&a.minzoom>n+s||void 0!==a.maxzoom&&a.maxzoom<=n-s||(e.styleLayerUID=a.uid,e.styleLayer=a,l.render(e,{tiles:r}))}),r[0]=null}drawTile(e,i,s,n){const r=s.layers,{context:a}=e,l=a.getPipelineState(),{depthWrite:o}=l;let c=0,h=1;
|
|
2
|
+
import{RenderingDevice as e}from"../webgl/RenderingDevice.js";import{simplePipelineState as t}from"../webgl/shaderGraph/utils.js";import{VTLTechniquesRepo as i}from"../webgl/shaderGraph/techniques/vectorTiles/VTLTechniques.js";const s=1e-6;class n{constructor(s,n){this.spriteMosaic=s,this.glyphMosaic=n,this._vtlTechniques=new i,this._context=null,this._vtlTechniques.startup(),this._renderingDevice=new e,this._pipelineState=t}dispose(){this._vtlTechniques&&this._vtlTechniques.shutdown(this._context),this.spriteMosaic.dispose(),this.glyphMosaic.dispose(),this._renderingDevice.dispose(),this._context=null}drawSymbols(e,t,i){const n=i.layers;e.renderPass="translucent";const a=this._vtlTechniques.getTechnique(3);r[0]=t;for(let l=0;l<n.length;l++){const t=n[l];if(3!==t.type)continue;const i=t.getLayoutProperty("visibility");if(i&&1===i.getValue())continue;const o=e.displayLevel;void 0!==t.minzoom&&t.minzoom>o+s||void 0!==t.maxzoom&&t.maxzoom<=o-s||(e.styleLayerUID=t.uid,e.styleLayer=t,a.render(e,{tiles:r}))}r[0]=null}drawBackground(e,t,i){if(0===i.backgroundBucketIds.length)return;const{displayLevel:n,requiredLevel:a}=e;t.key.level=a,this._renderingDevice.setPipelineState({...this._pipelineState,color:{write:[!0,!0,!0,!0],blendMode:"composite"},stencil:!1,depth:!1}),e.renderPass="background";const l=this._vtlTechniques.getTechnique(0);r[0]=t,i.backgroundBucketIds.forEach(t=>{const a=i.getLayerById(t);if(0!==a.type)return;const o=a.getLayoutProperty("visibility");o&&1===o.getValue()||void 0!==a.minzoom&&a.minzoom>n+s||void 0!==a.maxzoom&&a.maxzoom<=n-s||(e.styleLayerUID=a.uid,e.styleLayer=a,l.render(e,{tiles:r}))}),r[0]=null}drawTile(e,i,s,n){const r=s.layers,{context:a}=e,l=a.getPipelineState(),{depthWrite:o}=l;let c=0,h=1;void 0!==o?.zNear&&void 0!==o.zFar&&(c=o.zNear,h=o.zFar),this._pipelineState={...t,color:{write:[!0,!0,!0,!0],blendMode:"none"},depth:{write:{zNear:c,zFar:h},test:515}},this._renderingDevice.setPipelineState(this._pipelineState);const u=r.filter(e=>{if(null!=n&&n!==e.type||!i.layerData.has(e.uid))return!1;const t=e.getLayoutProperty("visibility");return 1!==t?.getValue()});e.renderPass="opaque";for(let t=u.length-1;t>=0;--t)this._renderStyleLayer(u[t],e,i);this._pipelineState={...t,color:{write:[!0,!0,!0,!0],blendMode:"composite"},depth:{write:!1,test:515}},this._renderingDevice.setPipelineState(this._pipelineState),e.renderPass="translucent",u.forEach(t=>this._renderStyleLayer(t,e,i)),this._renderingDevice.setPipelineState({...this._pipelineState,depth:!1}),this._context||(this._context=e.context)}setShader(e){return this._renderingDevice.setShader(e)}setPipelineState(e){return this._renderingDevice.setPipelineState(e)}getPipelineState(){return this._renderingDevice.getPipelineState()}submitDraw(e,t,i){return this._renderingDevice.submitDraw(e,t,i)}submitDrawMesh(e,t,i,s){this._renderingDevice.submitDrawMesh(e,t,i,s)}submitDrawMeshUntyped(e,t,i,s){this._renderingDevice.submitDrawMeshUntyped(e,t,i,s)}updatePipelineState(e){return this._renderingDevice.updatePipelineState(e)}setStencilRef(e,t){return this._renderingDevice.setStencilRef(e,t)}_renderStyleLayer(e,t,i){const{renderPass:n}=t;let a;switch(e.type){case 0:if("background"!==n)return;a=this._vtlTechniques.getTechnique(0);break;case 1:if("opaque"!==n&&"translucent"!==t.renderPass)return;a=this._vtlTechniques.getTechnique(1);break;case 2:if("translucent"!==n)return;a=this._vtlTechniques.getTechnique(2);break;case 4:if("translucent"!==n)return;a=this._vtlTechniques.getTechnique(4);break;case 3:if("translucent"!==n)return;a=this._vtlTechniques.getTechnique(3)}const{displayLevel:l}=t,{minzoom:o,maxzoom:c}=e;void 0!==o&&o>l+s||void 0!==c&&c<=l-s||!a||(this._renderingDevice.setPipelineState({...this._pipelineState,stencil:{write:{mask:0},test:!1}}),t.styleLayerUID=e.uid,t.styleLayer=e,r[0]=i,a.render(t,{tiles:r}),r[0]=null)}}const r=[null];export{n as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import t from"../../../../request.js";import{bidiText as e}from"../../../../core/BidiText.js";import has from"../../../../core/has.js";import{throwIfNotAbortError as
|
|
2
|
+
import t from"../../../../request.js";import{bidiText as e}from"../../../../core/BidiText.js";import has from"../../../../core/has.js";import{throwIfNotAbortError as s}from"../../../../core/promiseUtils.js";import{loadTextModule as i}from"../../../../libs/text/loadTextModule.js";import{sdfRadiusComplex as h,sdfBufferGlyphSDFCreator as a,sdfSizeComplex as r,sdfBufferServer as n,sdfRadiusSimple as o,sdfSizeSimple as c}from"./definitions.js";import{GlyphSDFCreator as l}from"./GlyphSDFCreator.js";import p from"./Rect.js";import g from"./RectangleBinPack.js";import{charCodes as d}from"./Utils.js";import _ from"../../../webgl/Texture.js";import{TextureDescriptor as f}from"../../../webgl/TextureDescriptor.js";const u=256,y=.25,m=t=>Math.floor(t/256);function w(t){const e=new Set;for(const s of t)e.add(m(s));return e}function C(t,e,i){return t.has(e)||t.set(e,i().then(()=>{t.delete(e)}).catch(i=>{t.delete(e),s(i)})),t.get(e)}const x=t=>({rect:new p(0,0,0,0),page:0,metrics:{left:0,width:0,height:0,advance:0,top:0},code:t,sdf:!0});class P{constructor(t,e,s,i=!1){this._snapCoords=i,this.width=0,this.height=0,this._dirties=[],this._pageData=[],this._currentPage=0,this._glyphCache={},this._glyphCacheById={},this._textures=[],this._rangePromises=new Map,this._facePromises=new Map,this._preloadCache={},this._glyphSDFCreator=new l({sdfSizePx:r,sdfBufferPx:a,radius:h,cutoff:y}),this._faces=new Map,this.width=t,this.height=e,this._glyphSource=s,this._binPack=new g(t,e),this._pageData.push(new Uint8Array(t*e)),this._dirties.push(!0),this._textures.push(null),this._initDecorationGlyphs()}dispose(){this._binPack=null;for(const t of this._textures)t&&t.dispose();this._textures.length=0,this._pageData.length=0}_initDecorationGlyphs(){const t=[117,149,181,207,207,181,149,117],e=[],s=[];for(let a=0;a<t.length;a++){const i=t[a];for(let t=0;t<11;t++){const h=a>=3&&a<5&&t>=3&&t<8?255:0;e.push(i),s.push(h)}}const i={metrics:{width:5,height:2,left:0,top:0,advance:0},bitmap:new Uint8Array(e)},h={metrics:{width:5,height:2,left:0,top:0,advance:0},bitmap:new Uint8Array(s)};this._recordGlyph(i,n),this._recordGlyph(h,n)}getTexture(t,e){if(!this._textures[e]){const s=new f(this.width,this.height);s.pixelFormat=6406,s.wrapMode=33071,this._textures[e]=new _(t,s,new Uint8Array(this.width*this.height))}return this._dirties[e]&&(this._textures[e].setData(this._pageData[e]),this._dirties[e]=!1),this._textures[e]}async getGlyphItems(t,s,i,l){const p=s?r:c,g=s?h:o,_=s?a:n;let f,u,y=!1;if(s){const s=this._getGlyphCacheById(i),h=await this.getFace(i);if(!h)return null;const a=this._glyphSDFCreator.sdfSizePx,[r,n,o]=e(t,!1);y=n;const c=new Uint32Array(Array.from(r).map((t,e)=>o.levels[o.targetToSource[e]]));f={baseline:h.baseline()/a,midline:h.midline()/a},u=h.shape(r,c,a).map(t=>this._getMosaicItemComplex(s,t,h))}else{const[s,h,a]=e(t);y=h;const r=this._getGlyphCache(i),n=d(s);try{await this._fetchRanges(i,n,l)}catch{return null}u=n.map(t=>this._getMosaicItem(r,i,t))}return{type:"glyphs",isRightToLeft:y,glyphs:u,faceInfo:f,sdfSize:p,sdfRadius:g,sdfPadding:_}}async getGlyphItemsVTL(t,e){const s=this._getGlyphCache(t);await this._fetchRanges(t,e,null);const i=[];for(const h of e)i[h]=this._getMosaicItem(s,t,h);return i}async getFace(e){if(this._faces.has(e))return this._faces.get(e);const s=this._glyphSource.woffURL(e);return await C(this._facePromises,e,async()=>{const h=await t(s,{responseType:"array-buffer"}),a=(await i()).Face.parseWoff2(new Uint8Array(h.data));this._faces.set(e,a)}),this._faces.get(e)}_getMosaicItem(t,e,s){if(!t[s]){const i=this._glyphSource.getGlyph(e,s);if(!i?.metrics)return x(s);const h=this._recordGlyph(i,n),a=this._currentPage,r=i.metrics;t[s]={rect:h,page:a,metrics:r,code:s,sdf:!0},this._invalidate()}return t[s]}_getMosaicItemComplex(t,e,s){if(!t[e.glyphId]){const i=this._glyphSDFCreator.draw(s,e.glyphId),h={width:i?.width??0,height:i?.height??0,left:i?.left??0,top:i?.top??0,advance:e.xAdvance};let r=new p(0,0,0,0);if(i){const t={bitmap:i.buffer,metrics:h};r=this._recordGlyph(t,a)}const n=e.isNewline?10:e.isWhitespace?32:NaN;t[e.glyphId]={rect:r,page:this._currentPage,metrics:h,sdf:!0,code:n}}return t[e.glyphId]}bind(t,e,s,i){const h=this.getTexture(t,s);h.setSamplingMode(e),t.bindTexture(h,i)}preloadASCIIGlyphCache(t){const e=this._preloadCache[t];if(null!=e)return e;const s=this._glyphSource.preloadASCIIRange(t).then(()=>{const e=this._getGlyphCache(t);for(let s=0;s<256;s++)this._getMosaicItem(e,t,s)});return this._preloadCache[t]=s,s}_getGlyphCache(t){return this._glyphCache[t]||(this._glyphCache[t]={}),this._glyphCache[t]}_getGlyphCacheById(t){return this._glyphCacheById[t]||(this._glyphCacheById[t]={}),this._glyphCacheById[t]}_invalidate(){this._dirties[this._currentPage]=!0}async _fetchRanges(t,e,s){const i=w(e),h=[];i.forEach(e=>{h.push(this._fetchRange(t,e,s))}),await Promise.all(h)}async _fetchRange(t,e,s){if(e>u)return;const i=t+e;return C(this._rangePromises,i,()=>this._glyphSource.getRange(t,e,s))}_allocNewPage(){this._dirties[this._currentPage]||(this._pageData[this._currentPage]=null),this._currentPage=this._pageData.length,this._pageData.push(new Uint8Array(this.width*this.height)),this._dirties.push(!0),this._textures.push(null),this._initDecorationGlyphs(),this._binPack=new g(this.width,this.height)}_recordGlyph(t,e){const s=t.metrics;let i;if(0===s.width)i=new p(0,0,0,0);else{const h=s.width+2*e,a=s.height+2*e;let r=h,n=a;if(this._snapCoords){r+=h%4?4-h%4:4,n+=a%4?4-a%4:4}i=this._binPack.allocate(r,n),i.isEmpty&&(this._allocNewPage(),i=this._binPack.allocate(r,n));const o=this._pageData[this._currentPage],c=t.bitmap;for(let t=0;t<a;t++){const e=h*t,s=this.width*(i.y+t)+i.x;for(let t=0;t<h;t++)o[s+t]=c[e+t]}has("esri-glyph-debug")&&this._showDebugPage(o)}return i}_showDebugPage(t){const e=document.createElement("canvas"),s=e.getContext("2d"),i=new ImageData(this.width,this.height),h=i.data;e.width=this.width,e.height=this.height,e.style.border="1px solid black";for(let a=0;a<t.length;++a)h[4*a]=t[a],h[4*a+1]=0,h[4*a+2]=0,h[4*a+3]=255;s.putImageData(i,0,0),document.body.appendChild(e)}}export{P as default};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.1/LICENSE.txt */
|
|
2
|
-
import t from"../../../../config.js";import e from"../../../../request.js";import a from"../../../../core/pbf.js";class s{constructor(t){
|
|
2
|
+
import t from"../../../../config.js";import e from"../../../../request.js";import a from"../../../../core/pbf.js";class s{constructor(t){this._metrics=[],this._bitmaps=[];const e=new Map;let a=0;for(;t.next();)switch(t.tag()){case 1:{const s=t.getMessage();for(;s.next();)switch(s.tag()){case 3:{const t=s.getMessage();let r,n,i,o,c,g,f;for(;t.next();)switch(t.tag()){case 1:r=t.getUInt32();break;case 2:n=t.getBytes();break;case 3:i=t.getUInt32();break;case 4:o=t.getUInt32();break;case 5:c=t.getSInt32();break;case 6:g=t.getSInt32();break;case 7:f=t.getUInt32();break;default:t.skip()}if(t.release(),r&&(this._metrics[r]={width:i,height:o,left:c,top:g,advance:f},n)){const t=n.length;e.set(r,n),this._bitmaps[r]={start:a,length:t},a+=t}break}default:s.skip()}s.release();break}default:t.skip()}this._buffer=new Uint8Array(a);for(const[s,r]of e)this._buffer.set(r,this._bitmaps[s].start)}getMetrics(t){return this._metrics[t]}getBitmap(t){const e=this._bitmaps.at(t);if(void 0!==e&&0!==e.length)return this._buffer.subarray(e.start,e.start+e.length)}}class r{constructor(){this._ranges=[]}getRange(t){return this._ranges[t]}addRange(t,e){this._ranges[t]=e}}class n{constructor(e){this._glyphInfo={},this._baseURL=e,this._woff2URL=`${t.fontsUrl}/woff2/{fontstack}.woff2`}async getRange(t,r,n){const i=this._getFontStack(t);if(i.getRange(r))return;const o=256*r,c=o+255,g=this._baseURL.replace("{fontstack}",t).replace("{range}",o+"-"+c);return e(g,{responseType:"array-buffer",...n}).then(t=>{i.addRange(r,new s(new a(new Uint8Array(t.data),new DataView(t.data))))})}async preloadASCIIRange(t){const r=this._getFontStack(t),n=0,i=255,o=this._baseURL.replace("{fontstack}",t).replace("{range}",n+"-"+i),c=await e(o,{responseType:"array-buffer"}),g=new s(new a(new Uint8Array(c.data),new DataView(c.data)));for(let e=n;e<=i;e++)r.getRange(e)||r.addRange(e,g)}getGlyph(t,e){const a=this._getFontStack(t);if(!a)return;const s=Math.floor(e/256),r=a.getRange(s);return r?{metrics:r.getMetrics(e),bitmap:r.getBitmap(e)}:void 0}woffURL(t){return this._woff2URL.replace("{fontstack}",t)}_getFontStack(t){let e=this._glyphInfo[t];return e||(e=this._glyphInfo[t]=new r),e}}export{n as default};
|