@arcgis/core 4.24.0-next.20220430 → 4.24.0-next.20220503
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/Basemap.js +1 -1
- package/Color.js +1 -1
- package/Ground.js +1 -1
- package/Map.js +1 -1
- package/PopupTemplate.js +1 -1
- package/WebMap.js +1 -1
- package/WebScene.js +1 -1
- package/analysis/LinearDimension.js +1 -1
- package/analysis/SliceAnalysis.js +1 -1
- package/applications/SceneViewer/sceneViewerUtils.js +1 -1
- package/arcade/Dictionary.js +1 -1
- package/arcade/Feature.js +1 -1
- package/arcade/featureset/sources/FeatureLayerDynamic.js +1 -1
- package/arcade/featureset/support/FeatureSet.js +1 -1
- package/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/{e06461703e6f1acfcfdc.js → 076d1b1101b59af0d389.js} +1 -1
- package/assets/esri/core/workers/chunks/0b72d123386dc4ec7538.js +1 -0
- package/assets/esri/core/workers/chunks/0d53e575f11198867619.js +1 -0
- package/assets/esri/core/workers/chunks/0e6e3cf07c84d9f040c0.js +1 -0
- package/assets/esri/core/workers/chunks/105728404ddd9e73d5c9.js +1 -0
- package/assets/esri/core/workers/chunks/11106873b009b98e4286.js +1 -0
- package/assets/esri/core/workers/chunks/11a7b156591d1feca952.js +1 -0
- package/assets/esri/core/workers/chunks/{94325f920a125610e1f5.js → 12feeace7215248be23f.js} +1 -1
- package/assets/esri/core/workers/chunks/17be5bd0d1c233d73d7a.js +1 -0
- package/assets/esri/core/workers/chunks/1b53bd65407ba5c479d7.js +1 -0
- package/assets/esri/core/workers/chunks/1d91aa745b49b2ab36cf.js +1 -0
- package/assets/esri/core/workers/chunks/{fd35b69872ac9393924f.js → 1db8bfb1731be3ae320c.js} +1 -1
- package/assets/esri/core/workers/chunks/{3433361f09c84b31aec4.js → 2290bd6dc2e6bb136e14.js} +1 -1
- package/assets/esri/core/workers/chunks/24217129d492e170f0f0.js +1 -0
- package/assets/esri/core/workers/chunks/24e194107e0e5090125b.js +1 -0
- package/assets/esri/core/workers/chunks/2a1301a1d0cd4c0c17cf.js +1 -0
- package/assets/esri/core/workers/chunks/{178831b0d0bdabcc45e7.js → 2a676221ca1fc8e0cf34.js} +1 -1
- package/assets/esri/core/workers/chunks/2aede0d1dcac8592436b.js +1 -0
- package/assets/esri/core/workers/chunks/2b93ad626f5e75b97692.js +1 -0
- package/assets/esri/core/workers/chunks/2d03210fc6b5884c6bf9.js +1 -0
- package/assets/esri/core/workers/chunks/{b10c333abe4f4e52841c.js → 2dfd3def105005fc72c7.js} +1 -1
- package/assets/esri/core/workers/chunks/2f8ff35b8ab15c0e39c2.js +1 -0
- package/assets/esri/core/workers/chunks/36272141b3c33cb19026.js +1 -0
- package/assets/esri/core/workers/chunks/36c8e8de9c3f67d32572.js +1 -0
- package/assets/esri/core/workers/chunks/3ab8c6ae2f2713f637b0.js +1 -0
- package/assets/esri/core/workers/chunks/3c058381adcfdc407aa1.js +1 -0
- package/assets/esri/core/workers/chunks/3f39df1dfc0a685e5f9d.js +1 -0
- package/assets/esri/core/workers/chunks/3fd52a03b3126556aee6.js +1 -0
- package/assets/esri/core/workers/chunks/4082d8573f41f952c72e.js +1 -0
- package/assets/esri/core/workers/chunks/40b11eea270f6688ff9c.js +1 -0
- package/assets/esri/core/workers/chunks/4281b4b27f4767cdd3ae.js +1 -0
- package/assets/esri/core/workers/chunks/43fcaaeb6fd179e9199b.js +1 -0
- package/assets/esri/core/workers/chunks/4c65b27d80b23c0c3101.js +1 -0
- package/assets/esri/core/workers/chunks/{a6406a248b7b2ed65f35.js → 4ec7d59b0c814dbaa7a4.js} +1 -1
- package/assets/esri/core/workers/chunks/4f378ad6f4299183df85.js +1 -0
- package/assets/esri/core/workers/chunks/505b0aa5ee3e5a26c351.js +1 -0
- package/assets/esri/core/workers/chunks/509a9cdd0228a730bcea.js +1 -0
- package/assets/esri/core/workers/chunks/52255ad573cec0a34720.js +1 -0
- package/assets/esri/core/workers/chunks/52d4fdc451a58a858af1.js +1 -0
- package/assets/esri/core/workers/chunks/5405f478af3563580926.js +1 -0
- package/assets/esri/core/workers/chunks/54577c2522ca3ff08f7e.js +1 -0
- package/assets/esri/core/workers/chunks/54d67e450da6ce2641b4.js +1 -0
- package/assets/esri/core/workers/chunks/56d3cb0ae0069a8eadde.js +1 -0
- package/assets/esri/core/workers/chunks/5b4efe0014162f777534.js +1 -0
- package/assets/esri/core/workers/chunks/5baa162351551817838b.js +1 -0
- package/assets/esri/core/workers/chunks/5cf2064bfd9d0847d9ec.js +1 -0
- package/assets/esri/core/workers/chunks/620dc3c13c345d5aa9f6.js +1 -0
- package/assets/esri/core/workers/chunks/7c290763920f52a1f504.js +1 -0
- package/assets/esri/core/workers/chunks/7dc266be958e34e81007.js +972 -0
- package/assets/esri/core/workers/chunks/7dfd70f4fa1096e56641.js +1 -0
- package/assets/esri/core/workers/chunks/7f097de06972a68cd08a.js +1 -0
- package/assets/esri/core/workers/chunks/8033531b0cc706b40d86.js +1 -0
- package/assets/esri/core/workers/chunks/814234844a056d9f1ddc.js +1 -0
- package/assets/esri/core/workers/chunks/83700cdd60ceecc639cd.js +1 -0
- package/assets/esri/core/workers/chunks/857df84cea67079a91e5.js +1 -0
- package/assets/esri/core/workers/chunks/8793070d288878d6f49b.js +1 -0
- package/assets/esri/core/workers/chunks/8865c5cc28df60364e60.js +1 -0
- package/assets/esri/core/workers/chunks/{e9f786d4ba3143ed9644.js → 8cc85d1d46dda16ad041.js} +1 -1
- package/assets/esri/core/workers/chunks/958a7ef2cbf048819988.js +1 -0
- package/assets/esri/core/workers/chunks/967af0aa4dc4da032fdc.js +1 -0
- package/assets/esri/core/workers/chunks/9722880bd7f455b2bd07.js +1 -0
- package/assets/esri/core/workers/chunks/9d738aab0d907cd09a9d.js +1 -0
- package/assets/esri/core/workers/chunks/{86b31ae136f931d7884a.js → 9e6df034d7949880471f.js} +1 -1
- package/assets/esri/core/workers/chunks/a056a79f31cddb066f15.js +1 -0
- package/assets/esri/core/workers/chunks/a2c9fd78d42df7314a3e.js +1 -0
- package/assets/esri/core/workers/chunks/a4dcb50f6622cb1444c8.js +1 -0
- package/assets/esri/core/workers/chunks/a6bfbe449b8c2fa5334c.js +1 -0
- package/assets/esri/core/workers/chunks/a8ed1a938dc164b401d9.js +1 -0
- package/assets/esri/core/workers/chunks/a9a73bc4875a5aeaf1b9.js +1 -0
- package/assets/esri/core/workers/chunks/ac0df52b2f2a4874e4ea.js +1 -0
- package/assets/esri/core/workers/chunks/{431efa172901ab8e4d53.js → acfa8eb19225f7862b1d.js} +1 -1
- package/assets/esri/core/workers/chunks/adae54f116f311d72d97.js +1 -0
- package/assets/esri/core/workers/chunks/{718073d13d3de67b629b.js → aeeb364b7c1876f6e7db.js} +1 -1
- package/assets/esri/core/workers/chunks/afddfe620e6539991e6b.js +1 -0
- package/assets/esri/core/workers/chunks/b02a83845d3da4caee9d.js +1 -0
- package/assets/esri/core/workers/chunks/{0d21506b7d4f9afdbb09.js → b3847a6bbd45d813f03c.js} +1 -1
- package/assets/esri/core/workers/chunks/b4c23630d6c85f7b59c0.js +1 -0
- package/assets/esri/core/workers/chunks/{c318b229911b60fc3cbf.js → b50ae3dc7e43ff452568.js} +1 -1
- package/assets/esri/core/workers/chunks/b5ede4df4620097c6528.js +1 -0
- package/assets/esri/core/workers/chunks/b7d7ad127f8939cbdec2.js +1 -0
- package/assets/esri/core/workers/chunks/bf1d1c02d12b526b0750.js +1 -0
- package/assets/esri/core/workers/chunks/c0e6dbecdbd30066a82c.js +1 -0
- package/assets/esri/core/workers/chunks/c2a36243eb105d570bff.js +1 -0
- package/assets/esri/core/workers/chunks/c8a3a28809542396c6fd.js +1 -0
- package/assets/esri/core/workers/chunks/cf1047ad176a25dcd2d6.js +1 -0
- package/assets/esri/core/workers/chunks/d03de043d43691665a93.js +1 -0
- package/assets/esri/core/workers/chunks/d3fecbaca51ef8844026.js +1 -0
- package/assets/esri/core/workers/chunks/dafe120243db6648a4ab.js +1 -0
- package/assets/esri/core/workers/chunks/dccc33d87cb7d902f5c7.js +1 -0
- package/assets/esri/core/workers/chunks/dd43f5647900ee27af22.js +1 -0
- package/assets/esri/core/workers/chunks/{52489e2f7748dc610263.js → dfdd853dd6c023089963.js} +1 -1
- package/assets/esri/core/workers/chunks/e6f76f62cf58fb1e67c6.js +1 -0
- package/assets/esri/core/workers/chunks/ea73a1d9cad5e1a5d861.js +1 -0
- package/assets/esri/core/workers/chunks/{4130ea1f5a9f197168d7.js → ed4519ac9533a4d340f1.js} +1 -1
- package/assets/esri/core/workers/chunks/f0e462f5a16852f33225.js +1 -0
- package/assets/esri/core/workers/chunks/f13c29bcc71aed8f3a2e.js +1 -0
- package/assets/esri/core/workers/chunks/f356e505c36397fda3cf.js +1 -0
- package/assets/esri/core/workers/chunks/f55cbaf5a1d6ee6ac171.js +1 -0
- package/assets/esri/core/workers/chunks/f6e613ae6812a347a26c.js +1 -0
- package/assets/esri/core/workers/chunks/fb3279408bd5323ec612.js +1 -0
- package/assets/esri/core/workers/chunks/fdf80a371b7b2a45f1ff.js +1 -0
- package/assets/esri/libs/vxl/vxlLayer.wasm +0 -0
- package/chunks/ChapmanAtmosphere.glsl.js +15 -15
- package/chunks/CheckerBoard.glsl.js +3 -3
- package/chunks/Clouds.glsl.js +2 -3
- package/chunks/CloudsComposition.glsl.js +3 -3
- package/chunks/ColorMaterial.glsl.js +11 -11
- package/chunks/DefaultMaterial.glsl.js +26 -26
- package/chunks/EdgeShader.glsl.js +3 -3
- package/chunks/Fog.glsl.js +6 -6
- package/chunks/HUDMaterial.glsl.js +48 -48
- package/chunks/HeatmapDensity.glsl.js +7 -7
- package/chunks/HighlightApply.glsl.js +3 -3
- package/chunks/LineCallout.glsl.js +3 -3
- package/chunks/LineMarker.glsl.js +22 -22
- package/chunks/MeasurementArrow.glsl.js +4 -4
- package/chunks/NativeLine.glsl.js +11 -11
- package/chunks/Path.glsl.js +16 -16
- package/chunks/Pattern.glsl.js +30 -30
- package/chunks/RasterColorizer.glsl.js +4 -4
- package/chunks/RealisticTree.glsl.js +20 -20
- package/chunks/RibbonLine.glsl.js +39 -39
- package/chunks/ShadedColorMaterial.glsl.js +10 -10
- package/chunks/ShadowCastVisualize.glsl.js +5 -5
- package/chunks/ShadowHighlight.glsl.js +2 -2
- package/chunks/SlicePlaneMaterial.glsl.js +3 -3
- package/chunks/Stars.glsl.js +2 -2
- package/chunks/WaterSurface.glsl.js +20 -20
- package/chunks/languageUtils.js +1 -1
- package/chunks/persistableUrlUtils.js +1 -1
- package/chunks/vec22.js +1 -1
- package/chunks/vec2f64.js +1 -1
- package/chunks/vec3.js +1 -1
- package/chunks/vec33.js +1 -1
- package/chunks/vec43.js +1 -1
- package/colorUtils.js +1 -1
- package/config.js +1 -1
- package/core/Accessor.js +1 -1
- package/core/AsyncUpdate.js +1 -1
- package/core/Clonable.js +1 -1
- package/core/Collection.js +1 -1
- package/core/HandleOwner.js +1 -1
- package/core/Loadable.js +1 -1
- package/core/NestedMap.js +1 -1
- package/core/accessorSupport/DefaultsStore.js +1 -1
- package/core/accessorSupport/Properties.js +1 -1
- package/core/accessorSupport/decorators/enumeration.js +1 -1
- package/core/accessorSupport/extensions/serializableProperty/reader.js +1 -1
- package/core/accessorSupport/extensions/serializableProperty/writePolicyUtils.js +1 -1
- package/core/accessorSupport/extensions/serializableProperty/writer.js +1 -1
- package/core/accessorSupport/read.js +1 -1
- package/core/accessorSupport/tracking.js +1 -1
- package/core/accessorSupport/write.js +1 -1
- package/core/devEnvironmentUtils.js +1 -1
- package/core/has.js +1 -1
- package/core/libs/gl-matrix-2/factories/vec2f64.js +1 -1
- package/core/libs/gl-matrix-2/math/vec3.js +1 -1
- package/core/libs/rbush/PooledRBush.js +1 -1
- package/core/promiseUtils.js +1 -1
- package/core/reactiveUtils.js +1 -1
- package/core/scheduling.js +1 -1
- package/core/throttle.js +1 -1
- package/core/urlUtils.js +1 -1
- package/core/watchUtils.js +1 -1
- package/core/workers/RemoteClient.js +1 -1
- package/core/workers/WorkerOwner.js +1 -1
- package/core/workers/loaderConfig.js +1 -1
- package/core/workers/workerFactory.js +1 -1
- package/geometry/Mesh.js +1 -1
- package/geometry/geometryEngine.js +1 -1
- package/geometry/geometryEngineAsync.js +1 -1
- package/geometry/projection.js +1 -1
- package/geometry/support/axisAngleDegrees.js +1 -1
- package/geometry/support/meshUtils/centerAt.js +1 -1
- package/geometry/support/meshUtils/deduplicate.js +1 -1
- package/geometry/support/meshUtils/elevation.js +1 -1
- package/geometry/support/meshUtils/geographicUtils.js +1 -1
- package/geometry/support/meshUtils/georeference.js +1 -1
- package/geometry/support/meshUtils/loadExternal.js +1 -1
- package/geometry/support/meshUtils/loadGLTFMesh.js +1 -1
- package/geometry/support/meshUtils/offset.js +1 -1
- package/geometry/support/meshUtils/rotate.js +1 -1
- package/geometry/support/meshUtils/scale.js +1 -1
- package/geometry/support/normalizeUtils.js +1 -1
- package/geometry/support/normalizeUtilsCommon.js +1 -1
- package/geometry/support/offset.js +1 -1
- package/geometry/support/rotate.js +1 -1
- package/identity/IdentityManagerBase.js +1 -1
- package/identity/IdentityModal.js +1 -1
- package/interfaces.d.ts +109 -2
- package/intl/locale.js +1 -1
- package/intl/messages.js +1 -1
- package/kernel.js +1 -1
- package/layers/AnalysisLayer.js +1 -1
- package/layers/CSVLayer.js +1 -1
- package/layers/FeatureLayer.js +1 -1
- package/layers/GeoJSONLayer.js +1 -1
- package/layers/GeoRSSLayer.js +1 -1
- package/layers/ImageryLayer.js +1 -1
- package/layers/ImageryTileLayer.js +1 -1
- package/layers/Layer.js +1 -1
- package/layers/MapImageLayer.js +1 -1
- package/layers/MapNotesLayer.js +1 -1
- package/layers/OGCFeatureLayer.js +1 -1
- package/layers/RouteLayer.js +1 -1
- package/layers/SceneLayer.js +1 -1
- package/layers/StreamLayer.js +1 -1
- package/layers/SubtypeGroupLayer.js +1 -1
- package/layers/TileLayer.js +1 -1
- package/layers/VectorTileLayer.js +1 -1
- package/layers/VoxelLayer.js +1 -1
- package/layers/VoxelWasmPerScene.js +1 -1
- package/layers/WCSLayer.js +1 -1
- package/layers/WFSLayer.js +1 -1
- package/layers/WMSLayer.js +1 -1
- package/layers/WMTSLayer.js +1 -1
- package/layers/buildingSublayers/BuildingComponentSublayer.js +1 -1
- package/layers/effects/EffectView.js +1 -1
- package/layers/effects/FeatureEffectView.js +1 -1
- package/layers/effects/jsonUtils.js +1 -1
- package/layers/graphics/OptimizedGeometry.js +1 -1
- package/layers/graphics/centroid.js +1 -1
- package/layers/graphics/controllers/FeatureTileController3D.js +1 -1
- package/layers/graphics/controllers/I3SOnDemandController.js +1 -1
- package/layers/graphics/data/QueryEngineResult.js +1 -1
- package/layers/graphics/data/StreamFeatureManager.js +1 -1
- package/layers/graphics/editingSupport.js +1 -1
- package/layers/graphics/objectIdUtils.js +1 -1
- package/layers/graphics/sources/CSVSource.js +1 -1
- package/layers/graphics/sources/FeatureLayerSource.js +1 -1
- package/layers/graphics/sources/GeoJSONSource.js +1 -1
- package/layers/graphics/sources/MemorySource.js +1 -1
- package/layers/graphics/sources/OGCFeatureSource.js +1 -1
- package/layers/graphics/sources/WFSSource.js +1 -1
- package/layers/graphics/sources/WFSSourceWorker.js +1 -1
- package/layers/graphics/sources/connections/WebSocketConnection.js +1 -1
- package/layers/graphics/sources/geojson/GeoJSONSourceWorker.js +1 -1
- package/layers/graphics/sources/geojson/geojson.js +1 -1
- package/layers/graphics/sources/support/CSVSourceWorker.js +1 -1
- package/layers/graphics/sources/support/QueryTask.js +1 -1
- package/layers/mixins/APIKeyMixin.js +1 -1
- package/layers/mixins/ArcGISImageService.js +1 -1
- package/layers/mixins/ArcGISMapService.js +1 -1
- package/layers/mixins/ImageryTileMixin.js +1 -1
- package/layers/mixins/OperationalLayer.js +1 -1
- package/layers/mixins/PortalLayer.js +1 -1
- package/layers/mixins/SceneService.js +1 -1
- package/layers/mixins/refresh.js +1 -1
- package/layers/ogc/dateUtils.js +1 -1
- package/layers/ogc/ogcFeatureUtils.js +1 -1
- package/layers/ogc/wfsUtils.js +1 -1
- package/layers/save/featureLayerUtils.js +1 -1
- package/layers/support/ExportImageParameters.js +1 -1
- package/layers/support/ExportImageServiceParameters.js +1 -1
- package/layers/support/ExportWMSImageParameters.js +1 -1
- package/layers/support/FeatureEffect.js +1 -1
- package/layers/support/FeatureType.js +1 -1
- package/layers/support/FetchAssociatedFeatureLayer.js +1 -1
- package/layers/support/LabelClass.js +1 -1
- package/layers/support/LayerContingentValuesCache.js +1 -1
- package/layers/support/RasterFunction.js +1 -1
- package/layers/support/RasterInfo.js +1 -1
- package/layers/support/RasterJobHandler.js +1 -1
- package/layers/support/RasterWorker.js +1 -1
- package/layers/support/Sublayer.js +1 -1
- package/layers/support/SubtypeSublayer.js +1 -1
- package/layers/support/TilemapCache.js +1 -1
- package/layers/support/TimeReference.d.ts +4 -0
- package/layers/support/WMTSSublayer.js +1 -1
- package/layers/support/arcgisLayers.js +1 -1
- package/layers/support/commonProperties.js +1 -1
- package/layers/support/editableLayers.js +1 -1
- package/layers/support/fieldUtils.js +1 -1
- package/layers/support/floorFilterUtils.js +1 -1
- package/layers/support/imageryRendererUtils.js +1 -1
- package/layers/support/layerUtils.js +1 -1
- package/layers/support/layersCreator.js +1 -1
- package/layers/support/rasterDatasets/BaseRaster.js +1 -1
- package/layers/support/rasterDatasets/CloudRaster.js +1 -1
- package/layers/support/rasterDatasets/ImageAuxRaster.js +1 -1
- package/layers/support/rasterDatasets/ImageServerRaster.js +1 -1
- package/layers/support/rasterDatasets/InMemoryRaster.js +1 -1
- package/layers/support/rasterDatasets/MRFRaster.js +1 -1
- package/layers/support/rasterDatasets/TIFFRaster.js +1 -1
- package/layers/support/rasterDatasets/WCSRaster.js +1 -1
- package/layers/support/rasterDatasets/multipartParser.js +1 -1
- package/layers/support/rasterDatasets/pamParser.js +1 -1
- package/layers/support/rasterDatasets/wcsCapabilitiesParser.js +1 -1
- package/layers/support/rasterDatasets/wcsCoverageParser.js +1 -1
- package/layers/support/rasterDatasets/xmlUtilities.js +1 -1
- package/layers/support/rasterFormats/Lerc.js +1 -1
- package/layers/support/rasterFormats/RasterCodec.js +1 -1
- package/layers/support/rasterFormats/TiffDecoder.js +1 -1
- package/layers/support/rasterFunctions/pixelUtils.js +1 -1
- package/layers/support/rasterFunctions/rasterProjectionHelper.js +1 -1
- package/layers/support/rasterFunctions/stretchUtils.js +1 -1
- package/layers/support/rasterFunctions/vectorFieldUtils.js +1 -1
- package/layers/support/rasterTransforms/PolynomialTransform.js +1 -1
- package/layers/support/rasterTransforms/utils.js +1 -1
- package/layers/support/source/DataLayerSource.js +1 -1
- package/layers/support/source/QueryTableDataSource.js +1 -1
- package/layers/support/vectorTileLayerLoader.js +1 -1
- package/layers/support/wmsUtils.js +1 -1
- package/layers/support/wmtsUtils.js +1 -1
- package/libs/maquette-advanced-projector/projector.js +1 -1
- package/networks/Network.js +1 -1
- package/networks/UtilityNetwork.js +1 -1
- package/networks/support/utils.js +1 -1
- package/package.json +1 -1
- package/popup/content/ExpressionContent.js +1 -1
- package/portal/Portal.js +1 -1
- package/portal/PortalItem.js +1 -1
- package/portal/support/geometryServiceUtils.js +1 -1
- package/portal/support/layersLoader.js +1 -1
- package/portal/support/portalItemUtils.js +1 -1
- package/portal/support/portalLayers.js +1 -1
- package/renderers/DictionaryRenderer.js +1 -1
- package/renderers/FlowRenderer.js +1 -1
- package/renderers/RasterColormapRenderer.js +1 -1
- package/renderers/RasterStretchRenderer.js +1 -1
- package/renderers/VectorFieldRenderer.js +1 -1
- package/renderers/support/RasterSymbolizer.js +1 -1
- package/renderers/support/UniqueValueInfo.js +1 -1
- package/renderers/support/colorRampUtils.js +1 -1
- package/renderers/support/heatmapUtils.js +1 -1
- package/renderers/support/rasterRendererHelper.js +1 -1
- package/request.js +1 -1
- package/rest/identify.js +1 -1
- package/rest/imageService.js +1 -1
- package/rest/networkService.js +1 -1
- package/rest/networks/support/SynthesizeAssociationGeometriesParameters.js +1 -1
- package/rest/operations/identify.js +1 -1
- package/rest/print.js +1 -1
- package/rest/query/executeQuery.js +1 -1
- package/rest/query/operations/query.js +1 -1
- package/rest/query/operations/queryRelatedRecords.js +1 -1
- package/rest/query/operations/queryTopFeatures.js +1 -1
- package/rest/route.js +1 -1
- package/rest/support/DirectionLine.js +1 -1
- package/rest/support/DirectionPoint.js +1 -1
- package/rest/support/DirectionsFeatureSet.js +1 -1
- package/rest/support/FeatureSet.js +1 -1
- package/rest/support/ImageSampleParameters.js +1 -1
- package/rest/support/PointBarrier.js +1 -1
- package/rest/support/PolygonBarrier.js +1 -1
- package/rest/support/PolylineBarrier.js +1 -1
- package/rest/support/RouteInfo.js +1 -1
- package/rest/support/Stop.js +1 -1
- package/rest/support/meshFeatureSet.js +1 -1
- package/rest/support/printTaskUtils.js +1 -1
- package/smartMapping/labels/clusters.js +1 -1
- package/smartMapping/raster/renderers/rgb.js +1 -1
- package/smartMapping/raster/renderers/uniqueValue.js +1 -1
- package/smartMapping/raster/support/adapters/ImageryLayerAdapter.js +1 -1
- package/smartMapping/raster/support/adapters/RasterLayerAdapter.js +1 -1
- package/smartMapping/raster/support/utils.js +1 -1
- package/smartMapping/renderers/color.js +1 -1
- package/smartMapping/renderers/size.js +1 -1
- package/smartMapping/renderers/support/utils.js +1 -1
- package/smartMapping/renderers/univariateColorSize.js +1 -1
- package/smartMapping/statistics/support/WorkerClient.js +1 -1
- package/smartMapping/support/adapters/CSVLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/FeatureLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/OGCFeatureLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/SceneLayerAdapter.js +1 -1
- package/smartMapping/support/adapters/support/utils.js +1 -1
- package/statistics/utils.js +1 -1
- package/support/LayersMixin.js +1 -1
- package/support/TablesMixin.js +1 -1
- package/support/arcadeUtils.js +1 -1
- package/support/basemapUtils.js +1 -1
- package/support/popupUtils.js +1 -1
- package/support/revision.js +1 -1
- package/support/timeUtils.js +1 -1
- package/symbols/FillSymbol3DLayer.js +1 -1
- package/symbols/LineSymbol3DLayer.js +1 -1
- package/symbols/LineSymbolMarker.js +1 -1
- package/symbols/PictureFillSymbol.js +1 -1
- package/symbols/PointSymbol3D.js +1 -1
- package/symbols/SimpleLineSymbol.js +1 -1
- package/symbols/SimpleMarkerSymbol.js +1 -1
- package/symbols/cim/CIMResourceManager.js +1 -1
- package/symbols/cim/CIMSymbolDrawHelper.js +1 -1
- package/symbols/cim/CIMSymbolHelper.js +1 -1
- package/symbols/cim/ExpandedCIM.js +1 -1
- package/symbols/cim/SDFHelper.js +1 -1
- package/symbols/cim/cimAnalyzer.js +1 -1
- package/symbols/cim/effects/EffectControlMeasureLine.js +1 -1
- package/symbols/cim/effects/EffectDashes.js +1 -1
- package/symbols/cim/effects/EffectOffset.js +1 -1
- package/symbols/cim/placements/PlacementAlongLineSameSize.js +1 -1
- package/symbols/cim/utils.js +1 -1
- package/symbols/support/cimSymbolUtils.js +1 -1
- package/symbols/support/jsonUtils.js +1 -1
- package/symbols/support/previewCIMSymbol.js +1 -1
- package/symbols/support/previewSymbol2D.js +1 -1
- package/symbols/support/previewSymbol3D.js +1 -1
- package/symbols/support/previewWebStyleSymbol.js +1 -1
- package/symbols/support/svgUtils.js +1 -1
- package/symbols/support/symbolConversion.js +1 -1
- package/symbols/support/symbolUtils.js +1 -1
- package/tasks/GenerateRendererTask.js +1 -1
- package/views/2d/MapViewConstraints.js +1 -1
- package/views/2d/constraints/GeometryConstraint.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/Stage.js +1 -1
- package/views/2d/engine/imagery/BrushRasterBitmap.js +1 -1
- package/views/2d/engine/imagery/RasterBitmap.js +1 -1
- package/views/2d/engine/imagery/RasterVFDisplayObject.js +1 -1
- package/views/2d/engine/vectorTiles/TilemapRequest.js +1 -1
- package/views/2d/engine/vectorTiles/WorkerTileHandler.js +1 -1
- package/views/2d/engine/vectorTiles/buckets/FillBucket.js +1 -1
- package/views/2d/engine/vectorTiles/buckets/LineBucket.js +1 -1
- package/views/2d/engine/vectorTiles/expression/expression.js +1 -1
- package/views/2d/engine/vectorTiles/shaders/VTLMaterial.js +1 -1
- package/views/2d/engine/vectorTiles/style/StyleLayer.js +1 -1
- package/views/2d/engine/vectorTiles/style/StyleRepository.js +1 -1
- package/views/2d/engine/vectorTiles/style/VectorTileSource.js +1 -1
- package/views/2d/engine/webgl/FeatureTile.js +1 -1
- package/views/2d/engine/webgl/GraphicTile.js +1 -1
- package/views/2d/engine/webgl/TextureManager.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLBrushHeatmap.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLBrushVTLCircle.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLBrushVTLFill.js +1 -1
- package/views/2d/engine/webgl/brushes/WGLBrushVTLLine.js +1 -1
- package/views/2d/engine/webgl/collisions/CollisionEngine.js +1 -1
- package/views/2d/engine/webgl/collisions/MetricReader.js +1 -1
- package/views/2d/engine/webgl/cpuMapped/DisplayRecordReader.js +1 -1
- package/views/2d/engine/webgl/cpuMapped/FreeList.js +1 -1
- package/views/2d/engine/webgl/mesh/MeshData.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/WGLBaseLineTemplate.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/WGLBaseMarkerTemplate.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/WGLBaseTextTemplate.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/WGLDynamicFillTemplate.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/WGLLabelTemplate.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/WGLLineTemplate.js +1 -1
- package/views/2d/engine/webgl/mesh/templates/WGLMeshTemplate.js +1 -1
- package/views/2d/engine/webgl/painter/RenderPass.js +1 -1
- package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
- package/views/2d/engine/webgl/techniques/dotDensity/TechniqueDotDensity.js +1 -1
- package/views/2d/input/MapViewInputManager.js +1 -1
- package/views/2d/input/handlers/GamepadNavigation.js +1 -1
- package/views/2d/interactive/editingTools/draw/DrawGraphicTool2D.js +1 -1
- package/views/2d/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiles2D.js +1 -1
- package/views/2d/layers/BaseLayerView2D.js +1 -1
- package/views/2d/layers/BaseLayerViewGL2D.js +1 -1
- package/views/2d/layers/BitmapTileLayerView2D.js +1 -1
- package/views/2d/layers/FeatureLayerView2D.js +1 -1
- package/views/2d/layers/GeoRSSLayerView2D.js +1 -1
- package/views/2d/layers/GraphicsLayerView2D.js +1 -1
- package/views/2d/layers/ImageryLayerView2D.js +1 -1
- package/views/2d/layers/ImageryTileLayerView2D.js +1 -1
- package/views/2d/layers/KMLLayerView2D.js +1 -1
- package/views/2d/layers/LayerView2D.js +1 -1
- package/views/2d/layers/SubtypeGroupLayerView2D.js +1 -1
- package/views/2d/layers/TileLayerView2D.js +1 -1
- package/views/2d/layers/VectorTileLayerView2D.js +1 -1
- package/views/2d/layers/WMTSLayerView2D.js +1 -1
- package/views/2d/layers/features/FeatureStore2D.js +1 -1
- package/views/2d/layers/features/Pipeline.js +1 -1
- package/views/2d/layers/features/batchUtils.js +1 -1
- package/views/2d/layers/features/controllers/FeatureController2D.js +1 -1
- package/views/2d/layers/features/controllers/support/sourceAdapters.js +1 -1
- package/views/2d/layers/features/createSymbolSchema.js +1 -1
- package/views/2d/layers/features/processors/SymbolProcessor.js +1 -1
- package/views/2d/layers/features/schemaUtils.js +1 -1
- package/views/2d/layers/features/sources/BaseFeatureSource.js +1 -1
- package/views/2d/layers/features/sources/DataTileSource.js +1 -1
- package/views/2d/layers/features/sources/DataTileSubscription.js +1 -1
- package/views/2d/layers/features/sources/SnapshotFeatureSource.js +1 -1
- package/views/2d/layers/features/support/ClusterStore.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReader.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReaderJSON.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReaderPBF.js +1 -1
- package/views/2d/layers/features/support/FeatureSetReaderPBFHeader.js +1 -1
- package/views/2d/layers/features/support/ResourceManagerProxy.js +1 -1
- package/views/2d/layers/features/tileRenderers/SymbolTileRenderer.js +1 -1
- package/views/2d/layers/features/tileRenderers/support/WGLFeatureView.js +1 -1
- package/views/2d/layers/graphics/graphicsUtils.js +1 -1
- package/views/2d/layers/imagery/BaseImageryTileSubView2D.js +1 -1
- package/views/2d/layers/imagery/ImageryTileView2D.js +1 -1
- package/views/2d/layers/imagery/VectorFieldTileView2D.js +1 -1
- package/views/2d/layers/support/ExportStrategy.js +1 -1
- package/views/2d/layers/support/FeatureCommandQueue.js +1 -1
- package/views/2d/magnifier/MagnifierView2D.js +1 -1
- package/views/2d/support/engineHelpers.js +1 -1
- package/views/2d/tiling/TileManager.js +1 -1
- package/views/3d/analysis/AreaMeasurement/support/AreaMeasurementVisualization.js +1 -1
- package/views/3d/analysis/AreaMeasurementAnalysisView3D.js +1 -1
- package/views/3d/analysis/Dimensioning/DimensioningVisualization.js +5 -0
- package/views/3d/analysis/Dimensioning/LinearDimensionVisualization.js +5 -0
- package/views/3d/analysis/DimensioningAnalysisView3D.js +1 -1
- package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementController.js +1 -1
- package/views/3d/analysis/DirectLineMeasurement/DirectLineMeasurementVisualization.js +1 -1
- package/views/3d/analysis/DirectLineMeasurementAnalysisView3D.js +1 -1
- package/views/3d/analysis/LineOfSight/LineOfSightController.js +1 -1
- package/views/3d/analysis/LineOfSightAnalysisView3D.js +1 -1
- package/views/3d/analysis/Slice/SliceTool.js +1 -1
- package/views/3d/analysis/SliceAnalysisView3D.js +1 -1
- package/views/3d/environment/ChapmanAtmosphere.glsl.js +1 -1
- package/views/3d/environment/ChapmanAtmosphere.js +1 -1
- package/views/3d/environment/Clouds.glsl.js +1 -1
- package/views/3d/environment/CloudsComposition.glsl.js +1 -1
- package/views/3d/environment/CloudsComposition.js +1 -1
- package/views/3d/environment/CloudsCompositionParameters.js +5 -0
- package/views/3d/environment/EnvironmentRenderer.js +1 -1
- package/views/3d/environment/Fog.glsl.js +1 -1
- package/views/3d/environment/Fog.js +1 -1
- package/views/3d/environment/Precipitation.js +1 -1
- package/views/3d/environment/SceneViewEnvironment.js +1 -1
- package/views/3d/environment/SceneViewEnvironmentManager.js +1 -1
- package/views/3d/environment/SimpleAtmosphere.js +1 -1
- package/views/3d/environment/Stars.glsl.js +1 -1
- package/views/3d/environment/Stars.js +1 -1
- package/views/3d/externalRenderers/ExternalRendererStore.js +1 -1
- package/views/3d/glTF/internal/Resource.js +1 -1
- package/views/3d/glTF/loader.js +1 -1
- package/views/3d/input/SceneInputManager.js +1 -1
- package/views/3d/input/handlers/TwoFingerTilt.js +1 -1
- package/views/3d/interactive/Manipulator3D.js +1 -1
- package/views/3d/interactive/editingTools/draw/DrawGraphicTool3D.js +1 -1
- package/views/3d/interactive/editingTools/manipulations/MoveManipulation.js +1 -1
- package/views/3d/interactive/editingTools/moveGraphic/isSupportedGraphic.js +1 -1
- package/views/3d/interactive/editingTools/reshapeGraphic/GraphicReshapeTool.js +1 -1
- package/views/3d/interactive/editingTools/reshapeGraphic/ReshapeOperation.js +1 -1
- package/views/3d/interactive/editingTools/reshapeGraphic/isSupportedGraphic.js +1 -1
- package/views/3d/interactive/editingTools/transformGraphic/GraphicScaleRotateTransform.js +1 -1
- package/views/3d/interactive/editingTools/transformGraphic/isSupportedGraphic.js +1 -1
- package/views/3d/interactive/measurementTools/areaMeasurement3D/AreaMeasurement3DView.js +1 -1
- package/views/3d/interactive/measurementTools/directLineMeasurement3D/DirectLineMeasurement3DView.js +1 -1
- package/views/3d/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiles3D.js +1 -1
- package/views/3d/interactive/visualElements/DrapedVisualElementResources.js +1 -1
- package/views/3d/interactive/visualElements/LineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/OutlineVisualElement.js +1 -1
- package/views/3d/interactive/visualElements/VisualElementResources.js +1 -1
- package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
- package/views/3d/layers/ElevationLayerView3D.js +1 -1
- package/views/3d/layers/FeatureLayerView3D.js +1 -1
- package/views/3d/layers/FeatureLayerViewBase3D.js +1 -1
- package/views/3d/layers/FeatureLikeLayerView3D.js +1 -1
- package/views/3d/layers/GraphicsLayerView3D.js +1 -1
- package/views/3d/layers/GraphicsView3D.js +1 -1
- package/views/3d/layers/I3SMeshView3D.js +1 -1
- package/views/3d/layers/ImageryLayerView3D.js +1 -1
- package/views/3d/layers/ImageryTileLayerView3D.js +1 -1
- package/views/3d/layers/LayerView3D.js +1 -1
- package/views/3d/layers/RouteLayerView3D.js +1 -1
- package/views/3d/layers/SceneLayerGraphicsView3D.js +1 -1
- package/views/3d/layers/SceneLayerView3D.js +1 -1
- package/views/3d/layers/SceneLayerWorker.js +1 -1
- package/views/3d/layers/StreamLayerView3D.js +1 -1
- package/views/3d/layers/TiledLayerView3D.js +1 -1
- package/views/3d/layers/VectorTileLayerView3D.js +1 -1
- package/views/3d/layers/VoxelLayerView3D.js +1 -1
- package/views/3d/layers/WMSLayerView3D.js +1 -1
- package/views/3d/layers/WMTSLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DCore.js +1 -1
- package/views/3d/layers/graphics/Graphics3DExtrudeSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DFeatureProcessor.js +1 -1
- package/views/3d/layers/graphics/Graphics3DFilterVisibility.js +1 -1
- package/views/3d/layers/graphics/Graphics3DFrustumVisibility.js +1 -1
- package/views/3d/layers/graphics/Graphics3DLineSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DMeshFillSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DObject3DGraphicLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPathSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/Graphics3DPointSymbol.js +1 -1
- package/views/3d/layers/graphics/Graphics3DSymbol.js +1 -1
- package/views/3d/layers/graphics/Graphics3DSymbolLayer.js +1 -1
- package/views/3d/layers/graphics/GraphicsDeconflictor.js +1 -1
- package/views/3d/layers/graphics/GraphicsProcessor.js +1 -1
- package/views/3d/layers/graphics/Labeler.js +1 -1
- package/views/3d/layers/i3s/I3SAttributeOverrides.js +1 -1
- package/views/3d/layers/i3s/I3SMeshViewFilter.js +1 -1
- package/views/3d/layers/i3s/I3SStreamDataController.js +1 -1
- package/views/3d/layers/i3s/I3SUtil.js +1 -1
- package/views/3d/layers/support/FeatureTileTree3D.js +1 -1
- package/views/3d/layers/support/FeatureTileTree3DDebugger.js +1 -1
- package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
- package/views/3d/layers/support/StageLayerElevationProvider.js +1 -1
- package/views/3d/layers/support/featureTileQuery3D.js +1 -1
- package/views/3d/state/ConstraintsManager.js +1 -1
- package/views/3d/state/helpers/SceneIntersectionHelper.js +1 -1
- package/views/3d/support/ResourceController.js +1 -1
- package/views/3d/support/SharedSymbolResources.js +1 -1
- package/views/3d/support/TextureCollection.js +1 -1
- package/views/3d/support/cameraUtils.js +1 -1
- package/views/3d/support/pointsOfInterest/CameraOnSurface.js +1 -1
- package/views/3d/support/pointsOfInterest/Focus.js +1 -1
- package/views/3d/support/pointsOfInterest/PointsOfInterest.js +1 -1
- package/views/3d/support/pointsOfInterest/StableSurfaceCenter.js +1 -1
- package/views/3d/terrain/OverlayFramebufferObject.js +1 -1
- package/views/3d/terrain/OverlayManager.js +1 -1
- package/views/3d/terrain/OverlayRenderer.js +1 -1
- package/views/3d/terrain/PatchGeometry.js +1 -1
- package/views/3d/terrain/PatchGeometryFactory.js +1 -1
- package/views/3d/terrain/PatchRenderData.js +1 -1
- package/views/3d/terrain/PlanarPatch.js +1 -1
- package/views/3d/terrain/RasterColorizerTechnique.js +1 -1
- package/views/3d/terrain/RasterTile.js +1 -1
- package/views/3d/terrain/SphericalPatch.js +1 -1
- package/views/3d/terrain/TerrainRenderer.js +1 -1
- package/views/3d/terrain/TerrainSurface.js +1 -1
- package/views/3d/terrain/Tile.js +1 -1
- package/views/3d/terrain/TileCompositor.js +1 -1
- package/views/3d/terrain/TileRenderer.js +1 -1
- package/views/3d/terrain/TilingSchemeLogic.js +1 -1
- package/views/3d/terrain/terrainUtils.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentIntersectionData.js +1 -1
- package/views/3d/webgl-engine/collections/Component/ComponentObjectCollection.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/ComponentTechnique.js +1 -1
- package/views/3d/webgl-engine/collections/Component/Material/shader/ComponentData.glsl.js +2 -2
- package/views/3d/webgl-engine/core/material/MaterialBase.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/ScreenSizeScaling.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/Slice.glsl.js +5 -5
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/PathVertexPosition.glsl.js +8 -8
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/RibbonVertexPosition.glsl.js +6 -6
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexNormal.glsl.js +4 -4
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VertexPosition.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/attributes/VerticalOffset.glsl.js +5 -5
- package/views/3d/webgl-engine/core/shaderLibrary/hud/HUD.glsl.js +13 -13
- package/views/3d/webgl-engine/core/shaderLibrary/raster/BasicGrid.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/raster/Colormap.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/raster/Common.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/raster/Projection.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/raster/RasterColorizer.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ComputeMaterialColor.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientLighting.glsl.js +5 -5
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateAmbientOcclusion.glsl.js +3 -3
- package/views/3d/webgl-engine/core/shaderLibrary/shading/EvaluateSceneLighting.glsl.js +13 -13
- package/views/3d/webgl-engine/core/shaderLibrary/shading/LineStipple.glsl.js +17 -17
- package/views/3d/webgl-engine/core/shaderLibrary/shading/ReadShadowMap.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderLibrary/shading/VisualVariables.glsl.js +7 -7
- package/views/3d/webgl-engine/core/shaderLibrary/shading/WaterDistortion.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/terrain/Overlay.glsl.js +5 -5
- package/views/3d/webgl-engine/core/shaderLibrary/util/CameraSpace.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/util/CloudsParallaxShading.glsl.js +15 -15
- package/views/3d/webgl-engine/core/shaderLibrary/util/ScreenSizePerspective.glsl.js +2 -2
- package/views/3d/webgl-engine/core/shaderLibrary/util/View.glsl.js +1 -1
- package/views/3d/webgl-engine/core/shaderModules/BooleanPassUniform.js +5 -0
- package/views/3d/webgl-engine/core/shaderModules/Float4DrawUniform.js +5 -0
- package/views/3d/webgl-engine/core/shaderModules/{Matrix3Uniform.js → Float4PassUniform.js} +1 -1
- package/views/3d/webgl-engine/core/shaderModules/Float4Uniform.js +1 -1
- package/views/3d/webgl-engine/core/shaderModules/Matrix3DrawUniform.js +5 -0
- package/views/3d/webgl-engine/core/shaderModules/Matrix3PassUniform.js +5 -0
- package/views/3d/webgl-engine/core/shaderModules/{TextureCubeUniform.js → TextureCubePassUniform.js} +1 -1
- package/views/3d/webgl-engine/core/shaderTechnique/ShaderTechniqueConfiguration.js +1 -1
- package/views/3d/webgl-engine/lib/AutoDisposable.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/3d/webgl-engine/lib/GLTextureMaterial.js +1 -1
- package/views/3d/webgl-engine/lib/RenderPluginManager.js +1 -1
- package/views/3d/webgl-engine/lib/Renderer.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowAccumulator.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowHighlight.js +1 -1
- package/views/3d/webgl-engine/lib/ShadowMap.js +1 -1
- package/views/3d/webgl-engine/lib/Texture.js +1 -1
- package/views/3d/webgl-engine/lib/WebGLLayer.js +1 -1
- package/views/3d/webgl-engine/lib/edgeRendering/EdgeView.js +1 -1
- package/views/3d/webgl-engine/lib/intersectorUtilsConversions.js +1 -1
- package/views/3d/webgl-engine/lib/pathGeometryUtils.js +1 -1
- package/views/3d/webgl-engine/materials/CheckerBoardMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ColorMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/DefaultMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/HUDMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/HeatmapDensityMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ImageMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineCalloutMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/LineMarkerMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/MeasurementArrowMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/NativeLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/PathTechnique.js +1 -1
- package/views/3d/webgl-engine/materials/RibbonLineMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/ShadedColorMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/{VisualVariableMaterialParameters.js → VisualVariablePassParameters.js} +1 -1
- package/views/3d/webgl-engine/materials/WaterGLMaterial.js +1 -1
- package/views/3d/webgl-engine/materials/WaterTechnique.js +1 -1
- package/views/3d/webgl-engine/parts/RenderView.js +1 -1
- package/views/3d/webgl-engine/parts/requireUtils.js +1 -1
- package/views/3d/webgl-engine/shaders/CheckerBoard.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/CheckerBoardTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/ColorMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/DefaultMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/HUDMaterialTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/HeatmapDensity.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/HeatmapDensityTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/HeatmapTechnique.js +1 -1
- package/views/3d/webgl-engine/shaders/HighlightApply.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/LineCallout.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/LineMarker.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/Magnifier.glsl.js +3 -3
- package/views/3d/webgl-engine/shaders/MeasurementArrow.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/NativeLine.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/Path.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/Pattern.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RealisticTree.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/RibbonLine.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadedColorMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadowCastVisualize.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/ShadowHighlight.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/SlicePlaneMaterial.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/WaterSurface.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/sources/edgeRenderer/AdjustProjectedPosition.glsl.js +3 -3
- package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeShader.glsl.js +1 -1
- package/views/3d/webgl-engine/shaders/sources/edgeRenderer/EdgeUtil.glsl.js +5 -5
- package/views/BasemapView.js +1 -1
- package/views/GroundView.js +1 -1
- package/views/LayerViewManager.js +1 -1
- package/views/MapView.js +1 -1
- package/views/SceneView.js +1 -1
- package/views/ToolViewManager.js +1 -1
- package/views/View.js +1 -1
- package/views/draw/DrawAction.js +1 -1
- package/views/draw/DrawGraphicTool.js +1 -1
- package/views/draw/DrawOperation.js +1 -1
- package/views/draw/DrawTool.js +1 -1
- package/views/draw/support/Box.js +1 -1
- package/views/draw/support/GraphicMover.js +1 -1
- package/views/draw/support/Reshape.js +1 -1
- package/views/interactive/coordinateHelper.js +1 -1
- package/views/interactive/editGeometry/operations/OffsetEdgeVertex.js +1 -1
- package/views/interactive/snapping/FeatureSnappingEngine.js +1 -1
- package/views/interactive/snapping/SnappingManager.js +1 -1
- package/views/interactive/snapping/featureSources/WorkerTileTreeDebugger.js +1 -1
- package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceSnappingSourceWorkerHandle.js +1 -1
- package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTileStore.js +1 -1
- package/views/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiledFetcher.js +1 -1
- package/views/layers/FeatureLayerView.js +1 -1
- package/views/layers/GroupLayerView.js +1 -1
- package/views/layers/ImageryLayerView.js +1 -1
- package/views/layers/ImageryTileLayerView.js +1 -1
- package/views/layers/LayerView.js +1 -1
- package/views/layers/MapImageLayerView.js +1 -1
- package/views/layers/WMSLayerView.js +1 -1
- package/views/support/AllocationTracer.js +1 -1
- package/views/support/DefaultsFromMap.js +1 -1
- package/views/support/geometry2dUtils.js +1 -1
- package/views/support/layerViewUtils.js +1 -1
- package/views/support/waitForResources.js +1 -1
- package/views/ui/UI.js +1 -1
- package/views/webgl/BufferObject.js +1 -1
- package/views/webgl/FramebufferObject.js +1 -1
- package/views/webgl/RenderingContext.js +1 -1
- package/views/webgl/Texture.js +1 -1
- package/views/webgl/UniformBufferLayout.js +1 -1
- package/views/webgl/VertexArrayObject.js +1 -1
- package/views/webgl/capabilities.js +1 -1
- package/views/webgl/rasterUtils.js +1 -1
- package/views/webgl/testFloatBufferBlend.js +1 -1
- package/webdoc/widgets/TimeSlider.js +1 -1
- package/webmap/Bookmark.js +1 -1
- package/webscene/Slide.js +1 -1
- package/widgets/AreaMeasurement2D/AreaMeasurement2DTool.js +1 -1
- package/widgets/AreaMeasurement2D/AreaMeasurement2DViewModel.js +1 -1
- package/widgets/AreaMeasurement2D.js +1 -1
- package/widgets/AreaMeasurement3D.js +1 -1
- package/widgets/Attribution.js +1 -1
- package/widgets/BasemapGallery/BasemapGalleryViewModel.js +1 -1
- package/widgets/BasemapGallery/support/BasemapGalleryItem.js +1 -1
- package/widgets/BasemapGallery/support/basemapCompatibilityUtils.js +1 -1
- package/widgets/BasemapLayerList.js +1 -1
- package/widgets/BasemapToggle/BasemapToggleViewModel.js +1 -1
- package/widgets/Bookmarks/BookmarksViewModel.js +1 -1
- package/widgets/Bookmarks.js +1 -1
- package/widgets/BuildingExplorer/BuildingDisciplinesTree/BuildingDisciplinesNode.js +1 -1
- package/widgets/BuildingExplorer/BuildingExplorerViewModel.js +1 -1
- package/widgets/BuildingExplorer/BuildingLevel.js +1 -1
- package/widgets/BuildingExplorer/BuildingLevelPicker/BuildingLevelPicker.js +1 -1
- package/widgets/BuildingExplorer/BuildingNumericFilterViewModel.js +1 -1
- package/widgets/BuildingExplorer/BuildingPhase.js +1 -1
- package/widgets/BuildingExplorer/support/buildingLayerUtils.js +1 -1
- package/widgets/BuildingExplorer.js +1 -1
- package/widgets/CoordinateConversion/CoordinateConversionViewModel.js +1 -1
- package/widgets/CoordinateConversion/support/Format.js +1 -1
- package/widgets/Daylight/DaylightViewModel.js +1 -1
- package/widgets/Daylight/support/SliderWithDropdown.js +1 -1
- package/widgets/Daylight.js +1 -1
- package/widgets/DirectLineMeasurement3D.js +1 -1
- package/widgets/Directions/DirectionsViewModel.js +1 -1
- package/widgets/Directions.js +1 -1
- package/widgets/DistanceMeasurement2D/DistanceMeasurement2DViewModel.js +1 -1
- package/widgets/DistanceMeasurement2D.js +1 -1
- package/widgets/Editor/CreateFeaturesWorkflow.js +1 -1
- package/widgets/Editor/CreateWorkflow.js +1 -1
- package/widgets/Editor/EditorViewModel.js +1 -1
- package/widgets/Editor/UpdateWorkflow.js +1 -1
- package/widgets/Editor/workflowUtils.js +1 -1
- package/widgets/Editor.js +1 -1
- package/widgets/ElevationProfile/ElevationProfileLineGround.js +1 -1
- package/widgets/ElevationProfile/ElevationProfileLineInput.js +1 -1
- package/widgets/ElevationProfile/ElevationProfileLineView.js +1 -1
- package/widgets/ElevationProfile/ElevationProfileTool.js +1 -1
- package/widgets/ElevationProfile/ElevationProfileViewModel.js +1 -1
- package/widgets/ElevationProfile/components/Statistics.js +1 -1
- package/widgets/ElevationProfile/support/elevationQuerySourceUtils.js +1 -1
- package/widgets/ElevationProfile/support/profileUtils.js +1 -1
- package/widgets/ElevationProfile.js +1 -1
- package/widgets/Expand.js +1 -1
- package/widgets/Feature/FeatureAttachments.js +1 -1
- package/widgets/Feature/FeatureContent.js +1 -1
- package/widgets/Feature/FeatureExpression/FeatureExpressionViewModel.js +1 -1
- package/widgets/Feature/FeatureExpression.js +1 -1
- package/widgets/Feature/FeatureFields/FeatureFieldsViewModel.js +1 -1
- package/widgets/Feature/FeatureFields.js +1 -1
- package/widgets/Feature/FeatureMedia/FeatureMediaViewModel.js +1 -1
- package/widgets/Feature/FeatureMedia.js +1 -1
- package/widgets/Feature/FeatureViewModel.js +1 -1
- package/widgets/Feature/support/arcadeFeatureUtils.js +1 -1
- package/widgets/Feature/support/featureUtils.js +1 -1
- package/widgets/Feature/support/relatedFeatureUtils.js +1 -1
- package/widgets/FeatureForm/FeatureFormViewModel.js +1 -1
- package/widgets/FeatureForm/InputField.js +1 -1
- package/widgets/FeatureForm/support/formTemplateUtils.js +1 -1
- package/widgets/FeatureForm.js +1 -1
- package/widgets/FeatureTable/FeatureTableViewModel.js +1 -1
- package/widgets/FeatureTable/FieldColumn.js +1 -1
- package/widgets/FeatureTable/Grid/Column.js +1 -1
- package/widgets/FeatureTable/Grid/EditorColumn.js +1 -1
- package/widgets/FeatureTable/Grid/Grid.js +1 -1
- package/widgets/FeatureTable/Grid/GridViewModel.js +1 -1
- package/widgets/FeatureTable/Grid/support/ButtonMenu.js +1 -1
- package/widgets/FeatureTable/Grid/support/LocalStore.js +1 -1
- package/widgets/FeatureTable/support/FeatureStore.js +1 -1
- package/widgets/FeatureTable.js +1 -1
- package/widgets/FeatureTemplates/FeatureTemplatesViewModel.js +1 -1
- package/widgets/FeatureTemplates/ItemList.js +1 -1
- package/widgets/FeatureTemplates/TemplateItem.js +1 -1
- package/widgets/FeatureTemplates.js +1 -1
- package/widgets/FloorFilter/FloorFilterViewModel.js +1 -1
- package/widgets/FloorFilter.js +1 -1
- package/widgets/Fullscreen.js +1 -1
- package/widgets/Home.js +1 -1
- package/widgets/LayerList/LayerListViewModel.js +1 -1
- package/widgets/LayerList/support/layerListUtils.js +1 -1
- package/widgets/LayerList.js +1 -1
- package/widgets/Legend/LegendViewModel.js +1 -1
- package/widgets/Legend/styles/Card.js +1 -1
- package/widgets/Legend/styles/support/univariateUtils.js +1 -1
- package/widgets/Legend/support/ActiveLayerInfo.js +1 -1
- package/widgets/Legend/support/clusterUtils.js +1 -1
- package/widgets/Legend/support/sizeRampUtils.js +1 -1
- package/widgets/Locate/LocateViewModel.js +1 -1
- package/widgets/Popup/PopupViewModel.js +1 -1
- package/widgets/Popup/actionUtils.js +1 -1
- package/widgets/Popup.js +1 -1
- package/widgets/Print/PrintViewModel.js +1 -1
- package/widgets/Print.js +1 -1
- package/widgets/ScaleRangeSlider/ScaleRangeSliderViewModel.js +1 -1
- package/widgets/Search/LayerSearchSource.js +1 -1
- package/widgets/Search/SearchResultRenderer.js +1 -1
- package/widgets/Search/SearchViewModel.js +1 -1
- package/widgets/Search/support/geometryUtils.js +1 -1
- package/widgets/Search/support/layerSearchUtils.js +1 -1
- package/widgets/Search/support/locatorUtils.js +1 -1
- package/widgets/Search.js +1 -1
- package/widgets/ShadowCast/components/DiscreteConfigurator.js +1 -1
- package/widgets/ShadowCast/components/Label.js +1 -1
- package/widgets/ShadowCast/components/TimezonePicker.js +1 -1
- package/widgets/ShadowCast.js +1 -1
- package/widgets/Sketch/SketchViewModel.js +1 -1
- package/widgets/Sketch.js +1 -1
- package/widgets/Slider.js +1 -1
- package/widgets/Swipe/SwipeViewModel.js +1 -1
- package/widgets/TableList/TableListViewModel.js +1 -1
- package/widgets/TableList/support/tableListUtils.js +1 -1
- package/widgets/TableList.js +1 -1
- package/widgets/TimeSlider/TimeSliderViewModel.js +1 -1
- package/widgets/TimeSlider/utils.js +1 -1
- package/widgets/TimeSlider.js +1 -1
- package/widgets/UtilityNetworkTrace/UtilityNetworkTraceViewModel.js +1 -1
- package/widgets/Weather.js +1 -1
- package/widgets/Widget.js +1 -1
- package/widgets/smartMapping/BinaryColorSizeSlider/BinaryColorSizeSliderViewModel.js +1 -1
- package/widgets/smartMapping/BinaryColorSizeSlider.js +1 -1
- package/widgets/smartMapping/ClassedColorSlider.js +1 -1
- package/widgets/smartMapping/ClassedSizeSlider.js +1 -1
- package/widgets/smartMapping/ColorSizeSlider.js +1 -1
- package/widgets/smartMapping/SizeSlider/SizeSliderViewModel.js +1 -1
- package/widgets/smartMapping/SmartMappingSliderBase.js +1 -1
- package/widgets/smartMapping/SmartMappingSliderViewModel.js +1 -1
- package/widgets/support/AnalysisViewModel.js +1 -1
- package/widgets/support/ColorPicker.js +1 -1
- package/widgets/support/DatePicker.js +1 -1
- package/widgets/support/InteractiveAnalysisViewModel.js +1 -1
- package/widgets/support/Popover.js +1 -1
- package/widgets/support/SelectionToolbar/SelectionToolbarViewModel.js +1 -1
- package/widgets/support/SelectionToolbar.js +1 -1
- package/widgets/support/Selector2D/SelectionOperation2D.js +1 -1
- package/widgets/support/Selector2D.js +1 -1
- package/widgets/support/SnappingControls/SnappingControlsViewModel.js +1 -1
- package/widgets/support/SnappingControls.js +1 -1
- package/widgets/support/jsxWidgetSupport.js +1 -1
- package/widgets/support/widgetUtils.js +1 -1
- package/assets/esri/core/workers/chunks/049c5c30bd37693dddb7.js +0 -1
- package/assets/esri/core/workers/chunks/055a0ebf22a82f859474.js +0 -1
- package/assets/esri/core/workers/chunks/0b12ff7b2ed2838afbb8.js +0 -1
- package/assets/esri/core/workers/chunks/0e25548573baf855e394.js +0 -1
- package/assets/esri/core/workers/chunks/0edd4c3ca6e7d749d0e5.js +0 -1
- package/assets/esri/core/workers/chunks/0fcbf7e2db58e38ee6d1.js +0 -1
- package/assets/esri/core/workers/chunks/133f971e72a1a6277ac4.js +0 -1
- package/assets/esri/core/workers/chunks/135a90ae61f3b3cae91b.js +0 -1
- package/assets/esri/core/workers/chunks/13fde7fd56c39fa3f2d5.js +0 -1
- package/assets/esri/core/workers/chunks/1c90855c3b0e5dcff908.js +0 -1
- package/assets/esri/core/workers/chunks/1dbef1919c7ac10a6bcc.js +0 -1
- package/assets/esri/core/workers/chunks/1facbda248863cf72cbd.js +0 -1
- package/assets/esri/core/workers/chunks/1fb2d7abe6c8efa84695.js +0 -1
- package/assets/esri/core/workers/chunks/2068377c2a796d5f2245.js +0 -1
- package/assets/esri/core/workers/chunks/28a5878cbe5880476855.js +0 -1
- package/assets/esri/core/workers/chunks/2cf3934b3ecabdf207c8.js +0 -1
- package/assets/esri/core/workers/chunks/2d42711a629384144625.js +0 -1
- package/assets/esri/core/workers/chunks/3021fda52083fc67d18c.js +0 -1
- package/assets/esri/core/workers/chunks/30333a95dc0a44e23fb5.js +0 -1
- package/assets/esri/core/workers/chunks/30837d93116f0337972f.js +0 -1
- package/assets/esri/core/workers/chunks/320543485c8e22485075.js +0 -1
- package/assets/esri/core/workers/chunks/3f0f7da92a6e4493686e.js +0 -1
- package/assets/esri/core/workers/chunks/42057f252ba4e82a8b45.js +0 -1
- package/assets/esri/core/workers/chunks/45a3f6033cdf4bc74a4c.js +0 -1
- package/assets/esri/core/workers/chunks/492b65fe99641f5740f0.js +0 -1
- package/assets/esri/core/workers/chunks/4d1cd7df617273c489f4.js +0 -1
- package/assets/esri/core/workers/chunks/4df9dfa80dbbae9b743d.js +0 -1
- package/assets/esri/core/workers/chunks/515c1c055666ff4740f3.js +0 -1
- package/assets/esri/core/workers/chunks/541e644fc77dbe527124.js +0 -1
- package/assets/esri/core/workers/chunks/59e341b2db44351bf557.js +0 -1
- package/assets/esri/core/workers/chunks/5a10b58533b4116115ac.js +0 -1
- package/assets/esri/core/workers/chunks/5f940853341d7e2bc852.js +0 -1
- package/assets/esri/core/workers/chunks/5ff2cdecf95e0136dd52.js +0 -1
- package/assets/esri/core/workers/chunks/6147bfbe2bd7292d6ad0.js +0 -1
- package/assets/esri/core/workers/chunks/6467f996fe9f136c370b.js +0 -1
- package/assets/esri/core/workers/chunks/682a8f15f352de76df69.js +0 -1
- package/assets/esri/core/workers/chunks/6a06635089761ee3e6d4.js +0 -972
- package/assets/esri/core/workers/chunks/725828a41917d3d56f2d.js +0 -1
- package/assets/esri/core/workers/chunks/794b47764ebb0257ed41.js +0 -1
- package/assets/esri/core/workers/chunks/7fd03a75eb07a09cda35.js +0 -1
- package/assets/esri/core/workers/chunks/86ad6b020c01850d9095.js +0 -1
- package/assets/esri/core/workers/chunks/86f9d1ce36661781d962.js +0 -1
- package/assets/esri/core/workers/chunks/8dcf6c836b53b40dfbf1.js +0 -1
- package/assets/esri/core/workers/chunks/8e98ff9404a802352037.js +0 -1
- package/assets/esri/core/workers/chunks/94e51fe1c539df6257c2.js +0 -1
- package/assets/esri/core/workers/chunks/9519a02b9b8db88a3150.js +0 -1
- package/assets/esri/core/workers/chunks/9a8b50ed75219b4a42e1.js +0 -1
- package/assets/esri/core/workers/chunks/9f3a094aa4b47e4eb046.js +0 -1
- package/assets/esri/core/workers/chunks/a0ebf25c9c9a7f839b93.js +0 -1
- package/assets/esri/core/workers/chunks/a25f0a195f9217665530.js +0 -1
- package/assets/esri/core/workers/chunks/a2be1e0b632cef87f6a4.js +0 -1
- package/assets/esri/core/workers/chunks/a4d8cf9829da9cfc5f36.js +0 -1
- package/assets/esri/core/workers/chunks/a562059dbdd1bf1fab66.js +0 -1
- package/assets/esri/core/workers/chunks/a59ee7d2b98c85f27dd2.js +0 -1
- package/assets/esri/core/workers/chunks/a5dbab94697757c87c49.js +0 -1
- package/assets/esri/core/workers/chunks/a5e65d5a7a536759d1cc.js +0 -1
- package/assets/esri/core/workers/chunks/a8ac0b6a3eba35e3a5b6.js +0 -1
- package/assets/esri/core/workers/chunks/acbd0f4d72d1f5d8e4e8.js +0 -1
- package/assets/esri/core/workers/chunks/acc97a210f36bff2d1b0.js +0 -1
- package/assets/esri/core/workers/chunks/ad68fe924456d6d7d4f0.js +0 -1
- package/assets/esri/core/workers/chunks/b06c949fc7d08e376a5f.js +0 -1
- package/assets/esri/core/workers/chunks/b26bd8fde2fc65bb67fb.js +0 -1
- package/assets/esri/core/workers/chunks/b4405e9fe6c0cf7250d3.js +0 -1
- package/assets/esri/core/workers/chunks/bc08fe3b03767bd694c5.js +0 -1
- package/assets/esri/core/workers/chunks/c11501e96ffd81bf39a0.js +0 -1
- package/assets/esri/core/workers/chunks/c44116378cc1bc627044.js +0 -1
- package/assets/esri/core/workers/chunks/c9b09099488d0e719dfb.js +0 -1
- package/assets/esri/core/workers/chunks/cbea4f1eb814115748db.js +0 -1
- package/assets/esri/core/workers/chunks/ce262a2accd982988ef1.js +0 -1
- package/assets/esri/core/workers/chunks/d15e6662d90718411d62.js +0 -1
- package/assets/esri/core/workers/chunks/d16aac3461af9cee0c29.js +0 -1
- package/assets/esri/core/workers/chunks/d60dd3e1028f714f2258.js +0 -1
- package/assets/esri/core/workers/chunks/d6c150c243ca1f6108f9.js +0 -1
- package/assets/esri/core/workers/chunks/d85748b57a71999caf3a.js +0 -1
- package/assets/esri/core/workers/chunks/d8c59b1d73650c060dfb.js +0 -1
- package/assets/esri/core/workers/chunks/dcb6e1b33402d7fa455b.js +0 -1
- package/assets/esri/core/workers/chunks/df653bca2b14dffc82d1.js +0 -1
- package/assets/esri/core/workers/chunks/e2a12142439d3037a3a7.js +0 -1
- package/assets/esri/core/workers/chunks/e3e1d87b8532bf84a18d.js +0 -1
- package/assets/esri/core/workers/chunks/e7744b7e0c16bba93151.js +0 -1
- package/assets/esri/core/workers/chunks/ea50effc5c39870dc871.js +0 -1
- package/assets/esri/core/workers/chunks/f1665a64564593f2a438.js +0 -1
- package/assets/esri/core/workers/chunks/f4c12f3a5e7f89106ae0.js +0 -1
- package/assets/esri/core/workers/chunks/fbefdc74b3aab716187f.js +0 -1
- package/assets/esri/core/workers/chunks/fc4fd9db056579e09bfe.js +0 -1
- package/assets/esri/core/workers/chunks/fd4907fa96f55128764d.js +0 -1
- package/views/3d/webgl-engine/core/shaderModules/BooleanUniform.js +0 -5
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../renderers/ClassBreaksRenderer.js";import"../../renderers/DictionaryRenderer.js";import"../../renderers/DotDensityRenderer.js";import"../../renderers/HeatmapRenderer.js";import"../../renderers/Renderer.js";import"../../renderers/SimpleRenderer.js";import"../../renderers/UniqueValueRenderer.js";import"../../renderers/support/jsonUtils.js";import i from"../../core/Error.js";import{isSome as a}from"../../core/maybe.js";import{toPt as s}from"../../core/screenUtils.js";import{fetchMessageBundle as l}from"../../intl/messages.js";import{substitute as n}from"../../intl/substitute.js";import r from"../../renderers/support/AuthoringInfo.js";import o from"../../renderers/support/AuthoringInfoVisualVariable.js";import{setLabelsForClassBreaks as t}from"../../renderers/support/utils.js";import m from"../../renderers/visualVariables/SizeVariable.js";import{TransformationType as u}from"../../renderers/visualVariables/support/sizeVariableUtils.js";import p from"../heuristics/ageUnit.js";import d from"../heuristics/outline.js";import y from"../heuristics/sizeRange.js";import{getSummaryStatistics as c,getClassBreaks as b,formatDate as f,updateAgeRendererAuthoringInfoVV as w,verifyBasicFieldValidity as v,getDataRange as h,getSizeRangeForAxis as z,createSymbol as g,getSymbolOutlineFromScheme as T,getSymbolSizeFromScheme as x,getBasemapInfo as S}from"./support/utils.js";import{getAgeExpressions as E,verifyDates as V,supportedAgeUnits as j}from"../statistics/support/ageUtils.js";import{getFieldsList as k,getNormalizationType as I}from"../support/utils.js";import{createLayerAdapter as q,featureCapableLayerTypes as O,getLayerTypeLabels as F}from"../support/adapters/support/layerUtils.js";import{cloneScheme as U,getSchemes as D}from"../symbology/size.js";const M="date",R=2**53-1;async function B(e){if(!(e&&e.layer&&(e.field||e.valueExpression||e.sqlExpression)))throw new i("size-visual-variable:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(e.valueExpression&&!e.sqlExpression&&!e.view)throw new i("size-visual-variable:missing-parameters","View is required when 'valueExpression' is specified");const s={...e};if("90-10"===s.theme)throw new i("size-visual-variable:not-supported","Only 'high-to-low', 'above', 'below' themes are supported.");const l=q(s.layer,O);if(s.layer=l,!l)throw new i("size-visual-variable:invalid-parameters","'layer' must be one of these types: "+F(O).join(", "));"height"===s.axis&&(s.sizeOptimizationEnabled=!1);const n=a(s.signal)?{signal:s.signal}:null;await l.load(n);const r=l.geometryType;if("mesh"===r)throw new i("size-visual-variable:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(s.worldScale){if("polyline"===r||"polygon"===r)throw new i("size-visual-variable:not-supported","'worldScale' sizing is not supported for polyline and polygon layers");if(!s.view||"3d"!==s.view.type)throw new i("size-visual-variable:invalid-parameters","'view' parameter should be an instance of SceneView when 'worldScale' parameter is true")}const o=await k({field:s.field,normalizationField:s.normalizationField,valueExpression:s.valueExpression}),t=v(l,o,"size-visual-variable:invalid-parameters");if(t)throw t;return s}async function C(e){if(!(e&&e.layer&&(e.field||e.valueExpression||e.sqlExpression)))throw new i("size-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(e.valueExpression&&!e.sqlExpression&&!e.view)throw new i("size-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");const s={...e};s.symbolType=s.symbolType||"2d",s.defaultSymbolEnabled=null==s.defaultSymbolEnabled||s.defaultSymbolEnabled;const l=q(s.layer,O);if(s.layer=l,!l)throw new i("size-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+F(O).join(", "));const n=a(s.signal)?{signal:s.signal}:null;await l.load(n);const r=l.geometryType,o=s.symbolType.includes("3d");if(s.outlineOptimizationEnabled="polygon"===r&&s.outlineOptimizationEnabled,"mesh"===r)throw new i("size-continuous-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===r||"polygon"===r))throw new i("size-continuous-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(s.symbolType.includes("3d-volumetric")&&(!s.view||"3d"!==s.view.type))throw new i("size-continuous-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform");const t=await k({field:s.field,normalizationField:s.normalizationField,valueExpression:s.valueExpression}),m=v(l,t,"size-continuous-renderer:invalid-parameters");if(m)throw m;return s}async function A(e){if(!e||!e.layer||!e.field&&!e.valueExpression)throw new i("size-class-breaks-renderer:missing-parameters","'layer' and 'field' or 'valueExpression' parameters are required");if(e.valueExpression&&!e.view)throw new i("size-class-breaks-renderer:missing-parameters","View is required when 'valueExpression' is specified");const s={...e};s.symbolType=s.symbolType||"2d",s.defaultSymbolEnabled=null==s.defaultSymbolEnabled||s.defaultSymbolEnabled,s.classificationMethod=s.classificationMethod||"equal-interval",s.normalizationType=I(s);const l=q(s.layer,O);if(s.layer=l,!l)throw new i("size-class-breaks-renderer:invalid-parameters","'layer' must be one of these types: "+F(O).join(", "));if(!(null!=s.minValue&&null!=s.maxValue)&&(null!=s.minValue||null!=s.maxValue))throw new i("size-class-breaks-renderer:missing-parameters","Both 'minValue' and 'maxValue' are required when specifying custom data range");const n=a(s.signal)?{signal:s.signal}:null;await l.load(n);const r=l.geometryType,o=s.symbolType.includes("3d");if(s.outlineOptimizationEnabled="polygon"===r&&s.outlineOptimizationEnabled,"mesh"===r)throw new i("size-class-breaks-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===r||"polygon"===r))throw new i("size-class-breaks-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(s.symbolType.includes("3d-volumetric")&&(!s.view||"3d"!==s.view.type))throw new i("size-class-breaks-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform");const t=await k({field:s.field,normalizationField:s.normalizationField}),m=v(l,t,"size-class-breaks-renderer:invalid-parameters");if(m)throw m;return s}function W(e){const i={...e};delete i.basemap,delete i.sizeScheme,delete i.legendOptions,delete i.symbolType,delete i.defaultSymbolEnabled;const a=i;return a.analyzeData=!(null!=i.minValue&&null!=i.maxValue),a}function L(e){const i={...e},a=i.symbolType.includes("3d-volumetric"),s=i;return s.worldScale=a,a&&(s.axis="3d-volumetric-uniform"===i.symbolType?"all":"height"),delete i.symbolType,delete i.defaultSymbolEnabled,s}async function P(e){if(!(e&&e.layer&&e.view&&e.startTime&&e.endTime))throw new i("size-age-renderer:missing-parameters","'layer', 'view', 'startTime', 'endTime' parameters are required");const s={...e};s.symbolType=s.symbolType||"2d",s.defaultSymbolEnabled=null==s.defaultSymbolEnabled||s.defaultSymbolEnabled;const l=q(s.layer,O);if(s.layer=l,!l)throw new i("size-age-renderer:invalid-parameters","'layer' must be one of these types: "+F(O).join(", "));const n=a(s.signal)?{signal:s.signal}:null;await l.load(n);const r=l.geometryType,o=s.symbolType.includes("3d");if(s.outlineOptimizationEnabled="polygon"===r&&s.outlineOptimizationEnabled,"mesh"===r)throw new i("size-age-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===r||"polygon"===r))throw new i("size-age-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(s.symbolType.includes("3d-volumetric")&&(!s.view||"3d"!==s.view.type))throw new i("size-age-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform");const t=V(l,s.startTime,s.endTime,"size-age-renderer:invalid-parameters");if(t)throw t;if(s.unit&&!j.includes(s.unit))throw new i("size-age-renderer:invalid-unit",`Supported units are: ${j.join(", ")}`);return s}async function $(e){let i=e.sizeScheme,s=null,l=null;const n=await S(e.basemap,e.view);if(s=a(n.basemapId)?n.basemapId:null,l=a(n.basemapTheme)?n.basemapTheme:null,i)return{scheme:U(i),basemapId:s,basemapTheme:l};const r=D({basemap:s,basemapTheme:l,geometryType:e.geometryType,worldScale:e.worldScale,view:e.view});return r&&(i=r.primaryScheme,s=r.basemapId,l=r.basemapTheme),{scheme:i,basemapId:s,basemapTheme:l}}function H(e,i){let a;switch(i){case"point":case"multipoint":{const i=e;a=[i.minSize,i.maxSize];break}case"polyline":{const i=e;a=[i.minWidth,i.maxWidth];break}case"polygon":{const i=e;a=[i.marker.minSize,i.marker.maxSize];break}}return a}function _(e,i){e.transformationType===u.ClampedLinear&&"below"===i&&e.flipSizes()}async function G(e,a,s,l){const{theme:n,field:t,normalizationField:u,minValue:p,maxValue:d,axis:y}=e,c=e.layer,b=t&&!("function"==typeof t)?c.getField(t):null,f=b&&b.type===M,w=c.geometryType,v=await $({basemap:e.basemap,geometryType:w,sizeScheme:e.sizeScheme,worldScale:e.worldScale,view:e.view}),g=v.scheme;if(!g)throw new i("size-visual-variable:insufficient-info","Unable to find size scheme");const T=l&&[l.minSize,l.maxSize]||H(g,w),{minDataValue:x,maxDataValue:S,defaultValuesUsed:E}=h(a,s,n,f,"above"===n||"below"===n),V=[],j="height"===y,k=j?y:void 0,I=T[0];let q=T[1];if(j&&"number"==typeof I&&"number"==typeof q){const e=z({minSize:I,maxSize:q},k);V.push(new m({axis:"width-and-depth",minSize:e.minSize})),q=e.maxSize}const O=new m({field:t,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,valueUnit:"unknown",normalizationField:u,axis:k,minSize:I,maxSize:q,minDataValue:x,maxDataValue:S,legendOptions:e.legendOptions});_(O,n),V.unshift(O);const F=new o({type:"size",theme:n,minSliderValue:null!=p?p:a.min,maxSliderValue:null!=d?d:a.max}),D=new r({visualVariables:[F]});return{basemapId:v.basemapId,basemapTheme:v.basemapTheme,visualVariables:V,statistics:a,defaultValuesUsed:E,sizeScheme:U(g),authoringInfo:D}}async function J(i,a,s,n,r){const o=await l("esri/smartMapping/t9n/smartMapping"),t=r.layer,m=r.field,u=t.geometryType,p=r.defaultSymbolEnabled,d=U(i.sizeScheme),y="polygon"===u,c=y?d.marker:d,b=y?d.background:null,f=y?"point":u,w=a&&a.opacity,v=i.visualVariables.map((e=>e.clone()));a&&a.visualVariables&&a.visualVariables.length&&v.push(...a.visualVariables.map((e=>e.clone())));return{renderer:new e({backgroundFillSymbol:b&&g(u,{type:r.symbolType,color:b.color,outline:T(b,u,w)}),classBreakInfos:[{minValue:-R,maxValue:R,symbol:g(f,{type:r.symbolType,color:c.color,size:x(c,f),outline:T(c,f,w)})}],defaultLabel:p?o.other:null,defaultSymbol:p?g(f,{type:r.symbolType,color:c.noDataColor,size:x(c,f,!0),outline:T(c,f,w)}):null,field:m,normalizationField:n,normalizationType:s,valueExpression:r.valueExpression,valueExpressionTitle:r.valueExpressionTitle,visualVariables:v,authoringInfo:i.authoringInfo&&i.authoringInfo.clone()}),visualVariables:i.visualVariables.map((e=>e.clone())),statistics:i.statistics,defaultValuesUsed:i.defaultValuesUsed,sizeScheme:U(i.sizeScheme),basemapId:i.basemapId,basemapTheme:i.basemapTheme}}function K(e,i){const a=s(e.minSize),l=(s(e.maxSize)-a)/(i>=4?i-1:i),n=[];for(let s=0;s<i;s++)n.push(a+l*s);return n}async function N(i,a){const s=await l("esri/smartMapping/t9n/smartMapping"),n=i.layer,o=i.defaultSymbolEnabled,m=n.geometryType,u="polygon"===m,p=i.symbolType.includes("3d-volumetric"),d=await $({basemap:i.basemap,geometryType:m,sizeScheme:i.sizeScheme,worldScale:p,view:i.view}),y=d.scheme,{result:c,outlineResult:b}=a,f=c.classBreakInfos,w=i.classificationMethod,v=i.normalizationType,h=u?y.marker:y,S=u?y.background:null,E=u?"point":m,V=H(h,E),j=p&&z({minSize:V[0],maxSize:V[1]},"height"),k=K({minSize:V[0],maxSize:p?j.maxSize:V[1]},f.length),I=b&&b.opacity,q=new e({backgroundFillSymbol:S&&g(m,{type:i.symbolType,color:S.color,outline:T(S,m,I)}),classBreakInfos:f.map(((e,a)=>({minValue:e.minValue,maxValue:e.maxValue,symbol:g(E,{type:i.symbolType,color:h.color,size:k[a],widthAndDepth:j&&j.minSize,outline:T(h,E,I)}),label:e.label}))),defaultLabel:o?s.other:null,defaultSymbol:o?g(E,{type:i.symbolType,color:h.noDataColor,size:x(h,E,!0),widthAndDepth:j&&j.minSize,outline:T(h,E,I)}):null,field:i.field,valueExpression:i.valueExpression,valueExpressionTitle:i.valueExpressionTitle,normalizationType:v,normalizationField:i.normalizationField,normalizationTotal:"percent-of-total"===v?c.normalizationTotal:void 0,legendOptions:i.legendOptions,authoringInfo:new r({type:"class-breaks-size",classificationMethod:w,standardDeviationInterval:i.standardDeviationInterval})});return"standard-deviation"!==w&&t({classBreakInfos:q.classBreakInfos,classificationMethod:w,normalizationType:v,round:!0}),b&&b.visualVariables&&b.visualVariables.length&&(q.visualVariables=b.visualVariables.map((e=>e.clone()))),{renderer:q,sizeScheme:U(y),classBreaksResult:c,defaultValuesUsed:a.defaultValuesUsed,basemapId:d.basemapId,basemapTheme:d.basemapTheme}}async function Q(e){const i=await B(e),{view:a,field:s,valueExpression:l,minValue:n,maxValue:r,layer:o,normalizationField:t,signal:m,statistics:u}=i,p=t?"field":void 0,[d,f,w]=await Promise.all([u||c({layer:o,field:s,valueExpression:l,sqlExpression:i.sqlExpression,sqlWhere:i.sqlWhere,normalizationType:p,normalizationField:t,minValue:n,maxValue:r,view:a,signal:m}),"90-10"===i.theme?b({layer:o,field:s,normalizationField:t,valueExpression:l,classificationMethod:"quantile",minValue:n,maxValue:r,view:a,numClasses:10,signal:m}):null,i.sizeOptimizationEnabled?y({view:a,layer:o,signal:m}):null]);return G(i,d,null==f?void 0:f.result,w)}async function X(e){const i=await C(e),a={layer:i.layer,view:i.view,signal:i.signal},[s,l]=await Promise.all([Q(L(i)),i.outlineOptimizationEnabled?d(a):null]),n=i.normalizationField;return J(s,l,n?"field":void 0,n,i)}async function Y(e){const i=await A(e);return N(i,await b(W(i),i.outlineOptimizationEnabled))}async function Z(e){const i=await P(e),{defaultSymbolEnabled:a,view:s,startTime:r,endTime:o,symbolType:t,minValue:m,maxValue:u,signal:y}=i,c=i.layer,b={layer:i.layer,view:i.view,signal:y},[v,h]=await Promise.all([i.unit?{unit:i.unit,statistics:null,valueExpression:null}:await p({view:s,layer:c,startTime:r,endTime:o,minValue:m,maxValue:u,signal:y}),i.outlineOptimizationEnabled?d(b):null]),{unit:z,statistics:g}=v,T=E({layer:c,startTime:r,endTime:o,unit:z}).valueExpression,x=await l("esri/smartMapping/t9n/smartMapping"),S=n(x[`ageInfo_${z}`],{unit:z,startTime:f(r,z,c),endTime:f(o,z,c)}),V=await Q(L({layer:c,basemap:i.basemap,valueExpression:T,symbolType:t,statistics:g,legendOptions:{title:S},theme:i.theme,sizeScheme:i.sizeScheme,sizeOptimizationEnabled:i.sizeOptimizationEnabled,view:i.view,minValue:m,maxValue:u,signal:y})),j={layer:c,valueExpression:T,defaultSymbolEnabled:a,symbolType:t},k=await J(V,h,null,null,j);return k.renderer.authoringInfo.visualVariables.forEach((e=>w(e,r,o,z))),{...k,unit:z}}export{Z as createAgeRenderer,Y as createClassBreaksRenderer,X as createContinuousRenderer,Q as createVisualVariables};
|
|
5
|
+
import e from"../../renderers/ClassBreaksRenderer.js";import"../../renderers/DictionaryRenderer.js";import"../../renderers/DotDensityRenderer.js";import"../../renderers/HeatmapRenderer.js";import"../../renderers/Renderer.js";import"../../renderers/SimpleRenderer.js";import"../../renderers/UniqueValueRenderer.js";import"../../renderers/support/jsonUtils.js";import i from"../../core/Error.js";import{isSome as a}from"../../core/maybe.js";import{toPt as s}from"../../core/screenUtils.js";import{fetchMessageBundle as l}from"../../intl/messages.js";import{substitute as n}from"../../intl/substitute.js";import r from"../../renderers/support/AuthoringInfo.js";import o from"../../renderers/support/AuthoringInfoVisualVariable.js";import{setLabelsForClassBreaks as t}from"../../renderers/support/utils.js";import m from"../../renderers/visualVariables/SizeVariable.js";import{TransformationType as u}from"../../renderers/visualVariables/support/sizeVariableUtils.js";import p from"../heuristics/ageUnit.js";import d from"../heuristics/outline.js";import y from"../heuristics/sizeRange.js";import{getSummaryStatistics as c,getClassBreaks as b,formatDate as f,updateAgeRendererAuthoringInfoVV as w,verifyBasicFieldValidity as v,getDataRange as h,getSizeRangeForAxis as z,createSymbol as g,getSymbolOutlineFromScheme as T,getSymbolSizeFromScheme as x,getBasemapInfo as S}from"./support/utils.js";import{getAgeExpressions as E,verifyDates as V,supportedAgeUnits as j}from"../statistics/support/ageUtils.js";import{getFieldsList as k,getNormalizationType as I}from"../support/utils.js";import{createLayerAdapter as q,featureCapableLayerTypes as O,getLayerTypeLabels as F}from"../support/adapters/support/layerUtils.js";import{cloneScheme as U,getSchemes as D}from"../symbology/size.js";const M="date",R=2**53-1;async function B(e){if(!(e&&e.layer&&(e.field||e.valueExpression||e.sqlExpression)))throw new i("size-visual-variable:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(e.valueExpression&&!e.sqlExpression&&!e.view)throw new i("size-visual-variable:missing-parameters","View is required when 'valueExpression' is specified");const s={...e};if("90-10"===s.theme)throw new i("size-visual-variable:not-supported","Only 'high-to-low', 'above', 'below' themes are supported.");const l=q(s.layer,O);if(s.layer=l,!l)throw new i("size-visual-variable:invalid-parameters","'layer' must be one of these types: "+F(O).join(", "));"height"===s.axis&&(s.sizeOptimizationEnabled=!1);const n=a(s.signal)?{signal:s.signal}:null;await l.load(n);const r=l.geometryType;if("mesh"===r)throw new i("size-visual-variable:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(s.worldScale){if("polyline"===r||"polygon"===r)throw new i("size-visual-variable:not-supported","'worldScale' sizing is not supported for polyline and polygon layers");if(!s.view||"3d"!==s.view.type)throw new i("size-visual-variable:invalid-parameters","'view' parameter should be an instance of SceneView when 'worldScale' parameter is true")}const o=await k({field:s.field,normalizationField:s.normalizationField,valueExpression:s.valueExpression}),t=v(l,o,"size-visual-variable:invalid-parameters");if(t)throw t;return s}async function C(e){if(!(e&&e.layer&&(e.field||e.valueExpression||e.sqlExpression)))throw new i("size-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(e.valueExpression&&!e.sqlExpression&&!e.view)throw new i("size-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");const s={...e};s.symbolType=s.symbolType||"2d",s.defaultSymbolEnabled=null==s.defaultSymbolEnabled||s.defaultSymbolEnabled;const l=q(s.layer,O);if(s.layer=l,!l)throw new i("size-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+F(O).join(", "));const n=a(s.signal)?{signal:s.signal}:null;await l.load(n);const r=l.geometryType,o=s.symbolType.includes("3d");if(s.outlineOptimizationEnabled="polygon"===r&&s.outlineOptimizationEnabled,"mesh"===r)throw new i("size-continuous-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===r||"polygon"===r))throw new i("size-continuous-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(s.symbolType.includes("3d-volumetric")&&(!s.view||"3d"!==s.view.type))throw new i("size-continuous-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform");const t=await k({field:s.field,normalizationField:s.normalizationField,valueExpression:s.valueExpression}),m=v(l,t,"size-continuous-renderer:invalid-parameters");if(m)throw m;return s}async function A(e){if(!e||!e.layer||!e.field&&!e.valueExpression)throw new i("size-class-breaks-renderer:missing-parameters","'layer' and 'field' or 'valueExpression' parameters are required");if(e.valueExpression&&!e.view)throw new i("size-class-breaks-renderer:missing-parameters","View is required when 'valueExpression' is specified");const s={...e};s.symbolType=s.symbolType||"2d",s.defaultSymbolEnabled=null==s.defaultSymbolEnabled||s.defaultSymbolEnabled,s.classificationMethod=s.classificationMethod||"equal-interval",s.normalizationType=I(s);const l=q(s.layer,O);if(s.layer=l,!l)throw new i("size-class-breaks-renderer:invalid-parameters","'layer' must be one of these types: "+F(O).join(", "));if(!(null!=s.minValue&&null!=s.maxValue)&&(null!=s.minValue||null!=s.maxValue))throw new i("size-class-breaks-renderer:missing-parameters","Both 'minValue' and 'maxValue' are required when specifying custom data range");const n=a(s.signal)?{signal:s.signal}:null;await l.load(n);const r=l.geometryType,o=s.symbolType.includes("3d");if(s.outlineOptimizationEnabled="polygon"===r&&s.outlineOptimizationEnabled,"mesh"===r)throw new i("size-class-breaks-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===r||"polygon"===r))throw new i("size-class-breaks-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(s.symbolType.includes("3d-volumetric")&&(!s.view||"3d"!==s.view.type))throw new i("size-class-breaks-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform");const t=await k({field:s.field,normalizationField:s.normalizationField}),m=v(l,t,"size-class-breaks-renderer:invalid-parameters");if(m)throw m;return s}function W(e){const i={...e};delete i.basemap,delete i.sizeScheme,delete i.legendOptions,delete i.symbolType,delete i.defaultSymbolEnabled;const a=i;return a.analyzeData=!(null!=i.minValue&&null!=i.maxValue),a}function L(e){const i={...e},a=i.symbolType.includes("3d-volumetric"),s=i;return s.worldScale=a,a&&(s.axis="3d-volumetric-uniform"===i.symbolType?"all":"height"),delete i.symbolType,delete i.defaultSymbolEnabled,s}async function P(e){if(!(e&&e.layer&&e.view&&e.startTime&&e.endTime))throw new i("size-age-renderer:missing-parameters","'layer', 'view', 'startTime', 'endTime' parameters are required");const s={...e};s.symbolType=s.symbolType||"2d",s.defaultSymbolEnabled=null==s.defaultSymbolEnabled||s.defaultSymbolEnabled;const l=q(s.layer,O);if(s.layer=l,!l)throw new i("size-age-renderer:invalid-parameters","'layer' must be one of these types: "+F(O).join(", "));const n=a(s.signal)?{signal:s.signal}:null;await l.load(n);const r=l.geometryType,o=s.symbolType.includes("3d");if(s.outlineOptimizationEnabled="polygon"===r&&s.outlineOptimizationEnabled,"mesh"===r)throw new i("size-age-renderer:invalid-parameters","Size visualization is not applicable to layers with 'mesh' geometry type");if(o&&("polyline"===r||"polygon"===r))throw new i("size-age-renderer:not-supported","3d symbols are not supported for polyline and polygon layers");if(s.symbolType.includes("3d-volumetric")&&(!s.view||"3d"!==s.view.type))throw new i("size-age-renderer:invalid-parameters","'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or 3d-volumetric-uniform");const t=V(l,s.startTime,s.endTime,"size-age-renderer:invalid-parameters");if(t)throw t;if(s.unit&&!j.includes(s.unit))throw new i("size-age-renderer:invalid-unit",`Supported units are: ${j.join(", ")}`);return s}async function $(e){let i=e.sizeScheme,s=null,l=null;const n=await S(e.basemap,e.view);if(s=a(n.basemapId)?n.basemapId:null,l=a(n.basemapTheme)?n.basemapTheme:null,i)return{scheme:U(i),basemapId:s,basemapTheme:l};const r=D({basemap:s,basemapTheme:l,geometryType:e.geometryType,worldScale:e.worldScale,view:e.view});return r&&(i=r.primaryScheme,s=r.basemapId,l=r.basemapTheme),{scheme:i,basemapId:s,basemapTheme:l}}function H(e,i){let a;switch(i){case"point":case"multipoint":{const i=e;a=[i.minSize,i.maxSize];break}case"polyline":{const i=e;a=[i.minWidth,i.maxWidth];break}case"polygon":{const i=e;a=[i.marker.minSize,i.marker.maxSize];break}}return a}function _(e,i){e.transformationType===u.ClampedLinear&&"below"===i&&e.flipSizes()}async function G(e,a,s,l){const{theme:n,field:t,normalizationField:u,minValue:p,maxValue:d,axis:y}=e,c=e.layer,b=t&&!("function"==typeof t)?c.getField(t):null,f=b&&b.type===M,w=c.geometryType,v=await $({basemap:e.basemap,geometryType:w,sizeScheme:e.sizeScheme,worldScale:e.worldScale,view:e.view}),g=v.scheme;if(!g)throw new i("size-visual-variable:insufficient-info","Unable to find size scheme");const T=l&&[l.minSize,l.maxSize]||H(g,w),{minDataValue:x,maxDataValue:S,defaultValuesUsed:E}=h(a,s,n,f,"above"===n||"below"===n),V=[],j="height"===y,k=j?y:void 0,I=T[0];let q=T[1];if(j&&"number"==typeof I&&"number"==typeof q){const e=z({minSize:I,maxSize:q},k);V.push(new m({axis:"width-and-depth",minSize:e.minSize})),q=e.maxSize}const O=new m({field:t,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,valueUnit:"unknown",normalizationField:u,axis:k,minSize:I,maxSize:q,minDataValue:x,maxDataValue:S,legendOptions:e.legendOptions});_(O,n),V.unshift(O);const F=new o({type:"size",theme:n,minSliderValue:null!=p?p:a.min,maxSliderValue:null!=d?d:a.max}),D=new r({visualVariables:[F]});return{basemapId:v.basemapId,basemapTheme:v.basemapTheme,visualVariables:V,statistics:a,defaultValuesUsed:E,sizeScheme:U(g),authoringInfo:D}}async function J(i,a,s,n,r){const o=await l("esri/smartMapping/t9n/smartMapping"),t=r.layer,m=r.field,u=t.geometryType,p=r.defaultSymbolEnabled,d=U(i.sizeScheme),y="polygon"===u,c=y?d.marker:d,b=y?d.background:null,f=y?"point":u,w=a&&a.opacity,v=i.visualVariables.map((e=>e.clone()));a&&a.visualVariables&&a.visualVariables.length&&v.push(...a.visualVariables.map((e=>e.clone())));return{renderer:new e({backgroundFillSymbol:b&&g(u,{type:r.symbolType,color:b.color,outline:T(b,u,w)}),classBreakInfos:[{minValue:-R,maxValue:R,symbol:g(f,{type:r.symbolType,color:c.color,size:x(c,f),outline:T(c,f,w)})}],defaultLabel:p?o.other:null,defaultSymbol:p?g(f,{type:r.symbolType,color:c.noDataColor,size:x(c,f,!0),outline:T(c,f,w)}):null,field:m,normalizationField:n,normalizationType:s,valueExpression:r.valueExpression,valueExpressionTitle:r.valueExpressionTitle,visualVariables:v,authoringInfo:i.authoringInfo&&i.authoringInfo.clone()}),visualVariables:i.visualVariables.map((e=>e.clone())),statistics:i.statistics,defaultValuesUsed:i.defaultValuesUsed,sizeScheme:U(i.sizeScheme),basemapId:i.basemapId,basemapTheme:i.basemapTheme}}function K(e,i){const a=s(e.minSize),l=(s(e.maxSize)-a)/(i>=4?i-1:i),n=[];for(let s=0;s<i;s++)n.push(a+l*s);return n}async function N(i,a){const s=await l("esri/smartMapping/t9n/smartMapping"),n=i.layer,o=i.defaultSymbolEnabled,m=n.geometryType,u="polygon"===m,p=i.symbolType.includes("3d-volumetric"),d=await $({basemap:i.basemap,geometryType:m,sizeScheme:i.sizeScheme,worldScale:p,view:i.view}),y=d.scheme,{result:c,outlineResult:b}=a,f=c.classBreakInfos,w=i.classificationMethod,v=i.normalizationType,h=u?y.marker:y,S=u?y.background:null,E=u?"point":m,V=H(h,E),j=p&&z({minSize:V[0],maxSize:V[1]},"height"),k=K({minSize:V[0],maxSize:p?j.maxSize:V[1]},f.length),I=b&&b.opacity,q=new e({backgroundFillSymbol:S&&g(m,{type:i.symbolType,color:S.color,outline:T(S,m,I)}),classBreakInfos:f.map(((e,a)=>({minValue:e.minValue,maxValue:e.maxValue,symbol:g(E,{type:i.symbolType,color:h.color,size:k[a],widthAndDepth:j&&j.minSize,outline:T(h,E,I)}),label:e.label}))),defaultLabel:o?s.other:null,defaultSymbol:o?g(E,{type:i.symbolType,color:h.noDataColor,size:x(h,E,!0),widthAndDepth:j&&j.minSize,outline:T(h,E,I)}):null,field:i.field,valueExpression:i.valueExpression,valueExpressionTitle:i.valueExpressionTitle,normalizationType:v,normalizationField:i.normalizationField,normalizationTotal:"percent-of-total"===v?c.normalizationTotal:void 0,legendOptions:i.legendOptions,authoringInfo:new r({type:"class-breaks-size",classificationMethod:w,standardDeviationInterval:i.standardDeviationInterval})});return"standard-deviation"!==w&&t({classBreakInfos:q.classBreakInfos,classificationMethod:w,normalizationType:v,round:!0}),b&&b.visualVariables&&b.visualVariables.length&&(q.visualVariables=b.visualVariables.map((e=>e.clone()))),{renderer:q,sizeScheme:U(y),classBreaksResult:c,defaultValuesUsed:a.defaultValuesUsed,basemapId:d.basemapId,basemapTheme:d.basemapTheme}}async function Q(e){const i=await B(e),{view:a,field:s,valueExpression:l,minValue:n,maxValue:r,layer:o,normalizationField:t,signal:m,statistics:u}=i,p=t?"field":void 0,[d,f,w]=await Promise.all([u||c({layer:o,field:s,valueExpression:l,sqlExpression:i.sqlExpression,sqlWhere:i.sqlWhere,normalizationType:p,normalizationField:t,minValue:n,maxValue:r,view:a,signal:m}),"90-10"===i.theme?b({layer:o,field:s,normalizationField:t,valueExpression:l,classificationMethod:"quantile",minValue:n,maxValue:r,view:a,numClasses:10,signal:m}):null,i.sizeOptimizationEnabled?y({view:a,layer:o,signal:m}):null]);return G(i,d,f?.result,w)}async function X(e){const i=await C(e),a={layer:i.layer,view:i.view,signal:i.signal},[s,l]=await Promise.all([Q(L(i)),i.outlineOptimizationEnabled?d(a):null]),n=i.normalizationField;return J(s,l,n?"field":void 0,n,i)}async function Y(e){const i=await A(e);return N(i,await b(W(i),i.outlineOptimizationEnabled))}async function Z(e){const i=await P(e),{defaultSymbolEnabled:a,view:s,startTime:r,endTime:o,symbolType:t,minValue:m,maxValue:u,signal:y}=i,c=i.layer,b={layer:i.layer,view:i.view,signal:y},[v,h]=await Promise.all([i.unit?{unit:i.unit,statistics:null,valueExpression:null}:await p({view:s,layer:c,startTime:r,endTime:o,minValue:m,maxValue:u,signal:y}),i.outlineOptimizationEnabled?d(b):null]),{unit:z,statistics:g}=v,T=E({layer:c,startTime:r,endTime:o,unit:z}).valueExpression,x=await l("esri/smartMapping/t9n/smartMapping"),S=n(x[`ageInfo_${z}`],{unit:z,startTime:f(r,z,c),endTime:f(o,z,c)}),V=await Q(L({layer:c,basemap:i.basemap,valueExpression:T,symbolType:t,statistics:g,legendOptions:{title:S},theme:i.theme,sizeScheme:i.sizeScheme,sizeOptimizationEnabled:i.sizeOptimizationEnabled,view:i.view,minValue:m,maxValue:u,signal:y})),j={layer:c,valueExpression:T,defaultSymbolEnabled:a,symbolType:t},k=await J(V,h,null,null,j);return k.renderer.authoringInfo.visualVariables.forEach((e=>w(e,r,o,z))),{...k,unit:z}}export{Z as createAgeRenderer,Y as createClassBreaksRenderer,X as createContinuousRenderer,Q as createVisualVariables};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../../Color.js";import"../../../symbols.js";import"../../../core/has.js";import t from"../../../core/Error.js";import{isSome as o}from"../../../core/maybe.js";import{formatDate as n,convertDateFormatToIntlOptions as s}from"../../../intl/date.js";import{round as
|
|
5
|
+
import e from"../../../Color.js";import"../../../symbols.js";import"../../../core/has.js";import t from"../../../core/Error.js";import{isSome as o}from"../../../core/maybe.js";import{formatDate as n,convertDateFormatToIntlOptions as s}from"../../../intl/date.js";import{round as i}from"../../../renderers/support/numberUtils.js";import l from"../../../renderers/support/pointCloud/PointSizeSplatAlgorithm.js";import r from"../../heuristics/outline.js";import a from"../../statistics/classBreaks.js";import m from"../../statistics/summaryStatistics.js";import{defaultBasemapGroups as u,getBasemapId as c,getBasemapGroup as f}from"../../support/utils.js";import d from"../../../symbols/edges/SketchEdges3D.js";import p from"../../../symbols/edges/SolidEdges3D.js";import{getBackgroundColorTheme as y}from"../../../views/support/colorUtils.js";import h from"../../../symbols/MeshSymbol3D.js";import b from"../../../symbols/FillSymbol3DLayer.js";import w from"../../../symbols/SimpleFillSymbol.js";import g from"../../../symbols/PolygonSymbol3D.js";import D from"../../../symbols/ExtrudeSymbol3DLayer.js";import j from"../../../symbols/SimpleLineSymbol.js";import S from"../../../symbols/LineSymbol3D.js";import v from"../../../symbols/LineSymbol3DLayer.js";import x from"../../../symbols/PathSymbol3DLayer.js";import z from"../../../symbols/SimpleMarkerSymbol.js";import V from"../../../symbols/PointSymbol3D.js";import L from"../../../symbols/IconSymbol3DLayer.js";import k from"../../../symbols/ObjectSymbol3DLayer.js";const U=/^(\d+(\.\d+)?)\s*(%)$/i,I=[0,0,0,.4],T=["hours","minutes","seconds"],F=[].concat(u.light).concat(u.dark);function B(e,t,o){if("string"==typeof e){const t=o.getField(e);if(t&&"date"===t.type)return t.alias||t.name}else if("number"==typeof e||e instanceof Date){const o=T.includes(t)?"short-date-short-time":"short-date";return n(e,s(o))}return e}function M(e,o){return new t(e,o)}function C(e,t,o){return e+t>0&&0>e-t&&o<0?0:e}function P(e,t,o,n,s=!0){const i="90-10"===o&&t?{min:t.classBreakInfos[0].maxValue,max:t.classBreakInfos[t.classBreakInfos.length-1].minValue,avg:null,stddev:null}:e,{avg:l,stddev:r,min:a,max:m}=i,u=E(i,n,s);let c=u?u[0]:a,f=u?u[1]:m;return u?{minDataValue:c,maxDataValue:f,defaultValuesUsed:!0}:("above"===o?c=C(l,r,a):"below"===o&&(f=C(l,r,a)),{minDataValue:c,maxDataValue:f,defaultValuesUsed:!1})}function E(e,t,o){let n,s;const i=A({statistics:e,isDate:t});return i.defaultValuesUsed?(n=i.min,s=i.max):!o||null!=e.avg&&e.stddev||(n=e.min,s=e.max),null!=n?[n,s]:null}function A(e){let t,o,n=e&&e.statistics;if(n||(n={}),null==n.min)if(e.isDate){const e=R();t=e[0],o=e[1]}else t=0,o=100;else if(n.min===n.max)if(e.isDate){const e=R(n.min);t=e[0],o=e[1]}else n.min<0?(t=2*n.min,o=0):n.min>0?(t=0,o=2*n.min):(t=0,o=100);return{min:null!=t?t:n.min,max:null!=o?o:n.max,defaultValuesUsed:null!=t||null!=o}}function R(e){const t=("number"==typeof e?new Date(e):new Date).getUTCFullYear();let o=Date.UTC(t,0,1,12,0,0,0),n=Date.UTC(t,11,31,12,0,0,0);return"number"==typeof e&&(e<o&&(o=e),e>n&&(n=e)),[o,n]}function Y(t,o){const n=[],s=t.length;for(let i=0;i<o;i++)n.push(new e(t[i%s]));return n}function W(e,t,o,n=!0){const{minDataValue:s,maxDataValue:i,defaultValuesUsed:l}=e;return l||"above"===o||"below"===o||"90-10"===o?O(s,i,5):$(t,n)}function q(e){const{avg:t,stddev:o,min:n,max:s}=e;if(null==t||null==o)return O(n,s,5);const l=C(t,o,n),r=s-l,a=l-n,m=Math.max(r,a);return i([l-m,l-m/2,l,m/2+l,l+m],{strictBounds:!0})}function N(e,t){const{min:o,max:n}=t,[s,l,r,a,m]=e,u=null!=o&&s<o,c=null!=n&&m>n;if(null==o||null==n||!u&&!c)return e;const f=u?o:s,d=c?n:m;return i([f,u?f+(r-f)/2:l,r,c?r+(d-r)/2:a,d],{strictBounds:!0})}function O(e,t,o){const n=(t-e)/(o-1),s=[e];for(let i=1;i<=o-2;i++)s.push(e+i*n);return s.push(t),i(s,{strictBounds:!0})}function $(e,t=!0){let o=e.avg,n=o-e.stddev,s=o+e.stddev;n<e.min&&(n=e.min),s>e.max&&(s=e.max),t&&(o=n+(s-n)/2);let l=i([n,s],{strictBounds:!0});return n=l[0],s=l[1],l=[n,n+(o-n)/2,o,o+(s-o)/2,s],i(l,{strictBounds:!0})}function G(e,t,o){switch(t){case"point":case"multipoint":return o?"noDataSize"in e?e.noDataSize:null:"size"in e?e.size:null;case"polyline":return o?"noDataWidth"in e?e.noDataWidth:null:"width"in e?e.width:null;case"polygon":return"size"in e?e.size:null;default:return}}function H(e,t,o){switch(t){case"point":case"multipoint":case"polygon":{if(!("outline"in e))return null;const t={color:e.outline.color,width:e.outline.width};if(null!=o&&t.color){const e=t.color.clone();e.a=o,t.color=e}return t}default:return}}function J(e,t){const{type:o,size:n,color:s,outline:i}=t;let l;switch(e){case"point":case"multipoint":if("2d"===o)l=new z({color:s,size:n,outline:{color:i.color,width:i.width}});else if("3d-flat"===o)l=new V({symbolLayers:[new L({size:n,resource:{primitive:"circle"},material:{color:s},outline:{color:i.color,size:i.width}})]});else if(o.includes("3d-volumetric")){const e="3d-volumetric-uniform"===o,i=new k({height:n,resource:{primitive:e?"sphere":"cylinder"},material:{color:s}});e||(i.width=t.widthAndDepth,i.depth=t.widthAndDepth),l=new V({symbolLayers:[i]})}break;case"polyline":"2d"===o?l=new j({color:s,width:n}):"3d-flat"===o?l=new S({symbolLayers:[new v({size:n,material:{color:s}})]}):"3d-volumetric"===o&&(l=new S({symbolLayers:[new x({width:"number"==typeof n?n:parseFloat(n),height:"number"==typeof n?n:parseFloat(n),material:{color:s}})]}));break;case"polygon":"2d"===o?l=new w({color:s,outline:{color:i.color,width:i.width}}):"3d-flat"===o?l=new g({symbolLayers:[new b({material:{color:s},outline:{color:i.color,size:i.width}})]}):"3d-volumetric"===o&&(l=new g({symbolLayers:[new D({size:n,material:{color:s}})]}));break;case"mesh":{const e=t.meshInfo&&t.meshInfo.colorMixMode,o=t.meshInfo&&t.meshInfo.edgesType;l=new h({symbolLayers:[new b({material:{color:s,colorMixMode:e||null},edges:"solid"===o?new p({color:I}):"sketch"===o?new d({color:I}):null})]});break}}return l}function K(e,t,o){const n=Q({layer:e,fields:t});if(n.length)return M(o,"Unknown fields: "+n.join(", ")+". You can only use fields defined in the layer schema");const s=X({layer:e,fields:t});return s.length?M(o,"Unsupported fields: "+s.join(", ")+". You can only use fields that are accessible to the renderer i.e. FieldUsageInfo.supportsRenderer must be true"):void 0}function Q(e){const t=e.layer;return e.fields.filter((e=>!t.getField(e)))}function X(e){const t=e.layer;return e.fields.filter((e=>{const o=t.getFieldUsageInfo(e);return!o||!o.supportsRenderer}))}async function Z(e,t){const o={layer:e.layer,view:e.view,signal:e.signal},[n,s]=await Promise.all([a(e),t?r(o):null]),i=E({min:n.minValue,max:n.maxValue,avg:null,stddev:null},!1,!1);return{result:i?await a({...e,classificationMethod:"equal-interval",numClasses:1,analyzeData:!1,minValue:i[0],maxValue:i[1],normalizationTotal:i[0]+i[1]}):n,defaultValuesUsed:!!i,outlineResult:s}}function _(e){return m(e)}function ee(e,t){let{minSize:o,maxSize:n}=e;if("height"===t){o=((n-o)/2+o)/(2*2.3),n*=2}return{minSize:o,maxSize:n}}function te(e){return U.test(e)}function oe(e){const t=e.match(U),o=Number(t[1]);if("%"===t[3])return new l({scaleFactor:o/100})}function ne(e,t,o,n){e.startTime=t instanceof Date?t.getTime():t,e.endTime=o instanceof Date?o.getTime():o,e.units=n,e.field="string"==typeof t?t:"string"==typeof o?o:null}async function se(e,t){let n=null,s=null;if(!e&&!t)return{basemapId:n,basemapTheme:s};if(!e&&t&&(e=t&&t.map?.basemap),e&&(n=c(e,F,!1),n)){const e=f(n);o(e)&&(s=e)}return n||"2d"!==t?.type||(s=await y(t),o(s)&&(n="dark"===s?"dark-gray":"gray")),{basemapId:n,basemapTheme:s}}export{N as clampAboveAndBelowStopValues,Y as createColors,W as createDataValues,O as createDefaultStopValues,M as createError,$ as createStopValues,q as createStopValuesForAboveBelow,J as createSymbol,B as formatDate,C as getBaseValueForAboveBelow,se as getBasemapInfo,Z as getClassBreaks,P as getDataRange,E as getDefaultDataRange,oe as getPointSizeAlgorithm,ee as getSizeRangeForAxis,_ as getSummaryStatistics,H as getSymbolOutlineFromScheme,G as getSymbolSizeFromScheme,te as isValidPointSize,ne as updateAgeRendererAuthoringInfoVV,K as verifyBasicFieldValidity};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import e from"../../core/Error.js";import{isSome as i}from"../../core/maybe.js";import
|
|
5
|
+
import e from"../../core/Error.js";import{isSome as i}from"../../core/maybe.js";import s from"../../renderers/support/AuthoringInfo.js";import o from"../../renderers/support/ClassBreakInfo.js";import a from"../../renderers/visualVariables/support/SizeStop.js";import{getSize as l}from"../../renderers/visualVariables/support/visualVariableUtils.js";import{createVisualVariable as n}from"./color.js";import{createVisualVariables as t,createContinuousRenderer as r}from"./size.js";import{verifyBasicFieldValidity as u,createStopValuesForAboveBelow as m,clampAboveAndBelowStopValues as p,createDefaultStopValues as c}from"./support/utils.js";import{getFieldsList as d}from"../support/utils.js";import{createLayerAdapter as v,featureCapableLayerTypes as b,getLayerTypeLabels as f}from"../support/adapters/support/layerUtils.js";import{getAboveAndBelowSymbols as y}from"../symbology/support/aboveAndBelowUtils.js";import{applyCIMSymbolColor as w}from"../../symbols/support/cimSymbolUtils.js";import{Symbol3DMaterial as h}from"../../symbols/support/Symbol3DMaterial.js";const z=2**53-1;async function V(s){if(!(s&&s.layer&&(s.field||s.valueExpression||s.sqlExpression)))throw new e("univariate-colorsize-visual-variables:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(s.valueExpression&&!s.sqlExpression&&!s.view)throw new e("univariate-colorsize-visual-variables:missing-parameters","View is required when 'valueExpression' is specified");if("above-and-below"===s.theme&&s.sizeOptions?.sizeOptimizationEnabled)throw new e("univariate-colorsize-visual-variables:invalid-parameters","sizeOptimizationEnabled cannot be true for 'above-and-below' theme");const o={...s},a=v(o.layer,b);if(o.layer=a,o.theme=o.theme||o.colorOptions?.theme?o.theme:"high-to-low","90-10"===o.theme)throw new e("univariate-colorsize-visual-variables:not-supported","Only 'high-to-low', 'above-and-below', 'above', 'below' themes are supported.");if(!a)throw new e("univariate-colorsize-visual-variables:invalid-parameters","'layer' must be one of these types: "+f(b).join(", "));const l=i(o.signal)?{signal:o.signal}:null;await a.load(l);const n=await d({field:o.field,normalizationField:o.normalizationField,valueExpression:o.valueExpression}),t=u(a,n,"univariate-colorsize-visual-variables:invalid-parameters");if(t)throw t;return o}function g(e,i){const s={...e},{sizeOptions:o,theme:a}=s,l=s.legendOptions||s.sizeOptions?.legendOptions;return delete s.sizeOptions,delete s.colorOptions,{...s,...o,statistics:i||s.statistics,theme:"above-and-below"===a?null:a,legendOptions:l}}function O(e,i){const s={...e},o=s.colorOptions,a=s.theme||o?.theme,l=s.legendOptions||s.colorOptions?.legendOptions;return delete s.sizeOptions,delete s.colorOptions,{...s,...o,statistics:i||s.statistics,theme:a,legendOptions:l}}async function x(s){if(!(s&&s.layer&&(s.field||s.valueExpression||s.sqlExpression)))throw new e("univariate-colorsize-continuous-renderer:missing-parameters","'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required");if(s.valueExpression&&!s.sqlExpression&&!s.view)throw new e("univariate-colorsize-continuous-renderer:missing-parameters","View is required when 'valueExpression' is specified");const o={...s};o.symbolType=o.symbolType||"2d",o.colorOptions||(o.colorOptions={}),o.colorOptions.isContinuous=o.colorOptions.isContinuous??!1;const a=v(o.layer,b);if(o.layer=a,!a)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'layer' must be one of these types: "+f(b).join(", "));const l=i(o.signal)?{signal:o.signal}:null;if(await a.load(l),"above-and-below"===o.theme&&o.symbolOptions){if(o.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"!==a.geometryType&&"polygon"!==a.geometryType)throw new e("univariate-colorsize-continuous-renderer:invalid-parameters","'symbolOptions' only apply to layers with 'point' or 'polygon' geometryType")}const n=await d({field:o.field,normalizationField:o.normalizationField,valueExpression:o.valueExpression}),t=u(a,n,"univariate-colorsize-continuous-renderer:invalid-parameters");if(t)throw t;return o}function E(e){const i={...e},s={...i.sizeOptions};return delete i.sizeOptions,delete i.colorOptions,delete s.sizeOptimizationEnabled,{...i,...s}}function S(e,i){if("type"in e&&"cim"===e.type)w(e,i);else if("type"in e&&e.type.includes("3d")){e.symbolLayers.forEach((e=>{"material"in e&&"color"in e.material&&(e.material?e.material.color=i:e.material=new h({color:i}))}))}else"color"in e&&(e.color=i)}function j(e,i,s){if((i?.symbolStyle||i?.symbols)&&("point"===s||"polygon"===s))return i.symbols||y(i.symbolStyle);const o=e.classBreakInfos[0].symbol;return{above:o.clone(),below:o.clone()}}function T(e,i,s){const a=s.symbolOptions,l=s.layer,n=a?.symbols?"custom":a?.symbolStyle,t=s.colorOptions?.isContinuous;if(I(e,i,t),n||!t){const{stops:s}=i.size.visualVariables[0],{above:r,below:u}=j(e,a,l.geometryType);if(!t){const e=i.color.colorScheme.colors,s=e[0];S(r,e[e.length-1]),S(u,s)}e.classBreakInfos=[new o({minValue:-z,maxValue:s[2].value,symbol:u}),new o({minValue:s[2].value,maxValue:z,symbol:r})],n&&(e.authoringInfo.univariateSymbolStyle=n)}}function I(e,i,s=!0){const o=i?.authoringInfo?.clone(),a=i.size.visualVariables.map((e=>e.clone()));s?a.push(i.color.visualVariable.clone()):o.visualVariables=o.visualVariables.filter((e=>"size"===e.type)),a.push(...e.visualVariables.filter((e=>"target"in e&&"outline"===e.target)).map((e=>e.clone()))),e.authoringInfo=o,e.visualVariables=a}function q(e){const i={...e},s=i.symbolType,o=s.includes("3d-volumetric");delete i.symbolType,delete i.defaultSymbolEnabled;const a=i;return a.worldScale=o,o&&(a.sizeOptions={...a.sizeOptions},a.sizeOptions.axis="3d-volumetric-uniform"===s?"all":"height"),a}async function D(e,i,s,o){const n=i[0],t=i[1],r=Math.round((t-n)/2)+n,u=e.clone();u.stops=[new a({value:s[0],size:t}),new a({value:s[1],size:r}),new a({value:s[2],size:n}),new a({value:s[3],size:r}),new a({value:s[4],size:t})],e.stops=[new a({value:o[0],size:l(u,o[0])}),new a({value:o[1],size:l(u,o[1])}),new a({value:o[2],size:l(u,o[2])}),new a({value:o[3],size:l(u,o[3])}),new a({value:o[4],size:l(u,o[4])})]}async function U(e,i,s,o){const a=e.find((e=>"width-and-depth"!==e.axis&&!e.target)),l="number"==typeof a?.minSize?a?.minSize:null,n="number"==typeof a?.maxSize?a?.maxSize:null;if(null!=a?.minDataValue&&null!=l&&null!=n)if(o)if("above-and-below"===o){a.minDataValue=null,a.maxDataValue=null,a.minSize=null,a.maxSize=null;const e=m(s),o=p(e,s);await D(a,[l,n],e,o),i.stops.forEach(((e,i)=>e.value=o[i]))}else{const{minDataValue:e,maxDataValue:s}=a,o=c(e,s,5);i.stops.forEach(((e,i)=>e.value=o[i])),a.minDataValue=o[0],a.maxDataValue=o[o.length-1]}else a.minDataValue=i.stops[0].value,a.maxDataValue=i.stops[i.stops.length-1].value}function C(e,i,o){const{theme:a,minValue:l,maxValue:n}=e,t=i.authoringInfo.visualVariables[0].clone(),r=o.authoringInfo.visualVariables[0].clone();if("above-and-below"===a){const e=i.visualVariable.stops;t.minSliderValue=r.minSliderValue=l??e[0].value,t.maxSliderValue=r.maxSliderValue=n??e[e.length-1].value,r.theme="above-and-below"}return new s({type:"univariate-color-size",univariateTheme:a,visualVariables:[t,r]})}async function B(e){const i=await V(e),s=await n(O(i)),{visualVariable:o,statistics:a}=s,l=await t(g(i,a)),r=l.visualVariables;return await U(r,o,a,i.theme),{basemapId:l.basemapId,basemapTheme:l.basemapTheme,statistics:a,defaultValuesUsed:s.defaultValuesUsed,color:{visualVariable:o,colorScheme:s.colorScheme},size:{visualVariables:r,sizeScheme:l.sizeScheme},authoringInfo:C(i,s,l)}}async function F(e){return k(e)}async function k(e){const i=await x(e),{renderer:s,statistics:o,defaultValuesUsed:a}=await r(E(i)),l=q(i);l.statistics=o;const n=await B(l);return"above-and-below"===i.theme?T(s,n,i):I(s,n),{renderer:s,statistics:o,defaultValuesUsed:a,color:i.colorOptions?.isContinuous||"above-and-below"!==i.theme?n.color:null,size:n.size,basemapId:n.basemapId,basemapTheme:n.basemapTheme}}export{F as createContinuousRenderer,k as createRenderer,B as createVisualVariables};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import t from"../../../core/Error.js";import{open as e}from"../../../core/workers/workers.js";class n{async open(t){this.connection=await e("statsWorker",{strategy:"distributed",signal:t})}destroy(){
|
|
5
|
+
import t from"../../../core/Error.js";import{open as e}from"../../../core/workers/workers.js";class n{async open(t){this.connection=await e("statsWorker",{strategy:"distributed",signal:t})}destroy(){this.connection?.close()}static getInstance(){return n.instance||(n.instance=new n),n.instance}async summaryStatistics(e,n){if(!this.connection)throw new t("worker-client:summary-statistics","connection is required");return this.connection.invoke("summaryStatistics",{attribute:e,features:n})}async uniqueValues(e,n){if(!this.connection)throw new t("worker-client:unique-values","connection is required");return this.connection.invoke("uniqueValues",{attribute:e,features:n})}async classBreaks(e,n){if(!this.connection)throw new t("worker-client:class-breaks","connection is required");return this.connection.invoke("classBreaks",{attribute:e,features:n})}async histogram(e,n){if(!this.connection)throw new t("worker-client:histogram","connection is required");return this.connection.invoke("histogram",{attribute:e,features:n})}}export{n as WorkerClient};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Error.js";import{unwrap as r}from"../../../core/maybe.js";import"../../../core/Logger.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/set.js";import{subclass as i}from"../../../core/accessorSupport/decorators/subclass.js";import{createGenerateRendererClassBreaks as s,createGenerateRendererUniqueValues as o}from"../../../rest/support/generateRendererUtils.js";import{getDataValues as a,mergeWhereClauses as n}from"../../statistics/support/utils.js";import{WorkerClient as l}from"../../statistics/support/WorkerClient.js";import{getFieldsList as
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../core/Error.js";import{unwrap as r}from"../../../core/maybe.js";import"../../../core/Logger.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/arrayUtils.js";import"../../../core/has.js";import"../../../core/accessorSupport/set.js";import{subclass as i}from"../../../core/accessorSupport/decorators/subclass.js";import{createGenerateRendererClassBreaks as s,createGenerateRendererUniqueValues as o}from"../../../rest/support/generateRendererUtils.js";import{getDataValues as a,mergeWhereClauses as n}from"../../statistics/support/utils.js";import{WorkerClient as l}from"../../statistics/support/WorkerClient.js";import{getFieldsList as c}from"../utils.js";import u from"./FeatureLayerAdapter.js";import{ensureFeaturesJSON as p}from"./support/utils.js";function m(e){return"esri.rest.support.ClassBreaksDefinition"===e.declaredClass}function d(e){return"esri.rest.support.UniqueValueDefinition"===e.declaredClass}let f=class extends u{constructor(e){super(e)}async _createGenerateRendererResult(e,r,i,n,l){const c=e?.features,u=c?.length;if(!u)throw new t("csv-layer-adapter:insufficient-data","No features are available to calculate statistics");const f=p(c);let h=null;if("percent-of-total"===n){if(h=(await this.workerClient.summaryStatistics({field:r},f)).sum,null==h)throw new t("csv-layer-adapter:invalid","invalid normalizationTotal")}if(m(l)){const e=(await a({field:r,normalizationType:n,normalizationField:i,normalizationTotal:h},f)).filter((e=>Number.isFinite(e)));return s({definition:l,values:e,normalizationTotal:h})}if(d(l)){const e=(await a({field:r},f)).filter((e=>null!=e&&"string"==typeof e&&""!==e.trim()));return o(e)}}generateRenderer(e,t){const r=e.classificationDefinition;let i=null,s=null,o=null;m(r)?(i=r.classificationField,s=r.normalizationField,o=r.normalizationType):d(r)&&(i=r.attributeField);const a=this.layer;return c({field:i,normalizationField:s}).then((l=>{const c=a.createQuery();return c.returnGeometry=!1,c.outFields=l,c.where=n(c.where,e.where),a.queryFeatures(c,{signal:t}).then((e=>this._createGenerateRendererResult(e,i,s,o,r)))}))}load(e){const t=this.layer.load(e).then((async t=>{this.geometryType=t.geometryType,this.objectIdField=t.objectIdField,this.supportsSQLExpression=!0,this._hasLocalSource=!1,this.hasQueryEngine=!0,this.workerClient=l.getInstance(),await this.workerClient.open(r(r(e).signal))}));return this.addResolvingPromise(t),Promise.resolve(this)}};f=e([i("esri.smartMapping.support.adapters.CSVLayerAdapter")],f);const h=f;export{h as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../chunks/tslib.es6.js";import"../../../geometry.js";import{pickRandom as t}from"../../../core/arrayUtils.js";import a from"../../../core/Error.js";import r from"../../../core/Logger.js";import{unwrap as i}from"../../../core/maybe.js";import{timeout as s,eachAlways as n,throwIfAborted as o}from"../../../core/promiseUtils.js";import{whenOnce as l}from"../../../core/reactiveUtils.js";import{property as u}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as m}from"../../../core/accessorSupport/decorators/subclass.js";import{toQuantizationTransform as c,quantizePoint as p}from"../../../geometry/support/quantizationUtils.js";import{isWrappable as h,getInfo as d}from"../../../geometry/support/spatialReferenceUtils.js";import{isHostedAgolService as y}from"../../../layers/support/arcgisLayerUrl.js";import{kebabDict as f}from"../../../layers/support/fieldType.js";import{isStringField as F,isNumericField as g,isDateField as w}from"../../../layers/support/fieldUtils.js";import S from"../../../rest/support/GenerateRendererParameters.js";import v from"../../../rest/support/QuantizationParameters.js";import x from"../../../rest/support/StatisticDefinition.js";import _ from"../../../rest/support/UniqueValueDefinition.js";import{getArcadeForPredominantCategory as z,getSQLForPredominantCategoryName as q}from"../../statistics/support/predominanceUtils.js";import{summaryStatistics as V,uniqueValues as T,histogram as E,classBreaks as L}from"../../statistics/support/statsWorker.js";import{getRangeExpr as j,getSQLFilterForNormalization as Q,mergeWhereClauses as M}from"../../statistics/support/utils.js";import{WorkerClient as C}from"../../statistics/support/WorkerClient.js";import{getFieldsList as b}from"../utils.js";import P from"./LayerAdapter.js";import{ensureFeaturesJSON as N,msSinceUnixEpochSQL as B,getFieldExpr as k,getSummaryStatisticsFromFeatureSet as I,getViewInfoParams as O,getMissingFields as R,getUniqueValuesFromFeatureSet as D,getHistogramFromFeatureSet as G,generateBinParams as J,calculateHeatmapStats as U,getPredominantCategoriesFromUVInfos as A}from"./support/utils.js";import{processSummaryStatisticsResult as W,isNullCountSupported as $,statisticTypes as H,createUVResult as Z,getEqualIntervalBins as K,createClassBreaksDefinition as X,resolveCBResult as Y}from"../../../statistics/utils.js";import ee from"../../../tasks/GenerateRendererTask.js";import te from"../../../geometry/Point.js";const ae=r.getLogger("esri.smartMapping.support.adapters.FeatureLayerAdapter"),re=5,ie=10,se=2e4,ne=4e5;let oe=class extends P{constructor(e){super(e)}destroy(){var e;this._hasLocalSource=null,null==(e=this.workerClient)||e.destroy()}_isStatsSupportedOnService(){const e=this.layer;return!e.get("capabilities.query.supportsStatistics")||"multipatch"===this.geometryType&&!y(e.url)&&e.version<10.5?Promise.reject(new a("feature-layer-adapter:not-supported","Layer does not support statistics query")):Promise.resolve()}async _waitForLayerViewUpdate(e){if(!e)throw new a("feature-layer-adapter:insufficient-data","layerView is required to fetch the features");const t=new AbortController,r=l((()=>!e.updating),t.signal);await s(r,5e3,t).catch((e=>{throw ae.warn("LayerView is taking too long to update. Aborting fetch from layerView."),e}))}async _fetchFeaturesFromMemory(e,t,a,r){const i=this.layer,s="json"===r;if(this._hasLocalSource){const e=await i.queryFeatures(t);return s?N(e.features):e.features}if(await this._waitForLayerViewUpdate(e),s&&"queryFeaturesJSON"in e&&e.queryFeaturesJSON){const{features:r}=await e.queryFeaturesJSON(t,{signal:a});return r}const n=await e.queryFeatures(t,{signal:a});return s?N(n.features):n.features}_fetchFeaturesFromService(e,t){return this.layer.queryFeatures(e,{signal:t}).then((e=>e.features))}_fetchFeaturesJSONFromService(e,t){return this._fetchFeaturesFromService(e,t).then(N)}_fetchFeaturesForStats(e,t){return b({field:e.field,normalizationField:e.normalizationField,valueExpression:e.valueExpression}).then((a=>this.getSampleFeatures({sampleSize:-1,view:e.view,returnGeometry:e.returnGeometry,requiredFields:a,signal:e.signal},t)))}_summaryStatsFromGenRend(e){const t=e.normalizationType,a=e.normalizationField;return this.classBreaks({field:e.field,numClasses:re,classificationMethod:"standard-deviation",standardDeviationInterval:.25,normalizationType:t,normalizationField:"field"===t?a:void 0,minValue:e.minValue,maxValue:e.maxValue,signal:e.signal}).then((e=>{let t,a,r;if(e.classBreakInfos.some((e=>(e.hasAvg&&(t=e),!!t))),t){const e=t.maxValue-t.minValue;a=t.minValue+e/2,r=4*e}const i={min:e.minValue,max:e.maxValue,avg:a,stddev:r};return W(i)}))}_getSummaryStatsQuery(e,t){const{field:a,normalizationType:r,normalizationField:i,normalizationTotal:s,minValue:n,maxValue:o}=e,l=this.supportsSQLExpression&&t?B(this,a):e.sqlExpression,u=k({field:a,normalizationType:r,normalizationField:i,normalizationTotal:s,layer:this}),m=l||u,c=m?j(m,n,o):null,p=Q({field:a,normalizationField:i,normalizationType:r}),h=M(e.sqlWhere,p),d=M(h,c),y=$({normalizationField:i,normalizationType:r,sqlExpression:l,supportsSQLExpression:this.supportsSQLExpression,minValue:n,maxValue:o}),f=F(this.getField(a)),g=H.filter((e=>"nullcount"===e?y:!f||"count"===e)),w=this.layer.createQuery();return w.where=M(w.where,d),w.sqlFormat=l?"standard":null,w.outStatistics=g.map((e=>{const t=new x;let a=null,r=null,i=`${e}_value`;return"variance"===e?(a="var",r=m):"nullcount"===e?(a="count",r=this.layer.objectIdField,i="totalcount_value"):"median"===e?(a="percentile-continuous",r=m,t.statisticParameters={value:.5}):(a=e,r=m),t.statisticType=a,t.onStatisticField=r,t.outStatisticFieldName=i,t})),w}async _summaryStatsFromServiceQuery(e,t){await this._isStatsSupportedOnService(),"percent-of-total"===e.normalizationType&&(e.normalizationTotal=await this._getNormalizationTotal(e.field,e.normalizationType));const a=this._getSummaryStatsQuery(e,t),r=await this.layer.queryFeatures(a,{signal:e.signal}),i=I(r,t);return W(i)}async _summaryStatsFromClientQuery(e,t){const a=this._getSummaryStatsQuery(e,t),r=await this.layer.queryFeatures(a,{signal:e.signal}),i=I(r,t);return W(i)}async _getNormalizationTotalFromMemory(e,t,r){const{featuresJSON:i,graphics:s,layerView:n,query:o}=t,l=(!i&&!s&&n&&"querySummaryStatistics"in n?await n.querySummaryStatistics(o,{field:e},{signal:r}):i?await this.workerClient.summaryStatistics({field:e},i):await V({attribute:{field:e},features:s})).sum;if(null==l)throw new a("feature-layer-adapter:invalid","invalid normalizationTotal");return l}async _summaryStatsFromMemory(e,t){const{view:a,field:r,valueExpression:i,normalizationType:s,signal:n}=e,o={field:r,valueExpression:i,normalizationType:s,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue},{featuresJSON:l,graphics:u,layerView:m,query:c}=await this._processStatsFromMemoryParams(e);return i&&a&&(l||u)&&(o.fieldType=null!=t&&t.type?f.toJSON(t.type):null,o.viewInfoParams=O(a)),"percent-of-total"===s&&null==e.normalizationTotal&&(o.normalizationTotal=await this._getNormalizationTotalFromMemory(r,{featuresJSON:l,graphics:u,layerView:m,query:c},n)),!l&&!u&&m&&"querySummaryStatistics"in m?m.querySummaryStatistics(c,o,{signal:n}):l?this.workerClient.summaryStatistics(o,l):V({attribute:o,features:u})}async _processStatsFromMemoryParams(e){const t=e.features;if(null!=t&&t.length){return t.length&&"declaredClass"in t[0]&&"esri.Graphic"===t[0].declaredClass?{graphics:t}:{featuresJSON:t}}const{view:r,field:i,normalizationField:s,valueExpression:n,signal:o}=e;let l=null,u=null,m=null,c=null;if(r)try{l=await r.whenLayerView(this.layer),u="querySummaryStatistics"in l&&"function"==typeof l.querySummaryStatistics}catch{u=!1}if(u)try{await this._waitForLayerViewUpdate(l);const e=await b({field:i,normalizationField:s,valueExpression:n});(await R(this,e,l)).length?u=!1:(m=this.layer.createQuery(),m.outFields=e,m.returnGeometry=!1),l.suspended&&(u=!1)}catch{u=!1}var p;if(!u&&(c=await this._fetchFeaturesForStats({field:i,valueExpression:n,normalizationField:s,view:r,signal:o},"json"),null==(p=c)||!p.length))throw new a("feature-layer-adapter:insufficient-data","No features are available to calculate statistics");return{layerView:l,query:m,featuresJSON:c}}_uvFromGenRenderer(e,t){const a=e.field,r=new _;r.attributeField=a;const i=new S;return i.classificationDefinition=r,this.generateRenderer(i,e.signal).then((e=>{const t={},r=this.getField(a);return e.uniqueValues.forEach((e=>{let a=e.value;null!=a&&""!==a&&("string"!=typeof a||""!==a.trim()&&"<null>"!==a.toLowerCase())||(a=null),null==t[a]?t[a]={count:e.count,data:g(r)&&a?Number(a):a}:t[a].count=t[a].count+e.count})),{count:t}})).then((a=>Z(a,t,e.returnAllCodedValues)))}_getUVQuery(e){const t=e.field,a=e.sqlExpression,r="countOF"+(t||"Expr"),i=new x;i.statisticType="count",i.onStatisticField=a?"1":t,i.outStatisticFieldName=r;const s=this.layer.createQuery();return s.where=M(s.where,e.sqlWhere),s.sqlFormat=a?"standard":null,s.outStatistics=[i],s.groupByFieldsForStatistics=[t||a],s}_uvFromServiceQuery(e,t){return this._isStatsSupportedOnService().then((()=>this.layer.queryFeatures(this._getUVQuery(e),{signal:e.signal}))).then((t=>D(t,this,e.field,e.view,null,e.signal))).then((a=>Z(a,t,e.returnAllCodedValues)))}async _uvFromClientQuery(e,t){const{signal:a}=e,r=this._getUVQuery(e),i=await this.layer.queryFeatures(r,{signal:a}),s=await D(i,this,e.field,e.view,null,a);return Z(s,t,e.returnAllCodedValues)}async _uvFromMemory(e,t){const{view:a,field:r,valueExpression:i,returnAllCodedValues:s,signal:n}=e,{featuresJSON:o,graphics:l,layerView:u,query:m}=await this._processStatsFromMemoryParams(e),c={field:r,valueExpression:i,domain:t,returnAllCodedValues:s};return i&&a&&o&&(c.viewInfoParams=O(a)),!o&&!l&&u&&"queryUniqueValues"in u?u.queryUniqueValues(m,c,{signal:n}):o?this.workerClient.uniqueValues(c,o):T({attribute:c,features:l})}_calcBinsSQL(e,t,a){const r=[],i=t.length;return t.forEach(((t,s)=>{const[n,o]=t;let l=null;l=0!==s||a?s!==i-1||a?M(`${e} >= ${n}`,`${e} ${s===i-1?" <= ":" < "} ${o}`):`${e} >= ${n}`:`${e} < ${o}`,r.push("WHEN ("+l+") THEN "+(s+1))})),["CASE",r.join(" "),"ELSE 0","END"].join(" ")}_getNormalizationTotal(e,t,a){return e&&"percent-of-total"===t?this.summaryStatistics({field:e,signal:a}).then((e=>e.sum)):Promise.resolve(null)}_getQueryParamsForExpr(e,t){const a=e.valueExpression||e.sqlExpression,r=e.signal;if(!a){const{field:a,normalizationType:i,normalizationField:s}=e,n=a?this.getField(a):null,o=w(n),l={field:a,normalizationType:i,normalizationField:s,normalizationTotal:t,layer:this};return{sqlExpression:o?B(this,a):k(l),sqlWhere:o?null:e.sqlWhere||Q({field:a,normalizationType:i,normalizationField:s}),signal:r}}return{valueExpression:e.valueExpression,sqlExpression:e.sqlExpression,sqlWhere:e.sqlWhere,signal:r}}_getDataRange(e,t,a){return null!=t&&null!=a?Promise.resolve({min:t,max:a}):this.summaryStatistics(e).then((e=>({min:e.min,max:e.max})))}_histogramForExpr(e){return this._getNormalizationTotal(e.field,e.normalizationType,e.signal).then((t=>{const a=this._getQueryParamsForExpr(e,t);return this._getDataRange(a,e.minValue,e.maxValue).then((r=>{const{min:i,max:s}=r,n=e.numBins||ie,o=K(i,s,n),l=this._calcBinsSQL(a.sqlExpression,o,null!=e.minValue&&null!=e.maxValue),u=new x({statisticType:"count",outStatisticFieldName:"countOFExpr",onStatisticField:"1"}),m=this.layer.createQuery();return m.where=M(m.where,a.sqlWhere),m.sqlFormat="standard",m.outStatistics=[u],m.groupByFieldsForStatistics=[l],m.orderByFields=[l],this._isStatsSupportedOnService().then((()=>this.layer.queryFeatures(m,{signal:a.signal}))).then((e=>G(e,i,s,n,t)))}))}))}_histogramForField(e){let t=null;return t=null!=e.minValue&&null!=e.maxValue?Promise.resolve({min:e.minValue,max:e.maxValue}):this.summaryStatistics(e).then((e=>{if(!e.count)throw new a("feature-layer-adapter:insufficient-data","Either the layer has no features or none of the features have data for the field");return{min:e.min,max:e.max}})),t.then((t=>this._getBins({min:t.min,max:t.max},e.field,e.numBins,e.view,e.signal)))}_getBins(e,t,a=ie,r,i){const{min:s,max:n,normTotal:o,excludeZerosExpr:l}=e,u=e.intervals||K(s,n,a),m=e.sqlExpr||t;return this._queryBins(u,m,l,r,i).then((e=>({bins:e.map(((e,t)=>({minValue:u[t][0],maxValue:u[t][1],count:e.value}))),minValue:s,maxValue:n,normalizationTotal:o})))}_queryBins(e,t,a,r,i){const s=[],o=e.length;for(let n=0;n<o;n++){const r=M(a,M(t+" >= "+e[n][0],null!==e[n][1]?t+(n===o-1?" <= ":" < ")+e[n][1]:""));s.push(r)}return n(s.map((e=>this.queryFeatureCount({whereClause:e,view:r,signal:i}))))}_binParamsFromGenRend(e,t){const{field:a,normalizationType:r,normalizationField:i,signal:s}=e,n=Q({field:a,normalizationType:r,normalizationField:i}),o=new S({classificationDefinition:X({field:a,normalizationType:r,normalizationField:i,classificationMethod:e.classificationMethod,standardDeviationInterval:e.standardDeviationInterval,breakCount:e.numBins||ie}),where:M(n,t)});return this.generateRenderer(o,s).then((e=>{const{normalizationTotal:t,classBreaks:s}=e;return J({field:a,normalizationType:r,normalizationField:i,normalizationTotal:t,classBreaks:s,where:n,layer:this})}))}async _histogramFromMemory(e){const{view:t,field:a,signal:r}=e,{featuresJSON:i,graphics:s,layerView:n,query:o}=await this._processStatsFromMemoryParams(e),l={field:a,valueExpression:e.valueExpression,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numBins:e.numBins};return e.valueExpression&&t&&i&&(l.viewInfoParams=O(t)),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(l.normalizationTotal=await this._getNormalizationTotalFromMemory(a,{featuresJSON:i,graphics:s,layerView:n,query:o},r)),!i&&!s&&n&&"queryHistogram"in n?n.queryHistogram(o,l,{signal:r}):i?this.workerClient.histogram(l,i):E({attribute:l,features:s})}_classBreaksFromGenRend(e){const{field:t,normalizationType:a,normalizationField:r,normalizationTotal:i,signal:s}=e,n=Q({field:t,normalizationType:a,normalizationField:r}),o=k({field:t,normalizationType:a,normalizationField:r,normalizationTotal:i,layer:this}),l=j(o,e.minValue,e.maxValue),u=X({field:t,normalizationType:a,normalizationField:r,classificationMethod:e.classificationMethod,standardDeviationInterval:e.standardDeviationInterval,breakCount:e.numClasses||re}),m=new S;return m.classificationDefinition=u,m.where=M(n,l),this.generateRenderer(m,s).then((t=>Y(t,e.classificationMethod)))}_classBreaksFromInterpolation(e){const{minValue:t,maxValue:a}=e,r=e.numClasses||re,i=[],s=(a-t)/r;for(let l=0;l<r;l++){const e=t+l*s;i.push({minValue:e,maxValue:e+s})}i[r-1].maxValue=a;const n={classBreaks:i,normalizationTotal:e.normalizationTotal},o=Y(n,e.classificationMethod);return Promise.resolve(o)}async _classBreaksFromMemory(e){const{view:t,field:a,signal:r}=e,{featuresJSON:i,graphics:s,layerView:n,query:o}=await this._processStatsFromMemoryParams(e),l={field:a,valueExpression:e.valueExpression,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numClasses:e.numClasses};return e.valueExpression&&t&&i&&(l.viewInfoParams=O(t)),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(l.normalizationTotal=await this._getNormalizationTotalFromMemory(a,{featuresJSON:i,graphics:s,layerView:n,query:o},r)),!i&&!s&&n&&"queryClassBreaks"in n?n.queryClassBreaks(o,l,{signal:r}):i?this.workerClient.classBreaks(l,i):L({attribute:l,features:s})}async _heatmapStatsFromMemory(e,t){const{blurRadius:r,field:i,view:s,signal:n}=e,o=new v({extent:s.extent,tolerance:"2d"===s.type?s.state.resolution:1}),l=this._quantizeFeatures(e.features||await this._fetchFeaturesForStats({field:i,view:s,returnGeometry:!0,signal:n}),o,s);if(!l||!l.length)return{count:0,min:null,max:null,avg:null,stddev:null};const u=U(l,r,t,i,s.size[0],s.size[1]);if(u)return{count:u.count,min:u.min,max:u.max,avg:u.mean,stddev:u.stdDev};throw new a("feature-layer-adapter:invalid","unable to calculate heatmap statistics")}_quantizeFeatures(e,t,a){const r=c(t),{spatialReference:s,size:n}=a,o=h(s)?d(s):null,l=o?Math.round((o.valid[1]-o.valid[0])/r.scale[0]):null;return e.map((e=>{const t=new te(i(e.geometry));return p(r,t,t,t.hasZ,t.hasM),e.geometry=o?this._wrapPoint(t,l,n[0]):t,e}))}_wrapPoint(e,t,a){return e.x<0?e.x+=t:e.x>a&&(e.x-=t),e}getField(e=""){return this.layer.getField(e)}getFieldUsageInfo(e){return this.getField(e)?{supportsLabelingInfo:!0,supportsRenderer:!0,supportsPopupTemplate:!0,supportsLayerQuery:!0,supportsStatistics:!0}:null}getFieldDomain(e,t){return this.layer.getFieldDomain(e,t)}summaryStatistics(e){const{field:t,normalizationType:r,sqlExpression:i,view:s,features:n,useFeaturesInView:l}=e,u=t?this.getField(t):null,m=w(u),c=e.valueExpression||i,p=c&&!i,h=this._hasLocalSource||n||l,d=s&&"3d"===s.type;if(h||p)return p||n||l||d?this._summaryStatsFromMemory(e,u):this._summaryStatsFromClientQuery(e,m);if(!this.supportsSQLExpression&&(m||c||"natural-log"===r||"square-root"===r))return Promise.reject(new a("feature-layer-adapter:not-supported","Layer does not support standardized SQL expression for queries"));return(r&&!this.supportsSQLExpression?this._summaryStatsFromGenRend(e):this._summaryStatsFromServiceQuery(e,m)).catch((()=>(o(e.signal),this._summaryStatsFromMemory(e,u))))}uniqueValues(e){const{field:t,valueExpression:a,sqlExpression:r,features:i,useFeaturesInView:s,signal:n}=e,l=(t?this.getField(t):null)&&this.getFieldDomain(t),u=a&&(!r||!this.supportsSQLExpression),m=this._hasLocalSource||i||s||u,c=e.view,p=c&&"3d"===c.type;return m?u||i||s||p?this._uvFromMemory(e,l):this._uvFromClientQuery(e,l):this._uvFromServiceQuery(e,l).catch((t=>(o(n),e.field?this._uvFromGenRenderer(e,l):t))).catch((()=>(o(n),p?this._uvFromMemory(e,l):this._uvFromClientQuery(e,l))))}histogram(e){const{field:t,normalizationType:r,normalizationField:i,classificationMethod:s,view:n,signal:o}=e,l=t?this.getField(t):null,u=w(l),m=e.valueExpression||e.sqlExpression,c=m&&!e.sqlExpression,p=this._hasLocalSource||e.features||e.useFeaturesInView||c,h=this.supportsSQLExpression,d=!s||"equal-interval"===s,y=e.minValue,f=e.maxValue,F=null!=y&&null!=f,g=e.numBins||ie;return p?this._histogramFromMemory(e):(m||h)&&d?h||!m&&"natural-log"!==r&&"square-root"!==r?this._histogramForExpr(e):Promise.reject(new a("feature-layer-adapter:not-supported","Layer does not support standardized SQL expression for queries")):u&&d?Promise.reject(new a("feature-layer-adapter:not-supported","Normalization and date field are not allowed when layer does not support standardized SQL expression for queries")):r||!d?this._binParamsFromGenRend(e).then((s=>{if(!F)return this._getBins(s,t,g,n,o);if(y>s.max||f<s.min)throw new a("histogram:insufficient-data","Range defined by 'minValue' and 'maxValue' does not intersect available data range of the field");if(d)return this._getBins({min:y,max:f,sqlExpr:s.sqlExpr,excludeZerosExpr:s.excludeZerosExpr},t,g,n,o);{const a={field:t,normalizationType:r,normalizationField:i,normalizationTotal:s.normTotal,layer:this},l=k(a),u=j(l,y,f);return this._binParamsFromGenRend(e,u).then((e=>this._getBins(e,t,g,n,o)))}})):this._histogramForField(e)}classBreaks(e){const t=!1!==e.analyzeData,a=this._hasLocalSource||e.features||e.useFeaturesInView||e.valueExpression;if(t&&a)return this._classBreaksFromMemory(e);return(t?this._classBreaksFromGenRend(e):this._classBreaksFromInterpolation(e)).catch((()=>(o(e.signal),this._classBreaksFromMemory(e))))}queryFeatureCount(e){if(this._hasLocalSource)return Promise.reject(new a("feature-layer-adapter:not-supported","Layer does not support count query"));const t=this.layer,r=t.createQuery();return r.where=M(r.where,e.whereClause),t.queryFeatureCount(r,{signal:e.signal})}generateRenderer(e,t){const r=this.layer;if(this._hasLocalSource||r.version<10.1)return Promise.reject(new a("feature-layer-adapter:not-supported","Layer does not support generateRenderer operation (requires ArcGIS Server version 10.1+)"));const i=new ee({url:r.parsedUrl.path,source:r.dynamicDataSource,gdbVersion:r.gdbVersion}),s=r.createQuery();return e.where=M(e.where,s.where),i.execute(e,{signal:t})}heatmapStatistics(e){const{field:t,fieldOffset:a,view:r,signal:i}=e;return(t&&null==a?this.summaryStatistics({field:t,view:r,signal:i}):Promise.resolve(null)).then((t=>{let r=a||0;if(t){const{count:e,min:a,max:i}=t;e?a===i&&0===a?r=1:i<=0?r="abs":a<0&&(r=-1.01*a):r=1}return this._heatmapStatsFromMemory(e,r).then((e=>({...e,summaryStatistics:t,fieldOffset:r})))}))}async predominantCategories(e){if(!this._hasLocalSource&&!this.supportsSQLExpression)throw new a("feature-layer-adapter:not-supported","Layer does not support advanced SQL expressions and standardized queries");const{fields:t,view:r,signal:i}=e,s=z(t),n=q(t),o=r&&this._hasLocalSource?await this._uvFromMemory({valueExpression:s,view:r,signal:i}):await this._uvFromServiceQuery({sqlExpression:n.expression,valueExpression:s,signal:i});return A(o.uniqueValueInfos,t)}async getSampleFeatures(e,a){const{view:r,sampleSize:i,requiredFields:s,returnGeometry:n,signal:l}=e,u=this.layer.createQuery(),m=1,c="json"===a;u.outSpatialReference=e.spatialReference||r&&r.spatialReference,u.returnGeometry=!!n,u.outFields=s;let p=[],h=!1;if(r)try{const e=await r.whenLayerView(this.layer);if(h=!(await R(this,s,e)).length,h&&(p=await this._fetchFeaturesFromMemory(e,u,l,a),p.length&&i>0&&i<=p.length))return t(p,i,m)}catch(d){o(l)}try{if(this._hasLocalSource)return h?p:c?this._fetchFeaturesJSONFromService(u,l):this._fetchFeaturesFromService(u,l);const a=await this.queryFeatureCount({view:r,signal:l}),s=this.layer.capabilities.query.maxRecordCount;let n=-1===i?a:i;if(n=s&&n>s?s:n,a<=p.length||p.length>=s)return p;const o=r.extent.width/r.width/r.scale*ne;if(u.maxAllowableOffset=e.resolution||o,a<=n)return c?this._fetchFeaturesJSONFromService(u,l):this._fetchFeaturesFromService(u,l);if(a<=se){const e=await this.layer.queryObjectIds();return u.objectIds=t(e,n,m),c?this._fetchFeaturesJSONFromService(u,l):this._fetchFeaturesFromService(u,l)}return this.layer.get("capabilities.query.supportsPagination")&&(u.num=Math.min(n,se)),c?this._fetchFeaturesJSONFromService(u,l):this._fetchFeaturesFromService(u,l)}catch(d){return o(l),p}}load(e){const t=this.layer.load(e).then((async t=>{this.geometryType=t.geometryType,this.objectIdField=t.objectIdField,this.supportsSQLExpression=t.get("capabilities.query.supportsSqlExpression"),this._hasLocalSource=!t.url&&!!t.source,this.hasQueryEngine=this._hasLocalSource,this.minScale=t.minScale,this.maxScale=t.maxScale,this.fullExtent=t.fullExtent,this.workerClient=C.getInstance(),await this.workerClient.open(i(i(e).signal))}));return this.addResolvingPromise(t),Promise.resolve(this)}};e([u({constructOnly:!0})],oe.prototype,"layer",void 0),oe=e([m("esri.smartMapping.support.adapters.FeatureLayerAdapter")],oe);const le=oe;export{le as default};
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import"../../../geometry.js";import{pickRandom as t}from"../../../core/arrayUtils.js";import a from"../../../core/Error.js";import r from"../../../core/Logger.js";import{unwrap as i}from"../../../core/maybe.js";import{timeout as s,eachAlways as n,throwIfAborted as o}from"../../../core/promiseUtils.js";import{whenOnce as l}from"../../../core/reactiveUtils.js";import{property as u}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as m}from"../../../core/accessorSupport/decorators/subclass.js";import{toQuantizationTransform as c,quantizePoint as p}from"../../../geometry/support/quantizationUtils.js";import{isWrappable as h,getInfo as d}from"../../../geometry/support/spatialReferenceUtils.js";import{isHostedAgolService as y}from"../../../layers/support/arcgisLayerUrl.js";import{kebabDict as f}from"../../../layers/support/fieldType.js";import{isStringField as F,isNumericField as g,isDateField as w}from"../../../layers/support/fieldUtils.js";import S from"../../../rest/support/GenerateRendererParameters.js";import v from"../../../rest/support/QuantizationParameters.js";import x from"../../../rest/support/StatisticDefinition.js";import _ from"../../../rest/support/UniqueValueDefinition.js";import{getArcadeForPredominantCategory as z,getSQLForPredominantCategoryName as q}from"../../statistics/support/predominanceUtils.js";import{summaryStatistics as V,uniqueValues as T,histogram as E,classBreaks as L}from"../../statistics/support/statsWorker.js";import{getRangeExpr as j,getSQLFilterForNormalization as Q,mergeWhereClauses as M}from"../../statistics/support/utils.js";import{WorkerClient as C}from"../../statistics/support/WorkerClient.js";import{getFieldsList as b}from"../utils.js";import P from"./LayerAdapter.js";import{ensureFeaturesJSON as N,msSinceUnixEpochSQL as B,getFieldExpr as k,getSummaryStatisticsFromFeatureSet as I,getViewInfoParams as O,getMissingFields as R,getUniqueValuesFromFeatureSet as D,getHistogramFromFeatureSet as G,generateBinParams as J,calculateHeatmapStats as U,getPredominantCategoriesFromUVInfos as A}from"./support/utils.js";import{processSummaryStatisticsResult as W,isNullCountSupported as $,statisticTypes as H,createUVResult as Z,getEqualIntervalBins as K,createClassBreaksDefinition as X,resolveCBResult as Y}from"../../../statistics/utils.js";import ee from"../../../tasks/GenerateRendererTask.js";import te from"../../../geometry/Point.js";const ae=r.getLogger("esri.smartMapping.support.adapters.FeatureLayerAdapter"),re=5,ie=10,se=2e4,ne=4e5;let oe=class extends P{constructor(e){super(e)}destroy(){this._hasLocalSource=null,this.workerClient?.destroy()}_isStatsSupportedOnService(){const e=this.layer;return!e.get("capabilities.query.supportsStatistics")||"multipatch"===this.geometryType&&!y(e.url)&&e.version<10.5?Promise.reject(new a("feature-layer-adapter:not-supported","Layer does not support statistics query")):Promise.resolve()}async _waitForLayerViewUpdate(e){if(!e)throw new a("feature-layer-adapter:insufficient-data","layerView is required to fetch the features");const t=new AbortController,r=l((()=>!e.updating),t.signal);await s(r,5e3,t).catch((e=>{throw ae.warn("LayerView is taking too long to update. Aborting fetch from layerView."),e}))}async _fetchFeaturesFromMemory(e,t,a,r){const i=this.layer,s="json"===r;if(this._hasLocalSource){const e=await i.queryFeatures(t);return s?N(e.features):e.features}if(await this._waitForLayerViewUpdate(e),s&&"queryFeaturesJSON"in e&&e.queryFeaturesJSON){const{features:r}=await e.queryFeaturesJSON(t,{signal:a});return r}const n=await e.queryFeatures(t,{signal:a});return s?N(n.features):n.features}_fetchFeaturesFromService(e,t){return this.layer.queryFeatures(e,{signal:t}).then((e=>e.features))}_fetchFeaturesJSONFromService(e,t){return this._fetchFeaturesFromService(e,t).then(N)}_fetchFeaturesForStats(e,t){return b({field:e.field,normalizationField:e.normalizationField,valueExpression:e.valueExpression}).then((a=>this.getSampleFeatures({sampleSize:-1,view:e.view,returnGeometry:e.returnGeometry,requiredFields:a,signal:e.signal},t)))}_summaryStatsFromGenRend(e){const t=e.normalizationType,a=e.normalizationField;return this.classBreaks({field:e.field,numClasses:re,classificationMethod:"standard-deviation",standardDeviationInterval:.25,normalizationType:t,normalizationField:"field"===t?a:void 0,minValue:e.minValue,maxValue:e.maxValue,signal:e.signal}).then((e=>{let t,a,r;if(e.classBreakInfos.some((e=>(e.hasAvg&&(t=e),!!t))),t){const e=t.maxValue-t.minValue;a=t.minValue+e/2,r=4*e}const i={min:e.minValue,max:e.maxValue,avg:a,stddev:r};return W(i)}))}_getSummaryStatsQuery(e,t){const{field:a,normalizationType:r,normalizationField:i,normalizationTotal:s,minValue:n,maxValue:o}=e,l=this.supportsSQLExpression&&t?B(this,a):e.sqlExpression,u=k({field:a,normalizationType:r,normalizationField:i,normalizationTotal:s,layer:this}),m=l||u,c=m?j(m,n,o):null,p=Q({field:a,normalizationField:i,normalizationType:r}),h=M(e.sqlWhere,p),d=M(h,c),y=$({normalizationField:i,normalizationType:r,sqlExpression:l,supportsSQLExpression:this.supportsSQLExpression,minValue:n,maxValue:o}),f=F(this.getField(a)),g=H.filter((e=>"nullcount"===e?y:!f||"count"===e)),w=this.layer.createQuery();return w.where=M(w.where,d),w.sqlFormat=l?"standard":null,w.outStatistics=g.map((e=>{const t=new x;let a=null,r=null,i=`${e}_value`;return"variance"===e?(a="var",r=m):"nullcount"===e?(a="count",r=this.layer.objectIdField,i="totalcount_value"):"median"===e?(a="percentile-continuous",r=m,t.statisticParameters={value:.5}):(a=e,r=m),t.statisticType=a,t.onStatisticField=r,t.outStatisticFieldName=i,t})),w}async _summaryStatsFromServiceQuery(e,t){await this._isStatsSupportedOnService(),"percent-of-total"===e.normalizationType&&(e.normalizationTotal=await this._getNormalizationTotal(e.field,e.normalizationType));const a=this._getSummaryStatsQuery(e,t),r=await this.layer.queryFeatures(a,{signal:e.signal}),i=I(r,t);return W(i)}async _summaryStatsFromClientQuery(e,t){const a=this._getSummaryStatsQuery(e,t),r=await this.layer.queryFeatures(a,{signal:e.signal}),i=I(r,t);return W(i)}async _getNormalizationTotalFromMemory(e,t,r){const{featuresJSON:i,graphics:s,layerView:n,query:o}=t,l=(!i&&!s&&n&&"querySummaryStatistics"in n?await n.querySummaryStatistics(o,{field:e},{signal:r}):i?await this.workerClient.summaryStatistics({field:e},i):await V({attribute:{field:e},features:s})).sum;if(null==l)throw new a("feature-layer-adapter:invalid","invalid normalizationTotal");return l}async _summaryStatsFromMemory(e,t){const{view:a,field:r,valueExpression:i,normalizationType:s,signal:n}=e,o={field:r,valueExpression:i,normalizationType:s,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue},{featuresJSON:l,graphics:u,layerView:m,query:c}=await this._processStatsFromMemoryParams(e);return i&&a&&(l||u)&&(o.fieldType=t?.type?f.toJSON(t.type):null,o.viewInfoParams=O(a)),"percent-of-total"===s&&null==e.normalizationTotal&&(o.normalizationTotal=await this._getNormalizationTotalFromMemory(r,{featuresJSON:l,graphics:u,layerView:m,query:c},n)),!l&&!u&&m&&"querySummaryStatistics"in m?m.querySummaryStatistics(c,o,{signal:n}):l?this.workerClient.summaryStatistics(o,l):V({attribute:o,features:u})}async _processStatsFromMemoryParams(e){const t=e.features;if(t?.length){return t.length&&"declaredClass"in t[0]&&"esri.Graphic"===t[0].declaredClass?{graphics:t}:{featuresJSON:t}}const{view:r,field:i,normalizationField:s,valueExpression:n,signal:o}=e;let l=null,u=null,m=null,c=null;if(r)try{l=await r.whenLayerView(this.layer),u="querySummaryStatistics"in l&&"function"==typeof l.querySummaryStatistics}catch{u=!1}if(u)try{await this._waitForLayerViewUpdate(l);const e=await b({field:i,normalizationField:s,valueExpression:n});(await R(this,e,l)).length?u=!1:(m=this.layer.createQuery(),m.outFields=e,m.returnGeometry=!1),l.suspended&&(u=!1)}catch{u=!1}if(!u&&(c=await this._fetchFeaturesForStats({field:i,valueExpression:n,normalizationField:s,view:r,signal:o},"json"),!c?.length))throw new a("feature-layer-adapter:insufficient-data","No features are available to calculate statistics");return{layerView:l,query:m,featuresJSON:c}}_uvFromGenRenderer(e,t){const a=e.field,r=new _;r.attributeField=a;const i=new S;return i.classificationDefinition=r,this.generateRenderer(i,e.signal).then((e=>{const t={},r=this.getField(a);return e.uniqueValues.forEach((e=>{let a=e.value;null!=a&&""!==a&&("string"!=typeof a||""!==a.trim()&&"<null>"!==a.toLowerCase())||(a=null),null==t[a]?t[a]={count:e.count,data:g(r)&&a?Number(a):a}:t[a].count=t[a].count+e.count})),{count:t}})).then((a=>Z(a,t,e.returnAllCodedValues)))}_getUVQuery(e){const t=e.field,a=e.sqlExpression,r="countOF"+(t||"Expr"),i=new x;i.statisticType="count",i.onStatisticField=a?"1":t,i.outStatisticFieldName=r;const s=this.layer.createQuery();return s.where=M(s.where,e.sqlWhere),s.sqlFormat=a?"standard":null,s.outStatistics=[i],s.groupByFieldsForStatistics=[t||a],s}_uvFromServiceQuery(e,t){return this._isStatsSupportedOnService().then((()=>this.layer.queryFeatures(this._getUVQuery(e),{signal:e.signal}))).then((t=>D(t,this,e.field,e.view,null,e.signal))).then((a=>Z(a,t,e.returnAllCodedValues)))}async _uvFromClientQuery(e,t){const{signal:a}=e,r=this._getUVQuery(e),i=await this.layer.queryFeatures(r,{signal:a}),s=await D(i,this,e.field,e.view,null,a);return Z(s,t,e.returnAllCodedValues)}async _uvFromMemory(e,t){const{view:a,field:r,valueExpression:i,returnAllCodedValues:s,signal:n}=e,{featuresJSON:o,graphics:l,layerView:u,query:m}=await this._processStatsFromMemoryParams(e),c={field:r,valueExpression:i,domain:t,returnAllCodedValues:s};return i&&a&&o&&(c.viewInfoParams=O(a)),!o&&!l&&u&&"queryUniqueValues"in u?u.queryUniqueValues(m,c,{signal:n}):o?this.workerClient.uniqueValues(c,o):T({attribute:c,features:l})}_calcBinsSQL(e,t,a){const r=[],i=t.length;return t.forEach(((t,s)=>{const[n,o]=t;let l=null;l=0!==s||a?s!==i-1||a?M(`${e} >= ${n}`,`${e} ${s===i-1?" <= ":" < "} ${o}`):`${e} >= ${n}`:`${e} < ${o}`,r.push("WHEN ("+l+") THEN "+(s+1))})),["CASE",r.join(" "),"ELSE 0","END"].join(" ")}_getNormalizationTotal(e,t,a){return e&&"percent-of-total"===t?this.summaryStatistics({field:e,signal:a}).then((e=>e.sum)):Promise.resolve(null)}_getQueryParamsForExpr(e,t){const a=e.valueExpression||e.sqlExpression,r=e.signal;if(!a){const{field:a,normalizationType:i,normalizationField:s}=e,n=a?this.getField(a):null,o=w(n),l={field:a,normalizationType:i,normalizationField:s,normalizationTotal:t,layer:this};return{sqlExpression:o?B(this,a):k(l),sqlWhere:o?null:e.sqlWhere||Q({field:a,normalizationType:i,normalizationField:s}),signal:r}}return{valueExpression:e.valueExpression,sqlExpression:e.sqlExpression,sqlWhere:e.sqlWhere,signal:r}}_getDataRange(e,t,a){return null!=t&&null!=a?Promise.resolve({min:t,max:a}):this.summaryStatistics(e).then((e=>({min:e.min,max:e.max})))}_histogramForExpr(e){return this._getNormalizationTotal(e.field,e.normalizationType,e.signal).then((t=>{const a=this._getQueryParamsForExpr(e,t);return this._getDataRange(a,e.minValue,e.maxValue).then((r=>{const{min:i,max:s}=r,n=e.numBins||ie,o=K(i,s,n),l=this._calcBinsSQL(a.sqlExpression,o,null!=e.minValue&&null!=e.maxValue),u=new x({statisticType:"count",outStatisticFieldName:"countOFExpr",onStatisticField:"1"}),m=this.layer.createQuery();return m.where=M(m.where,a.sqlWhere),m.sqlFormat="standard",m.outStatistics=[u],m.groupByFieldsForStatistics=[l],m.orderByFields=[l],this._isStatsSupportedOnService().then((()=>this.layer.queryFeatures(m,{signal:a.signal}))).then((e=>G(e,i,s,n,t)))}))}))}_histogramForField(e){let t=null;return t=null!=e.minValue&&null!=e.maxValue?Promise.resolve({min:e.minValue,max:e.maxValue}):this.summaryStatistics(e).then((e=>{if(!e.count)throw new a("feature-layer-adapter:insufficient-data","Either the layer has no features or none of the features have data for the field");return{min:e.min,max:e.max}})),t.then((t=>this._getBins({min:t.min,max:t.max},e.field,e.numBins,e.view,e.signal)))}_getBins(e,t,a=ie,r,i){const{min:s,max:n,normTotal:o,excludeZerosExpr:l}=e,u=e.intervals||K(s,n,a),m=e.sqlExpr||t;return this._queryBins(u,m,l,r,i).then((e=>({bins:e.map(((e,t)=>({minValue:u[t][0],maxValue:u[t][1],count:e.value}))),minValue:s,maxValue:n,normalizationTotal:o})))}_queryBins(e,t,a,r,i){const s=[],o=e.length;for(let n=0;n<o;n++){const r=M(a,M(t+" >= "+e[n][0],null!==e[n][1]?t+(n===o-1?" <= ":" < ")+e[n][1]:""));s.push(r)}return n(s.map((e=>this.queryFeatureCount({whereClause:e,view:r,signal:i}))))}_binParamsFromGenRend(e,t){const{field:a,normalizationType:r,normalizationField:i,signal:s}=e,n=Q({field:a,normalizationType:r,normalizationField:i}),o=new S({classificationDefinition:X({field:a,normalizationType:r,normalizationField:i,classificationMethod:e.classificationMethod,standardDeviationInterval:e.standardDeviationInterval,breakCount:e.numBins||ie}),where:M(n,t)});return this.generateRenderer(o,s).then((e=>{const{normalizationTotal:t,classBreaks:s}=e;return J({field:a,normalizationType:r,normalizationField:i,normalizationTotal:t,classBreaks:s,where:n,layer:this})}))}async _histogramFromMemory(e){const{view:t,field:a,signal:r}=e,{featuresJSON:i,graphics:s,layerView:n,query:o}=await this._processStatsFromMemoryParams(e),l={field:a,valueExpression:e.valueExpression,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numBins:e.numBins};return e.valueExpression&&t&&i&&(l.viewInfoParams=O(t)),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(l.normalizationTotal=await this._getNormalizationTotalFromMemory(a,{featuresJSON:i,graphics:s,layerView:n,query:o},r)),!i&&!s&&n&&"queryHistogram"in n?n.queryHistogram(o,l,{signal:r}):i?this.workerClient.histogram(l,i):E({attribute:l,features:s})}_classBreaksFromGenRend(e){const{field:t,normalizationType:a,normalizationField:r,normalizationTotal:i,signal:s}=e,n=Q({field:t,normalizationType:a,normalizationField:r}),o=k({field:t,normalizationType:a,normalizationField:r,normalizationTotal:i,layer:this}),l=j(o,e.minValue,e.maxValue),u=X({field:t,normalizationType:a,normalizationField:r,classificationMethod:e.classificationMethod,standardDeviationInterval:e.standardDeviationInterval,breakCount:e.numClasses||re}),m=new S;return m.classificationDefinition=u,m.where=M(n,l),this.generateRenderer(m,s).then((t=>Y(t,e.classificationMethod)))}_classBreaksFromInterpolation(e){const{minValue:t,maxValue:a}=e,r=e.numClasses||re,i=[],s=(a-t)/r;for(let l=0;l<r;l++){const e=t+l*s;i.push({minValue:e,maxValue:e+s})}i[r-1].maxValue=a;const n={classBreaks:i,normalizationTotal:e.normalizationTotal},o=Y(n,e.classificationMethod);return Promise.resolve(o)}async _classBreaksFromMemory(e){const{view:t,field:a,signal:r}=e,{featuresJSON:i,graphics:s,layerView:n,query:o}=await this._processStatsFromMemoryParams(e),l={field:a,valueExpression:e.valueExpression,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numClasses:e.numClasses};return e.valueExpression&&t&&i&&(l.viewInfoParams=O(t)),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(l.normalizationTotal=await this._getNormalizationTotalFromMemory(a,{featuresJSON:i,graphics:s,layerView:n,query:o},r)),!i&&!s&&n&&"queryClassBreaks"in n?n.queryClassBreaks(o,l,{signal:r}):i?this.workerClient.classBreaks(l,i):L({attribute:l,features:s})}async _heatmapStatsFromMemory(e,t){const{blurRadius:r,field:i,view:s,signal:n}=e,o=new v({extent:s.extent,tolerance:"2d"===s.type?s.state.resolution:1}),l=this._quantizeFeatures(e.features||await this._fetchFeaturesForStats({field:i,view:s,returnGeometry:!0,signal:n}),o,s);if(!l||!l.length)return{count:0,min:null,max:null,avg:null,stddev:null};const u=U(l,r,t,i,s.size[0],s.size[1]);if(u)return{count:u.count,min:u.min,max:u.max,avg:u.mean,stddev:u.stdDev};throw new a("feature-layer-adapter:invalid","unable to calculate heatmap statistics")}_quantizeFeatures(e,t,a){const r=c(t),{spatialReference:s,size:n}=a,o=h(s)?d(s):null,l=o?Math.round((o.valid[1]-o.valid[0])/r.scale[0]):null;return e.map((e=>{const t=new te(i(e.geometry));return p(r,t,t,t.hasZ,t.hasM),e.geometry=o?this._wrapPoint(t,l,n[0]):t,e}))}_wrapPoint(e,t,a){return e.x<0?e.x+=t:e.x>a&&(e.x-=t),e}getField(e=""){return this.layer.getField(e)}getFieldUsageInfo(e){return this.getField(e)?{supportsLabelingInfo:!0,supportsRenderer:!0,supportsPopupTemplate:!0,supportsLayerQuery:!0,supportsStatistics:!0}:null}getFieldDomain(e,t){return this.layer.getFieldDomain(e,t)}summaryStatistics(e){const{field:t,normalizationType:r,sqlExpression:i,view:s,features:n,useFeaturesInView:l}=e,u=t?this.getField(t):null,m=w(u),c=e.valueExpression||i,p=c&&!i,h=this._hasLocalSource||n||l,d=s&&"3d"===s.type;if(h||p)return p||n||l||d?this._summaryStatsFromMemory(e,u):this._summaryStatsFromClientQuery(e,m);if(!this.supportsSQLExpression&&(m||c||"natural-log"===r||"square-root"===r))return Promise.reject(new a("feature-layer-adapter:not-supported","Layer does not support standardized SQL expression for queries"));return(r&&!this.supportsSQLExpression?this._summaryStatsFromGenRend(e):this._summaryStatsFromServiceQuery(e,m)).catch((()=>(o(e.signal),this._summaryStatsFromMemory(e,u))))}uniqueValues(e){const{field:t,valueExpression:a,sqlExpression:r,features:i,useFeaturesInView:s,signal:n}=e,l=(t?this.getField(t):null)&&this.getFieldDomain(t),u=a&&(!r||!this.supportsSQLExpression),m=this._hasLocalSource||i||s||u,c=e.view,p=c&&"3d"===c.type;return m?u||i||s||p?this._uvFromMemory(e,l):this._uvFromClientQuery(e,l):this._uvFromServiceQuery(e,l).catch((t=>(o(n),e.field?this._uvFromGenRenderer(e,l):t))).catch((()=>(o(n),p?this._uvFromMemory(e,l):this._uvFromClientQuery(e,l))))}histogram(e){const{field:t,normalizationType:r,normalizationField:i,classificationMethod:s,view:n,signal:o}=e,l=t?this.getField(t):null,u=w(l),m=e.valueExpression||e.sqlExpression,c=m&&!e.sqlExpression,p=this._hasLocalSource||e.features||e.useFeaturesInView||c,h=this.supportsSQLExpression,d=!s||"equal-interval"===s,y=e.minValue,f=e.maxValue,F=null!=y&&null!=f,g=e.numBins||ie;return p?this._histogramFromMemory(e):(m||h)&&d?h||!m&&"natural-log"!==r&&"square-root"!==r?this._histogramForExpr(e):Promise.reject(new a("feature-layer-adapter:not-supported","Layer does not support standardized SQL expression for queries")):u&&d?Promise.reject(new a("feature-layer-adapter:not-supported","Normalization and date field are not allowed when layer does not support standardized SQL expression for queries")):r||!d?this._binParamsFromGenRend(e).then((s=>{if(!F)return this._getBins(s,t,g,n,o);if(y>s.max||f<s.min)throw new a("histogram:insufficient-data","Range defined by 'minValue' and 'maxValue' does not intersect available data range of the field");if(d)return this._getBins({min:y,max:f,sqlExpr:s.sqlExpr,excludeZerosExpr:s.excludeZerosExpr},t,g,n,o);{const a={field:t,normalizationType:r,normalizationField:i,normalizationTotal:s.normTotal,layer:this},l=k(a),u=j(l,y,f);return this._binParamsFromGenRend(e,u).then((e=>this._getBins(e,t,g,n,o)))}})):this._histogramForField(e)}classBreaks(e){const t=!1!==e.analyzeData,a=this._hasLocalSource||e.features||e.useFeaturesInView||e.valueExpression;if(t&&a)return this._classBreaksFromMemory(e);return(t?this._classBreaksFromGenRend(e):this._classBreaksFromInterpolation(e)).catch((()=>(o(e.signal),this._classBreaksFromMemory(e))))}queryFeatureCount(e){if(this._hasLocalSource)return Promise.reject(new a("feature-layer-adapter:not-supported","Layer does not support count query"));const t=this.layer,r=t.createQuery();return r.where=M(r.where,e.whereClause),t.queryFeatureCount(r,{signal:e.signal})}generateRenderer(e,t){const r=this.layer;if(this._hasLocalSource||r.version<10.1)return Promise.reject(new a("feature-layer-adapter:not-supported","Layer does not support generateRenderer operation (requires ArcGIS Server version 10.1+)"));const i=new ee({url:r.parsedUrl.path,source:r.dynamicDataSource,gdbVersion:r.gdbVersion}),s=r.createQuery();return e.where=M(e.where,s.where),i.execute(e,{signal:t})}heatmapStatistics(e){const{field:t,fieldOffset:a,view:r,signal:i}=e;return(t&&null==a?this.summaryStatistics({field:t,view:r,signal:i}):Promise.resolve(null)).then((t=>{let r=a||0;if(t){const{count:e,min:a,max:i}=t;e?a===i&&0===a?r=1:i<=0?r="abs":a<0&&(r=-1.01*a):r=1}return this._heatmapStatsFromMemory(e,r).then((e=>({...e,summaryStatistics:t,fieldOffset:r})))}))}async predominantCategories(e){if(!this._hasLocalSource&&!this.supportsSQLExpression)throw new a("feature-layer-adapter:not-supported","Layer does not support advanced SQL expressions and standardized queries");const{fields:t,view:r,signal:i}=e,s=z(t),n=q(t),o=r&&this._hasLocalSource?await this._uvFromMemory({valueExpression:s,view:r,signal:i}):await this._uvFromServiceQuery({sqlExpression:n.expression,valueExpression:s,signal:i});return A(o.uniqueValueInfos,t)}async getSampleFeatures(e,a){const{view:r,sampleSize:i,requiredFields:s,returnGeometry:n,signal:l}=e,u=this.layer.createQuery(),m=1,c="json"===a;u.outSpatialReference=e.spatialReference||r&&r.spatialReference,u.returnGeometry=!!n,u.outFields=s;let p=[],h=!1;if(r)try{const e=await r.whenLayerView(this.layer);if(h=!(await R(this,s,e)).length,h&&(p=await this._fetchFeaturesFromMemory(e,u,l,a),p.length&&i>0&&i<=p.length))return t(p,i,m)}catch(d){o(l)}try{if(this._hasLocalSource)return h?p:c?this._fetchFeaturesJSONFromService(u,l):this._fetchFeaturesFromService(u,l);const a=await this.queryFeatureCount({view:r,signal:l}),s=this.layer.capabilities.query.maxRecordCount;let n=-1===i?a:i;if(n=s&&n>s?s:n,a<=p.length||p.length>=s)return p;const o=r.extent.width/r.width/r.scale*ne;if(u.maxAllowableOffset=e.resolution||o,a<=n)return c?this._fetchFeaturesJSONFromService(u,l):this._fetchFeaturesFromService(u,l);if(a<=se){const e=await this.layer.queryObjectIds();return u.objectIds=t(e,n,m),c?this._fetchFeaturesJSONFromService(u,l):this._fetchFeaturesFromService(u,l)}return this.layer.get("capabilities.query.supportsPagination")&&(u.num=Math.min(n,se)),c?this._fetchFeaturesJSONFromService(u,l):this._fetchFeaturesFromService(u,l)}catch(d){return o(l),p}}load(e){const t=this.layer.load(e).then((async t=>{this.geometryType=t.geometryType,this.objectIdField=t.objectIdField,this.supportsSQLExpression=t.get("capabilities.query.supportsSqlExpression"),this._hasLocalSource=!t.url&&!!t.source,this.hasQueryEngine=this._hasLocalSource,this.minScale=t.minScale,this.maxScale=t.maxScale,this.fullExtent=t.fullExtent,this.workerClient=C.getInstance(),await this.workerClient.open(i(i(e).signal))}));return this.addResolvingPromise(t),Promise.resolve(this)}};e([u({constructOnly:!0})],oe.prototype,"layer",void 0),oe=e([m("esri.smartMapping.support.adapters.FeatureLayerAdapter")],oe);const le=oe;export{le as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../chunks/tslib.es6.js";import{pickRandom as t}from"../../../core/arrayUtils.js";import r from"../../../core/Error.js";import{unwrap as s}from"../../../core/maybe.js";import{whenOnce as a}from"../../../core/reactiveUtils.js";import"../../../core/Logger.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/has.js";import"../../../core/accessorSupport/set.js";import{subclass as i}from"../../../core/accessorSupport/decorators/subclass.js";import{isDateField as o}from"../../../layers/support/fieldUtils.js";import{getArcadeForPredominantCategory as n}from"../../statistics/support/predominanceUtils.js";import{mergeWhereClauses as u}from"../../statistics/support/utils.js";import{WorkerClient as p}from"../../statistics/support/WorkerClient.js";import l from"./FeatureLayerAdapter.js";import{getSummaryStatisticsFromFeatureSet as c,getUniqueValuesFromFeatureSet as d,getPredominantCategoriesFromUVInfos as m,getMissingFields as y}from"./support/utils.js";import{processSummaryStatisticsResult as f,createUVResult as h}from"../../../statistics/utils.js";let w=class extends l{constructor(e){super(e)}async _waitForLayerViewUpdate(e){if(!e)throw new r("ogc-feature-layer-adapter:insufficient-data","layerView is required to fetch the features");await a((()=>!e.updating))}async _summaryStatsFromClientQuery(e,t){const{signal:i,view:o}=e;if(!o)throw new r("ogc-feature-layer-adapter:insufficient-data","view is required to fetch the features from layerView");const n=this._getSummaryStatsQuery(e,t),u=await o.whenLayerView(this.layer);await a((()=>!u.updating),s(i));const p=await u.queryFeatures(n,{signal:i}),l=c(p,t);return f(l)}async _uvFromClientQuery(e,t){const{signal:i,view:o}=e;if(!o)throw new r("ogc-feature-layer-adapter:insufficient-data","view is required to fetch the features from layerView");const n=this._getUVQuery(e),u=await o.whenLayerView(this.layer);await a((()=>!u.updating),s(i));const p=await u.queryFeatures(n,{signal:i}),l=await d(p,this,e.field,e.view,null,i);return h(l,t,e.returnAllCodedValues)}summaryStatistics(e){const{field:t,valueExpression:s,sqlExpression:a,features:i,view:n}=e,u=t?this.getField(t):null,p=o(u),l=!!s,c="3d"===
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import{pickRandom as t}from"../../../core/arrayUtils.js";import r from"../../../core/Error.js";import{unwrap as s}from"../../../core/maybe.js";import{whenOnce as a}from"../../../core/reactiveUtils.js";import"../../../core/Logger.js";import"../../../core/accessorSupport/ensureType.js";import"../../../core/has.js";import"../../../core/accessorSupport/set.js";import{subclass as i}from"../../../core/accessorSupport/decorators/subclass.js";import{isDateField as o}from"../../../layers/support/fieldUtils.js";import{getArcadeForPredominantCategory as n}from"../../statistics/support/predominanceUtils.js";import{mergeWhereClauses as u}from"../../statistics/support/utils.js";import{WorkerClient as p}from"../../statistics/support/WorkerClient.js";import l from"./FeatureLayerAdapter.js";import{getSummaryStatisticsFromFeatureSet as c,getUniqueValuesFromFeatureSet as d,getPredominantCategoriesFromUVInfos as m,getMissingFields as y}from"./support/utils.js";import{processSummaryStatisticsResult as f,createUVResult as h}from"../../../statistics/utils.js";let w=class extends l{constructor(e){super(e)}async _waitForLayerViewUpdate(e){if(!e)throw new r("ogc-feature-layer-adapter:insufficient-data","layerView is required to fetch the features");await a((()=>!e.updating))}async _summaryStatsFromClientQuery(e,t){const{signal:i,view:o}=e;if(!o)throw new r("ogc-feature-layer-adapter:insufficient-data","view is required to fetch the features from layerView");const n=this._getSummaryStatsQuery(e,t),u=await o.whenLayerView(this.layer);await a((()=>!u.updating),s(i));const p=await u.queryFeatures(n,{signal:i}),l=c(p,t);return f(l)}async _uvFromClientQuery(e,t){const{signal:i,view:o}=e;if(!o)throw new r("ogc-feature-layer-adapter:insufficient-data","view is required to fetch the features from layerView");const n=this._getUVQuery(e),u=await o.whenLayerView(this.layer);await a((()=>!u.updating),s(i));const p=await u.queryFeatures(n,{signal:i}),l=await d(p,this,e.field,e.view,null,i);return h(l,t,e.returnAllCodedValues)}summaryStatistics(e){const{field:t,valueExpression:s,sqlExpression:a,features:i,view:n}=e,u=t?this.getField(t):null,p=o(u),l=!!s,c="3d"===n?.type;if(!s&&a&&!this.supportsSQLExpression)throw new r("ogc-feature-layer-adapter:not-supported","Layer does not support standardized SQL expression for queries");return l||i||c?this._summaryStatsFromMemory(e,u):this._summaryStatsFromClientQuery(e,p)}uniqueValues(e){const{field:t,valueExpression:s,sqlExpression:a,features:i,view:o}=e,n=(t?this.getField(t):null)&&this.getFieldDomain(t),u=!!s,p="3d"===o?.type;if(!s&&a&&!this.supportsSQLExpression)throw new r("ogc-feature-layer-adapter:not-supported","Layer does not support standardized SQL expression for queries");return u||i||p?this._uvFromMemory(e,n):this._uvFromClientQuery(e,n)}histogram(e){const{features:t,valueExpression:s,normalizationType:a,sqlExpression:i}=e,o=t||!!s;if(!s&&i&&!this.supportsSQLExpression)throw new r("ogc-feature-layer-adapter:not-supported","Layer does not support standardized SQL expression for queries");return o||a?this._histogramFromMemory(e):this._histogramForField(e)}classBreaks(e){return!1!==e.analyzeData?this._classBreaksFromMemory(e):this._classBreaksFromInterpolation(e)}async queryFeatureCount(e){const{whereClause:t,view:i,signal:o}=e;if(!i)throw new r("ogc-feature-layer-adapter:insufficient-data","view is required to fetch the features from layerView");const n=this.layer.createQuery();n.where=u(n.where,t);const p=await i.whenLayerView(this.layer);return await a((()=>!p.updating),s(o)),p.queryFeatureCount(n,{signal:o})}generateRenderer(e,t){throw new r("ogc-feature-layer-adapter:not-supported","OGCFeatureLayer does not support generateRenderer operation")}async predominantCategories(e){const{fields:t,view:r,signal:s}=e,a=n(t),i=await this._uvFromMemory({valueExpression:a,view:r,signal:s});return m(i.uniqueValueInfos,t)}async getSampleFeatures(e,s){const{view:a,sampleSize:i,requiredFields:o,returnGeometry:n,signal:u}=e,p=this.layer.createQuery(),l=1;if(p.outSpatialReference=e.spatialReference||a&&a.spatialReference,p.returnGeometry=!!n,p.outFields=o,!a)throw new r("ogc-feature-layer-adapter:not-supported","view is required to get sample features for OGCFeatureLayer");const c=await a.whenLayerView(this.layer);if((await y(this,o,c)).length)throw new r("ogc-feature-layer-adapter:not-supported","Required fields need to be passed in the outFields for OGCFeatureLayer");const d=await this._fetchFeaturesFromMemory(c,p,u,s);return t(d,i>0&&i<=d.length?i:d.length,l)}load(e){const t=this.layer.load(e).then((async t=>{this.geometryType=t.geometryType,this.objectIdField=t.objectIdField,this.supportsSQLExpression=t.get("capabilities.query.supportsSqlExpression"),this.minScale=t.minScale,this.maxScale=t.maxScale,this.fullExtent=t.fullExtent,this.workerClient=p.getInstance(),await this.workerClient.open(s(s(e).signal))}));return this.addResolvingPromise(t),Promise.resolve(this)}};w=e([i("esri.smartMapping.support.adapters.OGCFeatureLayerAdapter")],w);const g=w;export{g as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Graphic.js";import{pickRandom as a}from"../../../core/arrayUtils.js";import r from"../../../core/Error.js";import{unwrap as s,isSome as i}from"../../../core/maybe.js";import{timeout as o,throwIfAborted as n}from"../../../core/promiseUtils.js";import{whenOnce as l}from"../../../core/reactiveUtils.js";import{property as u}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as m}from"../../../core/accessorSupport/decorators/subclass.js";import{kebabDict as p}from"../../../layers/support/fieldType.js";import{isNumericField as c,isDateField as d}from"../../../layers/support/fieldUtils.js";import h from"../../../rest/support/FeatureSet.js";import{summaryStatistics as y,uniqueValues as f,classBreaks as g,histogram as F}from"../../statistics/support/statsWorker.js";import{WorkerClient as w}from"../../statistics/support/WorkerClient.js";import{getFieldsList as _}from"../utils.js";import S from"./FeatureLayerAdapter.js";import v from"./LayerAdapter.js";import{getMissingFields as x,ensureFeaturesJSON as L,getViewInfoParams as C,getUniqueValuesFromFeatureSet as E,getHistogramFromFeatureSet as z}from"./support/utils.js";import{createUVResult as T}from"../../../statistics/utils.js";let A=class extends v{constructor(e){super(e)}destroy(){var e;this._featureLayerAdapter=null,null==(e=this.workerClient)||e.destroy()}_hasCachedStatistics(e){return this.layer.hasCachedStatistics(e)}_updateQuery(e,t=[],a=[]){if(!a.length)return e;const r=this.layer.objectIdField,s=e.clone(),i=t.filter((e=>{const t=this.layer.getField(e);return!a.includes(t.name)})),o=i.some((e=>this.layer.getField(e).name===r));return s.outFields=o?i:[...i,r],s}async _fetchFeaturesFromMemory(e,t,a){if(!e)throw new r("scene-layer-adapter:insufficient-data","view is required to fetch the features from layerView");const s=await e.whenLayerView(this.layer),i=new AbortController,u=i.signal,m=l((()=>!s.updating),u);await o(m,5e3,i);const p=await x(this,a,s);n(u);const c=this._updateQuery(t,a,p),d=await s.queryFeatures(c,{signal:u});n(u);const h=d.features;return p.length?s.whenGraphicAttributes(h,p):h}async _fetchFeaturesJSONFromMemory(e,t,a){return this._fetchFeaturesFromMemory(e,t,a).then(L)}_fetchFeaturesForStats(e,t){return _({field:e.field,normalizationField:e.normalizationField,valueExpression:e.valueExpression}).then((a=>this.getSampleFeatures({sampleSize:-1,view:e.view,returnGeometry:e.returnGeometry,requiredFields:a,signal:e.signal},t)))}async _processStatsFromMemoryParams(e){const t=e.features;if(null!=t&&t.length){return t.length&&"declaredClass"in t[0]&&"esri.Graphic"===t[0].declaredClass?{graphics:t}:{featuresJSON:t}}const{view:a,field:s,normalizationField:i,valueExpression:o,signal:n}=e,l=await this._fetchFeaturesForStats({field:s,valueExpression:o,normalizationField:i,view:a,signal:n});if(null==l||!l.length)throw new r("scene-layer-adapter:insufficient-data","No features are available to calculate statistics");return{graphics:l}}_generateFeatureSetForCachedHistogram(e,a=e.minimum,r=e.maximum,s){const i=[];for(let t=0;t<s;t++)i[t]=0;const o=e.counts.length,n=e.minimum,l=e.maximum;for(let t=0;t<o;t++){const u=(t+.5)/o,m=((1-u)*n+u*l-a)/(r-a)*s;m>=0&&m<=s&&(i[m===s?s-1:Math.floor(m)]+=e.counts[t])}const u=[];i.forEach(((e,a)=>{const r=new t({attributes:{}});r.attributes.EXPR_1=a+1,r.attributes.countOFExpr=e,u.push(r)}));const m=new h;return m.features=u,m}_getCachedStatistics(e,t){const a=this.layer;return e.valueExpression||e.sqlExpression||e.sqlWhere||e.minValue||e.maxValue?Promise.reject(new r("scene-layer-adapter:not-supported","This Layer does not support calculating statistics when 'valueExpression', 'sqlExpression', 'sqlWhere', 'minValue' or 'maxValue' is specified")):a.queryCachedStatistics(t&&t.name,{signal:e.signal}).then((e=>{const t=e.stats,{min:a,max:r,totalValuesCount:s}=t;let{avg:i,stddev:o,sum:n,variance:l,count:u}=t;return 0===a&&0===r||(i=0===i?null:i,n=0===n?null:n,o=0===o?null:o,l=0===l?null:l,u=0===u?null:u),null==u&&(null!=n&&null!=i?u=Math.round(n/i):null!=s&&(u=s)),{avg:i,count:u,max:r,min:a,stddev:o,sum:n,variance:l}}))}async _getNormalizationTotal(e,t,a){const s=(t?await this.workerClient.summaryStatistics({field:e},t):await y({attribute:{field:e},features:a})).sum;if(null==s)throw new r("scene-layer-adapter:invalid","invalid normalizationTotal");return s}async _getSummaryStatisticsFromMemory(e,t){const{view:a,field:r,normalizationField:s,valueExpression:i}=e,{featuresJSON:o,graphics:n}=await this._processStatsFromMemoryParams(e),l={field:r,valueExpression:i,normalizationType:e.normalizationType,normalizationField:s,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue};return e.valueExpression&&a&&o&&(l.fieldType=null!=t&&t.type?p.toJSON(t.type):null,l.viewInfoParams=C(a)),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(l.normalizationTotal=await this._getNormalizationTotal(r,o,n)),o?this.workerClient.summaryStatistics(l,o):y({attribute:l,features:n})}_getCachedStatisticsForUniqueValues(e,a){const s=this.layer,i=a&&a.name,o=a&&this.getFieldDomain(e.field);return e.valueExpression||e.sqlExpression||e.sqlWhere?Promise.reject(new r("scene-layer-adapter:not-supported","This Layer does not support calculating statistics when 'valueExpression', 'sqlExpression' or 'sqlWhere' is specified")):s.queryCachedStatistics(i,{signal:e.signal}).then((r=>{const o=r.stats;if(!o.mostFrequentValues)throw new Error;const n=r.labels&&r.labels.labels,l={},u=[],m="countOF"+i;o.mostFrequentValues.forEach((e=>{const r=new t({attributes:{}});r.attributes[i]=a&&a.name!==s.objectIdField&&(c(a)||d(a))?Number(e.value):e.value,r.attributes[m]=e.count,u.push(r)})),n&&n.forEach((e=>{l[e.value]=e.label}));const p=new h;return p.features=u,E(p,this,e.field,e.view,l,e.signal)})).then((t=>T(t,o,e.returnAllCodedValues)))}async _getUniqueValuesFromMemory(e,t){const a=t&&this.getFieldDomain(e.field),{view:r,field:s,valueExpression:i,returnAllCodedValues:o}=e,n={field:s,valueExpression:i,domain:a,returnAllCodedValues:o},{featuresJSON:l,graphics:u}=await this._processStatsFromMemoryParams(e);return e.valueExpression&&r&&l&&(n.viewInfoParams=C(r)),l?this.workerClient.uniqueValues(n,l):f({attribute:n,features:u})}_getCachedStatisticsForHistogram(e,t){const a=this.layer;return e.valueExpression||e.sqlExpression||e.sqlWhere||e.normalizationType?Promise.reject(new r("scene-layer-adapter:not-supported","This Layer does not support calculating statistics when 'valueExpression' or 'sqlExpression' or 'sqlWhere' or 'normalizationType' is specified")):a.queryCachedStatistics(t&&t.name,{signal:e.signal}).then((t=>{const a=t.stats,{minValue:r,maxValue:s}=e,i=null!=r?r:a.min,o=null!=s?s:a.max,n=e.numBins||10,l=this._generateFeatureSetForCachedHistogram(a.histogram,i,o,n);return z(l,i,o,n)}))}async _getClassBreaksFromMemory(e){const{view:t,field:a,normalizationField:r,valueExpression:s}=e,{featuresJSON:i,graphics:o}=await this._processStatsFromMemoryParams(e),n={field:a,valueExpression:s,normalizationType:e.normalizationType,normalizationField:r,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numClasses:e.numClasses};return e.valueExpression&&t&&i&&(n.viewInfoParams=C(t)),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(n.normalizationTotal=await this._getNormalizationTotal(a,i,o)),i?this.workerClient.classBreaks(n,i):g({attribute:n,features:o})}async _getHistogramFromMemory(e){const{view:t,field:a}=e,{featuresJSON:r,graphics:s}=await this._processStatsFromMemoryParams(e),i={field:a,valueExpression:e.valueExpression,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numBins:e.numBins};return e.valueExpression&&t&&r&&(i.viewInfoParams=C(t)),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(i.normalizationTotal=await this._getNormalizationTotal(a,r,s)),r?this.workerClient.histogram(i,r):F({attribute:i,features:s})}getField(e=""){return this.layer.getField(e)}getFieldUsageInfo(e){const t=this.getField(e);if(!t)return null;const a=this.layer.getFieldUsageInfo(t.name);return{supportsLabelingInfo:a.supportsLabelingInfo,supportsPopupTemplate:a.supportsPopupTemplate,supportsRenderer:a.supportsRenderer,supportsLayerQuery:a.supportsLayerQuery,supportsStatistics:!0}}getFieldDomain(e,t){return this._featureLayerAdapter?this._featureLayerAdapter.getFieldDomain(e,t):null}summaryStatistics(e){const t=this.getField(e.field);return this._featureLayerAdapter?this._featureLayerAdapter.summaryStatistics(e):this._hasCachedStatistics(t&&t.name)?this._getCachedStatistics(e,t).catch((()=>(n(e.signal),this._getSummaryStatisticsFromMemory(e,t)))):this._getSummaryStatisticsFromMemory(e,t)}uniqueValues(e){const t=this.getField(e.field);return this._featureLayerAdapter?this._featureLayerAdapter.uniqueValues(e):this._hasCachedStatistics(t&&t.name)?this._getCachedStatisticsForUniqueValues(e,t).catch((()=>(n(e.signal),this._getUniqueValuesFromMemory(e,t)))):this._getUniqueValuesFromMemory(e,t)}histogram(e){const t=this.getField(e.field);return this._featureLayerAdapter?this._featureLayerAdapter.histogram(e):this._hasCachedStatistics(t&&t.name)?this._getCachedStatisticsForHistogram(e,t).catch((()=>(n(e.signal),this._getHistogramFromMemory(e)))):this._getHistogramFromMemory(e)}classBreaks(e){const t=this.getField(e.field);return this._featureLayerAdapter?this._featureLayerAdapter.classBreaks(e):this._hasCachedStatistics(t&&t.name)?Promise.reject(new r("scene-layer-adapter:not-supported","Cached stats not supported")):this._getClassBreaksFromMemory(e)}queryFeatureCount(e){return this._featureLayerAdapter?this._featureLayerAdapter.queryFeatureCount(e):Promise.reject(new r("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support count query"))}generateRenderer(e,t){return this._featureLayerAdapter?this._featureLayerAdapter.generateRenderer(e,t):Promise.reject(new r("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support generateRenderer operation"))}heatmapStatistics(e){return this._featureLayerAdapter?this._featureLayerAdapter.heatmapStatistics(e):Promise.reject(new r("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support heatmapStatistics operation"))}async predominantCategories(e){if(this._featureLayerAdapter)return this._featureLayerAdapter.predominantCategories(e);throw new r("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support predominantCategories")}async getSampleFeatures(e,t){const{view:r,sampleSize:s,requiredFields:i,returnGeometry:o,signal:l}=e,u=1,m="json"===t,p=this.layer.createQuery();p.outFields=i,p.returnGeometry=!!o,p.where=null,p.num=s;let c=[];try{if(c=m?await this._fetchFeaturesJSONFromMemory(r,p,i):await this._fetchFeaturesFromMemory(r,p,i),c.length&&s>0&&s<=c.length)return a(c,s,u)}catch(h){n(l)}let d=null;if(this._featureLayerAdapter){const a={...e};delete a.view,d=await this._featureLayerAdapter.getSampleFeatures(a,t)}return d&&d.length?d:a(c,c.length,u)}load(e){const t=this.layer.load(e).then((async t=>{this.workerClient=w.getInstance(),await this.workerClient.open(s(s(e).signal));const a=t.associatedLayer;if(this.geometryType=t.geometryType,i(a)){this._featureLayerAdapter=new S({layer:a});return this._featureLayerAdapter.load(e).then((()=>{this.objectIdField=this._featureLayerAdapter.objectIdField,this.supportsSQLExpression=this._featureLayerAdapter.supportsSQLExpression,this.minScale=this._featureLayerAdapter.minScale,this.maxScale=this._featureLayerAdapter.maxScale,this.fullExtent=this._featureLayerAdapter.fullExtent}))}this.objectIdField=t.objectIdField,this.supportsSQLExpression=!1,this.hasQueryEngine=!1,this.fullExtent=t.fullExtent}));return this.addResolvingPromise(t),Promise.resolve(this)}};e([u({constructOnly:!0})],A.prototype,"layer",void 0),A=e([m("esri.smartMapping.support.adapters.SceneLayerAdapter")],A);const j=A;export{j as default};
|
|
5
|
+
import{_ as e}from"../../../chunks/tslib.es6.js";import t from"../../../Graphic.js";import{pickRandom as a}from"../../../core/arrayUtils.js";import r from"../../../core/Error.js";import{unwrap as s,isSome as i}from"../../../core/maybe.js";import{timeout as o,throwIfAborted as n}from"../../../core/promiseUtils.js";import{whenOnce as l}from"../../../core/reactiveUtils.js";import{property as u}from"../../../core/accessorSupport/decorators/property.js";import"../../../core/has.js";import"../../../core/accessorSupport/ensureType.js";import{subclass as m}from"../../../core/accessorSupport/decorators/subclass.js";import{kebabDict as p}from"../../../layers/support/fieldType.js";import{isNumericField as c,isDateField as d}from"../../../layers/support/fieldUtils.js";import h from"../../../rest/support/FeatureSet.js";import{summaryStatistics as y,uniqueValues as f,classBreaks as g,histogram as F}from"../../statistics/support/statsWorker.js";import{WorkerClient as w}from"../../statistics/support/WorkerClient.js";import{getFieldsList as _}from"../utils.js";import S from"./FeatureLayerAdapter.js";import v from"./LayerAdapter.js";import{getMissingFields as x,ensureFeaturesJSON as L,getViewInfoParams as C,getUniqueValuesFromFeatureSet as E,getHistogramFromFeatureSet as z}from"./support/utils.js";import{createUVResult as T}from"../../../statistics/utils.js";let A=class extends v{constructor(e){super(e)}destroy(){this._featureLayerAdapter=null,this.workerClient?.destroy()}_hasCachedStatistics(e){return this.layer.hasCachedStatistics(e)}_updateQuery(e,t=[],a=[]){if(!a.length)return e;const r=this.layer.objectIdField,s=e.clone(),i=t.filter((e=>{const t=this.layer.getField(e);return!a.includes(t.name)})),o=i.some((e=>this.layer.getField(e).name===r));return s.outFields=o?i:[...i,r],s}async _fetchFeaturesFromMemory(e,t,a){if(!e)throw new r("scene-layer-adapter:insufficient-data","view is required to fetch the features from layerView");const s=await e.whenLayerView(this.layer),i=new AbortController,u=i.signal,m=l((()=>!s.updating),u);await o(m,5e3,i);const p=await x(this,a,s);n(u);const c=this._updateQuery(t,a,p),d=await s.queryFeatures(c,{signal:u});n(u);const h=d.features;return p.length?s.whenGraphicAttributes(h,p):h}async _fetchFeaturesJSONFromMemory(e,t,a){return this._fetchFeaturesFromMemory(e,t,a).then(L)}_fetchFeaturesForStats(e,t){return _({field:e.field,normalizationField:e.normalizationField,valueExpression:e.valueExpression}).then((a=>this.getSampleFeatures({sampleSize:-1,view:e.view,returnGeometry:e.returnGeometry,requiredFields:a,signal:e.signal},t)))}async _processStatsFromMemoryParams(e){const t=e.features;if(t?.length){return t.length&&"declaredClass"in t[0]&&"esri.Graphic"===t[0].declaredClass?{graphics:t}:{featuresJSON:t}}const{view:a,field:s,normalizationField:i,valueExpression:o,signal:n}=e,l=await this._fetchFeaturesForStats({field:s,valueExpression:o,normalizationField:i,view:a,signal:n});if(!l?.length)throw new r("scene-layer-adapter:insufficient-data","No features are available to calculate statistics");return{graphics:l}}_generateFeatureSetForCachedHistogram(e,a=e.minimum,r=e.maximum,s){const i=[];for(let t=0;t<s;t++)i[t]=0;const o=e.counts.length,n=e.minimum,l=e.maximum;for(let t=0;t<o;t++){const u=(t+.5)/o,m=((1-u)*n+u*l-a)/(r-a)*s;m>=0&&m<=s&&(i[m===s?s-1:Math.floor(m)]+=e.counts[t])}const u=[];i.forEach(((e,a)=>{const r=new t({attributes:{}});r.attributes.EXPR_1=a+1,r.attributes.countOFExpr=e,u.push(r)}));const m=new h;return m.features=u,m}_getCachedStatistics(e,t){const a=this.layer;return e.valueExpression||e.sqlExpression||e.sqlWhere||e.minValue||e.maxValue?Promise.reject(new r("scene-layer-adapter:not-supported","This Layer does not support calculating statistics when 'valueExpression', 'sqlExpression', 'sqlWhere', 'minValue' or 'maxValue' is specified")):a.queryCachedStatistics(t&&t.name,{signal:e.signal}).then((e=>{const t=e.stats,{min:a,max:r,totalValuesCount:s}=t;let{avg:i,stddev:o,sum:n,variance:l,count:u}=t;return 0===a&&0===r||(i=0===i?null:i,n=0===n?null:n,o=0===o?null:o,l=0===l?null:l,u=0===u?null:u),null==u&&(null!=n&&null!=i?u=Math.round(n/i):null!=s&&(u=s)),{avg:i,count:u,max:r,min:a,stddev:o,sum:n,variance:l}}))}async _getNormalizationTotal(e,t,a){const s=(t?await this.workerClient.summaryStatistics({field:e},t):await y({attribute:{field:e},features:a})).sum;if(null==s)throw new r("scene-layer-adapter:invalid","invalid normalizationTotal");return s}async _getSummaryStatisticsFromMemory(e,t){const{view:a,field:r,normalizationField:s,valueExpression:i}=e,{featuresJSON:o,graphics:n}=await this._processStatsFromMemoryParams(e),l={field:r,valueExpression:i,normalizationType:e.normalizationType,normalizationField:s,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue};return e.valueExpression&&a&&o&&(l.fieldType=t?.type?p.toJSON(t.type):null,l.viewInfoParams=C(a)),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(l.normalizationTotal=await this._getNormalizationTotal(r,o,n)),o?this.workerClient.summaryStatistics(l,o):y({attribute:l,features:n})}_getCachedStatisticsForUniqueValues(e,a){const s=this.layer,i=a&&a.name,o=a&&this.getFieldDomain(e.field);return e.valueExpression||e.sqlExpression||e.sqlWhere?Promise.reject(new r("scene-layer-adapter:not-supported","This Layer does not support calculating statistics when 'valueExpression', 'sqlExpression' or 'sqlWhere' is specified")):s.queryCachedStatistics(i,{signal:e.signal}).then((r=>{const o=r.stats;if(!o.mostFrequentValues)throw new Error;const n=r.labels&&r.labels.labels,l={},u=[],m="countOF"+i;o.mostFrequentValues.forEach((e=>{const r=new t({attributes:{}});r.attributes[i]=a&&a.name!==s.objectIdField&&(c(a)||d(a))?Number(e.value):e.value,r.attributes[m]=e.count,u.push(r)})),n&&n.forEach((e=>{l[e.value]=e.label}));const p=new h;return p.features=u,E(p,this,e.field,e.view,l,e.signal)})).then((t=>T(t,o,e.returnAllCodedValues)))}async _getUniqueValuesFromMemory(e,t){const a=t&&this.getFieldDomain(e.field),{view:r,field:s,valueExpression:i,returnAllCodedValues:o}=e,n={field:s,valueExpression:i,domain:a,returnAllCodedValues:o},{featuresJSON:l,graphics:u}=await this._processStatsFromMemoryParams(e);return e.valueExpression&&r&&l&&(n.viewInfoParams=C(r)),l?this.workerClient.uniqueValues(n,l):f({attribute:n,features:u})}_getCachedStatisticsForHistogram(e,t){const a=this.layer;return e.valueExpression||e.sqlExpression||e.sqlWhere||e.normalizationType?Promise.reject(new r("scene-layer-adapter:not-supported","This Layer does not support calculating statistics when 'valueExpression' or 'sqlExpression' or 'sqlWhere' or 'normalizationType' is specified")):a.queryCachedStatistics(t&&t.name,{signal:e.signal}).then((t=>{const a=t.stats,{minValue:r,maxValue:s}=e,i=null!=r?r:a.min,o=null!=s?s:a.max,n=e.numBins||10,l=this._generateFeatureSetForCachedHistogram(a.histogram,i,o,n);return z(l,i,o,n)}))}async _getClassBreaksFromMemory(e){const{view:t,field:a,normalizationField:r,valueExpression:s}=e,{featuresJSON:i,graphics:o}=await this._processStatsFromMemoryParams(e),n={field:a,valueExpression:s,normalizationType:e.normalizationType,normalizationField:r,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numClasses:e.numClasses};return e.valueExpression&&t&&i&&(n.viewInfoParams=C(t)),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(n.normalizationTotal=await this._getNormalizationTotal(a,i,o)),i?this.workerClient.classBreaks(n,i):g({attribute:n,features:o})}async _getHistogramFromMemory(e){const{view:t,field:a}=e,{featuresJSON:r,graphics:s}=await this._processStatsFromMemoryParams(e),i={field:a,valueExpression:e.valueExpression,normalizationType:e.normalizationType,normalizationField:e.normalizationField,normalizationTotal:e.normalizationTotal,minValue:e.minValue,maxValue:e.maxValue,standardDeviationInterval:e.standardDeviationInterval,classificationMethod:e.classificationMethod,numBins:e.numBins};return e.valueExpression&&t&&r&&(i.viewInfoParams=C(t)),"percent-of-total"===e.normalizationType&&null==e.normalizationTotal&&(i.normalizationTotal=await this._getNormalizationTotal(a,r,s)),r?this.workerClient.histogram(i,r):F({attribute:i,features:s})}getField(e=""){return this.layer.getField(e)}getFieldUsageInfo(e){const t=this.getField(e);if(!t)return null;const a=this.layer.getFieldUsageInfo(t.name);return{supportsLabelingInfo:a.supportsLabelingInfo,supportsPopupTemplate:a.supportsPopupTemplate,supportsRenderer:a.supportsRenderer,supportsLayerQuery:a.supportsLayerQuery,supportsStatistics:!0}}getFieldDomain(e,t){return this._featureLayerAdapter?this._featureLayerAdapter.getFieldDomain(e,t):null}summaryStatistics(e){const t=this.getField(e.field);return this._featureLayerAdapter?this._featureLayerAdapter.summaryStatistics(e):this._hasCachedStatistics(t&&t.name)?this._getCachedStatistics(e,t).catch((()=>(n(e.signal),this._getSummaryStatisticsFromMemory(e,t)))):this._getSummaryStatisticsFromMemory(e,t)}uniqueValues(e){const t=this.getField(e.field);return this._featureLayerAdapter?this._featureLayerAdapter.uniqueValues(e):this._hasCachedStatistics(t&&t.name)?this._getCachedStatisticsForUniqueValues(e,t).catch((()=>(n(e.signal),this._getUniqueValuesFromMemory(e,t)))):this._getUniqueValuesFromMemory(e,t)}histogram(e){const t=this.getField(e.field);return this._featureLayerAdapter?this._featureLayerAdapter.histogram(e):this._hasCachedStatistics(t&&t.name)?this._getCachedStatisticsForHistogram(e,t).catch((()=>(n(e.signal),this._getHistogramFromMemory(e)))):this._getHistogramFromMemory(e)}classBreaks(e){const t=this.getField(e.field);return this._featureLayerAdapter?this._featureLayerAdapter.classBreaks(e):this._hasCachedStatistics(t&&t.name)?Promise.reject(new r("scene-layer-adapter:not-supported","Cached stats not supported")):this._getClassBreaksFromMemory(e)}queryFeatureCount(e){return this._featureLayerAdapter?this._featureLayerAdapter.queryFeatureCount(e):Promise.reject(new r("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support count query"))}generateRenderer(e,t){return this._featureLayerAdapter?this._featureLayerAdapter.generateRenderer(e,t):Promise.reject(new r("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support generateRenderer operation"))}heatmapStatistics(e){return this._featureLayerAdapter?this._featureLayerAdapter.heatmapStatistics(e):Promise.reject(new r("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support heatmapStatistics operation"))}async predominantCategories(e){if(this._featureLayerAdapter)return this._featureLayerAdapter.predominantCategories(e);throw new r("scene-layer-adapter:not-supported","SceneLayer without associated FeatureLayer does not support predominantCategories")}async getSampleFeatures(e,t){const{view:r,sampleSize:s,requiredFields:i,returnGeometry:o,signal:l}=e,u=1,m="json"===t,p=this.layer.createQuery();p.outFields=i,p.returnGeometry=!!o,p.where=null,p.num=s;let c=[];try{if(c=m?await this._fetchFeaturesJSONFromMemory(r,p,i):await this._fetchFeaturesFromMemory(r,p,i),c.length&&s>0&&s<=c.length)return a(c,s,u)}catch(h){n(l)}let d=null;if(this._featureLayerAdapter){const a={...e};delete a.view,d=await this._featureLayerAdapter.getSampleFeatures(a,t)}return d&&d.length?d:a(c,c.length,u)}load(e){const t=this.layer.load(e).then((async t=>{this.workerClient=w.getInstance(),await this.workerClient.open(s(s(e).signal));const a=t.associatedLayer;if(this.geometryType=t.geometryType,i(a)){this._featureLayerAdapter=new S({layer:a});return this._featureLayerAdapter.load(e).then((()=>{this.objectIdField=this._featureLayerAdapter.objectIdField,this.supportsSQLExpression=this._featureLayerAdapter.supportsSQLExpression,this.minScale=this._featureLayerAdapter.minScale,this.maxScale=this._featureLayerAdapter.maxScale,this.fullExtent=this._featureLayerAdapter.fullExtent}))}this.objectIdField=t.objectIdField,this.supportsSQLExpression=!1,this.hasQueryEngine=!1,this.fullExtent=t.fullExtent}));return this.addResolvingPromise(t),Promise.resolve(this)}};e([u({constructOnly:!0})],A.prototype,"layer",void 0),A=e([m("esri.smartMapping.support.adapters.SceneLayerAdapter")],A);const j=A;export{j as default};
|
|
@@ -2,4 +2,4 @@
|
|
|
2
2
|
All material copyright ESRI, All Rights Reserved, unless otherwise specified.
|
|
3
3
|
See https://js.arcgis.com/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{throwIfAborted as t}from"../../../../core/promiseUtils.js";import{createGaussianKernel as n,createValueFunction as o}from"../../../../renderers/support/heatmapUtils.js";import{noDominantCategoryField as e}from"../../../statistics/support/predominanceUtils.js";import{isIntegerField as a,castIntegerFieldToFloat as r,getDateDiffSQL as i}from"../../utils.js";import{getEqualIntervalBins as l}from"../../../../statistics/utils.js";const
|
|
5
|
+
import{throwIfAborted as t}from"../../../../core/promiseUtils.js";import{createGaussianKernel as n,createValueFunction as o}from"../../../../renderers/support/heatmapUtils.js";import{noDominantCategoryField as e}from"../../../statistics/support/predominanceUtils.js";import{isIntegerField as a,castIntegerFieldToFloat as r,getDateDiffSQL as i}from"../../utils.js";import{getEqualIntervalBins as l}from"../../../../statistics/utils.js";const s=/_value$/i,u=Math.LOG10E;function c(t){return t.map((t=>t.toJSON()))}async function m(t,n,o){const e=[];if(n)for(const a of n){const n=t.getField(a);"availableFields"in o&&!o.availableFields.includes(n.name)&&e.push(n.name)}return e}function f(t,n){const o=t&&t.features,e=o&&o[0]&&o[0].attributes,a={};for(const r in e)a[r.replace(s,"").toLowerCase()]=e[r];return null!=a.totalcount&&a.totalcount>=a.count&&(a.nullcount=a.totalcount-a.count),delete a.totalcount,a.min===a.max&&null!=a.min&&null==a.stddev&&(a.stddev=a.variance=0),n&&(["min","max","avg","stddev","sum","variance"].forEach((t=>{null!=a[t]&&(a[t]=Math.ceil(a[t]))})),a.min===a.max&&null!=a.min&&(a.avg=a.min,a.stddev=a.variance=0)),a}function d(t,e=10,a,r,i,l){const s=new Float64Array(i*l),u=n(Float64Array,e),c=Math.round(3*e);let m=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,d=0,p=0,v=0,h=0;const x=o(r,a);for(const{geometry:n,attributes:o}of t){const t=n.x-c,e=n.y-c,a=Math.max(0,t),r=Math.max(0,e),y=Math.min(l,n.y+c),g=Math.min(i,n.x+c),w=+x(o);for(let n=r;n<y;n++){const o=u[n-e];for(let e=a;e<g;e++){const a=u[e-t],r=n*i+e,l=s[r];d=s[r]+=o*a*w;const c=d-l;p+=c,v+=c*c,d<m&&(m=d),d>f&&(f=d),h++}}}if(!h)return{mean:0,stddev:0,min:0,max:0,mid:0,count:0};const y=(f-m)/2;return{mean:p/h,stdDev:Math.sqrt((v-p*p/h)/h),min:m,max:f,mid:y,count:h}}function p(t){const n=[],o=t.classBreaks,e=o[0].minValue,a=o[o.length-1].maxValue;o.forEach((t=>{n.push([t.minValue,t.maxValue])}));const r={field:t.field,normalizationType:t.normalizationType,normalizationField:t.normalizationField,normalizationTotal:t.normalizationTotal,layer:t.layer};return{min:e,max:a,intervals:n,sqlExpr:v(r),excludeZerosExpr:t.where,normTotal:t.normalizationTotal}}function v(t){const{field:n,normalizationType:o,normalizationField:e,normalizationTotal:i,layer:l}=t,s=a(l,n);let c=n;return"percent-of-total"===o?c=`((${s?r(n):n} / ${i}) * 100)`:"log"===o?c=`(log(${n}) * ${u})`:"field"===o?c=`(${s?r(n):n} / ${e})`:"natural-log"===o?c=`(log(${s?r(n):n}))`:"square-root"===o&&(c=`(power(${s?r(n):n}, 0.5))`),c}function h(t,n){let o;if(n=n.toLowerCase(),t)for(const e in t)if(e.toLowerCase()!==n){o=t[e];break}return o}function x(t,n){let o;if(n=n.toLowerCase(),t)for(const e in t)if(e.toLowerCase()===n){o=t[e];break}return o}function y(t,n,o,e,a){const r={},i="countOFExpr";t&&t.features&&t.features.forEach((t=>{const n=t.attributes,o=h(n,i),e=x(n,i);0!==o&&(r[o]=e)}));const s=[];return l(n,o,e).forEach(((t,n)=>{const o=(n+1).toString();s.push({minValue:t[0],maxValue:t[1],count:r.hasOwnProperty(o)?r[o]:0})})),{bins:s,minValue:n,maxValue:o,normalizationTotal:a}}function g(n,o,e,a,r,i){const l=n&&n.features,s="countOF"+(e||"Expr"),u={};let c=!1;if(l.forEach((t=>{const n=t.attributes,o=x(n,s);let a=e?x(n,e):h(n,s);null===a&&0===o&&(c=!0),(null==a||"string"==typeof a&&""===a.trim())&&(a=null),null==u[a]?u[a]={count:o,data:a}:u[a].count=u[a].count+o})),e&&c){const n=e+" is NULL";return o.queryFeatureCount({whereClause:n,view:a,signal:i}).then((t=>(t=t||0,u.null.count=u.null.count+t,w(u,r)))).catch((()=>(t(i),w(u,r))))}return Promise.resolve(w(u,r))}function w(t,n){if(n)for(const o in t)t[o].label=n[o];return{count:t}}function E(t,n){return i(t,new Date(0),n,"milliseconds").sqlExpression}function F(t){return{viewingMode:"2d"===t.type?"map":t.viewingMode,scale:t.scale,spatialReference:t.spatialReference?.toJSON()}}function T(t,n){const o=t.map((t=>t.value)),a=n.filter((t=>!o.includes(t)));for(const e of a)t.push({value:e,count:0});t.sort(((t,o)=>n.indexOf(t.value)-n.indexOf(o.value)));for(const r of t)r.value===e&&(r.value=null);return{predominantCategoryInfos:t}}export{d as calculateHeatmapStats,c as ensureFeaturesJSON,p as generateBinParams,v as getFieldExpr,y as getHistogramFromFeatureSet,m as getMissingFields,T as getPredominantCategoriesFromUVInfos,f as getSummaryStatisticsFromFeatureSet,g as getUniqueValuesFromFeatureSet,F as getViewInfoParams,E as msSinceUnixEpochSQL};
|
package/statistics/utils.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/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import
|
|
5
|
+
import e from"../rest/support/ClassBreaksDefinition.js";import{createGenerateRendererClassBreaks as n}from"../rest/support/generateRendererUtils.js";const t="equal-interval",l=1,i=5,a=10,r=/\s*(\+|-)?((\d+(\.\d+)?)|(\.\d+))\s*/gi,o=new Set(["esriFieldTypeInteger","esriFieldTypeSmallInteger","esriFieldTypeSingle","esriFieldTypeDouble"]),u=["min","max","avg","stddev","count","sum","variance","nullcount","median"];function s(e){const n=null!=e.normalizationField||null!=e.normalizationType,t=null!=e.minValue||null!=e.maxValue,l=!!e.sqlExpression&&e.supportsSQLExpression;return!n&&!t&&!l}function m(e){const n=e.returnDistinct?[...new Set(e.values)]:e.values,t=n.filter((e=>null!=e)).length,l={count:t};return e.supportsNullCount&&(l.nullcount=n.length-t),e.percentileParams&&(l.median=d(n,e.percentileParams)),l}function c(e){const{values:n,useSampleStdDev:t,supportsNullCount:l}=e;let i=Number.POSITIVE_INFINITY,a=Number.NEGATIVE_INFINITY,r=null,o=null,u=null,s=null,m=0;const c=null==e.minValue?-1/0:e.minValue,f=null==e.maxValue?1/0:e.maxValue;for(const d of n)Number.isFinite(d)?d>=c&&d<=f&&(r+=d,i=Math.min(i,d),a=Math.max(a,d),m++):"string"==typeof d&&m++;if(m&&null!=r){o=r/m;let e=0;for(const t of n)Number.isFinite(t)&&t>=c&&t<=f&&(e+=(t-o)**2);s=t?m>1?e/(m-1):0:m>0?e/m:0,u=Math.sqrt(s)}else i=null,a=null;const p={avg:o,count:m,max:a,min:i,stddev:u,sum:r,variance:s};return l&&(p.nullcount=n.length-m),e.percentileParams&&(p.median=d(n,e.percentileParams)),p}function d(e,n){const{fieldType:t,value:l,orderBy:i,isDiscrete:a}=n,r=f(t,"desc"===i);if(0===(e=[...e].filter((e=>null!=e)).sort(((e,n)=>r(e,n)))).length)return null;if(l<=0)return e[0];if(l>=1)return e[e.length-1];const o=(e.length-1)*l,u=Math.floor(o),s=u+1,m=o%1,c=e[u],d=e[s];return s>=e.length||a||"string"==typeof c||"string"==typeof d?c:c*(1-m)+d*m}function f(e,n){const t=n?1:-1,l=v(n),i=p(n);if(!(!!e&&["esriFieldTypeDate","esriFieldTypeString","esriFieldTypeGUID","esriFieldTypeGlobalID",...o].includes(e)))return(e,n)=>"number"==typeof e&&"number"==typeof n?l(e,n):"string"==typeof e&&"string"==typeof n?i(e,n):t;if("esriFieldTypeDate"===e)return(e,n)=>{const i=new Date(e).getTime(),a=new Date(n).getTime();return isNaN(i)||isNaN(a)?t:l(i,a)};if(o.has(e))return(e,n)=>l(e,n);if("esriFieldTypeString"===e)return(e,n)=>i(e,n);if("esriFieldTypeGUID"===e||"esriFieldTypeGlobalID"===e){const e=p(n);return(n,t)=>e(b(n),b(t))}return n?(e,n)=>1:(e,n)=>-1}function p(e){return e?(e,n)=>(e=e?.toUpperCase(),n=n?.toUpperCase(),e>n?-1:e<n?1:0):(e,n)=>(e=e?.toUpperCase(),n=n?.toUpperCase(),e<n?-1:e>n?1:0)}function v(e){return e?(e,n)=>n-e:(e,n)=>e-n}function b(e){return e.substr(24,12)+e.substr(19,4)+e.substr(16,2)+e.substr(14,2)+e.substr(11,2)+e.substr(9,2)+e.substr(6,2)+e.substr(4,2)+e.substr(2,2)+e.substr(0,2)}function V(e,n){let t;for(t in e)u.includes(t)&&(Number.isFinite(e[t])||(e[t]=null));return n?(["avg","stddev","variance"].forEach((n=>{null!=e[n]&&(e[n]=Math.ceil(e[n]))})),e):e}function g(e){const n={};for(let t of e)(null==t||"string"==typeof t&&""===t.trim())&&(t=null),null==n[t]?n[t]={count:1,data:t}:n[t].count++;return{count:n}}function h(e,n,t){const l=e.count,i=[];if(t&&n&&"coded-value"===n.type){n.codedValues.forEach((e=>{const n=e.code;l.hasOwnProperty(n)||(l[n]={data:n,count:0})}))}for(const a in l){const e=l[a];i.push({value:e.data,count:e.count,label:e.label})}return{uniqueValueInfos:i}}function T(e,n,t,l){let i=null;switch(n){case"log":0!==e&&(i=Math.log(e)*Math.LOG10E);break;case"percent-of-total":Number.isFinite(l)&&0!==l&&(i=e/l*100);break;case"field":Number.isFinite(t)&&0!==t&&(i=e/t);break;case"natural-log":e>0&&(i=Math.log(e));break;case"square-root":e>0&&(i=e**.5)}return i}function y(e,t){const l=x({field:t.field,normalizationType:t.normalizationType,normalizationField:t.normalizationField,classificationMethod:t.classificationMethod,standardDeviationInterval:t.standardDeviationInterval,breakCount:t.numClasses||i});return e=F(e,t.minValue,t.maxValue),n({definition:l,values:e,normalizationTotal:t.normalizationTotal})}function F(e,n,t){return n=null==n?-1/0:n,t=null==t?1/0:t,e.filter((e=>Number.isFinite(e)&&e>=n&&e<=t))}function x(n){const i=n.field,a=n.classificationMethod||t,r=n.normalizationType,o=n.normalizationField,u=new e;return u.classificationField=i,u.breakCount=n.breakCount,u.classificationMethod=a,u.standardDeviationInterval="standard-deviation"===a?n.standardDeviationInterval||l:void 0,u.normalizationType=r,u.normalizationField="field"===r?o:void 0,u}function D(e,n){let t=e.classBreaks;const l=t.length,i=t[0].minValue,a=t[l-1].maxValue,o="standard-deviation"===n,u=r;return t=t.map((e=>{const n=e.label,t={minValue:e.minValue,maxValue:e.maxValue,label:n};if(o&&n){const e=n.match(u).map((e=>+e.trim()));2===e.length?(t.minStdDev=e[0],t.maxStdDev=e[1],e[0]<0&&e[1]>0&&(t.hasAvg=!0)):1===e.length&&(n.includes("<")?(t.minStdDev=null,t.maxStdDev=e[0]):n.includes(">")&&(t.minStdDev=e[0],t.maxStdDev=null))}return t})),{minValue:i,maxValue:a,classBreakInfos:t,normalizationTotal:e.normalizationTotal}}function z(e,n){const{min:t,max:l,intervals:i}=I(e,n),a=i.map(((e,n)=>({minValue:i[n][0],maxValue:i[n][1],count:0})));for(const r of e)if(null!=r&&r>=t&&r<=l){const e=N(i,r);e>-1&&a[e].count++}return{bins:a,minValue:t,maxValue:l,normalizationTotal:n.normalizationTotal}}function I(e,n){const{field:t,classificationMethod:l,standardDeviationInterval:i,normalizationType:r,normalizationField:o,normalizationTotal:u,minValue:m,maxValue:d}=n,f=n.numBins||a;let p=null,v=null,b=null;if((!l||"equal-interval"===l)&&!r){if(null!=m&&null!=d)p=m,v=d;else{const n=c({values:e,minValue:m,maxValue:d,useSampleStdDev:!r,supportsNullCount:s({normalizationType:r,normalizationField:o,minValue:m,maxValue:d})});p=n.min,v=n.max}b=S(p,v,f)}else{const{classBreaks:n}=y(e,{field:t,normalizationType:r,normalizationField:o,normalizationTotal:u,classificationMethod:l,standardDeviationInterval:i,minValue:m,maxValue:d,numClasses:f});p=n[0].minValue,v=n[n.length-1].maxValue,b=n.map((e=>[e.minValue,e.maxValue]))}return{min:p,max:v,intervals:b}}function N(e,n){let t=-1;for(let l=e.length-1;l>=0;l--){if(n>=e[l][0]){t=l;break}}return t}function S(e,n,t){const l=(n-e)/t,i=[];let a,r=e;for(let o=1;o<=t;o++)a=r+l,a=Number(a.toFixed(16)),i.push([r,o===t?n:a]),r=a;return i}export{y as calculateClassBreaks,z as calculateHistogram,d as calculatePercentile,c as calculateStatistics,m as calculateStringStatistics,g as calculateUniqueValuesCount,x as createClassBreaksDefinition,h as createUVResult,f as getAttributeComparator,S as getEqualIntervalBins,T as getNormalizedValue,s as isNullCountSupported,V as processSummaryStatisticsResult,D as resolveCBResult,u as statisticTypes};
|
package/support/LayersMixin.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/4.24/esri/copyright.txt for details.
|
|
4
4
|
*/
|
|
5
|
-
import{_ as e}from"../chunks/tslib.es6.js";import r from"../core/Collection.js";import{referenceSetter as t}from"../core/collectionUtils.js";import s from"../core/Logger.js";import{isPromiseLike as o}from"../core/promiseUtils.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import l from"../layers/Layer.js";function n(e,r,t){let s,o;if(e)for(let
|
|
5
|
+
import{_ as e}from"../chunks/tslib.es6.js";import r from"../core/Collection.js";import{referenceSetter as t}from"../core/collectionUtils.js";import s from"../core/Logger.js";import{isPromiseLike as o}from"../core/promiseUtils.js";import{property as a}from"../core/accessorSupport/decorators/property.js";import"../core/arrayUtils.js";import"../core/has.js";import"../core/accessorSupport/ensureType.js";import{subclass as i}from"../core/accessorSupport/decorators/subclass.js";import l from"../layers/Layer.js";function n(e,r,t){let s,o;if(e)for(let a=0,i=e.length;a<i;a++){if(s=e.getItemAt(a),s[r]===t)return s;if("group"===s?.type&&(o=n(s.layers,r,t),o))return o}}const d=s.getLogger("esri.support.LayersMixin"),y=s=>{let y=class extends s{constructor(...e){super(...e),this.layers=new r;const t=e=>{e.parent&&"remove"in e.parent&&e.parent.remove(e)},s=e=>{e.parent=this,this.layerAdded(e),"elevation"!==e.type&&"base-elevation"!==e.type||d.error(`Layer 'title:${e.title}, id:${e.id}' of type '${e.type}' is not supported as an operational layer and will therefore be ignored.`)},o=e=>{e.parent=null,this.layerRemoved(e)};this.layers.on("before-add",(e=>t(e.item))),this.layers.on("after-add",(e=>s(e.item))),this.layers.on("after-remove",(e=>o(e.item)))}destroy(){const e=this.layers.removeAll();for(const r of e)this.layerRemoved(r),r.destroy();this.layers.destroy()}set layers(e){this._set("layers",t(e,this._get("layers")))}add(e,r){const t=this.layers;if(r=t.getNextIndex(r),e instanceof l){const s=e;s.parent===this?this.reorder(s,r):t.add(s,r)}else o(e)?e.then((e=>{this.destroyed||this.add(e,r)})):d.error("#add()","The item being added is not a Layer or a Promise that resolves to a Layer.")}addMany(e,r){const t=this.layers;r=t.getNextIndex(r),e.slice().forEach((e=>{e.parent!==this?(t.add(e,r),r+=1):this.reorder(e,r)}))}findLayerById(e){return n(this.layers,"id",e)}findLayerByUid(e){return n(this.layers,"uid",e)}remove(e){return this.layers.remove(e)}removeMany(e){return this.layers.removeMany(e)}removeAll(){return this.layers.removeAll()}reorder(e,r){return this.layers.reorder(e,r)}layerAdded(e){}layerRemoved(e){}};return e([a()],y.prototype,"layers",null),y=e([i("esri.support.LayersMixin")],y),y};export{y as LayersMixin};
|