@arcgis/core 5.0.0-next.62 → 5.0.0-next.64
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/Ground.d.ts +2 -1
- package/Ground.js +1 -1
- package/WebDocument2D.js +1 -1
- package/WebLinkChart.js +1 -1
- package/WebMap.d.ts +1 -1
- package/WebMap.js +1 -1
- package/WebScene.d.ts +1 -1
- package/WebScene.js +1 -1
- package/applications/KnowledgeStudio/dataModelVisualization.d.ts +18 -0
- package/applications/KnowledgeStudio/dataModelVisualization.js +5 -0
- package/applications/MapViewer/templateUtils.d.ts +2 -2
- package/applications/Urban/LineImagePattern3D.d.ts +8 -0
- package/applications/Urban/LineImagePattern3D.js +5 -0
- package/applications/Urban/imagePatternUtils.d.ts +23 -0
- package/applications/Urban/imagePatternUtils.js +5 -0
- package/assets/esri/core/libs/libtess/libtess-f32.wasm +0 -0
- package/assets/esri/core/libs/libtess/libtess-f64.wasm +0 -0
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{61707c22b029c2a7a397.js → 049c125085028ffdd0dd.js} +1 -1
- package/assets/esri/core/workers/chunks/{0bd73a66baea2f52e8a6.js → 07639f406b71bb49ffd6.js} +1 -1
- package/assets/esri/core/workers/chunks/{df0e5570174bf0942d7a.js → 0d9e1ccc3ba8b5ed3287.js} +1 -1
- package/assets/esri/core/workers/chunks/{4404b6f931f681cca342.js → 0e5cd0cf6ab7cb37d723.js} +1 -1
- package/assets/esri/core/workers/chunks/{a624dd283d264dce35a8.js → 0f5693541111fcae0c2f.js} +1 -1
- package/assets/esri/core/workers/chunks/{f56906c443ce8ff68a27.js → 13d61d34e55c80e4ecdf.js} +1 -1
- package/assets/esri/core/workers/chunks/{28b235b56a83c498d73f.js → 168ec8fca2702617a543.js} +1 -1
- package/assets/esri/core/workers/chunks/{831b8282380844a7c4d5.js → 1967239713b58dccfd81.js} +1 -1
- package/assets/esri/core/workers/chunks/1b838638e66e82d76cf3.js +1 -0
- package/assets/esri/core/workers/chunks/{2209550b6510e25da375.js → 226acd251ad7d7ee3b57.js} +1 -1
- package/assets/esri/core/workers/chunks/22dd5cecc7e2d4d0baf8.js +316 -0
- package/assets/esri/core/workers/chunks/2402d305a77fef4694a0.js +1 -0
- package/assets/esri/core/workers/chunks/{893a5ab0c2df9262efd8.js → 251eb6e00f99a816d55c.js} +1 -1
- package/assets/esri/core/workers/chunks/{e47535f795b15608a6cb.js → 27f096c434f049b8df01.js} +1 -1
- package/assets/esri/core/workers/chunks/29b09db309ff75fb3e97.js +1 -0
- package/assets/esri/core/workers/chunks/{bef2a70d382515b3c84e.js → 310f3268582e61cd86da.js} +1 -1
- package/assets/esri/core/workers/chunks/{02cf735176f286a48dd2.js → 3371935a4fd6346d3a17.js} +1 -1
- package/assets/esri/core/workers/chunks/{36d15c35fbbd4dedd5cb.js → 3c3d311b88f5400951ef.js} +1 -1
- package/assets/esri/core/workers/chunks/{cf3a9ead26629f3508b3.js → 3c4f8597f602779174f1.js} +1 -1
- package/assets/esri/core/workers/chunks/43d28c6509c21b8917a8.js +1 -0
- package/assets/esri/core/workers/chunks/{951e3c911a3486b1e609.js → 45b898367b6224dda46f.js} +1 -1
- package/assets/esri/core/workers/chunks/{57302b92e9899cce4ba3.js → 4785cd108e2dec6e1697.js} +1 -1
- package/assets/esri/core/workers/chunks/{153ff2ceefccd946498b.js → 47bfe8dd5d2bac4307ac.js} +1 -1
- package/assets/esri/core/workers/chunks/{2abc205f81f26fc4852b.js → 49a1b7f700b8a42de817.js} +4 -4
- package/assets/esri/core/workers/chunks/4d6d962d25aa836f53ee.js +1 -0
- package/assets/esri/core/workers/chunks/{454c15367cccbf63af7a.js → 4e9a8fce55cad841c731.js} +1 -1
- package/assets/esri/core/workers/chunks/{b93f2bd6429879f92143.js → 536c492fdda30f2f1288.js} +1 -1
- package/assets/esri/core/workers/chunks/5cee6c3ff23fb93f857a.js +1 -0
- package/assets/esri/core/workers/chunks/6035daa65fc3ebf86515.js +1 -0
- package/assets/esri/core/workers/chunks/62b28f73f814413c10fc.js +1 -0
- package/assets/esri/core/workers/chunks/{0bc01d71ed1ab8c3af3c.js → 6599cc702a46f81a5634.js} +1 -1
- package/assets/esri/core/workers/chunks/6925f09d44cc38480d53.js +1 -0
- package/assets/esri/core/workers/chunks/{72e3a48aa365542b0689.js → 6a782e8475bff4d56dbc.js} +1 -1
- package/assets/esri/core/workers/chunks/6ba3c2b9f699d94d62b8.js +1 -0
- package/assets/esri/core/workers/chunks/{f44f358db5c56d5bbc0c.js → 7306b5b66e738a281d83.js} +1 -1
- package/assets/esri/core/workers/chunks/{2da13c2269ab90281143.js → 7694abe44d55dae8872d.js} +1 -1
- package/assets/esri/core/workers/chunks/{2b34a010f76e5f289868.js → 7bf491b468cd74a4166c.js} +1 -1
- package/assets/esri/core/workers/chunks/{05ab54b81c366e98138f.js → 7d8664aeff66e34138bd.js} +1 -1
- package/assets/esri/core/workers/chunks/822ef6a043c7e147b4b6.js +1 -0
- package/assets/esri/core/workers/chunks/878010ca23da0bca9405.js +1 -0
- package/assets/esri/core/workers/chunks/892157696e8f9e38c472.js +1 -0
- package/assets/esri/core/workers/chunks/{d2abfcb0c8bf894c7f72.js → 8dca61f8ba6689379f86.js} +1 -1
- package/assets/esri/core/workers/chunks/{bce81df760f5e34c01d7.js → 964de713042f52d71e42.js} +1 -1
- package/assets/esri/core/workers/chunks/990341f7c47bd656c782.js +1 -0
- package/assets/esri/core/workers/chunks/9d6945cda99d14af83ac.js +1 -0
- package/assets/esri/core/workers/chunks/{5180b15f1a865756a02e.js → a3836f6a93924ee4816e.js} +1 -1
- package/assets/esri/core/workers/chunks/{d13b2ce8a89938b0472b.js → a6dcd13c792b6538ac50.js} +1 -1
- package/assets/esri/core/workers/chunks/{522a6787d9e0f520ac79.js → a893f8db2477cf677ac8.js} +1 -1
- package/assets/esri/core/workers/chunks/{983356eb4fd0a0dcf3fd.js → abc236e99b52be1c83b9.js} +1 -1
- package/assets/esri/core/workers/chunks/{b11c0e80e583f2b7c5de.js → ac83c2999a3d2ffb4356.js} +1 -1
- package/assets/esri/core/workers/chunks/{5873c7b65d0fb04998fb.js → acea42d268b53ceb2bfd.js} +1 -1
- package/assets/esri/core/workers/chunks/{8628bf45a33af786cd49.js → b65fcfde62d49de1fa54.js} +1 -1
- package/assets/esri/core/workers/chunks/ba7f57788847cc0f68df.js +1 -0
- package/assets/esri/core/workers/chunks/{12f700b932a241e59071.js → bcf612eabe7577540953.js} +1 -1
- package/assets/esri/core/workers/chunks/{75e9759290f0f67b2128.js → bf06250be7a7a36306b1.js} +1 -1
- package/assets/esri/core/workers/chunks/c3007b916ba933137709.js +1 -0
- package/assets/esri/core/workers/chunks/c9f868f85d740ee32715.js +1 -0
- package/assets/esri/core/workers/chunks/cc5c1887e6d7079e5fe3.js +1 -0
- package/assets/esri/core/workers/chunks/ce8f075c814a8378c00c.js +1 -0
- package/assets/esri/core/workers/chunks/{f91e63d7842c427c7f72.js → d30cfc5fa302cc08d862.js} +1 -1
- package/assets/esri/core/workers/chunks/d3325ed8d224e2350db7.js +1 -0
- package/assets/esri/core/workers/chunks/{1800994523d7cdfb73af.js → de71db3b0fb947b13c97.js} +1 -1
- package/assets/esri/core/workers/chunks/{ff7df6fb78fa2c0e9247.js → df92239eefff04471a0b.js} +1 -1
- package/assets/esri/core/workers/chunks/e69255e38ff200dda14b.js +1 -0
- package/assets/esri/core/workers/chunks/ee2ca25048a920e43743.js +1 -0
- package/assets/esri/core/workers/chunks/{609919428305d8c8c243.js → f9370830051865a3435b.js} +1 -1
- package/assets/esri/core/workers/chunks/fc00d7278b43df813c54.js +1 -0
- package/assets/esri/themes/base/widgets/_UtilityNetworkAssociations.scss +7 -18
- 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/chunks/RibbonLine.glsl.js +99 -61
- package/chunks/libtess-f32.js +5 -0
- package/chunks/libtess-f64.js +5 -0
- package/config.js +1 -1
- package/core/Version.d.ts +1 -1
- package/core/Version.js +1 -1
- package/core/has.js +1 -1
- package/core/workers/registry.js +1 -1
- package/core/workers/workerFactory.js +1 -1
- package/form/elements/inputs/SwitchInput.d.ts +2 -1
- package/geometry/Mesh.d.ts +2 -1
- package/geometry/Mesh.js +1 -1
- package/geometry/libtess.js +1 -1
- package/geometry/support/MeshVertexAttributes.d.ts +1 -1
- package/geometry/support/MeshVertexAttributes.js +1 -1
- package/geometry/support/meshUtils/convertMeshVertexSpace.js +1 -1
- package/geometry/support/meshUtils/elevation.js +1 -1
- package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
- package/geometry/support/meshUtils/merge.js +1 -1
- package/geometry/support/meshUtils/primitives.js +1 -1
- package/ground/NavigationConstraint.d.ts +1 -1
- package/ground/NavigationConstraint.js +1 -1
- package/interfaces.d.ts +163 -158
- package/kernel.js +1 -1
- package/layers/BaseElevationLayer.d.ts +1 -1
- package/layers/ElevationLayer.d.ts +1 -1
- package/layers/ElevationLayer.js +1 -1
- package/layers/FeatureLayer.d.ts +1 -5
- package/layers/Layer.d.ts +1 -2
- package/layers/ParquetLayer.js +1 -1
- package/layers/SceneLayer.js +1 -1
- package/layers/knowledgeGraph/dataModelVisualizationUtils.d.ts +11 -0
- package/layers/knowledgeGraph/dataModelVisualizationUtils.js +5 -0
- package/layers/mixins/ArcGISMapService.js +1 -1
- package/layers/mixins/BlendLayer.d.ts +1 -1
- package/layers/orientedImagery/core/coverageUtils.js +1 -1
- package/layers/orientedImagery/transformations/updateElevationUtils.js +1 -1
- package/layers/raster/formats/RasterCodec.js +1 -1
- package/layers/raster/functions/ColormapToRGBFunction.js +1 -1
- package/layers/raster/functions/surfaceUtils.js +1 -1
- package/layers/support/CodedValue.d.ts +1 -1
- package/layers/support/CodedValue.js +1 -1
- package/layers/support/CodedValueDomain.d.ts +2 -1
- package/layers/support/CodedValueDomain.js +1 -1
- package/layers/support/ElevationTileData.d.ts +1 -1
- package/layers/support/ElevationTileData.js +1 -1
- package/layers/support/FeatureReduction.d.ts +1 -1
- package/layers/support/FeatureReduction.js +1 -1
- package/layers/support/FeatureReductionBinning.d.ts +1 -1
- package/layers/support/FeatureReductionBinning.js +1 -1
- package/layers/support/FeatureReductionSelection.d.ts +1 -1
- package/layers/support/FeatureReductionSelection.js +1 -1
- package/layers/support/KMLMapImage.d.ts +1 -1
- package/layers/support/KMLMapImage.js +1 -1
- package/layers/support/ParquetGeometryEncodingBase.d.ts +1 -1
- package/layers/support/ParquetGeometryEncodingBase.js +1 -1
- package/layers/support/ParquetGeometryEncodingLocation.d.ts +1 -1
- package/layers/support/ParquetGeometryEncodingLocation.js +1 -1
- package/layers/support/ParquetGeometryEncodingWkb.d.ts +1 -1
- package/layers/support/ParquetGeometryEncodingWkb.js +1 -1
- package/layers/support/PixelBlock.d.ts +1 -1
- package/layers/support/PixelBlock.js +1 -1
- package/layers/support/SimpleBandStatistics.d.ts +1 -1
- package/layers/support/SimpleBandStatistics.js +1 -1
- package/layers/support/Sublayer.js +1 -1
- package/layers/support/featureLayerUtils.js +1 -1
- package/layers/support/featureReductionUtils.js +1 -1
- package/layers/support/source/DataLayerSource.d.ts +6 -3
- package/layers/support/source/DataLayerSource.js +1 -1
- package/layers/support/source/MapLayerSource.d.ts +1 -1
- package/layers/support/source/MapLayerSource.js +1 -1
- package/layers/support/source/QueryTableDataSource.d.ts +1 -1
- package/layers/support/source/QueryTableDataSource.js +1 -1
- package/layers/support/source/RasterDataSource.d.ts +1 -1
- package/layers/support/source/RasterDataSource.js +1 -1
- package/layers/support/source/TableDataSource.d.ts +1 -1
- package/layers/support/source/TableDataSource.js +1 -1
- package/layers/support/source/types.d.ts +1 -1
- package/layers/types.d.ts +7 -1
- package/package.json +1 -1
- package/popup/content/MediaContent.d.ts +2 -2
- package/popup/content/types.d.ts +9 -0
- package/portal/Portal.d.ts +3 -3
- package/portal/PortalGroup.d.ts +1 -1
- package/portal/PortalItem.d.ts +2 -2
- package/portal/PortalItemResource.d.ts +1 -1
- package/portal/PortalQueryParams.d.ts +1 -1
- package/portal/PortalUser.d.ts +5 -5
- package/portal/schemas/definitions.js +1 -1
- package/portal/support/resourceUtils.d.ts +1 -1
- package/renderers/HeatmapRenderer.d.ts +2 -1
- package/renderers/HeatmapRenderer.js +1 -1
- package/renderers/PieChartRenderer.d.ts +2 -1
- package/renderers/PieChartRenderer.js +1 -1
- package/renderers/support/AuthoringInfo.d.ts +2 -1
- package/renderers/support/AuthoringInfo.js +1 -1
- package/renderers/support/AuthoringInfoClassBreakInfo.d.ts +1 -1
- package/renderers/support/AuthoringInfoClassBreakInfo.js +1 -1
- package/renderers/support/AuthoringInfoFieldInfo.d.ts +3 -2
- package/renderers/support/AuthoringInfoFieldInfo.js +1 -1
- package/renderers/support/DictionaryScriptEvaluator.js +1 -1
- package/renderers/support/HeatmapLegendOptions.d.ts +1 -1
- package/renderers/support/HeatmapLegendOptions.js +1 -1
- package/renderers/support/OthersCategory.d.ts +1 -1
- package/renderers/support/OthersCategory.js +1 -1
- package/rest/featureService/types.d.ts +1 -1
- package/rest/knowledgeGraph/wasmInterface/wasmToDataModelFactories.js +1 -1
- package/rest/support/ArealUnit.d.ts +1 -1
- package/rest/support/BaseImageMeasureResultValue.d.ts +1 -1
- package/rest/support/BaseImageMeasureResultValue.js +1 -1
- package/rest/support/BufferParameters.d.ts +1 -1
- package/rest/support/ClosestFacilityParameters.d.ts +1 -1
- package/rest/support/DataLayer.d.ts +1 -1
- package/rest/support/DensifyParameters.d.ts +1 -1
- package/rest/support/DirectionLine.d.ts +1 -1
- package/rest/support/DirectionPoint.d.ts +1 -1
- package/rest/support/DirectionsString.d.ts +1 -1
- package/rest/support/DistanceParameters.d.ts +1 -1
- package/rest/support/GPMessage.d.ts +1 -1
- package/rest/support/ImageAreaParameters.d.ts +1 -1
- package/rest/support/ImageAreaResult.d.ts +4 -2
- package/rest/support/ImageAreaResult.js +1 -1
- package/rest/support/ImageDistanceResult.d.ts +4 -2
- package/rest/support/ImageDistanceResult.js +1 -1
- package/rest/support/ImageHeightResult.d.ts +2 -1
- package/rest/support/ImageHeightResult.js +1 -1
- package/rest/support/ImageMeasureResultAngleValue.d.ts +3 -2
- package/rest/support/ImageMeasureResultAngleValue.js +1 -1
- package/rest/support/ImageMeasureResultAreaValue.d.ts +3 -2
- package/rest/support/ImageMeasureResultAreaValue.js +1 -1
- package/rest/support/ImageMeasureResultLengthValue.d.ts +4 -3
- package/rest/support/ImageMeasureResultLengthValue.js +1 -1
- package/rest/support/JobInfo.d.ts +1 -1
- package/rest/support/LinearUnit.d.ts +1 -1
- package/rest/support/LocateSetting.d.ts +1 -1
- package/rest/support/NAMessage.d.ts +1 -1
- package/rest/support/NetworkAttribute.d.ts +1 -1
- package/rest/support/OffsetParameters.d.ts +1 -1
- package/rest/support/PointBarrier.d.ts +1 -1
- package/rest/support/PolygonBarrier.d.ts +1 -1
- package/rest/support/PolylineBarrier.d.ts +1 -1
- package/rest/support/RouteParameters.d.ts +1 -1
- package/rest/support/ServiceAreaParameters.d.ts +1 -1
- package/rest/support/Stop.d.ts +1 -1
- package/rest/support/TravelMode.d.ts +1 -1
- package/smartMapping/renderers/pieChart.js +1 -1
- package/smartMapping/renderers/relationship.js +1 -1
- package/smartMapping/renderers/univariateColorSize.js +1 -1
- package/smartMapping/support/adapters/support/utils.js +1 -1
- package/support/revision.js +1 -1
- package/support/tests/meshUtils.js +1 -1
- package/symbols/ExtrudeSymbol3DLayer.d.ts +2 -1
- package/symbols/ExtrudeSymbol3DLayer.js +1 -1
- package/symbols/FillSymbol3DLayer.d.ts +4 -2
- package/symbols/FillSymbol3DLayer.js +1 -1
- package/symbols/IconSymbol3DLayer.d.ts +23 -4
- package/symbols/IconSymbol3DLayer.js +1 -1
- package/symbols/LineSymbol3DLayer.d.ts +2 -1
- package/symbols/LineSymbol3DLayer.js +1 -1
- package/symbols/ObjectSymbol3DLayer.d.ts +6 -3
- package/symbols/ObjectSymbol3DLayer.js +1 -1
- package/symbols/PathSymbol3DLayer.d.ts +2 -1
- package/symbols/PathSymbol3DLayer.js +1 -1
- package/symbols/TextSymbol3DLayer.d.ts +21 -3
- package/symbols/TextSymbol3DLayer.js +1 -1
- package/symbols/patterns/LinePattern3D.js +1 -1
- package/symbols/support/IconSymbol3DLayerResource.d.ts +1 -1
- package/symbols/support/IconSymbol3DLayerResource.js +1 -1
- package/symbols/support/ObjectSymbol3DLayerResource.d.ts +1 -1
- package/symbols/support/ObjectSymbol3DLayerResource.js +1 -1
- package/symbols/support/OccludedVisibility.d.ts +27 -0
- package/symbols/support/Symbol3DAnchorPosition2D.d.ts +1 -1
- package/symbols/support/Symbol3DAnchorPosition2D.js +1 -1
- package/symbols/support/Symbol3DAnchorPosition3D.d.ts +1 -1
- package/symbols/support/Symbol3DAnchorPosition3D.js +1 -1
- package/symbols/support/Symbol3DFillMaterial.d.ts +3 -2
- package/symbols/support/Symbol3DFillMaterial.js +1 -1
- package/symbols/support/Symbol3DHalo.d.ts +1 -1
- package/symbols/support/Symbol3DHalo.js +1 -1
- package/symbols/support/Symbol3DIconOutline.d.ts +1 -1
- package/symbols/support/Symbol3DIconOutline.js +1 -1
- package/symbols/support/Symbol3DMaterial.d.ts +1 -1
- package/symbols/support/Symbol3DMaterial.js +1 -1
- package/symbols/support/Symbol3DOutline.d.ts +1 -1
- package/symbols/support/Symbol3DOutline.js +1 -1
- package/symbols/support/Symbol3DTextBackground.d.ts +1 -1
- package/symbols/support/Symbol3DTextBackground.js +1 -1
- package/symbols/support/previewSymbol3D.js +1 -1
- package/symbols/support/primitives.js +5 -0
- package/symbols/support/types.d.ts +2 -0
- package/symbols/support/utils.js +1 -1
- package/views/2d/analysis/AnalysisView2D.d.ts +2 -2
- package/views/2d/analysis/AnalysisView2D.js +1 -1
- package/views/2d/analysis/AreaMeasurementAnalysisView2D.d.ts +1 -1
- package/views/2d/analysis/AreaMeasurementAnalysisView2D.js +1 -1
- package/views/2d/analysis/DistanceMeasurementAnalysisView2D.d.ts +1 -1
- package/views/2d/analysis/DistanceMeasurementAnalysisView2D.js +1 -1
- package/views/2d/analysis/ElevationProfileAnalysisView2D.d.ts +1 -1
- package/views/2d/analysis/ElevationProfileAnalysisView2D.js +1 -1
- package/views/2d/engine/Bitmap.js +1 -1
- package/views/2d/engine/Container.js +1 -1
- package/views/2d/engine/DisplayObject.js +1 -1
- package/views/2d/engine/brushes.js +1 -1
- package/views/2d/engine/flow/styles/Imagery.js +1 -1
- package/views/2d/engine/vectorTiles/GlyphMosaic.js +1 -1
- package/views/2d/engine/vectorTiles/SpriteMosaic.js +1 -1
- package/views/2d/engine/vectorTiles/TileParser.js +1 -1
- package/views/2d/engine/vectorTiles/VectorTileContainer.js +1 -1
- package/views/2d/engine/vectorTiles/VectorTileRendererHelper3D.js +1 -1
- package/views/2d/engine/vectorTiles/buckets/FillBucket.js +1 -1
- package/views/2d/engine/webgl/AttributeStoreView.js +1 -1
- package/views/2d/engine/webgl/ClipMesh.js +5 -0
- package/views/2d/engine/webgl/GlyphMosaic.js +1 -1
- package/views/2d/engine/webgl/Overlay.js +1 -1
- package/views/2d/engine/webgl/OverlayMultipoint.js +1 -1
- package/views/2d/engine/webgl/SpriteMosaic.js +1 -1
- package/views/2d/engine/webgl/VideoScreenRenderer.js +1 -1
- package/views/2d/engine/webgl/WGLContainer.js +1 -1
- package/views/2d/engine/webgl/animations/store/AnimationStore.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLBrushTileDebugInfo.js +1 -1
- package/views/2d/engine/webgl/effects/highlight/HighlightGradient.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/templateUtils.js +1 -1
- package/views/2d/engine/webgl/meshing/SimpleMesh.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/TestTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/TextureStatisticsTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/animated/AnimatedPolyMeshWriters.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/blend/BlendTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/clip/ClipTechnique.js +5 -0
- package/views/2d/engine/webgl/shaderGraph/techniques/colorize/ColorizeTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityResources.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/dotDensity/DotDensityTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/drop-shadow/DropShadowTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/AFillMeshWriter.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexFillTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/ComplexOutlineFillTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/FillTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/GradientFillTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/OutlineFillTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternFillTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/fill/PatternOutlineFillTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/grid/GridTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapResources.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/heatmap/HeatmapTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/labels/LabelTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/line/GradientStrokeTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/line/LineTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/line/TexturedLineTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/magnifier/MagnifierTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/markers/MarkerTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/mesh/MeshWriterRegistry.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/opacity/OpacityTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/overlay/OverlayTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/pieChart/PieChartTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterColorizerTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/RasterHighlightTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/raster/processor/textureUtils.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/ClipShader.js +5 -0
- package/views/2d/engine/webgl/shaderGraph/techniques/text/TextTechnique.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/videoScreenRenderer/VideoScreenTechnique.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/engine/webgl/textureUtils.js +1 -1
- package/views/2d/layers/KMLLayerView2D.js +1 -1
- package/views/2d/layers/LayerView2D.js +1 -1
- package/views/2d/layers/MediaLayerView2D.js +1 -1
- package/views/2d/layers/TileLayerView2D.js +1 -1
- package/views/2d/layers/features/FeatureContainer.js +1 -1
- package/views/2d/layers/features/RenderState.js +1 -1
- package/views/2d/webglDeps.js +1 -1
- package/views/3d/analysis/AnalysisView3D.d.ts +2 -2
- package/views/3d/analysis/AnalysisView3D.js +1 -1
- package/views/3d/analysis/AreaMeasurementAnalysisView3D.d.ts +1 -1
- package/views/3d/analysis/AreaMeasurementAnalysisView3D.js +1 -1
- package/views/3d/analysis/DimensionAnalysisView3D.d.ts +1 -1
- package/views/3d/analysis/DimensionAnalysisView3D.js +1 -1
- package/views/3d/analysis/DirectLineMeasurementAnalysisView3D.d.ts +1 -1
- package/views/3d/analysis/DirectLineMeasurementAnalysisView3D.js +1 -1
- package/views/3d/analysis/ElevationProfileAnalysisView3D.d.ts +1 -1
- package/views/3d/analysis/ElevationProfileAnalysisView3D.js +1 -1
- package/views/3d/analysis/LineOfSightAnalysisView3D.d.ts +1 -1
- package/views/3d/analysis/LineOfSightAnalysisView3D.js +1 -1
- package/views/3d/analysis/ShadowCastAnalysisView3D.d.ts +1 -1
- package/views/3d/analysis/ShadowCastAnalysisView3D.js +1 -1
- package/views/3d/analysis/SliceAnalysisView3D.d.ts +1 -1
- package/views/3d/analysis/SliceAnalysisView3D.js +1 -1
- package/views/3d/analysis/ViewshedAnalysisView3D.d.ts +1 -1
- package/views/3d/analysis/ViewshedAnalysisView3D.js +1 -1
- package/views/3d/analysis/VolumeMeasurement/VolumeMeasurementTool.js +1 -1
- package/views/3d/analysis/VolumeMeasurementAnalysisView3D.d.ts +1 -1
- package/views/3d/analysis/VolumeMeasurementAnalysisView3D.js +1 -1
- package/views/3d/constraints/AltitudeConstraint.d.ts +1 -1
- package/views/3d/constraints/AltitudeConstraint.js +1 -1
- package/views/3d/constraints/ClipDistanceConstraint.d.ts +1 -1
- package/views/3d/constraints/ClipDistanceConstraint.js +1 -1
- package/views/3d/constraints/Constraints.d.ts +7 -4
- package/views/3d/constraints/Constraints.js +1 -1
- package/views/3d/constraints/TiltConstraint.d.ts +1 -1
- package/views/3d/constraints/TiltConstraint.js +1 -1
- package/views/3d/environment/LocalAtmosphere.js +1 -1
- package/views/3d/environment/MarsAtmosphere.js +1 -1
- package/views/3d/glTF/internal/Resource.js +1 -1
- package/views/3d/interactive/editingTools/reshape/ReshapeOperation.js +1 -1
- package/views/3d/interactive/editingTools/reshape/reshapeTooltipUtils3D.js +1 -1
- package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
- package/views/3d/layers/ElevationLayerView3D.js +1 -1
- package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
- package/views/3d/layers/PointCloudLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DIconSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DObjectSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/defaultSymbolComplexity.js +1 -1
- package/views/3d/layers/graphics/pipeline/symbolization/IconSymbolLayerRenderer.js +1 -1
- package/views/3d/layers/graphics/pipeline/symbolization/ObjectSymbolLayerRenderer.js +1 -1
- package/views/3d/layers/graphics/pipeline/symbolization/factoryUtils.js +1 -1
- package/views/3d/layers/graphics/wosrLoader.js +1 -1
- package/views/3d/layers/i3s/meshUtils.js +1 -1
- package/views/3d/layers/support/MediaLayerInteractionOptions.d.ts +3 -2
- package/views/3d/layers/support/MediaLayerInteractionOptions.js +1 -1
- package/views/3d/layers/support/MediaLayerInteractionReshapeOptions.d.ts +1 -1
- package/views/3d/layers/support/MediaLayerInteractionReshapeOptions.js +1 -1
- package/views/3d/support/engineContent/marker.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatFadeTexture.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatOrderTexture.js +1 -1
- package/views/3d/support/gaussianSplatting/GaussianSplatTextureAtlas.js +1 -1
- package/views/3d/terrain/OverlayRenderer.js +1 -1
- package/views/3d/terrain/TileCompositor.js +1 -1
- package/views/3d/terrain/TileRenderer.js +1 -1
- package/views/3d/webgl/ManagedColorAttachment.d.ts +2 -2
- package/views/3d/webgl/ManagedColorAttachment.js +1 -1
- package/views/3d/webgl/ManagedDepthAttachment.d.ts +2 -2
- package/views/3d/webgl/ManagedDepthAttachment.js +1 -1
- package/views/3d/webgl/ManagedDepthTexture.js +1 -1
- package/views/3d/webgl/ManagedFBO.d.ts +8 -6
- package/views/3d/webgl/ManagedFBO.js +1 -1
- package/views/3d/webgl/ManagedFBOAttachment.d.ts +2 -2
- package/views/3d/webgl/ManagedFBOAttachment.js +1 -1
- package/views/3d/webgl/ManagedFBOResource.d.ts +1 -1
- package/views/3d/webgl/ManagedFBOResource.js +1 -1
- package/views/3d/webgl-engine/collections/Component/IntersectionGeometry.js +1 -1
- package/views/3d/webgl-engine/core/FBOCache.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +55 -23
- package/views/3d/webgl-engine/effects/highlight/Highlight.js +1 -1
- package/views/3d/webgl-engine/effects/magnifier/Magnifier.js +1 -1
- package/views/3d/webgl-engine/effects/smaa/SMAA.js +1 -1
- package/views/3d/webgl-engine/effects/ssao/SSAO.js +1 -1
- package/views/3d/webgl-engine/lib/BasisUtil.js +1 -1
- package/views/3d/webgl-engine/lib/DDSUtil.js +1 -1
- package/views/3d/webgl-engine/lib/DrapedHeatmapRenderer.js +1 -1
- package/views/3d/webgl-engine/lib/GPUPointOcclusionQuery.js +1 -1
- package/views/3d/webgl-engine/lib/ManagedTexture.js +1 -1
- package/views/3d/webgl-engine/lib/TextTextureAtlas.js +1 -1
- package/views/3d/webgl-engine/lib/TextureBackedBuffer/TextureBuffer.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/strokes.js +1 -1
- package/views/3d/webgl-engine/lib/glUtil3D.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/internal/WaterTextureRepository.js +1 -1
- package/views/3d/webgl-engine/materials/lineStippleUtils.js +1 -1
- package/views/3d/webgl-engine/materials/stippleTextureRepository.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLineTechniqueConfiguration.js +1 -1
- package/views/DOMContainer.d.ts +1 -2
- package/views/MapView.d.ts +10 -15
- package/views/PopupView.d.ts +6 -6
- package/views/SceneView.d.ts +3 -4
- package/views/SceneView.js +1 -1
- package/views/VideoView.js +1 -1
- package/views/View.d.ts +11 -13
- package/views/View2D.d.ts +37 -37
- package/views/analysis/AnalysisView.d.ts +1 -1
- package/views/analysis/AnalysisView.js +1 -1
- package/views/draw/{input/CursorUpdateEvent.d.ts → CursorUpdateEvent.d.ts} +1 -1
- package/views/draw/{input/CursorUpdateEvent.js → CursorUpdateEvent.js} +1 -1
- package/views/draw/{input/DrawCompleteEvent.d.ts → DrawCompleteEvent.d.ts} +1 -1
- package/views/draw/{input/DrawCompleteEvent.js → DrawCompleteEvent.js} +1 -1
- package/views/draw/DrawGraphicTool.js +1 -1
- package/views/draw/MultipointDrawAction.d.ts +4 -4
- package/views/draw/MultipointDrawAction.js +1 -1
- package/views/draw/PointDrawAction.d.ts +2 -2
- package/views/draw/PointDrawAction.js +1 -1
- package/views/draw/PolygonDrawAction.d.ts +4 -4
- package/views/draw/PolygonDrawAction.js +1 -1
- package/views/draw/PolylineDrawAction.d.ts +4 -4
- package/views/draw/PolylineDrawAction.js +1 -1
- package/views/draw/SegmentDrawAction.d.ts +3 -3
- package/views/draw/SegmentDrawAction.js +1 -1
- package/views/draw/{input/VertexAddEvent.d.ts → VertexAddEvent.d.ts} +1 -1
- package/views/draw/{input/VertexAddEvent.js → VertexAddEvent.js} +1 -1
- package/views/draw/{input/VertexRemoveEvent.d.ts → VertexRemoveEvent.d.ts} +1 -1
- package/views/draw/VertexRemoveEvent.js +5 -0
- package/views/draw/support/Reshape.js +1 -1
- package/views/draw/support/reshapeTooltipUtils.js +1 -1
- package/views/draw/support/tooltipUtils.js +1 -1
- package/views/interactive/sketch/Units.d.ts +3 -0
- package/views/layers/HighlightLayerViewMixin.d.ts +1 -3
- package/views/layers/ImageryLayerViewMixin.d.ts +1 -3
- package/views/layers/KMLLayerView.d.ts +1 -1
- package/views/layers/MediaLayerViewMixin.d.ts +3 -2
- package/views/layers/MediaLayerViewMixin.js +1 -1
- package/views/support/GeodesicMeasurementWorker.js +5 -0
- package/views/support/GeodesicMeasurementWorkerHandle.js +5 -0
- package/views/support/HighlightOptions.d.ts +0 -1
- package/views/support/TextureCompressionHelper.js +1 -1
- package/views/support/automaticAreaMeasurementUtils.js +1 -1
- package/views/support/imageReprojection.js +1 -1
- package/views/types.d.ts +1 -1
- package/views/webgl/FramebufferObject.js +1 -1
- package/views/webgl/RenderingContext.js +1 -1
- package/views/webgl/Texture.js +1 -1
- package/views/webgl/rasterUtils.js +1 -1
- package/views/webgl/testSVGPremultipliedAlpha.js +1 -1
- package/views/webgl/textureTracer.js +5 -0
- package/webdoc/support/SlideThumbnail.d.ts +1 -1
- package/webdoc/support/SlideThumbnail.js +1 -1
- package/webmap/Bookmark.d.ts +2 -1
- package/webmap/Bookmark.js +1 -1
- package/webmap/Version.d.ts +2 -2
- package/webmap/Version.js +1 -1
- package/webmap/utils.js +1 -1
- package/webscene/Slide.d.ts +6 -3
- package/webscene/Slide.js +1 -1
- package/webscene/Version.d.ts +2 -2
- package/webscene/Version.js +1 -1
- package/webscene/spec-certification/api.js +1 -1
- package/webscene/support/SlideEnvironment.d.ts +1 -1
- package/webscene/support/SlideEnvironment.js +1 -1
- package/webscene/support/SlideVisibleLayer.d.ts +1 -1
- package/webscene/support/SlideVisibleLayer.js +1 -1
- package/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel.d.ts +1 -1
- package/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel.js +1 -1
- package/widgets/AreaMeasurement3D/AreaMeasurement3DViewModel.d.ts +1 -1
- package/widgets/AreaMeasurement3D/AreaMeasurement3DViewModel.js +1 -1
- package/widgets/BatchAttributeForm/VisibleElements.d.ts +1 -1
- package/widgets/BatchAttributeForm/VisibleElements.js +1 -1
- package/widgets/BatchAttributeForm/inputs/FieldInput.js +1 -1
- package/widgets/BatchAttributeForm.d.ts +2 -1
- package/widgets/BatchAttributeForm.js +1 -1
- package/widgets/Bookmarks/BookmarksViewModel.js +1 -1
- package/widgets/Bookmarks.js +1 -1
- package/widgets/DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.d.ts +1 -1
- package/widgets/DirectLineMeasurement3D/DirectLineMeasurement3DViewModel.js +1 -1
- package/widgets/DistanceMeasurement2D/DistanceMeasurement2DViewModel.d.ts +1 -1
- package/widgets/DistanceMeasurement2D/DistanceMeasurement2DViewModel.js +1 -1
- package/widgets/Editor.js +1 -1
- package/widgets/FeatureTable/ActionColumn.d.ts +1 -1
- package/widgets/FeatureTable/AttachmentsColumn.d.ts +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.d.ts +2 -2
- package/widgets/FeatureTable/FieldColumn.d.ts +1 -1
- package/widgets/FeatureTable/Grid/Column.d.ts +1 -1
- package/widgets/FeatureTable/support/ColumnTemplateBase.d.ts +1 -1
- package/widgets/FeatureTable/support/FieldColumnTemplate.d.ts +1 -1
- package/widgets/FeatureTable/support/GroupColumnTemplate.d.ts +1 -1
- package/widgets/FeatureTable/support/TableTemplate.d.ts +1 -1
- package/widgets/FeatureTable/support/{interfaces.d.ts → types.d.ts} +1 -1
- package/widgets/FeatureTable.d.ts +2 -2
- package/widgets/LineOfSight/LineOfSightViewModel.d.ts +1 -1
- package/widgets/LineOfSight/LineOfSightViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/adapters/view/SceneViewAdapter.js +1 -1
- package/widgets/PanoramicViewer/support/importUtils.js +1 -1
- package/widgets/Print/PrintViewModel.d.ts +1 -1
- package/widgets/Sketch/CreateToolVisibilityMap.d.ts +1 -1
- package/widgets/Sketch/CreateToolVisibilityMap.js +1 -1
- package/widgets/Sketch/SelectionToolVisibilityMap.d.ts +1 -1
- package/widgets/Sketch/SelectionToolVisibilityMap.js +1 -1
- package/widgets/Sketch/VisibleElements.d.ts +5 -3
- package/widgets/Sketch/VisibleElements.js +1 -1
- package/widgets/Sketch.d.ts +2 -1
- package/widgets/Sketch.js +1 -1
- package/widgets/Slice/SliceViewModel.d.ts +1 -1
- package/widgets/Slice/SliceViewModel.js +1 -1
- package/widgets/UtilityNetworkAssociations.js +1 -1
- package/widgets/support/AnalysisViewModel.d.ts +1 -1
- package/widgets/support/AnalysisViewModel.js +1 -1
- package/widgets/support/InteractiveToolViewModel.d.ts +1 -1
- package/widgets/support/InteractiveToolViewModel.js +1 -1
- package/assets/esri/core/libs/libtess/libtess.wasm +0 -0
- package/assets/esri/core/workers/chunks/00e407d262c49890afa8.js +0 -1
- package/assets/esri/core/workers/chunks/19db60a3b4b09d445bd1.js +0 -1
- package/assets/esri/core/workers/chunks/1e55f152b60145f33b61.js +0 -1
- package/assets/esri/core/workers/chunks/294acaaebfedb05fe81e.js +0 -1
- package/assets/esri/core/workers/chunks/31eda00e6842005d0ec8.js +0 -1
- package/assets/esri/core/workers/chunks/3d49c6427120edc8eac9.js +0 -1
- package/assets/esri/core/workers/chunks/404229f10aef5ac23c87.js +0 -1
- package/assets/esri/core/workers/chunks/4278b35fb6fd578c403e.js +0 -1
- package/assets/esri/core/workers/chunks/46b63a65484b102e9ccb.js +0 -1
- package/assets/esri/core/workers/chunks/4f03d19a70dca6c507be.js +0 -316
- package/assets/esri/core/workers/chunks/5686220aed9a74dbd2b1.js +0 -1
- package/assets/esri/core/workers/chunks/5a2933ae19345b7d5aa7.js +0 -1
- package/assets/esri/core/workers/chunks/5e9fdd4eff7189f45932.js +0 -1
- package/assets/esri/core/workers/chunks/67a45faa80316f43c51b.js +0 -1
- package/assets/esri/core/workers/chunks/68ee11589de0da7fed08.js +0 -1
- package/assets/esri/core/workers/chunks/82ced9254b27707522ef.js +0 -1
- package/assets/esri/core/workers/chunks/bb5373ff7cdad7270095.js +0 -1
- package/assets/esri/core/workers/chunks/bddaa83fcb9fdb1e1856.js +0 -1
- package/assets/esri/core/workers/chunks/d048e4926e78458afa3e.js +0 -1
- package/assets/esri/core/workers/chunks/d199deff988eaefe18b4.js +0 -1
- package/assets/esri/core/workers/chunks/d77f56576a49a998164a.js +0 -1
- package/assets/esri/core/workers/chunks/dae09fb8da0faa6dede4.js +0 -1
- package/assets/esri/core/workers/chunks/e16e88de4e93b0f48b2c.js +0 -1
- package/chunks/libtess-asm.js +0 -5
- package/chunks/libtess.js +0 -5
- package/layers/BlendMode.d.ts +0 -2
- package/layers/LayerListMode.d.ts +0 -2
- package/layers/LayerType.d.ts +0 -2
- package/popup/content/support/mediaInfoTypes.d.ts +0 -7
- package/support/modeUtils.d.ts +0 -2
- package/views/SelectionManager.d.ts +0 -1
- package/views/draw/input/VertexRemoveEvent.js +0 -5
- package/views/webgl/Texture.d.ts +0 -6
- /package/portal/{interfaces.d.ts → types.d.ts} +0 -0
- /package/rest/support/{interfaces.d.ts → types.d.ts} +0 -0
- /package/views/draw/{input/VertexUpdateEvent.js → VertexUpdateEvent.js} +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { JSONSupport, JSONSupportMixinProperties } from "../../core/JSONSupport.js";
|
|
2
|
-
import type { GPLinearUnit } from "./
|
|
2
|
+
import type { GPLinearUnit } from "./types.js";
|
|
3
3
|
|
|
4
4
|
export interface LinearUnitProperties extends JSONSupportMixinProperties, Partial<Pick<LinearUnit, "distance" | "units">> {}
|
|
5
5
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type LocateSettingBase from "./LocateSettingBase.js";
|
|
2
|
-
import type { GPLinearUnit } from "./
|
|
2
|
+
import type { GPLinearUnit } from "./types.js";
|
|
3
3
|
import type { LocateSettingBaseProperties } from "./LocateSettingBase.js";
|
|
4
4
|
|
|
5
5
|
export interface LocateSettingProperties extends LocateSettingBaseProperties, Partial<Pick<LocateSetting, "tolerance" | "toleranceUnits">> {}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type GPMessage from "./GPMessage.js";
|
|
2
2
|
import type { GPMessageProperties } from "./GPMessage.js";
|
|
3
|
-
import type { MessageType } from "./
|
|
3
|
+
import type { MessageType } from "./types.js";
|
|
4
4
|
|
|
5
5
|
export interface NAMessageProperties extends GPMessageProperties {
|
|
6
6
|
/** A description of the network analyst message. */
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { JSONSupport } from "../../core/JSONSupport.js";
|
|
2
|
-
import type { NetworkAttributeUnit } from "./
|
|
2
|
+
import type { NetworkAttributeUnit } from "./types.js";
|
|
3
3
|
|
|
4
4
|
export default abstract class NetworkAttribute extends JSONSupport {
|
|
5
5
|
/** The name of the network attribute to use for the drive time when computing directions. */
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { JSONSupport, JSONSupportMixinProperties } from "../../core/JSONSupport.js";
|
|
2
2
|
import type { GeometryUnion } from "../../geometry/types.js";
|
|
3
|
-
import type { GeometryOperationLengthUnit } from "./
|
|
3
|
+
import type { GeometryOperationLengthUnit } from "./types.js";
|
|
4
4
|
|
|
5
5
|
export interface OffsetParametersProperties extends JSONSupportMixinProperties, Partial<Pick<OffsetParameters, "bevelRatio" | "geometries" | "offsetDistance" | "offsetHow" | "offsetUnit">> {}
|
|
6
6
|
|
|
@@ -3,7 +3,7 @@ import type PopupTemplate from "../../PopupTemplate.js";
|
|
|
3
3
|
import type Point from "../../geometry/Point.js";
|
|
4
4
|
import type { ClonableMixin, ClonableMixinProperties } from "../../core/Clonable.js";
|
|
5
5
|
import type { JSONSupport, JSONSupportMixinProperties } from "../../core/JSONSupport.js";
|
|
6
|
-
import type { BarrierType, CurbApproach, FullEdge } from "./
|
|
6
|
+
import type { BarrierType, CurbApproach, FullEdge } from "./types.js";
|
|
7
7
|
import type { PointProperties } from "../../geometry/Point.js";
|
|
8
8
|
import type { PopupTemplateProperties } from "../../PopupTemplate.js";
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ import type PopupTemplate from "../../PopupTemplate.js";
|
|
|
3
3
|
import type Polygon from "../../geometry/Polygon.js";
|
|
4
4
|
import type { ClonableMixin, ClonableMixinProperties } from "../../core/Clonable.js";
|
|
5
5
|
import type { JSONSupport, JSONSupportMixinProperties } from "../../core/JSONSupport.js";
|
|
6
|
-
import type { BarrierType } from "./
|
|
6
|
+
import type { BarrierType } from "./types.js";
|
|
7
7
|
import type { PolygonProperties } from "../../geometry/Polygon.js";
|
|
8
8
|
import type { PopupTemplateProperties } from "../../PopupTemplate.js";
|
|
9
9
|
|
|
@@ -3,7 +3,7 @@ import type PopupTemplate from "../../PopupTemplate.js";
|
|
|
3
3
|
import type Polyline from "../../geometry/Polyline.js";
|
|
4
4
|
import type { ClonableMixin, ClonableMixinProperties } from "../../core/Clonable.js";
|
|
5
5
|
import type { JSONSupport, JSONSupportMixinProperties } from "../../core/JSONSupport.js";
|
|
6
|
-
import type { BarrierType } from "./
|
|
6
|
+
import type { BarrierType } from "./types.js";
|
|
7
7
|
import type { PolylineProperties } from "../../geometry/Polyline.js";
|
|
8
8
|
import type { PopupTemplateProperties } from "../../PopupTemplate.js";
|
|
9
9
|
|
|
@@ -8,7 +8,7 @@ import type Stop from "./Stop.js";
|
|
|
8
8
|
import type TravelMode from "./TravelMode.js";
|
|
9
9
|
import type { ClonableMixin, ClonableMixinProperties } from "../../core/Clonable.js";
|
|
10
10
|
import type { JSONSupport, JSONSupportMixinProperties } from "../../core/JSONSupport.js";
|
|
11
|
-
import type { AttributeParameterValue, DirectionsDetail, DirectionsStyleName, LengthUnit, NetworkDate, NetworkInput, OutputLine, UTurnRestriction } from "./
|
|
11
|
+
import type { AttributeParameterValue, DirectionsDetail, DirectionsStyleName, LengthUnit, NetworkDate, NetworkInput, OutputLine, UTurnRestriction } from "./types.js";
|
|
12
12
|
import type { LocateSettingsProperties } from "./LocateSettings.js";
|
|
13
13
|
import type { SpatialReferenceProperties } from "../../geometry/SpatialReference.js";
|
|
14
14
|
import type { TravelModeProperties } from "./TravelMode.js";
|
|
@@ -6,7 +6,7 @@ import type PolylineBarrier from "./PolylineBarrier.js";
|
|
|
6
6
|
import type TravelMode from "./TravelMode.js";
|
|
7
7
|
import type { ClonableMixin, ClonableMixinProperties } from "../../core/Clonable.js";
|
|
8
8
|
import type { JSONSupport, JSONSupportMixinProperties } from "../../core/JSONSupport.js";
|
|
9
|
-
import type { AttributeParameterValue, LengthUnit, NetworkDate, NetworkInput, OutputLine, OutputPolygon, TravelDirection, UTurnRestriction } from "./
|
|
9
|
+
import type { AttributeParameterValue, LengthUnit, NetworkDate, NetworkInput, OutputLine, OutputPolygon, TravelDirection, UTurnRestriction } from "./types.js";
|
|
10
10
|
import type { SpatialReferenceProperties } from "../../geometry/SpatialReference.js";
|
|
11
11
|
import type { TravelModeProperties } from "./TravelMode.js";
|
|
12
12
|
|
package/rest/support/Stop.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type PopupTemplate from "../../PopupTemplate.js";
|
|
|
3
3
|
import type Point from "../../geometry/Point.js";
|
|
4
4
|
import type { ClonableMixin, ClonableMixinProperties } from "../../core/Clonable.js";
|
|
5
5
|
import type { JSONSupport, JSONSupportMixinProperties } from "../../core/JSONSupport.js";
|
|
6
|
-
import type { CurbApproach, LocationType, Status } from "./
|
|
6
|
+
import type { CurbApproach, LocationType, Status } from "./types.js";
|
|
7
7
|
import type { PointProperties } from "../../geometry/Point.js";
|
|
8
8
|
import type { PopupTemplateProperties } from "../../PopupTemplate.js";
|
|
9
9
|
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { ClonableMixin, ClonableMixinProperties } from "../../core/Clonable.js";
|
|
2
2
|
import type { JSONSupport, JSONSupportMixinProperties } from "../../core/JSONSupport.js";
|
|
3
|
-
import type { AttributeParameterValue, LengthUnit, TraveModeType, UTurnRestriction } from "./
|
|
3
|
+
import type { AttributeParameterValue, LengthUnit, TraveModeType, UTurnRestriction } from "./types.js";
|
|
4
4
|
|
|
5
5
|
export interface TravelModeProperties extends JSONSupportMixinProperties, ClonableMixinProperties, Partial<Pick<TravelMode, "attributeParameterValues" | "description" | "distanceAttributeName" | "id" | "impedanceAttributeName" | "name" | "restrictionAttributeNames" | "simplificationTolerance" | "simplificationToleranceUnits" | "timeAttributeName" | "type" | "useHierarchy" | "uturnAtJunctions">> {}
|
|
6
6
|
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../Color.js";import{isSome as r}from"../../core/arrayUtils.js";import{createUniqueColors as i}from"../../core/colorUtils.js";import a from"../../core/Error.js";import{toPt as t}from"../../core/screenUtils.js";import{fetchMessageBundle as n}from"../../intl/messages.js";import s from"../../layers/support/AggregateField.js";import l from"../../layers/support/ExpressionInfo.js";import o from"../../renderers/PieChartRenderer.js";import u from"../../renderers/support/AttributeColorInfo.js";import{OthersCategory as p}from"../../renderers/support/OthersCategory.js";import c from"../../renderers/support/RendererLegendOptions.js";import m from"../heuristics/outline.js";import f from"../heuristics/sizeRange.js";import{createVisualVariables as d}from"./size.js";import{spliceVisualVariables as b,updateAuthoringInfoVisualVariable as h,processRegenerateParams as y,getRendererToUpdate as w,getStyleType as g,hasOutlineVV as v,hasScaleDependentSizeVV as z,isSizeVV as E,findSizeVVIndex as S,findOutlineVVIndex as x,findScaleDependentSizeVVIndex as V}from"./support/regenerateUtils.js";import{errorCallback as j,createSymbol as C,getSymbolOutlineFromScheme as T,verifyBasicFieldValidity as $,getBasemapInfo as I}from"./support/utils.js";import O from"../statistics/predominantCategories.js";import{getSumOfAttributesExpr as k}from"../statistics/support/utils.js";import{verifyBinningParams as q}from"../support/binningUtils.js";import{getFieldsList as B}from"../support/utils.js";import{binningCapableLayerTypes as P,createLayerAdapter as U,getLayerTypeLabels as L,getLayerTypes as R}from"../support/adapters/support/layerUtils.js";import{cloneScheme as F,getSchemes as M}from"../symbology/pieChart.js";import _ from"../../symbols/SimpleLineSymbol.js";import{getCIMSymbolColor as A}from"../../symbols/support/cimSymbolUtils.js";const N=[2,3,4,6,7,8,9,12,15];async function W(e){if(!(e?.layer&&e.view&&e.attributes?.length))throw new a("pie-chart-renderer:missing-parameters","'layer', 'view' and 'attributes' parameters are required");if(e.attributes.length>10)throw new a("pie-chart-renderer:invalid-parameters","PieChart renderer does not support more than 10 attributes");e.forBinning&&q(e,"pie-chart-renderer");const r={...e,layer:e.layer,view:e.view,attributes:e.attributes};r.shape=r.shape||"pie",r.othersCategoryEnabled??=!0,r.includeSizeVariable=e.includeSizeVariable||!1;const i=e.forBinning?P:N,t=U(r.layer,i,e.forBinning);if(!t)throw new a("pie-chart-renderer:invalid-parameters","'layer' must be one of these types: "+L(i).join(", "));const n=null!=r.signal?{signal:r.signal}:null;await Promise.all([e.view.when(),t.load(n)]);const s=t.geometryType,l="polygon"===s,o="point"===s||"multipoint"===s||l;if(r.outlineOptimizationEnabled=!!l&&r.outlineOptimizationEnabled,r.sizeOptimizationEnabled=!!o&&r.sizeOptimizationEnabled,!o)throw new a("pie-chart-renderer:not-supported","PieChart renderer is only supported for point and polygon layers");const u=[],p=r.attributes;for(const a of p){const e=await B({field:a.field,valueExpression:a.valueExpression});u.push(...e)}const c=$(t,u.filter(Boolean),"pie-chart-renderer:invalid-parameters");if(c)throw c;return{...r,layer:t}}async function Z(e){const r="regenerate-pie-chart-renderer",i=e.includedParts?.includes("size-variable")??!0;await y(e,r);const t=await w(e);if("pie-chart"!==g(t))throw new a(`${r}:invalid-parameters`,"Renderer is invalid");const{visualVariables:n}=t,{layer:s,forBinning:l,filter:o,view:u,signal:p}=e,c=v(t),m=z(t),f=i&&n?.some(E),d=t.attributes.map(e=>({field:e.field,label:e.label,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle})),b=await W({layer:s,attributes:d,outlineOptimizationEnabled:c,sizeOptimizationEnabled:m,includeSizeVariable:f,forBinning:l,filter:o,view:u,signal:p});return{...e,creatorParameters:b,renderer:t}}async function D(e){let r=e.pieChartScheme,i=null,a=null;const t=await I(e.basemap,e.view);if(i=null!=t.basemapId?t.basemapId:null,a=null!=t.basemapTheme?t.basemapTheme:null,r)return{scheme:F(r),basemapId:i,basemapTheme:a};const n=M({numColors:e.attributes.length,geometryType:e.layer.geometryType,basemapTheme:a});return n&&(r=n.primaryScheme,i=n.basemapId,a=n.basemapTheme),{scheme:r,basemapId:i,basemapTheme:a}}async function G(e,r){const{valueExpression:i,sqlExpression:a,sqlWhere:t}=k(e.attributes),s=await n("esri/smartMapping/t9n/smartMapping");return d({layer:e.layer,basemap:e.basemap,valueExpression:i,sqlExpression:a,sqlWhere:t,sizeScheme:r,sizeOptimizationEnabled:e.sizeOptimizationEnabled,legendOptions:{title:s.sumOfCategories},filter:e.filter,view:e.view,signal:e.signal})}async function H(e){const[s,l]=await Promise.all([W(e),n("esri/smartMapping/t9n/smartMapping")]),d=await D(s),b=d?.scheme;if(!b)throw new a("pie-chart-renderer:insufficient-info","Unable to find pie-chart scheme");const{layer:h,includeSizeVariable:y,sizeOptimizationEnabled:w,outlineOptimizationEnabled:g,view:v,signal:z,filter:E}=s,S=b.sizeScheme,x=s.attributes,V=x.map(e=>e.field).filter(r),[$,I,k,q]=await Promise.all([V.length>1?O({layer:h,fields:V,view:v,signal:z,filter:E}):null,y?G(s,S):null,!y&&w?f({layer:h,view:v,signal:z,filter:E}).catch(j):null,g?m({layer:h,view:v,signal:z,filter:E}).catch(j):null]),B=$?.predominantCategoryInfos?{uniqueValueInfos:$.predominantCategoryInfos}:{uniqueValueInfos:V.map(e=>({value:e,count:0}))},P=i(b.colors,x.length),U=x.map((e,r)=>new u({field:e.field,valueExpression:e.valueExpression,label:e.label,valueExpressionTitle:e.valueExpressionTitle,color:P[r]})),L=h.geometryType,R=null!=S&&"background"in S&&S.background,M=new o({attributes:U,othersCategory:new p({label:l.other,color:s.othersCategoryEnabled?b.colorForOthersCategory:null,threshold:.04}),holePercentage:"donut"===s.shape?.45:0,backgroundFillSymbol:R?C(L,{type:"2d",color:R.color,outline:T(R,L,q?.opacity)}):null,size:t(b.size),outline:new _(T(b,"point",q?.opacity)),legendOptions:c.from(s.legendOptions)});if(I&&(K(I,w,L),M.authoringInfo=I.authoringInfo.clone(),M.visualVariables=I.visualVariables?.map(e=>e.clone())),q?.visualVariables?.length){const e=q.visualVariables.map(e=>e.clone()).filter(e=>"color"!==e.type&&"rotation"!==e.type);M.visualVariables?M.visualVariables.push(...e):M.visualVariables=e}return k?.minSize&&(Q(k,L),M.visualVariables?M.visualVariables.push(k.minSize):M.visualVariables=[k.minSize]),{renderer:M,pieChartScheme:F(b),size:I,basemapId:d.basemapId,basemapTheme:d.basemapTheme,statistics:B}}async function J(e){const{creatorParameters:r,view:i,signal:a,filter:t,renderer:n}=await Z(e),{layer:s,outlineOptimizationEnabled:l,includeSizeVariable:o,sizeOptimizationEnabled:u}=r,p=await D(r),c=p?.scheme?.sizeScheme,[d,y,w]=await Promise.all([l?m({layer:s,view:i,signal:a,filter:t}).catch(j):null,o?G(r,c):null,!o&&u?f({layer:s,view:i,signal:a,filter:t}).catch(j):null]),g=s.geometryType;if(y&&(K(y,u,g),b(n,y?.visualVariables,S),h(n,y?.authoringInfo,"size")),d?.visualVariables?.length){const e=d.visualVariables.map(e=>e.clone()).filter(e=>"color"!==e.type&&"rotation"!==e.type);b(n,e,x)}return w?.minSize&&(Q(w,g),b(n,w?.minSize,V)),{renderer:n}}function K(e,r,i){r||e.visualVariables.forEach(e=>{"number"==typeof e.minSize&&"number"==typeof e.maxSize&&(e.minSize*=2.5,e.maxSize*=1.8)}),r&&"point"===i&&e.visualVariables.forEach(e=>{e?.minSize&&"object"==typeof e.minSize&&e.minSize?.stops?.forEach(e=>{e.size*=1.8})})}function Q(e,r){"point"===r&&e.minSize.stops?.forEach(e=>{e.size*=2.5}),"polygon"===r&&e.minSize.stops?.forEach(e=>{e.size*=1.8})}const X=new Set(["unique-value","class-breaks"]),Y=new e("#aaaaaa"),ee=new e("#5c5c5c"),re=[new e("#e60049"),new e("#0bb4ff"),new e("#50e991"),new e("#e6d800"),new e("#9b19f5"),new e("#ffa300"),new e("#dc0ab4"),new e("#b3d4ff"),new e("#00bfa0"),new e("#f0cccc")];async function ie(e){if(!e||!e.layer)throw new a("pie-chart-cluster-renderer:missing-parameters","'layer' parameter is required");const r={...e};r.shape=r.shape||"pie",r.defaultSymbolEnabled??=!0;const i=e.layer;if(!R(N).includes(i.type))throw new a("pie-chart-cluster-renderer:invalid-parameters","'layer' must be one of these types: "+L(N).join(", "));const t=null!=r.signal?{signal:r.signal}:null;await i.load(t);if(!("point"===i.geometryType))throw new a("pie-chart-cluster-renderer:invalid-parameters","Cluster renderers are only supported for point layers");const n="renderer"in i?i.renderer:void 0;if(!n)throw new a("pie-chart-cluster-renderer:invalid-parameters","input layer does not have a renderer.");if(!X.has(n.type))throw new a("pie-chart-cluster-renderer:invalid-parameters",`Cannot create a pie chart renderer for clusters based on a ${n.type} renderer.`);if("valueExpression"in n&&n.valueExpression)throw new a("pie-chart-cluster-renderer:invalid-parameters","Cannot create a pie chart renderer for clusters from a layer whose renderer contains a valueExpression.");if("unique-value"===n.type){if(n.field2)throw new a("pie-chart-cluster-renderer:invalid-parameters","Cannot create a pie chart renderer for clusters from a UniqueValueRenderer using more than one field.");if(null!=n.uniqueValueInfos&&n.uniqueValueInfos.length>10)throw new a("pie-chart-cluster-renderer:invalid-parameters","PieChart cluster renderer cannot be created from a UniqueValueRenderer with more than 10 unique value infos.")}if("class-breaks"===n.type){if(n.classBreakInfos.length<2)throw new a("pie-chart-cluster-renderer:invalid-parameters","Cannot create a pie chart renderer for clusters from a layer renderer with a continuous color or size gradient.");if(n.classBreakInfos.length>10)throw new a("pie-chart-cluster-renderer:invalid-parameters","PieChart cluster renderer can not be created from a ClassBreaksRenderer with more than 10 class break infos.");if("class-breaks-size"===n?.authoringInfo?.type)throw new a("pie-chart-cluster-renderer:invalid-parameters","PieChart cluster renderer can not be created from a ClassBreaksRenderer with breaks varied by size instead of color.")}return r}async function ae(e){const r=await ie(e),{layer:i,shape:a,defaultSymbolEnabled:t,legendOptions:s}=r,l="renderer"in i?i.renderer:void 0,p=(await n("esri/smartMapping/t9n/smartMapping")).other;let m=[];"unique-value"===l?.type&&(m=te({renderer:l,defaultSymbolEnabled:t,defaultLabelBackup:p})),"class-breaks"===l?.type&&(m=ne({renderer:l,defaultSymbolEnabled:t,defaultLabelBackup:p}));const f=[],d=[];for(const n of m){const{field:e,color:r}=n;f.push(e),d.push(new u({color:r,field:e.name,label:e.alias}))}return{fields:f,renderer:new o({attributes:d,legendOptions:c.from(s),holePercentage:"donut"===a?.45:0,outline:null,size:9,othersCategory:null})}}function te(e){const{renderer:r,defaultSymbolEnabled:a,defaultLabelBackup:t}=e,{field:n,defaultSymbol:o,defaultLabel:u}=r,p=r.uniqueValueInfos??[],c=o&&a,m=c?9:10,f=i(re,m),d=(n?p.slice(0,m).map((e,r)=>{const i=e.label,a=f[r];return{field:new s({name:se(e.value?.toString()),alias:i,onStatisticExpression:new l({title:`Field definition - ${i}`,expression:oe(n,e),returnType:"number"}),statisticType:"sum"}),color:le(e.symbol,a)}}):null)??[];if(c){const e="cluster_default",r=u||t;d.push({field:new s({name:se(e),alias:r,onStatisticExpression:new l({title:`Field definition - ${r}`,expression:ue(n,p),returnType:"number"}),statisticType:"sum"}),color:le(o,ee)})}return d}function ne(e){const{renderer:r,defaultSymbolEnabled:a,defaultLabelBackup:t}=e,{field:n,classBreakInfos:o,defaultSymbol:u,defaultLabel:p}=r,c=u&&a,m=c?9:10,f=i(re,m),d=o.slice(0,m).map((e,r)=>{const i=e.label||`${e.minValue} - ${e.maxValue}`,a=f[r];return{field:new s({name:se(i),alias:i,onStatisticExpression:new l({title:`Field definition - ${i}`,expression:pe(n,e),returnType:"number"}),statisticType:"sum"}),color:le(e.symbol,a)}});if(c){const e="cluster_default",r=p||t;d.push({field:new s({name:se(e),alias:r,onStatisticExpression:new l({title:`Field definition - ${r}`,expression:ce(n,o),returnType:"number"}),statisticType:"sum"}),color:le(u,ee)})}return d}function se(e){return"SUM_"+(e+"").replaceAll(/[^a-zA-Z0-9_]/g,"_")}function le(e,r){if("simple-marker"===e?.type&&e.color)return e.color.clone();if("cim"===e?.type){const r=A(e);if(r)return r.clone()}return r?r.clone():Y.clone()}function oe(e,r){return`Number(Text($feature["${e}"]) == "${r.value+""}")`}function ue(e,r){return`Number(!(${r.map(r=>`(Text($feature["${e}"]) == "${r.value+""}")`).join(" || ")}))`}function pe(e,r){return`Number($feature["${e}"] >= ${r.minValue} && $feature["${e}"] < ${r.maxValue})`}function ce(e,r){return`Number(!(${r.map(r=>`($feature["${e}"] >= ${r.minValue} && $feature["${e}"] < ${r.maxValue})`).join(" || ")}))`}export{H as createRenderer,ae as createRendererForClustering,J as regenerateRenderer};
|
|
5
|
+
import e from"../../Color.js";import{isSome as r}from"../../core/arrayUtils.js";import{createUniqueColors as i}from"../../core/colorUtils.js";import a from"../../core/Error.js";import{toPt as t}from"../../core/screenUtils.js";import{fetchMessageBundle as n}from"../../intl/messages.js";import s from"../../layers/support/AggregateField.js";import l from"../../layers/support/ExpressionInfo.js";import o from"../../renderers/PieChartRenderer.js";import u from"../../renderers/support/AttributeColorInfo.js";import p from"../../renderers/support/OthersCategory.js";import c from"../../renderers/support/RendererLegendOptions.js";import m from"../heuristics/outline.js";import f from"../heuristics/sizeRange.js";import{createVisualVariables as d}from"./size.js";import{spliceVisualVariables as b,updateAuthoringInfoVisualVariable as h,processRegenerateParams as y,getRendererToUpdate as w,getStyleType as g,hasOutlineVV as v,hasScaleDependentSizeVV as z,isSizeVV as E,findSizeVVIndex as S,findOutlineVVIndex as x,findScaleDependentSizeVVIndex as V}from"./support/regenerateUtils.js";import{errorCallback as j,createSymbol as C,getSymbolOutlineFromScheme as T,verifyBasicFieldValidity as $,getBasemapInfo as I}from"./support/utils.js";import O from"../statistics/predominantCategories.js";import{getSumOfAttributesExpr as k}from"../statistics/support/utils.js";import{verifyBinningParams as q}from"../support/binningUtils.js";import{getFieldsList as B}from"../support/utils.js";import{binningCapableLayerTypes as P,createLayerAdapter as U,getLayerTypeLabels as L,getLayerTypes as R}from"../support/adapters/support/layerUtils.js";import{cloneScheme as F,getSchemes as M}from"../symbology/pieChart.js";import _ from"../../symbols/SimpleLineSymbol.js";import{getCIMSymbolColor as A}from"../../symbols/support/cimSymbolUtils.js";const N=[2,3,4,6,7,8,9,12,15];async function W(e){if(!(e?.layer&&e.view&&e.attributes?.length))throw new a("pie-chart-renderer:missing-parameters","'layer', 'view' and 'attributes' parameters are required");if(e.attributes.length>10)throw new a("pie-chart-renderer:invalid-parameters","PieChart renderer does not support more than 10 attributes");e.forBinning&&q(e,"pie-chart-renderer");const r={...e,layer:e.layer,view:e.view,attributes:e.attributes};r.shape=r.shape||"pie",r.othersCategoryEnabled??=!0,r.includeSizeVariable=e.includeSizeVariable||!1;const i=e.forBinning?P:N,t=U(r.layer,i,e.forBinning);if(!t)throw new a("pie-chart-renderer:invalid-parameters","'layer' must be one of these types: "+L(i).join(", "));const n=null!=r.signal?{signal:r.signal}:null;await Promise.all([e.view.when(),t.load(n)]);const s=t.geometryType,l="polygon"===s,o="point"===s||"multipoint"===s||l;if(r.outlineOptimizationEnabled=!!l&&r.outlineOptimizationEnabled,r.sizeOptimizationEnabled=!!o&&r.sizeOptimizationEnabled,!o)throw new a("pie-chart-renderer:not-supported","PieChart renderer is only supported for point and polygon layers");const u=[],p=r.attributes;for(const a of p){const e=await B({field:a.field,valueExpression:a.valueExpression});u.push(...e)}const c=$(t,u.filter(Boolean),"pie-chart-renderer:invalid-parameters");if(c)throw c;return{...r,layer:t}}async function Z(e){const r="regenerate-pie-chart-renderer",i=e.includedParts?.includes("size-variable")??!0;await y(e,r);const t=await w(e);if("pie-chart"!==g(t))throw new a(`${r}:invalid-parameters`,"Renderer is invalid");const{visualVariables:n}=t,{layer:s,forBinning:l,filter:o,view:u,signal:p}=e,c=v(t),m=z(t),f=i&&n?.some(E),d=t.attributes.map(e=>({field:e.field,label:e.label,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle})),b=await W({layer:s,attributes:d,outlineOptimizationEnabled:c,sizeOptimizationEnabled:m,includeSizeVariable:f,forBinning:l,filter:o,view:u,signal:p});return{...e,creatorParameters:b,renderer:t}}async function D(e){let r=e.pieChartScheme,i=null,a=null;const t=await I(e.basemap,e.view);if(i=null!=t.basemapId?t.basemapId:null,a=null!=t.basemapTheme?t.basemapTheme:null,r)return{scheme:F(r),basemapId:i,basemapTheme:a};const n=M({numColors:e.attributes.length,geometryType:e.layer.geometryType,basemapTheme:a});return n&&(r=n.primaryScheme,i=n.basemapId,a=n.basemapTheme),{scheme:r,basemapId:i,basemapTheme:a}}async function G(e,r){const{valueExpression:i,sqlExpression:a,sqlWhere:t}=k(e.attributes),s=await n("esri/smartMapping/t9n/smartMapping");return d({layer:e.layer,basemap:e.basemap,valueExpression:i,sqlExpression:a,sqlWhere:t,sizeScheme:r,sizeOptimizationEnabled:e.sizeOptimizationEnabled,legendOptions:{title:s.sumOfCategories},filter:e.filter,view:e.view,signal:e.signal})}async function H(e){const[s,l]=await Promise.all([W(e),n("esri/smartMapping/t9n/smartMapping")]),d=await D(s),b=d?.scheme;if(!b)throw new a("pie-chart-renderer:insufficient-info","Unable to find pie-chart scheme");const{layer:h,includeSizeVariable:y,sizeOptimizationEnabled:w,outlineOptimizationEnabled:g,view:v,signal:z,filter:E}=s,S=b.sizeScheme,x=s.attributes,V=x.map(e=>e.field).filter(r),[$,I,k,q]=await Promise.all([V.length>1?O({layer:h,fields:V,view:v,signal:z,filter:E}):null,y?G(s,S):null,!y&&w?f({layer:h,view:v,signal:z,filter:E}).catch(j):null,g?m({layer:h,view:v,signal:z,filter:E}).catch(j):null]),B=$?.predominantCategoryInfos?{uniqueValueInfos:$.predominantCategoryInfos}:{uniqueValueInfos:V.map(e=>({value:e,count:0}))},P=i(b.colors,x.length),U=x.map((e,r)=>new u({field:e.field,valueExpression:e.valueExpression,label:e.label,valueExpressionTitle:e.valueExpressionTitle,color:P[r]})),L=h.geometryType,R=null!=S&&"background"in S&&S.background,M=new o({attributes:U,othersCategory:new p({label:l.other,color:s.othersCategoryEnabled?b.colorForOthersCategory:null,threshold:.04}),holePercentage:"donut"===s.shape?.45:0,backgroundFillSymbol:R?C(L,{type:"2d",color:R.color,outline:T(R,L,q?.opacity)}):null,size:t(b.size),outline:new _(T(b,"point",q?.opacity)),legendOptions:c.from(s.legendOptions)});if(I&&(K(I,w,L),M.authoringInfo=I.authoringInfo.clone(),M.visualVariables=I.visualVariables?.map(e=>e.clone())),q?.visualVariables?.length){const e=q.visualVariables.map(e=>e.clone()).filter(e=>"color"!==e.type&&"rotation"!==e.type);M.visualVariables?M.visualVariables.push(...e):M.visualVariables=e}return k?.minSize&&(Q(k,L),M.visualVariables?M.visualVariables.push(k.minSize):M.visualVariables=[k.minSize]),{renderer:M,pieChartScheme:F(b),size:I,basemapId:d.basemapId,basemapTheme:d.basemapTheme,statistics:B}}async function J(e){const{creatorParameters:r,view:i,signal:a,filter:t,renderer:n}=await Z(e),{layer:s,outlineOptimizationEnabled:l,includeSizeVariable:o,sizeOptimizationEnabled:u}=r,p=await D(r),c=p?.scheme?.sizeScheme,[d,y,w]=await Promise.all([l?m({layer:s,view:i,signal:a,filter:t}).catch(j):null,o?G(r,c):null,!o&&u?f({layer:s,view:i,signal:a,filter:t}).catch(j):null]),g=s.geometryType;if(y&&(K(y,u,g),b(n,y?.visualVariables,S),h(n,y?.authoringInfo,"size")),d?.visualVariables?.length){const e=d.visualVariables.map(e=>e.clone()).filter(e=>"color"!==e.type&&"rotation"!==e.type);b(n,e,x)}return w?.minSize&&(Q(w,g),b(n,w?.minSize,V)),{renderer:n}}function K(e,r,i){r||e.visualVariables.forEach(e=>{"number"==typeof e.minSize&&"number"==typeof e.maxSize&&(e.minSize*=2.5,e.maxSize*=1.8)}),r&&"point"===i&&e.visualVariables.forEach(e=>{e?.minSize&&"object"==typeof e.minSize&&e.minSize?.stops?.forEach(e=>{e.size*=1.8})})}function Q(e,r){"point"===r&&e.minSize.stops?.forEach(e=>{e.size*=2.5}),"polygon"===r&&e.minSize.stops?.forEach(e=>{e.size*=1.8})}const X=new Set(["unique-value","class-breaks"]),Y=new e("#aaaaaa"),ee=new e("#5c5c5c"),re=[new e("#e60049"),new e("#0bb4ff"),new e("#50e991"),new e("#e6d800"),new e("#9b19f5"),new e("#ffa300"),new e("#dc0ab4"),new e("#b3d4ff"),new e("#00bfa0"),new e("#f0cccc")];async function ie(e){if(!e||!e.layer)throw new a("pie-chart-cluster-renderer:missing-parameters","'layer' parameter is required");const r={...e};r.shape=r.shape||"pie",r.defaultSymbolEnabled??=!0;const i=e.layer;if(!R(N).includes(i.type))throw new a("pie-chart-cluster-renderer:invalid-parameters","'layer' must be one of these types: "+L(N).join(", "));const t=null!=r.signal?{signal:r.signal}:null;await i.load(t);if(!("point"===i.geometryType))throw new a("pie-chart-cluster-renderer:invalid-parameters","Cluster renderers are only supported for point layers");const n="renderer"in i?i.renderer:void 0;if(!n)throw new a("pie-chart-cluster-renderer:invalid-parameters","input layer does not have a renderer.");if(!X.has(n.type))throw new a("pie-chart-cluster-renderer:invalid-parameters",`Cannot create a pie chart renderer for clusters based on a ${n.type} renderer.`);if("valueExpression"in n&&n.valueExpression)throw new a("pie-chart-cluster-renderer:invalid-parameters","Cannot create a pie chart renderer for clusters from a layer whose renderer contains a valueExpression.");if("unique-value"===n.type){if(n.field2)throw new a("pie-chart-cluster-renderer:invalid-parameters","Cannot create a pie chart renderer for clusters from a UniqueValueRenderer using more than one field.");if(null!=n.uniqueValueInfos&&n.uniqueValueInfos.length>10)throw new a("pie-chart-cluster-renderer:invalid-parameters","PieChart cluster renderer cannot be created from a UniqueValueRenderer with more than 10 unique value infos.")}if("class-breaks"===n.type){if(n.classBreakInfos.length<2)throw new a("pie-chart-cluster-renderer:invalid-parameters","Cannot create a pie chart renderer for clusters from a layer renderer with a continuous color or size gradient.");if(n.classBreakInfos.length>10)throw new a("pie-chart-cluster-renderer:invalid-parameters","PieChart cluster renderer can not be created from a ClassBreaksRenderer with more than 10 class break infos.");if("class-breaks-size"===n?.authoringInfo?.type)throw new a("pie-chart-cluster-renderer:invalid-parameters","PieChart cluster renderer can not be created from a ClassBreaksRenderer with breaks varied by size instead of color.")}return r}async function ae(e){const r=await ie(e),{layer:i,shape:a,defaultSymbolEnabled:t,legendOptions:s}=r,l="renderer"in i?i.renderer:void 0,p=(await n("esri/smartMapping/t9n/smartMapping")).other;let m=[];"unique-value"===l?.type&&(m=te({renderer:l,defaultSymbolEnabled:t,defaultLabelBackup:p})),"class-breaks"===l?.type&&(m=ne({renderer:l,defaultSymbolEnabled:t,defaultLabelBackup:p}));const f=[],d=[];for(const n of m){const{field:e,color:r}=n;f.push(e),d.push(new u({color:r,field:e.name,label:e.alias}))}return{fields:f,renderer:new o({attributes:d,legendOptions:c.from(s),holePercentage:"donut"===a?.45:0,outline:null,size:9,othersCategory:null})}}function te(e){const{renderer:r,defaultSymbolEnabled:a,defaultLabelBackup:t}=e,{field:n,defaultSymbol:o,defaultLabel:u}=r,p=r.uniqueValueInfos??[],c=o&&a,m=c?9:10,f=i(re,m),d=(n?p.slice(0,m).map((e,r)=>{const i=e.label,a=f[r];return{field:new s({name:se(e.value?.toString()),alias:i,onStatisticExpression:new l({title:`Field definition - ${i}`,expression:oe(n,e),returnType:"number"}),statisticType:"sum"}),color:le(e.symbol,a)}}):null)??[];if(c){const e="cluster_default",r=u||t;d.push({field:new s({name:se(e),alias:r,onStatisticExpression:new l({title:`Field definition - ${r}`,expression:ue(n,p),returnType:"number"}),statisticType:"sum"}),color:le(o,ee)})}return d}function ne(e){const{renderer:r,defaultSymbolEnabled:a,defaultLabelBackup:t}=e,{field:n,classBreakInfos:o,defaultSymbol:u,defaultLabel:p}=r,c=u&&a,m=c?9:10,f=i(re,m),d=o.slice(0,m).map((e,r)=>{const i=e.label||`${e.minValue} - ${e.maxValue}`,a=f[r];return{field:new s({name:se(i),alias:i,onStatisticExpression:new l({title:`Field definition - ${i}`,expression:pe(n,e),returnType:"number"}),statisticType:"sum"}),color:le(e.symbol,a)}});if(c){const e="cluster_default",r=p||t;d.push({field:new s({name:se(e),alias:r,onStatisticExpression:new l({title:`Field definition - ${r}`,expression:ce(n,o),returnType:"number"}),statisticType:"sum"}),color:le(u,ee)})}return d}function se(e){return"SUM_"+(e+"").replaceAll(/[^a-zA-Z0-9_]/g,"_")}function le(e,r){if("simple-marker"===e?.type&&e.color)return e.color.clone();if("cim"===e?.type){const r=A(e);if(r)return r.clone()}return r?r.clone():Y.clone()}function oe(e,r){return`Number(Text($feature["${e}"]) == "${r.value+""}")`}function ue(e,r){return`Number(!(${r.map(r=>`(Text($feature["${e}"]) == "${r.value+""}")`).join(" || ")}))`}function pe(e,r){return`Number($feature["${e}"] >= ${r.minValue} && $feature["${e}"] < ${r.maxValue})`}function ce(e,r){return`Number(!(${r.map(r=>`($feature["${e}"] >= ${r.minValue} && $feature["${e}"] < ${r.maxValue})`).join(" || ")}))`}export{H as createRenderer,ae as createRendererForClustering,J as regenerateRenderer};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{createUniqueColors as e}from"../../core/colorUtils.js";import i from"../../core/Error.js";import{clone as a}from"../../core/lang.js";import{fetchMessageBundle as n}from"../../intl/messages.js";import l from"../../renderers/support/AuthoringInfo.js";import{AuthoringInfoClassBreakInfo as r}from"../../renderers/support/AuthoringInfoClassBreakInfo.js";import{AuthoringInfoFieldInfo as s}from"../../renderers/support/AuthoringInfoFieldInfo.js";import o from"../heuristics/outline.js";import t from"../heuristics/sizeRange.js";import{createRenderer as d}from"./type.js";import{spliceVisualVariables as m,processRegenerateParams as u,getRendererToUpdate as f,getStyleType as p,hasOutlineVV as c,hasScaleDependentSizeVV as h,findOutlineVVIndex as y,findScaleDependentSizeVVIndex as w}from"./support/regenerateUtils.js";import{errorCallback as b,verifyBasicFieldValidity as v,getClassBreaks as g,getBasemapInfo as I}from"./support/utils.js";import{verifyBinningParams as z}from"../support/binningUtils.js";import{binningCapableLayerTypes as M,featureCapableLayerTypes as F,createLayerAdapter as V,getLayerTypeLabels as T}from"../support/adapters/support/layerUtils.js";import{getColors as k,flatten2DArray as H,cloneScheme as L,getSchemes as C}from"../symbology/relationship.js";import{applyColorToSymbol as E}from"../../symbols/support/utils.js";const B=new Set(["equal-interval","natural-breaks","quantile"]),x=new Set(["HH","HL","LH","LL"]),$={2:[["HL","HH"],["LL","LH"]],3:[["HL","HM","HH"],["ML","MM","MH"],["LL","LM","LH"]],4:[["HL","HM1","HM2","HH"],["M2L","M2M1","M2M2","M2H"],["M1L","M1M1","M1M2","M1H"],["LL","LM1","LM2","LH"]]},O={2:["L","H"],3:["L","M","H"],4:["L","M1","M2","H"]},S=e=>({minValue:e.minValue,maxValue:e.maxValue});async function j(e){if(!(e?.layer&&e.view&&e.field1&&e.field2))throw new i("relationship-renderer:missing-parameters","'layer', 'view', 'field1' and 'field2' parameters are required");e.forBinning&&z(e,"relationship-renderer");const a={...e,layer:e.layer,field1:e.field1,field2:e.field2};if(a.symbolType??="2d",a.defaultSymbolEnabled??=!0,a.classificationMethod??="quantile",a.numClasses??=3,a.focus??=null,!B.has(a.classificationMethod))throw new i("relationship-renderer:invalid-parameters",`classification method ${a.classificationMethod} is not supported`);if(a.numClasses<2||a.numClasses>4)throw new i("relationship-renderer:invalid-parameters","'numClasses' must be 2, 3 or 4");if(e.focus&&!x.has(e.focus))throw new i("relationship-renderer:invalid-parameters","'focus' must be 'HH', 'HL', 'LH', 'LL' or null");const n=e.forBinning?M:F,l=V(a.layer,n,e.forBinning);if(!l)throw new i("relationship-renderer:invalid-parameters","'layer' must be one of these types: "+T(n).join(", "));const r=null!=a.signal?{signal:a.signal}:null;await l.load(r);const s=l.geometryType,o=a.symbolType.includes("3d");a.outlineOptimizationEnabled="polygon"===s&&a.outlineOptimizationEnabled;const t="featureReduction"in e.layer&&"cluster"===e.layer.featureReduction?.type;if(a.sizeOptimizationEnabled=!("point"!==s&&"multipoint"!==s&&"polyline"!==s||t)&&a.sizeOptimizationEnabled,"mesh"===s)a.symbolType="3d-volumetric",a.colorMixMode=a.colorMixMode||"replace",a.edgesType=a.edgesType||"none";else{if("3d-volumetric-uniform"===a.symbolType&&"point"!==s)throw new i("relationship-renderer:not-supported","3d-volumetric-uniform symbols are supported for point layers only");if(o&&"polygon"===s)throw new i("relationship-renderer:not-supported","3d symbols are not supported for polygon layers");if(a.symbolType.includes("3d-volumetric")&&"3d"!==a.view?.type)throw new i("relationship-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'")}const{field1:d,field2:m}=a,u=[d.field,m.field];d.normalizationField&&u.push(d.normalizationField),m.normalizationField&&u.push(m.normalizationField);const f=v(l,u,"relationship-renderer:invalid-parameters");if(f)throw f;return{...a,layer:l}}async function q(e){const a="regenerate-relationship-renderer";await u(e,a);const n=await f(e),l=p(n);if(!l||!["relationship","relationship-size"].includes(l))throw new i(`${a}:invalid-parameters`,"Renderer is invalid");const{layer:r,forBinning:s,filter:o,view:t,signal:d}=e,m=c(n),y=h(n),{field1:w,field2:b,classificationMethod:v,focus:g,numClasses:I}=n.authoringInfo,z={field:w.field,normalizationField:w.normalizationField,label:w.label},M={field:b.field,normalizationField:b.normalizationField,label:b.label},F=await j({layer:r,field1:z,field2:M,classificationMethod:v,numClasses:I,focus:g,outlineOptimizationEnabled:m,sizeOptimizationEnabled:y,forBinning:s,filter:o,view:t,signal:d});return{...e,creatorParameters:F,renderer:n}}async function N(e){if(!e?.renderer||!e.numClasses)throw new i("update-relationship-renderer:missing-parameters","'renderer' and 'numClasses' parameters are required");const{field1:a,field2:n,renderer:l,numClasses:r,colors:s}=e,o=r**2;if((a||n)&&!(a&&n&&a.field&&n.field))throw new i("update-relationship-renderer:missing-parameters","'field1' and 'field2' parameters are required");if(a&&!a.classBreakInfos||n&&!n.classBreakInfos)throw new i("update-relationship-renderer:missing-parameters","'field1.classBreakInfos' and 'field2.classBreakInfos' are required");if(!l.authoringInfo)throw new i("update-relationship-renderer:missing-parameters","'renderer.authoringInfo' is required");if(l.uniqueValueInfos?.length!==o)throw new i("update-relationship-renderer:invalid-parameters",`Renderer must have ${o} unique value infos to support ${r} classes`);if(s&&s.length!==o)throw new i("update-relationship-renderer:invalid-parameters",`The scheme must have ${o} colors`);return e}async function R(e){let i=e.relationshipScheme,a=null,n=null;const l=await I(e.basemap,e.view);if(a=null!=l.basemapId?l.basemapId:null,n=null!=l.basemapTheme?l.basemapTheme:null,i)return{scheme:L(i),basemapId:a,basemapTheme:n};const r=C({basemapTheme:n,geometryType:e.geometryType,theme:e.theme,worldScale:e.worldScale,view:e.view});return r&&(i=r.primaryScheme,a=r.basemapId,n=r.basemapTheme),{scheme:i,basemapId:a,basemapTheme:n}}function P(e,i){const n=a($[e]);return H(n,i)}function U(e,i){return P(e,i).map(e=>({value:e,count:0}))}function A(e,i,a,n){const{field:l,normalizationField:r}=e,{field:s,normalizationField:o}=i,t=a.map(e=>[e.minValue,e.maxValue]),d=n.map(e=>[e.minValue,e.maxValue]),m=t.length,u=O[m];return`\n var field1 = $feature['${l}'];\n var field2 = $feature['${s}'];\n var hasNormField1 = ${r?"true":"false"};\n var hasNormField2 = ${o?"true":"false"};\n var normField1 = ${r?`$feature['${r}']`:"null"};\n var normField2 = ${o?`$feature['${o}']`:"null"};\n\n if (\n IsEmpty(field1) ||\n IsEmpty(field2) ||\n (hasNormField1 && (IsEmpty(normField1) || normField1 == 0)) ||\n (hasNormField2 && (IsEmpty(normField2) || normField2 == 0))\n ) {\n return null;\n }\n\n var value1 = IIf(hasNormField1, (field1 / normField1), field1);\n var value2 = IIf(hasNormField2, (field2 / normField2), field2);\n\n var breaks1 = ${JSON.stringify(t)};\n var breaks2 = ${JSON.stringify(d)};\n var classCodes = ${JSON.stringify(u)};\n\n function getClassCode(value, breaks) {\n var code = null;\n\n for (var i in breaks) {\n var info = breaks[i];\n if (value >= info[0] && value <= info[1]) {\n code = classCodes[i];\n break;\n }\n }\n\n return code;\n }\n\n var code1 = getClassCode(value1, breaks1);\n var code2 = getClassCode(value2, breaks2);\n\n var classValue = IIf(IsEmpty(code1) || IsEmpty(code2), null, code1 + code2);\n return classValue;\n `}async function J(e,a,o){const t=await n("esri/smartMapping/t9n/smartMapping"),{basemap:m,classificationMethod:u,field1:f,field2:p,focus:c,numClasses:h,signal:y}=e,w=e.layer,b=a.classBreakInfos,v=o.classBreakInfos;if(h!==b.length||b.length!==v.length)throw new i("relationship-renderer:error","incompatible class breaks");const g=U(h,c),I=A(e.field1,e.field2,b,v),z=(await R({basemap:m,geometryType:w.geometryType,theme:"default",relationshipScheme:e.relationshipScheme,worldScale:!!e.symbolType?.includes("3d-volumetric"),view:e.view})).scheme,M=await d({layer:w,basemap:m,valueExpression:I,valueExpressionTitle:t.relationship.legendTitle,numTypes:-1,sortEnabled:!1,defaultSymbolEnabled:e.defaultSymbolEnabled,typeScheme:{colors:k(z,h,c),...z},statistics:{uniqueValueInfos:g},legendOptions:e.legendOptions,outlineOptimizationEnabled:e.outlineOptimizationEnabled,sizeOptimizationEnabled:e.sizeOptimizationEnabled,symbolType:e.symbolType,colorMixMode:e.colorMixMode,edgesType:e.edgesType,filter:e.filter,view:e.view,signal:y}),F=M.renderer,V=F.uniqueValueInfos,T=t.relationship;for(const i of V??[])i.label=T[i.value];const H=new l({type:"relationship",classificationMethod:u,numClasses:h,focus:c,field1:new s({field:f.field,normalizationField:f.normalizationField,label:f.label,classBreakInfos:b.map(({minValue:e,maxValue:i})=>new r({minValue:e,maxValue:i}))}),field2:new s({field:p.field,normalizationField:p.normalizationField,label:p.label,classBreakInfos:v.map(({minValue:e,maxValue:i})=>new r({minValue:e,maxValue:i}))})});return F.authoringInfo=H,{renderer:F,classBreaks:{field1:a,field2:o},uniqueValueInfos:M.uniqueValueInfos,relationshipScheme:z,basemapId:M.basemapId,basemapTheme:M.basemapTheme}}function D(e,i,a){const n=P(i,a);e.sort((e,i)=>{const a=n.indexOf(e.value),l=n.indexOf(i.value);let r=0;return a<l?r=-1:a>l&&(r=1),r})}function G(e,i){e.authoringInfo??=new l;const a=e.authoringInfo;a.numClasses=i.numClasses,a.focus=i.focus||null,a.focus||delete a.focus;const{field1:n,field2:o}=i;a.field1=new s({field:n.field,normalizationField:n.normalizationField,label:n.label,classBreakInfos:n.classBreakInfos.map(e=>new r(S(e)))}),a.field2=new s({field:o.field,normalizationField:o.normalizationField,label:o.label,classBreakInfos:o.classBreakInfos.map(e=>new r(S(e)))}),e.authoringInfo=a}async function K(e){const{layer:a,classificationMethod:n,field1:l,field2:r,numClasses:s,filter:o,view:t,signal:d}=e,m={layer:a,classificationMethod:n,field:l.field,normalizationField:l.normalizationField,normalizationType:l.normalizationField?"field":null,minValue:l.minValue,maxValue:l.maxValue,analyzeData:!(null!=l.minValue&&null!=l.maxValue),numClasses:s,filter:o,view:t,signal:d},u={layer:a,classificationMethod:n,field:r.field,normalizationField:r.normalizationField,normalizationType:r.normalizationField?"field":null,minValue:r.minValue,maxValue:r.maxValue,analyzeData:!(null!=r.minValue&&null!=r.maxValue),numClasses:s,filter:o,view:t,signal:d},[f,p]=await Promise.all([g(m),g(u)]);if(!f||!p)throw new i("relationship-renderer:error","error when calculating class breaks");return{field1:f.result,field2:p.result}}async function Q(i){const a=await N(i),{field1:n,field2:l,renderer:r,numClasses:s,focus:o,colors:t}=a,d=r.clone();d.valueExpression=A(n,l,n.classBreakInfos,l.classBreakInfos);const m=d.uniqueValueInfos??[];if(D(m,s,o),t){const i=e(t,t.length);m.forEach((e,a)=>E(e.symbol,i[a]))}return G(d,a),d}async function W(e){const i=await j(e),{field1:a,field2:n}=await K(i);return J(i,a,n)}async function X(e){const{creatorParameters:i,view:a,signal:n,filter:l,renderer:r}=await q(e),{layer:s,field1:d,field2:u,numClasses:f,focus:p,outlineOptimizationEnabled:c,sizeOptimizationEnabled:h}=i,{field1:v,field2:g}=await K(i),[I,z,M]=await Promise.all([Q({field1:{...d,classBreakInfos:v.classBreakInfos},field2:{...u,classBreakInfos:g.classBreakInfos},renderer:r,numClasses:f,focus:p}),c?o({layer:s,view:a,signal:n,filter:l}).catch(b):null,h?t({layer:s,view:a,signal:n,filter:l}).catch(b):null]);return m(I,z?.visualVariables,y),m(I,M?.minSize,w),{renderer:I}}export{W as createRenderer,X as regenerateRenderer,Q as updateRenderer};
|
|
5
|
+
import{createUniqueColors as e}from"../../core/colorUtils.js";import i from"../../core/Error.js";import{clone as a}from"../../core/lang.js";import{fetchMessageBundle as n}from"../../intl/messages.js";import l from"../../renderers/support/AuthoringInfo.js";import r from"../../renderers/support/AuthoringInfoClassBreakInfo.js";import s from"../../renderers/support/AuthoringInfoFieldInfo.js";import o from"../heuristics/outline.js";import t from"../heuristics/sizeRange.js";import{createRenderer as d}from"./type.js";import{spliceVisualVariables as m,processRegenerateParams as u,getRendererToUpdate as f,getStyleType as p,hasOutlineVV as c,hasScaleDependentSizeVV as h,findOutlineVVIndex as y,findScaleDependentSizeVVIndex as w}from"./support/regenerateUtils.js";import{errorCallback as b,verifyBasicFieldValidity as v,getClassBreaks as g,getBasemapInfo as I}from"./support/utils.js";import{verifyBinningParams as z}from"../support/binningUtils.js";import{binningCapableLayerTypes as M,featureCapableLayerTypes as F,createLayerAdapter as V,getLayerTypeLabels as T}from"../support/adapters/support/layerUtils.js";import{getColors as k,flatten2DArray as H,cloneScheme as L,getSchemes as C}from"../symbology/relationship.js";import{applyColorToSymbol as E}from"../../symbols/support/utils.js";const B=new Set(["equal-interval","natural-breaks","quantile"]),x=new Set(["HH","HL","LH","LL"]),$={2:[["HL","HH"],["LL","LH"]],3:[["HL","HM","HH"],["ML","MM","MH"],["LL","LM","LH"]],4:[["HL","HM1","HM2","HH"],["M2L","M2M1","M2M2","M2H"],["M1L","M1M1","M1M2","M1H"],["LL","LM1","LM2","LH"]]},O={2:["L","H"],3:["L","M","H"],4:["L","M1","M2","H"]},S=e=>({minValue:e.minValue,maxValue:e.maxValue});async function j(e){if(!(e?.layer&&e.view&&e.field1&&e.field2))throw new i("relationship-renderer:missing-parameters","'layer', 'view', 'field1' and 'field2' parameters are required");e.forBinning&&z(e,"relationship-renderer");const a={...e,layer:e.layer,field1:e.field1,field2:e.field2};if(a.symbolType??="2d",a.defaultSymbolEnabled??=!0,a.classificationMethod??="quantile",a.numClasses??=3,a.focus??=null,!B.has(a.classificationMethod))throw new i("relationship-renderer:invalid-parameters",`classification method ${a.classificationMethod} is not supported`);if(a.numClasses<2||a.numClasses>4)throw new i("relationship-renderer:invalid-parameters","'numClasses' must be 2, 3 or 4");if(e.focus&&!x.has(e.focus))throw new i("relationship-renderer:invalid-parameters","'focus' must be 'HH', 'HL', 'LH', 'LL' or null");const n=e.forBinning?M:F,l=V(a.layer,n,e.forBinning);if(!l)throw new i("relationship-renderer:invalid-parameters","'layer' must be one of these types: "+T(n).join(", "));const r=null!=a.signal?{signal:a.signal}:null;await l.load(r);const s=l.geometryType,o=a.symbolType.includes("3d");a.outlineOptimizationEnabled="polygon"===s&&a.outlineOptimizationEnabled;const t="featureReduction"in e.layer&&"cluster"===e.layer.featureReduction?.type;if(a.sizeOptimizationEnabled=!("point"!==s&&"multipoint"!==s&&"polyline"!==s||t)&&a.sizeOptimizationEnabled,"mesh"===s)a.symbolType="3d-volumetric",a.colorMixMode=a.colorMixMode||"replace",a.edgesType=a.edgesType||"none";else{if("3d-volumetric-uniform"===a.symbolType&&"point"!==s)throw new i("relationship-renderer:not-supported","3d-volumetric-uniform symbols are supported for point layers only");if(o&&"polygon"===s)throw new i("relationship-renderer:not-supported","3d symbols are not supported for polygon layers");if(a.symbolType.includes("3d-volumetric")&&"3d"!==a.view?.type)throw new i("relationship-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'")}const{field1:d,field2:m}=a,u=[d.field,m.field];d.normalizationField&&u.push(d.normalizationField),m.normalizationField&&u.push(m.normalizationField);const f=v(l,u,"relationship-renderer:invalid-parameters");if(f)throw f;return{...a,layer:l}}async function q(e){const a="regenerate-relationship-renderer";await u(e,a);const n=await f(e),l=p(n);if(!l||!["relationship","relationship-size"].includes(l))throw new i(`${a}:invalid-parameters`,"Renderer is invalid");const{layer:r,forBinning:s,filter:o,view:t,signal:d}=e,m=c(n),y=h(n),{field1:w,field2:b,classificationMethod:v,focus:g,numClasses:I}=n.authoringInfo,z={field:w.field,normalizationField:w.normalizationField,label:w.label},M={field:b.field,normalizationField:b.normalizationField,label:b.label},F=await j({layer:r,field1:z,field2:M,classificationMethod:v,numClasses:I,focus:g,outlineOptimizationEnabled:m,sizeOptimizationEnabled:y,forBinning:s,filter:o,view:t,signal:d});return{...e,creatorParameters:F,renderer:n}}async function N(e){if(!e?.renderer||!e.numClasses)throw new i("update-relationship-renderer:missing-parameters","'renderer' and 'numClasses' parameters are required");const{field1:a,field2:n,renderer:l,numClasses:r,colors:s}=e,o=r**2;if((a||n)&&!(a&&n&&a.field&&n.field))throw new i("update-relationship-renderer:missing-parameters","'field1' and 'field2' parameters are required");if(a&&!a.classBreakInfos||n&&!n.classBreakInfos)throw new i("update-relationship-renderer:missing-parameters","'field1.classBreakInfos' and 'field2.classBreakInfos' are required");if(!l.authoringInfo)throw new i("update-relationship-renderer:missing-parameters","'renderer.authoringInfo' is required");if(l.uniqueValueInfos?.length!==o)throw new i("update-relationship-renderer:invalid-parameters",`Renderer must have ${o} unique value infos to support ${r} classes`);if(s&&s.length!==o)throw new i("update-relationship-renderer:invalid-parameters",`The scheme must have ${o} colors`);return e}async function R(e){let i=e.relationshipScheme,a=null,n=null;const l=await I(e.basemap,e.view);if(a=null!=l.basemapId?l.basemapId:null,n=null!=l.basemapTheme?l.basemapTheme:null,i)return{scheme:L(i),basemapId:a,basemapTheme:n};const r=C({basemapTheme:n,geometryType:e.geometryType,theme:e.theme,worldScale:e.worldScale,view:e.view});return r&&(i=r.primaryScheme,a=r.basemapId,n=r.basemapTheme),{scheme:i,basemapId:a,basemapTheme:n}}function P(e,i){const n=a($[e]);return H(n,i)}function U(e,i){return P(e,i).map(e=>({value:e,count:0}))}function A(e,i,a,n){const{field:l,normalizationField:r}=e,{field:s,normalizationField:o}=i,t=a.map(e=>[e.minValue,e.maxValue]),d=n.map(e=>[e.minValue,e.maxValue]),m=t.length,u=O[m];return`\n var field1 = $feature['${l}'];\n var field2 = $feature['${s}'];\n var hasNormField1 = ${r?"true":"false"};\n var hasNormField2 = ${o?"true":"false"};\n var normField1 = ${r?`$feature['${r}']`:"null"};\n var normField2 = ${o?`$feature['${o}']`:"null"};\n\n if (\n IsEmpty(field1) ||\n IsEmpty(field2) ||\n (hasNormField1 && (IsEmpty(normField1) || normField1 == 0)) ||\n (hasNormField2 && (IsEmpty(normField2) || normField2 == 0))\n ) {\n return null;\n }\n\n var value1 = IIf(hasNormField1, (field1 / normField1), field1);\n var value2 = IIf(hasNormField2, (field2 / normField2), field2);\n\n var breaks1 = ${JSON.stringify(t)};\n var breaks2 = ${JSON.stringify(d)};\n var classCodes = ${JSON.stringify(u)};\n\n function getClassCode(value, breaks) {\n var code = null;\n\n for (var i in breaks) {\n var info = breaks[i];\n if (value >= info[0] && value <= info[1]) {\n code = classCodes[i];\n break;\n }\n }\n\n return code;\n }\n\n var code1 = getClassCode(value1, breaks1);\n var code2 = getClassCode(value2, breaks2);\n\n var classValue = IIf(IsEmpty(code1) || IsEmpty(code2), null, code1 + code2);\n return classValue;\n `}async function J(e,a,o){const t=await n("esri/smartMapping/t9n/smartMapping"),{basemap:m,classificationMethod:u,field1:f,field2:p,focus:c,numClasses:h,signal:y}=e,w=e.layer,b=a.classBreakInfos,v=o.classBreakInfos;if(h!==b.length||b.length!==v.length)throw new i("relationship-renderer:error","incompatible class breaks");const g=U(h,c),I=A(e.field1,e.field2,b,v),z=(await R({basemap:m,geometryType:w.geometryType,theme:"default",relationshipScheme:e.relationshipScheme,worldScale:!!e.symbolType?.includes("3d-volumetric"),view:e.view})).scheme,M=await d({layer:w,basemap:m,valueExpression:I,valueExpressionTitle:t.relationship.legendTitle,numTypes:-1,sortEnabled:!1,defaultSymbolEnabled:e.defaultSymbolEnabled,typeScheme:{colors:k(z,h,c),...z},statistics:{uniqueValueInfos:g},legendOptions:e.legendOptions,outlineOptimizationEnabled:e.outlineOptimizationEnabled,sizeOptimizationEnabled:e.sizeOptimizationEnabled,symbolType:e.symbolType,colorMixMode:e.colorMixMode,edgesType:e.edgesType,filter:e.filter,view:e.view,signal:y}),F=M.renderer,V=F.uniqueValueInfos,T=t.relationship;for(const i of V??[])i.label=T[i.value];const H=new l({type:"relationship",classificationMethod:u,numClasses:h,focus:c,field1:new s({field:f.field,normalizationField:f.normalizationField,label:f.label,classBreakInfos:b.map(({minValue:e,maxValue:i})=>new r({minValue:e,maxValue:i}))}),field2:new s({field:p.field,normalizationField:p.normalizationField,label:p.label,classBreakInfos:v.map(({minValue:e,maxValue:i})=>new r({minValue:e,maxValue:i}))})});return F.authoringInfo=H,{renderer:F,classBreaks:{field1:a,field2:o},uniqueValueInfos:M.uniqueValueInfos,relationshipScheme:z,basemapId:M.basemapId,basemapTheme:M.basemapTheme}}function D(e,i,a){const n=P(i,a);e.sort((e,i)=>{const a=n.indexOf(e.value),l=n.indexOf(i.value);let r=0;return a<l?r=-1:a>l&&(r=1),r})}function G(e,i){e.authoringInfo??=new l;const a=e.authoringInfo;a.numClasses=i.numClasses,a.focus=i.focus||null,a.focus||delete a.focus;const{field1:n,field2:o}=i;a.field1=new s({field:n.field,normalizationField:n.normalizationField,label:n.label,classBreakInfos:n.classBreakInfos.map(e=>new r(S(e)))}),a.field2=new s({field:o.field,normalizationField:o.normalizationField,label:o.label,classBreakInfos:o.classBreakInfos.map(e=>new r(S(e)))}),e.authoringInfo=a}async function K(e){const{layer:a,classificationMethod:n,field1:l,field2:r,numClasses:s,filter:o,view:t,signal:d}=e,m={layer:a,classificationMethod:n,field:l.field,normalizationField:l.normalizationField,normalizationType:l.normalizationField?"field":null,minValue:l.minValue,maxValue:l.maxValue,analyzeData:!(null!=l.minValue&&null!=l.maxValue),numClasses:s,filter:o,view:t,signal:d},u={layer:a,classificationMethod:n,field:r.field,normalizationField:r.normalizationField,normalizationType:r.normalizationField?"field":null,minValue:r.minValue,maxValue:r.maxValue,analyzeData:!(null!=r.minValue&&null!=r.maxValue),numClasses:s,filter:o,view:t,signal:d},[f,p]=await Promise.all([g(m),g(u)]);if(!f||!p)throw new i("relationship-renderer:error","error when calculating class breaks");return{field1:f.result,field2:p.result}}async function Q(i){const a=await N(i),{field1:n,field2:l,renderer:r,numClasses:s,focus:o,colors:t}=a,d=r.clone();d.valueExpression=A(n,l,n.classBreakInfos,l.classBreakInfos);const m=d.uniqueValueInfos??[];if(D(m,s,o),t){const i=e(t,t.length);m.forEach((e,a)=>E(e.symbol,i[a]))}return G(d,a),d}async function W(e){const i=await j(e),{field1:a,field2:n}=await K(i);return J(i,a,n)}async function X(e){const{creatorParameters:i,view:a,signal:n,filter:l,renderer:r}=await q(e),{layer:s,field1:d,field2:u,numClasses:f,focus:p,outlineOptimizationEnabled:c,sizeOptimizationEnabled:h}=i,{field1:v,field2:g}=await K(i),[I,z,M]=await Promise.all([Q({field1:{...d,classBreakInfos:v.classBreakInfos},field2:{...u,classBreakInfos:g.classBreakInfos},renderer:r,numClasses:f,focus:p}),c?o({layer:s,view:a,signal:n,filter:l}).catch(b):null,h?t({layer:s,view:a,signal:n,filter:l}).catch(b):null]);return m(I,z?.visualVariables,y),m(I,M?.minSize,w),{renderer:I}}export{W as createRenderer,X as regenerateRenderer,Q as updateRenderer};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../core/Error.js";import i from"../../renderers/support/AuthoringInfo.js";import a from"../../renderers/support/ClassBreakInfo.js";import s from"../../renderers/visualVariables/support/SizeStop.js";import{getSize as o}from"../../renderers/visualVariables/support/visualVariableUtils.js";import{createVisualVariable as n}from"./color.js";import{createVisualVariables as l,createContinuousRenderer as t,regenerateContinuousRenderer as r}from"./size.js";import{isColorVV as u,updateAuthoringInfoVisualVariable as p,spliceVisualVariables as m,getAuthoringInfoVisualVariable as c,processRegenerateParams as v,getRendererToUpdate as d,getStyleType as f,hasOutlineVV as b,hasScaleDependentSizeVV as y,findSizeVVIndex as w}from"./support/regenerateUtils.js";import{verifyBasicFieldValidity as h,createStopValuesForAboveBelow as z,clampAboveAndBelowStopValues as g,createDefaultStopValues as V}from"./support/utils.js";import{verifyBinningParams as O}from"../support/binningUtils.js";import{isAnyDateField as x,getFieldsList as E}from"../support/utils.js";import{binningCapableLayerTypes as S,featureCapableLayerTypes as I,createLayerAdapter as T,getLayerTypeLabels as j}from"../support/adapters/support/layerUtils.js";import{getAboveAndBelowSymbols as B}from"../symbology/support/aboveAndBelowUtils.js";import{applyCIMSymbolColor as q}from"../../symbols/support/cimSymbolUtils.js";import{Symbol3DMaterial as D}from"../../symbols/support/Symbol3DMaterial.js";const U=2**53-1;async function C(i){if(!i?.layer||!(i.field||i.valueExpression||i.sqlExpression))throw new e("univariate-colorsize-visual-variables:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(i.valueExpression&&!i.sqlExpression&&!i.view)throw new e("univariate-colorsize-visual-variables:missing-parameters","View is required when 'valueExpression' is specified");if("above-and-below"===i.theme&&i.sizeOptions?.sizeOptimizationEnabled)throw new e("univariate-colorsize-visual-variables:invalid-parameters","sizeOptimizationEnabled cannot be true for 'above-and-below' theme");i.forBinning&&O(i,"univariate-colorsize-visual-variables");const a={...i,layer:i.layer},s=i.forBinning?S:I,o=T(a.layer,s,i.forBinning);if(!o)throw new e("univariate-colorsize-visual-variables:invalid-parameters","'layer' must be one of these types: "+j(s).join(", "));a.layer=o,a.theme=a.theme||a.colorOptions?.theme?a.theme:"high-to-low";const n=null!=a.signal?{signal:a.signal}:null;await o.load(n);const l=await E({field:a.field,normalizationField:a.normalizationField,valueExpression:a.valueExpression}),t=h(o,l,"univariate-colorsize-visual-variables:invalid-parameters");if(t)throw t;return a}function F(e,i){const a={...e},{sizeOptions:s,theme:o}=a,n=a.legendOptions||a.sizeOptions?.legendOptions;return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:"above-and-below"===o?null:o,legendOptions:n}}function k(e,i){const a={...e},s=a.colorOptions,o=a.theme||s?.theme,n=a.legendOptions||a.colorOptions?.legendOptions;return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:o,legendOptions:n}}async function A(i){if(!i?.layer||!(i.field||i.valueExpression||i.sqlExpression))throw new e("univariate-colorsize-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(i.valueExpression&&!i.sqlExpression&&!i.view)throw new e("univariate-colorsize-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");i.forBinning&&O(i,"univariate-colorsize-continuous-renderer");const a={...i,layer:i.layer};a.symbolType=a.symbolType||"2d",a.colorOptions||(a.colorOptions={}),a.colorOptions.isContinuous=a.colorOptions.isContinuous??!1;const s=i.forBinning?S:I,o=T(a.layer,s,i.forBinning);if(!o)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+j(s).join(", "));const n=null!=a.signal?{signal:a.signal}:null;if(await o.load(n),"above-and-below"===a.theme&&a.symbolOptions){if(a.symbolType.includes("3d-volumetric"))throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' is applicable for '2d' and '3d-flat' 'symbolType' only");if("point"!==o.geometryType&&"polygon"!==o.geometryType)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' only apply to layers with 'point' or 'polygon' geometryType")}const l=await E({field:a.field,normalizationField:a.normalizationField,valueExpression:a.valueExpression}),t=h(o,l,"univariate-colorsize-continuous-renderer:invalid-parameters");if(t)throw t;return{...a,layer:o}}function M(e){const i={...e},a={...i.sizeOptions};return delete i.sizeOptions,delete i.colorOptions,delete a.sizeOptimizationEnabled,{...i,...a}}async function P(i){const a="regenerate-univariate-color-size-renderer";await v(i,a);const s=await d(i);if("univariate-color-size"!==f(s))throw new e(`${a}:invalid-parameters`,"Renderer is invalid");const{layer:o,forBinning:n,filter:l,view:t,signal:r}=i,{field:u,normalizationField:p,valueExpression:m,valueExpressionTitle:c}=s,w=b(s),h=y(s),z=s.authoringInfo?.univariateTheme,g=await A({layer:o,field:u,normalizationField:p,valueExpression:m,valueExpressionTitle:c,outlineOptimizationEnabled:w,theme:z,colorOptions:{isContinuous:"above-and-below"===z?s.visualVariables?.some(e=>"color"===e.type):void 0},sizeOptions:{sizeOptimizationEnabled:h},forBinning:n,filter:l,view:t,signal:r});return{...i,creatorParameters:g,renderer:s}}function R(e,i){if("type"in e&&"cim"===e.type)q(e,i);else if("type"in e&&e.type.includes("3d")){e.symbolLayers.forEach(e=>{"material"in e&&null!=e.material&&"color"in e.material&&(e.material?e.material.color=i:e.material=new D({color:i}))})}else"color"in e&&(e.color=i)}function L(e,i,a){if((i?.symbolStyle||i?.symbols)&&("point"===a||"polygon"===a))return i.symbols||B(i.symbolStyle);const s=e.classBreakInfos[0].symbol;return{above:s.clone(),below:s.clone()}}function $(e,i,s){const o=s.symbolOptions,n=s.layer,l=o?.symbols?"custom":o?.symbolStyle,t=s.colorOptions?.isContinuous;if(G(e,i,t),l||!t){const s=i.size.visualVariables[0].stops,{above:r,below:u}=L(e,o,n.geometryType);if(!t){const e=i.color.colorScheme.colors,a=e[0];R(r,e[e.length-1]),R(u,a)}e.classBreakInfos=[new a({minValue:-U,maxValue:s[2].value,symbol:u}),new a({minValue:s[2].value,maxValue:U,symbol:r})],l&&e.authoringInfo&&(e.authoringInfo.univariateSymbolStyle=l)}}function G(e,i,a=!0){const s=i?.authoringInfo?.clone(),o=s?.visualVariables?.some(e=>"reference-size"===e.theme),n=o?[]:i.size.visualVariables.map(e=>e.clone());a?n.push(i.color.visualVariable.clone()):s.visualVariables=s.visualVariables?.filter(e=>"size"===e.type),e.visualVariables&&n.push(...e.visualVariables.filter(e=>"target"in e&&"outline"===e.target).map(e=>e.clone())),e.authoringInfo=s,e.visualVariables=n}function H(e){const i={...e},a=i.symbolType,s=!!a?.includes("3d-volumetric");delete i.symbolType,delete i.defaultSymbolEnabled;const o=i;return o.worldScale=s,s&&(o.sizeOptions={...o.sizeOptions},o.sizeOptions.axis="3d-volumetric-uniform"===a?"all":"height"),o}async function J(e,i,a,n){const l=i[0],t=i[1],r=Math.round((t-l)/2)+l,u=e.clone();u.stops=[new s({value:a[0],size:t}),new s({value:a[1],size:r}),new s({value:a[2],size:l}),new s({value:a[3],size:r}),new s({value:a[4],size:t})],e.stops=[new s({value:n[0],size:o(u,n[0])}),new s({value:n[1],size:o(u,n[1])}),new s({value:n[2],size:o(u,n[2])}),new s({value:n[3],size:o(u,n[3])}),new s({value:n[4],size:o(u,n[4])})]}async function K(e,i,a,s,o){const n=e.find(e=>"width-and-depth"!==e.axis&&!e.target),l="number"==typeof n?.minSize?n?.minSize:null,t="number"==typeof n?.maxSize?n?.maxSize:null;if(null!=n?.minDataValue&&null!=l&&null!=t)if(s)if("above-and-below"===s){n.minDataValue=null,n.maxDataValue=null,n.minSize=null,n.maxSize=null;const e=z(a,o),s=g(e,a);await J(n,[l,t],e,s),i.stops.forEach((e,i)=>e.value=s[i])}else{const{minDataValue:e,maxDataValue:a}=n,s=V(e,a,5);i.stops.forEach((e,i)=>e.value=s[i]),n.minDataValue=s[0],n.maxDataValue=s[s.length-1]}else n.minDataValue=i.stops[0].value,n.maxDataValue=i.stops[i.stops.length-1].value}function N(e,a,s){const{theme:o,minValue:n,maxValue:l}=e,t=a.authoringInfo.visualVariables[0].clone(),r=s.authoringInfo.visualVariables[0].clone(),{stops:u}=a.visualVariable;return"above-and-below"===o?(t.minSliderValue=r.minSliderValue=n??u[0].value,t.maxSliderValue=r.maxSliderValue=l??u.at(-1)?.value,r.theme="above-and-below"):o&&"high-to-low"!==o||"reference-size"!==r.theme||2!==r.sizeStops?.length||(r.sizeStops[0].value=u[0].value,r.sizeStops[1].value=u.at(-1)?.value),new i({type:"univariate-color-size",univariateTheme:o,visualVariables:[t,r]})}async function Q(e){const i=await C(e),a=await n(k(i)),{visualVariable:s,statistics:o}=a,t=await l(F(i,o)),r=t.visualVariables,u=e.layer,p=e.field?u.getField(e.field):null;return await K(r,s,o,i.theme,x(p)),{basemapId:t.basemapId,basemapTheme:t.basemapTheme,statistics:o,defaultValuesUsed:a.defaultValuesUsed,color:{visualVariable:s,colorScheme:a.colorScheme},size:{visualVariables:r,sizeScheme:t.sizeScheme},authoringInfo:N(i,a,t)}}async function W(e){return X(e)}async function X(e){const i=await A(e),{renderer:a,statistics:s,defaultValuesUsed:o}=await t(M(i)),n=H(i);n.statistics=s;const l=await Q(n);return"above-and-below"===i.theme?$(a,l,i):G(a,l),{renderer:a,statistics:s,defaultValuesUsed:o,color:i.colorOptions?.isContinuous||"above-and-below"!==i.theme?l.color:null,size:l.size,basemapId:l.basemapId,basemapTheme:l.basemapTheme}}async function Y(e){const{creatorParameters:i}=await P(e),{layer:a,field:s,theme:o,colorOptions:t}=i,{renderer:v,statistics:d}=await r(e),f=await C({...H(i),statistics:d}),b=await n(k(f)),y=b.visualVariable,h=(await l(F(f))).visualVariables,z=s?a.getField(s):null;await K(h,y,d,o,x(z));const g=t?.isContinuous||"above-and-below"!==o,V=v.visualVariables?.find(u);g&&V?.stops&&(V.stops.forEach((e,i)=>e.value=y.stops[i].value),p(v,b.authoringInfo,"color")),m(v,h,w);const O=c(v,"size");if((!o||"high-to-low"===o)&&"reference-size"===O?.theme&&2===O.sizeStops?.length){const{stops:e}=y;O.sizeStops[0].value=e[0].value,O.sizeStops[1].value=e.at(-1)?.value}if("above-and-below"===o&&h[0]?.stops){const e=h[0].stops;v.classBreakInfos[0].maxValue=e[2].value,v.classBreakInfos[1].minValue=e[2].value}return{renderer:v}}export{W as createContinuousRenderer,X as createRenderer,Q as createVisualVariables,Y as regenerateRenderer};
|
|
5
|
+
import e from"../../core/Error.js";import i from"../../renderers/support/AuthoringInfo.js";import a from"../../renderers/support/ClassBreakInfo.js";import s from"../../renderers/visualVariables/support/SizeStop.js";import{getSize as o}from"../../renderers/visualVariables/support/visualVariableUtils.js";import{createVisualVariable as n}from"./color.js";import{createVisualVariables as l,createContinuousRenderer as t,regenerateContinuousRenderer as r}from"./size.js";import{isColorVV as u,updateAuthoringInfoVisualVariable as p,spliceVisualVariables as m,getAuthoringInfoVisualVariable as c,processRegenerateParams as v,getRendererToUpdate as d,getStyleType as f,hasOutlineVV as b,hasScaleDependentSizeVV as y,findSizeVVIndex as w}from"./support/regenerateUtils.js";import{verifyBasicFieldValidity as h,createStopValuesForAboveBelow as z,clampAboveAndBelowStopValues as g,createDefaultStopValues as V}from"./support/utils.js";import{verifyBinningParams as O}from"../support/binningUtils.js";import{isAnyDateField as x,getFieldsList as E}from"../support/utils.js";import{binningCapableLayerTypes as S,featureCapableLayerTypes as I,createLayerAdapter as T,getLayerTypeLabels as j}from"../support/adapters/support/layerUtils.js";import{getAboveAndBelowSymbols as B}from"../symbology/support/aboveAndBelowUtils.js";import{applyCIMSymbolColor as q}from"../../symbols/support/cimSymbolUtils.js";import D from"../../symbols/support/Symbol3DMaterial.js";const U=2**53-1;async function C(i){if(!i?.layer||!(i.field||i.valueExpression||i.sqlExpression))throw new e("univariate-colorsize-visual-variables:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(i.valueExpression&&!i.sqlExpression&&!i.view)throw new e("univariate-colorsize-visual-variables:missing-parameters","View is required when 'valueExpression' is specified");if("above-and-below"===i.theme&&i.sizeOptions?.sizeOptimizationEnabled)throw new e("univariate-colorsize-visual-variables:invalid-parameters","sizeOptimizationEnabled cannot be true for 'above-and-below' theme");i.forBinning&&O(i,"univariate-colorsize-visual-variables");const a={...i,layer:i.layer},s=i.forBinning?S:I,o=T(a.layer,s,i.forBinning);if(!o)throw new e("univariate-colorsize-visual-variables:invalid-parameters","'layer' must be one of these types: "+j(s).join(", "));a.layer=o,a.theme=a.theme||a.colorOptions?.theme?a.theme:"high-to-low";const n=null!=a.signal?{signal:a.signal}:null;await o.load(n);const l=await E({field:a.field,normalizationField:a.normalizationField,valueExpression:a.valueExpression}),t=h(o,l,"univariate-colorsize-visual-variables:invalid-parameters");if(t)throw t;return a}function F(e,i){const a={...e},{sizeOptions:s,theme:o}=a,n=a.legendOptions||a.sizeOptions?.legendOptions;return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:"above-and-below"===o?null:o,legendOptions:n}}function k(e,i){const a={...e},s=a.colorOptions,o=a.theme||s?.theme,n=a.legendOptions||a.colorOptions?.legendOptions;return delete a.sizeOptions,delete a.colorOptions,{...a,...s,statistics:i||a.statistics,theme:o,legendOptions:n}}async function A(i){if(!i?.layer||!(i.field||i.valueExpression||i.sqlExpression))throw new e("univariate-colorsize-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(i.valueExpression&&!i.sqlExpression&&!i.view)throw new e("univariate-colorsize-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");i.forBinning&&O(i,"univariate-colorsize-continuous-renderer");const a={...i,layer:i.layer};a.symbolType=a.symbolType||"2d",a.colorOptions||(a.colorOptions={}),a.colorOptions.isContinuous=a.colorOptions.isContinuous??!1;const s=i.forBinning?S:I,o=T(a.layer,s,i.forBinning);if(!o)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+j(s).join(", "));const n=null!=a.signal?{signal:a.signal}:null;if(await o.load(n),"above-and-below"===a.theme&&a.symbolOptions){if(a.symbolType.includes("3d-volumetric"))throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' is applicable for '2d' and '3d-flat' 'symbolType' only");if("point"!==o.geometryType&&"polygon"!==o.geometryType)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' only apply to layers with 'point' or 'polygon' geometryType")}const l=await E({field:a.field,normalizationField:a.normalizationField,valueExpression:a.valueExpression}),t=h(o,l,"univariate-colorsize-continuous-renderer:invalid-parameters");if(t)throw t;return{...a,layer:o}}function M(e){const i={...e},a={...i.sizeOptions};return delete i.sizeOptions,delete i.colorOptions,delete a.sizeOptimizationEnabled,{...i,...a}}async function P(i){const a="regenerate-univariate-color-size-renderer";await v(i,a);const s=await d(i);if("univariate-color-size"!==f(s))throw new e(`${a}:invalid-parameters`,"Renderer is invalid");const{layer:o,forBinning:n,filter:l,view:t,signal:r}=i,{field:u,normalizationField:p,valueExpression:m,valueExpressionTitle:c}=s,w=b(s),h=y(s),z=s.authoringInfo?.univariateTheme,g=await A({layer:o,field:u,normalizationField:p,valueExpression:m,valueExpressionTitle:c,outlineOptimizationEnabled:w,theme:z,colorOptions:{isContinuous:"above-and-below"===z?s.visualVariables?.some(e=>"color"===e.type):void 0},sizeOptions:{sizeOptimizationEnabled:h},forBinning:n,filter:l,view:t,signal:r});return{...i,creatorParameters:g,renderer:s}}function R(e,i){if("type"in e&&"cim"===e.type)q(e,i);else if("type"in e&&e.type.includes("3d")){e.symbolLayers.forEach(e=>{"material"in e&&null!=e.material&&"color"in e.material&&(e.material?e.material.color=i:e.material=new D({color:i}))})}else"color"in e&&(e.color=i)}function L(e,i,a){if((i?.symbolStyle||i?.symbols)&&("point"===a||"polygon"===a))return i.symbols||B(i.symbolStyle);const s=e.classBreakInfos[0].symbol;return{above:s.clone(),below:s.clone()}}function $(e,i,s){const o=s.symbolOptions,n=s.layer,l=o?.symbols?"custom":o?.symbolStyle,t=s.colorOptions?.isContinuous;if(G(e,i,t),l||!t){const s=i.size.visualVariables[0].stops,{above:r,below:u}=L(e,o,n.geometryType);if(!t){const e=i.color.colorScheme.colors,a=e[0];R(r,e[e.length-1]),R(u,a)}e.classBreakInfos=[new a({minValue:-U,maxValue:s[2].value,symbol:u}),new a({minValue:s[2].value,maxValue:U,symbol:r})],l&&e.authoringInfo&&(e.authoringInfo.univariateSymbolStyle=l)}}function G(e,i,a=!0){const s=i?.authoringInfo?.clone(),o=s?.visualVariables?.some(e=>"reference-size"===e.theme),n=o?[]:i.size.visualVariables.map(e=>e.clone());a?n.push(i.color.visualVariable.clone()):s.visualVariables=s.visualVariables?.filter(e=>"size"===e.type),e.visualVariables&&n.push(...e.visualVariables.filter(e=>"target"in e&&"outline"===e.target).map(e=>e.clone())),e.authoringInfo=s,e.visualVariables=n}function H(e){const i={...e},a=i.symbolType,s=!!a?.includes("3d-volumetric");delete i.symbolType,delete i.defaultSymbolEnabled;const o=i;return o.worldScale=s,s&&(o.sizeOptions={...o.sizeOptions},o.sizeOptions.axis="3d-volumetric-uniform"===a?"all":"height"),o}async function J(e,i,a,n){const l=i[0],t=i[1],r=Math.round((t-l)/2)+l,u=e.clone();u.stops=[new s({value:a[0],size:t}),new s({value:a[1],size:r}),new s({value:a[2],size:l}),new s({value:a[3],size:r}),new s({value:a[4],size:t})],e.stops=[new s({value:n[0],size:o(u,n[0])}),new s({value:n[1],size:o(u,n[1])}),new s({value:n[2],size:o(u,n[2])}),new s({value:n[3],size:o(u,n[3])}),new s({value:n[4],size:o(u,n[4])})]}async function K(e,i,a,s,o){const n=e.find(e=>"width-and-depth"!==e.axis&&!e.target),l="number"==typeof n?.minSize?n?.minSize:null,t="number"==typeof n?.maxSize?n?.maxSize:null;if(null!=n?.minDataValue&&null!=l&&null!=t)if(s)if("above-and-below"===s){n.minDataValue=null,n.maxDataValue=null,n.minSize=null,n.maxSize=null;const e=z(a,o),s=g(e,a);await J(n,[l,t],e,s),i.stops.forEach((e,i)=>e.value=s[i])}else{const{minDataValue:e,maxDataValue:a}=n,s=V(e,a,5);i.stops.forEach((e,i)=>e.value=s[i]),n.minDataValue=s[0],n.maxDataValue=s[s.length-1]}else n.minDataValue=i.stops[0].value,n.maxDataValue=i.stops[i.stops.length-1].value}function N(e,a,s){const{theme:o,minValue:n,maxValue:l}=e,t=a.authoringInfo.visualVariables[0].clone(),r=s.authoringInfo.visualVariables[0].clone(),{stops:u}=a.visualVariable;return"above-and-below"===o?(t.minSliderValue=r.minSliderValue=n??u[0].value,t.maxSliderValue=r.maxSliderValue=l??u.at(-1)?.value,r.theme="above-and-below"):o&&"high-to-low"!==o||"reference-size"!==r.theme||2!==r.sizeStops?.length||(r.sizeStops[0].value=u[0].value,r.sizeStops[1].value=u.at(-1)?.value),new i({type:"univariate-color-size",univariateTheme:o,visualVariables:[t,r]})}async function Q(e){const i=await C(e),a=await n(k(i)),{visualVariable:s,statistics:o}=a,t=await l(F(i,o)),r=t.visualVariables,u=e.layer,p=e.field?u.getField(e.field):null;return await K(r,s,o,i.theme,x(p)),{basemapId:t.basemapId,basemapTheme:t.basemapTheme,statistics:o,defaultValuesUsed:a.defaultValuesUsed,color:{visualVariable:s,colorScheme:a.colorScheme},size:{visualVariables:r,sizeScheme:t.sizeScheme},authoringInfo:N(i,a,t)}}async function W(e){return X(e)}async function X(e){const i=await A(e),{renderer:a,statistics:s,defaultValuesUsed:o}=await t(M(i)),n=H(i);n.statistics=s;const l=await Q(n);return"above-and-below"===i.theme?$(a,l,i):G(a,l),{renderer:a,statistics:s,defaultValuesUsed:o,color:i.colorOptions?.isContinuous||"above-and-below"!==i.theme?l.color:null,size:l.size,basemapId:l.basemapId,basemapTheme:l.basemapTheme}}async function Y(e){const{creatorParameters:i}=await P(e),{layer:a,field:s,theme:o,colorOptions:t}=i,{renderer:v,statistics:d}=await r(e),f=await C({...H(i),statistics:d}),b=await n(k(f)),y=b.visualVariable,h=(await l(F(f))).visualVariables,z=s?a.getField(s):null;await K(h,y,d,o,x(z));const g=t?.isContinuous||"above-and-below"!==o,V=v.visualVariables?.find(u);g&&V?.stops&&(V.stops.forEach((e,i)=>e.value=y.stops[i].value),p(v,b.authoringInfo,"color")),m(v,h,w);const O=c(v,"size");if((!o||"high-to-low"===o)&&"reference-size"===O?.theme&&2===O.sizeStops?.length){const{stops:e}=y;O.sizeStops[0].value=e[0].value,O.sizeStops[1].value=e.at(-1)?.value}if("above-and-below"===o&&h[0]?.stops){const e=h[0].stops;v.classBreakInfos[0].maxValue=e[2].value,v.classBreakInfos[1].minValue=e[2].value}return{renderer:v}}export{W as createContinuousRenderer,X as createRenderer,Q as createVisualVariables,Y as regenerateRenderer};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{isSome as t}from"../../../../core/arrayUtils.js";import{throwIfAborted as e}from"../../../../core/promiseUtils.js";import{CodedValue as n}from"../../../../layers/support/CodedValue.js";import"../../../../core/has.js";import i from"../../../../layers/support/CodedValueDomain.js";import"../../../../layers/support/Domain.js";import"../../../../layers/support/InheritedDomain.js";import"../../../../layers/support/RangeDomain.js";import l from"../../../../layers/support/Field.js";import{isStringField as o,isTimeOnlyField as r}from"../../../../layers/support/fieldUtils.js";import a from"../../../../rest/support/PivotQuery.js";import s from"../../../../rest/support/StatisticDefinition.js";import u from"../../../../rest/support/UnPivotDefinition.js";import{noDominantCategoryField as c}from"../../../statistics/support/predominanceUtils.js";import{getRangeExpr as m,getSQLFilterForNormalization as f,mergeWhereClauses as d}from"../../../statistics/support/utils.js";import{isIntegerField as p,isAnyDateField as y,getDateDiffSQL as v,castIntegerFieldToFloat as x}from"../../utils.js";import{isNullCountSupported as g,statisticTypes as h,getEqualIntervalBins as w,processNullValue as F}from"../../../../statistics/utils.js";const E=/_value$/i,S=Math.LOG10E,T={SECOND:1e3,MINUTE:6e4,HOUR:36e5},V=10;function $(t){return t.map(t=>t.toJSON())}function z(t,e){const n=[],i=t.layer,l="featureReduction"in i?i.featureReduction:null,o="binning"===l?.type,r=null!=l&&"fields"in l?l.fields?.map(t=>t.name?.toLowerCase()).filter(Boolean):[];if(!o||!e)return n;for(const a of e)r.includes(a.toLowerCase())||n.push(a);return n}function j(t,e,n){const i=[];if(e)for(const l of e){const e=t.getField(l);e&&n&&"availableFields"in n&&!n.availableFields?.includes(e.name)&&i.push(e.name)}return i}function q(t,e){const n=t&&t.features;if(0===n?.length)return{avg:null,count:0,max:null,median:null,min:null,nullcount:0,stddev:null,sum:null,variance:null};const i=n?.[0]?.attributes,l={};for(const o in i)l[o.replace(E,"").toLowerCase()]=i[o];return null!=l.totalcount&&l.totalcount>=l.count&&(l.nullcount=l.totalcount-l.count),delete l.totalcount,l.min===l.max&&null!=l.min&&null==l.stddev&&(l.stddev=l.variance=0),e&&(["min","max","avg","stddev","sum","variance"].forEach(t=>{null!=l[t]&&(l[t]=Math.ceil(l[t]))}),l.min===l.max&&null!=l.min&&(l.avg=l.min,l.stddev=l.variance=0)),l}function C(t){const e=[],n=t.classBreaks,i=n[0].minValue,l=n[n.length-1].maxValue;n.forEach(t=>{e.push([t.minValue,t.maxValue])});const o={field:t.field,normalizationType:t.normalizationType,normalizationField:t.normalizationField,normalizationTotal:t.normalizationTotal,layer:t.layer};return{min:i,max:l,intervals:e,sqlExpr:b(o),excludeZerosExpr:t.where,normTotal:t.normalizationTotal}}function b(t){const{field:e,normalizationType:n,normalizationField:i,normalizationTotal:l,layer:o}=t,r=p(o,e);let a=e;return"percent-of-total"===n?a=`((${r?x(e):e} / ${l}) * 100)`:"log"===n?a=`(log(${e}) * ${S})`:"field"===n?a=`(${r?x(e):e} / ${i})`:"natural-log"===n?a=`(log(${r?x(e):e}))`:"square-root"===n&&(a=`(power(${r?x(e):e}, 0.5))`),a}function O(t,e){let n;if(e=e.toLowerCase(),t)for(const i in t)if(i.toLowerCase()!==e){n=t[i];break}return n}function L(t,e){let n;if(e=e.toLowerCase(),t)for(const i in t)if(i.toLowerCase()===e){n=t[i];break}return n}function R(t,e,n,i,l){const o={},r="countOFExpr";t&&t.features&&t.features.forEach(t=>{const e=t.attributes,n=O(e,r),i=L(e,r);null!=n&&null!=i&&0!==n&&(o[n]=i)});const a=[];return w(e,n,i).forEach((t,e)=>{const n=(e+1).toString();a.push({minValue:t[0],maxValue:t[1],count:o.hasOwnProperty(n)?o[n]:0})}),{bins:a,minValue:e,maxValue:n,normalizationTotal:l}}async function D(t,n){const i=t&&t.features,{field:l,field2:o,field3:r,fieldDelimiter:a,layer:s,view:u,signal:c,labels:m}=n,f=`countOF${!(!l||!o)?"Expr":l||"Expr"}`,d={};let p=!1;for(const e of i){const t=e.attributes,n=L(t,f);let i=l?L(t,l):O(t,f),s=o?L(t,o):null,u=r?L(t,r):null;null===i&&0===n&&(p=!0),(null==i||"string"==typeof i&&""===i.trim())&&(i=null),o&&(null==s||"string"==typeof s&&""===s.trim())&&(s=null),r&&(null==u||"string"==typeof u&&""===u.trim())&&(u=null);let c=i;o&&(c=`${F(c)}${a}${F(s)}`,r&&(c=`${c}${a}${F(u)}`)),null==d[c]?d[c]={count:n,data:c}:d[c].count=d[c].count+n}if(l&&p){const t=l+" is NULL";try{const e=await s.queryFeatureCount({whereClause:t,view:u,signal:c});return d.null.count=d.null.count+e,N(d,m)}catch{return e(c),N(d,m)}}return N(d,m)}function N(t,e){if(e)for(const n in t)t[n].label=e[n];return{count:t}}async function U(t,e,l){const o=t?l.getField(t):null,r=o?l.getFieldDomain(o.name):null;if(r)return r;const{uniqueValueInfos:a}=await l.uniqueValues({field:t,sqlWhere:e.sqlWhere,features:e.features,useFeaturesInView:e.useFeaturesInView,view:e.view,signal:e.signal}),s=a.map(t=>new n({code:t.value}));return new i({codedValues:s})}async function I(t,e){if(!t.returnAllCodedValues)return[];const{field:n,field2:i,field3:l}=t;if(n&&!i){const t=n?e.getField(n):null,i=t?e.getFieldDomain(t.name):null;return i?[i]:[]}const o=[];return n&&(o.push(U(n,t,e)),i&&(o.push(U(i,t,e)),l&&o.push(U(l,t,e)))),Promise.all(o)}function Q(t,e){return v(t,new Date(0),e,"milliseconds").sqlExpression}function M(t,e){return`EXTRACT(${e} FROM ${t}) * ${T[e]}`}function P(t){if(!t)return null;return x(["HOUR","MINUTE","SECOND"].map(e=>`(${M(t,e)})`).join(" + "))}function _(t){return{viewingMode:"2d"===t.type?"map":t.viewingMode,scale:t.scale,spatialReference:t.spatialReference?.toJSON()}}function B(t,e){const n=new Set(t.map(t=>t.value)),i=e.filter(t=>!n.has(t));for(const l of i)t.push({value:l,count:0});t.sort((t,n)=>e.indexOf(t.value)-e.indexOf(n.value));for(const l of t)l.value===c&&(l.value=null);return{predominantCategoryInfos:t}}function W(e){const n="featureReduction"in e?e.featureReduction:null;return((null!=n&&"fields"in n?n.fields:null)??[]).map(t=>{const n=k(t,e.fieldsIndex);return n?new l({type:n,name:t.name,alias:t.alias}):null}).filter(t)}function k(t,e){switch(t.statisticType){case"avg":case"avg_angle":return"double";case"count":return"integer";case"min":case"max":case"sum":return t.onStatisticField?e.get(t.onStatisticField)?.type??null:t.onStatisticExpression?"string"===t.onStatisticExpression.returnType?null:"double":null;case"mode":return t.onStatisticField?e.get(t.onStatisticField)?.type??null:t.onStatisticExpression?"string"===t.onStatisticExpression.returnType?"string":"double":null;default:return null}}function A(t,e){return y(e)?Q(t,e?.name):r(e)?P(e?.name):null}function H(t,e,n){let i=null;for(const l of n){const n=l?t.getField(l):null,o=Z(t,{...e,field:l,outStatisticTypes:{include:["min","max","sum","count"]}},n,!0,!0);i?i.outStatistics=i.outStatistics.concat(o.outStatistics):i=o}return i.where=t.createQuery()?.where,i}function J(t,e,n,i){return e.map(e=>{const l=new s;let o=null,r=null,a=`${e}_value${i?`_${i}`:""}`;if("variance"===e)o="var",r=n;else if("nullcount"===e){const e=t.objectIdField;o="count",r=e&&t.getField(e)?e:"1",a="totalcount_value"}else"median"===e?(o="percentile-continuous",r=n,l.statisticParameters={value:.5}):(o=e,r=n);return l.statisticType=o,l.onStatisticField=r,l.outStatisticFieldName=a,l})}function Z(t,e,n,i=!0,l=!1){const{field:r,normalizationType:a,normalizationField:s,normalizationTotal:u,minValue:c,maxValue:p,filter:y}=e,v=t.supportsSQLExpression?A(t,n)||e.sqlExpression:null,x=b({field:r,normalizationType:a,normalizationField:s,normalizationTotal:u,layer:t}),w=v||x,F=w?m(w,c,p):null,E=f({field:r,normalizationField:s,normalizationType:a}),S=d(e.sqlWhere,E),T=d(S,F),V=g({normalizationField:s,normalizationType:a,sqlExpression:v,supportsSQLExpression:t.supportsSQLExpression,minValue:c,maxValue:p}),$=o(t.getField(r??void 0)),{include:z,exclude:j}=e.outStatisticTypes||{},q=h.filter(t=>(!z||z.includes(t))&&(!j||!j.includes(t))&&("nullcount"===t?V:!$||"count"===t)&&("median"!==t||i)),C=t.createQuery();return C.where=d(C.where,T),C.sqlFormat=v?"standard":null,C.outStatistics=J(t,q,w,l?r:void 0),X(C,y),C}function G(t,e,n=!0){const{fields:i,filter:l}=e,{include:o,exclude:r}=e.outStatisticTypes||{},s=h.filter(t=>(!o||o.includes(t))&&(!r||!r.includes(t))&&("median"!==t||n)),c=new a;c.where=d(t.createQuery()?.where,e.sqlWhere)??void 0;const m="new_value";return c.outPivots=[new u({sourceFields:i,valueFieldName:m})],c.outStatistics=J(t,s,m),X(c,l),c}function X(t,e){e&&(t.geometry=e.geometry,t.spatialRelationship=e.spatialRelationship,t.timeExtent=t.timeExtent?.intersection(e.timeExtent)??e.timeExtent,t.distance=e.distance,t.units=e.units)}function K(t,e){const{field:n,field2:i,field3:l,sqlExpression:o}=e,r=!(!n||!i),a=t.createQuery();return a.where=d(a.where,e.sqlWhere),a.sqlFormat=o?"standard":null,a.outStatistics=[Y(r?null:n,r?"1":o)].filter(Boolean),a.groupByFieldsForStatistics=[n||o,i,l].filter(Boolean),X(a,e.filter),a}function Y(t,e){const n="countOF"+(t||"Expr"),i=new s;return i.statisticType="count",i.onStatisticField=e?"1":t,i.outStatisticFieldName=n,i}function tt(t,e,n,i=V,l,o,r){const{min:a,max:s,normTotal:u,excludeZerosExpr:c}=e,m=e.intervals||w(a,s,i),f=e.sqlExpr||n;return et(t,m,f,c,l,o,r).then(t=>({bins:t.map((t,e)=>({minValue:m[e][0],maxValue:m[e][1],count:"fulfilled"===t.status?t.value:0})),minValue:a,maxValue:s,normalizationTotal:u}))}function et(t,e,n,i,l,o,r){const a=[],s=e.length;for(let u=0;u<s;u++){const t=d(i,d(n+" >= "+e[u][0],null!==e[u][1]?n+(u===s-1?" <= ":" < ")+e[u][1]:""));a.push(t)}return Promise.allSettled(a.map(e=>t.queryFeatureCount({whereClause:e,view:l,filter:o,signal:r})))}export{V as defaultNumBins,$ as ensureFeaturesJSON,C as generateBinParams,k as getAggregateFieldType,tt as getBins,I as getDomainsForFields,W as getFeatureReductionFields,b as getFieldExpr,R as getHistogramFromFeatureSet,j as getMissingFields,z as getMissingFieldsForBinning,B as getPredominantCategoriesFromUVInfos,A as getSQLExpressionForDateOrTimeField,q as getSummaryStatisticsFromFeatureSet,G as getSummaryStatsPivotQuery,Z as getSummaryStatsQuery,H as getSummaryStatsQueryForFields,K as getUVQuery,D as getUniqueValuesFromFeatureSet,_ as getViewInfoParams,P as msForTimeOnlyFieldSQL,Q as msSinceUnixEpochSQL,X as updateQueryWithFeatureFilter};
|
|
5
|
+
import{isSome as t}from"../../../../core/arrayUtils.js";import{throwIfAborted as e}from"../../../../core/promiseUtils.js";import n from"../../../../layers/support/CodedValue.js";import"../../../../core/has.js";import i from"../../../../layers/support/CodedValueDomain.js";import"../../../../layers/support/Domain.js";import"../../../../layers/support/InheritedDomain.js";import"../../../../layers/support/RangeDomain.js";import l from"../../../../layers/support/Field.js";import{isStringField as o,isTimeOnlyField as r}from"../../../../layers/support/fieldUtils.js";import a from"../../../../rest/support/PivotQuery.js";import s from"../../../../rest/support/StatisticDefinition.js";import u from"../../../../rest/support/UnPivotDefinition.js";import{noDominantCategoryField as c}from"../../../statistics/support/predominanceUtils.js";import{getRangeExpr as m,getSQLFilterForNormalization as f,mergeWhereClauses as d}from"../../../statistics/support/utils.js";import{isIntegerField as p,isAnyDateField as y,getDateDiffSQL as v,castIntegerFieldToFloat as x}from"../../utils.js";import{isNullCountSupported as g,statisticTypes as h,getEqualIntervalBins as w,processNullValue as F}from"../../../../statistics/utils.js";const E=/_value$/i,S=Math.LOG10E,T={SECOND:1e3,MINUTE:6e4,HOUR:36e5},V=10;function $(t){return t.map(t=>t.toJSON())}function z(t,e){const n=[],i=t.layer,l="featureReduction"in i?i.featureReduction:null,o="binning"===l?.type,r=null!=l&&"fields"in l?l.fields?.map(t=>t.name?.toLowerCase()).filter(Boolean):[];if(!o||!e)return n;for(const a of e)r.includes(a.toLowerCase())||n.push(a);return n}function j(t,e,n){const i=[];if(e)for(const l of e){const e=t.getField(l);e&&n&&"availableFields"in n&&!n.availableFields?.includes(e.name)&&i.push(e.name)}return i}function q(t,e){const n=t&&t.features;if(0===n?.length)return{avg:null,count:0,max:null,median:null,min:null,nullcount:0,stddev:null,sum:null,variance:null};const i=n?.[0]?.attributes,l={};for(const o in i)l[o.replace(E,"").toLowerCase()]=i[o];return null!=l.totalcount&&l.totalcount>=l.count&&(l.nullcount=l.totalcount-l.count),delete l.totalcount,l.min===l.max&&null!=l.min&&null==l.stddev&&(l.stddev=l.variance=0),e&&(["min","max","avg","stddev","sum","variance"].forEach(t=>{null!=l[t]&&(l[t]=Math.ceil(l[t]))}),l.min===l.max&&null!=l.min&&(l.avg=l.min,l.stddev=l.variance=0)),l}function C(t){const e=[],n=t.classBreaks,i=n[0].minValue,l=n[n.length-1].maxValue;n.forEach(t=>{e.push([t.minValue,t.maxValue])});const o={field:t.field,normalizationType:t.normalizationType,normalizationField:t.normalizationField,normalizationTotal:t.normalizationTotal,layer:t.layer};return{min:i,max:l,intervals:e,sqlExpr:b(o),excludeZerosExpr:t.where,normTotal:t.normalizationTotal}}function b(t){const{field:e,normalizationType:n,normalizationField:i,normalizationTotal:l,layer:o}=t,r=p(o,e);let a=e;return"percent-of-total"===n?a=`((${r?x(e):e} / ${l}) * 100)`:"log"===n?a=`(log(${e}) * ${S})`:"field"===n?a=`(${r?x(e):e} / ${i})`:"natural-log"===n?a=`(log(${r?x(e):e}))`:"square-root"===n&&(a=`(power(${r?x(e):e}, 0.5))`),a}function O(t,e){let n;if(e=e.toLowerCase(),t)for(const i in t)if(i.toLowerCase()!==e){n=t[i];break}return n}function L(t,e){let n;if(e=e.toLowerCase(),t)for(const i in t)if(i.toLowerCase()===e){n=t[i];break}return n}function R(t,e,n,i,l){const o={},r="countOFExpr";t&&t.features&&t.features.forEach(t=>{const e=t.attributes,n=O(e,r),i=L(e,r);null!=n&&null!=i&&0!==n&&(o[n]=i)});const a=[];return w(e,n,i).forEach((t,e)=>{const n=(e+1).toString();a.push({minValue:t[0],maxValue:t[1],count:o.hasOwnProperty(n)?o[n]:0})}),{bins:a,minValue:e,maxValue:n,normalizationTotal:l}}async function D(t,n){const i=t&&t.features,{field:l,field2:o,field3:r,fieldDelimiter:a,layer:s,view:u,signal:c,labels:m}=n,f=`countOF${!(!l||!o)?"Expr":l||"Expr"}`,d={};let p=!1;for(const e of i){const t=e.attributes,n=L(t,f);let i=l?L(t,l):O(t,f),s=o?L(t,o):null,u=r?L(t,r):null;null===i&&0===n&&(p=!0),(null==i||"string"==typeof i&&""===i.trim())&&(i=null),o&&(null==s||"string"==typeof s&&""===s.trim())&&(s=null),r&&(null==u||"string"==typeof u&&""===u.trim())&&(u=null);let c=i;o&&(c=`${F(c)}${a}${F(s)}`,r&&(c=`${c}${a}${F(u)}`)),null==d[c]?d[c]={count:n,data:c}:d[c].count=d[c].count+n}if(l&&p){const t=l+" is NULL";try{const e=await s.queryFeatureCount({whereClause:t,view:u,signal:c});return d.null.count=d.null.count+e,N(d,m)}catch{return e(c),N(d,m)}}return N(d,m)}function N(t,e){if(e)for(const n in t)t[n].label=e[n];return{count:t}}async function U(t,e,l){const o=t?l.getField(t):null,r=o?l.getFieldDomain(o.name):null;if(r)return r;const{uniqueValueInfos:a}=await l.uniqueValues({field:t,sqlWhere:e.sqlWhere,features:e.features,useFeaturesInView:e.useFeaturesInView,view:e.view,signal:e.signal}),s=a.map(t=>new n({code:t.value}));return new i({codedValues:s})}async function I(t,e){if(!t.returnAllCodedValues)return[];const{field:n,field2:i,field3:l}=t;if(n&&!i){const t=n?e.getField(n):null,i=t?e.getFieldDomain(t.name):null;return i?[i]:[]}const o=[];return n&&(o.push(U(n,t,e)),i&&(o.push(U(i,t,e)),l&&o.push(U(l,t,e)))),Promise.all(o)}function Q(t,e){return v(t,new Date(0),e,"milliseconds").sqlExpression}function M(t,e){return`EXTRACT(${e} FROM ${t}) * ${T[e]}`}function P(t){if(!t)return null;return x(["HOUR","MINUTE","SECOND"].map(e=>`(${M(t,e)})`).join(" + "))}function _(t){return{viewingMode:"2d"===t.type?"map":t.viewingMode,scale:t.scale,spatialReference:t.spatialReference?.toJSON()}}function B(t,e){const n=new Set(t.map(t=>t.value)),i=e.filter(t=>!n.has(t));for(const l of i)t.push({value:l,count:0});t.sort((t,n)=>e.indexOf(t.value)-e.indexOf(n.value));for(const l of t)l.value===c&&(l.value=null);return{predominantCategoryInfos:t}}function W(e){const n="featureReduction"in e?e.featureReduction:null;return((null!=n&&"fields"in n?n.fields:null)??[]).map(t=>{const n=k(t,e.fieldsIndex);return n?new l({type:n,name:t.name,alias:t.alias}):null}).filter(t)}function k(t,e){switch(t.statisticType){case"avg":case"avg_angle":return"double";case"count":return"integer";case"min":case"max":case"sum":return t.onStatisticField?e.get(t.onStatisticField)?.type??null:t.onStatisticExpression?"string"===t.onStatisticExpression.returnType?null:"double":null;case"mode":return t.onStatisticField?e.get(t.onStatisticField)?.type??null:t.onStatisticExpression?"string"===t.onStatisticExpression.returnType?"string":"double":null;default:return null}}function A(t,e){return y(e)?Q(t,e?.name):r(e)?P(e?.name):null}function H(t,e,n){let i=null;for(const l of n){const n=l?t.getField(l):null,o=Z(t,{...e,field:l,outStatisticTypes:{include:["min","max","sum","count"]}},n,!0,!0);i?i.outStatistics=i.outStatistics.concat(o.outStatistics):i=o}return i.where=t.createQuery()?.where,i}function J(t,e,n,i){return e.map(e=>{const l=new s;let o=null,r=null,a=`${e}_value${i?`_${i}`:""}`;if("variance"===e)o="var",r=n;else if("nullcount"===e){const e=t.objectIdField;o="count",r=e&&t.getField(e)?e:"1",a="totalcount_value"}else"median"===e?(o="percentile-continuous",r=n,l.statisticParameters={value:.5}):(o=e,r=n);return l.statisticType=o,l.onStatisticField=r,l.outStatisticFieldName=a,l})}function Z(t,e,n,i=!0,l=!1){const{field:r,normalizationType:a,normalizationField:s,normalizationTotal:u,minValue:c,maxValue:p,filter:y}=e,v=t.supportsSQLExpression?A(t,n)||e.sqlExpression:null,x=b({field:r,normalizationType:a,normalizationField:s,normalizationTotal:u,layer:t}),w=v||x,F=w?m(w,c,p):null,E=f({field:r,normalizationField:s,normalizationType:a}),S=d(e.sqlWhere,E),T=d(S,F),V=g({normalizationField:s,normalizationType:a,sqlExpression:v,supportsSQLExpression:t.supportsSQLExpression,minValue:c,maxValue:p}),$=o(t.getField(r??void 0)),{include:z,exclude:j}=e.outStatisticTypes||{},q=h.filter(t=>(!z||z.includes(t))&&(!j||!j.includes(t))&&("nullcount"===t?V:!$||"count"===t)&&("median"!==t||i)),C=t.createQuery();return C.where=d(C.where,T),C.sqlFormat=v?"standard":null,C.outStatistics=J(t,q,w,l?r:void 0),X(C,y),C}function G(t,e,n=!0){const{fields:i,filter:l}=e,{include:o,exclude:r}=e.outStatisticTypes||{},s=h.filter(t=>(!o||o.includes(t))&&(!r||!r.includes(t))&&("median"!==t||n)),c=new a;c.where=d(t.createQuery()?.where,e.sqlWhere)??void 0;const m="new_value";return c.outPivots=[new u({sourceFields:i,valueFieldName:m})],c.outStatistics=J(t,s,m),X(c,l),c}function X(t,e){e&&(t.geometry=e.geometry,t.spatialRelationship=e.spatialRelationship,t.timeExtent=t.timeExtent?.intersection(e.timeExtent)??e.timeExtent,t.distance=e.distance,t.units=e.units)}function K(t,e){const{field:n,field2:i,field3:l,sqlExpression:o}=e,r=!(!n||!i),a=t.createQuery();return a.where=d(a.where,e.sqlWhere),a.sqlFormat=o?"standard":null,a.outStatistics=[Y(r?null:n,r?"1":o)].filter(Boolean),a.groupByFieldsForStatistics=[n||o,i,l].filter(Boolean),X(a,e.filter),a}function Y(t,e){const n="countOF"+(t||"Expr"),i=new s;return i.statisticType="count",i.onStatisticField=e?"1":t,i.outStatisticFieldName=n,i}function tt(t,e,n,i=V,l,o,r){const{min:a,max:s,normTotal:u,excludeZerosExpr:c}=e,m=e.intervals||w(a,s,i),f=e.sqlExpr||n;return et(t,m,f,c,l,o,r).then(t=>({bins:t.map((t,e)=>({minValue:m[e][0],maxValue:m[e][1],count:"fulfilled"===t.status?t.value:0})),minValue:a,maxValue:s,normalizationTotal:u}))}function et(t,e,n,i,l,o,r){const a=[],s=e.length;for(let u=0;u<s;u++){const t=d(i,d(n+" >= "+e[u][0],null!==e[u][1]?n+(u===s-1?" <= ":" < ")+e[u][1]:""));a.push(t)}return Promise.allSettled(a.map(e=>t.queryFeatureCount({whereClause:e,view:l,filter:o,signal:r})))}export{V as defaultNumBins,$ as ensureFeaturesJSON,C as generateBinParams,k as getAggregateFieldType,tt as getBins,I as getDomainsForFields,W as getFeatureReductionFields,b as getFieldExpr,R as getHistogramFromFeatureSet,j as getMissingFields,z as getMissingFieldsForBinning,B as getPredominantCategoriesFromUVInfos,A as getSQLExpressionForDateOrTimeField,q as getSummaryStatisticsFromFeatureSet,G as getSummaryStatsPivotQuery,Z as getSummaryStatsQuery,H as getSummaryStatsQueryForFields,K as getUVQuery,D as getUniqueValuesFromFeatureSet,_ as getViewInfoParams,P as msForTimeOnlyFieldSQL,Q as msSinceUnixEpochSQL,X as updateQueryWithFeatureFilter};
|
package/support/revision.js
CHANGED
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
const
|
|
5
|
+
const a="20251213",c="6f63325c8ce405627fa4856b419ba8fe589921a0";export{a as buildDate,c as commitHash};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../Color.js";import{clone as r}from"../../core/lang.js";import{n as o,f as t,e as s}from"../../chunks/vec32.js";import{fromValues as m,create as n}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import i from"../../geometry/Mesh.js";import p from"../../geometry/support/MeshComponent.js";import a from"../../geometry/support/MeshGeoreferencedVertexSpace.js";import c from"../../geometry/support/MeshLocalVertexSpace.js";import f from"../../geometry/support/MeshMaterialMetallicRoughness.js";import l from"../../geometry/support/MeshTransform.js";import
|
|
5
|
+
import e from"../../Color.js";import{clone as r}from"../../core/lang.js";import{n as o,f as t,e as s}from"../../chunks/vec32.js";import{fromValues as m,create as n}from"../../core/libs/gl-matrix-2/factories/vec3f64.js";import i from"../../geometry/Mesh.js";import p from"../../geometry/support/MeshComponent.js";import a from"../../geometry/support/MeshGeoreferencedVertexSpace.js";import c from"../../geometry/support/MeshLocalVertexSpace.js";import f from"../../geometry/support/MeshMaterialMetallicRoughness.js";import l from"../../geometry/support/MeshTransform.js";import u from"../../geometry/support/MeshVertexAttributes.js";import{addMeshCloneContext as g}from"../../geometry/support/meshUtils/meshCloneUtils.js";import{convertVertexSpace as v}from"../../geometry/support/meshUtils/vertexSpaceConversion.js";function x(r,a){const g=m(0,0,1),v=m(1,0,1),x=m(1,1,0),j=o(n(),t(n(),s(n(),v,g),s(n(),x,g)));return new i({components:[new p({faces:[0,1,2],material:new f({color:new e("red")})})],vertexAttributes:new u({normal:[...j,...j,...j],position:[...g,...v,...x],uv:[0,.375,.25,.375,.25,.125]}),spatialReference:r.spatialReference,vertexSpace:new c({origin:m(r.x,r.y,r.z??0)}),transform:new l({scale:a?.scale??[1,1,1],rotationAngle:a?.rotationAngle??0})})}function j(e){if(!e.vertexSpace.origin)return e;const o=new a;return e.clone(g(void 0,{vertexAttributes:new u({...v(e,o),uv:r(e.vertexAttributes.uv),color:r(e.vertexAttributes.color)}),vertexSpace:o,transform:null}))}export{x as createTriangle,j as meshMakeAbsolute};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type Symbol3DLayer from "./Symbol3DLayer.js";
|
|
2
2
|
import type Edges3D from "./edges/Edges3D.js";
|
|
3
|
-
import type
|
|
3
|
+
import type Symbol3DMaterial from "./support/Symbol3DMaterial.js";
|
|
4
|
+
import type { Symbol3DMaterialProperties } from "./support/Symbol3DMaterial.js";
|
|
4
5
|
import type { Edges3DProperties } from "./edges/Edges3D.js";
|
|
5
6
|
import type { Symbol3DLayerProperties } from "./Symbol3DLayer.js";
|
|
6
7
|
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{__decorate as e}from"tslib";import{property as t,subclass as o}from"../core/accessorSupport/decorators.js";import s from"./Symbol3DLayer.js";import{symbol3dEdgesProperty as r}from"./edges/utils.js";import
|
|
5
|
+
import{__decorate as e}from"tslib";import{property as t,subclass as o}from"../core/accessorSupport/decorators.js";import s from"./Symbol3DLayer.js";import{symbol3dEdgesProperty as r}from"./edges/utils.js";import i from"./support/Symbol3DMaterial.js";import{enumeration as a}from"../core/accessorSupport/decorators/enumeration.js";var l;let p=class extends s{static{l=this}constructor(e){super(e),this.type="extrude",this.size=1,this.material=null,this.castShadows=!0,this.edges=null}clone(){return new l({edges:this.edges?.clone(),enabled:this.enabled,material:this.material?.clone(),castShadows:this.castShadows,size:this.size})}};e([a({Extrude:"extrude"},{readOnly:!0})],p.prototype,"type",void 0),e([t({type:Number,json:{write:{enabled:!0,isRequired:!0}},nonNullable:!0})],p.prototype,"size",void 0),e([t({type:i,json:{write:!0}})],p.prototype,"material",void 0),e([t({type:Boolean,nonNullable:!0,json:{write:!0,default:!0}})],p.prototype,"castShadows",void 0),e([t(r)],p.prototype,"edges",void 0),p=l=e([o("esri.symbols.ExtrudeSymbol3DLayer")],p);export{p as default};
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
import type Symbol3DLayer from "./Symbol3DLayer.js";
|
|
2
2
|
import type Edges3D from "./edges/Edges3D.js";
|
|
3
3
|
import type StylePattern3D from "./patterns/StylePattern3D.js";
|
|
4
|
+
import type Symbol3DFillMaterial from "./support/Symbol3DFillMaterial.js";
|
|
5
|
+
import type Symbol3DOutline from "./support/Symbol3DOutline.js";
|
|
4
6
|
import type { StylePattern3DProperties } from "./patterns/StylePattern3D.js";
|
|
5
|
-
import type { Symbol3DFillMaterialProperties
|
|
6
|
-
import type { Symbol3DOutlineProperties
|
|
7
|
+
import type { Symbol3DFillMaterialProperties } from "./support/Symbol3DFillMaterial.js";
|
|
8
|
+
import type { Symbol3DOutlineProperties } from "./support/Symbol3DOutline.js";
|
|
7
9
|
import type { Edges3DProperties } from "./edges/Edges3D.js";
|
|
8
10
|
import type { Symbol3DLayerProperties } from "./Symbol3DLayer.js";
|
|
9
11
|
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{__decorate as t}from"tslib";import{property as e,subclass as o}from"../core/accessorSupport/decorators.js";import l from"./Symbol3DLayer.js";import{symbol3dEdgesProperty as r}from"./edges/utils.js";import s from"./patterns/LineStylePattern3D.js";import i from"./patterns/StylePattern3D.js";import{symbol3dPatternProperty as n}from"./patterns/utils.js";import{white as a,transparentWhite as p}from"./support/colors.js";import
|
|
5
|
+
import{__decorate as t}from"tslib";import{property as e,subclass as o}from"../core/accessorSupport/decorators.js";import l from"./Symbol3DLayer.js";import{symbol3dEdgesProperty as r}from"./edges/utils.js";import s from"./patterns/LineStylePattern3D.js";import i from"./patterns/StylePattern3D.js";import{symbol3dPatternProperty as n}from"./patterns/utils.js";import{white as a,transparentWhite as p}from"./support/colors.js";import u from"./support/Symbol3DFillMaterial.js";import m from"./support/Symbol3DOutline.js";import{enumeration as c}from"../core/accessorSupport/decorators/enumeration.js";var y;let d=class extends l{static{y=this}constructor(t){super(t),this.type="fill",this.material=null,this.pattern=null,this.castShadows=!0,this.outline=null,this.edges=null}clone(){const t={edges:null!=this.edges?this.edges.clone():null,enabled:this.enabled,material:null!=this.material?this.material.clone():null,pattern:null!=this.pattern?this.pattern.clone():null,castShadows:this.castShadows,outline:null!=this.outline?this.outline.clone():null};return new y(t)}static fromSimpleFillSymbol(t){const e=t.outline&&t.outline.style&&"solid"!==t.outline.style?new s({style:t.outline.style}):null,o={size:t.outline?.width??0,color:(t.outline?.color??a).clone(),pattern:e};return e&&t.outline?.cap&&(o.patternCap=t.outline.cap),new y({material:new u({color:(t.color??p).clone()}),pattern:t.style&&"solid"!==t.style?new i({style:t.style}):null,outline:o})}};t([c({Fill:"fill"},{readOnly:!0})],d.prototype,"type",void 0),t([e({type:u,json:{write:!0}})],d.prototype,"material",void 0),t([e(n)],d.prototype,"pattern",void 0),t([e({type:Boolean,nonNullable:!0,json:{write:!0,default:!0}})],d.prototype,"castShadows",void 0),t([e({type:m,json:{write:!0}})],d.prototype,"outline",void 0),t([e(r)],d.prototype,"edges",void 0),d=y=t([o("esri.symbols.FillSymbol3DLayer")],d);export{d as default};
|
|
@@ -1,9 +1,15 @@
|
|
|
1
1
|
import type Symbol3DLayer from "./Symbol3DLayer.js";
|
|
2
|
+
import type IconSymbol3DLayerResource from "./support/IconSymbol3DLayerResource.js";
|
|
3
|
+
import type OccludedVisibility from "./support/OccludedVisibility.js";
|
|
4
|
+
import type Symbol3DAnchorPosition2D from "./support/Symbol3DAnchorPosition2D.js";
|
|
5
|
+
import type Symbol3DIconOutline from "./support/Symbol3DIconOutline.js";
|
|
6
|
+
import type Symbol3DMaterial from "./support/Symbol3DMaterial.js";
|
|
2
7
|
import type { IconSymbol3DLayerAnchor } from "./types.js";
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
6
|
-
import type {
|
|
8
|
+
import type { IconSymbol3DLayerResourceProperties } from "./support/IconSymbol3DLayerResource.js";
|
|
9
|
+
import type { OccludedVisibilityProperties } from "./support/OccludedVisibility.js";
|
|
10
|
+
import type { Symbol3DAnchorPosition2DProperties } from "./support/Symbol3DAnchorPosition2D.js";
|
|
11
|
+
import type { Symbol3DIconOutlineProperties } from "./support/Symbol3DIconOutline.js";
|
|
12
|
+
import type { Symbol3DMaterialProperties } from "./support/Symbol3DMaterial.js";
|
|
7
13
|
import type { Symbol3DLayerProperties } from "./Symbol3DLayer.js";
|
|
8
14
|
|
|
9
15
|
export interface IconSymbol3DLayerProperties extends Symbol3DLayerProperties, Partial<Pick<IconSymbol3DLayer, "anchor" | "angle">> {
|
|
@@ -53,6 +59,12 @@ export interface IconSymbol3DLayerProperties extends Symbol3DLayerProperties, Pa
|
|
|
53
59
|
* };
|
|
54
60
|
*/
|
|
55
61
|
material?: Symbol3DMaterialProperties | null;
|
|
62
|
+
/**
|
|
63
|
+
* Defines the occluded visibility mode of the icon.
|
|
64
|
+
*
|
|
65
|
+
* @since 5.0
|
|
66
|
+
*/
|
|
67
|
+
occludedVisibility?: OccludedVisibilityProperties | null;
|
|
56
68
|
/**
|
|
57
69
|
* The outline of the icon. The color property of this object directly modifies the overall
|
|
58
70
|
* color of IconSymbol3DLayer defined with the `cross` or `x` primitive.
|
|
@@ -235,6 +247,13 @@ export default class IconSymbol3DLayer extends Symbol3DLayer {
|
|
|
235
247
|
*/
|
|
236
248
|
get material(): Symbol3DMaterial | null | undefined;
|
|
237
249
|
set material(value: Symbol3DMaterialProperties | null | undefined);
|
|
250
|
+
/**
|
|
251
|
+
* Defines the occluded visibility mode of the icon.
|
|
252
|
+
*
|
|
253
|
+
* @since 5.0
|
|
254
|
+
*/
|
|
255
|
+
get occludedVisibility(): OccludedVisibility | null | undefined;
|
|
256
|
+
set occludedVisibility(value: OccludedVisibilityProperties | null | undefined);
|
|
238
257
|
/**
|
|
239
258
|
* The outline of the icon. The color property of this object directly modifies the overall
|
|
240
259
|
* color of IconSymbol3DLayer defined with the `cross` or `x` primitive.
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{__decorate as o}from"tslib";import{clone as t}from"../core/lang.js";import e from"../core/Logger.js";import{makeData as r}from"../core/urlUtils.js";import{property as i,subclass as s}from"../core/accessorSupport/decorators.js";import n from"./Symbol3DLayer.js";import{white as l,isBlack as c}from"./support/colors.js";import
|
|
5
|
+
import{__decorate as o}from"tslib";import{clone as t}from"../core/lang.js";import e from"../core/Logger.js";import{makeData as r}from"../core/urlUtils.js";import{property as i,subclass as s}from"../core/accessorSupport/decorators.js";import n from"./Symbol3DLayer.js";import{white as l,isBlack as c}from"./support/colors.js";import a from"./support/IconSymbol3DLayerResource.js";import{screenSizeProperty as p}from"./support/materialUtils.js";import u from"./support/OccludedVisibility.js";import m from"./support/Symbol3DAnchorPosition2D.js";import h from"./support/Symbol3DIconOutline.js";import y from"./support/Symbol3DMaterial.js";import{enumeration as d}from"../core/accessorSupport/decorators/enumeration.js";var f;let b=class extends n{static{f=this}constructor(o){super(o),this.material=null,this.resource=null,this.type="icon",this.anchor="center",this.anchorPosition=null,this.outline=null,this.angle=0,this.occludedVisibility=null}get size(){return this._get("size")??12}set size(o){this._set("size",o)}clone(){return new f({anchor:this.anchor,anchorPosition:t(this.anchorPosition),enabled:this.enabled,material:t(this.material),outline:t(this.outline),resource:t(this.resource),angle:this.angle,size:this.size,occludedVisibility:t(this.occludedVisibility)})}static fromSimpleMarkerSymbol(o){const t=o.color||l,r=g(o),i=o.outline&&o.outline.width>0?{size:o.outline.width,color:(o.outline.color||l).clone()}:null;return new f({size:o.size,angle:o.angle,resource:{primitive:v(()=>e.getLogger(this.prototype),o.style)},material:{color:t},outline:i,anchor:r?"relative":void 0,anchorPosition:r})}static fromPictureMarkerSymbol(o){const t=!o.color||c(o.color)?l:o.color,e=g(o);return new f({size:o.width<=o.height?o.height:o.width,angle:o.angle,resource:{href:o.url},material:{color:t.clone()},anchor:e?"relative":void 0,anchorPosition:e})}static fromCIMSymbol(o){return new f({resource:{href:r({mediaType:"application/json",data:JSON.stringify(o.data)})}})}};function g(o){const t="width"in o?o.width:o.size,e="height"in o?o.height:o.size,r=j(o.xoffset),i=j(o.yoffset);return(r||i)&&t&&e?{x:-r/t,y:i/e}:null}function j(o){return isFinite(o)?o:0}o([i({type:y,json:{write:!0}})],b.prototype,"material",void 0),o([i({type:a,json:{write:!0}})],b.prototype,"resource",void 0),o([d({Icon:"icon"},{readOnly:!0})],b.prototype,"type",void 0),o([i({...p,json:{write:{isRequired:!0}}})],b.prototype,"size",null),o([d({center:"center",left:"left",right:"right",top:"top",bottom:"bottom",topLeft:"top-left",topRight:"top-right",bottomLeft:"bottom-left",bottomRight:"bottom-right",relative:"relative"},{default:"center"})],b.prototype,"anchor",void 0),o([i({type:m,json:{type:[Number],read:{reader:o=>new m({x:o[0],y:o[1]})},write:{writer:(o,t)=>{t.anchorPosition=[o.x,o.y]},overridePolicy(){return{enabled:"relative"===this.anchor}}}}})],b.prototype,"anchorPosition",void 0),o([i({type:h,json:{write:!0}})],b.prototype,"outline",void 0),o([i({type:Number,json:{write:!0,default:0}})],b.prototype,"angle",void 0),o([i({type:u,json:{write:!0}})],b.prototype,"occludedVisibility",void 0),b=f=o([s("esri.symbols.IconSymbol3DLayer")],b);const w={circle:"circle",cross:"cross",diamond:"kite",square:"square",x:"x",triangle:"triangle",path:null};function v(o,t){const e=w[t];return e||(o().warn(`${t} cannot be mapped to Icon symbol. Fallback to "circle"`),"circle")}export{b as default};
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type LineStyleMarker3D from "./LineStyleMarker3D.js";
|
|
2
2
|
import type Symbol3DLayer from "./Symbol3DLayer.js";
|
|
3
3
|
import type LineStylePattern3D from "./patterns/LineStylePattern3D.js";
|
|
4
|
+
import type Symbol3DMaterial from "./support/Symbol3DMaterial.js";
|
|
4
5
|
import type { LineStyleMarker3DProperties } from "./LineStyleMarker3D.js";
|
|
5
6
|
import type { LineCap, LineJoin } from "./types.js";
|
|
6
7
|
import type { LineStylePattern3DProperties } from "./patterns/LineStylePattern3D.js";
|
|
7
|
-
import type { Symbol3DMaterialProperties
|
|
8
|
+
import type { Symbol3DMaterialProperties } from "./support/Symbol3DMaterial.js";
|
|
8
9
|
import type { Symbol3DLayerProperties } from "./Symbol3DLayer.js";
|
|
9
10
|
|
|
10
11
|
export interface LineSymbol3DLayerProperties extends Symbol3DLayerProperties, Partial<Pick<LineSymbol3DLayer, "cap" | "join">> {
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright Esri, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/5.0/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{__decorate as t}from"tslib";import{px2pt as e}from"../core/screenUtils.js";import{property as r,subclass as o}from"../core/accessorSupport/decorators.js";import i from"./LineStyleMarker3D.js";import s from"./Symbol3DLayer.js";import l from"./patterns/LineStylePattern3D.js";import{symbol3dLinePatternProperty as
|
|
5
|
+
import{__decorate as t}from"tslib";import{px2pt as e}from"../core/screenUtils.js";import{property as r,subclass as o}from"../core/accessorSupport/decorators.js";import i from"./LineStyleMarker3D.js";import s from"./Symbol3DLayer.js";import l from"./patterns/LineStylePattern3D.js";import{symbol3dLinePatternProperty as a}from"./patterns/utils.js";import{white as n}from"./support/colors.js";import{screenSizeProperty as p}from"./support/materialUtils.js";import m from"./support/Symbol3DMaterial.js";import{lineJoins as c,lineCaps as u}from"./support/symbolLayerUtils3D.js";import{enumeration as y}from"../core/accessorSupport/decorators/enumeration.js";var h;let j=class extends s{static{h=this}constructor(t){super(t),this.material=null,this.type="line",this.join="miter",this.cap="butt",this.pattern=null,this.imagePattern=null,this.marker=null}get size(){return this._get("size")??e(1)}set size(t){this._set("size",t)}clone(){const t={enabled:this.enabled,material:null!=this.material?this.material.clone():null,size:this.size,join:this.join,cap:this.cap,pattern:null!=this.pattern?this.pattern.clone():null,imagePattern:null!=this.imagePattern?this.imagePattern.clone():null,marker:null!=this.marker?this.marker.clone():null};return new h(t)}static fromSimpleLineSymbol(t){const r={enabled:!0,size:t.width??e(1),cap:t.cap||"butt",join:t.join||"miter",pattern:t.style?new l({style:t.style}):null,imagePattern:null,material:new m({color:(t.color||n).clone()}),marker:t.marker?new i({placement:t.marker.placement,style:t.marker.style,color:t.marker.color?.clone()??null}):null};return new h(r)}};t([r({type:m,json:{write:!0}})],j.prototype,"material",void 0),t([y({Line:"line"},{readOnly:!0})],j.prototype,"type",void 0),t([r({type:c,json:{write:!0,default:"miter"}})],j.prototype,"join",void 0),t([r({type:u,json:{write:!0,default:"butt"}})],j.prototype,"cap",void 0),t([r({...p,json:{write:{isRequired:!0}}})],j.prototype,"size",null),t([r(a)],j.prototype,"pattern",void 0),t([r()],j.prototype,"imagePattern",void 0),t([r({types:{key:"type",base:i,typeMap:{style:i}},json:{write:!0}})],j.prototype,"marker",void 0),j=h=t([o("esri.symbols.LineSymbol3DLayer")],j);export{j as default};
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import type Symbol3DLayer from "./Symbol3DLayer.js";
|
|
2
|
+
import type ObjectSymbol3DLayerResource from "./support/ObjectSymbol3DLayerResource.js";
|
|
3
|
+
import type Symbol3DAnchorPosition3D from "./support/Symbol3DAnchorPosition3D.js";
|
|
4
|
+
import type Symbol3DMaterial from "./support/Symbol3DMaterial.js";
|
|
2
5
|
import type { ObjectSymbol3DLayerAnchor } from "./types.js";
|
|
3
|
-
import type {
|
|
4
|
-
import type {
|
|
5
|
-
import type {
|
|
6
|
+
import type { Symbol3DMaterialProperties } from "./support/Symbol3DMaterial.js";
|
|
7
|
+
import type { ObjectSymbol3DLayerResourceProperties } from "./support/ObjectSymbol3DLayerResource.js";
|
|
8
|
+
import type { Symbol3DAnchorPosition3DProperties } from "./support/Symbol3DAnchorPosition3D.js";
|
|
6
9
|
import type { Symbol3DLayerProperties } from "./Symbol3DLayer.js";
|
|
7
10
|
|
|
8
11
|
export interface ObjectSymbol3DLayerProperties extends Symbol3DLayerProperties, Partial<Pick<ObjectSymbol3DLayer, "anchor" | "castShadows" | "depth" | "heading" | "height" | "roll" | "tilt" | "width">> {
|