@arcgis/core 5.2.0-next.147 → 5.2.0-next.149
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/assets/esri/core/workers/RemoteClient.js +1 -1
- package/assets/esri/core/workers/chunks/03afeefb9d16b6f1d844.js +1 -0
- package/assets/esri/core/workers/chunks/09b9a886363bc1197785.js +1 -0
- package/assets/esri/core/workers/chunks/0ad0484ffcbe4ad21bd3.js +1 -0
- package/assets/esri/core/workers/chunks/{72019baeba520edb6bb0.js → 112befb3b5b406f29298.js} +1 -1
- package/assets/esri/core/workers/chunks/12a7997a40c77f5c9160.js +1 -0
- package/assets/esri/core/workers/chunks/18787aa685524b958561.js +1 -0
- package/assets/esri/core/workers/chunks/{776ae25a34352d3468bc.js → 19743dedaa40446259ec.js} +1 -1
- package/assets/esri/core/workers/chunks/{6dd0b79fa3a629ab4f27.js → 1bca39e0e651426bdbb5.js} +1 -1
- package/assets/esri/core/workers/chunks/{8b1c17cc52d989924313.js → 21f45a47708e6e43147f.js} +1 -1
- package/assets/esri/core/workers/chunks/2c626f525f3483c03477.js +1 -0
- package/assets/esri/core/workers/chunks/2d9a1f23ec6ce90723ac.js +1 -0
- package/assets/esri/core/workers/chunks/{7a05b18f655c1167ce0a.js → 2ef5237e4c876d6a4ee0.js} +1 -1
- package/assets/esri/core/workers/chunks/{79c83f4e066682543ca1.js → 320e5942a098dd104366.js} +1 -1
- package/assets/esri/core/workers/chunks/407f1e8176f3b0af73b4.js +1 -0
- package/assets/esri/core/workers/chunks/{1ba0dfbe0958cdbd7c9f.js → 42fd2a7b22b03dacc6a7.js} +1 -1
- package/assets/esri/core/workers/chunks/444e5f214abce3d607cd.js +1 -0
- package/assets/esri/core/workers/chunks/45367aa8e5c5d574de94.js +1 -0
- package/assets/esri/core/workers/chunks/47d074136a7f8e551a9a.js +1 -0
- package/assets/esri/core/workers/chunks/4a6b92ecbb1f1c55cc43.js +1 -0
- package/assets/esri/core/workers/chunks/4fc337240e7cddd0e988.js +1 -0
- package/assets/esri/core/workers/chunks/{24cc7b6b5e307a89cdd5.js → 50036a323c2e7f155311.js} +1 -1
- package/assets/esri/core/workers/chunks/5116b569a8dbda4910c8.js +1 -0
- package/assets/esri/core/workers/chunks/54b18559280a7d2a8d93.js +1 -0
- package/assets/esri/core/workers/chunks/{b2737120c5999b2f3909.js → 55dcbf296d8d0092e473.js} +1 -1
- package/assets/esri/core/workers/chunks/{5c855af73ee3c3e764fb.js → 5732fdf6d8b87739aeea.js} +1 -1
- package/assets/esri/core/workers/chunks/5924ec3167a2941ebb1f.js +1 -0
- package/assets/esri/core/workers/chunks/5fa1ec357c3ad1f91bc7.js +1 -0
- package/assets/esri/core/workers/chunks/606ea251075fe81a1206.js +1 -0
- package/assets/esri/core/workers/chunks/{ceb680688fe7e570a774.js → 608be1172a908e92b9f1.js} +1 -1
- package/assets/esri/core/workers/chunks/{6f358116f79021ff9687.js → 612104dff305ff062dfa.js} +2 -2
- package/assets/esri/core/workers/chunks/6299be5e7e26bf3c6859.js +1 -0
- package/assets/esri/core/workers/chunks/68be3fb88ca61f82fb90.js +1 -0
- package/assets/esri/core/workers/chunks/6b04285726b803b82564.js +1 -0
- package/assets/esri/core/workers/chunks/6c9266120d46e8c69dbf.js +1 -0
- package/assets/esri/core/workers/chunks/6c9acd9e4e201dc380e9.js +1 -0
- package/assets/esri/core/workers/chunks/6eb5cc8ddf772c0062e6.js +1 -0
- package/assets/esri/core/workers/chunks/709e019885822b1f6f3e.js +1 -0
- package/assets/esri/core/workers/chunks/731018c0deffc41ffc97.js +1 -0
- package/assets/esri/core/workers/chunks/7320a4913b6cad7cc5d7.js +1 -0
- package/assets/esri/core/workers/chunks/7449568eb2305bf2d650.js +1 -0
- package/assets/esri/core/workers/chunks/7572c2bc5062e66f6330.js +1 -0
- package/assets/esri/core/workers/chunks/7d212c415f2709037408.js +1 -0
- package/assets/esri/core/workers/chunks/7f0f9dddc44b1f1600f0.js +1 -0
- package/assets/esri/core/workers/chunks/8293600f94553afc8c38.js +1 -0
- package/assets/esri/core/workers/chunks/{c18189710d6198516175.js → 830ab9b8d000169da675.js} +1 -1
- package/assets/esri/core/workers/chunks/8414ffd937c1099e0bbc.js +1 -0
- package/assets/esri/core/workers/chunks/{700b1d5bc67b7e1b3ff3.js → 8aa80b892fde552577e8.js} +1 -1
- package/assets/esri/core/workers/chunks/900181f68449d8f82eeb.js +1 -0
- package/assets/esri/core/workers/chunks/925271bb763607a326ae.js +1 -0
- package/assets/esri/core/workers/chunks/937824bc7948f7bc7845.js +1 -0
- package/assets/esri/core/workers/chunks/939942b00ba380e2957e.js +1 -0
- package/assets/esri/core/workers/chunks/97d6ef9e34a43ad2e556.js +1 -0
- package/assets/esri/core/workers/chunks/{c76c42c74eedd43263d3.js → 9dd1fc56eb1ea6eb705e.js} +1 -1
- package/assets/esri/core/workers/chunks/a07cb6a2f5b66d4e9f15.js +1 -0
- package/assets/esri/core/workers/chunks/a40b6d8b5c73e06e14d4.js +1 -0
- package/assets/esri/core/workers/chunks/a7f3576208f295b670d6.js +1 -0
- package/assets/esri/core/workers/chunks/a80e49acc827dbf3b524.js +1 -0
- package/assets/esri/core/workers/chunks/aeaaff7a4b1a99540f52.js +1 -0
- package/assets/esri/core/workers/chunks/af349c7bc8ef41a0e1bd.js +1 -0
- package/assets/esri/core/workers/chunks/afc3b2af20e9d1dfd260.js +1 -0
- package/assets/esri/core/workers/chunks/b19b6102ed2d6f67b43b.js +1 -0
- package/assets/esri/core/workers/chunks/b1b4066e8d1c0c9656e5.js +1 -0
- package/assets/esri/core/workers/chunks/b4334713bacdfe40ce3d.js +1 -0
- package/assets/esri/core/workers/chunks/{6883a5c6883eccaddf64.js → b6ba66a05030d3815dfd.js} +1 -1
- package/assets/esri/core/workers/chunks/bbec9d2e3b75a5c59681.js +1 -0
- package/assets/esri/core/workers/chunks/{9ab25ee06041f907b9a2.js → c2c1f51a4668055c2838.js} +1 -1
- package/assets/esri/core/workers/chunks/c337fc0e6dc69c233e6d.js +1 -0
- package/assets/esri/core/workers/chunks/c598b22f78ccc57f9d6d.js +1 -0
- package/assets/esri/core/workers/chunks/c5d85be6e16bc895e7fb.js +1 -0
- package/assets/esri/core/workers/chunks/c62738f84c914671b143.js +1 -0
- package/assets/esri/core/workers/chunks/c8d178a0c82fffd7fed5.js +1 -0
- package/assets/esri/core/workers/chunks/c8d6bb5cca49926a0214.js +1 -0
- package/assets/esri/core/workers/chunks/cde4b044e013b9e41591.js +1 -0
- package/assets/esri/core/workers/chunks/{a7985d20fa6e8d4878e7.js → d0f5bee9db1ad51ae687.js} +1 -1
- package/assets/esri/core/workers/chunks/d2347d6aa1c57fd57029.js +1 -0
- package/assets/esri/core/workers/chunks/dca35dbe427605ef6fcc.js +1 -0
- package/assets/esri/core/workers/chunks/e0351753f6b4d1adf11e.js +1 -0
- package/assets/esri/core/workers/chunks/{534186fc921a0ccf58dc.js → e1f5d00878f27e1d413e.js} +1 -1
- package/assets/esri/core/workers/chunks/f1df76f098a3cc924832.js +1 -0
- package/assets/esri/core/workers/chunks/f4f9d08b2df856e3b694.js +1 -0
- package/assets/esri/core/workers/chunks/{711cfb84659cb4437679.js → f528ac5c648ca6a98582.js} +1 -1
- package/assets/esri/core/workers/chunks/f8a83d447b7aef051876.js +1 -0
- package/assets/esri/core/workers/chunks/fc44227c1756f65b95df.js +1 -0
- package/assets/esri/core/workers/chunks/fdbf6208df5c58746d9d.js +1 -0
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ar.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.bg.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.bs.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ca.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.cs.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.da.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.de.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.el.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.es.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.et.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.fi.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.fr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.he.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.hr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.hu.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.id.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.it.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ja.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ko.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.lt.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.lv.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.nl.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.no.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pl.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pt-BR.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.pt-PT.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ro.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.ru.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sk.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sl.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.sv.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.th.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.tr.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.uk.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.vi.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-CN.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-HK.json +1 -1
- package/assets/esri/widgets/BatchAttributeForm/t9n/messages.zh-TW.json +1 -1
- package/config.js +1 -1
- package/core/Loadable.js +1 -1
- package/geometry/HeightModelInfo.js +1 -1
- package/geometry/support/TileClipper.js +1 -1
- package/geometry/support/meshUtils.d.ts +1 -1
- package/geometry/support/scaleUtils.js +1 -1
- package/kernel.js +1 -1
- package/layers/BaseDynamicLayer.d.ts +1 -0
- package/layers/BaseElevationLayer.d.ts +2 -0
- package/layers/BaseTileLayer.d.ts +12 -9
- package/layers/CSVLayer.d.ts +1 -16
- package/layers/CatalogLayer.d.ts +1 -1
- package/layers/FeatureLayer.d.ts +3 -16
- package/layers/GeoJSONLayer.d.ts +1 -53
- package/layers/GeoRSSLayer.d.ts +0 -44
- package/layers/OrientedImageryLayer.js +1 -1
- package/layers/ParquetLayer.d.ts +84 -5
- package/layers/ParquetLayer.js +1 -1
- package/layers/SceneLayer.d.ts +4 -5
- package/layers/SceneLayer.js +1 -1
- package/layers/SketchLayer.d.ts +0 -1
- package/layers/SubtypeGroupLayer.d.ts +1 -1
- package/layers/VectorTileLayer.d.ts +2 -12
- package/layers/WFSLayer.d.ts +1 -1
- package/layers/buildingSublayers/BuildingComponentSublayer.d.ts +1 -1
- package/layers/catalog/CatalogFootprintLayer.d.ts +1 -1
- package/layers/knowledgeGraph/KnowledgeGraphSublayer.d.ts +1 -1
- package/layers/mixins/ArcGISImageService.d.ts +1 -1
- package/layers/mixins/PortalLayer.js +1 -1
- package/layers/mixins/RefreshableLayer.d.ts +1 -3
- package/layers/mixins/ScaleRangeLayer.js +1 -1
- package/layers/mixins/SublayersOwner.js +1 -1
- package/layers/orientedImagery/core/ExposurePoint.js +1 -1
- package/layers/orientedImagery/core/utils.js +1 -1
- package/layers/raster/datasets/GeospatialPDFRaster.js +1 -1
- package/layers/support/FeatureFilter.d.ts +1 -1
- package/layers/support/ParquetPortalItemData.js +1 -1
- package/layers/support/PortalItemData.js +1 -1
- package/layers/support/Sublayer.js +1 -1
- package/layers/support/SubtypeSublayer.d.ts +1 -1
- package/layers/support/SubtypeSublayer.js +1 -1
- package/layers/support/layersLoader.js +1 -1
- package/package.json +2 -2
- package/popup/FeaturesModel.d.ts +27 -6
- package/popup/FeaturesModel.js +1 -1
- package/portal/support/layersLoader.js +1 -1
- package/portal/support/portalLayers.js +1 -1
- package/renderers/VectorFieldRenderer.d.ts +4 -4
- package/rest/print.js +1 -1
- package/rest/support/printTaskUtils.js +1 -1
- package/smartMapping/renderers/color.js +1 -1
- package/smartMapping/renderers/dotDensity.js +1 -1
- package/smartMapping/renderers/heatmap.js +1 -1
- package/smartMapping/renderers/pieChart.js +1 -1
- package/smartMapping/renderers/type.js +1 -1
- package/smartMapping/statistics/heatmapStatistics.js +1 -1
- package/smartMapping/statistics/histogram.js +1 -1
- package/smartMapping/statistics/summaryStatistics.js +1 -1
- package/smartMapping/statistics/summaryStatisticsForAttributes.js +1 -1
- package/smartMapping/statistics/uniqueValues.js +1 -1
- package/smartMapping/support/adapters/support/layerUtils.js +1 -1
- package/smartMapping/types.d.ts +3 -1
- package/symbols/cim/CIMSymbolHelper.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/shaders/hittestUtils.js +1 -1
- package/views/2d/engine/webgl/shaderGraph/techniques/text/TextShader.js +1 -1
- package/views/2d/interactive/snapping/featureSources/featureServiceSource/FeatureServiceTiles2D.js +1 -1
- package/views/2d/layers/FeatureLikeLayerView2D.js +1 -1
- package/views/2d/layers/LayerView2D.js +1 -1
- package/views/2d/layers/features/sources/FeatureSource.js +1 -1
- package/views/3d/analysis/Viewshed/ViewshedPlacementController.js +1 -1
- package/views/3d/analysis/Viewshed/types.d.ts +3 -1
- package/views/3d/layers/BuildingComponentSublayerView3D.js +1 -1
- package/views/3d/layers/BuildingSceneLayerView3D.js +1 -1
- package/views/3d/layers/DynamicLayerView3D.js +1 -1
- package/views/3d/layers/FeatureLikeLayerViewBase3D.js +1 -1
- package/views/3d/layers/FlowSubView3D.js +1 -1
- package/views/3d/layers/GaussianSplatLayerView3D.js +1 -1
- package/views/3d/layers/GraphicsLayerView3D.js +1 -1
- package/views/3d/layers/IntegratedMesh3DTilesLayerView3D.js +1 -1
- package/views/3d/layers/IntegratedMeshLayerView3D.js +1 -1
- package/views/3d/layers/MediaLayerView3D.js +1 -1
- package/views/3d/layers/PointCloudLayerView3D.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/TiledLayerView3D.js +1 -1
- package/views/3d/layers/VoxelLayerView3D.js +1 -1
- package/views/3d/layers/graphics/Graphics3DScaleVisibility.js +1 -1
- package/views/3d/layers/graphics/Labeler.js +1 -1
- package/views/3d/layers/support/HeatmapFeatureProcessor.js +1 -1
- package/views/3d/support/popupHitTest.js +1 -1
- package/views/3d/terrain/TerrainData.js +1 -1
- package/views/3d/terrain/terrainUtils.js +1 -1
- package/views/3d/webgl-engine/lib/BindParameters.js +1 -1
- package/views/DOMContainer.d.ts +27 -9
- package/views/DOMContainer.js +1 -1
- package/views/PopupView.d.ts +6 -0
- package/views/VideoView.d.ts +27 -9
- package/views/View.d.ts +16 -7
- package/views/View.js +1 -1
- package/views/View2D.d.ts +1 -1
- package/views/draw/support/InteractiveHandle.js +1 -1
- package/views/interactive/snapping/FeatureSnappingSourceInfo.js +1 -1
- package/views/interactive/snapping/SnappingManagerPool.js +1 -1
- package/views/interactive/snapping/SnappingOptions.d.ts +1 -1
- package/views/interactive/tooltip/components/ElevationModeSelect.js +1 -1
- package/views/layers/FeatureLikeLayerView.d.ts +2 -3
- package/views/layers/LayerView.js +1 -1
- package/views/layers/LineOfSightLayerView.d.ts +3 -4
- package/views/layers/ParquetLayerView.d.ts +15 -0
- package/views/layers/PointCloudLayerView.d.ts +1 -1
- package/views/layers/SceneLayerView.d.ts +1 -1
- package/views/layers/ViewshedLayerView.d.ts +5 -6
- package/views/support/layerViewUtils.js +1 -1
- package/webdoc/support/saveUtils.js +1 -1
- package/webdoc/support/unsupportedErrors.js +1 -1
- package/widgets/Editor.d.ts +10 -0
- package/widgets/Legend.d.ts +1 -0
- package/widgets/OrientedImageryViewer/OrientedImageryViewerViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/adapters/draw/HeightMeasurementAdapter.js +1 -1
- package/widgets/OrientedImageryViewer/adapters/sketch/MeasurementAdapter.js +1 -1
- package/widgets/OrientedImageryViewer/adapters/sketch/TriangulatedMeasurementAdapter.js +1 -1
- package/widgets/OrientedImageryViewer/components/ImageLocationViewModel.js +1 -1
- package/widgets/OrientedImageryViewer/services/ImageMeasurementService.js +1 -1
- package/widgets/support/SnappingControls.d.ts +1 -1
- package/assets/esri/core/workers/chunks/00a600c71ceebe7bfeee.js +0 -1
- package/assets/esri/core/workers/chunks/0193df3f9fb23633da87.js +0 -1
- package/assets/esri/core/workers/chunks/050c4b212f2b5691db34.js +0 -1
- package/assets/esri/core/workers/chunks/05963f57cbe5a5249496.js +0 -1
- package/assets/esri/core/workers/chunks/06e7400f5ebe0719b81c.js +0 -1
- package/assets/esri/core/workers/chunks/07aa6d36f1006b6ab7ff.js +0 -1
- package/assets/esri/core/workers/chunks/0bb11751efa2023ec937.js +0 -1
- package/assets/esri/core/workers/chunks/14a3808427deaaa85bf2.js +0 -1
- package/assets/esri/core/workers/chunks/1a6027f08893aba9e677.js +0 -1
- package/assets/esri/core/workers/chunks/2062d46f638eabfc9499.js +0 -1
- package/assets/esri/core/workers/chunks/2164fcaced72b0fda31f.js +0 -1
- package/assets/esri/core/workers/chunks/222af8522773c7dc80b1.js +0 -1
- package/assets/esri/core/workers/chunks/25b0885d3bc190b28c04.js +0 -1
- package/assets/esri/core/workers/chunks/303fde8f3459dde16555.js +0 -1
- package/assets/esri/core/workers/chunks/305a718719ef15fda90c.js +0 -1
- package/assets/esri/core/workers/chunks/347bf269c2b1583d2dca.js +0 -1
- package/assets/esri/core/workers/chunks/350540770781b281c39a.js +0 -1
- package/assets/esri/core/workers/chunks/392bcef780df52fb4cca.js +0 -1
- package/assets/esri/core/workers/chunks/3b017b718ea2d4ed498f.js +0 -1
- package/assets/esri/core/workers/chunks/3e81dfc9d621ece038fe.js +0 -1
- package/assets/esri/core/workers/chunks/4479a166b5ac8db1e12e.js +0 -1
- package/assets/esri/core/workers/chunks/46b2d4addfc73f9183a4.js +0 -1
- package/assets/esri/core/workers/chunks/4d82db661365daa513a6.js +0 -1
- package/assets/esri/core/workers/chunks/4ed8655770a3e018e366.js +0 -1
- package/assets/esri/core/workers/chunks/4f48d45baa8ada16f579.js +0 -1
- package/assets/esri/core/workers/chunks/50ca55ad2f5421acc492.js +0 -1
- package/assets/esri/core/workers/chunks/5450f339f97b2b042ee2.js +0 -1
- package/assets/esri/core/workers/chunks/55cc8581978c71b17998.js +0 -1
- package/assets/esri/core/workers/chunks/5ea8809b6519c05ad9f6.js +0 -1
- package/assets/esri/core/workers/chunks/62795a1573cbaa4b8e7a.js +0 -1
- package/assets/esri/core/workers/chunks/633a9051580c5302d2f7.js +0 -1
- package/assets/esri/core/workers/chunks/641d196a554bd07f729e.js +0 -1
- package/assets/esri/core/workers/chunks/655c3afda1eef01611dd.js +0 -1
- package/assets/esri/core/workers/chunks/6569797d3c22442e5e97.js +0 -1
- package/assets/esri/core/workers/chunks/70793967db45fb142962.js +0 -1
- package/assets/esri/core/workers/chunks/794e5a67a88cb10c1a19.js +0 -1
- package/assets/esri/core/workers/chunks/798a63653f82c0e842c5.js +0 -1
- package/assets/esri/core/workers/chunks/820f41d66b2056a3ebc8.js +0 -1
- package/assets/esri/core/workers/chunks/841f67baf6a1634ada48.js +0 -1
- package/assets/esri/core/workers/chunks/84fcbf7a1d04f01685d1.js +0 -1
- package/assets/esri/core/workers/chunks/8e511079918e2fd9261f.js +0 -1
- package/assets/esri/core/workers/chunks/8fcfd515ee1b18c902e5.js +0 -1
- package/assets/esri/core/workers/chunks/9001e9a1e81bce175ddd.js +0 -1
- package/assets/esri/core/workers/chunks/94c5f3bc07fe516dafbe.js +0 -1
- package/assets/esri/core/workers/chunks/956a40f40bde416efe93.js +0 -1
- package/assets/esri/core/workers/chunks/95b82cbbe355266c65d7.js +0 -1
- package/assets/esri/core/workers/chunks/97dbbedea9fe03bd1306.js +0 -1
- package/assets/esri/core/workers/chunks/9c0fd8baa00ee9733ba4.js +0 -1
- package/assets/esri/core/workers/chunks/9c1e69ac82e2bf746191.js +0 -1
- package/assets/esri/core/workers/chunks/a010d2e4e34eb7bc1fec.js +0 -1
- package/assets/esri/core/workers/chunks/a05790444115e4cf1bcc.js +0 -1
- package/assets/esri/core/workers/chunks/a52bf03bffb6ffac3b54.js +0 -1
- package/assets/esri/core/workers/chunks/a7edf7541569fef77cb3.js +0 -1
- package/assets/esri/core/workers/chunks/b2c29bc48c7b3b0c9357.js +0 -1
- package/assets/esri/core/workers/chunks/b7d77dd2abb255fd2e5a.js +0 -1
- package/assets/esri/core/workers/chunks/b8054adc45bca069b948.js +0 -1
- package/assets/esri/core/workers/chunks/ba46869e700ba1d2787f.js +0 -1
- package/assets/esri/core/workers/chunks/ba48045a81acc4cda927.js +0 -1
- package/assets/esri/core/workers/chunks/ca7fb75e2c62e7d37122.js +0 -1
- package/assets/esri/core/workers/chunks/d01381b548c204835509.js +0 -1
- package/assets/esri/core/workers/chunks/d21257d2e2a37266c0f7.js +0 -1
- package/assets/esri/core/workers/chunks/d270cc9807161033686e.js +0 -1
- package/assets/esri/core/workers/chunks/d4f038e04c42aed588c1.js +0 -1
- package/assets/esri/core/workers/chunks/e32b96c08cb272a59851.js +0 -1
- package/assets/esri/core/workers/chunks/e7c60bd85abbd36cdc64.js +0 -1
- package/assets/esri/core/workers/chunks/f05de08e194a3f9b96f2.js +0 -1
- package/assets/esri/core/workers/chunks/f0a68d2900d24f56afa0.js +0 -1
- package/assets/esri/core/workers/chunks/f511a304e9dea9eb3e01.js +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../core/Error.js";import{parse as t}from"../../layers/support/arcgisLayerUrl.js";import{fetchFeatureService as n}from"../../layers/support/fetchService.js";import{LayerLoadContext as r}from"../../layers/support/LayerLoadContext.js";import{applyPreferredHostToPortalItem as i,isPreferredUrlApplicable as a,getPreferredHost as o}from"../../layers/support/layerUtils.js";import s from"../Portal.js";import{createForItemRead as c}from"./jsonContext.js";import{normalizeFSItemData as l,getSublayersByLayerType as u,getFirstLayerOrTable as d,preprocessFSItemData as f,populateSceneServiceItemData as p,getNumLayersAndTables as m,instanceTypeToLayerTypes as h,layerTypeToLayerModuleType as g,createSublayerData as _}from"./loadUtils.js";import{hasTypeKeyword as v}from"./portalItemUtils.js";import{loadStyleRenderer as y}from"../../renderers/support/styleUtils.js";import{requestServiceJSON as b}from"../../request/serviceJSON.js";async function x(e,t){let n=e.instance.portalItem;if(n?.id)return await n.load(t),C(e),e.validateItem&&e.validateItem(n),w(e,t)}async function S(e,t){let n=e.instance.portalItem;if(!n?.id||!n.loaded)return!1;let r=n.modified;return await n.reload(),t?.signal?.throwIfAborted(),r?.getTime()!==n.modified?.getTime()&&(C(e),e.validateItem&&e.validateItem(n),await w(e,t),!0)}function C(t){let n=t.instance.portalItem;if(!n?.type||!t.supportedTypes.includes(n.type))throw new e(`portal:invalid-layer-item-type`,"Invalid layer item type '${type}', expected '${expectedType}'",{type:n?.type,expectedType:t.supportedTypes.join(`, `)})}async function w(e,t){let n=e.instance,{portalItem:i,type:a}=n;if(!i)return;let{url:o}=i,{title:s}=i,l=c(i,`portal-item`);if(a===`group`)return T(n,l,e);o&&a!==`media`&&n.read({url:o},l);let{data:u,preferredHost:d}=await M(e,new r,t);return o=i.url,`isUrlHostModified`in n&&(d?n.applyPreferredHost({preferredHost:d}):n.applyHostFromPortalItem()),u&&n.read(u,l),n.resourceReferences={portalItem:i,paths:l.readResourcePaths??[]},a!==`subtype-group`&&n.read({title:s},l),y(n,l)}async function T(t,n,r){let i=t.portalItem;if(!t.sourceIsPortalItem)return;let{title:a,type:o}=i;if(o===`Group Layer`){if(!v(i,`Map`))throw new e(`portal:invalid-layer-item-typekeyword`,`'Group Layer' item without 'Map' type keyword is not supported`);return E(t,r)}return t.read({title:a},n),D(t,r)}async function E(t,n){let r=t.portalItem,i=await r.fetchData(`json`);if(!i)return;if(!n.populateGroupLayer)throw new e(`portal:missing-populate-group-layer`,`Missing populate group layer`);let a=c(r,`web-map`);t.read(i,a),await n.populateGroupLayer(t,i,{context:a}),t.resourceReferences={portalItem:r,paths:a.readResourcePaths??[]}}async function D(t,n){let a,{portalItem:o}=t;if(!o)return;let{type:s,url:c}=o,l=n.layerModuleTypeMap;if(!l)throw new e(`portal:missing-layer-module-type-map`,`Layer module type map is required to construct sub layers`);switch(s){case`Feature Service`:a=l.FeatureLayer;break;case`Stream Service`:a=l.StreamLayer;break;case`Scene Service`:a=l.SceneLayer;break;case`Feature Collection`:a=l.FeatureLayer;break;case`Video Service`:a=l.VideoLayer;break;default:throw new e(`portal:unsupported-item-type-as-group`,`The item type '${s}' is not supported as a 'GroupLayer'`)}let u=s===`Video Service`,h=new r,[g,{data:_}]=await Promise.all([a(),u?{data:null}:M(n,h)]),v=()=>g;if(u)return k(t,v,l);if(s===`Feature Service`){let e=d(_)?.customParameters,n=(await f(_,c,h)).data;v=await R(n,l)??v;let{provider:r,preferredHost:a}=await L(c,{customParameters:e,loadContext:h});return i(o,a),await A(t,v,v,n,l,r)}return s===`Scene Service`&&c&&(_=await p(o,_,h)),m(_)>0?await A(t,v,null,_,l):await O(t,v,l)}async function O(e,t,n){let{portalItem:r}=e;if(!r?.url)return;let i=await b(r.url);i&&A(e,t,null,{layers:i.layers?.map(e=>_(e)),tables:i.tables?.map(e=>_(e,!0))},n)}async function k(e,t,n){let{portalItem:r}=e;if(!r?.url)return;let i=await b(r.url);i&&A(e,t,null,{layers:i.layers?.map(({id:e,name:t})=>({id:e,name:t}))},n)}async function A(e,t,n,r,i,a){let o=r.layers??[],s=r.tables??[];if(e.portalItem?.type===`Feature Collection`?(o.forEach((e,t)=>{e.id=t,e?.layerDefinition?.type===`Table`&&s.push(e)}),o=o.filter(e=>e?.layerDefinition?.type!==`Table`)):(o.reverse(),s.reverse()),o.forEach(n=>{let i=a?.(n);if(i||!a){let a=j(e,t(n),r,n,i);e.add(a)}}),s.length){let t=n?null:await i.FeatureLayer();s.forEach(i=>{let o=a?.(i);if(o||!a){let a=j(e,n?n(i):t,r,i,o);e.tables.add(a)}})}}function j(e,t,n,r,i){let a=e.portalItem,o={portalItem:a.clone(),layerId:r.id};r.url!=null&&(o.url=r.url);let c=new t(o);if(`sourceJSON`in c&&(c.sourceJSON=i),c.type!==`subtype-group`&&c.type!==`catalog`&&(c.sublayerTitleMode=`service-name`),a.type===`Feature Collection`){let e={origin:`portal-item`,portal:a.portal??s.getDefault()};c.read(r,e);let t=n.showLegend;t!=null&&c.read({showLegend:t},e)}return c}async function M(e,t,n){if(e.supportsData===!1)return{data:void 0};let r=e.instance,{portalItem:a,type:o}=r;if(!a)return{data:void 0};let s=null;try{s=o===`video`?null:await a.fetchData(`json`,n)}catch{}if(F(r)){let{type:e,url:n}=a;if(e===`Feature Service`&&n)try{await l(s,n,t)}catch{}let c=null,{count:f,preferredHost:p}=await N(a,s,t);if(i(a,p),(s?.layers||s?.tables)&&f>0){if(r.layerId==null){let e=h(o),t=e?.length?u(s,e)[0]:d(s);t&&(r.layerId=t.id)}c=P(s,r),c?.layerType===`OrientedImageryLayer`&&o===`oriented-imagery`&&r.supportedSourceTypes.add(`Feature Layer`),c&&s.showLegend!=null&&(c.showLegend=s.showLegend)}return f>1&&`sublayerTitleMode`in r&&r.sublayerTitleMode!==`service-name`&&(r.sublayerTitleMode=`item-title-and-service-name`),{data:c,preferredHost:p}}return{data:s}}async function N(e,n,r){if(n?.layers&&n?.tables)return{count:m(n)};let i=t(e.url);if(!i)return{count:1};let s=i.url.path,c=await r.fetchServiceMetadata(s,{customParameters:d(n)?.customParameters}).catch(()=>null);return{count:(n?.layers?.length??c?.layers?.length??0)+(n?.tables?.length??c?.tables?.length??0),preferredHost:a(e)?o():null}}function P(e,t){let{layerId:n}=t,r=e.layers?.find(({id:e})=>e===n)??e.tables?.find(({id:e})=>e===n);return r&&I(r,t)?r:null}function F(e){return e.type!==`stream`&&`layerId`in e}function I(e,t){let{layerType:n}=e;switch(t.type){case`annotation-feature`:return n===`ArcGISAnnotationLayer`;case`catalog`:return n===`CatalogLayer`;case`dimension-feature`:return n===`ArcGISDimensionLayer`;case`feature`:return!n||n===`ArcGISFeatureLayer`||n===`Table`;case`oriented-imagery`:return n===`OrientedImageryLayer`;case`subtype-group`:return n===`SubtypeGroupLayer`||n===`SubtypeGroupTable`}return!0}async function L(e,t){let{layersJSON:r,preferredHost:i}=await n(e,t);if(!r)return{provider:null,preferredHost:i};let a=[...r.layers,...r.tables];return{provider:e=>a.find(t=>t.id===e.id),preferredHost:i}}async function R(e,t){let{layers:n,tables:r}=e,i=[...n,...r];if(!i.length)return;let a=new Set,o=[];for(let{layerType:e}of i){if(a.has(e))continue;a.add(e);let n=t[g(e)];o.push(n())}let s=await Promise.all(o),c=new Map;return Array.from(a).forEach((e,t)=>{c.set(e,s[t])}),({layerType:e})=>c.get(e)}export{x as load,S as reload};
|
|
2
|
+
import e from"../../core/Error.js";import{parse as t}from"../../layers/support/arcgisLayerUrl.js";import{fetchFeatureService as n}from"../../layers/support/fetchService.js";import{LayerLoadContext as r}from"../../layers/support/LayerLoadContext.js";import{applyPreferredHostToPortalItem as i,isPreferredUrlApplicable as a,getPreferredHost as o}from"../../layers/support/layerUtils.js";import s from"../Portal.js";import{createForItemRead as c}from"./jsonContext.js";import{normalizeFSItemData as l,getSublayersByLayerType as u,getFirstLayerOrTable as d,preprocessFSItemData as f,populateSceneServiceItemData as p,getNumLayersAndTables as m,instanceTypeToLayerTypes as h,layerTypeToLayerModuleType as g,createSublayerData as _}from"./loadUtils.js";import{hasTypeKeyword as v}from"./portalItemUtils.js";import{loadStyleRenderer as y}from"../../renderers/support/styleUtils.js";import{requestServiceJSON as b}from"../../request/serviceJSON.js";async function x(e,t){let n=e.instance.portalItem;if(n?.id)return await n.load(t),C(e),e.validateItem&&e.validateItem(n),w(e,t)}async function S(e,t){let n=e.instance.portalItem;if(!n?.id||!n.loaded)return!1;let r=n.modified;return await n.reload(),t?.signal?.throwIfAborted(),r?.getTime()!==n.modified?.getTime()&&(C(e),e.validateItem&&e.validateItem(n),await w(e,t),!0)}function C(t){let n=t.instance.portalItem;if(!n?.type||!t.supportedTypes.includes(n.type))throw new e(`portal:invalid-layer-item-type`,"Invalid layer item type '${type}', expected '${expectedType}'",{type:n?.type,expectedType:t.supportedTypes.join(`, `)})}async function w(e,t){let n=e.instance,{portalItem:i,type:a}=n;if(!i)return;let{url:o}=i,{title:s}=i,l=c(i,`portal-item`);if(a===`group`)return T(n,l,e);o&&a!==`media`&&a!==`parquet`&&n.read({url:o},l);let{data:u,preferredHost:d}=await M(e,new r,t);return o=i.url,`isUrlHostModified`in n&&(d?n.applyPreferredHost({preferredHost:d}):n.applyHostFromPortalItem()),u&&n.read(u,l),n.resourceReferences={portalItem:i,paths:l.readResourcePaths??[]},a!==`subtype-group`&&n.read({title:s},l),y(n,l)}async function T(t,n,r){let i=t.portalItem;if(!t.sourceIsPortalItem)return;let{title:a,type:o}=i;if(o===`Group Layer`){if(!v(i,`Map`))throw new e(`portal:invalid-layer-item-typekeyword`,`'Group Layer' item without 'Map' type keyword is not supported`);return E(t,r)}return t.read({title:a},n),D(t,r)}async function E(t,n){let r=t.portalItem,i=await r.fetchData(`json`);if(!i)return;if(!n.populateGroupLayer)throw new e(`portal:missing-populate-group-layer`,`Missing populate group layer`);let a=c(r,`web-map`);t.read(i,a),await n.populateGroupLayer(t,i,{context:a}),t.resourceReferences={portalItem:r,paths:a.readResourcePaths??[]}}async function D(t,n){let a,{portalItem:o}=t;if(!o)return;let{type:s,url:c}=o,l=n.layerModuleTypeMap;if(!l)throw new e(`portal:missing-layer-module-type-map`,`Layer module type map is required to construct sub layers`);switch(s){case`Feature Service`:a=l.FeatureLayer;break;case`Stream Service`:a=l.StreamLayer;break;case`Scene Service`:a=l.SceneLayer;break;case`Feature Collection`:a=l.FeatureLayer;break;case`Video Service`:a=l.VideoLayer;break;default:throw new e(`portal:unsupported-item-type-as-group`,`The item type '${s}' is not supported as a 'GroupLayer'`)}let u=s===`Video Service`,h=new r,[g,{data:_}]=await Promise.all([a(),u?{data:null}:M(n,h)]),v=()=>g;if(u)return k(t,v,l);if(s===`Feature Service`){let e=d(_)?.customParameters,n=(await f(_,c,h)).data;v=await R(n,l)??v;let{provider:r,preferredHost:a}=await L(c,{customParameters:e,loadContext:h});return i(o,a),await A(t,v,v,n,l,r)}return s===`Scene Service`&&c&&(_=await p(o,_,h)),m(_)>0?await A(t,v,null,_,l):await O(t,v,l)}async function O(e,t,n){let{portalItem:r}=e;if(!r?.url)return;let i=await b(r.url);i&&A(e,t,null,{layers:i.layers?.map(e=>_(e)),tables:i.tables?.map(e=>_(e,!0))},n)}async function k(e,t,n){let{portalItem:r}=e;if(!r?.url)return;let i=await b(r.url);i&&A(e,t,null,{layers:i.layers?.map(({id:e,name:t})=>({id:e,name:t}))},n)}async function A(e,t,n,r,i,a){let o=r.layers??[],s=r.tables??[];if(e.portalItem?.type===`Feature Collection`?(o.forEach((e,t)=>{e.id=t,e?.layerDefinition?.type===`Table`&&s.push(e)}),o=o.filter(e=>e?.layerDefinition?.type!==`Table`)):(o.reverse(),s.reverse()),o.forEach(n=>{let i=a?.(n);if(i||!a){let a=j(e,t(n),r,n,i);e.add(a)}}),s.length){let t=n?null:await i.FeatureLayer();s.forEach(i=>{let o=a?.(i);if(o||!a){let a=j(e,n?n(i):t,r,i,o);e.tables.add(a)}})}}function j(e,t,n,r,i){let a=e.portalItem,o={portalItem:a.clone(),layerId:r.id};r.url!=null&&(o.url=r.url);let c=new t(o);if(`sourceJSON`in c&&(c.sourceJSON=i),c.type!==`subtype-group`&&c.type!==`catalog`&&(c.sublayerTitleMode=`service-name`),a.type===`Feature Collection`){let e={origin:`portal-item`,portal:a.portal??s.getDefault()};c.read(r,e);let t=n.showLegend;t!=null&&c.read({showLegend:t},e)}return c}async function M(e,t,n){if(e.supportsData===!1)return{data:void 0};let r=e.instance,{portalItem:a,type:o}=r;if(!a)return{data:void 0};let s=null;try{s=o===`video`?null:await a.fetchData(`json`,n)}catch{}if(F(r)){let{type:e,url:n}=a;if(e===`Feature Service`&&n)try{await l(s,n,t)}catch{}let c=null,{count:f,preferredHost:p}=await N(a,s,t);if(i(a,p),(s?.layers||s?.tables)&&f>0){if(r.layerId==null){let e=h(o),t=e?.length?u(s,e)[0]:d(s);t&&(r.layerId=t.id)}c=P(s,r),c?.layerType===`OrientedImageryLayer`&&o===`oriented-imagery`&&r.supportedSourceTypes.add(`Feature Layer`),c&&s.showLegend!=null&&(c.showLegend=s.showLegend)}return f>1&&`sublayerTitleMode`in r&&r.sublayerTitleMode!==`service-name`&&(r.sublayerTitleMode=`item-title-and-service-name`),{data:c,preferredHost:p}}return{data:s}}async function N(e,n,r){if(n?.layers&&n?.tables)return{count:m(n)};let i=t(e.url);if(!i)return{count:1};let s=i.url.path,c=await r.fetchServiceMetadata(s,{customParameters:d(n)?.customParameters}).catch(()=>null);return{count:(n?.layers?.length??c?.layers?.length??0)+(n?.tables?.length??c?.tables?.length??0),preferredHost:a(e)?o():null}}function P(e,t){let{layerId:n}=t,r=e.layers?.find(({id:e})=>e===n)??e.tables?.find(({id:e})=>e===n);return r&&I(r,t)?r:null}function F(e){return e.type!==`stream`&&`layerId`in e}function I(e,t){let{layerType:n}=e;switch(t.type){case`annotation-feature`:return n===`ArcGISAnnotationLayer`;case`catalog`:return n===`CatalogLayer`;case`dimension-feature`:return n===`ArcGISDimensionLayer`;case`feature`:return!n||n===`ArcGISFeatureLayer`||n===`Table`;case`oriented-imagery`:return n===`OrientedImageryLayer`;case`subtype-group`:return n===`SubtypeGroupLayer`||n===`SubtypeGroupTable`}return!0}async function L(e,t){let{layersJSON:r,preferredHost:i}=await n(e,t);if(!r)return{provider:null,preferredHost:i};let a=[...r.layers,...r.tables];return{provider:e=>a.find(t=>t.id===e.id),preferredHost:i}}async function R(e,t){let{layers:n,tables:r}=e,i=[...n,...r];if(!i.length)return;let a=new Set,o=[];for(let{layerType:e}of i){if(a.has(e))continue;a.add(e);let n=t[g(e)];o.push(n())}let s=await Promise.all(o),c=new Map;return Array.from(a).forEach((e,t)=>{c.set(e,s[t])}),({layerType:e})=>c.get(e)}export{x as load,S as reload};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../core/Error.js";import has from"../../core/has.js";import{findAssociatedFeatureService as t}from"../../layers/support/associatedFeatureServiceUtils.js";import{getLayerModuleTypeStrict as n}from"../../layers/support/fetchService.js";import{LayerLoadContext as r}from"../../layers/support/LayerLoadContext.js";import{layersLoaderMap as i}from"../../layers/support/layersLoader.js";import{sceneServiceLayerTypeToClassName as a,applyPreferredHostToPortalItem as o,getPreferredHost as s}from"../../layers/support/layerUtils.js";import c from"../PortalItem.js";import{getFirstLayerOrTable as l,getNumLayersAndTables as u,preprocessFSItemData as d,getLayerOrTable as f,layerTypeToLayerModuleType as p,populateSceneServiceItemData as m}from"./loadUtils.js";import{hasTypeKeyword as h}from"./portalItemUtils.js";async function g(e){let{portalItem:t}=e;t&&!(t instanceof c)&&(t=new c(t));let n=await _(t),r=n.constructor;return new r({portalItem:t,...n.properties})}async function _(e){return await e.load(),y(await v(e,new r))}async function v(t,n){switch(t.type){case`3DTiles Service`:return t.typeKeywords.includes(`3DObject`)?j():t.typeKeywords.includes(`GaussianSplat`)?A():k();case`CSV`:return M();case`Feature Collection`:return C(t);case`Feature Service`:return x(t,n);case`Feed`:return
|
|
2
|
+
import e from"../../core/Error.js";import has from"../../core/has.js";import{findAssociatedFeatureService as t}from"../../layers/support/associatedFeatureServiceUtils.js";import{getLayerModuleTypeStrict as n}from"../../layers/support/fetchService.js";import{LayerLoadContext as r}from"../../layers/support/LayerLoadContext.js";import{layersLoaderMap as i}from"../../layers/support/layersLoader.js";import{sceneServiceLayerTypeToClassName as a,applyPreferredHostToPortalItem as o,getPreferredHost as s}from"../../layers/support/layerUtils.js";import c from"../PortalItem.js";import{getFirstLayerOrTable as l,getNumLayersAndTables as u,preprocessFSItemData as d,getLayerOrTable as f,layerTypeToLayerModuleType as p,populateSceneServiceItemData as m}from"./loadUtils.js";import{hasTypeKeyword as h}from"./portalItemUtils.js";async function g(e){let{portalItem:t}=e;t&&!(t instanceof c)&&(t=new c(t));let n=await _(t),r=n.constructor;return new r({portalItem:t,...n.properties})}async function _(e){return await e.load(),y(await v(e,new r))}async function v(t,n){switch(t.type){case`3DTiles Service`:return t.typeKeywords.includes(`3DObject`)?j():t.typeKeywords.includes(`GaussianSplat`)?A():k();case`CSV`:return M();case`Feature Collection`:return C(t);case`Feature Service`:return x(t,n);case`Feed`:return z();case`GeoJson`:return O();case`Group Layer`:return B();case`Image Service`:return w(t,n);case`KML`:return N();case`Knowledge Graph Layer`:return P();case`Map Service`:return b(t,n);case`Media Layer`:return V();case`Parquet Feature Layer`:return H();case`Scene Service`:return S(t,n);case`Stream Service`:return T();case`Video Service`:return E(t,n);case`Vector Tile Service`:return D();case`WCS`:return F();case`WFS`:return I();case`WMS`:return L();case`WMTS`:return R();default:throw new e(`portal:unknown-item-type`,"Unknown item type '${type}'",{type:t.type})}}async function y(e){let t=e.className,n=i[t];return{constructor:await n(),properties:e.properties}}async function b(e,t){return await U(e,t)?{className:`TileLayer`}:{className:`MapImageLayer`}}async function x(e,t){let n=await W(e,t);if(typeof n==`object`){let{sourceJSON:e,className:t}=n,r={sourceJSON:e};return n.id!=null&&(r.layerId=n.id),{className:t||`FeatureLayer`,properties:r}}return{className:`GroupLayer`}}async function S(e,n){let r=await W(e,n,async()=>{try{if(!e.url)return[];let{serverUrl:r}=await t(e.url,{sceneLayerItem:e});return(await n.fetchServiceMetadata(r))?.tables??[]}catch{return[]}});if(typeof r==`object`){let t={},i;if(r.id==null?i=e.url:(t.layerId=r.id,i=`${e.url}/layers/${r.id}`),e.typeKeywords?.length){for(let t of Object.keys(a))if(e.typeKeywords.includes(t))return{className:a[t]}}let o=await n.fetchServiceMetadata(i,{customParameters:await n.fetchCustomParameters(e,e=>l(e)?.customParameters)});return{className:a[o?.layerType]||`SceneLayer`,properties:t}}return r===!1&&(await n.fetchServiceMetadata(e.url))?.layerType===`Voxel`?{className:`VoxelLayer`}:{className:`GroupLayer`}}async function C(e){await e.load();let t=h(e,`Map Notes`),n=h(e,`Markup`);if(t||n)return{className:has(`sketch-layer-enabled`)?`SketchLayer`:`MapNotesLayer`};if(h(e,`Route Layer`))return{className:`RouteLayer`};let r=await e.fetchData();return u(r)===1?{className:`FeatureLayer`}:{className:`GroupLayer`}}async function w(e,t){await e.load();let n=e.typeKeywords?.map(e=>e.toLowerCase())??[];if(n.includes(`elevation 3d layer`))return{className:`ElevationLayer`};if(n.includes(`tiled imagery`))return{className:`ImageryTileLayer`};let r=(await t.fetchItemData(e))?.layerType;if(r===`ArcGISTiledImageServiceLayer`)return{className:`ImageryTileLayer`};if(r===`ArcGISImageServiceLayer`)return{className:`ImageryLayer`};let i=await t.fetchServiceMetadata(e.url,{customParameters:await t.fetchCustomParameters(e)}),a=i.cacheType?.toLowerCase(),o=i.capabilities?.toLowerCase().includes(`tilesonly`),s=i.tileInfo?.format?.toLowerCase()??``,c=a==null&&[`jpg`,`jpeg`,`png`,`png8`,`png24`,`png32`,`mixed`].includes(s);return a===`map`||c||o?{className:`ImageryTileLayer`}:{className:`ImageryLayer`}}function T(){return{className:`StreamLayer`}}async function E(e,t){return typeof await W(e,t)==`object`?{className:`VideoLayer`}:{className:`GroupLayer`}}function D(){return{className:`VectorTileLayer`}}function O(){return{className:`GeoJSONLayer`}}function k(){return{className:`IntegratedMesh3DTilesLayer`}}function A(){return{className:`GaussianSplatLayer`}}function j(){return{className:`UnsupportedLayer`}}function M(){return{className:`CSVLayer`}}function N(){return{className:`KMLLayer`}}function P(){return{className:`KnowledgeGraphLayer`}}function F(){return{className:`WCSLayer`}}function I(){return{className:`WFSLayer`}}function L(){return{className:`WMSLayer`}}function R(){return{className:`WMTSLayer`}}function z(){return{className:`StreamLayer`}}function B(){return{className:`GroupLayer`}}function V(){return{className:`MediaLayer`}}function H(){return{className:`ParquetLayer`}}async function U(e,t){let{tileInfo:n}=await t.fetchServiceMetadata(e.url,{customParameters:await t.fetchCustomParameters(e)});return n}async function W(t,r,i){let{url:a,type:c}=t,h=c===`Feature Service`;if(!a)return{};if(/\/\d+$/.test(a)){if(h){let i=await r.fetchServiceMetadata(a,{customParameters:await r.fetchCustomParameters(t,e=>l(e)?.customParameters)});o(t,s());let{id:c,type:u}=i,d=n(u);if(!d)throw new e(`from-portal-item:unsupported`,`'${a}' has unsupported type: '${u}'`);return{id:c,className:d,sourceJSON:i}}return{}}if(c===`Video Service`)return((await r.fetchServiceMetadata(a)).layers?.length??0)>1?!1:{};await t.load();let g=await r.fetchItemData(t);if(h){let{data:n,preferredHost:i}=await d(g,a,r);if(u(n)===0)throw new e(`from-portal-item:no-data`,`The feature service '${a}' does not have any supported layers or tables`);o(t,i);let s=G(n);if(typeof s==`object`){let e=f(n,s.id);return{id:s.id,className:p(e?.layerType)}}return s}if(c===`Scene Service`&&(g=await m(t,g,r)),u(g)>0)return G(g);let _=await r.fetchServiceMetadata(a);return i&&(_.tables=await i()),G(_)}function G(e){return u(e)===1&&{id:l(e)?.id}}export{g as fromItem,v as selectLayerClassPath};
|
|
@@ -19,7 +19,7 @@ export interface VectorFieldRendererProperties extends VisualVariablesMixinPrope
|
|
|
19
19
|
* first band. `Direction` will return values from the second band. If the data represents u (zonal) and v (meridional) speed components, values are automatically converted
|
|
20
20
|
* to `Magnitude` and `Direction`.
|
|
21
21
|
*
|
|
22
|
-
* @see [Sample - Visualizing wind data with VectorFieldRenderer](https://developers.arcgis.com/javascript/latest/sample-code/layers-
|
|
22
|
+
* @see [Sample - Visualizing wind data with VectorFieldRenderer](https://developers.arcgis.com/javascript/latest/sample-code/layers-hosted-imagerytilelayer/)
|
|
23
23
|
* @see [Styles and data visualization](https://developers.arcgis.com/javascript/latest/visualization/)
|
|
24
24
|
* @example
|
|
25
25
|
* const renderer = new VectorFieldRenderer({
|
|
@@ -54,7 +54,7 @@ export interface VectorFieldRendererProperties extends VisualVariablesMixinPrope
|
|
|
54
54
|
* It can also be used to symbolize a single raster layer where the symbols are scalar.
|
|
55
55
|
* The direction of the raster defines the angles, while the magnitude of the raster defines the size of the symbol.
|
|
56
56
|
*
|
|
57
|
-
* [](https://developers.arcgis.com/javascript/latest/sample-code/layers-
|
|
57
|
+
* [](https://developers.arcgis.com/javascript/latest/sample-code/layers-hosted-imagerytilelayer/)
|
|
58
58
|
*
|
|
59
59
|
* > [!WARNING]
|
|
60
60
|
* >
|
|
@@ -65,7 +65,7 @@ export interface VectorFieldRendererProperties extends VisualVariablesMixinPrope
|
|
|
65
65
|
* > The [visualVariables](https://developers.arcgis.com/javascript/latest/references/core/renderers/VectorFieldRenderer/#visualVariables) set on the VectorFieldRenderer are not supported in the [Legend](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-legend/).
|
|
66
66
|
*
|
|
67
67
|
* @since 4.17
|
|
68
|
-
* @see [Sample - Visualizing wind data with VectorFieldRenderer](https://developers.arcgis.com/javascript/latest/sample-code/layers-
|
|
68
|
+
* @see [Sample - Visualizing wind data with VectorFieldRenderer](https://developers.arcgis.com/javascript/latest/sample-code/layers-hosted-imagerytilelayer/)
|
|
69
69
|
* @example
|
|
70
70
|
* const renderer = new VectorFieldRenderer({
|
|
71
71
|
* style: "beaufort-kn", // Beaufort point symbol (knots)
|
|
@@ -152,7 +152,7 @@ export default class VectorFieldRenderer extends VectorFieldRendererSuperclass {
|
|
|
152
152
|
* first band. `Direction` will return values from the second band. If the data represents u (zonal) and v (meridional) speed components, values are automatically converted
|
|
153
153
|
* to `Magnitude` and `Direction`.
|
|
154
154
|
*
|
|
155
|
-
* @see [Sample - Visualizing wind data with VectorFieldRenderer](https://developers.arcgis.com/javascript/latest/sample-code/layers-
|
|
155
|
+
* @see [Sample - Visualizing wind data with VectorFieldRenderer](https://developers.arcgis.com/javascript/latest/sample-code/layers-hosted-imagerytilelayer/)
|
|
156
156
|
* @see [Styles and data visualization](https://developers.arcgis.com/javascript/latest/visualization/)
|
|
157
157
|
* @example
|
|
158
158
|
* const renderer = new VectorFieldRenderer({
|
package/rest/print.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{id as e}from"../kernel.js";import t from"../request.js";import{JSONMap as n}from"../core/jsonMap.js";import{createScreenPoint as r,pt2px as i,px2pt as a}from"../core/screenUtils.js";import{dataComponents as o,normalize as s}from"../core/urlUtils.js";import c from"../geometry/Polygon.js";import{collectLabelingFields as l}from"../layers/support/fieldUtils.js";import{getFloorFilterClause as u}from"../layers/support/floorFilterUtils.js";import{getSizeRangeAtScale as d}from"../renderers/visualVariables/support/visualVariableUtils.js";import{asValidOptions as f,findToken as p}from"./utils.js";import{execute as m}from"./geoprocessor/execute.js";import{submitJob as h}from"./geoprocessor/submitJob.js";import{formatJsonMap as g}from"./support/fileFormat.js";import{toJSON as _}from"./support/layoutTemplate.js";import{getVisibleLayerViews as ee,isScreenshotRequired as v,isBingMapsLayer as y,isBlendLayer as te,getCopyright as b,getSelectionSymbol as ne,createPointLayer as x,getContextBoundingBox as re,createPolygonLayer as ie,createPolylineLayer as ae,createMultipointLayer as S}from"./support/printTaskUtils.js";import oe from"./support/PrintTemplate.js";import{toJSON as se}from"./support/reportTemplate.js";import ce from"../symbols/WebStyleSymbol.js";import le from"../views/support/HighlightOptions.js";const C={Feet:`ft`,Kilometers:`km`,Meters:`m`,Miles:`mi`},w=new n({esriFeet:`Feet`,esriKilometers:`Kilometers`,esriMeters:`Meters`,esriMiles:`Miles`}),T=new n({esriExecutionTypeSynchronous:`sync`,esriExecutionTypeAsynchronous:`async`}),E=new Map;async function D(e,t,n){let r=await N(t,await O(e,n));if(await k(e,n)===`sync`){let{results:t}=await m(e,r,void 0,n);return t?.[0]?.value}let i=await h(e,r,void 0,n);await i.waitForJobCompletion({interval:t.updateDelay});let{value:a}=await i.fetchResultData(`Output_File`,null,n);return a}async function O(e,n){let r=F(e),i=E.get(r)??{gpServerUrl:r,legendLayerNameMap:{},legendLayers:[],screenshotLayers:[]};return i.gpMetadata??=(await t(r,f({f:`json`},n))).data,i.cimVersion=i.gpMetadata.cimVersion,E.set(r,i),i}async function k(e,t){return we(await O(e,t))}async function A(e,n){let r=await O(e,n),i=r.gpMetadata.tasks,a=r.gpServerUrl;if(r.taskInfos)return r.taskInfos;let o=(await t(e,f({f:`json`},n))).data;r.taskInfos={ExportWebMap:o};let s=i?.filter(e=>e!==o.name)??[];return await Promise.all(s.map(async e=>{let i=(await t(`${a}/${e}`,f({f:`json`},n))).data,o=i.name.startsWith(`GetLayoutTemplatesInfo`)?`GetLayoutTemplatesInfo`:null;o&&(r.taskInfos[o]??=i)})),r.taskInfos}async function j(e,t,n){return(await A(e,n))[t]??null}async function M(e,t,n){let r=await j(e,t,n);return r?.executionType?T.fromJSON(r.executionType):`sync`}async function N(t,n){n||={is11xService:!1,legendLayerNameMap:{},legendLayers:[]};let r=t.template||new oe;r.showLabels??=!0;let i;r.format===`pdf`&&(i={enablePdfAccessibility:!0});let a=_(r.layout),o=r.exportOptions;if(o){let e=o.dpi;if(i??={},i.dpi=e,a?.toLowerCase()===`map_only`||a===``){let{width:e,height:t}=o;i.outputSize=e!=null&&t!=null?[e,t]:void 0}}let s=r.layoutOptions,c;if(s){let e,t;s.scalebarUnit===`Miles`||s.scalebarUnit===`Kilometers`?(e=`Kilometers`,t=`Miles`):(s.scalebarUnit===`Meters`||s.scalebarUnit===`Feet`)&&(e=`Meters`,t=`Feet`),c={titleText:s.titleText,authorText:s.authorText,copyrightText:s.copyrightText,customTextElements:s.customTextElements,elementOverrides:s.elementOverrides,scaleBarOptions:e||t?{metricUnit:w.toJSON(e)??void 0,metricLabel:e?C[e]:void 0,nonMetricUnit:w.toJSON(t)??void 0,nonMetricLabel:t?C[t]:void 0}:void 0}}let l=await P(t,r,n);if(l.operationalLayers){let e=RegExp(`[\\u4E00-\\u9FFF\\u0E00-\\u0E7F\\u0900-\\u097F\\u3040-\\u309F\\u30A0-\\u30FF\\u31F0-\\u31FF]`),t=/[\u0600-\u06FF]/,n=n=>{let r=n.text,i=n.font,a=i?.family?.toLowerCase();r&&i&&(a===`arial`||a===`arial unicode ms`)&&(i.family=e.test(r)?`Arial Unicode MS`:`Arial`,i.style!==`normal`&&t.test(r)&&(i.family=`Arial Unicode MS`))};for(let e of l.operationalLayers)if(e.featureCollection?.layers)for(let t of e.featureCollection.layers){if(t.layerDefinition?.drawingInfo?.renderer?.symbol){let e=t.layerDefinition.drawingInfo.renderer;e.symbol.type===`esriTS`&&n(e.symbol)}if(t.featureSet?.features)for(let e of t.featureSet.features)e.symbol&&e.symbol.type===`esriTS`&&n(e.symbol)}}let u=null;s?.legendLayers&&(u=s.legendLayers.filter(e=>!n.screenshotLayers.includes(e.layerId)).map(e=>{let t=e.layerId;n.legendLayerNameMap[t]=e.title;let r={id:t};if(e.subLayerIds){r.subLayerIds=e.subLayerIds;let t=e.dynamicLegend;t!=null&&(r.subLayerDynamicLegends=e.subLayerIds.map(()=>t))}return e.dynamicLegend!=null&&(r.dynamicLegend=e.dynamicLegend),r})),t.outSpatialReference&&(l.mapOptions.spatialReference=t.outSpatialReference.toJSON()),t.datumTransformations?.length&&(l.mapOptions.datumTransformations=t.datumTransformations.map(e=>e.toJSON())),Object.assign(l,{exportOptions:i,layoutOptions:c||{}}),Object.assign(l.layoutOptions,{legendOptions:{operationalLayers:u??n.legendLayers.slice()}}),n.legendLayers.length=0,n.screenshotLayers.length=0,E.set(n.gpServerUrl,n);let d={Web_Map_as_JSON:JSON.stringify(l),Format:g.toJSON(r.format),Layout_Template:a,Layout_Item_ID:void 0,Report_Template:se(r.report),Report_Item_ID:void 0};if(r.layoutItem){delete d.Layout_Template;let t=r.layoutItem;await t.load(),t.access!==`public`&&e&&await e.getCredential(n.gpServerUrl),d.Layout_Item_ID=JSON.stringify({id:t.id})}if(r.reportItem){delete d.Report_Template;let t=r.reportItem;await t.load(),t.access!==`public`&&e&&await e.getCredential(n.gpServerUrl),d.Report_Item_ID=JSON.stringify({id:t.id})}return t.extraParameters&&Object.assign(d,t.extraParameters),d}async function P(e,t,n){let r=e.view,i=r.spatialReference,a={operationalLayers:await I(r,t,n)};t.includeTables&&(a.tables=await _e(r));let o=e.extent||n.ssExtent||r.extent;if(i?.isWrappable&&(o=o.clone()._normalize(!0),i=o.spatialReference),a.mapOptions={extent:o&&o.toJSON(),spatialReference:i&&i.toJSON(),showAttribution:t.attributionVisible},n.ssExtent=null,r.background&&(a.background=r.background.toJSON()),r.rotation&&(a.mapOptions.rotation=-r.rotation),t.scalePreserved&&(a.mapOptions.scale=t.outScale||r.scale),r.timeExtent!=null){let e=r.timeExtent.start==null?null:r.timeExtent.start.getTime(),t=r.timeExtent.end==null?null:r.timeExtent.end.getTime();a.mapOptions.time=[e,t]}return t.reportOptions&&(a.reportOptions=t.reportOptions),a}function F(e){let t=e,n=t.lastIndexOf(`/GPServer/`);return n>0&&(t=t.slice(0,n+9)),t}async function I(e,t,n){let r=[],i=0;t.scalePreserved&&(i=t.outScale||e.scale);let a={layerView:null,outScale:i,printTemplate:t,view:e},o=ee(e,i);for(let e of o){let t=e.layer;if(!t.loaded||`layers`in t)continue;let i;a.layerView=e,i=v(e)?await G(t,a,n):y(t)?L(t):t?.type===`csv`?await z(t,a,n):t?.type===`catalog-footprint`?await R(t,a,n):t?.type===`feature`?await V(t,a,n):t?.type===`geojson`?await H(t,a,n):t?.type===`graphics`?await U(t,a,n):t?.type===`imagery`?W(t,n):t?.type===`imagery-tile`?await ue(t,a,n):t?.type===`kml`?await de(t,a,n):t?.type===`map-image`?fe(t,a,n):t?.type===`map-notes`?await pe(a,n):t?.type===`open-street-map`?me():t?.type===`stream`?await he(t,a,n):t?.type===`subtype-group`?await ge(t,n):t?.type===`tile`?ve(t,n):t?.type===`vector-tile`?await ye(t,a,n):t?.type===`web-tile`?be(t):t?.type===`wfs`?await xe(t,a,n):t?.type===`wms`?Se(t,n):t?.type===`wmts`?Ce(t):await G(t,a,n),i&&(Array.isArray(i)?r.push(...i):(i.id=t.id,i.title=n.legendLayerNameMap[t.id]||t.title,i.opacity=e.fullOpacity,i.minScale=t.minScale||0,i.maxScale=t.maxScale||0,te(t)&&t.blendMode&&t.blendMode!==`normal`&&(i.blendMode=t.blendMode),r.push(i)))}if(i)for(let e of r)e.minScale=0,e.maxScale=0;if(e.graphics?.length){let i=await B(null,e.graphics,t,n);i&&r.push(i)}return r}function L(e){return{culture:e.culture,key:e.key,type:`BingMaps${e.style===`aerial`?`Aerial`:e.style===`hybrid`?`Hybrid`:`Road`}`}}async function R(e,{layerView:t,printTemplate:n},r){if(parseFloat(r.cimVersion)<3.1)return B(e,await Z(t),n,r);let i=e.parent,a=(e=>({id:e.id,url:e.url,layerType:e.layerType,customParameters:e.customParameters,dynamicGroupLayer:{visibility:!1},footprintLayer:e.footprintLayer,layerDefinition:e.layerDefinition}))(Q(i,`web-map`));return K(a,i),a}async function z(e,t,n){e.legendEnabled&&n.legendLayers.push({id:e.id});let r=t.layerView,i=t.printTemplate;if(!r.filter&&(!e.portalItem||e.portalItem.access===`public`)){let t=Q(e,`web-map`);return t.type=`CSV`,delete t.popupInfo,delete t.layerType,t.showLabels=i.showLabels&&e.labelsVisible,t}return B(e,await Z(r),i,n)}async function B(e,t,n,r){let i,a=ie(),o=ae(),s=x(),u=S(),d=x();if(d.layerDefinition.name=`textLayer`,delete d.layerDefinition.drawingInfo,e){if(e.declaredClass===`esri.layers.FeatureLayer`||e.declaredClass===`esri.layers.StreamLayer`?a.layerDefinition.name=o.layerDefinition.name=s.layerDefinition.name=u.layerDefinition.name=r.legendLayerNameMap[e.id]||e.arcgisProps?.title||e.title:e.declaredClass===`esri.layers.GraphicsLayer`&&(t=e.graphics.items),e.renderer){let t=e.renderer.toJSON(),n=a.layerDefinition.drawingInfo;n&&(n.renderer=t);let r=o.layerDefinition.drawingInfo;r&&(r.renderer=t);let i=s.layerDefinition.drawingInfo;i&&(i.renderer=t);let c=u.layerDefinition.drawingInfo;c&&(c.renderer=t)}if(n.showLabels&&e.labelsVisible&&typeof e.write==`function`){let t=Q(e).layerDefinition?.drawingInfo?.labelingInfo;if(t){i=!0;let e=a.layerDefinition.drawingInfo;e&&(e.labelingInfo=t);let n=o.layerDefinition.drawingInfo;n&&(n.labelingInfo=t);let r=s.layerDefinition.drawingInfo;r&&(r.labelingInfo=t);let c=u.layerDefinition.drawingInfo;c&&(c.labelingInfo=t)}}}!e?.renderer&&!i&&(delete a.layerDefinition.drawingInfo,delete o.layerDefinition.drawingInfo,delete s.layerDefinition.drawingInfo,delete u.layerDefinition.drawingInfo);let f,p=e?.fieldsIndex,m=e?.renderer;if(p){let t=new Set;i&&await l(t,e),m&&typeof m.collectRequiredFields==`function`&&await m.collectRequiredFields(t,p),f=Array.from(t);let n=p.fields.map(e=>e.toJSON());a.layerDefinition.fields=n,o.layerDefinition.fields=n,s.layerDefinition.fields=n,u.layerDefinition.fields=n}let h=t?.length,g;for(let e=0;e<h;e++){let i=t[e]||t.at(e);if(i.visible!==!1&&i.geometry){if(g=i.toJSON(),g.hasOwnProperty(`popupTemplate`)&&delete g.popupTemplate,g.geometry?.z&&delete g.geometry.z,g.symbol&&(g.symbol.angle||delete g.symbol.angle,$(g.symbol)?g.symbol=await q(g.symbol,r):g.symbol.text&&delete g.attributes),(!n||!n.forceFeatureAttributes)&&f?.length){let e={};for(let t of f)g.attributes?.hasOwnProperty(t)&&(e[t]=g.attributes[t]);g.attributes=e}i.geometry.type===`polygon`?a.featureSet.features.push(g):i.geometry.type===`polyline`?o.featureSet.features.push(g):i.geometry.type===`point`?g.symbol?.text?d.featureSet.features.push(g):s.featureSet.features.push(g):i.geometry.type===`multipoint`?u.featureSet.features.push(g):i.geometry.type===`extent`&&(g.geometry=c.fromExtent(i.geometry).toJSON(),a.featureSet.features.push(g))}}let _=[a,o,u,s,d].filter(e=>e.featureSet.features.length>0);for(let e of _){let t=e.featureSet.features.every(e=>e.symbol);if(t&&(!n||!n.forceFeatureAttributes))for(let t of e.featureSet.features)delete t.attributes;t&&delete e.layerDefinition.drawingInfo,e.layerDefinition.drawingInfo?.renderer&&(await X(e.layerDefinition.drawingInfo.renderer),await J(e.layerDefinition.drawingInfo.renderer,r))}return _.length?{featureCollection:{layers:_},showLabels:i}:null}async function V(e,t,n){let r,i=e.renderer,a=parseFloat(n.cimVersion);if(e.featureReduction?.type===`binning`||e.featureReduction?.type===`cluster`&&(a<2.9||e.featureReduction.renderer?.type===`pie-chart`)||i?.type===`pie-chart`&&a<3.1||i?.type===`dot-density`&&a<2.6||e.geometryType===`polygon`&&i?.authoringInfo?.visualVariables?.some(e=>e.theme===`spike`))return G(e,t,n);e.legendEnabled&&n.legendLayers.push({id:e.id});let o=t.layerView,{printTemplate:s,view:c}=t,l=e.source?.type!==`feature-layer`&&e.source?.type!==`ogc-feature`;if(!o.filter&&!l&&i&&(!(`field`in i)||i.field==null||e.getField(i.field))){if(r=(e=>({id:e.id,title:e.title,url:e.url,layerType:e.layerType,customParameters:e.customParameters,layerDefinition:e.layerDefinition,charts:s.includeCharts?e.charts:void 0}))(Q(e)),s.attributionVisible&&(r.credits=b(e)),r.showLabels=s.showLabels&&e.labelsVisible&&!!e.labelingInfo&&e.labelingInfo.length>0,K(r,e),delete r.layerDefinition?.featureReduction?.disablePopup,delete r.layerDefinition?.featureReduction?.popupInfo,o.displayFilterEnabled||delete r.layerDefinition?.displayFilterInfo,r.layerDefinition?.drawingInfo?.renderer&&(delete r.layerDefinition.minScale,delete r.layerDefinition.maxScale,await X(r.layerDefinition.drawingInfo.renderer),await J(r.layerDefinition.drawingInfo.renderer,n),`visualVariables`in i&&i.visualVariables?.[0])){let e=i.visualVariables[0];if(e.type===`size`&&e.maxSize&&typeof e.maxSize!=`number`&&e.minSize&&typeof e.minSize!=`number`){let t=d(e,c.scale);r.layerDefinition.drawingInfo.renderer.visualVariables[0].minSize=t.minSize,r.layerDefinition.drawingInfo.renderer.visualVariables[0].maxSize=t.maxSize}}let t=u(o);if(t&&(r.layerDefinition??={},r.layerDefinition.definitionExpression=r.layerDefinition.definitionExpression?`(${r.layerDefinition.definitionExpression}) AND (${t})`:t),e.gdbVersion&&(r.layerDefinition??={},r.layerDefinition.gdbVersion=e.gdbVersion),o.hasHighlight&&`highlightIds`in o){let t=o;r.selectionObjectIds=t.highlightIds;let n=t.highlightOptions??c.defaultHighlight??new le;r.selectionSymbol=ne(e.geometryType,n)}}else r=await B(e,await Z(o),s,n);return r}async function H(e,t,n){return e.featureReduction?.type===`binning`||e.featureReduction?.type===`cluster`?G(e,t,n):(e.legendEnabled&&n.legendLayers.push({id:e.id}),B(e,await Z(t.layerView),t.printTemplate,n))}async function U(e,{printTemplate:t},n){return B(e,null,t,n)}function W(e,t){e.legendEnabled&&t.legendLayers.push({id:e.id});let n=(e=>({layerType:e.layerType,customParameters:e.customParameters}))(Q(e));return n.bandIds=e.bandIds,n.compressionQuality=e.compressionQuality,n.format=e.format,n.interpolation=e.interpolation,(e.mosaicRule||e.definitionExpression)&&(n.mosaicRule=e.exportImageServiceParameters.mosaicRule.toJSON()),e.rasterFunction&&(n.renderingRule=e.rasterFunction.toJSON()),e.renderer&&(n.layerDefinition??={},n.layerDefinition.drawingInfo??={},n.layerDefinition.drawingInfo.renderer=e.renderer.toJSON()),K(n,e),n}async function ue(e,t,n){if(e.renderer?.type===`flow`||!e.supportsWrite())return G(e,t,n);e.legendEnabled&&n.legendLayers.push({id:e.id});let r=(e=>({bandIds:e.bandIds,customParameters:e.customParameters,interpolation:e.interpolation,layerDefinition:e.layerDefinition}))(Q(e));return r.layerType=`ArcGISImageServiceLayer`,K(r,e),r}async function de(e,t,n){let r=t.printTemplate;if(!e.portalItem||e.portalItem.access===`public`){let t=Q(e,`web-map`);return t.type=`kml`,delete t.layerType,t.url=s(e.url),t}let i=[],a=t.layerView;a.allVisibleMapImages.forEach((t,n)=>{let r={id:`${e.id}_image${n}`,type:`image`,title:e.id,minScale:e.minScale||0,maxScale:e.maxScale||0,opacity:a.fullOpacity,extent:t.extent};t.href.startsWith(`data:image/png;base64,`)?r.imageData=t.href.slice(22):r.url=t.href,i.push(r)});let o=[...a.allVisiblePoints.items,...a.allVisiblePolylines.items,...a.allVisiblePolygons.items],c={id:e.id,...await B(null,o,r,n)};return i.push(c),i}function fe(e,{outScale:t,printTemplate:n,view:r},i){let a,o={id:e.id,subLayerIds:[]},s=[],c=t||r.scale,l=e=>{let t=c===0,n=e.minScale===0||c<=e.minScale,r=e.maxScale===0||c>=e.maxScale;if(e.visible&&(t||n&&r)){if(e.sublayers)e.sublayers.forEach(l);else{let t=e.toExportImageJSON(),n={id:e.id,name:e.title,layerDefinition:{definitionExpression:t.definitionExpression,drawingInfo:t.drawingInfo,orderBy:t.orderBy,source:t.source}};s.unshift(n),o.subLayerIds.push(e.id)}}};return e.sublayers?.forEach(l),s.length&&(s=s.map(({id:e,name:t,layerDefinition:n})=>({id:e,name:t,layerDefinition:n})),a=(e=>({layerType:e.layerType,customParameters:e.customParameters}))(Q(e)),a.layers=s,a.visibleLayers=e.capabilities?.exportMap?.supportsDynamicLayers?void 0:o.subLayerIds,n.attributionVisible&&(a.credits=b(e)),e.gdbVersion&&(a.gdbVersion=e.gdbVersion),K(a,e),e.legendEnabled&&i.legendLayers.push(o)),a}async function pe({layerView:e,printTemplate:t},n){let r=[],i=e.layer;if(i.featureCollections!=null)for(let e of i.featureCollections){let i=await B(e,e.source,t,n);i&&r.push(...i.featureCollection.layers)}else if(i.sublayers!=null)for(let e of i.sublayers){let i=await B(null,e.graphics,t,n);i&&r.push(...i.featureCollection.layers)}return{featureCollection:{layers:r}}}function me(){return{type:`OpenStreetMap`}}async function G(e,{printTemplate:t,view:n},i){let a={type:`image`};i.screenshotLayers.push(e.id);let s={format:`png`,ignoreBackground:!0,ignorePadding:!0,layers:[e]};n.rotation!==0&&(s.rotation=0);let c=i.ssExtent||n.state.extent.clone(),l=96,u=!0,d=!0;if(t.exportOptions){let e=t.exportOptions;e.dpi!=null&&e.dpi>0&&(l=e.dpi),e.width!=null&&e.width>0&&(u=e.width%2==n.width%2),e.height!=null&&e.height>0&&(d=e.height%2==n.height%2)}if(t.layout===`map-only`&&t.scalePreserved&&(!t.outScale||t.outScale===n.scale)&&l===96&&(!u||!d)&&n.state.extent.equals(n.extent)&&(s.area={x:0,y:0,width:n.width,height:n.height},u||--s.area.width,d||--s.area.height,!i.ssExtent)){let e=n.toMap(r(s.area.width,s.area.height));c.ymin=e.y,c.xmax=e.x,i.ssExtent=c}a.extent=c.clone()._normalize(!0).toJSON();let f=await n.takeScreenshot(s);return a.imageData=o(f.dataUrl)?.data,a}async function he(e,{layerView:t,printTemplate:n},r){return e.legendEnabled&&r.legendLayers.push({id:e.id}),B(e,await Z(t),n,r)}async function ge(e,t){if(e.legendEnabled)for(let n of e.sublayers)n.legendEnabled&&t.legendLayers.push({id:n.id});let n=(e=>({customParameters:e.customParameters,effect:e.effect,layerDefinition:e.layerDefinition,layerType:e.layerType,layers:e.layers,url:e.url}))(Q(e));if(K(n,e),Array.isArray(n.layers)){for(let e of n.layers)delete e.popupInfo;n.token&&n.layers.length>0&&(n.layers[n.layers.length-1].token=n.token,delete n.token)}return n}async function _e(e){let t=[],n=[];for(let t of e.map.allTables)t.type===`feature`&&!t.loaded&&n.push(t.load());n.length&&await Promise.allSettled(n);for(let n of e.map.allTables)if(n.type===`feature`&&n.loaded&&n.isTable&&n.source?.type===`feature-layer`){let e=(e=>({id:e.id,title:e.title,customParameters:e.customParameters,layerDefinition:{definitionExpression:e.layerDefinition?.definitionExpression},url:e.url}))(Q(n));K(e,n),t.push(e)}return t.length?t:void 0}function ve(e,t){e.legendEnabled&&t.legendLayers.push({id:e.id});let n=(e=>({layerType:e.layerType,customParameters:e.customParameters}))(Q(e));return K(n,e),n}async function ye(e,t,n){let r=t.layerView;if(e.serviceUrl&&e.styleUrl&&!r.spriteSourceChanged&&!r.styleChanged){let t=p(e.styleUrl,e.apiKey),r=p(e.serviceUrl,e.apiKey);if(!t&&!r||n.cimVersion!==`2.1.0`){let n={type:`VectorTileLayer`};return n.styleUrl=s(e.styleUrl),n.token=t,r!==t&&(n.additionalTokens=[{url:e.serviceUrl,token:r}]),n}}return G(e,t,n)}function be(e){let t={type:`WebTiledLayer`,urlTemplate:e.urlTemplate?.replaceAll("${",`{`),credits:e.copyright};return e.subDomains&&e.subDomains.length>0&&(t.subDomains=e.subDomains),t}async function xe(e,t,n){return parseFloat(n.cimVersion)<3.5?G(e,t,n):(e.legendEnabled&&n.legendLayers.push({id:e.id}),(e=>({layerType:e.layerType,layerDefinition:e.layerDefinition,url:e.url,wfsInfo:e.wfsInfo}))(Q(e,`web-map`)))}function Se(e,t){let n,r=[],i=e=>{e.visible&&(e.sublayers?e.sublayers.forEach(i):e.name&&r.unshift(e.name))};return e.sublayers&&e.sublayers.forEach(i),r.length&&(e.legendEnabled&&t.legendLayers.push({id:e.id,subLayerIds:r}),n={type:`wms`,customLayerParameters:e.customLayerParameters,customParameters:e.customParameters,transparentBackground:e.imageTransparency,visibleLayers:r,url:s(e.url),version:e.version}),n}function Ce(e){let t=e.activeLayer;return{type:`wmts`,customLayerParameters:e.customLayerParameters,customParameters:e.customParameters,format:t.imageFormat,layer:t.id,style:t.styleId,tileMatrixSet:t.tileMatrixSetId,url:s(e.url)}}function K(e,t){t.url&&(e.url=s(e.url||t.url),e.token=p(e.url,t.apiKey))}async function q(e,n){n.canvas||=document.createElement(`canvas`);let r=1024;n.canvas.width=r,n.canvas.height=r;let o=n.canvas.getContext(`2d`),s,c;if(e.path){let t=new Path2D(e.path);t.closePath(),o.fillStyle=Array.isArray(e.color)?`rgba(${e.color[0]},${e.color[1]},${e.color[2]},${e.color[3]/255})`:`rgb(0,0,0)`,o.fill(t);let n=re(o);if(!n)return null;o.clearRect(0,0,r,r);let a=i(e.size)/Math.max(n.width,n.height);o.scale(a,a);let l=r/a,u=l/2-n.width/2-n.x,d=l/2-n.height/2-n.y;if(o.translate(u,d),Array.isArray(e.color)&&o.fill(t),e.outline?.width&&Array.isArray(e.outline.color)){let r=e.outline;o.lineWidth=i(r.width)/a,o.lineJoin=`round`,o.strokeStyle=`rgba(${r.color[0]},${r.color[1]},${r.color[2]},${r.color[3]/255})`,o.stroke(t),n.width+=o.lineWidth,n.height+=o.lineWidth}n.width*=a,n.height*=a;let f=o.getImageData(r/2-n.width/2,r/2-n.height/2,Math.ceil(n.width),Math.ceil(n.height));s=f.width,c=f.height,o.canvas.width=s,o.canvas.height=c,o.putImageData(f,0,0)}else{let n=e.contentType===`image/svg+xml`?`data:image/svg+xml;base64,`+e.imageData:e.url,r=(await t(n,{responseType:`image`})).data;s=i(e.width),c=i(e.height),o.canvas.width=s,o.canvas.height=c,o.drawImage(r,0,0,o.canvas.width,o.canvas.height)}return{type:`esriPMS`,imageData:o.canvas.toDataURL(`image/png`).slice(22),angle:e.angle,contentType:`image/png`,height:a(c),width:a(s),xoffset:e.xoffset,yoffset:e.yoffset}}async function J(e,t){let n=e.type;if(n===`simple`&&$(e.symbol))e.symbol=await q(e.symbol,t)??{type:`esriSMS`,color:[0,0,0,0],size:0,style:`esriSMSSquare`};else if(n===`uniqueValue`){if($(e.defaultSymbol)&&(e.defaultSymbol=await q(e.defaultSymbol,t)),`uniqueValueInfos`in e&&e.uniqueValueInfos)for(let n of e.uniqueValueInfos)$(n.symbol)&&(n.symbol=await q(n.symbol,t));if(`uniqueValueGroups`in e&&e.uniqueValueGroups)for(let n of e.uniqueValueGroups)for(let e of n.classes)$(e.symbol)&&(e.symbol=await q(e.symbol,t))}else if(n===`classBreaks`){$(e.defaultSymbol)&&(e.defaultSymbol=await q(e.defaultSymbol,t));for(let n of e.classBreakInfos)$(n.symbol)&&(n.symbol=await q(n.symbol,t))}}async function Y(e){if(e?.type!==`styleSymbolReference`)return e;try{return(await ce.fromJSON(e).fetchSymbol())?.toJSON()??e}catch{return e}}async function X(e){if(e.type===`simple`&&e.symbol)e.symbol=await Y(e.symbol);else if(e.type===`uniqueValue`){if(e.defaultSymbol=await Y(e.defaultSymbol),`uniqueValueInfos`in e&&e.uniqueValueInfos)for(let t of e.uniqueValueInfos)t.symbol=await Y(t.symbol);if(`uniqueValueGroups`in e&&e.uniqueValueGroups)for(let t of e.uniqueValueGroups)for(let e of t.classes)e.symbol=await Y(e.symbol)}else if(e.type===`classBreaks`){e.defaultSymbol=await Y(e.defaultSymbol);for(let t of e.classBreakInfos)t.symbol=await Y(t.symbol)}}async function Z(e){return e.queryFeatures(e.createQuery()).then(e=>e.features)}function Q(e,t){return e.write({},{ignorePersistenceEnabled:!0,origin:t})??{}}function we(e){return e.gpMetadata?.executionType?T.fromJSON(e.gpMetadata.executionType):`sync`}function $(e){return e&&(e.path||e.contentType===`image/svg+xml`||e.url?.endsWith(`.svg`))}export{D as execute,N as getGpPrintParams,F as getGpServerUrl,k as getMode,O as getPrintCache,M as getTaskExecutionMode,j as getTaskInfo,A as getTaskInfos,E as printCacheMap};
|
|
2
|
+
import{id as e}from"../kernel.js";import t from"../request.js";import{JSONMap as n}from"../core/jsonMap.js";import{createScreenPoint as r,pt2px as i,px2pt as a}from"../core/screenUtils.js";import{dataComponents as o,normalize as s}from"../core/urlUtils.js";import c from"../geometry/Polygon.js";import{collectLabelingFields as l}from"../layers/support/fieldUtils.js";import{getFloorFilterClause as u}from"../layers/support/floorFilterUtils.js";import{getSizeRangeAtScale as d}from"../renderers/visualVariables/support/visualVariableUtils.js";import{asValidOptions as f,findToken as p}from"./utils.js";import{execute as m}from"./geoprocessor/execute.js";import{submitJob as h}from"./geoprocessor/submitJob.js";import{formatJsonMap as g}from"./support/fileFormat.js";import{toJSON as _}from"./support/layoutTemplate.js";import{getVisibleLayerViews as ee,isScreenshotRequired as te,isBingMapsLayer as ne,isBlendLayer as v,getCopyright as y,getSelectionSymbol as b,createPointLayer as x,getContextBoundingBox as S,createPolygonLayer as re,createPolylineLayer as ie,createMultipointLayer as ae}from"./support/printTaskUtils.js";import oe from"./support/PrintTemplate.js";import{toJSON as se}from"./support/reportTemplate.js";import ce from"../symbols/WebStyleSymbol.js";import C from"../views/support/HighlightOptions.js";const w={Feet:`ft`,Kilometers:`km`,Meters:`m`,Miles:`mi`},T=new n({esriFeet:`Feet`,esriKilometers:`Kilometers`,esriMeters:`Meters`,esriMiles:`Miles`}),E=new n({esriExecutionTypeSynchronous:`sync`,esriExecutionTypeAsynchronous:`async`}),D=new Map;async function le(e,t,n){let r=await N(t,await O(e,n));if(await k(e,n)===`sync`){let{results:t}=await m(e,r,void 0,n);return t?.[0]?.value}let i=await h(e,r,void 0,n);await i.waitForJobCompletion({interval:t.updateDelay});let{value:a}=await i.fetchResultData(`Output_File`,null,n);return a}async function O(e,n){let r=F(e),i=D.get(r)??{gpServerUrl:r,legendLayerNameMap:{},legendLayers:[],screenshotLayers:[]};return i.gpMetadata??=(await t(r,f({f:`json`},n))).data,i.cimVersion=i.gpMetadata.cimVersion,D.set(r,i),i}async function k(e,t){return Te(await O(e,t))}async function A(e,n){let r=await O(e,n),i=r.gpMetadata.tasks,a=r.gpServerUrl;if(r.taskInfos)return r.taskInfos;let o=(await t(e,f({f:`json`},n))).data;r.taskInfos={ExportWebMap:o};let s=i?.filter(e=>e!==o.name)??[];return await Promise.all(s.map(async e=>{let i=(await t(`${a}/${e}`,f({f:`json`},n))).data,o=i.name.startsWith(`GetLayoutTemplatesInfo`)?`GetLayoutTemplatesInfo`:null;o&&(r.taskInfos[o]??=i)})),r.taskInfos}async function j(e,t,n){return(await A(e,n))[t]??null}async function M(e,t,n){let r=await j(e,t,n);return r?.executionType?E.fromJSON(r.executionType):`sync`}async function N(t,n){n||={is11xService:!1,legendLayerNameMap:{},legendLayers:[]};let r=t.template||new oe;r.showLabels??=!0;let i;r.format===`pdf`&&(i={enablePdfAccessibility:!0});let a=_(r.layout),o=r.exportOptions;if(o){let e=o.dpi;if(i??={},i.dpi=e,a?.toLowerCase()===`map_only`||a===``){let{width:e,height:t}=o;i.outputSize=e!=null&&t!=null?[e,t]:void 0}}let s=r.layoutOptions,c;if(s){let e,t;s.scalebarUnit===`Miles`||s.scalebarUnit===`Kilometers`?(e=`Kilometers`,t=`Miles`):(s.scalebarUnit===`Meters`||s.scalebarUnit===`Feet`)&&(e=`Meters`,t=`Feet`),c={titleText:s.titleText,authorText:s.authorText,copyrightText:s.copyrightText,customTextElements:s.customTextElements,elementOverrides:s.elementOverrides,scaleBarOptions:e||t?{metricUnit:T.toJSON(e)??void 0,metricLabel:e?w[e]:void 0,nonMetricUnit:T.toJSON(t)??void 0,nonMetricLabel:t?w[t]:void 0}:void 0}}let l=await P(t,r,n);if(l.operationalLayers){let e=RegExp(`[\\u4E00-\\u9FFF\\u0E00-\\u0E7F\\u0900-\\u097F\\u3040-\\u309F\\u30A0-\\u30FF\\u31F0-\\u31FF]`),t=/[\u0600-\u06FF]/,n=n=>{let r=n.text,i=n.font,a=i?.family?.toLowerCase();r&&i&&(a===`arial`||a===`arial unicode ms`)&&(i.family=e.test(r)?`Arial Unicode MS`:`Arial`,i.style!==`normal`&&t.test(r)&&(i.family=`Arial Unicode MS`))};for(let e of l.operationalLayers)if(e.featureCollection?.layers)for(let t of e.featureCollection.layers){if(t.layerDefinition?.drawingInfo?.renderer?.symbol){let e=t.layerDefinition.drawingInfo.renderer;e.symbol.type===`esriTS`&&n(e.symbol)}if(t.featureSet?.features)for(let e of t.featureSet.features)e.symbol&&e.symbol.type===`esriTS`&&n(e.symbol)}}let u=null;s?.legendLayers&&(u=s.legendLayers.filter(e=>!n.screenshotLayers.includes(e.layerId)).map(e=>{let t=e.layerId;n.legendLayerNameMap[t]=e.title;let r={id:t};if(e.subLayerIds){r.subLayerIds=e.subLayerIds;let t=e.dynamicLegend;t!=null&&(r.subLayerDynamicLegends=e.subLayerIds.map(()=>t))}return e.dynamicLegend!=null&&(r.dynamicLegend=e.dynamicLegend),r})),t.outSpatialReference&&(l.mapOptions.spatialReference=t.outSpatialReference.toJSON()),t.datumTransformations?.length&&(l.mapOptions.datumTransformations=t.datumTransformations.map(e=>e.toJSON())),Object.assign(l,{exportOptions:i,layoutOptions:c||{}}),Object.assign(l.layoutOptions,{legendOptions:{operationalLayers:u??n.legendLayers.slice()}}),n.legendLayers.length=0,n.screenshotLayers.length=0,D.set(n.gpServerUrl,n);let d={Web_Map_as_JSON:JSON.stringify(l),Format:g.toJSON(r.format),Layout_Template:a,Layout_Item_ID:void 0,Report_Template:se(r.report),Report_Item_ID:void 0};if(r.layoutItem){delete d.Layout_Template;let t=r.layoutItem;await t.load(),t.access!==`public`&&e&&await e.getCredential(n.gpServerUrl),d.Layout_Item_ID=JSON.stringify({id:t.id})}if(r.reportItem){delete d.Report_Template;let t=r.reportItem;await t.load(),t.access!==`public`&&e&&await e.getCredential(n.gpServerUrl),d.Report_Item_ID=JSON.stringify({id:t.id})}return t.extraParameters&&Object.assign(d,t.extraParameters),d}async function P(e,t,n){let r=e.view,i=r.spatialReference,a={operationalLayers:await I(r,t,n)};t.includeTables&&(a.tables=await ve(r));let o=e.extent||n.ssExtent||r.extent;if(i?.isWrappable&&(o=o.clone()._normalize(!0),i=o.spatialReference),a.mapOptions={extent:o&&o.toJSON(),spatialReference:i&&i.toJSON(),showAttribution:t.attributionVisible},n.ssExtent=null,r.background&&(a.background=r.background.toJSON()),r.rotation&&(a.mapOptions.rotation=-r.rotation),t.scalePreserved&&(a.mapOptions.scale=t.outScale||r.scale),r.timeExtent!=null){let e=r.timeExtent.start==null?null:r.timeExtent.start.getTime(),t=r.timeExtent.end==null?null:r.timeExtent.end.getTime();a.mapOptions.time=[e,t]}return t.reportOptions&&(a.reportOptions=t.reportOptions),a}function F(e){let t=e,n=t.lastIndexOf(`/GPServer/`);return n>0&&(t=t.slice(0,n+9)),t}async function I(e,t,n){let r=[],i=0;t.scalePreserved&&(i=t.outScale||e.scale);let a={layerView:null,outScale:i,printTemplate:t,view:e},o=ee(e,i);for(let e of o){let t=e.layer;if(!t.loaded||`layers`in t)continue;let i;a.layerView=e,i=te(e)?await G(t,a,n):ne(t)?L(t):t?.type===`csv`?await z(t,a,n):t?.type===`catalog-footprint`?await R(t,a,n):t?.type===`feature`?await V(t,a,n):t?.type===`geojson`?await H(t,a,n):t?.type===`graphics`?await U(t,a,n):t?.type===`imagery`?W(t,n):t?.type===`imagery-tile`?await ue(t,a,n):t?.type===`kml`?await de(t,a,n):t?.type===`map-image`?fe(t,a,n):t?.type===`map-notes`?await pe(a,n):t?.type===`open-street-map`?me():t?.type===`sketch`?await he(t,a,n):t?.type===`stream`?await ge(t,a,n):t?.type===`subtype-group`?await _e(t,n):t?.type===`tile`?ye(t,n):t?.type===`vector-tile`?await be(t,a,n):t?.type===`web-tile`?xe(t):t?.type===`wfs`?await Se(t,a,n):t?.type===`wms`?Ce(t,n):t?.type===`wmts`?we(t):await G(t,a,n),i&&(Array.isArray(i)?r.push(...i):(i.id=t.id,i.title=n.legendLayerNameMap[t.id]||t.title,i.opacity=e.fullOpacity,i.minScale=t.minScale||0,i.maxScale=t.maxScale||0,v(t)&&t.blendMode&&t.blendMode!==`normal`&&(i.blendMode=t.blendMode),r.push(i)))}if(i)for(let e of r)e.minScale=0,e.maxScale=0;if(e.graphics?.length){let i=await B(null,e.graphics,t,n);i&&r.push(i)}return r}function L(e){return{culture:e.culture,key:e.key,type:`BingMaps${e.style===`aerial`?`Aerial`:e.style===`hybrid`?`Hybrid`:`Road`}`}}async function R(e,{layerView:t,printTemplate:n},r){if(parseFloat(r.cimVersion)<3.1)return B(e,await Z(t),n,r);let i=e.parent,a=(e=>({id:e.id,url:e.url,layerType:e.layerType,customParameters:e.customParameters,dynamicGroupLayer:{visibility:!1},footprintLayer:e.footprintLayer,layerDefinition:e.layerDefinition}))(Q(i,`web-map`));return K(a,i),a}async function z(e,t,n){e.legendEnabled&&n.legendLayers.push({id:e.id});let r=t.layerView,i=t.printTemplate;if(!r.filter&&(!e.portalItem||e.portalItem.access===`public`)){let t=Q(e,`web-map`);return t.type=`CSV`,delete t.popupInfo,delete t.layerType,t.showLabels=i.showLabels&&e.labelsVisible,t}return B(e,await Z(r),i,n)}async function B(e,t,n,r){let i,a=re(),o=ie(),s=x(),u=ae(),d=x();if(d.layerDefinition.name=`textLayer`,delete d.layerDefinition.drawingInfo,e){if(e.declaredClass===`esri.layers.FeatureLayer`||e.declaredClass===`esri.layers.StreamLayer`?a.layerDefinition.name=o.layerDefinition.name=s.layerDefinition.name=u.layerDefinition.name=r.legendLayerNameMap[e.id]||e.arcgisProps?.title||e.title:e.declaredClass===`esri.layers.GraphicsLayer`&&(t=e.graphics.items),e.renderer){let t=e.renderer.toJSON(),n=a.layerDefinition.drawingInfo;n&&(n.renderer=t);let r=o.layerDefinition.drawingInfo;r&&(r.renderer=t);let i=s.layerDefinition.drawingInfo;i&&(i.renderer=t);let c=u.layerDefinition.drawingInfo;c&&(c.renderer=t)}if(n.showLabels&&e.labelsVisible&&typeof e.write==`function`){let t=Q(e).layerDefinition?.drawingInfo?.labelingInfo;if(t){i=!0;let e=a.layerDefinition.drawingInfo;e&&(e.labelingInfo=t);let n=o.layerDefinition.drawingInfo;n&&(n.labelingInfo=t);let r=s.layerDefinition.drawingInfo;r&&(r.labelingInfo=t);let c=u.layerDefinition.drawingInfo;c&&(c.labelingInfo=t)}}}!e?.renderer&&!i&&(delete a.layerDefinition.drawingInfo,delete o.layerDefinition.drawingInfo,delete s.layerDefinition.drawingInfo,delete u.layerDefinition.drawingInfo);let f,p=e?.fieldsIndex,m=e?.renderer;if(p){let t=new Set;i&&await l(t,e),m&&typeof m.collectRequiredFields==`function`&&await m.collectRequiredFields(t,p),f=Array.from(t);let n=p.fields.map(e=>e.toJSON());a.layerDefinition.fields=n,o.layerDefinition.fields=n,s.layerDefinition.fields=n,u.layerDefinition.fields=n}let h=t?.length,g;for(let e=0;e<h;e++){let i=t[e]||t.at(e);if(i.visible!==!1&&i.geometry){if(g=i.toJSON(),g.hasOwnProperty(`popupTemplate`)&&delete g.popupTemplate,g.geometry?.z&&delete g.geometry.z,g.symbol&&(g.symbol.angle||delete g.symbol.angle,$(g.symbol)?g.symbol=await q(g.symbol,r):g.symbol.text&&delete g.attributes),(!n||!n.forceFeatureAttributes)&&f?.length){let e={};for(let t of f)g.attributes?.hasOwnProperty(t)&&(e[t]=g.attributes[t]);g.attributes=e}i.geometry.type===`polygon`?a.featureSet.features.push(g):i.geometry.type===`polyline`?o.featureSet.features.push(g):i.geometry.type===`point`?g.symbol?.text?d.featureSet.features.push(g):s.featureSet.features.push(g):i.geometry.type===`multipoint`?u.featureSet.features.push(g):i.geometry.type===`extent`&&(g.geometry=c.fromExtent(i.geometry).toJSON(),a.featureSet.features.push(g))}}let _=[a,o,u,s,d].filter(e=>e.featureSet.features.length>0);for(let e of _){let t=e.featureSet.features.every(e=>e.symbol);if(t&&(!n||!n.forceFeatureAttributes))for(let t of e.featureSet.features)delete t.attributes;t&&delete e.layerDefinition.drawingInfo,e.layerDefinition.drawingInfo?.renderer&&(await X(e.layerDefinition.drawingInfo.renderer),await J(e.layerDefinition.drawingInfo.renderer,r))}return _.length?{featureCollection:{layers:_},showLabels:i}:null}async function V(e,t,n){let r,i=e.renderer,a=parseFloat(n.cimVersion);if(e.featureReduction?.type===`binning`||e.featureReduction?.type===`cluster`&&(a<2.9||e.featureReduction.renderer?.type===`pie-chart`)||i?.type===`pie-chart`&&a<3.1||i?.type===`dot-density`&&a<2.6||e.geometryType===`polygon`&&i?.authoringInfo?.visualVariables?.some(e=>e.theme===`spike`))return G(e,t,n);e.legendEnabled&&n.legendLayers.push({id:e.id});let o=t.layerView,{printTemplate:s,view:c}=t,l=e.source?.type!==`feature-layer`&&e.source?.type!==`ogc-feature`;if(!o.filter&&!l&&i&&(!(`field`in i)||i.field==null||e.getField(i.field))){if(r=(e=>({id:e.id,title:e.title,url:e.url,layerType:e.layerType,customParameters:e.customParameters,layerDefinition:e.layerDefinition,charts:s.includeCharts?e.charts:void 0}))(Q(e)),s.attributionVisible&&(r.credits=y(e)),r.showLabels=s.showLabels&&e.labelsVisible&&!!e.labelingInfo&&e.labelingInfo.length>0,K(r,e),delete r.layerDefinition?.featureReduction?.disablePopup,delete r.layerDefinition?.featureReduction?.popupInfo,o.displayFilterEnabled||delete r.layerDefinition?.displayFilterInfo,r.layerDefinition?.drawingInfo?.renderer&&(delete r.layerDefinition.minScale,delete r.layerDefinition.maxScale,await X(r.layerDefinition.drawingInfo.renderer),await J(r.layerDefinition.drawingInfo.renderer,n),`visualVariables`in i&&i.visualVariables?.[0])){let e=i.visualVariables[0];if(e.type===`size`&&e.maxSize&&typeof e.maxSize!=`number`&&e.minSize&&typeof e.minSize!=`number`){let t=d(e,c.scale);r.layerDefinition.drawingInfo.renderer.visualVariables[0].minSize=t.minSize,r.layerDefinition.drawingInfo.renderer.visualVariables[0].maxSize=t.maxSize}}let t=u(o);if(t&&(r.layerDefinition??={},r.layerDefinition.definitionExpression=r.layerDefinition.definitionExpression?`(${r.layerDefinition.definitionExpression}) AND (${t})`:t),e.gdbVersion&&(r.layerDefinition??={},r.layerDefinition.gdbVersion=e.gdbVersion),o.hasHighlight&&`highlightIds`in o){let t=o;r.selectionObjectIds=t.highlightIds;let n=t.highlightOptions??c.defaultHighlight??new C;r.selectionSymbol=b(e.geometryType,n)}}else r=await B(e,await Z(o),s,n);return r}async function H(e,t,n){return e.featureReduction?.type===`binning`||e.featureReduction?.type===`cluster`?G(e,t,n):(e.legendEnabled&&n.legendLayers.push({id:e.id}),B(e,await Z(t.layerView),t.printTemplate,n))}async function U(e,{printTemplate:t},n){return B(e,null,t,n)}function W(e,t){e.legendEnabled&&t.legendLayers.push({id:e.id});let n=(e=>({layerType:e.layerType,customParameters:e.customParameters}))(Q(e));return n.bandIds=e.bandIds,n.compressionQuality=e.compressionQuality,n.format=e.format,n.interpolation=e.interpolation,(e.mosaicRule||e.definitionExpression)&&(n.mosaicRule=e.exportImageServiceParameters.mosaicRule.toJSON()),e.rasterFunction&&(n.renderingRule=e.rasterFunction.toJSON()),e.renderer&&(n.layerDefinition??={},n.layerDefinition.drawingInfo??={},n.layerDefinition.drawingInfo.renderer=e.renderer.toJSON()),K(n,e),n}async function ue(e,t,n){if(e.renderer?.type===`flow`||!e.supportsWrite())return G(e,t,n);e.legendEnabled&&n.legendLayers.push({id:e.id});let r=(e=>({bandIds:e.bandIds,customParameters:e.customParameters,interpolation:e.interpolation,layerDefinition:e.layerDefinition}))(Q(e));return r.layerType=`ArcGISImageServiceLayer`,K(r,e),r}async function de(e,t,n){let r=t.printTemplate;if(!e.portalItem||e.portalItem.access===`public`){let t=Q(e,`web-map`);return t.type=`kml`,delete t.layerType,t.url=s(e.url),t}let i=[],a=t.layerView;a.allVisibleMapImages.forEach((t,n)=>{let r={id:`${e.id}_image${n}`,type:`image`,title:e.id,minScale:e.minScale||0,maxScale:e.maxScale||0,opacity:a.fullOpacity,extent:t.extent};t.href.startsWith(`data:image/png;base64,`)?r.imageData=t.href.slice(22):r.url=t.href,i.push(r)});let o=[...a.allVisiblePoints.items,...a.allVisiblePolylines.items,...a.allVisiblePolygons.items],c={id:e.id,...await B(null,o,r,n)};return i.push(c),i}function fe(e,{outScale:t,printTemplate:n,view:r},i){let a,o={id:e.id,subLayerIds:[]},s=[],c=t||r.scale,l=e=>{let t=c===0,n=e.minScale===0||c<=e.minScale,r=e.maxScale===0||c>=e.maxScale;if(e.visible&&(t||n&&r)){if(e.sublayers)e.sublayers.forEach(l);else{let t=e.toExportImageJSON(),n={id:e.id,name:e.title,layerDefinition:{definitionExpression:t.definitionExpression,drawingInfo:t.drawingInfo,orderBy:t.orderBy,source:t.source}};s.unshift(n),o.subLayerIds.push(e.id)}}};return e.sublayers?.forEach(l),s.length&&(s=s.map(({id:e,name:t,layerDefinition:n})=>({id:e,name:t,layerDefinition:n})),a=(e=>({layerType:e.layerType,customParameters:e.customParameters}))(Q(e)),a.layers=s,a.visibleLayers=e.capabilities?.exportMap?.supportsDynamicLayers?void 0:o.subLayerIds,n.attributionVisible&&(a.credits=y(e)),e.gdbVersion&&(a.gdbVersion=e.gdbVersion),K(a,e),e.legendEnabled&&i.legendLayers.push(o)),a}async function pe({layerView:e,printTemplate:t},n){let r=[],i=e.layer;if(i.featureCollections!=null)for(let e of i.featureCollections){let i=await B(e,e.source,t,n);i&&r.push(...i.featureCollection.layers)}else if(i.sublayers!=null)for(let e of i.sublayers){let i=await B(null,e.graphics,t,n);i&&r.push(...i.featureCollection.layers)}return{featureCollection:{layers:r}}}function me(){return{type:`OpenStreetMap`}}async function he(e,{printTemplate:t},n){let r=[];if(e.featureCollections!=null)for(let i of e.featureCollections){let e=await B(i,i.source,t,n);e&&r.push(...e.featureCollection.layers)}else{let i=await B(null,e.graphics,t,n);i&&r.push(...i.featureCollection.layers)}return{featureCollection:{layers:r}}}async function G(e,{printTemplate:t,view:n},i){let a={type:`image`};i.screenshotLayers.push(e.id);let s={format:`png`,ignoreBackground:!0,ignorePadding:!0,layers:[e]};n.rotation!==0&&(s.rotation=0);let c=i.ssExtent||n.state.extent.clone(),l=96,u=!0,d=!0;if(t.exportOptions){let e=t.exportOptions;e.dpi!=null&&e.dpi>0&&(l=e.dpi),e.width!=null&&e.width>0&&(u=e.width%2==n.width%2),e.height!=null&&e.height>0&&(d=e.height%2==n.height%2)}if(t.layout===`map-only`&&t.scalePreserved&&(!t.outScale||t.outScale===n.scale)&&l===96&&(!u||!d)&&n.state.extent.equals(n.extent)&&(s.area={x:0,y:0,width:n.width,height:n.height},u||--s.area.width,d||--s.area.height,!i.ssExtent)){let e=n.toMap(r(s.area.width,s.area.height));c.ymin=e.y,c.xmax=e.x,i.ssExtent=c}a.extent=c.clone()._normalize(!0).toJSON();let f=await n.takeScreenshot(s);return a.imageData=o(f.dataUrl)?.data,a}async function ge(e,{layerView:t,printTemplate:n},r){return e.legendEnabled&&r.legendLayers.push({id:e.id}),B(e,await Z(t),n,r)}async function _e(e,t){if(e.legendEnabled)for(let n of e.sublayers)n.legendEnabled&&t.legendLayers.push({id:n.id});let n=(e=>({customParameters:e.customParameters,effect:e.effect,layerDefinition:e.layerDefinition,layerType:e.layerType,layers:e.layers,url:e.url}))(Q(e));if(K(n,e),Array.isArray(n.layers)){for(let e of n.layers)delete e.popupInfo;n.token&&n.layers.length>0&&(n.layers[n.layers.length-1].token=n.token,delete n.token)}return n}async function ve(e){let t=[],n=[];for(let t of e.map.allTables)t.type===`feature`&&!t.loaded&&n.push(t.load());n.length&&await Promise.allSettled(n);for(let n of e.map.allTables)if(n.type===`feature`&&n.loaded&&n.isTable&&n.source?.type===`feature-layer`){let e=(e=>({id:e.id,title:e.title,customParameters:e.customParameters,layerDefinition:{definitionExpression:e.layerDefinition?.definitionExpression},url:e.url}))(Q(n));K(e,n),t.push(e)}return t.length?t:void 0}function ye(e,t){e.legendEnabled&&t.legendLayers.push({id:e.id});let n=(e=>({layerType:e.layerType,customParameters:e.customParameters}))(Q(e));return K(n,e),n}async function be(e,t,n){let r=t.layerView;if(e.serviceUrl&&e.styleUrl&&!r.spriteSourceChanged&&!r.styleChanged){let t=p(e.styleUrl,e.apiKey),r=p(e.serviceUrl,e.apiKey);if(!t&&!r||n.cimVersion!==`2.1.0`){let n={type:`VectorTileLayer`};return n.styleUrl=s(e.styleUrl),n.token=t,r!==t&&(n.additionalTokens=[{url:e.serviceUrl,token:r}]),n}}return G(e,t,n)}function xe(e){let t={type:`WebTiledLayer`,urlTemplate:e.urlTemplate?.replaceAll("${",`{`),credits:e.copyright};return e.subDomains&&e.subDomains.length>0&&(t.subDomains=e.subDomains),t}async function Se(e,t,n){return parseFloat(n.cimVersion)<3.5?G(e,t,n):(e.legendEnabled&&n.legendLayers.push({id:e.id}),(e=>({layerType:e.layerType,layerDefinition:e.layerDefinition,url:e.url,wfsInfo:e.wfsInfo}))(Q(e,`web-map`)))}function Ce(e,t){let n,r=[],i=e=>{e.visible&&(e.sublayers?e.sublayers.forEach(i):e.name&&r.unshift(e.name))};return e.sublayers&&e.sublayers.forEach(i),r.length&&(e.legendEnabled&&t.legendLayers.push({id:e.id,subLayerIds:r}),n={type:`wms`,customLayerParameters:e.customLayerParameters,customParameters:e.customParameters,transparentBackground:e.imageTransparency,visibleLayers:r,url:s(e.url),version:e.version}),n}function we(e){let t=e.activeLayer;return{type:`wmts`,customLayerParameters:e.customLayerParameters,customParameters:e.customParameters,format:t.imageFormat,layer:t.id,style:t.styleId,tileMatrixSet:t.tileMatrixSetId,url:s(e.url)}}function K(e,t){t.url&&(e.url=s(e.url||t.url),e.token=p(e.url,t.apiKey))}async function q(e,n){n.canvas||=document.createElement(`canvas`);let r=1024;n.canvas.width=r,n.canvas.height=r;let o=n.canvas.getContext(`2d`),s,c;if(e.path){let t=new Path2D(e.path);t.closePath(),o.fillStyle=Array.isArray(e.color)?`rgba(${e.color[0]},${e.color[1]},${e.color[2]},${e.color[3]/255})`:`rgb(0,0,0)`,o.fill(t);let n=S(o);if(!n)return null;o.clearRect(0,0,r,r);let a=i(e.size)/Math.max(n.width,n.height);o.scale(a,a);let l=r/a,u=l/2-n.width/2-n.x,d=l/2-n.height/2-n.y;if(o.translate(u,d),Array.isArray(e.color)&&o.fill(t),e.outline?.width&&Array.isArray(e.outline.color)){let r=e.outline;o.lineWidth=i(r.width)/a,o.lineJoin=`round`,o.strokeStyle=`rgba(${r.color[0]},${r.color[1]},${r.color[2]},${r.color[3]/255})`,o.stroke(t),n.width+=o.lineWidth,n.height+=o.lineWidth}n.width*=a,n.height*=a;let f=o.getImageData(r/2-n.width/2,r/2-n.height/2,Math.ceil(n.width),Math.ceil(n.height));s=f.width,c=f.height,o.canvas.width=s,o.canvas.height=c,o.putImageData(f,0,0)}else{let n=e.contentType===`image/svg+xml`?`data:image/svg+xml;base64,`+e.imageData:e.url,r=(await t(n,{responseType:`image`})).data;s=i(e.width),c=i(e.height),o.canvas.width=s,o.canvas.height=c,o.drawImage(r,0,0,o.canvas.width,o.canvas.height)}return{type:`esriPMS`,imageData:o.canvas.toDataURL(`image/png`).slice(22),angle:e.angle,contentType:`image/png`,height:a(c),width:a(s),xoffset:e.xoffset,yoffset:e.yoffset}}async function J(e,t){let n=e.type;if(n===`simple`&&$(e.symbol))e.symbol=await q(e.symbol,t)??{type:`esriSMS`,color:[0,0,0,0],size:0,style:`esriSMSSquare`};else if(n===`uniqueValue`){if($(e.defaultSymbol)&&(e.defaultSymbol=await q(e.defaultSymbol,t)),`uniqueValueInfos`in e&&e.uniqueValueInfos)for(let n of e.uniqueValueInfos)$(n.symbol)&&(n.symbol=await q(n.symbol,t));if(`uniqueValueGroups`in e&&e.uniqueValueGroups)for(let n of e.uniqueValueGroups)for(let e of n.classes)$(e.symbol)&&(e.symbol=await q(e.symbol,t))}else if(n===`classBreaks`){$(e.defaultSymbol)&&(e.defaultSymbol=await q(e.defaultSymbol,t));for(let n of e.classBreakInfos)$(n.symbol)&&(n.symbol=await q(n.symbol,t))}}async function Y(e){if(e?.type!==`styleSymbolReference`)return e;try{return(await ce.fromJSON(e).fetchSymbol())?.toJSON()??e}catch{return e}}async function X(e){if(e.type===`simple`&&e.symbol)e.symbol=await Y(e.symbol);else if(e.type===`uniqueValue`){if(e.defaultSymbol=await Y(e.defaultSymbol),`uniqueValueInfos`in e&&e.uniqueValueInfos)for(let t of e.uniqueValueInfos)t.symbol=await Y(t.symbol);if(`uniqueValueGroups`in e&&e.uniqueValueGroups)for(let t of e.uniqueValueGroups)for(let e of t.classes)e.symbol=await Y(e.symbol)}else if(e.type===`classBreaks`){e.defaultSymbol=await Y(e.defaultSymbol);for(let t of e.classBreakInfos)t.symbol=await Y(t.symbol)}}async function Z(e){return e.queryFeatures(e.createQuery()).then(e=>e.features)}function Q(e,t){return e.write({},{ignorePersistenceEnabled:!0,origin:t})??{}}function Te(e){return e.gpMetadata?.executionType?E.fromJSON(e.gpMetadata.executionType):`sync`}function $(e){return e&&(e.path||e.contentType===`image/svg+xml`||e.url?.endsWith(`.svg`))}export{le as execute,N as getGpPrintParams,F as getGpServerUrl,k as getMode,O as getPrintCache,M as getTaskExecutionMode,j as getTaskInfo,A as getTaskInfos,D as printCacheMap};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../Color.js";import t
|
|
2
|
+
import e from"../../Color.js";import{isInEffectiveScaleRange as t}from"../../geometry/support/scaleUtils.js";import n from"../../symbols/SimpleFillSymbol.js";import r from"../../symbols/SimpleLineSymbol.js";import i from"../../symbols/SimpleMarkerSymbol.js";function a(){return{layerDefinition:{name:`multipointLayer`,geometryType:`esriGeometryMultipoint`,drawingInfo:{renderer:null}},featureSet:{geometryType:`esriGeometryMultipoint`,features:[]}}}function o(){return{layerDefinition:{name:`polygonLayer`,geometryType:`esriGeometryPolygon`,drawingInfo:{renderer:null}},featureSet:{geometryType:`esriGeometryPolygon`,features:[]}}}function s(){return{layerDefinition:{name:`pointLayer`,geometryType:`esriGeometryPoint`,drawingInfo:{renderer:null}},featureSet:{geometryType:`esriGeometryPoint`,features:[]}}}function c(){return{layerDefinition:{name:`polylineLayer`,geometryType:`esriGeometryPolyline`,drawingInfo:{renderer:null}},featureSet:{geometryType:`esriGeometryPolyline`,features:[]}}}function l(e,t=15){let n=e.canvas.width,r=e.canvas.height,i=e.getImageData(0,0,n,r).data,a,o,s,c,l,u;o1:for(o=r;o--;)for(a=n;a--;)if(i[(n*o+a)*4+3]>t){u=o;break o1}if(!u)return null;o2:for(a=n;a--;)for(o=u+1;o--;)if(i[(n*o+a)*4+3]>t){l=a;break o2}o3:for(a=0;a<=l;++a)for(o=u+1;o--;)if(i[(n*o+a)*4+3]>t){s=a;break o3}o4:for(o=0;o<=u;++o)for(a=s;a<=l;++a)if(i[(n*o+a)*4+3]>t){c=o;break o4}return{x:s,y:c,width:l-s,height:u-c}}function u(e){if(!e.attributionVisible)return;let t;if(typeof e.originOf==`function`&&e.originOf(`copyright`)===`user`&&(t=e.copyright),t||!e.hasAttributionData)return t??=e.portalItem?.accessInformation,t??=e.copyright,t??void 0}function d(t,a){let o=a.color?.clone()??new e([0,255,255]),s=a.haloColor?.clone()??o.clone();switch(t){case`envelope`:case`polygon`:return o.a*=a.fillOpacity??.25,new n({color:o,outline:new r({color:s}),style:`solid`});case`polyline`:return new r({color:s});default:return s.a=1,new i({color:s,outline:null})}}function f(e,n){let r=e.allLayerViews.items;if(n===e.scale)return r.filter(e=>!e.suspended);let i=[];for(let e of r){let r=e.parent;(!r||r===e.view||!h(r)&&!g(r)||i.includes(r))&&e.visible&&e.visibleAtCurrentTimeExtent&&t(e.layer.effectiveScaleRange,n)&&i.push(e)}return i}function p(e){return e?.type===`bing-maps`}function m(e){return e&&`blendMode`in e&&`effect`in e}function h(e){return e.layer.type===`catalog`}function g(e){return e.layer.type===`group`}function _(e){return e&&`trackInfo`in e}function v(e){let t=e.layer;if(m(t)){let n=t.blendMode;if((!n||n===`normal`)&&(t.effect||`featureEffect`in e&&e.featureEffect))return!0}return!!(_(t)&&t.trackInfo?.enabled)}export{a as createMultipointLayer,s as createPointLayer,o as createPolygonLayer,c as createPolylineLayer,l as getContextBoundingBox,u as getCopyright,d as getSelectionSymbol,f as getVisibleLayerViews,p as isBingMapsLayer,m as isBlendLayer,v as isScreenshotRequired};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{createUniqueColors as e}from"../../core/colorUtils.js";import t from"../../core/Error.js";import{clone as n}from"../../core/lang.js";import{ensureClass as r}from"../../core/accessorSupport/ensureType.js";import{fetchMessageBundle as i}from"../../intl/messages.js";import a from"../../renderers/ClassBreaksRenderer.js";import o from"../../renderers/PointCloudRGBRenderer.js";import s from"../../renderers/PointCloudStretchRenderer.js";import c from"../../renderers/support/AuthoringInfo.js";import l from"../../renderers/support/AuthoringInfoVisualVariable.js";import{setLabelsForClassBreaks as u,createColorStops as d}from"../../renderers/support/utils.js";import f from"../../renderers/visualVariables/ColorVariable.js";import p from"../../renderers/visualVariables/support/ColorStop.js";import m from"../../renderers/visualVariables/support/VisualVariableLegendOptions.js";import h from"../heuristics/ageUnit.js";import g from"../heuristics/outline.js";import _ from"../heuristics/sizeRange.js";import{spliceVisualVariables as v,updateAuthoringInfoVisualVariable as y,processRegenerateParams as b,getRendererToUpdate as x,getStyleType as S,hasOutlineVV as C,hasScaleDependentSizeVV as w,findColorVVIndex as T,findOutlineVVIndex as E,findScaleDependentSizeVVIndex as D}from"./support/regenerateUtils.js";import{resolveDataSeriesInfo as O}from"./support/timeSeriesUtils.js";import{errorCallback as k,getTitleAndExpressionForAgeRenderer as A,updateAgeRendererAuthoringInfoVV as j,getClassBreaks as M,getSummaryStatistics as N,getPointSizeAlgorithm as P,createSymbol as F,getSymbolOutlineFromScheme as I,getSymbolSizeFromScheme as L,verifyBasicFieldValidity as R,isValidPointSize as z,getDefaultDataRange as ee,createDefaultStopValues as te,createStopValues as ne,getDataRange as re,createDataValues as ie,getBasemapInfo as ae}from"./support/utils.js";import B from"../statistics/summaryStatisticsForTimeSeries.js";import{verifyDates as oe,supportedAgeUnits as V}from"../statistics/support/ageUtils.js";import{verifyBinningParams as H}from"../support/binningUtils.js";import{isAnyDateField as U,getNormalizationType as se,getFieldsList as W}from"../support/utils.js";import{createLayerAdapter as G,featureCapableLayerTypes as K,getLayerTypeLabels as q,binningCapableLayerTypes as J}from"../support/adapters/support/layerUtils.js";import{cloneScheme as Y,createScheme as ce,getSchemes as le,getSchemeById as ue}from"../symbology/color.js";import{getColorSchemeDefinition as de}from"../symbology/support/utils.js";const fe=2**53-1;async function pe(e){let n=O({...e});if(!(n&&n.layer&&(n.field||n.valueExpression||n.sqlExpression)))throw new t(`color-visual-variable:missing-parameters`,`'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required`);if(n.valueExpression&&!n.sqlExpression&&!n.view)throw new t(`color-visual-variable:missing-parameters`,`View is required when 'valueExpression' is specified`);n.forBinning&&H(n,`color-visual-variable`);let r={...n},i=n.forBinning?J:K,a=G(r.layer,i,n.forBinning);if(!a)throw new t(`color-visual-variable:invalid-parameters`,`'layer' must be one of these types: `+q(i).join(`, `));let o=r.signal==null?null:{signal:r.signal};if(await a.load(o),a.geometryType!==`mesh`&&r.worldScale&&r.view?.type!==`3d`)throw new t(`color-visual-variable:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'worldScale' parameter is true`);let s=await W({field:r.field,normalizationField:r.normalizationField,valueExpression:r.valueExpression}),c=R(a,s,`color-visual-variable:invalid-parameters`);if(c)throw c;return{...r,layer:a}}async function me(e){let n=O({...e});if(!(n&&n.layer&&(n.field||n.valueExpression||n.sqlExpression)))throw new t(`color-continuous-renderer:missing-parameters`,`'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required`);if(n.valueExpression&&!n.sqlExpression&&!n.view)throw new t(`color-continuous-renderer:missing-parameters`,`View is required when 'valueExpression' is specified`);n.forBinning&&H(n,`color-continuous-renderer`);let r={...n};r.symbolType=r.symbolType||`2d`,r.defaultSymbolEnabled??=!0;let i=n.forBinning?J:K,a=G(r.layer,i,n.forBinning);if(!a)throw new t(`color-continuous-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(i).join(`, `));let o=r.signal==null?null:{signal:r.signal};await a.load(o);let s=a.geometryType;r.outlineOptimizationEnabled=s===`polygon`&&r.outlineOptimizationEnabled;let c=`featureReduction`in r.layer&&r.layer.featureReduction?.type===`cluster`;if(r.sizeOptimizationEnabled=(s===`point`||s===`multipoint`||s===`polyline`)&&!c&&r.sizeOptimizationEnabled,s===`mesh`)r.symbolType=`3d-volumetric`,r.colorMixMode=r.colorMixMode||`replace`,r.edgesType=r.edgesType||`none`;else if(r.symbolType===`3d-volumetric-uniform`&&s!==`point`)throw new t(`color-continuous-renderer:not-supported`,`3d-volumetric-uniform symbols are supported for point layers only`);else if(r.symbolType.includes(`3d-volumetric`)&&r.view?.type!==`3d`)throw new t(`color-continuous-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'`);let l=await W({field:r.field,normalizationField:r.normalizationField,valueExpression:r.valueExpression}),u=R(a,l,`color-continuous-renderer:invalid-parameters`);if(u)throw u;return{...r,layer:a}}async function he(e){let n=O({...e});if(!(n&&n.layer&&(n.field||n.valueExpression)))throw new t(`color-class-breaks-renderer:missing-parameters`,`'layer' and 'field' or 'valueExpression' parameters are required`);if(n.valueExpression&&!n.view)throw new t(`color-class-breaks-renderer:missing-parameters`,`View is required when 'valueExpression' is specified`);n.forBinning&&H(n,`color-class-breaks-renderer`);let r={...n};r.symbolType=r.symbolType||`2d`,r.defaultSymbolEnabled??=!0,r.classificationMethod??=`equal-interval`,r.normalizationType=se(r);let i=n.forBinning?J:K,a=G(r.layer,i,n.forBinning);if(!a)throw new t(`color-class-breaks-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(i).join(`, `));if((r.minValue==null||r.maxValue==null)&&(r.minValue!=null||r.maxValue!=null))throw new t(`color-class-breaks-renderer:missing-parameters`,`Both 'minValue' and 'maxValue' are required when specifying custom data range`);let o=r.signal==null?null:{signal:r.signal};await a.load(o);let s=a.geometryType;if(r.outlineOptimizationEnabled=s===`polygon`&&r.outlineOptimizationEnabled,s===`mesh`)r.symbolType=`3d-volumetric`,r.colorMixMode=r.colorMixMode||`replace`,r.edgesType=r.edgesType||`none`;else if(r.symbolType===`3d-volumetric-uniform`&&s!==`point`)throw new t(`color-class-breaks-renderer:not-supported`,`3d-volumetric-uniform symbols are supported for point layers only`);else if(r.symbolType.includes(`3d-volumetric`)&&r.view?.type!==`3d`)throw new t(`color-class-breaks-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'`);let c=await W({field:r.field,normalizationField:r.normalizationField}),l=R(a,c,`color-class-breaks-renderer:invalid-parameters`);if(l)throw l;return{...r,layer:a}}function ge(e){let t={...e};delete t.basemap,delete t.colorScheme,delete t.legendOptions,delete t.symbolType,delete t.defaultSymbolEnabled,delete t.colorMixMode,delete t.edgesType;let n=t;return n.analyzeData=t.minValue==null||t.maxValue==null,n}async function _e(e){if(!e?.layer)throw new t(`color-point-cloud-true-color-renderer:missing-parameters`,`'layer' parameter is required`);let n={...e,layer:e.layer},r=[10],i=G(n.layer,r);if(!i)throw new t(`color-point-cloud-true-color-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(r).join(`, `));if(n.layer=i,n.density=n.density||25,n.size=n.size||`100%`,!z(n.size))throw new t(`color-point-cloud-true-color-renderer:invalid-parameters`,`Invalid 'size' parameter. It should be a string of the form '100%'`);let a=n.signal==null?null:{signal:n.signal};return await i.load(a),n}async function ve(e){if(!(e?.layer&&e.field))throw new t(`color-point-cloud-continuous-renderer:missing-parameters`,`'layer' and 'field' parameters are required`);let n=e.field.toLowerCase();if(n!==`intensity`&&n!==`elevation`)throw new t(`color-point-cloud-continuous-renderer:invalid-parameters`,`'field' should be either 'intensity' or 'elevation'`);let r={...e,layer:e.layer,field:e.field},i=[10],a=G(r.layer,i);if(!a)throw new t(`color-point-cloud-continuous-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(i).join(`, `));if(r.layer=a,r.density=r.density||25,r.size=r.size||`100%`,!z(r.size))throw new t(`color-point-cloud-continuous-renderer:invalid-parameters`,`Invalid 'size' parameter. It should be a string of the form '100%'`);let o=r.signal==null?null:{signal:r.signal};return await a.load(o),r}function X(e){let t={...e},n=!!t.symbolType?.includes(`3d-volumetric`);delete t.symbolType,delete t.defaultSymbolEnabled,delete t.colorMixMode,delete t.edgesType;let r=t;return r.worldScale=n,r}async function ye(e){if(!(e&&e.layer&&e.view&&e.startTime&&e.endTime))throw new t(`color-age-renderer:missing-parameters`,`'layer', 'view', startTime', 'endTime' parameters are required`);let n={...e};n.symbolType=n.symbolType||`2d`,n.defaultSymbolEnabled??=!0;let r=G(n.layer,K);if(!r)throw new t(`color-age-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(K).join(`, `));let i=n.signal==null?null:{signal:n.signal};await r.load(i);let a=r.geometryType;n.outlineOptimizationEnabled=a===`polygon`&&n.outlineOptimizationEnabled;let o=`featureReduction`in n.layer&&n.layer.featureReduction?.type===`cluster`;if(n.sizeOptimizationEnabled=(a===`point`||a===`multipoint`||a===`polyline`)&&!o&&n.sizeOptimizationEnabled,a===`mesh`)n.symbolType=`3d-volumetric`,n.colorMixMode=n.colorMixMode||`replace`,n.edgesType=n.edgesType||`none`;else if(n.symbolType===`3d-volumetric-uniform`&&a!==`point`)throw new t(`color-continuous-renderer:not-supported`,`3d-volumetric-uniform symbols are supported for point layers only`);if(n.symbolType.includes(`3d-volumetric`)&&!(n.view&&n.view.type===`3d`))throw new t(`color-age-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'`);let s=oe(r,n.startTime,n.endTime,`color-age-renderer:invalid-parameters`);if(s)throw s;if(n.unit&&!V.includes(n.unit))throw new t(`color-age-renderer:invalid-unit`,`Supported units are: ${V.join(`, `)}`);return{...n,layer:r}}async function be(e){let n=`regenerate-color-visual-variable`;await b(e,n);let r=await x(e);if(r?.type!==`class-breaks`)throw new t(`${n}:invalid-parameters`,`Renderer must be a ClassBreaksRenderer to regenerate a color visual variable`);let i=r.authoringInfo,a=i?.visualVariables.find(e=>e.type===`color`),o=r.visualVariables?.find(e=>e.type===`color`);if(!o)throw new t(`${n}:invalid-parameters`,`Renderer does not have a color visual variable`);let{field:s,normalizationField:c,valueExpression:l,valueExpressionTitle:u}=o,d=i?.type===`univariate-color-size`?i?.univariateTheme:a?.theme,{layer:f,forBinning:p,filter:m,view:h,signal:g}=e,_=a?.dataSeriesName,v=a?.dataSeriesCalculationName,y=await pe({layer:f,field:s,valueExpression:l,valueExpressionTitle:u,normalizationField:c,theme:d,forBinning:p,dataSeriesName:_,dataSeriesCalculationName:v,filter:m,view:h,signal:g});return{...e,creatorParameters:y,renderer:r}}async function xe(e){let n=`regenerate-color-continuous-renderer`;await b(e,n);let r=await x(e),i=S(r);if(!i||![`color-continuous`,`color-size`].includes(i))throw new t(`${n}:invalid-renderer`,`Renderer is invalid`);let{authoringInfo:a,field:o,normalizationField:s,valueExpression:c,valueExpressionTitle:l}=r,u=a?.visualVariables.find(e=>e.type===`color`),d=u?.theme,{layer:f,forBinning:p,filter:m,view:h,signal:g}=e,_=u?.dataSeriesName,v=u?.dataSeriesCalculationName,y=await me({layer:f,field:o,valueExpression:c,valueExpressionTitle:l,normalizationField:s,theme:d,outlineOptimizationEnabled:C(r),sizeOptimizationEnabled:w(r),forBinning:p,dataSeriesName:_,dataSeriesCalculationName:v,filter:m,view:h,signal:g});return{...e,creatorParameters:y,renderer:r}}async function Se(e){let n=`regenerate-color-class-breaks-renderer`;await b(e,n);let r=await x(e);if(S(r)!==`color-class-breaks`)throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{authoringInfo:i,field:a,normalizationField:o,normalizationType:s,normalizationTotal:c,valueExpression:l,valueExpressionTitle:u}=r,{classificationMethod:d,standardDeviationInterval:f}=i,p=r.classBreakInfos.length,{layer:m,forBinning:h,filter:g,view:_,signal:v}=e,y=i?.dataSeriesName,w=i?.dataSeriesCalculationName,T=await he({layer:m,field:a,valueExpression:l,valueExpressionTitle:u,normalizationType:s,normalizationField:o,normalizationTotal:c,classificationMethod:d,standardDeviationInterval:f,numClasses:p,outlineOptimizationEnabled:C(r),defaultSymbolEnabled:!!r.defaultSymbol,forBinning:h,dataSeriesName:y,dataSeriesCalculationName:w,filter:g,view:_,signal:v});return{...e,creatorParameters:T,renderer:r}}async function Ce(e){let n=`regenerate-color-age-renderer`;await b(e,n);let r=await x(e);if(S(r)!==`color-age`)throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{authoringInfo:i}=r,a=i?.visualVariables.find(e=>e.type===`color`),o=a.startTime,s=a.endTime,c=a.units,l=a.theme,{layer:u,filter:d,view:f,signal:p}=e,m=await ye({layer:u,startTime:o,endTime:s,unit:c,theme:l,outlineOptimizationEnabled:C(r),sizeOptimizationEnabled:w(r),filter:d,view:f,signal:p});return{...e,creatorParameters:m,renderer:r}}async function Z(e,t){let n=e.colorScheme,r=null,i=null,{view:a}=e,o=await ae(e.basemap,a);if(r=o.basemapId==null?null:o.basemapId,i=o.basemapTheme==null?null:o.basemapTheme,n)return{scheme:Y(n),basemapId:r,basemapTheme:i};let s=e.theme||`high-to-low`,c=le({theme:s,basemapTheme:i,geometryType:e.geometryType,worldScale:e.worldScale,view:a});if(c){if(r=c.basemapId,i=c.basemapTheme,e.schemeId){let t=s+`/`+r+`/`+e.schemeId;n=ue({id:t,geometryType:e.geometryType})}else n=c.primaryScheme}return{scheme:n,basemapId:r,basemapTheme:i}}function we(e,t){let n=de(e);return ce({geometryType:t},void 0,n.commonProps,n.colorRampInfo)}async function Te(n,r){let i=r.layer,a=await Z({basemap:r.basemap,colorScheme:r.colorScheme,geometryType:i.geometryType,schemeId:r.field.toLowerCase()===`elevation`?`point-cloud-elevation-scheme`:`point-cloud-intensity-scheme`}),o=a.scheme;if(!o)throw new t(`color-point-cloud-continuous-renderer:insufficient-info`,`Unable to find color scheme`);let s=e(o.colors,5);if(s.length<5)throw new t(`color-point-cloud-continuous-renderer:insufficient-info`,`Color scheme does not have enough colors`);let c=ee(n,!1,!0),l=c?te(c[0],c[1],5):ne(n);return{stops:d({values:l,isDate:!1,colors:s,labelIndexes:[0,2,4]}),basemapId:a.basemapId,basemapTheme:a.basemapTheme,statistics:n,defaultValuesUsed:!!c,colorScheme:Y(o)}}function Ee(e,t,n,r){let i=re(e,t,n,!0);return{values:ie(i,e,t,r),defaultValuesUsed:i.defaultValuesUsed}}async function De(n,i,a,o){let{field:s,theme:u}=n,d=await Z({basemap:n.basemap,theme:n.theme,geometryType:a,colorScheme:n.colorScheme,worldScale:n.worldScale,view:n.view}),h=d.scheme;if(!h)throw new t(`color-visual-variable:insufficient-info`,`Unable to find color scheme`);let g=e(h.colors,5);if(g.length<5)throw new t(`color-visual-variable:insufficient-info`,`Color scheme does not have enough colors`);let{values:_,defaultValuesUsed:v}=Ee(i,u,o,h.id.includes(`seq-`)),y=e(g,5),b=new f({field:s??void 0,valueExpression:n.valueExpression,valueExpressionTitle:n.valueExpressionTitle,normalizationField:n.normalizationField,stops:_.map((e,t)=>new p({value:e,color:y[t]})),legendOptions:r(m,n.legendOptions)}),x=new l({type:`color`,minSliderValue:n.minValue==null?i.min:n.minValue,maxSliderValue:n.maxValue==null?i.max:n.maxValue,theme:h.theme,dataSeriesName:n.dataSeriesName,dataSeriesCalculationName:n.dataSeriesCalculationName}),S=new c({visualVariables:[x]});return{basemapId:d.basemapId,basemapTheme:d.basemapTheme,visualVariable:b,statistics:i,defaultValuesUsed:v,colorScheme:Y(h),authoringInfo:S}}async function Oe(e,t,n,r,o,s,c){let l=await i(`esri/smartMapping/t9n/smartMapping`),{field:u,defaultSymbolEnabled:d}=c,f=Y(e.colorScheme),p=t?.opacity,m=[e.visualVariable.clone()];return t?.visualVariables?.length&&m.push(...t.visualVariables.map(e=>e.clone())),n?.minSize&&m.push(n.minSize),{renderer:new a({classBreakInfos:[{minValue:-fe,maxValue:fe,symbol:F(s,{type:c.symbolType,color:f.noDataColor,size:L(f,s),outline:I(f,s,p),meshInfo:{colorMixMode:c.colorMixMode,edgesType:c.edgesType}})}],defaultLabel:d?l.other:null,defaultSymbol:d?F(s,{type:c.symbolType,color:f.noDataColor,size:L(f,s),outline:I(f,s,p),meshInfo:{colorMixMode:c.colorMixMode,edgesType:c.edgesType}}):null,field:u,normalizationType:r,normalizationField:o,valueExpression:c.valueExpression,valueExpressionTitle:c.valueExpressionTitle,visualVariables:m,authoringInfo:e.authoringInfo&&e.authoringInfo.clone()}),visualVariable:e.visualVariable.clone(),statistics:e.statistics,defaultValuesUsed:e.defaultValuesUsed,colorScheme:Y(e.colorScheme),basemapId:e.basemapId,basemapTheme:e.basemapTheme}}async function Q(e){let t=await pe(e),{view:n,field:r,valueExpression:i,minValue:a,maxValue:o,layer:s,normalizationField:c,signal:l,filter:u,statistics:d,dataSeriesName:f,dataSeriesCalculationName:p}=t,m=c?`field`:void 0,h=await(d??(f?B({layer:s,view:n,signal:l,timeSeriesName:f,timeSeriesCalculationName:p,filter:u}):N({layer:s,field:r,valueExpression:i,sqlExpression:t.sqlExpression,sqlWhere:t.sqlWhere,normalizationType:m,normalizationField:c,minValue:a,maxValue:o,filter:u,view:n,signal:l}))),g=s,_=r&&typeof r!=`function`?g.getField(r):null;return await De(t,h,g.geometryType,U(_))}async function ke(t){let{view:n,filter:r,creatorParameters:i,renderer:a,signal:o}=await be(t),s=a.authoringInfo?.clone(),c=s?.visualVariables.find(e=>e.type===`color`),l=a.visualVariables?.find(e=>e.type===`color`),{field:u,normalizationField:d,valueExpression:f,valueExpressionTitle:m,theme:h,layer:g,dataSeriesName:_,dataSeriesCalculationName:v}=i,y=_?await B({layer:g,view:n,signal:o,timeSeriesName:_,timeSeriesCalculationName:v,filter:r}):await N({layer:g,field:u,valueExpression:f,normalizationField:d,filter:r,view:n,signal:o}),b=u&&typeof u!=`function`?g.getField(u):null,{values:x}=Ee(y,h,U(b),h===`high-to-low`);if(x.length===l.stops.length)l.stops.forEach((e,t)=>e.value=x[t]);else{let t=l.stops.map(e=>e.color),n=e(t,5);l.stops=x.map((e,t)=>new p({value:e,color:n[t]}))}return _&&(l.valueExpression=f??null,l.valueExpressionTitle=m??null,c&&(c.dataSeriesName=_,c.dataSeriesCalculationName=v)),c&&(c.minSliderValue=y.min,c.maxSliderValue=y.max),{visualVariable:l,authoringInfo:s,statistics:y}}function Ae(t,r){let i=t.colorsForClassBreaks;if(i?.length){for(let e of i)if(e.numClasses===r)return n(e.colors)}return e(t.colors,r)}async function $(e,n){let r=await i(`esri/smartMapping/t9n/smartMapping`),o=e.layer,s=e.defaultSymbolEnabled,l=o.geometryType,d=e.classificationMethod,f=d===`standard-deviation`,p=await Z({basemap:e.basemap,geometryType:l,theme:f?`above-and-below`:null,colorScheme:e.colorScheme,worldScale:!!e.symbolType?.includes(`3d-volumetric`),view:e.view}),m=p.scheme,{result:h,outlineResult:g}=n,_=h.classBreakInfos,v=e.normalizationType;if(!m)throw new t(`color-class-breaks-renderer:insufficient-info`,`Unable to find color scheme`);let y=Ae(m,_.length);if(!y||y.length!==_.length)throw new t(`color-class-breaks-renderer:insufficient-info`,`Color scheme does not have enough colors`);let b=g?.opacity,x=new a({classBreakInfos:_.map((t,n)=>({minValue:t.minValue,maxValue:t.maxValue,symbol:F(l,{type:e.symbolType,color:y[n],size:L(m,l),outline:I(m,l,b),meshInfo:{colorMixMode:e.colorMixMode,edgesType:e.edgesType}}),label:t.label})),defaultLabel:s?r.other:null,defaultSymbol:s?F(l,{type:e.symbolType,color:m.noDataColor,size:L(m,l),outline:I(m,l,b),meshInfo:{colorMixMode:e.colorMixMode,edgesType:e.edgesType}}):null,field:e.field,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,normalizationType:v,normalizationField:e.normalizationField,normalizationTotal:v===`percent-of-total`?h.normalizationTotal:void 0,legendOptions:e.legendOptions,authoringInfo:new c({type:`class-breaks-color`,classificationMethod:d,standardDeviationInterval:e.standardDeviationInterval,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName})});return f||u({classBreakInfos:x.classBreakInfos,classificationMethod:d,normalizationType:v,round:!0}),g?.visualVariables?.length&&(x.visualVariables=g.visualVariables.map(e=>e.clone())),{renderer:x,colorScheme:Y(m),classBreaksResult:h,defaultValuesUsed:n.defaultValuesUsed,basemapId:p.basemapId,basemapTheme:p.basemapTheme}}async function je(e){let t=await me(e),{layer:n,view:r,signal:i,filter:a}=t,[o,s,c]=await Promise.all([Q(X(t)),t.outlineOptimizationEnabled?g({layer:n,view:r,signal:i,filter:a}).catch(k):null,t.sizeOptimizationEnabled?_({layer:n,view:r,signal:i,filter:a}).catch(k):null]),l=t.normalizationField;return Oe(o,s,c,l?`field`:void 0,l,n.geometryType,t)}async function Me(e){let{renderer:t,view:n,signal:r,filter:i,creatorParameters:a}=await xe(e),{layer:o,outlineOptimizationEnabled:s,sizeOptimizationEnabled:c,valueExpression:l,valueExpressionTitle:u}=a,[d,f,p]=await Promise.all([ke(e),s?g({layer:o,view:n,signal:r,filter:i}).catch(k):null,c?_({layer:o,view:n,signal:r,filter:i}).catch(k):null]);return v(t,d.visualVariable,T),v(t,f?.visualVariables,E),v(t,p?.minSize,D),a.dataSeriesName&&(t.valueExpression=l??null,t.valueExpressionTitle=u??null),y(t,d.authoringInfo,`color`),{renderer:t}}async function Ne(e){let t=await he(e);return $(t,await M(ge(t),t.outlineOptimizationEnabled))}async function Pe(e){let{renderer:t,creatorParameters:n}=await Se(e),{normalizationType:r,outlineOptimizationEnabled:i,classificationMethod:a,valueExpression:o,valueExpressionTitle:s}=n;if(a===`manual`)return{renderer:t};let c=await M(ge(n),i),l=c.result.classBreakInfos;if(n.numClasses!==l.length){let e=we(t.classBreakInfos.map(e=>e.symbol),n.layer.geometryType);return{renderer:(await $({...n,colorScheme:e},c)).renderer}}return t.classBreakInfos.forEach((e,t)=>{e.minValue=l[t].minValue,e.maxValue=l[t].maxValue,e.label=l[t].label}),t.normalizationTotal=r===`percent-of-total`?c.result.normalizationTotal:void 0,a!==`standard-deviation`&&u({classBreakInfos:t.classBreakInfos,classificationMethod:a,normalizationType:r,round:!0}),v(t,c.outlineResult?.visualVariables,E),n.dataSeriesName&&(t.valueExpression=o??null,t.valueExpressionTitle=s??null),{renderer:t}}function Fe(e){return _e(e).then(e=>({renderer:new o({field:`RGB`,pointsPerInch:e.density??void 0,pointSizeAlgorithm:P(e.size)})}))}async function Ie(e){let t=await ve(e),n=await Te(t.statistics??await N({layer:t.layer,field:t.field,signal:t.signal}),t);return{renderer:new s({field:t.field,pointsPerInch:t.density??void 0,pointSizeAlgorithm:P(t.size),stops:n.stops}),basemapId:n.basemapId,basemapTheme:n.basemapTheme,statistics:n.statistics,defaultValuesUsed:n.defaultValuesUsed,colorScheme:n.colorScheme}}async function Le(e){let t=await ye(e),{defaultSymbolEnabled:n,view:r,startTime:i,endTime:a,symbolType:o,colorMixMode:s,edgesType:c,minValue:l,maxValue:u,signal:d,filter:f}=t,p=t.layer,[m,v,y]=await Promise.all([t.unit?{unit:t.unit,statistics:null}:h({view:r,layer:p,startTime:i,endTime:a,minValue:l,maxValue:u,signal:d,filter:f}),t.outlineOptimizationEnabled?g({layer:p,view:r,signal:d,filter:f}).catch(k):null,t.sizeOptimizationEnabled?_({layer:p,view:r,signal:d,filter:f}).catch(k):null]),{unit:b,statistics:x}=m,{valueExpression:S,title:C}=await A(t,b),w=await Q(X({layer:p,basemap:t.basemap,valueExpression:S,symbolType:o,statistics:x,legendOptions:{title:C},colorScheme:t.colorScheme,theme:t.theme,view:r,minValue:t.minValue,maxValue:t.maxValue,filter:f,signal:d})),T={valueExpression:S,defaultSymbolEnabled:n,symbolType:o,colorMixMode:s,edgesType:c},E=await Oe(w,v,y,null,null,p.geometryType,T);return(E.renderer.authoringInfo?.visualVariables)?.forEach(e=>j(e,i,a,b)),{...E,unit:b}}async function Re(e){let{renderer:t,creatorParameters:n}=await Ce(e),{layer:r,outlineOptimizationEnabled:i,sizeOptimizationEnabled:a,startTime:o,endTime:s,theme:c,view:l,signal:u,filter:d}=n,[f,p,m]=await Promise.all([h({view:l,layer:r,startTime:o,endTime:s,signal:u,filter:d}),i?g({layer:r,view:l,signal:u,filter:d}).catch(k):null,a?_({layer:r,view:l,signal:u,filter:d}).catch(k):null]),{unit:y,statistics:b}=f,{valueExpression:x,title:S}=await A(n,y),C=await Q(X({layer:r,valueExpression:x,statistics:b,legendOptions:{title:S},theme:c,view:l,filter:d,signal:u}));return v(t,C.visualVariable,T),v(t,p?.visualVariables,E),v(t,m?.minSize,D),t.authoringInfo=C.authoringInfo.clone(),(t.authoringInfo?.visualVariables)?.forEach(e=>j(e,o,s,y)),{renderer:t}}export{Le as createAgeRenderer,Ne as createClassBreaksRenderer,je as createContinuousRenderer,Ie as createPCContinuousRenderer,Fe as createPCTrueColorRenderer,Q as createVisualVariable,Re as regenerateAgeRenderer,Pe as regenerateClassBreaksRenderer,Me as regenerateContinuousRenderer,ke as regenerateVisualVariable};
|
|
2
|
+
import{createUniqueColors as e}from"../../core/colorUtils.js";import t from"../../core/Error.js";import{clone as n}from"../../core/lang.js";import{ensureClass as r}from"../../core/accessorSupport/ensureType.js";import{fetchMessageBundle as i}from"../../intl/messages.js";import a from"../../renderers/ClassBreaksRenderer.js";import o from"../../renderers/PointCloudRGBRenderer.js";import s from"../../renderers/PointCloudStretchRenderer.js";import c from"../../renderers/support/AuthoringInfo.js";import l from"../../renderers/support/AuthoringInfoVisualVariable.js";import{setLabelsForClassBreaks as u,createColorStops as d}from"../../renderers/support/utils.js";import f from"../../renderers/visualVariables/ColorVariable.js";import p from"../../renderers/visualVariables/support/ColorStop.js";import m from"../../renderers/visualVariables/support/VisualVariableLegendOptions.js";import h from"../heuristics/ageUnit.js";import g from"../heuristics/outline.js";import _ from"../heuristics/sizeRange.js";import{spliceVisualVariables as v,updateAuthoringInfoVisualVariable as y,processRegenerateParams as b,getRendererToUpdate as x,getStyleType as S,hasOutlineVV as C,hasScaleDependentSizeVV as w,findColorVVIndex as T,findOutlineVVIndex as E,findScaleDependentSizeVVIndex as D}from"./support/regenerateUtils.js";import{resolveDataSeriesInfo as O}from"./support/timeSeriesUtils.js";import{errorCallback as k,getTitleAndExpressionForAgeRenderer as A,updateAgeRendererAuthoringInfoVV as j,getClassBreaks as M,getSummaryStatistics as N,getPointSizeAlgorithm as P,createSymbol as F,getSymbolOutlineFromScheme as I,getSymbolSizeFromScheme as L,verifyBasicFieldValidity as R,isValidPointSize as z,getDefaultDataRange as ee,createDefaultStopValues as te,createStopValues as ne,getDataRange as re,createDataValues as ie,getBasemapInfo as ae}from"./support/utils.js";import B from"../statistics/summaryStatisticsForTimeSeries.js";import{verifyDates as oe,supportedAgeUnits as V}from"../statistics/support/ageUtils.js";import{verifyBinningParams as H}from"../support/binningUtils.js";import{isAnyDateField as U,getNormalizationType as se,getFieldsList as W}from"../support/utils.js";import{createLayerAdapter as G,featureCapableLayerTypes as K,getLayerTypeLabels as q,binningCapableLayerTypes as J}from"../support/adapters/support/layerUtils.js";import{cloneScheme as Y,createScheme as ce,getSchemes as le,getSchemeById as ue}from"../symbology/color.js";import{getColorSchemeDefinition as de}from"../symbology/support/utils.js";const fe=2**53-1;async function pe(e){let n=O({...e});if(!(n&&n.layer&&(n.field||n.valueExpression||n.sqlExpression)))throw new t(`color-visual-variable:missing-parameters`,`'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required`);if(n.valueExpression&&!n.sqlExpression&&!n.view)throw new t(`color-visual-variable:missing-parameters`,`View is required when 'valueExpression' is specified`);n.forBinning&&H(n,`color-visual-variable`);let r={...n},i=n.forBinning?J:K,a=G(r.layer,i,n.forBinning);if(!a)throw new t(`color-visual-variable:invalid-parameters`,`'layer' must be one of these types: `+q(i).join(`, `));let o=r.signal==null?null:{signal:r.signal};if(await a.load(o),a.geometryType!==`mesh`&&r.worldScale&&r.view?.type!==`3d`)throw new t(`color-visual-variable:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'worldScale' parameter is true`);let s=await W({field:r.field,normalizationField:r.normalizationField,valueExpression:r.valueExpression}),c=R(a,s,`color-visual-variable:invalid-parameters`);if(c)throw c;return{...r,layer:a}}async function me(e){let n=O({...e});if(!(n&&n.layer&&(n.field||n.valueExpression||n.sqlExpression)))throw new t(`color-continuous-renderer:missing-parameters`,`'layer' and 'field', 'valueExpression' or 'sqlExpression' parameters are required`);if(n.valueExpression&&!n.sqlExpression&&!n.view)throw new t(`color-continuous-renderer:missing-parameters`,`View is required when 'valueExpression' is specified`);n.forBinning&&H(n,`color-continuous-renderer`);let r={...n};r.symbolType=r.symbolType||`2d`,r.defaultSymbolEnabled??=!0;let i=n.forBinning?J:K,a=G(r.layer,i,n.forBinning);if(!a)throw new t(`color-continuous-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(i).join(`, `));let o=r.signal==null?null:{signal:r.signal};await a.load(o);let s=a.geometryType;r.outlineOptimizationEnabled=s===`polygon`&&r.outlineOptimizationEnabled;let c=`featureReduction`in r.layer&&r.layer.featureReduction?.type===`cluster`;if(r.sizeOptimizationEnabled=(s===`point`||s===`multipoint`||s===`polyline`)&&!c&&r.sizeOptimizationEnabled,s===`mesh`)r.symbolType=`3d-volumetric`,r.colorMixMode=r.colorMixMode||`replace`,r.edgesType=r.edgesType||`none`;else if(r.symbolType===`3d-volumetric-uniform`&&s!==`point`)throw new t(`color-continuous-renderer:not-supported`,`3d-volumetric-uniform symbols are supported for point layers only`);else if(r.symbolType.includes(`3d-volumetric`)&&r.view?.type!==`3d`)throw new t(`color-continuous-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'`);let l=await W({field:r.field,normalizationField:r.normalizationField,valueExpression:r.valueExpression}),u=R(a,l,`color-continuous-renderer:invalid-parameters`);if(u)throw u;return{...r,layer:a}}async function he(e){let n=O({...e});if(!(n&&n.layer&&(n.field||n.valueExpression)))throw new t(`color-class-breaks-renderer:missing-parameters`,`'layer' and 'field' or 'valueExpression' parameters are required`);if(n.valueExpression&&!n.view)throw new t(`color-class-breaks-renderer:missing-parameters`,`View is required when 'valueExpression' is specified`);n.forBinning&&H(n,`color-class-breaks-renderer`);let r={...n};r.symbolType=r.symbolType||`2d`,r.defaultSymbolEnabled??=!0,r.classificationMethod??=`equal-interval`,r.normalizationType=se(r);let i=n.forBinning?J:K,a=G(r.layer,i,n.forBinning);if(!a)throw new t(`color-class-breaks-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(i).join(`, `));if((r.minValue==null||r.maxValue==null)&&(r.minValue!=null||r.maxValue!=null))throw new t(`color-class-breaks-renderer:missing-parameters`,`Both 'minValue' and 'maxValue' are required when specifying custom data range`);let o=r.signal==null?null:{signal:r.signal};await a.load(o);let s=a.geometryType;if(r.outlineOptimizationEnabled=s===`polygon`&&r.outlineOptimizationEnabled,s===`mesh`)r.symbolType=`3d-volumetric`,r.colorMixMode=r.colorMixMode||`replace`,r.edgesType=r.edgesType||`none`;else if(r.symbolType===`3d-volumetric-uniform`&&s!==`point`)throw new t(`color-class-breaks-renderer:not-supported`,`3d-volumetric-uniform symbols are supported for point layers only`);else if(r.symbolType.includes(`3d-volumetric`)&&r.view?.type!==`3d`)throw new t(`color-class-breaks-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'`);let c=await W({field:r.field,normalizationField:r.normalizationField}),l=R(a,c,`color-class-breaks-renderer:invalid-parameters`);if(l)throw l;return{...r,layer:a}}function ge(e){let t={...e};delete t.basemap,delete t.colorScheme,delete t.legendOptions,delete t.symbolType,delete t.defaultSymbolEnabled,delete t.colorMixMode,delete t.edgesType;let n=t;return n.analyzeData=t.minValue==null||t.maxValue==null,n}async function _e(e){if(!e?.layer)throw new t(`color-point-cloud-true-color-renderer:missing-parameters`,`'layer' parameter is required`);let n={...e,layer:e.layer},r=[12],i=G(n.layer,r);if(!i)throw new t(`color-point-cloud-true-color-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(r).join(`, `));if(n.layer=i,n.density=n.density||25,n.size=n.size||`100%`,!z(n.size))throw new t(`color-point-cloud-true-color-renderer:invalid-parameters`,`Invalid 'size' parameter. It should be a string of the form '100%'`);let a=n.signal==null?null:{signal:n.signal};return await i.load(a),n}async function ve(e){if(!(e?.layer&&e.field))throw new t(`color-point-cloud-continuous-renderer:missing-parameters`,`'layer' and 'field' parameters are required`);let n=e.field.toLowerCase();if(n!==`intensity`&&n!==`elevation`)throw new t(`color-point-cloud-continuous-renderer:invalid-parameters`,`'field' should be either 'intensity' or 'elevation'`);let r={...e,layer:e.layer,field:e.field},i=[12],a=G(r.layer,i);if(!a)throw new t(`color-point-cloud-continuous-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(i).join(`, `));if(r.layer=a,r.density=r.density||25,r.size=r.size||`100%`,!z(r.size))throw new t(`color-point-cloud-continuous-renderer:invalid-parameters`,`Invalid 'size' parameter. It should be a string of the form '100%'`);let o=r.signal==null?null:{signal:r.signal};return await a.load(o),r}function X(e){let t={...e},n=!!t.symbolType?.includes(`3d-volumetric`);delete t.symbolType,delete t.defaultSymbolEnabled,delete t.colorMixMode,delete t.edgesType;let r=t;return r.worldScale=n,r}async function ye(e){if(!(e&&e.layer&&e.view&&e.startTime&&e.endTime))throw new t(`color-age-renderer:missing-parameters`,`'layer', 'view', startTime', 'endTime' parameters are required`);let n={...e};n.symbolType=n.symbolType||`2d`,n.defaultSymbolEnabled??=!0;let r=G(n.layer,K);if(!r)throw new t(`color-age-renderer:invalid-parameters`,`'layer' must be one of these types: `+q(K).join(`, `));let i=n.signal==null?null:{signal:n.signal};await r.load(i);let a=r.geometryType;n.outlineOptimizationEnabled=a===`polygon`&&n.outlineOptimizationEnabled;let o=`featureReduction`in n.layer&&n.layer.featureReduction?.type===`cluster`;if(n.sizeOptimizationEnabled=(a===`point`||a===`multipoint`||a===`polyline`)&&!o&&n.sizeOptimizationEnabled,a===`mesh`)n.symbolType=`3d-volumetric`,n.colorMixMode=n.colorMixMode||`replace`,n.edgesType=n.edgesType||`none`;else if(n.symbolType===`3d-volumetric-uniform`&&a!==`point`)throw new t(`color-continuous-renderer:not-supported`,`3d-volumetric-uniform symbols are supported for point layers only`);if(n.symbolType.includes(`3d-volumetric`)&&!(n.view&&n.view.type===`3d`))throw new t(`color-age-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'`);let s=oe(r,n.startTime,n.endTime,`color-age-renderer:invalid-parameters`);if(s)throw s;if(n.unit&&!V.includes(n.unit))throw new t(`color-age-renderer:invalid-unit`,`Supported units are: ${V.join(`, `)}`);return{...n,layer:r}}async function be(e){let n=`regenerate-color-visual-variable`;await b(e,n);let r=await x(e);if(r?.type!==`class-breaks`)throw new t(`${n}:invalid-parameters`,`Renderer must be a ClassBreaksRenderer to regenerate a color visual variable`);let i=r.authoringInfo,a=i?.visualVariables.find(e=>e.type===`color`),o=r.visualVariables?.find(e=>e.type===`color`);if(!o)throw new t(`${n}:invalid-parameters`,`Renderer does not have a color visual variable`);let{field:s,normalizationField:c,valueExpression:l,valueExpressionTitle:u}=o,d=i?.type===`univariate-color-size`?i?.univariateTheme:a?.theme,{layer:f,forBinning:p,filter:m,view:h,signal:g}=e,_=a?.dataSeriesName,v=a?.dataSeriesCalculationName,y=await pe({layer:f,field:s,valueExpression:l,valueExpressionTitle:u,normalizationField:c,theme:d,forBinning:p,dataSeriesName:_,dataSeriesCalculationName:v,filter:m,view:h,signal:g});return{...e,creatorParameters:y,renderer:r}}async function xe(e){let n=`regenerate-color-continuous-renderer`;await b(e,n);let r=await x(e),i=S(r);if(!i||![`color-continuous`,`color-size`].includes(i))throw new t(`${n}:invalid-renderer`,`Renderer is invalid`);let{authoringInfo:a,field:o,normalizationField:s,valueExpression:c,valueExpressionTitle:l}=r,u=a?.visualVariables.find(e=>e.type===`color`),d=u?.theme,{layer:f,forBinning:p,filter:m,view:h,signal:g}=e,_=u?.dataSeriesName,v=u?.dataSeriesCalculationName,y=await me({layer:f,field:o,valueExpression:c,valueExpressionTitle:l,normalizationField:s,theme:d,outlineOptimizationEnabled:C(r),sizeOptimizationEnabled:w(r),forBinning:p,dataSeriesName:_,dataSeriesCalculationName:v,filter:m,view:h,signal:g});return{...e,creatorParameters:y,renderer:r}}async function Se(e){let n=`regenerate-color-class-breaks-renderer`;await b(e,n);let r=await x(e);if(S(r)!==`color-class-breaks`)throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{authoringInfo:i,field:a,normalizationField:o,normalizationType:s,normalizationTotal:c,valueExpression:l,valueExpressionTitle:u}=r,{classificationMethod:d,standardDeviationInterval:f}=i,p=r.classBreakInfos.length,{layer:m,forBinning:h,filter:g,view:_,signal:v}=e,y=i?.dataSeriesName,w=i?.dataSeriesCalculationName,T=await he({layer:m,field:a,valueExpression:l,valueExpressionTitle:u,normalizationType:s,normalizationField:o,normalizationTotal:c,classificationMethod:d,standardDeviationInterval:f,numClasses:p,outlineOptimizationEnabled:C(r),defaultSymbolEnabled:!!r.defaultSymbol,forBinning:h,dataSeriesName:y,dataSeriesCalculationName:w,filter:g,view:_,signal:v});return{...e,creatorParameters:T,renderer:r}}async function Ce(e){let n=`regenerate-color-age-renderer`;await b(e,n);let r=await x(e);if(S(r)!==`color-age`)throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{authoringInfo:i}=r,a=i?.visualVariables.find(e=>e.type===`color`),o=a.startTime,s=a.endTime,c=a.units,l=a.theme,{layer:u,filter:d,view:f,signal:p}=e,m=await ye({layer:u,startTime:o,endTime:s,unit:c,theme:l,outlineOptimizationEnabled:C(r),sizeOptimizationEnabled:w(r),filter:d,view:f,signal:p});return{...e,creatorParameters:m,renderer:r}}async function Z(e,t){let n=e.colorScheme,r=null,i=null,{view:a}=e,o=await ae(e.basemap,a);if(r=o.basemapId==null?null:o.basemapId,i=o.basemapTheme==null?null:o.basemapTheme,n)return{scheme:Y(n),basemapId:r,basemapTheme:i};let s=e.theme||`high-to-low`,c=le({theme:s,basemapTheme:i,geometryType:e.geometryType,worldScale:e.worldScale,view:a});if(c){if(r=c.basemapId,i=c.basemapTheme,e.schemeId){let t=s+`/`+r+`/`+e.schemeId;n=ue({id:t,geometryType:e.geometryType})}else n=c.primaryScheme}return{scheme:n,basemapId:r,basemapTheme:i}}function we(e,t){let n=de(e);return ce({geometryType:t},void 0,n.commonProps,n.colorRampInfo)}async function Te(n,r){let i=r.layer,a=await Z({basemap:r.basemap,colorScheme:r.colorScheme,geometryType:i.geometryType,schemeId:r.field.toLowerCase()===`elevation`?`point-cloud-elevation-scheme`:`point-cloud-intensity-scheme`}),o=a.scheme;if(!o)throw new t(`color-point-cloud-continuous-renderer:insufficient-info`,`Unable to find color scheme`);let s=e(o.colors,5);if(s.length<5)throw new t(`color-point-cloud-continuous-renderer:insufficient-info`,`Color scheme does not have enough colors`);let c=ee(n,!1,!0),l=c?te(c[0],c[1],5):ne(n);return{stops:d({values:l,isDate:!1,colors:s,labelIndexes:[0,2,4]}),basemapId:a.basemapId,basemapTheme:a.basemapTheme,statistics:n,defaultValuesUsed:!!c,colorScheme:Y(o)}}function Ee(e,t,n,r){let i=re(e,t,n,!0);return{values:ie(i,e,t,r),defaultValuesUsed:i.defaultValuesUsed}}async function De(n,i,a,o){let{field:s,theme:u}=n,d=await Z({basemap:n.basemap,theme:n.theme,geometryType:a,colorScheme:n.colorScheme,worldScale:n.worldScale,view:n.view}),h=d.scheme;if(!h)throw new t(`color-visual-variable:insufficient-info`,`Unable to find color scheme`);let g=e(h.colors,5);if(g.length<5)throw new t(`color-visual-variable:insufficient-info`,`Color scheme does not have enough colors`);let{values:_,defaultValuesUsed:v}=Ee(i,u,o,h.id.includes(`seq-`)),y=e(g,5),b=new f({field:s??void 0,valueExpression:n.valueExpression,valueExpressionTitle:n.valueExpressionTitle,normalizationField:n.normalizationField,stops:_.map((e,t)=>new p({value:e,color:y[t]})),legendOptions:r(m,n.legendOptions)}),x=new l({type:`color`,minSliderValue:n.minValue==null?i.min:n.minValue,maxSliderValue:n.maxValue==null?i.max:n.maxValue,theme:h.theme,dataSeriesName:n.dataSeriesName,dataSeriesCalculationName:n.dataSeriesCalculationName}),S=new c({visualVariables:[x]});return{basemapId:d.basemapId,basemapTheme:d.basemapTheme,visualVariable:b,statistics:i,defaultValuesUsed:v,colorScheme:Y(h),authoringInfo:S}}async function Oe(e,t,n,r,o,s,c){let l=await i(`esri/smartMapping/t9n/smartMapping`),{field:u,defaultSymbolEnabled:d}=c,f=Y(e.colorScheme),p=t?.opacity,m=[e.visualVariable.clone()];return t?.visualVariables?.length&&m.push(...t.visualVariables.map(e=>e.clone())),n?.minSize&&m.push(n.minSize),{renderer:new a({classBreakInfos:[{minValue:-fe,maxValue:fe,symbol:F(s,{type:c.symbolType,color:f.noDataColor,size:L(f,s),outline:I(f,s,p),meshInfo:{colorMixMode:c.colorMixMode,edgesType:c.edgesType}})}],defaultLabel:d?l.other:null,defaultSymbol:d?F(s,{type:c.symbolType,color:f.noDataColor,size:L(f,s),outline:I(f,s,p),meshInfo:{colorMixMode:c.colorMixMode,edgesType:c.edgesType}}):null,field:u,normalizationType:r,normalizationField:o,valueExpression:c.valueExpression,valueExpressionTitle:c.valueExpressionTitle,visualVariables:m,authoringInfo:e.authoringInfo&&e.authoringInfo.clone()}),visualVariable:e.visualVariable.clone(),statistics:e.statistics,defaultValuesUsed:e.defaultValuesUsed,colorScheme:Y(e.colorScheme),basemapId:e.basemapId,basemapTheme:e.basemapTheme}}async function Q(e){let t=await pe(e),{view:n,field:r,valueExpression:i,minValue:a,maxValue:o,layer:s,normalizationField:c,signal:l,filter:u,statistics:d,dataSeriesName:f,dataSeriesCalculationName:p}=t,m=c?`field`:void 0,h=await(d??(f?B({layer:s,view:n,signal:l,timeSeriesName:f,timeSeriesCalculationName:p,filter:u}):N({layer:s,field:r,valueExpression:i,sqlExpression:t.sqlExpression,sqlWhere:t.sqlWhere,normalizationType:m,normalizationField:c,minValue:a,maxValue:o,filter:u,view:n,signal:l}))),g=s,_=r&&typeof r!=`function`?g.getField(r):null;return await De(t,h,g.geometryType,U(_))}async function ke(t){let{view:n,filter:r,creatorParameters:i,renderer:a,signal:o}=await be(t),s=a.authoringInfo?.clone(),c=s?.visualVariables.find(e=>e.type===`color`),l=a.visualVariables?.find(e=>e.type===`color`),{field:u,normalizationField:d,valueExpression:f,valueExpressionTitle:m,theme:h,layer:g,dataSeriesName:_,dataSeriesCalculationName:v}=i,y=_?await B({layer:g,view:n,signal:o,timeSeriesName:_,timeSeriesCalculationName:v,filter:r}):await N({layer:g,field:u,valueExpression:f,normalizationField:d,filter:r,view:n,signal:o}),b=u&&typeof u!=`function`?g.getField(u):null,{values:x}=Ee(y,h,U(b),h===`high-to-low`);if(x.length===l.stops.length)l.stops.forEach((e,t)=>e.value=x[t]);else{let t=l.stops.map(e=>e.color),n=e(t,5);l.stops=x.map((e,t)=>new p({value:e,color:n[t]}))}return _&&(l.valueExpression=f??null,l.valueExpressionTitle=m??null,c&&(c.dataSeriesName=_,c.dataSeriesCalculationName=v)),c&&(c.minSliderValue=y.min,c.maxSliderValue=y.max),{visualVariable:l,authoringInfo:s,statistics:y}}function Ae(t,r){let i=t.colorsForClassBreaks;if(i?.length){for(let e of i)if(e.numClasses===r)return n(e.colors)}return e(t.colors,r)}async function $(e,n){let r=await i(`esri/smartMapping/t9n/smartMapping`),o=e.layer,s=e.defaultSymbolEnabled,l=o.geometryType,d=e.classificationMethod,f=d===`standard-deviation`,p=await Z({basemap:e.basemap,geometryType:l,theme:f?`above-and-below`:null,colorScheme:e.colorScheme,worldScale:!!e.symbolType?.includes(`3d-volumetric`),view:e.view}),m=p.scheme,{result:h,outlineResult:g}=n,_=h.classBreakInfos,v=e.normalizationType;if(!m)throw new t(`color-class-breaks-renderer:insufficient-info`,`Unable to find color scheme`);let y=Ae(m,_.length);if(!y||y.length!==_.length)throw new t(`color-class-breaks-renderer:insufficient-info`,`Color scheme does not have enough colors`);let b=g?.opacity,x=new a({classBreakInfos:_.map((t,n)=>({minValue:t.minValue,maxValue:t.maxValue,symbol:F(l,{type:e.symbolType,color:y[n],size:L(m,l),outline:I(m,l,b),meshInfo:{colorMixMode:e.colorMixMode,edgesType:e.edgesType}}),label:t.label})),defaultLabel:s?r.other:null,defaultSymbol:s?F(l,{type:e.symbolType,color:m.noDataColor,size:L(m,l),outline:I(m,l,b),meshInfo:{colorMixMode:e.colorMixMode,edgesType:e.edgesType}}):null,field:e.field,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle,normalizationType:v,normalizationField:e.normalizationField,normalizationTotal:v===`percent-of-total`?h.normalizationTotal:void 0,legendOptions:e.legendOptions,authoringInfo:new c({type:`class-breaks-color`,classificationMethod:d,standardDeviationInterval:e.standardDeviationInterval,dataSeriesName:e.dataSeriesName,dataSeriesCalculationName:e.dataSeriesCalculationName})});return f||u({classBreakInfos:x.classBreakInfos,classificationMethod:d,normalizationType:v,round:!0}),g?.visualVariables?.length&&(x.visualVariables=g.visualVariables.map(e=>e.clone())),{renderer:x,colorScheme:Y(m),classBreaksResult:h,defaultValuesUsed:n.defaultValuesUsed,basemapId:p.basemapId,basemapTheme:p.basemapTheme}}async function je(e){let t=await me(e),{layer:n,view:r,signal:i,filter:a}=t,[o,s,c]=await Promise.all([Q(X(t)),t.outlineOptimizationEnabled?g({layer:n,view:r,signal:i,filter:a}).catch(k):null,t.sizeOptimizationEnabled?_({layer:n,view:r,signal:i,filter:a}).catch(k):null]),l=t.normalizationField;return Oe(o,s,c,l?`field`:void 0,l,n.geometryType,t)}async function Me(e){let{renderer:t,view:n,signal:r,filter:i,creatorParameters:a}=await xe(e),{layer:o,outlineOptimizationEnabled:s,sizeOptimizationEnabled:c,valueExpression:l,valueExpressionTitle:u}=a,[d,f,p]=await Promise.all([ke(e),s?g({layer:o,view:n,signal:r,filter:i}).catch(k):null,c?_({layer:o,view:n,signal:r,filter:i}).catch(k):null]);return v(t,d.visualVariable,T),v(t,f?.visualVariables,E),v(t,p?.minSize,D),a.dataSeriesName&&(t.valueExpression=l??null,t.valueExpressionTitle=u??null),y(t,d.authoringInfo,`color`),{renderer:t}}async function Ne(e){let t=await he(e);return $(t,await M(ge(t),t.outlineOptimizationEnabled))}async function Pe(e){let{renderer:t,creatorParameters:n}=await Se(e),{normalizationType:r,outlineOptimizationEnabled:i,classificationMethod:a,valueExpression:o,valueExpressionTitle:s}=n;if(a===`manual`)return{renderer:t};let c=await M(ge(n),i),l=c.result.classBreakInfos;if(n.numClasses!==l.length){let e=we(t.classBreakInfos.map(e=>e.symbol),n.layer.geometryType);return{renderer:(await $({...n,colorScheme:e},c)).renderer}}return t.classBreakInfos.forEach((e,t)=>{e.minValue=l[t].minValue,e.maxValue=l[t].maxValue,e.label=l[t].label}),t.normalizationTotal=r===`percent-of-total`?c.result.normalizationTotal:void 0,a!==`standard-deviation`&&u({classBreakInfos:t.classBreakInfos,classificationMethod:a,normalizationType:r,round:!0}),v(t,c.outlineResult?.visualVariables,E),n.dataSeriesName&&(t.valueExpression=o??null,t.valueExpressionTitle=s??null),{renderer:t}}function Fe(e){return _e(e).then(e=>({renderer:new o({field:`RGB`,pointsPerInch:e.density??void 0,pointSizeAlgorithm:P(e.size)})}))}async function Ie(e){let t=await ve(e),n=await Te(t.statistics??await N({layer:t.layer,field:t.field,signal:t.signal}),t);return{renderer:new s({field:t.field,pointsPerInch:t.density??void 0,pointSizeAlgorithm:P(t.size),stops:n.stops}),basemapId:n.basemapId,basemapTheme:n.basemapTheme,statistics:n.statistics,defaultValuesUsed:n.defaultValuesUsed,colorScheme:n.colorScheme}}async function Le(e){let t=await ye(e),{defaultSymbolEnabled:n,view:r,startTime:i,endTime:a,symbolType:o,colorMixMode:s,edgesType:c,minValue:l,maxValue:u,signal:d,filter:f}=t,p=t.layer,[m,v,y]=await Promise.all([t.unit?{unit:t.unit,statistics:null}:h({view:r,layer:p,startTime:i,endTime:a,minValue:l,maxValue:u,signal:d,filter:f}),t.outlineOptimizationEnabled?g({layer:p,view:r,signal:d,filter:f}).catch(k):null,t.sizeOptimizationEnabled?_({layer:p,view:r,signal:d,filter:f}).catch(k):null]),{unit:b,statistics:x}=m,{valueExpression:S,title:C}=await A(t,b),w=await Q(X({layer:p,basemap:t.basemap,valueExpression:S,symbolType:o,statistics:x,legendOptions:{title:C},colorScheme:t.colorScheme,theme:t.theme,view:r,minValue:t.minValue,maxValue:t.maxValue,filter:f,signal:d})),T={valueExpression:S,defaultSymbolEnabled:n,symbolType:o,colorMixMode:s,edgesType:c},E=await Oe(w,v,y,null,null,p.geometryType,T);return(E.renderer.authoringInfo?.visualVariables)?.forEach(e=>j(e,i,a,b)),{...E,unit:b}}async function Re(e){let{renderer:t,creatorParameters:n}=await Ce(e),{layer:r,outlineOptimizationEnabled:i,sizeOptimizationEnabled:a,startTime:o,endTime:s,theme:c,view:l,signal:u,filter:d}=n,[f,p,m]=await Promise.all([h({view:l,layer:r,startTime:o,endTime:s,signal:u,filter:d}),i?g({layer:r,view:l,signal:u,filter:d}).catch(k):null,a?_({layer:r,view:l,signal:u,filter:d}).catch(k):null]),{unit:y,statistics:b}=f,{valueExpression:x,title:S}=await A(n,y),C=await Q(X({layer:r,valueExpression:x,statistics:b,legendOptions:{title:S},theme:c,view:l,filter:d,signal:u}));return v(t,C.visualVariable,T),v(t,p?.visualVariables,E),v(t,m?.minSize,D),t.authoringInfo=C.authoringInfo.clone(),(t.authoringInfo?.visualVariables)?.forEach(e=>j(e,o,s,y)),{renderer:t}}export{Le as createAgeRenderer,Ne as createClassBreaksRenderer,je as createContinuousRenderer,Ie as createPCContinuousRenderer,Fe as createPCTrueColorRenderer,Q as createVisualVariable,Re as regenerateAgeRenderer,Pe as regenerateClassBreaksRenderer,Me as regenerateContinuousRenderer,ke as regenerateVisualVariable};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{createUniqueColors as e}from"../../core/colorUtils.js";import t from"../../core/Error.js";import{getResolutionForScale as n}from"../../geometry/support/scaleUtils.js";import r from"../../renderers/DotDensityRenderer.js";import i from"../../renderers/support/AuthoringInfo.js";import a from"../heuristics/outline.js";import{roundValue as o}from"./support/dotDensityUtils.js";import{spliceVisualVariables as s,processRegenerateParams as c,getRendererToUpdate as l,getStyleType as u,hasOutlineVV as d,findOutlineVVIndex as f}from"./support/regenerateUtils.js";import{errorCallback as p,getSymbolOutlineFromScheme as m,verifyBasicFieldValidity as h,getBasemapInfo as g}from"./support/utils.js";import _ from"../statistics/spatialStatistics.js";import v from"../statistics/summaryStatisticsForAttributes.js";import y from"../statistics/support/attributeDensity.js";import{verifyBinningParams as b}from"../support/binningUtils.js";import{getFieldsList as x}from"../support/utils.js";import{binningCapableLayerTypes as S,createLayerAdapter as C,getLayerTypeLabels as w}from"../support/adapters/support/layerUtils.js";import{cloneScheme as T,getSchemes as E}from"../symbology/dotDensity.js";async function D(e){let n=e.view;if(!(e?.layer&&n&&e.attributes?.length))throw new t(`dot-density-renderer:missing-parameters`,`'layer', 'view' and 'attributes' parameters are required`);if(e.attributes.length>8)throw new t(`dot-density-renderer:invalid-parameters`,`Dot density renderer does not support more than 8 attributes`);e.forBinning&&b(e,`dot-density-renderer`);let r={...e,view:n,layer:e.layer,attributes:e.attributes},i=e.forBinning?S:[
|
|
2
|
+
import{createUniqueColors as e}from"../../core/colorUtils.js";import t from"../../core/Error.js";import{getResolutionForScale as n}from"../../geometry/support/scaleUtils.js";import r from"../../renderers/DotDensityRenderer.js";import i from"../../renderers/support/AuthoringInfo.js";import a from"../heuristics/outline.js";import{roundValue as o}from"./support/dotDensityUtils.js";import{spliceVisualVariables as s,processRegenerateParams as c,getRendererToUpdate as l,getStyleType as u,hasOutlineVV as d,findOutlineVVIndex as f}from"./support/regenerateUtils.js";import{errorCallback as p,getSymbolOutlineFromScheme as m,verifyBasicFieldValidity as h,getBasemapInfo as g}from"./support/utils.js";import _ from"../statistics/spatialStatistics.js";import v from"../statistics/summaryStatisticsForAttributes.js";import y from"../statistics/support/attributeDensity.js";import{verifyBinningParams as b}from"../support/binningUtils.js";import{getFieldsList as x}from"../support/utils.js";import{binningCapableLayerTypes as S,createLayerAdapter as C,getLayerTypeLabels as w}from"../support/adapters/support/layerUtils.js";import{cloneScheme as T,getSchemes as E}from"../symbology/dotDensity.js";async function D(e){let n=e.view;if(!(e?.layer&&n&&e.attributes?.length))throw new t(`dot-density-renderer:missing-parameters`,`'layer', 'view' and 'attributes' parameters are required`);if(e.attributes.length>8)throw new t(`dot-density-renderer:invalid-parameters`,`Dot density renderer does not support more than 8 attributes`);e.forBinning&&b(e,`dot-density-renderer`);let r={...e,view:n,layer:e.layer,attributes:e.attributes},i=e.forBinning?S:[5,11,8,9,6,17],a=C(r.layer,i,e.forBinning);if(!a)throw new t(`dot-density-renderer:invalid-parameters`,`'layer' must be one of these types: `+w(i).join(`, `));r.dotBlendingEnabled??=!0,r.dotValueOptimizationEnabled??=!0;let o=r.signal==null?null:{signal:r.signal};if(await Promise.all([n.when(),a.load(o)]),a.geometryType!==`polygon`)throw new t(`dot-density-renderer:not-supported`,`Dot density renderer is supported for polygon layers only`);let s=[],c=r.attributes;for(let e of c){let t=await x({field:e.field,valueExpression:e.valueExpression});s.push(...t)}let l=h(a,s.filter(Boolean),`dot-density-renderer:invalid-parameters`);if(l)throw l;return{...r,layer:a}}async function O(e){let n=`regenerate-dot-density-renderer`;await c(e,n);let r=await l(e);if(u(r)!==`dot-density`)throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{layer:i,forBinning:a,filter:o,view:s,signal:f}=e,p=d(r),m=await D({layer:i,attributes:r.attributes.map(e=>({field:e.field,valueExpression:e.valueExpression,label:e.label,valueExpressionTitle:e.valueExpressionTitle})),dotValueOptimizationEnabled:r.referenceScale!=null,outlineOptimizationEnabled:p,forBinning:a,filter:o,view:s,signal:f});return{...e,creatorParameters:m,renderer:r}}async function k(e){let t=e.dotDensityScheme,n=null,r=null,i=await g(e.basemap,e.view);if(n=i.basemapId==null?null:i.basemapId,r=i.basemapTheme==null?null:i.basemapTheme,t)return{scheme:T(t),basemapId:n,basemapTheme:r};let a=E({numColors:e.attributes.length,basemapTheme:r});return a&&(t=a.primaryScheme,n=a.basemapId,r=a.basemapTheme),{scheme:t,basemapId:n,basemapTheme:r}}function A(e){return{dotValue:1,referenceScale:e.scale,minSliderValue:1,maxSliderValue:100}}async function j(e){let{view:t,layer:r,attributes:i,signal:a,filter:s}=e,c=await r.getSampleFeatures({view:t,sampleSize:500,returnGeometry:!0,filter:s,signal:a},`json`),[l,u]=await Promise.all([_({features:c,geometryType:r.geometryType}),v({layer:r,attributes:i,filter:s,includeZeros:!1,includeNegatives:!1,view:t,signal:a})]),d=l!=null&&`avgSize`in l&&l.avgSize,f=u.avg;if(!d||!f)return A(t);let p=n(t.scale,t.spatialReference),m=d*d/(p*p)*.1;return{dotValue:o(f/m)||1,referenceScale:t.scale,minSliderValue:1,maxSliderValue:o(f)}}async function M(e){let{view:t,layer:r,attributes:i,signal:a,filter:s}=e,c=[];for(let e of i){let t=await x({field:e.field,valueExpression:e.valueExpression});c.push(...t)}let l=await r.getSampleFeatures({view:t,sampleSize:500,requiredFields:c,filter:s,returnGeometry:!0,signal:a},`json`),{minDensity:u,maxDensity:d,avgDensity:f}=await y({features:l,attributes:i,includeZeros:!1,includeNegatives:!1,view:t});if(!f||!u||!d)return A(t);let p=n(t.scale,t.spatialReference),m=p*p,h=o(u*m),g=o(d*m),_=o(f*m*10)||1;return _>g&&(_=g),{dotValue:_,referenceScale:t.scale,minSliderValue:h,maxSliderValue:g}}async function N(n){let o=await D(n),s=o.layer,c=s.geometryType,l=await k(o),u=l?.scheme;if(!u)throw new t(`dot-density-renderer:insufficient-info`,`Unable to find dot-density scheme`);let d=o.view,f=o.filter,h={layer:s,view:d,filter:f,attributes:o.attributes,signal:o.signal},g={layer:o.layer,view:d,filter:f,signal:o.signal},[_,v]=await Promise.all([o.trueDensity?M(h):j(h),o.outlineOptimizationEnabled?a(g).catch(p):null]),{dotValue:y,referenceScale:b,minSliderValue:x,maxSliderValue:S}=_,C=e(u.colors,o.attributes.length),w=o.attributes.map((e,t)=>({field:e.field,valueExpression:e.valueExpression,label:e.label,valueExpressionTitle:e.valueExpressionTitle,color:C[t]})),T=new r({attributes:w,dotBlendingEnabled:o.dotBlendingEnabled,outline:v?m(u,c,v.opacity):null,dotValue:y,referenceScale:o.dotValueOptimizationEnabled?b:null,legendOptions:o.legendOptions});return v?.visualVariables.length&&(T.visualVariables=v.visualVariables.map(e=>e.clone())),T.authoringInfo=new i({type:`dot-density`,minSliderValue:x,maxSliderValue:S}),{renderer:T,dotDensityScheme:u,basemapId:l.basemapId,basemapTheme:l.basemapTheme}}async function P(e){let{creatorParameters:t,renderer:n}=await O(e),{layer:r,attributes:i,outlineOptimizationEnabled:o,view:c,signal:l,filter:u}=t,d={layer:r,view:c,filter:u,attributes:i,signal:l},[m,h]=await Promise.all([t.trueDensity?M(d):j(d),o?a({layer:r,view:c,signal:l,filter:u}).catch(p):null]),{dotValue:g,referenceScale:_,minSliderValue:v,maxSliderValue:y}=m;return n.dotValue=g,n.referenceScale=t.dotValueOptimizationEnabled?_:null,n.authoringInfo&&(n.authoringInfo.minSliderValue=v,n.authoringInfo.maxSliderValue=y),s(n,h?.visualVariables,f),{renderer:n}}export{N as createRenderer,P as regenerateRenderer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../Color.js";import{createUniqueColors as t}from"../../core/colorUtils.js";import n from"../../core/Error.js";import r from"../../renderers/HeatmapRenderer.js";import i from"../../renderers/support/AuthoringInfo.js";import a from"../../renderers/support/HeatmapColorStop.js";import{gaussianBlurRadiusPxToKernelDensityRadiusPt as o}from"../../renderers/support/heatmapUtils.js";import{processRegenerateParams as s,getRendererToUpdate as c,getStyleType as l}from"./support/regenerateUtils.js";import{verifyBasicFieldValidity as u,getBasemapInfo as d}from"./support/utils.js";import f from"../statistics/heatmapStatistics.js";import{getFieldsList as p}from"../support/utils.js";import{createLayerAdapter as m,getLayerTypeLabels as h}from"../support/adapters/support/layerUtils.js";import{cloneScheme as g,getSchemes as _}from"../symbology/heatmap.js";const v=.01,y=[0,.04];async function b(e){if(!(e?.layer&&e.view))throw new n(`heatmap-renderer:missing-parameters`,`'layer' and 'view' parameters are required`);let t={...e,layer:e.layer,view:e.view};t.radius??=t.blurRadius==null?18:o(t.blurRadius),t.minRatio??=.01,t.maxRatio??=1,t.fadeRatio??=.2,t.fadeToTransparent??=!0;let r=[
|
|
2
|
+
import e from"../../Color.js";import{createUniqueColors as t}from"../../core/colorUtils.js";import n from"../../core/Error.js";import r from"../../renderers/HeatmapRenderer.js";import i from"../../renderers/support/AuthoringInfo.js";import a from"../../renderers/support/HeatmapColorStop.js";import{gaussianBlurRadiusPxToKernelDensityRadiusPt as o}from"../../renderers/support/heatmapUtils.js";import{processRegenerateParams as s,getRendererToUpdate as c,getStyleType as l}from"./support/regenerateUtils.js";import{verifyBasicFieldValidity as u,getBasemapInfo as d}from"./support/utils.js";import f from"../statistics/heatmapStatistics.js";import{getFieldsList as p}from"../support/utils.js";import{createLayerAdapter as m,getLayerTypeLabels as h}from"../support/adapters/support/layerUtils.js";import{cloneScheme as g,getSchemes as _}from"../symbology/heatmap.js";const v=.01,y=[0,.04];async function b(e){if(!(e?.layer&&e.view))throw new n(`heatmap-renderer:missing-parameters`,`'layer' and 'view' parameters are required`);let t={...e,layer:e.layer,view:e.view};t.radius??=t.blurRadius==null?18:o(t.blurRadius),t.minRatio??=.01,t.maxRatio??=1,t.fadeRatio??=.2,t.fadeToTransparent??=!0;let r=[3,5,6,8,9,10,11,14,17],i=m(t.layer,r);if(!i)throw new n(`heatmap-renderer:invalid-parameters`,`'layer' must be one of these types: `+h(r).join(`, `));t.layer=i;let a=t.signal==null?null:{signal:t.signal};await i.load(a);let s=await p({field:t.field}),c=u(i,s,`heatmap-renderer:invalid-parameters`);if(c)throw c;return t}async function x(e){let t=`regenerate-heatmap-renderer`;await s(e,t);let r=await c(e);if(l(r)!==`heatmap`)throw new n(`${t}:invalid-parameters`,`Renderer is invalid`);let{layer:i,filter:a,view:o,signal:u}=e,d=await b({layer:i,field:r.field,radius:r.radius,fadeRatio:r.authoringInfo?.fadeRatio,filter:a,view:o,signal:u});return{...e,creatorParameters:d,renderer:r}}async function S(e){let t=e.scheme,n=null,r=null,i=await d(e.basemap,e.view);if(n=i.basemapId==null?null:i.basemapId,r=i.basemapTheme==null?null:i.basemapTheme,t)return{scheme:g(t),basemapId:n,basemapTheme:r};let a=_({basemapTheme:r});return a&&(t=a.primaryScheme,n=a.basemapId,r=a.basemapTheme),{scheme:t,basemapId:n,basemapTheme:r}}async function C(n,o){let{field:s,basemap:c,radius:l,fadeToTransparent:u,heatmapScheme:d,view:f}=o,{scheme:p,basemapId:m,basemapTheme:h}=await S({basemap:c,scheme:d,view:f}),_=p.colors,b=_.length,x=n.min==null,C=x?y:[n.min,n.max],T,E=o.fadeRatio??0,D=o.maxRatio??0,O=o.minRatio??0,k=(D-O)/(b-1),A=_[0],j=u?O:v,M=[new a({ratio:0,color:new e([A.r,A.g,A.b,0])}),new a({ratio:v,color:new e([A.r,A.g,A.b,0])}),new a({ratio:j,color:new e([A.r,A.g,A.b,j])})];return t(_,b).forEach((e,t)=>{let n=O+k*t;M.push(new a({ratio:n,color:e}))}),u&&(w(M,E),T=new i({fadeRatio:E})),{renderer:new r({authoringInfo:T,radius:l,colorStops:M,field:s,minDensity:C[0],maxDensity:C[1]}),statistics:n,defaultValuesUsed:x,scheme:g(p),basemapId:m,basemapTheme:h}}function w(e,t){let n=(1-t)*10+1,r=e.length-3,i=e[2].color.a;e.forEach((e,a)=>{if(a<=2)return;let{color:o}=e,s=(a-3)/r;o.a=t===0?1:Math.min(Math.max(s*n+s+i,i),1)})}async function T(e){let t=await b(e);return C(t.statistics??await f({layer:t.layer,field:t.field,radius:t.radius,view:t.view,filter:t.filter,signal:t.signal}),t)}async function E(e){let{creatorParameters:t,renderer:n}=await x(e),r=await f({layer:t.layer,field:t.field,radius:t.radius,view:t.view,filter:t.filter,signal:t.signal}),i=r.min==null?y:[r.min,r.max];return n.minDensity=i[0],n.maxDensity=i[1],{renderer:D({renderer:n,fadeRatio:t.fadeRatio})}}function D(e){let{fadeRatio:t,renderer:n}=e,r=n.clone(),a=t??(r?.authoringInfo?.fadeRatio||0);return w(r.colorStops,a),r.authoringInfo?r.authoringInfo.fadeRatio=a:r.authoringInfo=new i({fadeRatio:a}),r}export{T as createRenderer,E as regenerateRenderer,D as updateRenderer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../Color.js";import{isSome as t}from"../../core/arrayUtils.js";import{createUniqueColors as n}from"../../core/colorUtils.js";import r from"../../core/Error.js";import{toPt as i}from"../../core/screenUtils.js";import{fetchMessageBundle as a}from"../../intl/messages.js";import o from"../../layers/support/AggregateField.js";import s from"../../layers/support/ExpressionInfo.js";import c from"../../renderers/PieChartRenderer.js";import l from"../../renderers/support/AttributeColorInfo.js";import u from"../../renderers/support/OthersCategory.js";import d from"../../renderers/support/RendererLegendOptions.js";import f from"../heuristics/outline.js";import p from"../heuristics/sizeRange.js";import{createVisualVariables as m}from"./size.js";import{spliceVisualVariables as h,updateAuthoringInfoVisualVariable as g,processRegenerateParams as _,getRendererToUpdate as v,getStyleType as y,hasOutlineVV as b,hasScaleDependentSizeVV as x,isSizeVV as S,findSizeVVIndex as C,findOutlineVVIndex as w,findScaleDependentSizeVVIndex as T}from"./support/regenerateUtils.js";import{errorCallback as E,getSymbolOutlineFromScheme as D,createSymbol as O,verifyBasicFieldValidity as k,getBasemapInfo as A}from"./support/utils.js";import j from"../statistics/predominantCategories.js";import{getSumOfAttributesExpr as M}from"../statistics/support/utils.js";import{verifyBinningParams as N}from"../support/binningUtils.js";import{getFieldsList as P}from"../support/utils.js";import{binningCapableLayerTypes as F,createLayerAdapter as I,getLayerTypeLabels as L,getLayerTypes as R}from"../support/adapters/support/layerUtils.js";import{cloneScheme as z,getSchemes as B}from"../symbology/pieChart.js";import V from"../../symbols/SimpleLineSymbol.js";import{getCIMSymbolColor as H}from"../../symbols/support/cimSymbolUtils.js";const U=[2,3,4,6,7,8,9,12,15];async function W(e){if(!(e?.layer&&e.view&&e.attributes?.length))throw new r(`pie-chart-renderer:missing-parameters`,`'layer', 'view' and 'attributes' parameters are required`);if(e.attributes.length>10)throw new r(`pie-chart-renderer:invalid-parameters`,`PieChart renderer does not support more than 10 attributes`);e.forBinning&&N(e,`pie-chart-renderer`);let t={...e,layer:e.layer,view:e.view,attributes:e.attributes};t.shape=t.shape||`pie`,t.othersCategoryEnabled??=!0,t.includeSizeVariable=e.includeSizeVariable||!1;let n=e.forBinning?F:U,i=I(t.layer,n,e.forBinning);if(!i)throw new r(`pie-chart-renderer:invalid-parameters`,`'layer' must be one of these types: `+L(n).join(`, `));let a=t.signal==null?null:{signal:t.signal};await Promise.all([e.view.when(),i.load(a)]);let o=i.geometryType,s=o===`polygon`,c=o===`point`||o===`multipoint`||s;if(t.outlineOptimizationEnabled=s?t.outlineOptimizationEnabled:!1,t.sizeOptimizationEnabled=c?t.sizeOptimizationEnabled:!1,!c)throw new r(`pie-chart-renderer:not-supported`,`PieChart renderer is only supported for point and polygon layers`);let l=[],u=t.attributes;for(let e of u){let t=await P({field:e.field,valueExpression:e.valueExpression});l.push(...t)}let d=k(i,l.filter(Boolean),`pie-chart-renderer:invalid-parameters`);if(d)throw d;return{...t,layer:i}}async function G(e){let t=`regenerate-pie-chart-renderer`,n=e.includedParts?.includes(`size-variable`)??!0;await _(e,t);let i=await v(e);if(y(i)!==`pie-chart`)throw new r(`${t}:invalid-parameters`,`Renderer is invalid`);let{visualVariables:a}=i,{layer:o,forBinning:s,filter:c,view:l,signal:u}=e,d=b(i),f=x(i),p=n&&a?.some(S),m=await W({layer:o,attributes:i.attributes.map(e=>({field:e.field,label:e.label,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle})),outlineOptimizationEnabled:d,sizeOptimizationEnabled:f,includeSizeVariable:p,forBinning:s,filter:c,view:l,signal:u});return{...e,creatorParameters:m,renderer:i}}async function K(e){let t=e.pieChartScheme,n=null,r=null,i=await A(e.basemap,e.view);if(n=i.basemapId==null?null:i.basemapId,r=i.basemapTheme==null?null:i.basemapTheme,t)return{scheme:z(t),basemapId:n,basemapTheme:r};let a=B({numColors:e.attributes.length,geometryType:e.layer.geometryType,basemapTheme:r});return a&&(t=a.primaryScheme,n=a.basemapId,r=a.basemapTheme),{scheme:t,basemapId:n,basemapTheme:r}}async function q(e,t){let{valueExpression:n,sqlExpression:r,sqlWhere:i}=M(e.attributes),o=await a(`esri/smartMapping/t9n/smartMapping`);return m({layer:e.layer,basemap:e.basemap,valueExpression:n,sqlExpression:r,sqlWhere:i,sizeScheme:t,sizeOptimizationEnabled:e.sizeOptimizationEnabled,legendOptions:{title:o.sumOfCategories},filter:e.filter,view:e.view,signal:e.signal})}async function ee(e){let[o,s]=await Promise.all([W(e),a(`esri/smartMapping/t9n/smartMapping`)]),m=await K(o),h=m?.scheme;if(!h)throw new r(`pie-chart-renderer:insufficient-info`,`Unable to find pie-chart scheme`);let{layer:g,includeSizeVariable:_,sizeOptimizationEnabled:v,outlineOptimizationEnabled:y,view:b,signal:x,filter:S}=o,C=h.sizeScheme,w=o.attributes,T=w.map(e=>e.field).filter(t),[k,A,M,N]=await Promise.all([T.length>1?j({layer:g,fields:T,view:b,signal:x,filter:S}):null,_?q(o,C):null,!_&&v?p({layer:g,view:b,signal:x,filter:S}).catch(E):null,y?f({layer:g,view:b,signal:x,filter:S}).catch(E):null]),P=k?.predominantCategoryInfos?{uniqueValueInfos:k.predominantCategoryInfos}:{uniqueValueInfos:T.map(e=>({value:e,count:0}))},F=n(h.colors,w.length),I=w.map((e,t)=>new l({field:e.field,valueExpression:e.valueExpression,label:e.label,valueExpressionTitle:e.valueExpressionTitle,color:F[t]})),L=g.geometryType,R=C!=null&&`background`in C&&C.background,B=new c({attributes:I,othersCategory:new u({label:s.other,color:o.othersCategoryEnabled?h.colorForOthersCategory:null,threshold:.04}),holePercentage:o.shape===`donut`?.45:0,backgroundFillSymbol:R?O(L,{type:`2d`,color:R.color,outline:D(R,L,N?.opacity)}):null,size:i(h.size),outline:new V(D(h,`point`,N?.opacity)),legendOptions:d.from(o.legendOptions)});if(A&&(J(A,v,L),B.authoringInfo=A.authoringInfo.clone(),B.visualVariables=A.visualVariables?.map(e=>e.clone())),N?.visualVariables?.length){let e=N.visualVariables.map(e=>e.clone()).filter(e=>e.type!==`color`&&e.type!==`rotation`);B.visualVariables?B.visualVariables.push(...e):B.visualVariables=e}return M?.minSize&&(Y(M,L),B.visualVariables?B.visualVariables.push(M.minSize):B.visualVariables=[M.minSize]),{renderer:B,pieChartScheme:z(h),size:A,basemapId:m.basemapId,basemapTheme:m.basemapTheme,statistics:P}}async function te(e){let{creatorParameters:t,view:n,signal:r,filter:i,renderer:a}=await G(e),{layer:o,outlineOptimizationEnabled:s,includeSizeVariable:c,sizeOptimizationEnabled:l}=t,u=(await K(t))?.scheme?.sizeScheme,[d,m,_]=await Promise.all([s?f({layer:o,view:n,signal:r,filter:i}).catch(E):null,c?q(t,u):null,!c&&l?p({layer:o,view:n,signal:r,filter:i}).catch(E):null]),v=o.geometryType;if(m&&(J(m,l,v),h(a,m?.visualVariables,C),g(a,m?.authoringInfo,`size`)),d?.visualVariables?.length){let e=d.visualVariables.map(e=>e.clone()).filter(e=>e.type!==`color`&&e.type!==`rotation`);h(a,e,w)}return _?.minSize&&(Y(_,v),h(a,_?.minSize,T)),{renderer:a}}function J(e,t,n){t||e.visualVariables.forEach(e=>{typeof e.minSize==`number`&&typeof e.maxSize==`number`&&(e.minSize*=2.5,e.maxSize*=1.8)}),t&&n===`point`&&e.visualVariables.forEach(e=>{e?.minSize&&typeof e.minSize==`object`&&e.minSize?.stops?.forEach(e=>{e.size*=1.8})})}function Y(e,t){t===`point`&&e.minSize.stops?.forEach(e=>{e.size*=2.5}),t===`polygon`&&e.minSize.stops?.forEach(e=>{e.size*=1.8})}const ne=new Set([`unique-value`,`class-breaks`]),re=new e(`#aaaaaa`),X=new e(`#5c5c5c`),Z=[new e(`#e60049`),new e(`#0bb4ff`),new e(`#50e991`),new e(`#e6d800`),new e(`#9b19f5`),new e(`#ffa300`),new e(`#dc0ab4`),new e(`#b3d4ff`),new e(`#00bfa0`),new e(`#f0cccc`)];async function ie(e){if(!(e&&e.layer))throw new r(`pie-chart-cluster-renderer:missing-parameters`,`'layer' parameter is required`);let t={...e};t.shape=t.shape||`pie`,t.defaultSymbolEnabled??=!0;let n=e.layer;if(!R(U).includes(n.type))throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`'layer' must be one of these types: `+L(U).join(`, `));let i=t.signal==null?null:{signal:t.signal};if(await n.load(i),n.geometryType!==`point`)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cluster renderers are only supported for point layers`);let a=`renderer`in n?n.renderer:void 0;if(!a)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`input layer does not have a renderer.`);if(!ne.has(a.type))throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cannot create a pie chart renderer for clusters based on a ${a.type} renderer.`);if(`valueExpression`in a&&a.valueExpression)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cannot create a pie chart renderer for clusters from a layer whose renderer contains a valueExpression.`);if(a.type===`unique-value`){if(a.field2)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cannot create a pie chart renderer for clusters from a UniqueValueRenderer using more than one field.`);if(a.uniqueValueInfos!=null&&a.uniqueValueInfos.length>10)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`PieChart cluster renderer cannot be created from a UniqueValueRenderer with more than 10 unique value infos.`)}if(a.type===`class-breaks`){if(a.classBreakInfos.length<2)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cannot create a pie chart renderer for clusters from a layer renderer with a continuous color or size gradient.`);if(a.classBreakInfos.length>10)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`PieChart cluster renderer can not be created from a ClassBreaksRenderer with more than 10 class break infos.`);if(a?.authoringInfo?.type===`class-breaks-size`)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`PieChart cluster renderer can not be created from a ClassBreaksRenderer with breaks varied by size instead of color.`)}return t}async function ae(e){let{layer:t,shape:n,defaultSymbolEnabled:r,legendOptions:i}=await ie(e),o=`renderer`in t?t.renderer:void 0,s=(await a(`esri/smartMapping/t9n/smartMapping`)).other,u=[];o?.type===`unique-value`&&(u=oe({renderer:o,defaultSymbolEnabled:r,defaultLabelBackup:s})),o?.type===`class-breaks`&&(u=se({renderer:o,defaultSymbolEnabled:r,defaultLabelBackup:s}));let f=[],p=[];for(let e of u){let{field:t,color:n}=e;f.push(t),p.push(new l({color:n,field:t.name,label:t.alias}))}return{fields:f,renderer:new c({attributes:p,legendOptions:d.from(i),holePercentage:n===`donut`?.45:0,outline:null,size:9,othersCategory:null})}}function oe(e){let{renderer:t,defaultSymbolEnabled:r,defaultLabelBackup:i}=e,{field:a,defaultSymbol:c,defaultLabel:l}=t,u=t.uniqueValueInfos??[],d=c&&r,f=d?9:10,p=n(Z,f),m=(a?u.slice(0,f).map((e,t)=>{let n=e.label,r=p[t];return{field:new o({name:Q(e.value?.toString()),alias:n,onStatisticExpression:new s({title:`Field definition - ${n}`,expression:ce(a,e),returnType:`number`}),statisticType:`sum`}),color:$(e.symbol,r)}}):null)??[];if(d){let e=l||i;m.push({field:new o({name:Q(`cluster_default`),alias:e,onStatisticExpression:new s({title:`Field definition - ${e}`,expression:le(a,u),returnType:`number`}),statisticType:`sum`}),color:$(c,X)})}return m}function se(e){let{renderer:t,defaultSymbolEnabled:r,defaultLabelBackup:i}=e,{field:a,classBreakInfos:c,defaultSymbol:l,defaultLabel:u}=t,d=l&&r,f=d?9:10,p=n(Z,f),m=c.slice(0,f).map((e,t)=>{let n=e.label||`${e.minValue} - ${e.maxValue}`,r=p[t];return{field:new o({name:Q(n),alias:n,onStatisticExpression:new s({title:`Field definition - ${n}`,expression:ue(a,e),returnType:`number`}),statisticType:`sum`}),color:$(e.symbol,r)}});if(d){let e=u||i;m.push({field:new o({name:Q(`cluster_default`),alias:e,onStatisticExpression:new s({title:`Field definition - ${e}`,expression:de(a,c),returnType:`number`}),statisticType:`sum`}),color:$(l,X)})}return m}function Q(e){return`SUM_`+(e+``).replaceAll(/[^a-zA-Z0-9_]/g,`_`)}function $(e,t){if(e?.type===`simple-marker`&&e.color)return e.color.clone();if(e?.type===`cim`){let t=H(e);if(t)return t.clone()}return t?t.clone():re.clone()}function ce(e,t){return`Number(Text($feature["${e}"]) == "${t.value+``}")`}function le(e,t){return`Number(!(${t.map(t=>`(Text($feature["${e}"]) == "${t.value+``}")`).join(` || `)}))`}function ue(e,t){return`Number($feature["${e}"] >= ${t.minValue} && $feature["${e}"] < ${t.maxValue})`}function de(e,t){return`Number(!(${t.map(t=>`($feature["${e}"] >= ${t.minValue} && $feature["${e}"] < ${t.maxValue})`).join(` || `)}))`}export{ee as createRenderer,ae as createRendererForClustering,te as regenerateRenderer};
|
|
2
|
+
import e from"../../Color.js";import{isSome as t}from"../../core/arrayUtils.js";import{createUniqueColors as n}from"../../core/colorUtils.js";import r from"../../core/Error.js";import{toPt as i}from"../../core/screenUtils.js";import{fetchMessageBundle as a}from"../../intl/messages.js";import o from"../../layers/support/AggregateField.js";import s from"../../layers/support/ExpressionInfo.js";import c from"../../renderers/PieChartRenderer.js";import l from"../../renderers/support/AttributeColorInfo.js";import u from"../../renderers/support/OthersCategory.js";import d from"../../renderers/support/RendererLegendOptions.js";import f from"../heuristics/outline.js";import p from"../heuristics/sizeRange.js";import{createVisualVariables as m}from"./size.js";import{spliceVisualVariables as h,updateAuthoringInfoVisualVariable as g,processRegenerateParams as _,getRendererToUpdate as v,getStyleType as y,hasOutlineVV as b,hasScaleDependentSizeVV as x,isSizeVV as S,findSizeVVIndex as C,findOutlineVVIndex as w,findScaleDependentSizeVVIndex as T}from"./support/regenerateUtils.js";import{errorCallback as E,getSymbolOutlineFromScheme as D,createSymbol as O,verifyBasicFieldValidity as k,getBasemapInfo as A}from"./support/utils.js";import j from"../statistics/predominantCategories.js";import{getSumOfAttributesExpr as M}from"../statistics/support/utils.js";import{verifyBinningParams as N}from"../support/binningUtils.js";import{getFieldsList as P}from"../support/utils.js";import{binningCapableLayerTypes as F,createLayerAdapter as I,getLayerTypeLabels as L,getLayerTypes as R}from"../support/adapters/support/layerUtils.js";import{cloneScheme as z,getSchemes as B}from"../symbology/pieChart.js";import V from"../../symbols/SimpleLineSymbol.js";import{getCIMSymbolColor as H}from"../../symbols/support/cimSymbolUtils.js";const U=[3,5,6,8,9,10,11,14,17];async function W(e){if(!(e?.layer&&e.view&&e.attributes?.length))throw new r(`pie-chart-renderer:missing-parameters`,`'layer', 'view' and 'attributes' parameters are required`);if(e.attributes.length>10)throw new r(`pie-chart-renderer:invalid-parameters`,`PieChart renderer does not support more than 10 attributes`);e.forBinning&&N(e,`pie-chart-renderer`);let t={...e,layer:e.layer,view:e.view,attributes:e.attributes};t.shape=t.shape||`pie`,t.othersCategoryEnabled??=!0,t.includeSizeVariable=e.includeSizeVariable||!1;let n=e.forBinning?F:U,i=I(t.layer,n,e.forBinning);if(!i)throw new r(`pie-chart-renderer:invalid-parameters`,`'layer' must be one of these types: `+L(n).join(`, `));let a=t.signal==null?null:{signal:t.signal};await Promise.all([e.view.when(),i.load(a)]);let o=i.geometryType,s=o===`polygon`,c=o===`point`||o===`multipoint`||s;if(t.outlineOptimizationEnabled=s?t.outlineOptimizationEnabled:!1,t.sizeOptimizationEnabled=c?t.sizeOptimizationEnabled:!1,!c)throw new r(`pie-chart-renderer:not-supported`,`PieChart renderer is only supported for point and polygon layers`);let l=[],u=t.attributes;for(let e of u){let t=await P({field:e.field,valueExpression:e.valueExpression});l.push(...t)}let d=k(i,l.filter(Boolean),`pie-chart-renderer:invalid-parameters`);if(d)throw d;return{...t,layer:i}}async function G(e){let t=`regenerate-pie-chart-renderer`,n=e.includedParts?.includes(`size-variable`)??!0;await _(e,t);let i=await v(e);if(y(i)!==`pie-chart`)throw new r(`${t}:invalid-parameters`,`Renderer is invalid`);let{visualVariables:a}=i,{layer:o,forBinning:s,filter:c,view:l,signal:u}=e,d=b(i),f=x(i),p=n&&a?.some(S),m=await W({layer:o,attributes:i.attributes.map(e=>({field:e.field,label:e.label,valueExpression:e.valueExpression,valueExpressionTitle:e.valueExpressionTitle})),outlineOptimizationEnabled:d,sizeOptimizationEnabled:f,includeSizeVariable:p,forBinning:s,filter:c,view:l,signal:u});return{...e,creatorParameters:m,renderer:i}}async function K(e){let t=e.pieChartScheme,n=null,r=null,i=await A(e.basemap,e.view);if(n=i.basemapId==null?null:i.basemapId,r=i.basemapTheme==null?null:i.basemapTheme,t)return{scheme:z(t),basemapId:n,basemapTheme:r};let a=B({numColors:e.attributes.length,geometryType:e.layer.geometryType,basemapTheme:r});return a&&(t=a.primaryScheme,n=a.basemapId,r=a.basemapTheme),{scheme:t,basemapId:n,basemapTheme:r}}async function q(e,t){let{valueExpression:n,sqlExpression:r,sqlWhere:i}=M(e.attributes),o=await a(`esri/smartMapping/t9n/smartMapping`);return m({layer:e.layer,basemap:e.basemap,valueExpression:n,sqlExpression:r,sqlWhere:i,sizeScheme:t,sizeOptimizationEnabled:e.sizeOptimizationEnabled,legendOptions:{title:o.sumOfCategories},filter:e.filter,view:e.view,signal:e.signal})}async function ee(e){let[o,s]=await Promise.all([W(e),a(`esri/smartMapping/t9n/smartMapping`)]),m=await K(o),h=m?.scheme;if(!h)throw new r(`pie-chart-renderer:insufficient-info`,`Unable to find pie-chart scheme`);let{layer:g,includeSizeVariable:_,sizeOptimizationEnabled:v,outlineOptimizationEnabled:y,view:b,signal:x,filter:S}=o,C=h.sizeScheme,w=o.attributes,T=w.map(e=>e.field).filter(t),[k,A,M,N]=await Promise.all([T.length>1?j({layer:g,fields:T,view:b,signal:x,filter:S}):null,_?q(o,C):null,!_&&v?p({layer:g,view:b,signal:x,filter:S}).catch(E):null,y?f({layer:g,view:b,signal:x,filter:S}).catch(E):null]),P=k?.predominantCategoryInfos?{uniqueValueInfos:k.predominantCategoryInfos}:{uniqueValueInfos:T.map(e=>({value:e,count:0}))},F=n(h.colors,w.length),I=w.map((e,t)=>new l({field:e.field,valueExpression:e.valueExpression,label:e.label,valueExpressionTitle:e.valueExpressionTitle,color:F[t]})),L=g.geometryType,R=C!=null&&`background`in C&&C.background,B=new c({attributes:I,othersCategory:new u({label:s.other,color:o.othersCategoryEnabled?h.colorForOthersCategory:null,threshold:.04}),holePercentage:o.shape===`donut`?.45:0,backgroundFillSymbol:R?O(L,{type:`2d`,color:R.color,outline:D(R,L,N?.opacity)}):null,size:i(h.size),outline:new V(D(h,`point`,N?.opacity)),legendOptions:d.from(o.legendOptions)});if(A&&(J(A,v,L),B.authoringInfo=A.authoringInfo.clone(),B.visualVariables=A.visualVariables?.map(e=>e.clone())),N?.visualVariables?.length){let e=N.visualVariables.map(e=>e.clone()).filter(e=>e.type!==`color`&&e.type!==`rotation`);B.visualVariables?B.visualVariables.push(...e):B.visualVariables=e}return M?.minSize&&(Y(M,L),B.visualVariables?B.visualVariables.push(M.minSize):B.visualVariables=[M.minSize]),{renderer:B,pieChartScheme:z(h),size:A,basemapId:m.basemapId,basemapTheme:m.basemapTheme,statistics:P}}async function te(e){let{creatorParameters:t,view:n,signal:r,filter:i,renderer:a}=await G(e),{layer:o,outlineOptimizationEnabled:s,includeSizeVariable:c,sizeOptimizationEnabled:l}=t,u=(await K(t))?.scheme?.sizeScheme,[d,m,_]=await Promise.all([s?f({layer:o,view:n,signal:r,filter:i}).catch(E):null,c?q(t,u):null,!c&&l?p({layer:o,view:n,signal:r,filter:i}).catch(E):null]),v=o.geometryType;if(m&&(J(m,l,v),h(a,m?.visualVariables,C),g(a,m?.authoringInfo,`size`)),d?.visualVariables?.length){let e=d.visualVariables.map(e=>e.clone()).filter(e=>e.type!==`color`&&e.type!==`rotation`);h(a,e,w)}return _?.minSize&&(Y(_,v),h(a,_?.minSize,T)),{renderer:a}}function J(e,t,n){t||e.visualVariables.forEach(e=>{typeof e.minSize==`number`&&typeof e.maxSize==`number`&&(e.minSize*=2.5,e.maxSize*=1.8)}),t&&n===`point`&&e.visualVariables.forEach(e=>{e?.minSize&&typeof e.minSize==`object`&&e.minSize?.stops?.forEach(e=>{e.size*=1.8})})}function Y(e,t){t===`point`&&e.minSize.stops?.forEach(e=>{e.size*=2.5}),t===`polygon`&&e.minSize.stops?.forEach(e=>{e.size*=1.8})}const ne=new Set([`unique-value`,`class-breaks`]),re=new e(`#aaaaaa`),X=new e(`#5c5c5c`),Z=[new e(`#e60049`),new e(`#0bb4ff`),new e(`#50e991`),new e(`#e6d800`),new e(`#9b19f5`),new e(`#ffa300`),new e(`#dc0ab4`),new e(`#b3d4ff`),new e(`#00bfa0`),new e(`#f0cccc`)];async function ie(e){if(!(e&&e.layer))throw new r(`pie-chart-cluster-renderer:missing-parameters`,`'layer' parameter is required`);let t={...e};t.shape=t.shape||`pie`,t.defaultSymbolEnabled??=!0;let n=e.layer;if(!R(U).includes(n.type))throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`'layer' must be one of these types: `+L(U).join(`, `));let i=t.signal==null?null:{signal:t.signal};if(await n.load(i),n.geometryType!==`point`)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cluster renderers are only supported for point layers`);let a=`renderer`in n?n.renderer:void 0;if(!a)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`input layer does not have a renderer.`);if(!ne.has(a.type))throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cannot create a pie chart renderer for clusters based on a ${a.type} renderer.`);if(`valueExpression`in a&&a.valueExpression)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cannot create a pie chart renderer for clusters from a layer whose renderer contains a valueExpression.`);if(a.type===`unique-value`){if(a.field2)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cannot create a pie chart renderer for clusters from a UniqueValueRenderer using more than one field.`);if(a.uniqueValueInfos!=null&&a.uniqueValueInfos.length>10)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`PieChart cluster renderer cannot be created from a UniqueValueRenderer with more than 10 unique value infos.`)}if(a.type===`class-breaks`){if(a.classBreakInfos.length<2)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`Cannot create a pie chart renderer for clusters from a layer renderer with a continuous color or size gradient.`);if(a.classBreakInfos.length>10)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`PieChart cluster renderer can not be created from a ClassBreaksRenderer with more than 10 class break infos.`);if(a?.authoringInfo?.type===`class-breaks-size`)throw new r(`pie-chart-cluster-renderer:invalid-parameters`,`PieChart cluster renderer can not be created from a ClassBreaksRenderer with breaks varied by size instead of color.`)}return t}async function ae(e){let{layer:t,shape:n,defaultSymbolEnabled:r,legendOptions:i}=await ie(e),o=`renderer`in t?t.renderer:void 0,s=(await a(`esri/smartMapping/t9n/smartMapping`)).other,u=[];o?.type===`unique-value`&&(u=oe({renderer:o,defaultSymbolEnabled:r,defaultLabelBackup:s})),o?.type===`class-breaks`&&(u=se({renderer:o,defaultSymbolEnabled:r,defaultLabelBackup:s}));let f=[],p=[];for(let e of u){let{field:t,color:n}=e;f.push(t),p.push(new l({color:n,field:t.name,label:t.alias}))}return{fields:f,renderer:new c({attributes:p,legendOptions:d.from(i),holePercentage:n===`donut`?.45:0,outline:null,size:9,othersCategory:null})}}function oe(e){let{renderer:t,defaultSymbolEnabled:r,defaultLabelBackup:i}=e,{field:a,defaultSymbol:c,defaultLabel:l}=t,u=t.uniqueValueInfos??[],d=c&&r,f=d?9:10,p=n(Z,f),m=(a?u.slice(0,f).map((e,t)=>{let n=e.label,r=p[t];return{field:new o({name:Q(e.value?.toString()),alias:n,onStatisticExpression:new s({title:`Field definition - ${n}`,expression:ce(a,e),returnType:`number`}),statisticType:`sum`}),color:$(e.symbol,r)}}):null)??[];if(d){let e=l||i;m.push({field:new o({name:Q(`cluster_default`),alias:e,onStatisticExpression:new s({title:`Field definition - ${e}`,expression:le(a,u),returnType:`number`}),statisticType:`sum`}),color:$(c,X)})}return m}function se(e){let{renderer:t,defaultSymbolEnabled:r,defaultLabelBackup:i}=e,{field:a,classBreakInfos:c,defaultSymbol:l,defaultLabel:u}=t,d=l&&r,f=d?9:10,p=n(Z,f),m=c.slice(0,f).map((e,t)=>{let n=e.label||`${e.minValue} - ${e.maxValue}`,r=p[t];return{field:new o({name:Q(n),alias:n,onStatisticExpression:new s({title:`Field definition - ${n}`,expression:ue(a,e),returnType:`number`}),statisticType:`sum`}),color:$(e.symbol,r)}});if(d){let e=u||i;m.push({field:new o({name:Q(`cluster_default`),alias:e,onStatisticExpression:new s({title:`Field definition - ${e}`,expression:de(a,c),returnType:`number`}),statisticType:`sum`}),color:$(l,X)})}return m}function Q(e){return`SUM_`+(e+``).replaceAll(/[^a-zA-Z0-9_]/g,`_`)}function $(e,t){if(e?.type===`simple-marker`&&e.color)return e.color.clone();if(e?.type===`cim`){let t=H(e);if(t)return t.clone()}return t?t.clone():re.clone()}function ce(e,t){return`Number(Text($feature["${e}"]) == "${t.value+``}")`}function le(e,t){return`Number(!(${t.map(t=>`(Text($feature["${e}"]) == "${t.value+``}")`).join(` || `)}))`}function ue(e,t){return`Number($feature["${e}"] >= ${t.minValue} && $feature["${e}"] < ${t.maxValue})`}function de(e,t){return`Number(!(${t.map(t=>`($feature["${e}"] >= ${t.minValue} && $feature["${e}"] < ${t.maxValue})`).join(` || `)}))`}export{ee as createRenderer,ae as createRendererForClustering,te as regenerateRenderer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import{createUniqueColors as e}from"../../core/colorUtils.js";import t from"../../core/Error.js";import{clone as n}from"../../core/lang.js";import{fetchMessageBundle as r}from"../../intl/messages.js";import{isTimeOnlyField as i}from"../../layers/support/fieldUtils.js";import a from"../../renderers/PointCloudUniqueValueRenderer.js";import o from"../../renderers/UniqueValueRenderer.js";import s from"../../renderers/support/AuthoringInfo.js";import c from"../../renderers/support/RendererLegendOptions.js";import{createUniqueValueLabel as l,calculateDateFormatInterval as u,dateFormatIntervalOptions as d}from"../../renderers/support/utils.js";import f from"../../renderers/support/pointCloud/ColorUniqueValueInfo.js";import p from"../heuristics/outline.js";import m from"../heuristics/sizeRange.js";import{spliceVisualVariables as h,findOutlineVVIndex as g,findScaleDependentSizeVVIndex as _,processRegenerateParams as v,getRendererToUpdate as y,getStyleType as b,hasOutlineVV as x,hasScaleDependentSizeVV as S}from"./support/regenerateUtils.js";import{resolveDataSeriesInfo as C}from"./support/timeSeriesUtils.js";import{getPointSizeAlgorithm as w,errorCallback as T,getBasemapInfo as E,isValidPointSize as D,verifyBasicFieldValidity as O,getSymbolSizeFromScheme as k,getSymbolOutlineFromScheme as A,createSymbol as j}from"./support/utils.js";import M from"../statistics/uniqueValues.js";import{verifyBinningParams as N}from"../support/binningUtils.js";import{getFieldsList as P,fieldDelimiter as F,isAnyDateField as I}from"../support/utils.js";import{createLayerAdapter as L,getLayerTypeLabels as R,binningCapableLayerTypes as z,featureCapableLayerTypes as B}from"../support/adapters/support/layerUtils.js";import{cloneScheme as V,getSchemes as H}from"../symbology/type.js";async function U(e){let r=C({...e});if(!(r?.layer&&(r.field||r.valueExpression)))throw new t(`type-renderer:missing-parameters`,`'layer' and 'field' or 'valueExpression' parameters are required`);if(r.valueExpression&&!r.view)throw new t(`type-renderer:missing-parameters`,`View is required when 'valueExpression' is specified`);r.forBinning&&N(r,`type-renderer`);let i={...r,layer:r.layer};i.symbolType=i.symbolType||`2d`,i.defaultSymbolEnabled??=!0,i.sortBy??=`count`,i.sortEnabled??=!0,i.statistics=n(i.statistics);let a=i.numTypes==null?10:i.numTypes,o=r.forBinning?z:B,s=L(i.layer,o,r.forBinning);if(!s)throw new t(`type-renderer:invalid-parameters`,`'layer' must be one of these types: `+R(o).join(`, `));let c=i.signal==null?null:{signal:i.signal};await s.load(c);let l=s.geometryType;i.outlineOptimizationEnabled=l===`polygon`&&i.outlineOptimizationEnabled;let u=`featureReduction`in r.layer&&r.layer.featureReduction?.type===`cluster`;if(i.sizeOptimizationEnabled=(l===`point`||l===`multipoint`||l===`polyline`)&&!u&&i.sizeOptimizationEnabled,l===`mesh`)i.symbolType=`3d-volumetric`,i.colorMixMode=i.colorMixMode||`replace`,i.edgesType=i.edgesType||`none`;else if(i.symbolType===`3d-volumetric-uniform`&&l!==`point`)throw new t(`type-renderer:not-supported`,`3d-volumetric-uniform symbols are supported for point layers only`);else if(i.symbolType.includes(`3d-volumetric`)&&i.view?.type!==`3d`)throw new t(`type-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'`);let d=await P({field:i.field,field2:i.field2,field3:i.field3,valueExpression:i.valueExpression}),f=O(s,d,`type-renderer:invalid-parameters`);if(f)throw f;return{...i,layer:s,numTypes:a}}async function W(e){let n=`regenerate-type-renderer`;await v(e,n);let r=await y(e),i=b(r);if(!i||![`type`,`type-size`].includes(i))throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{field:a,field2:o,field3:s,valueExpression:c,valueExpressionTitle:l}=r,u=r.uniqueValueInfos.length,{layer:d,forBinning:f,filter:p,view:m,signal:h}=e,g=r.authoringInfo?.dataSeriesName,_=r.authoringInfo?.dataSeriesCalculationName,C=await U({layer:d,field:a,field2:o,field3:s,valueExpression:c,valueExpressionTitle:l,numTypes:u,outlineOptimizationEnabled:x(r),sizeOptimizationEnabled:S(r),dataSeriesName:g,dataSeriesCalculationName:_,forBinning:f,filter:p,view:m,signal:h});return{...e,creatorParameters:C,renderer:r}}async function G(e){if(!(e?.layer&&e.field))throw new t(`type-point-cloud-class-renderer:missing-parameters`,`'layer' and 'field' parameters are required`);let r={...e,layer:e.layer};r.statistics=n(r.statistics);let i=[10],a=L(r.layer,i);if(!a)throw new t(`type-point-cloud-class-renderer:invalid-parameters`,`'layer' must be one of these types: `+R(i).join(`, `));if(r.layer=a,r.density=r.density||25,r.size=r.size||`100%`,!D(r.size))throw new t(`type-point-cloud-class-renderer:invalid-parameters`,`Invalid 'size' parameter. It should be a string of the form '100%'`);let o=r.signal==null?null:{signal:r.signal};await a.load(o);let s=await P({field:r.field}),c=O(a,s,`type-point-cloud-class-renderer:invalid-parameters`);if(c)throw c;return r}async function K(e){let t=e.typeScheme,n=null,r=null,i=await E(e.basemap,e.view);if(n=i.basemapId==null?null:i.basemapId,r=i.basemapTheme==null?null:i.basemapTheme,t)return{scheme:V(t),basemapId:n,basemapTheme:r};let a=H({numColors:e.numColors,basemapTheme:r,geometryType:e.geometryType,theme:e.theme,worldScale:e.worldScale,view:e.view});return a&&(t=a.primaryScheme,n=a.basemapId,r=a.basemapTheme),{scheme:t,basemapId:n,basemapTheme:r}}function q(e,t){let n;return n=e.label<t.label?-1:+(e.label>t.label),n}function J(e,t){let n;return n=e.value<t.value?-1:+(e.value>t.value),n}function Y(e,t){let n=t.count-e.count;return n===0&&(n=q(e,t)),n}function X(e,t){let n=t.count-e.count;return n===0&&(n=J(e,t)),n}function Z(e,t,n){let r;t===`count`?(r=X,n&&`codedValues`in n&&n.codedValues&&(r=Y)):t===`value`&&(r=J,n&&`codedValues`in n&&n.codedValues&&(r=q)),r&&e.sort(r)}async function Q(e,t,n,i){let a=await r(`esri/smartMapping/t9n/smartMapping`),{field:u,field2:d,field3:f}=t,p=e.uniqueValueInfos,m=t.layer,h=u?m.getField(u):null,g=h?m.getFieldDomain(h.name):null,_=t.numTypes===-1?p.length:t.numTypes,v=m.geometryType,y=new o({field:u,field2:d,field3:f,fieldDelimiter:u&&d?F:null}),b=[],x=[],S={value:null,domain:g,fieldInfo:h};p.forEach((e,t)=>{S.value=e.value,e.label=l(S);let n=e.value;(n===null||typeof n==`string`&&n.toLowerCase().includes(`<null>`))&&b.unshift(t)});for(let e of b)x.unshift(p.splice(e,1)[0]);t.sortEnabled!==!1&&Z(p,t.sortBy,g),$(S,t,p);let C=n?.opacity,w=await K({numColors:p.length,basemap:t.basemap,geometryType:v,typeScheme:t.typeScheme,worldScale:!!t.symbolType?.includes(`3d-volumetric`),view:t.view}),T=w.scheme,E=T.colors.map(e=>e.clone()),D=k(T,v),O=A(T,v,C);p.forEach((e,n)=>{S.value=e.value,e.label=l(S),e.symbol=j(v,{type:t.symbolType,color:E[n],size:D,outline:O,meshInfo:{colorMixMode:t.colorMixMode,edgesType:t.edgesType}})}),t.valueExpression&&(y.valueExpression=t.valueExpression,y.valueExpressionTitle=t.valueExpressionTitle),t.legendOptions&&(y.legendOptions=new c(t.legendOptions));for(let e=0;e<_;e++){let n=p[e];n&&y.addUniqueValueInfo({value:n.value,label:n.label,symbol:j(v,{type:t.symbolType,color:E[e].clone(),size:D,outline:O,meshInfo:{colorMixMode:t.colorMixMode,edgesType:t.edgesType}})})}t.defaultSymbolEnabled&&(y.defaultSymbol=j(v,{type:t.symbolType,color:T.noDataColor,size:D,outline:O,meshInfo:{colorMixMode:t.colorMixMode,edgesType:t.edgesType}}),y.defaultLabel=a.other);for(let e of x)e.symbol=j(v,{type:t.symbolType,color:T.noDataColor,size:D,outline:O,meshInfo:{colorMixMode:t.colorMixMode,edgesType:t.edgesType}}),p.push(e);let M=[],N=y.uniqueValueInfos?.length??0,P=N===p.length?-1:N;if(P>-1)for(let e=P;e<p.length;e++)M.push({...p[e]});return n?.visualVariables?.length&&(y.visualVariables=n.visualVariables.map(e=>e.clone())),i?.minSize&&(y.visualVariables?y.visualVariables.push(i.minSize):y.visualVariables=[i.minSize]),t.dataSeriesName&&(y.authoringInfo=new s({dataSeriesName:t.dataSeriesName,dataSeriesCalculationName:t.dataSeriesCalculationName})),{renderer:y,uniqueValueInfos:p,excludedUniqueValueInfos:M,typeScheme:V(T),basemapId:w.basemapId,basemapTheme:w.basemapTheme}}function $(e,t,n){let{field:r,numTypes:a,layer:o,view:s}=t,c=r?o.getField(r):null;if(c&&(I(c)||i(c))){let t=n.filter((e,t)=>t<a).map(e=>e.value),r=i(c)?null:u(t),l=r?d[r]:void 0;if(e.dateFormatOptions={fieldType:c.type,format:l},s){let t=o.layer;e.dateFormatOptions.timeZoneOptions={layerTimeZone:`preferredTimeZone`in t?t.preferredTimeZone:null,viewTimeZone:s.timeZone,datesInUnknownTimezone:`datesInUnknownTimezone`in t&&t.datesInUnknownTimezone}}}}async function ee(t,n){let r=t.uniqueValueInfos,i=(await K({numColors:r.length,basemap:`gray`,theme:`point-cloud-class`,geometryType:`point`,typeScheme:n}))?.scheme,a=i?.theme===`point-cloud-class`,o=a?i.colors:e(i?.colors??[],r.length);return Z(r,`value`),r.map((e,t)=>{let n=e.value,r=null;return a?(r=o[n],r||=o[o.length-1]):r=o[t],new f({values:[n],color:r,label:e.label})})}async function te(e){let t=await U(e),{layer:n,view:r,signal:i,filter:a}=t,o={layer:n,field:t.field,field2:t.field2,field3:t.field3,valueExpression:t.valueExpression,returnAllCodedValues:t.returnAllCodedValues,view:r,filter:a,signal:i},[s,c,l]=await Promise.all([t.statistics==null?M(o):t.statistics,t.outlineOptimizationEnabled?p({layer:n,view:r,signal:i,filter:a}).catch(T):null,t.sizeOptimizationEnabled?m({layer:n,view:r,signal:i,filter:a}).catch(T):null]);return Q(s,t,c,l)}async function ne(e){let{creatorParameters:t,view:n,signal:r,filter:i,renderer:a}=await W(e),{layer:o,outlineOptimizationEnabled:s,sizeOptimizationEnabled:c,field:l,valueExpression:u,valueExpressionTitle:d}=t,[f,v]=await Promise.all([s?p({layer:o,view:n,signal:r,filter:i}).catch(T):null,c?m({layer:o,view:n,signal:r,filter:i}).catch(T):null]);return h(a,f?.visualVariables,g),h(a,v?.minSize,_),t.dataSeriesName&&(a.field=l,a.valueExpression=u,a.valueExpressionTitle=d),{renderer:a}}async function re(e){let t=await G(e),n=t.statistics==null?await M({layer:t.layer,field:t.field,signal:t.signal}):t.statistics;return{renderer:new a({field:t.field,pointsPerInch:t.density??void 0,pointSizeAlgorithm:w(t.size),colorUniqueValueInfos:await ee(n,t.typeScheme)})}}export{re as createPCClassRenderer,te as createRenderer,K as getTypeSchemeData,ne as regenerateRenderer};
|
|
2
|
+
import{createUniqueColors as e}from"../../core/colorUtils.js";import t from"../../core/Error.js";import{clone as n}from"../../core/lang.js";import{fetchMessageBundle as r}from"../../intl/messages.js";import{isTimeOnlyField as i}from"../../layers/support/fieldUtils.js";import a from"../../renderers/PointCloudUniqueValueRenderer.js";import o from"../../renderers/UniqueValueRenderer.js";import s from"../../renderers/support/AuthoringInfo.js";import c from"../../renderers/support/RendererLegendOptions.js";import{createUniqueValueLabel as l,calculateDateFormatInterval as u,dateFormatIntervalOptions as d}from"../../renderers/support/utils.js";import f from"../../renderers/support/pointCloud/ColorUniqueValueInfo.js";import p from"../heuristics/outline.js";import m from"../heuristics/sizeRange.js";import{spliceVisualVariables as h,findOutlineVVIndex as g,findScaleDependentSizeVVIndex as _,processRegenerateParams as v,getRendererToUpdate as y,getStyleType as b,hasOutlineVV as x,hasScaleDependentSizeVV as S}from"./support/regenerateUtils.js";import{resolveDataSeriesInfo as C}from"./support/timeSeriesUtils.js";import{getPointSizeAlgorithm as w,errorCallback as T,getBasemapInfo as E,isValidPointSize as D,verifyBasicFieldValidity as O,getSymbolSizeFromScheme as k,getSymbolOutlineFromScheme as A,createSymbol as j}from"./support/utils.js";import M from"../statistics/uniqueValues.js";import{verifyBinningParams as N}from"../support/binningUtils.js";import{getFieldsList as P,fieldDelimiter as F,isAnyDateField as I}from"../support/utils.js";import{createLayerAdapter as L,getLayerTypeLabels as R,binningCapableLayerTypes as z,featureCapableLayerTypes as B}from"../support/adapters/support/layerUtils.js";import{cloneScheme as V,getSchemes as H}from"../symbology/type.js";async function U(e){let r=C({...e});if(!(r?.layer&&(r.field||r.valueExpression)))throw new t(`type-renderer:missing-parameters`,`'layer' and 'field' or 'valueExpression' parameters are required`);if(r.valueExpression&&!r.view)throw new t(`type-renderer:missing-parameters`,`View is required when 'valueExpression' is specified`);r.forBinning&&N(r,`type-renderer`);let i={...r,layer:r.layer};i.symbolType=i.symbolType||`2d`,i.defaultSymbolEnabled??=!0,i.sortBy??=`count`,i.sortEnabled??=!0,i.statistics=n(i.statistics);let a=i.numTypes==null?10:i.numTypes,o=r.forBinning?z:B,s=L(i.layer,o,r.forBinning);if(!s)throw new t(`type-renderer:invalid-parameters`,`'layer' must be one of these types: `+R(o).join(`, `));let c=i.signal==null?null:{signal:i.signal};await s.load(c);let l=s.geometryType;i.outlineOptimizationEnabled=l===`polygon`&&i.outlineOptimizationEnabled;let u=`featureReduction`in r.layer&&r.layer.featureReduction?.type===`cluster`;if(i.sizeOptimizationEnabled=(l===`point`||l===`multipoint`||l===`polyline`)&&!u&&i.sizeOptimizationEnabled,l===`mesh`)i.symbolType=`3d-volumetric`,i.colorMixMode=i.colorMixMode||`replace`,i.edgesType=i.edgesType||`none`;else if(i.symbolType===`3d-volumetric-uniform`&&l!==`point`)throw new t(`type-renderer:not-supported`,`3d-volumetric-uniform symbols are supported for point layers only`);else if(i.symbolType.includes(`3d-volumetric`)&&i.view?.type!==`3d`)throw new t(`type-renderer:invalid-parameters`,`'view' parameter should be an instance of SceneView when 'symbolType' parameter is '3d-volumetric' or '3d-volumetric-uniform'`);let d=await P({field:i.field,field2:i.field2,field3:i.field3,valueExpression:i.valueExpression}),f=O(s,d,`type-renderer:invalid-parameters`);if(f)throw f;return{...i,layer:s,numTypes:a}}async function W(e){let n=`regenerate-type-renderer`;await v(e,n);let r=await y(e),i=b(r);if(!i||![`type`,`type-size`].includes(i))throw new t(`${n}:invalid-parameters`,`Renderer is invalid`);let{field:a,field2:o,field3:s,valueExpression:c,valueExpressionTitle:l}=r,u=r.uniqueValueInfos.length,{layer:d,forBinning:f,filter:p,view:m,signal:h}=e,g=r.authoringInfo?.dataSeriesName,_=r.authoringInfo?.dataSeriesCalculationName,C=await U({layer:d,field:a,field2:o,field3:s,valueExpression:c,valueExpressionTitle:l,numTypes:u,outlineOptimizationEnabled:x(r),sizeOptimizationEnabled:S(r),dataSeriesName:g,dataSeriesCalculationName:_,forBinning:f,filter:p,view:m,signal:h});return{...e,creatorParameters:C,renderer:r}}async function G(e){if(!(e?.layer&&e.field))throw new t(`type-point-cloud-class-renderer:missing-parameters`,`'layer' and 'field' parameters are required`);let r={...e,layer:e.layer};r.statistics=n(r.statistics);let i=[12],a=L(r.layer,i);if(!a)throw new t(`type-point-cloud-class-renderer:invalid-parameters`,`'layer' must be one of these types: `+R(i).join(`, `));if(r.layer=a,r.density=r.density||25,r.size=r.size||`100%`,!D(r.size))throw new t(`type-point-cloud-class-renderer:invalid-parameters`,`Invalid 'size' parameter. It should be a string of the form '100%'`);let o=r.signal==null?null:{signal:r.signal};await a.load(o);let s=await P({field:r.field}),c=O(a,s,`type-point-cloud-class-renderer:invalid-parameters`);if(c)throw c;return r}async function K(e){let t=e.typeScheme,n=null,r=null,i=await E(e.basemap,e.view);if(n=i.basemapId==null?null:i.basemapId,r=i.basemapTheme==null?null:i.basemapTheme,t)return{scheme:V(t),basemapId:n,basemapTheme:r};let a=H({numColors:e.numColors,basemapTheme:r,geometryType:e.geometryType,theme:e.theme,worldScale:e.worldScale,view:e.view});return a&&(t=a.primaryScheme,n=a.basemapId,r=a.basemapTheme),{scheme:t,basemapId:n,basemapTheme:r}}function q(e,t){let n;return n=e.label<t.label?-1:+(e.label>t.label),n}function J(e,t){let n;return n=e.value<t.value?-1:+(e.value>t.value),n}function Y(e,t){let n=t.count-e.count;return n===0&&(n=q(e,t)),n}function X(e,t){let n=t.count-e.count;return n===0&&(n=J(e,t)),n}function Z(e,t,n){let r;t===`count`?(r=X,n&&`codedValues`in n&&n.codedValues&&(r=Y)):t===`value`&&(r=J,n&&`codedValues`in n&&n.codedValues&&(r=q)),r&&e.sort(r)}async function Q(e,t,n,i){let a=await r(`esri/smartMapping/t9n/smartMapping`),{field:u,field2:d,field3:f}=t,p=e.uniqueValueInfos,m=t.layer,h=u?m.getField(u):null,g=h?m.getFieldDomain(h.name):null,_=t.numTypes===-1?p.length:t.numTypes,v=m.geometryType,y=new o({field:u,field2:d,field3:f,fieldDelimiter:u&&d?F:null}),b=[],x=[],S={value:null,domain:g,fieldInfo:h};p.forEach((e,t)=>{S.value=e.value,e.label=l(S);let n=e.value;(n===null||typeof n==`string`&&n.toLowerCase().includes(`<null>`))&&b.unshift(t)});for(let e of b)x.unshift(p.splice(e,1)[0]);t.sortEnabled!==!1&&Z(p,t.sortBy,g),$(S,t,p);let C=n?.opacity,w=await K({numColors:p.length,basemap:t.basemap,geometryType:v,typeScheme:t.typeScheme,worldScale:!!t.symbolType?.includes(`3d-volumetric`),view:t.view}),T=w.scheme,E=T.colors.map(e=>e.clone()),D=k(T,v),O=A(T,v,C);p.forEach((e,n)=>{S.value=e.value,e.label=l(S),e.symbol=j(v,{type:t.symbolType,color:E[n],size:D,outline:O,meshInfo:{colorMixMode:t.colorMixMode,edgesType:t.edgesType}})}),t.valueExpression&&(y.valueExpression=t.valueExpression,y.valueExpressionTitle=t.valueExpressionTitle),t.legendOptions&&(y.legendOptions=new c(t.legendOptions));for(let e=0;e<_;e++){let n=p[e];n&&y.addUniqueValueInfo({value:n.value,label:n.label,symbol:j(v,{type:t.symbolType,color:E[e].clone(),size:D,outline:O,meshInfo:{colorMixMode:t.colorMixMode,edgesType:t.edgesType}})})}t.defaultSymbolEnabled&&(y.defaultSymbol=j(v,{type:t.symbolType,color:T.noDataColor,size:D,outline:O,meshInfo:{colorMixMode:t.colorMixMode,edgesType:t.edgesType}}),y.defaultLabel=a.other);for(let e of x)e.symbol=j(v,{type:t.symbolType,color:T.noDataColor,size:D,outline:O,meshInfo:{colorMixMode:t.colorMixMode,edgesType:t.edgesType}}),p.push(e);let M=[],N=y.uniqueValueInfos?.length??0,P=N===p.length?-1:N;if(P>-1)for(let e=P;e<p.length;e++)M.push({...p[e]});return n?.visualVariables?.length&&(y.visualVariables=n.visualVariables.map(e=>e.clone())),i?.minSize&&(y.visualVariables?y.visualVariables.push(i.minSize):y.visualVariables=[i.minSize]),t.dataSeriesName&&(y.authoringInfo=new s({dataSeriesName:t.dataSeriesName,dataSeriesCalculationName:t.dataSeriesCalculationName})),{renderer:y,uniqueValueInfos:p,excludedUniqueValueInfos:M,typeScheme:V(T),basemapId:w.basemapId,basemapTheme:w.basemapTheme}}function $(e,t,n){let{field:r,numTypes:a,layer:o,view:s}=t,c=r?o.getField(r):null;if(c&&(I(c)||i(c))){let t=n.filter((e,t)=>t<a).map(e=>e.value),r=i(c)?null:u(t),l=r?d[r]:void 0;if(e.dateFormatOptions={fieldType:c.type,format:l},s){let t=o.layer;e.dateFormatOptions.timeZoneOptions={layerTimeZone:`preferredTimeZone`in t?t.preferredTimeZone:null,viewTimeZone:s.timeZone,datesInUnknownTimezone:`datesInUnknownTimezone`in t&&t.datesInUnknownTimezone}}}}async function ee(t,n){let r=t.uniqueValueInfos,i=(await K({numColors:r.length,basemap:`gray`,theme:`point-cloud-class`,geometryType:`point`,typeScheme:n}))?.scheme,a=i?.theme===`point-cloud-class`,o=a?i.colors:e(i?.colors??[],r.length);return Z(r,`value`),r.map((e,t)=>{let n=e.value,r=null;return a?(r=o[n],r||=o[o.length-1]):r=o[t],new f({values:[n],color:r,label:e.label})})}async function te(e){let t=await U(e),{layer:n,view:r,signal:i,filter:a}=t,o={layer:n,field:t.field,field2:t.field2,field3:t.field3,valueExpression:t.valueExpression,returnAllCodedValues:t.returnAllCodedValues,view:r,filter:a,signal:i},[s,c,l]=await Promise.all([t.statistics==null?M(o):t.statistics,t.outlineOptimizationEnabled?p({layer:n,view:r,signal:i,filter:a}).catch(T):null,t.sizeOptimizationEnabled?m({layer:n,view:r,signal:i,filter:a}).catch(T):null]);return Q(s,t,c,l)}async function ne(e){let{creatorParameters:t,view:n,signal:r,filter:i,renderer:a}=await W(e),{layer:o,outlineOptimizationEnabled:s,sizeOptimizationEnabled:c,field:l,valueExpression:u,valueExpressionTitle:d}=t,[f,v]=await Promise.all([s?p({layer:o,view:n,signal:r,filter:i}).catch(T):null,c?m({layer:o,view:n,signal:r,filter:i}).catch(T):null]);return h(a,f?.visualVariables,g),h(a,v?.minSize,_),t.dataSeriesName&&(a.field=l,a.valueExpression=u,a.valueExpressionTitle=d),{renderer:a}}async function re(e){let t=await G(e),n=t.statistics==null?await M({layer:t.layer,field:t.field,signal:t.signal}):t.statistics;return{renderer:new a({field:t.field,pointsPerInch:t.density??void 0,pointSizeAlgorithm:w(t.size),colorUniqueValueInfos:await ee(n,t.typeScheme)})}}export{re as createPCClassRenderer,te as createRenderer,K as getTypeSchemeData,ne as regenerateRenderer};
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
/* COPYRIGHT Esri - https://js.arcgis.com/5.2/LICENSE.txt */
|
|
2
|
-
import e from"../../core/Error.js";import{numericTypes as t}from"../../layers/support/fieldUtils.js";import{gaussianBlurRadiusPxToKernelDensityRadiusPt as n}from"../../renderers/support/heatmapUtils.js";import{verifyBasicFieldValidity as r,verifyFieldType as i}from"./support/utils.js";import{getFieldsList as a}from"../support/utils.js";import{createLayerAdapter as o,getLayerTypeLabels as s}from"../support/adapters/support/layerUtils.js";const c=t;async function l(t){if(!(t?.layer&&t.view))throw new e(`heatmap-statistics:missing-parameters`,`'layer' and 'view' parameters are required`);let l=[
|
|
2
|
+
import e from"../../core/Error.js";import{numericTypes as t}from"../../layers/support/fieldUtils.js";import{gaussianBlurRadiusPxToKernelDensityRadiusPt as n}from"../../renderers/support/heatmapUtils.js";import{verifyBasicFieldValidity as r,verifyFieldType as i}from"./support/utils.js";import{getFieldsList as a}from"../support/utils.js";import{createLayerAdapter as o,getLayerTypeLabels as s}from"../support/adapters/support/layerUtils.js";const c=t;async function l(t){if(!(t?.layer&&t.view))throw new e(`heatmap-statistics:missing-parameters`,`'layer' and 'view' parameters are required`);let l=[3,5,6,8,9,10,11,14,17],{layer:u,...d}=t,f=o(u,l);if(!f)throw new e(`heatmap-statistics:invalid-parameters`,`'layer' must be one of these types: `+s(l).join(`, `));let p={layerAdapter:f,...d};p.radius=p.radius==null?p.blurRadius==null?18:n(p.blurRadius):p.radius;let m=p.signal==null?null:{signal:p.signal};await f.load(m);let h=p.field,g=h?f.getField(h):null,_=await a({field:h}),v=r(f,_,`heatmap-statistics:invalid-parameters`);if(v)throw v;if(g){let e=i(f,g,`heatmap-statistics:invalid-parameters`,c);if(e)throw e}return p}async function u(e){let{layerAdapter:t,...n}=await l(e);return t.heatmapStatistics(n)}export{u as default};
|